advanced 48 courses ~1920 hours 520 lessons

Learn CS from First Principles

A four-year computer science degree, built from the ground up.

A complete four-year computer science curriculum spanning 16 quarters and 48 courses — from discrete math and systems programming to distributed systems, machine learning, and applied AI.

  1. Year 1 · Quarter 1
  2. 1
    Discrete Mathematics 16 lessons ~60h advanced
  3. 2
    Introduction to Algorithms and Complexity 12 lessons ~46h intermediate
  4. 3
    Systems Programming (C and Zig) 12 lessons ~68h advanced
  5. 4
    The Missing Semester — CS Tools 10 lessons ~26h beginner
  6. Year 1 · Quarter 2
  7. 5
    Linear Data Structures 13 lessons ~44h intermediate
  8. 6
    Trees and Priority Queues 12 lessons ~56h intermediate
  9. 7
    Hashing and Advanced Linear Structures 13 lessons ~46h intermediate
  10. Year 1 · Quarter 3
  11. 8
    Graph Fundamentals 12 lessons ~48h intermediate
  12. 9
    Sorting and Searching 11 lessons ~44h intermediate
  13. 10
    Algorithm Design Paradigms I 11 lessons ~38h intermediate
  14. 11
    Programming Languages and Functional Programming 13 lessons ~48h intermediate
  15. Year 1 · Quarter 4
  16. 12
    Dynamic Programming 12 lessons ~60h advanced
  17. 13
    Graph Algorithms 11 lessons ~46h advanced
  18. 14
    Parallel and Concurrent Algorithms 11 lessons ~38h intermediate
  19. 15
    String Algorithms and Complexity Theory 13 lessons ~42h advanced
  20. Year 2 · Quarter 5
  21. 16
    Digital Logic and Computer Organization (Nand2Tetris + Theory) 10 lessons ~82h advanced
  22. 17
    Memory Systems and I/O 10 lessons ~42h advanced
  23. Year 2 · Quarter 6
  24. 18
    Processes and Concurrency 10 lessons ~58h advanced
  25. 19
    Memory Management and File Systems 11 lessons ~54h advanced
  26. Year 2 · Quarter 7
  27. 20
    Network Fundamentals and Application Layer 10 lessons ~48h intermediate
  28. 21
    Transport and Network Layer 11 lessons ~46h intermediate
  29. Year 2 · Quarter 8
  30. 22
    Database Systems 11 lessons ~48h beginner
  31. 23
    Theory of Computation 13 lessons ~52h advanced
  32. Year 3 · Quarter 9
  33. 24
    Foundations of Distributed Systems 10 lessons ~48h advanced
  34. 25
    Consensus and Replication 12 lessons ~54h advanced
  35. Year 3 · Quarter 10
  36. 26
    System Design Methodology 10 lessons ~32h intermediate
  37. 27
    System Design Building Blocks 10 lessons ~38h intermediate
  38. 28
    System Design Case Studies 10 lessons ~42h intermediate
  39. Year 3 · Quarter 11
  40. 29
    Software Construction (MIT 6.1020 / Stanford CS107 inspired) 10 lessons ~28h beginner
  41. 30
    Software Engineering Practices 9 lessons ~26h beginner
  42. 31
    Compilers and Interpreters 10 lessons ~66h advanced
  43. 32
    Performance Engineering of Software Systems (MIT 6.172) 11 lessons ~60h advanced
  44. Year 3 · Quarter 12
  45. 33
    Computer Security 11 lessons ~40h beginner
  46. 34
    Cryptography 8 lessons ~42h intermediate
  47. 35
    Computer Graphics (Elective) 8 lessons ~44h advanced
  48. 36
    Ethics, Society, and Professional Responsibility 7 lessons ~18h beginner
  49. 37
    The Modern Software Developer (Elective) 10 lessons ~30h intermediate
  50. Year 4 · Quarter 13
  51. 38
    Linear Algebra 11 lessons ~66h advanced
  52. 39
    Calculus and Optimization 9 lessons ~58h advanced
  53. 40
    Probability and Statistics 10 lessons ~58h advanced
  54. Year 4 · Quarter 14
  55. 41
    Supervised Learning 11 lessons ~54h advanced
  56. 42
    Unsupervised Learning and Practical ML 9 lessons ~46h advanced
  57. 43
    Reinforcement Learning 9 lessons ~42h advanced
  58. Year 4 · Quarter 15
  59. 44
    Neural Networks and Deep Learning Fundamentals 11 lessons ~56h advanced
  60. 45
    Computer Vision 9 lessons ~48h advanced
  61. 46
    Sequence Models and Generative Models 10 lessons ~52h advanced
  62. Year 4 · Quarter 16
  63. 47
    Natural Language Processing 10 lessons ~46h advanced
  64. 48
    Large Language Models and AI Engineering 17 lessons ~52h advanced