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.
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |