The Python 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 |
---|---|---|---|---|---|
Programming for Everybody (Getting Started with Python) | University of Michigan | 4 weeks | 4-6 hours/week | self-paced | none |
Python Data Structures | University of Michigan | 4 weeks | 4-6 hours/week | self-paced | Programming for Everybody (Getting Started with Python) |
Using Python to Access Web Data | University of Michigan | 4 weeks | 4-6 hours/week | self-paced | Python Data Structures |
Using Databases with Python | University of Michigan | 3 weeks | 4-8 hours/week | self-paced | Using Python to Access Web Data |
Capstone: Retrieving, Processing, and Visualizing Data with Python | University of Michigan | 2 weeks | 4-6 hours/week | self-paced | Using Databases with Python |
Alternative
Courses | School | Duration | Effort | Frequency | Prerequisites |
---|---|---|---|---|---|
Python 3 Programming Specialization | University of Michigan | 5 months | 7 hours/week | self-paced | none |
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 |
Data Science
Courses | School | Duration | Effort | Frequency | Prerequisites |
---|---|---|---|---|---|
Introduction to Data Science in Python | University of Michigan | 3 weeks | 4-6 hours/week | self-paced | basic programming knowledge |
Applied Plotting, Charting & Data Representation in Python | University of Michigan | 4 weeks | 5-7 hours/week | self-paced | Introduction to Data Science in Python |
Applied Machine Learning in Python | University of Michigan | 6 weeks | 5-7 hours/week | self-paced | Applied Plotting, Charting & Data Representation in Python |
Applied Text Mining in Python | University of Michigan | 5 weeks | 5-7 hours/week | self-paced | Applied Machine Learning in Python |
Applied Social Network Analysis in Python | University of Michigan | 5 weeks | 5-7 hours/week | self-paced | Applied Text Mining in Python |
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 |
Introduction to Operating Systems | Georgia Tech | 8 weeks | 5-8 hours/week | self-paced | Build a Modern Computer from First Principles: From Nand to Tetris II |
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 |
---|---|---|---|---|---|
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 | Udacity | 1 week | 5 hours/week | self-paced | none |
The Unix Workbench | JHU | 4 weeks | 4 hours/week | once a month | none |