You don’t need to spend $300k or move to Palo Alto or Cambridge to get a world-class CS education.
Stanford and MIT have generously shared complete course recordings on YouTube — enough to build yourself a “blended” CS degree with both clarity (Stanford) and rigor (MIT).

A few other classic CS courses have been added from other top universities.

This article gives you a syllabus + playlist roadmap that combines the best of both schools. You can adapt to your own interests.

There are no formal qualifications given! This is entirely DIY.

I will update the links and improve this page later, as I have time.


1. Foundations – Learning to Program


2. Systems Basics – How Computers Really Work

  • Stanford CS107 – Computer Organization & Systems (C, pointers, memory, machine execution)
    🎥 Playlist
    🔍 Search: Stanford CS107 lectures
    📝 Course materials link

  • MIT 6.004 – Computation Structures (digital logic, computer architecture)
    🎥 Playlist
    🔍 Search: MIT 6.004 Computation Structures
    📝 Course materials link


3. Operating Systems & Systems Programming

  • Berkeley CS162 – Operating Systems and Systems Programming
    Processes, threads and concurrency; synchronization; virtual memory, paging, segmentation; file systems and I/O; resource scheduling; protection & security
    🎥 Playlist

  • MIT 6.828 – Operating System Engineering (build xv6 from scratch)
    🎥 Playlist

  • Stanford CS149 – Parallel Computing
    Multi-core architecture, parallelism, performance optimisation, GPU/CUDA programming, distributed computing
    🎥 Playlist
    📝 Course materials link


4. Algorithms & Theory

  • MIT 6.006 – Introduction to Algorithms
    🎥 Playlist – Fall 2011
    🎥 Playlist – Spring 2020
    📕 Book: CLRS (Introduction to Algorithms, Cormen et al).

  • Stanford CS154 – Introduction to Automata & Complexity Theory / Introduction to Theory of Computation
    🎥 Playlist – Jeff Ullman
    🎥 Playlist – Omer Reingold
    📕 Book: Sipser’s Introduction to the Theory of Computation (the bible here).

  • MIT 6.046 – Design & Analysis of Algorithms
    This is an intermediate algorithms course with an emphasis on teaching techniques for the design and analysis of efficient algorithms, emphasizing methods of application. Topics include divide-and-conquer, randomization, dynamic programming, greedy algorithms, incremental improvement, complexity, and cryptography.
    🎥 Playlist
    🔍 Search: MIT 6.046
    📝 Course materials link

  • Stanford CS103 – Mathematical Foundations of Computing

  • MIT 6.045 – Automata, Computability, and Complexity


5. Math, Probability, and Data Foundations

  • MIT 6.1200J Mathematics for Computer Science
    This course covers elementary discrete mathematics for science and engineering, with a focus on mathematical tools and proof techniques useful in computer science. Topics include logical notation, sets, relations, elementary graph theory, state machines and invariants, induction and proofs by contradiction, recurrences, asymptotic notation, elementary analysis of algorithms, elementary number theory and cryptography, permutations and combinations, counting tools, and discrete probability.
    🎥 Playlist
    📝 Course materials link

  • UC Berkeley CS 70 – Discrete Mathematics and Probability Theory
    A foundational computer science course that combines rigorous discrete math with probability, providing the theoretical backbone for fields like algorithms, cryptography, and machine learning. Students learn proof techniques, logic, induction, modular arithmetic, and graph theory alongside probability, random variables, and Markov chains. The course emphasizes both formal reasoning and practical applications, such as error-correcting codes, hashing, and cryptographic protocols. In essence, it blends the math needed to reason about computation with the probability needed to deal with uncertainty.
    🎥 Playlist
    📝 Course materials link
    There is no textbook for this class. Instead, there is a set of comprehensive lecture notes posted on the course home page (link below) for each lecture.

  • Stanford CS109 – Introduction to Probability for Computer Scientists
    This course starts by providing a fundamental grounding in combinatorics, and then quickly moves into the basics of probability theory. We will then cover many essential concepts in probability theory, including particular probability distributions, properties of probabilities, and mathematical tools for analyzing probabilities. Finally, the last third of the class will focus on data analysis and Machine Learning as a means for seeing direct applications of probability in this exciting and quickly growing subfield of computer science.
    🎥 Playlist
    📝 Course materials link

  • MIT 6.041 – Probabilistic Systems Analysis

Linear Algebra & Calculus

  • MIT 18.06 Linear Algebra
    Spring 2005. Instructor: Prof. Gilbert Strang. This is a basic subject on matrix theory and linear algebra. Emphasis is given to topics that will be useful in other disciplines, including systems of equations, vector spaces, determinants, eigenvalues, similarity, and positive definite matrices. *Please note that lecture 4 is unavailable in a higher quality format.
    🎥 Playlist
    📝 Course materials link
    📝 Another course materials page

  • MIT 18.009 Learn Differential Equations: Up Close with Gilbert Strang and Cleve Moler
    Fall 2015. An in-depth series of videos about differential equations and the MATLAB® ODE suite. These videos are suitable for students and life-long learners to enjoy.
    🎥 Playlist
    📝 Course materials link


6. Networking, Security, and Distributed Systems

  • Stanford CS144 – Introduction to Computer Networking
    🔍 Search: Stanford CS144 YouTube
  • MIT 6.824 – Distributed Systems
    🔍 Search: MIT 6.824 Distributed Systems
  • Stanford CS155 – Computer & Network Security

7. Databases, Compilers, and Extras

  • Stanford CS145/245 – Databases
  • Stanford CS143 – Compilers
  • MIT 6.035 – Computer Language Engineering
  • Stanford CS148/348 – Computer Graphics

8. AI, Machine Learning, and Beyond

  • Stanford CS221 – Artificial Intelligence: Principles & Techniques (Autumn 2019)
    🎥 Playlist
  • Stanford CS224N: NLP with Deep Learning (Winter 2021)
    🎥 Playlist
  • Stanford CS229 – Machine Learning (Andrew Ng)
    🎥 Playlist
  • Stanford CS231n – CNNs for Visual Recognition (Fei-Fei Li, Karpathy)
    🔍 Search: Stanford CS231n lectures
  • Stanford CS336 – Language Modelling from Scratch (2025)
    🎥 Playlist
  • MIT 6.034 – AI (Patrick Winston)
  • MIT 6.036 – Machine Learning

9. Advanced Electives (Pick & Choose)

  • MIT 6.824 → Advanced Distributed Systems (follow-on papers).
  • Stanford CS246 – Large-Scale Data Systems.
  • Stanford CS240 – Advanced Operating Systems.
  • Stanford CS348 – Graphics / VR.

How to Follow This Roadmap

  1. Stanford first for clarity → MIT second for depth.
  2. Do assignments if you want mastery (most are online).
  3. Skip around if you already know the material.
  4. By the end, you’ll have a CS education rivaling Stanford or MIT grads — for free.