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