open-source-cs/README.md
2019-01-18 23:25:07 -05:00

7.6 KiB

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

Programming

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

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 | Stanford | 8 weeks | 5-7 hours/week | self-paced | none

Systems

Courses | School | Duration | Effort | Frequency | Prerequisites :-- | :--: | :--: Build a Modern Computer from First Principles: From Nand to Tetris | Hebrew School 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 School 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| 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 | 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 :-- | :--: | :--: 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

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