Computer Science
Programming, algorithms, computing systems, and software engineering.
Curriculum outline
Year 1 · Programming and mathematics
Programming, testing, discrete mathematics, calculus, and linear algebra.
Year 2 · Algorithms and systems
Data structures, algorithm analysis, probability, computer organization, and systems programming.
Year 3 · Computing in practice
Operating systems, databases, networking, software engineering, and computing ethics.
Year 4 · Specialization and project
Explore systems, AI, theory, or human-computer interaction. Build, test, and explain a project in your chosen area.
Curriculum reference · Stanford University
This roadmap is designed for university-level self-study.
Year 1 study guide and free resources
Read the assigned topics, work through examples, then solve problems from memory. At the end of each term, use a source problem set or a project to check what you can do independently.
Year 1 · Fall
- Programming I
Trace expressions and branches, then write functions and test them with small inputs.
MIT OCW · Programming in Python - Discrete Mathematics I
Study logic, sets and direct proofs alongside programming.
MIT OCW · Mathematics for Computer Science
Year 1 · Winter
- Programming II
Continue with lists, dictionaries, recursion and testing. Build a small command-line program.
MIT OCW · Programming in Python - Discrete Mathematics II
Use induction, counting and graphs to reason about programs.
MIT OCW · Mathematics for Computer Science - Computer Systems
Build logic gates from NAND and test each truth table.
Nand2Tetris · Project 1
Improve this curriculum
Help make this learning path more useful.