Computer Science

Future job comparison

Data From Salary.com

Y axis is amount of money in dollars
X axis is the percentile, only plot 3 points, 25th, 75th and 90th.
A line with the lowest starting point in each color means Instructor of [Insert Major].
2nd lowest is Assistant professor of [Insert Major].
3rd lowest is Associate professor of [Insert Major].
then it's Professor of [Insert Major].
Last one is Dean of [Insert Major].

From what I can see, clearly, the safe major to chose is computer science. Pay is good even for a CS instructor(around the same pay as a associate professor in philosophy, damn!

Philosophy is the most unsafe. Unless one can become a professor and manage to get into the very top, it's better to select the other 2.

Math is good. Money increase is steady compare to title.
Math professors can earn more than dean of mathematics.

Dean of medicine totally owns everyone else in colleges. The 25th percentile is already outside this graph.(almost 300K)

Fastest integer multiplication algorithm not on wikipedia

Update: It is, just not featured on multiplication algorithm page.
I just found it out today.
Someone should read it and understand it and wikipeida it. [That person is certainly, not me]

Faster Integer Mulitplication

Few awards for may

We got No.2 St. Joseph's annual high school programming competition. No.1 get $500 for each teammate. OMG I wish I can get that money to cover my credit card debt. Crying. I don't wana...
No.1 and us are the only team to complete all problems. Had some really nice food.
MIT t-shirt and the PWNING NOOBZ headband.

Prize for been the lowest high scorer in math league. Epic fail -.-
Extreme Sports t-shirt. Math is an extreme sport.

Award for Journalism from Long Island Press High School Journalism Awards. Award for Format Buster... wonder what it is...
Evil grin. Have nothing to do with my "evilplanDoNotOpen" folder in my flash drive... or does it?...

So it seems, I'm more of a computer science person.

A New Kind of Science

This have to be the most controversial book I have ever read.
First, this book is 1200 pages, with 300+ pages of notes.
But, removing all the fluff and personal ego, it should be less than 100 pages. Even if it include all the useful images, having more than 350 pages is an overkill.
I read the book in the library, skim though and only read the part I cared--The math and computer science part.
It is the most thought provoking book I have ever read. I learned so much insight in a couple of hours. It clears a lot of things I know already, but the new insight and connections between them fascinates me.
The text of pure egoism and repetition really wasted my time. The first few chapters are full of examples showing one idea--Simple program create complex results.
I suggest if you are like me who already convinced after the first 5 pages, read the first 2 chapters and skip to the 10th chapter... everything in between is just examples in many scientific areas. And, you don't want to read those 300 page notes.
In fact, since you only have to read a total of 5 chapters(that I think it's useful but still have a lot of fluff can skip though), buying the book would be quite a waste. If you can't get a copy of the book in the library(doubt it, it's a popular book), read it online.
Because of these, it's really hard to rate this book. But I still would rather read this book than a research paper, because after all, this book is for the mass population.
I'm going to delicate a blog post on what I did on 4/10/2008, and it will explain more about my feelings toward this book.

Status: 
Already Read
Rating: 
Excellent

ADUni videos now on Google Video

After a month of work on my 12KB upload speed bandwidth, most of ADUni video collection is up at Google Video. ADUni was a free university teaches about computer science funded by ArsDigita. It no longer offering classes because due to the acquisition of ArsDigita.

Philip Greenspun's Tuition-free MIT described reasons for free education.

I care about free education in general and these videos are the ones give me a huge boost with knowledge. So I used my bandwidth and CPU time to download/convert/upload of ADUni videos to Google Video, because it will let user download the video, streaming it and add closed caption. Save ADUni bandwidth and increase the accessibility of education. I hope everyone get as much of what I get from these videos.

It took me a long time to convert the RM files to Xvid formats, FFMPEG and MEncoder doesn't work so I have to use eo-video's ultra slow converter. Convert around the speed the video should be played.

Some of the episodes are missing or cut off because Google Video have a lot problems. If there is no link to the video, it probably means Google's system had some mistake. Sorry but Google video doesn't live to the expectation I expected. We will have to live with the missing ones unless I upload them again. If you find a video that's live but not working, please post a comment or something. I'm disappointed with Google for the first time.

A video sample of Shai Simonson lecturing on graph algorithms:

This page only contains link to the official course page and videos. For the original videos and lecture notes, follow the official course page.

The Structure and Interpretation of Computer Programs[link]
10-02-00: More scheme intro, substitution model
10-03-00: Orders of growth, recursion/ iteration
10-04-00: Higher-order procedures
10-05-00: Compound data
10-06-00: Aggregate data
10-10-00: Henderson picture language
10-11-00: Symbolic data
10-12-00: Data structures
10-13-00: Multiple representations of data
10-16-00: Generic operators
10-17-00: State
10-23-00: Metacircular evaluator
10-23-00: Recitation
10-24-00: More on the metacircular evaluator
10-24-00: Recitation
10-25-00: Register Machines I
10-25-00: Register Machines II
10-26-00: EC eval
10-27-00: Compilation

Discrete Mathematics[link] These are not uploaded by me
11-01-00: What kinds of problems are solved in discrete math?
11-02-00: Boolean Algebra and formal logic
11-03-00: More logic: quantifiers and predicates
11-06-00:
Sets
11-07-00: Diagonalization, functions and sums review
11-08-00: Basic arithmetic and geometric sums, closed forms.
11-09-00: Chinese rings puzzle
11-10-00: Solving recurrence equations
11-13-00: Solving recurrence equations (cont.)
11-14-00: Mathematical induction
11-15-00: Combinations and permutations
11-16-00: Counting Problems
11-17-00: Counting problems
11-20-00: Counting problems using combinations, distributions
11-21-00: Counting problems using combinations, distributions
11-22-00: The pigeonhole principle and examples. The inclusion/exclusion theorem and advanced examples. A combinatorial card trick.
11-26-00: Equivalence Relations and Partial Orders
11-27-00: Euclid's Algorithm
11-27-00: Recitation -- a combinatorial card trick
11-28-00: Cryptography

How Computers Work[link]
12-01-00: Introduction to the BETA ISA
12-03-00: Storage Allocation, Stack Discipline, Calling Conventions
12-04-00: Unpipelined Beta, Exceptions
12-05-00: Implementing the ALU
12-05-00: Recitation
12-06-00: Implementation of Beta Memorie
12-06-00: Synchronous Finite State Machines (FSMs)
12-08-00: Flip flops, Asynchronous FSMs, Dynamic Discipline, Timing
12-11-00: Arbitration and Metastability
12-12-00: Static Discipline, Transistor-level design
12-13-00: Physics of Communication and Computation
12-14-00: Physics of Computation
12-15-00: Pipelining
12-18-00: Details of the Pipelined Beta
12-19-00: Caches
12-20-00: Virtual Memory, Paging

Object-oriented Program Design and Software Engineering[link]
01-02-01: Intro to Java
01-02-01: lecture supplement
01-03-01: Classes
01-03-01: lecture supplement
01-04-01: Inheritance & Polymorphism
01-04-01: lecture supplement
01-05-01: Interfaces and interfaces
01-05-01: lecture supplement
01-08-01: OOP Design & Design Process
01-09-01: Exceptions & Error Handling
01-10-01: I/O
01-11-01: Window Systems & Graphics
01-12-01: Event-based programming
01-16-01: GUI (widgets)
01-17-01: Threads
01-18-01: Network Programming
01-19-01: Software Design Cycle
01-22-01: OOP in C & C++
01-23-01: Layouts, Packages, & Jar files
01-24-01: Java on the web
01-25-01: Component Object Models
01-26-01: Overview of Software Patterns
01-29-01: Persistence & Databases & etc.
01-30-01: I18N, L10N & Review

Algorithms[link]
02-01-01: Algorithms -- overview
02-02-01: Sorting
02-04-01: Sorting II
02-05-01: Searching & Data Structures
02-06-01: Red-Black Trees
02-07-01: Graph Algorithms I - Topological Sorting, Prim's Algorithm
02-08-01: Graph Algorithms II - DFS, BFS, Kruskal's Algorithm, Union Find Data Structure
02-09-01: Graph Alg. IV: Intro to geometric algorithms
02-13-01: Geometric Algorithms: Graham & Jarvis
02-14-01: Dynamic Programming I
02-15-01: Dynamic programming II
02-16-01: Parsing
02-20-01: Knapsack, Bandwidth Min. Intro: Greedy Algs.
02-21-01: Greedy Algs. II & Intro to NP Completeness
02-22-01: NP Completeness II & Reductions
02-23-01: NP Completeness III - More Reductions
02-26-01: NP Completeness IV
02-27-01: Approximation Algs.
02-28-01: Alternate Models of Computation

Systems[link]
03-01-01: Intro to Systems
03-02-01: System Design
03-05-01: Distributed Systems
03-06-01: Networks, I
03-07-01: Networks, II
03-08-01: Naming
03-09-01: Security
03-12-01: Distributed Storage
03-13-01: Time and Coordination
03-14-01: Transactions
03-15-01: Distributed Transactions, Part I
03-15-01: Distributed Transactions, Part II
03-16-01: Replication
03-19-01: Distributed Mulitmedia
03-20-01: Case Study Photo.net

Software Engineering for Web Applications[link]
04-02-01 (Part I): Introduction to Internet Applications, Online Communities
04-02-01 (Part II): TCP and HTTP, Web Session State, Databases, Web Development Enviornments
04-03-01: J2EE and Microsoft .NET, Planning Internet Applications and Online Communities
04-04-01: Big Thoughts about the Internet and Online Communities
04-05-01: Web Usability and Interface Best Practices
04-11-01: Student User Data Model and Login/Registration Code Review
04-12-01: Sample Data Model for Diet Tracking, Database Structure, Site Modules
04-17-01: Student Project Status Presentation and Code Reviews
04-18-01: Implementing Threaded Discussion Forums
04-19-01: Database Normal Form, Oracle Transaction Issues, Oracle Under the Hood
04-24-01: VoiceXML
04-25-01: Distributed Computing with Web Services, SOAP
04-26-01: Final Student Project Presentation, Future of Databases

Theory of Computation[link]
05-03-01: Finite State Machines
05-04-01: Closure and Nondeterminism
05-07-01: The Pumping Lemma
05-08-01: Minimizing FSMs
05-08-01: Recitation
05-09-01: Context Free Languages
05-10-01: CFLs and compilers
05-10-01: Recitation
05-11-01: Pushdown Machines
05-11-01: Recitation
05-14-01: CFGs and NPDMs
05-15-01: More lemmas, CYK
05-16-01: Undecidability and CFLs
05-16-01: Recitation
05-17-01: The Bullseye
05-18-01: Turing Machines
05-18-01: Recitation
05-20-01: The Halting Problem
05-21-01: Decidability
05-22-01: Complexity Theory, Quantified Boolean Formula
05-23-01: Savitch's Theorem, Space Hierarchy
05-24-01: Decidability/Complexity Relationship, Recursion Theorem

Artificial Intelligence[link]
06-04-01: Rule-based systems and Knowledge Engineering
06-05-01: Searching and Coloring
06-06-01: Nearest Neighbors, Identification Trees
06-07-01: Neural Nets, Back Propagation, Support Vector Machines

Database Management Systems[link]
06-08-01: Overview, Query Processing, Embedded SQL, Cursors, Triggers
06-11-01: Relational Algebra, Relational Calculus
06-12-01: Entity Relationship Diagrams
06-13-01: RDBMS Memory and Disk Storage, RAID, Buffer Management
06-14-01: Unordered/Sorted/Hashed Files, Indexes
06-15-01: Index Sequential Access Method, B+ Trees
06-18-01: Static and Dynamic Hash Indexing
06-19-01: External Sorting, Merge Sort, Double Buffering, Replacement Sort
06-21-01: Query Optimizers, Query Evaluation
06-25-01: Normal Forms
06-26-01: Query Analysis and Optimizing in Oracle

Applied Probability[link]
07-02-01: Introduction, Algebra of Events, Conditional Probability
07-03-01: Independence, Bayes Theorem, Probability Mass Functions
07-05-01: Conditional PMFs, Probability Density Functions
07-06-01: PDFs and Image Guided Surgery
07-09-01: Bayesian Segmentation of MRI Images

Colloquia[link]

Philip Greenspun Software Engineering Professionalism
Fred Martin To Mindstorms and Beyond: Evolution of a Construction Kit for Magical Machines
Richard Stallman The Free Software Movement and the GNU/Linux Operating System
Chip Hazard Financing eBusinesses
Marc Hamilton Software Engineering at Internet Speeds
Philip Greenspun One-Day Internet Applications Course
Allen Shaheen Experience as one of the Founders of Cambridge Technology Partners
David Parmenter Part 1 Part 2
Gerald Jay Sussman The Legacy of Computer Science
Michael Sipser The History and Status of the P versus NP Question
Robert Sloan What to do when the Teacher is an Ignoramus or a Liar: Learning from Queries even when the Answers to the Queries are Wrong
Jothy Rosenberg Basic Mechanics of Startup Financing, Equity and IPOs: What Engineers Should Know

On another note.
Do you know that like 30% of the people going to my website comes from Google Image search of Leah Dizon?

Syndicate content
Honey Pot that kill bots