This is the most comprehensive introduction into Computer Science that I've been able to find. I'm going to dive in head first and record my experience here. I will not be rushing this; this is a 12 week project (maybe 8-9). If it goes well, I'll pursue the next course on dynamic web development.
Week 0: Binary. ASCII. Algorithms. Pseudocode. Source code. Compiler. Object code. Scratch. Statements. Boolean expressions. Conditions. Loops. Variables. Functions. Arrays. Threads. Events.
Part 1.
Part 2.
Problem Set 0: Scratch
Week 1: Linux. C. Compiling. Libraries. Types. Standard output.
Part. 1
Part 2.
Problem Set 1: C -- Mario, Greedy algorithm
Week 2: Casting. Imprecision. Switches. Scope. Strings. Arrays. Cryptography.
Part 1.
Part 2.
Problem Set 2: Crypto -- initials.c, Caesar.c, Vigenere.c
Week 3: Command-line arguments. Searching. Sorting. Bubble sort. Selection sort. Insertion sort. O. Ω .Θ. Recursion. Merge Sort.
Part 1.
Part 2.
Problem Set 3: Game of Fifteen -- find/sort/game
Week 4: Stack. Debugging. File I/O. Hexadecimal. Strings. Pointers. Dynamic memory allocation.
Part 1.
Part 2.
Problem Set 4: Forensics
Week 5: Heap. Buffer overflow. Linked lists.
Part 1.
Part 2.
Problem Set 5: Mispellings
Week 6: Hash tables. Tries. Quiz 0. Trees. Stacks. Queues.
Week 7: Heap. Buffer overflow. Linked lists.
Week 8: MVC. SQL.
Week 9: JavaScript. Ajax.
Week 10: Security. Artificial intelligence.
Week 11: Artificial intelligence, continued. Quiz 1.
Week 12: Exciting conclusion.
Problem Set 5: Mispellings
Problem Set 6: Web Server
Problem Set 7: C$50 Finance
Problem Set 8: Mashup