ForrestKnight/open-source-cs
ForrestKnight/open-source-cs has 23,782 GitHub stars and 3,295 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-05 10:33 UTC. Last push 2025-06-11.
Video discussing this curriculum:
Measured star growth
- in 24h
- +1
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalThe 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 |
Theory
| Courses | School | Duration | Effort | Frequency | Prerequisites |
|---|---|---|---|---|---|
| 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 |
|---|---|---|---|---|---|
| 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 |
|---|---|---|---|---|---|
| Linux Command Line Basics | IBM | 1 week | 12 hours/week | self-paced | none |
| The Unix Workbench | JHU | 4 weeks | 4 hours/week | once a month | none |
Explore related projects
ytdl-org/youtube-dl
Command-line program to download videos from YouTube.com and other video sites
141,460 starsexcalidraw/excalidraw
Virtual whiteboard for sketching hand-drawn like diagrams
135,175 starsgodotengine/godot
Godot Engine – Multi-platform 2D and 3D game engine
119,611 starsmrdoob/three.js
JavaScript 3D Library.
117,611 stars