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 Progress Completed
Intro to Computer Science UVA 12 week 5 hours/week self-paced none 🚧 👎
CS50's Introduction to Computer Science HarvardX N/A 10-12 hours/week self-paced none 📈 👎
Mathematical Thinking in Computer Science UC San Diego 6 weeks 2-5 hours/week once a month none 📈 👎

Programming

Courses School Duration Effort Frequency Prerequisites Progress Completed
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

Courses School Duration Effort Frequency Prerequisites Progress Completed
Calculus 1A: Differentiation MIT 12 weeks 6-10 hours/week self-paced pre-calculus 📈 👎
Calculus 1B: Integration MIT 15 weeks 6-10 hours/week self-paced Calculus 1A: Differentiation 🚧 👎
Calculus 1C: Coordinate Systems & Infinite Series MIT 8 weeks 6-10 hours/week self-paced Calculus 1B: Integration 🚧 👎
Linear Algebra - Foundations to Frontiers UT Austin 15 weeks 6-10 hours/week self-paced pre-calculus 🚧 👎
Introduction to Probability and Data Duke 5 weeks 5-7 hours/week twice a month none 🚧 👎
Intro to Statistics Stanford 8 weeks 5-7 hours/week self-paced none 🚧 👎

Systems

Courses School Duration Effort Frequency Prerequisites Progress Completed
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

Courses School Duration Effort Frequency Prerequisites Progress Completed
Computer Science: Algorithms, Theory, and Machines Princeton 10 weeks 2-5 hours/week once a month Calculus 1A (all), basic programming 🚧 👎
Algorithms, Part I Princeton 6 weeks 6-12 hours/week once a month Computer Science: Algorithms, Theory, and Machines 🚧 👎
Algorithms, Part II Princeton 6 weeks 6-12 hours/week once a month Algorithms, Part I 🚧 👎

Applications

Courses School Duration Effort Frequency Prerequisites Progress Completed
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

Courses School Duration Effort Frequency Prerequisites Progress Completed
Linux Command Line Basics Udacity 1 week 5 hours/week self-paced none 📈 👎
The Unix Workbench JHU 4 weeks 4 hours/week once a month none 🚧 👎
Configuring Linux Web Servers Google 1 week n/a self-paced none 🚧 👎

Game Development

Courses School Duration Effort Frequency Prerequisites Progress Completed
Introduction to Game Development Michigan 27 hours 2-5 hours/week self-paced none 🚧 👎
Principles of Game Design Michigan 18 hours 4 hours/week self-paced none 🚧 👎
Business of Games and Entrepreneurship Michigan 16 hours 4 hours/week self-paced none 🚧 👎
Game Development for Modern Platforms Michigan 19 hours 4 hours/week self-paced none 🚧 👎
Game Design and Development Capstone Michigan 12 hours 2 hours/week self-paced none 🚧 👎

Extra learning material

Courses School Duration Effort Frequency Prerequisites Progress Completed
Introduction to Programming in C Specialization Duke 3 months 5-10 hours/week self-paced none 🚧 👎
Introduction to C++ Microsoft 4 weeks 3-5 hours/week self-paced none 🚧 👎
Analysis of Algorithms Princeton 26 hours 2-4 hours/week self-paced Advanced 🚧 👎
Audio programming with Raspberry Pi UNSW Australia 10 weeks 15 hours/week self-paced Intermediate Java Programming 🚧 👎
Blockchain Basics Buffalo 4 weeks 3.5 hours/week self-paced Beginner Java Programming 🚧 👎
Bitcoin and Cryptocurrency Technologies Princeton 4.5 weeks 4 hours/week self-paced none 🚧 👎
Intro to Computer Networking Stanford N/A 5-10 hours/week self-paced Intro to Statistics 🚧 👎
The Bits and Bytes of Computer Networking Google 3 weeks 8-10 hours/week self-paced none 📈 👎
Cybersecurity Fundamentals RITx 8 weeks 10-12 hours/week self-paced none 🚧 👎
Software Debugging Saarland University 2 months 10-12 hours/week self-paced none 🚧 👎
Intro to iOS Development with Swift Udacity 4 weeks 2-4 hours/week self-paced none 🚧 👎
HTML, CSS, and Javascript for Web Developers Johns Hopkins 33 hours 4-6 hours/weeks self-paced none 🚧 👎