Open-Source Computer Science Degree

This project is a well-structured Bachelor's Degree in Computer Science curriculum. All the mathematics, programming, artificial intelligence, data science and electrical engineering materials are provided by experienced programmers and top schools like MIT, Harvard, Princeton, Stanford, etc. You do not need any knowledge of Computer Science or programming experience to start.

Prerequisites

Course School Effort Prerequisites
Precalculus Khan Academy 30 hours None
18.01: Single Variable Calculus MIT 12 hours/week Precalculus
8.01 Physics I: Classical Mechanics MIT 12 hours/week None
8.02 Physics II: Electricity and Magnetism MIT 12 hours/week 8.01 Physics I: Classical Mechanics

Semester 1

Course School Effort Prerequisites
CS50: Introducation to Computer Science Harvard 10-20 hours/week None
6.042J: Mathematics for Computer Science MIT 12 hours/week Single Variable Calculus
18.02: Multivariable Calculus MIT 12 hours/week Single Variable Calculus
18.03: Differential Equations MIT 12 hours/week Single Variable Calculus

Semester 2

Course School Effort Prerequisites
6.005.1: Software Construction MIT 8 hours/week Introducation to Computer Science
6.006: Introducation to Algorithms MIT 12 hours/week Introducation to Computer Science & Mathematics for Computer Science
18.06: Linear Algebra MIT 12 hours/week Multivariable Calculus
6.002: Circuits and Electronics MIT 12 hours/week Physics II: Electricity and Magnetism & Differential Equations
Optional: The Unix Workbench (4 weeks) Johns Hopkins University 4 hours/week Introducation to Computer Science

Semester 3

Course School Effort Prerequisites
6.004: Computation Structures MIT 12 hours/week Circuits and Electronics
6.005.2: Advanced Software Construction MIT 8 hours/week Software Construction
6.046: Design and Analysis of Algorithms MIT 12 hours/week Introducation to Algorithms & Mathematics for Computer Science
6.431: Probability MIT 12 hours/week Multivariable Calculus
C++ Programming Language: Part 1, Part 2, and Part 3 Microsoft 5 hours/week None

Semester 4

Course School Effort Prerequisites
CS107: Programming Paradigms Stanford 15 hours/week Introducation to Computer Science & C++
6.033: Computer System Engineering MIT 12 hours/week Computation Structures & Software Construction
CS224: Advanced Algorithms Harvard 12 hours/week Design and Analysis of Algorithms & Probability
18.6501: Fundamentals of Statistics MIT 12 hours/week Multivariable Calculus, Linear Algebra & Probability

Semester 5

Course School Effort Prerequisites
6.851: Advanced Data Structures MIT 12 hours/week Advanced Algorithms
6.034: Artificial Intelligence MIT 12 hours/week Introducation to Computer Science, Multivariable Calculus & Introducation to Algorithms
Computer Architecture Princeton 5 hours/week Computation Structures
Data Science Johns Hopkins University 6 hours/week None
Introduction to Linux The Linux Foundation 7 hours/week None
Introduction to Databases Stanford 10 hours/week Introducation to Computer Science

Semester 6

Course School Effort Prerequisites
Machine Learning Stanford 12 hours/week Probability, Multivariable Calculus & Linear Algebra
Data Science Johns Hopkins University 6 hours/week None
Automata Theory Stanford 10 hours/week Mathematics for Computer Science & Introducation to Algorithms
Compilers Stanford 10 hours/week Introducation to Computer Science, Mathematics for Computer Science & Computation Structures
Programming Languages Brown 10 hours/week Introducation to Computer Science, Mathematics for Computer Science, Computer Architecture & Advanced Software Construction

Semester 7

Course School Effort Prerequisites
Deep Learning Stanford 12 hours/week Introducation to Computer Science, Linear Algebra
Introduction to Computer Networking Stanford 10 hours/week Introducation to Computer Science, Introducation to Algorithms, Linear Algebra, Advanced Software Construction
CS193P: iOS Application Development or Android Development Stanford or Udemy 12 hours/week Introducation to Computer Science, Programming Paradigms, The Unix Workbench, Introduction to Databases
Computer Graphics University of California, San Diego 12 hours/week C++ Programming Language, Linear Algebra

Semester 8

Course School Effort Prerequisites
6.858: Computer Systems Security MIT 12 hours/week Computer System Engineering
Parallel Computer Architecture and Programming Carnegie Mellon University 10 hours/week Introducation to Computer Science, Computer System Engineering, C++ Programming Language, Advanced Software Construction, Compilers
Web Development Udemy 10 hours/week Introducation to Computer Science
Self-Driving Cars University of Toronto 10 hours/week Linear Algebra, Probability, Fundamentals of Statistics, Physics II: Electricity and Magnetism, Multivariable Calculus