The Forge · engineering, computing & technology
Computer Science & Programming
How to tell a machine exactly what you mean, and why some problems resist any telling.
Variables, loops, and functions — enough Python to make the machine do your errands.
Arrays to graphs, sorting to searching — the standard toolkit and the cost of each tool.
Syllabus · 4 units · ~40 hours
Unit I — Cost and Growth
Counting operations · Big-O notation · Best, worst, and average cases
Unit II — Linear Structures
Arrays and dynamic arrays · Linked lists · Stacks and queues · When each wins
Unit III — Trees and Hashing
Binary search trees · Balancing and rotations · Hash tables and collisions · Heaps and priority queues
Unit IV — Graphs and Classic Algorithms
Graph representations · Breadth-first and depth-first search · Shortest paths with Dijkstra · Sorting: merge, quick, and why n log n
Build the layers one at a time — gates, ALU, machine code, assembler — until hello-world makes sense.
Syllabus · 4 units · ~48 hours
Unit I — Logic in Silicon
Boolean gates from NAND · Multiplexers and adders · The arithmetic logic unit
Unit II — Memory and the Clock
Flip-flops and registers · RAM · The fetch-decode-execute cycle
Unit III — Machine Language Upward
Instruction sets · Assembly and the assembler · The stack and function calls
Unit IV — The Software Above
Compilation in outline · What an operating system does · Where your program actually lives
What the kernel does between your keystroke and the screen — scheduling, memory, and files.
Syllabus · 4 units · ~40 hours
Unit I — Processes and Threads
Programs vs. processes · Context switching · Threads and race conditions · Locks and deadlock
Unit II — Scheduling
CPU scheduling policies · Fairness vs. throughput · Real-time constraints
Unit III — Memory
Address spaces · Paging and page tables · Virtual memory and thrashing
Unit IV — Storage and Files
File systems on disk · Journaling and crash recovery · I/O and buffering
Finite machines, Turing machines, and the honest boundary between hard and impossible.
Syllabus · 4 units · ~36 hours
Unit I — Finite Automata
Deterministic finite automata · Nondeterminism and equivalence · Regular expressions · The pumping lemma
Unit II — Grammars and Pushdown Machines
Context-free grammars · Parse trees and ambiguity · Pushdown automata
Unit III — Turing Machines and Computability
The Turing machine model · The Church–Turing thesis · The halting problem · Reductions
Unit IV — Complexity
Time classes P and NP · NP-completeness · What a million-dollar question looks like