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.
Courses | School | Duration | Effort | Frequency | Prerequisites |
---|---|---|---|---|---|
Intro to Computer Science | UVA | 12 week | 5 hours/week | self-paced | none |
Mathematical Thinking in Computer Science | UC San Diego | 6 weeks | 2-5 hours/week | once a month | none |
Courses | School | Duration | Effort | Frequency | Prerequisites |
---|---|---|---|---|---|
Java Programming: Solving Problems with Software | Duke | 4 weeks | 4-8 hours/week | twice a month | none |
Java Programming: Arrays, Lists, and Structured Data | Duke | 4 weeks | 4-8 hours/week | twice a month | Java Programming: Solving Problems with Software |
Object Oriented Programming in Java | Duke | 6 weeks | 4-6 hours/week | every week | Java Programming: Arrays, Lists, and Structured Data |
Data Structures and Performance | Duke | 6 weeks | 6-10 hours/week | every week | Object Oriented Programming in Java |
Java Programming: Principles of Software Design | Duke | 4 weeks | 4-8 hours/week | twice a month | Java Programming: Arrays, Lists, and Structured Data |
Java Programming: Build a Recommendation System | Duke | 4 weeks | 3-6 hours/week | once a month | Java Programming: Principles of Software Design |
Programming Languages, Part A | UW | 5 weeks | 8-16 hours/week | once a month | Object Oriented Programming in Java |
Programming Languages, Part B | UW | 3 weeks | 8-16 hours/week | once a month | Programming Languages, Part A |
Programming Languages, Part C | UW | 3 weeks | 8-16 hours/week | once a month | Programming Languages, Part B |
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 | Stanford | 8 weeks | 5-7 hours/week | self-paced | none |
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 |
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 |
Courses | School | Duration | Effort | Frequency | Prerequisites |
---|---|---|---|---|---|
Software Engineering: Introduction | UBCx | 6 weeks | 8-10 hours/week | self-paced | Java Programming: Build a Recommendation System |
Machine Learning | Stanford | 11 weeks | 5-7 hours/week | twice a month | Linear Algebra - Foundations to Frontiers |
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 |
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 |
Version Control with Git | Atlassian | 2 weeks | 8 hours/week | self-paced | none |
Linux Server Management and Security | UC | 3 weeks | 5 hours/week | self-paced | Linux Command Line Basics |
Courses | School | Duration | Effort | Frequency | Prerequisites |
---|---|---|---|---|---|
Internet Connection: How to Get Online? | CISCO | 4 weeks | 2.5-5 hours/week | self-paced | none |
Network Protocols and Architecture | CISCO | 4 weeks | 2.5-5 hours/week | self-paced | Internet Connection: How to Get Online? |
Data Communications and Network Services | CISCO | 4 weeks | 2.5-5 hours/week | self-paced | Network Protocols and Architecture |
Home Networking Basics | CISCO | 4 weeks | 2.5-5 hours/week | self-paced | Data Communications and Network Services |
Introduction to Cisco Networking | CISCO | 4 weeks | 4-7 hours/week | self-paced | Home Networking Basics |
System Administration and IT Infrastructure Services | 2 weeks | 8-10 hours/week | self-paced | none |
Courses | School | Duration | Effort | Frequency | Prerequisites |
---|---|---|---|---|---|
Introduction to Cybersecurity for Business | UC | 3 weeks | 5 hours/week | self-paced | none |
Cyber Threats and Attack Vectors | UC | 3 weeks | 4 hours/week | self-paced | Introduction to Cybersecurity for Business |
Detecting and Mitigating Cyber Threats and Attacks | UC | 3 weeks | 4 hours/week | self-paced | Cyber Threats and Attack Vectors |
Proactive Computer Security | UC | 3 weeks | 4 hours/week | self-paced | Detecting and Mitigating Cyber Threats and Attacks |