The Open-Source Computer Science Degree

June 29, 2026 · View on GitHub

Inspired by The Open-Source Data Science Masters, this project aims to do the same for an undergraduate Computer Science degree. The following document outlines free online courses from top schools like Harvard, Stanford and MIT. The groupings by Term are meant to pace and structure the course according to a typical Computer Science track at a college or university. The focus is on the core Computer Science courses; liberal arts or "GenEd" courses have been omitted.

Note: Many of the courses below are long-running and the canonical URL may change between offerings. If you find a broken link, please open an issue or send a PR — see CONTRIBUTING.md. A weekly automated link check runs against this README.

Term 1

Intro to Computer Science

Stanford CS106A (Note: teaches in Python)
or
Harvard CS50x
or
UC Berkeley CS61A

Discrete Mathematics for Computer Science

UC Berkeley CS70
or
MIT 6.042J
or
Carnegie Mellon 15-251

Data Structures

Stanford CS106B
or
UC Berkeley CS61B

Computer Architecture

Princeton Coursera
or
MIT 6.823
or
UC Berkeley CS61C

Term 2

UX Design

Interaction Design Foundation — UX Design Fundamentals

Intro to Web Development

The Odin Project — Full Stack
or
freeCodeCamp — Responsive Web Design

Intro to Databases

Stanford Databases (edX) (search "Databases: ...")
or
CMU 15-445 Database Systems
or
MIT 6.830

Operating Systems

UC Berkeley CS162
or
MIT 6.828

Computer Graphics

MIT 6.837
or
UC San Diego CSE 167x (edX)

Term 3

Programming Languages Theory

Brown University CS173

Algorithms

Stanford Algorithms Specialization (Coursera)
or
Princeton Algorithms Part I (Coursera)
or
MIT 6.006 Introduction to Algorithms

System Engineering

MIT 6.033

Intro to Embedded Systems and Real-Time Systems

UT Austin — Embedded Systems (edX)

Software Engineering

MIT 6.005 — Software Construction
or
UC Berkeley CS169

Principles of Computing

Rice University — Principles of Computing (Coursera)

Term 4

Computer Networking

Stanford CS144 Introduction to Computer Networking
or
UMass CS 453 / Kurose & Ross companion videos

Mobile Software Development

Stanford CS193p — Developing Apps for iOS (SwiftUI)
or
Google — Android Basics with Compose

Programming Languages & Compilers

Stanford CS143 Compilers (edX archive)
or
MIT 6.035

Artificial Intelligence

MIT 6.034
or
UC Berkeley CS188

Parallel Computing

Carnegie Mellon 15-418 Parallel Computer Architecture and Programming

Machine Learning

Stanford CS229 Machine Learning
or
Carnegie Mellon 10-601 Introduction to Machine Learning


Contributing

Spotted a broken link, found a better course, or have suggestions for the curriculum? Contributions are welcome — see CONTRIBUTING.md.

License

This curriculum is published under the MIT License. Course materials linked from this list are owned by their respective institutions and are subject to their own licenses.