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
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