The Open-Source Computer Science Degree

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.

Term 1

Intro to Computer Science

Stanford CS101 (Note: teaches in JavaScript)
or
Stanford CS106a (Note: teaches in Java)
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

Udacity UD849 (Note: Android platform)

Intro to Web Development

Udacity CS253

Intro to Databases

Stanford DB
or
MIT 6.830

Operating Systems

UC Berkeley CS162
or
MIT 6.828

Computer Graphics

MIT 6.837
or
UC San Diego edX

Term 3

Programming Languages Theory

Brown University CS173

Algorithms

Stanford Coursera
or
Princeton Coursera
or
Udacity CS215

System Engineering

MIT 6.033

Introduction to Embedded Systems and Real-Time Systems

[UC Riverside CS120B] (http://cms.cs.ucr.edu/faculty/philip/open_source_courses/CS120B_labs.html)
and/or
[UC Riverside CS122A] (http://cms.cs.ucr.edu/faculty/philip/open_source_courses/CS122A_labs.html)

Software Engineering

MIT 1.124J
or
UC Berkeley CS169 or Harvard CS164

Principles of Computing

Rice University Coursera

Term 4

Computer Networking

Stanford Networking
or
Udacity UD436

Mobile Software Development

University of Maryland Coursera (Note: Android platform)
or
Udacity UD585 (Note: iOS platform)

Programming Languages & Compilers

UC Berkeley CS164
or
MIT 6.035

Artificial Intelligence

MIT 6.034
or
UC Berkeley CS188

Parallel Computing

Carnegie Mellon 15-418

Machine Learning

Carnegie Mellon 10-806