The Open Source Computer Science Degree
This is a curated list of free courses from reputable universities like MIT, Stanford, and Princeton that satisfy the same requirements as an undergraduate Computer Science degree, minus general education.
Computer Science Basics
| Courses |
School |
Duration |
Effort |
Frequency |
Prerequisites |
| Intro to Computer Science |
Harvard |
10 weeks |
10-20 hours/week |
self-paced |
none |
Programming
| Courses |
School |
Duration |
Effort |
Frequency |
Prerequisites |
| Java Programming: Solving Problems with Software |
Duke |
4 weeks |
4-8 hours/week |
twice a month |
none |
| Java Programming: Arrays, Lists, and Structured Data |
Duke |
4 weeks |
4-8 hours/week |
twice a month |
Java Programming: Solving Problems with Software |
| Object Oriented Programming in Java |
Duke |
6 weeks |
4-6 hours/week |
every week |
Java Programming: Arrays, Lists, and Structured Data |
| Data Structures and Performance |
Duke |
6 weeks |
6-10 hours/week |
every week |
Object Oriented Programming in Java |
| Java Programming: Principles of Software Design |
Duke |
4 weeks |
4-8 hours/week |
twice a month |
Java Programming: Arrays, Lists, and Structured Data |
| Java Programming: Build a Recommendation System |
Duke |
4 weeks |
3-6 hours/week |
once a month |
Java Programming: Principles of Software Design |
| Programming Languages, Part A |
UW |
5 weeks |
8-16 hours/week |
once a month |
Object Oriented Programming in Java |
| Programming Languages, Part B |
UW |
3 weeks |
8-16 hours/week |
once a month |
Programming Languages, Part A |
| Programming Languages, Part C |
UW |
3 weeks |
8-16 hours/week |
once a month |
Programming Languages, Part B |
Math
Systems
| Courses |
School |
Duration |
Effort |
Frequency |
Prerequisites |
| Build a Modern Computer from First Principles: From Nand to Tetris |
Hebrew University of Jerusalem |
6 weeks |
5 hours/week |
twice a month |
basic programming knowledge |
| Build a Modern Computer from First Principles: From Nand to Tetris II |
Hebrew University of Jerusalem |
6 weeks |
10-15 hours/week |
once a month |
Build a Modern Computer from First Principles: From Nand to Tetris |
| Introduction to Operating Systems |
Georgia Tech |
8 weeks |
5-8 hours/week |
self-paced |
Build a Modern Computer from First Principles: From Nand to Tetris II |
Theory
Applications
| Courses |
School |
Duration |
Effort |
Frequency |
Prerequisites |
| Software Engineering: Introduction |
UBCx |
6 weeks |
8-10 hours/week |
self-paced |
Java Programming: Build a Recommendation System |
| Machine Learning |
Stanford |
11 weeks |
5-7 hours/week |
twice a month |
Linear Algebra - Foundations to Frontiers |
| Database Management Essentials |
CU |
7 weeks |
4-6 hours/week |
twice a month |
basic programming & CS knowledge |
| Cryptography I |
Stanford |
7 weeks |
5 hours/week |
once a month |
Linear Algebra - Foundations to Frontiers & Introduction to Probability and Data |
Unix