ForrestKnight /open-source-cs

Video discussing this curriculum:

★ 23,784⑂ 3,293
Created 2019-01-19youtu.be/NyOvFSP_IpQ
23,784
stars
+3+7+20
3,293
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

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

Courses | School | Duration | Effort | Frequency | Prerequisites
:-- | :--: | :--: | :--: | :--: | :--:
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  | Udacity | 8 weeks | 5-7 hours/week | self-paced | none


 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



 The

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON