Courses | Duration | Effort | Prerequisites | Discussion |
---|---|---|---|---|
Systematic Program Design | 13 weeks | 8-10 hours/week | none | chat: part 1 / part 2 |
Class-based Program Design | 13 weeks | 5-10 hours/week | Systematic Program Design, High School Math | chat |
Programming Languages, Part A | 5 weeks | 4-8 hours/week | Systematic Program Design (Hear instructor) | chat |
Programming Languages, Part B | 3 weeks | 4-8 hours/week | Programming Languages, Part A | chat |
Programming Languages, Part C | 3 weeks | 4-8 hours/week | Programming Languages, Part B | chat |
Object-Oriented Design | 13 weeks | 5-10 hours/week | Class Based Program Design | chat |
Software Architecture | 4 weeks | 2-5 hours/week | Object Oriented Design | chat |
Courses | Duration | Effort | Notes | Prerequisites | Discussion |
---|---|---|---|---|---|
Calculus 1A: Differentiation (alternative) | 13 weeks | 6-10 hours/week | The alternate covers this and the following 2 courses | high school math | chat |
Calculus 1B: Integration | 13 weeks | 5-10 hours/week | - | Calculus 1A | chat |
Calculus 1C: Coordinate Systems & Infinite Series | 6 weeks | 5-10 hours/week | - | Calculus 1B | chat |
Mathematics for Computer Science (alternative) | 13 weeks | 5 hours/week | 2015/2019 solutions 2010 solutions 2005 solutions. | Calculus 1C | chat |
Courses | Duration | Effort | Prerequisites | Discussion |
---|---|---|---|---|
The Missing Semester of Your CS Education | 2 weeks | 12 hours/week | - | chat |
Courses | Duration | Effort | Additional Text / Assignments | Prerequisites | Discussion |
---|---|---|---|---|---|
Build a Modern Computer from First Principles: From Nand to Tetris (alternative) | 6 weeks | 7-13 hours/week | - | C-like programming language | chat |
Build a Modern Computer from First Principles: Nand to Tetris Part II | 6 weeks | 12-18 hours/week | - | one of these programming languages, From Nand to Tetris Part I | chat |
Operating Systems: Three Easy Pieces | 10-12 weeks | 6-10 hours/week | - | Nand to Tetris Part II | chat |
Computer Networking: a Top-Down Approach | 8 weeks | 4β12 hours/week | Wireshark Labs | algebra, probability, basic CS | chat |
Courses | Duration | Effort | Prerequisites | Discussion |
---|---|---|---|---|
Divide and Conquer, Sorting and Searching, and Randomized Algorithms | 4 weeks | 4-8 hours/week | any programming language, Mathematics for Computer Science | chat |
Graph Search, Shortest Paths, and Data Structures | 4 weeks | 4-8 hours/week | Divide and Conquer, Sorting and Searching, and Randomized Algorithms | chat |
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming | 4 weeks | 4-8 hours/week | Graph Search, Shortest Paths, and Data Structures | chat |
Shortest Paths Revisited, NP-Complete Problems and What To Do About Them | 4 weeks | 4-8 hours/week | Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming | chat |
Courses | Duration | Effort | Prerequisites | Discussion |
---|---|---|---|---|
Cybersecurity Fundamentals | 8 weeks | 10-12 hours/week | - | chat |
Principles of Secure Coding | 4 weeks | 4 hours/week | - | chat |
Identifying Security Vulnerabilities | 4 weeks | 4 hours/week | - | chat |
Choose one of the following:
Courses | Duration | Effort | Prerequisites | Discussion |
---|---|---|---|---|
Identifying Security Vulnerabilities in C/C++Programming | 4 weeks | 5 hours/week | - | chat |
Exploiting and Securing Vulnerabilities in Java Applications | 4 weeks | 5 hours/week | - | chat |
Courses | Duration | Effort | Prerequisites | Discussion |
---|---|---|---|---|
Databases: Modeling and Theory | 2 weeks | 10 hours/week | core programming | chat |
Databases: Relational Databases and SQL | 2 weeks | 10 hours/week | core programming | chat |
Databases: Semistructured Data | 2 weeks | 10 hours/week | core programming | chat |
Machine Learning | 11 weeks | 9 hours/week | Basic coding | chat |
Computer Graphics (alternative) | 6 weeks | 12 hours/week | C++ or Java, linear algebra | chat |
Software Engineering: Introduction | 6 weeks | 8-10 hours/week | Core Programming, and a sizable project | chat |
Courses | Duration | Effort | Prerequisites | Discussion |
---|---|---|---|---|
Ethics, Technology and Engineering | 9 weeks | 2 hours/week | none | chat |
Introduction to Intellectual Property | 4 weeks | 2 hours/week | none | chat |
Data Privacy Fundamentals | 3 weeks | 3 hours/week | none | chat |
Courses | Duration | Effort | Prerequisites |
---|---|---|---|
Parallel Programming | 4 weeks | 6-8 hours/week | Scala programming |
Compilers | 9 weeks | 6-8 hours/week | none |
Introduction to Haskell | 14 weeks | - | - |
Learn Prolog Now! (alternative)* | 12 weeks | - | - |
Software Debugging | 8 weeks | 6 hours/week | Python, object-oriented programming |
Software Testing | 4 weeks | 6 hours/week | Python, programming experience |
Courses | Duration | Effort | Prerequisites | Notes |
---|---|---|---|---|
Computation Structures 1: Digital Circuits alternative 1 alternative 2 | 10 weeks | 6 hours/week | Nand2Tetris II | Alternate links contain all 3 courses. |
Computation Structures 2: Computer Architecture | 10 weeks | 6 hours/week | Computation Structures 1 | |
Computation Structures 3: Computer Organization | 10 weeks | 6 hours/week | Computation Structures 2 |
Courses | Duration | Effort | Prerequisites |
---|---|---|---|
Theory of Computation (alternative) | 13 weeks | 10 hours/week | Mathematics for Computer Science, logic, algorithms |
Computational Geometry | 16 weeks | 8 hours/week | algorithms, C++ |
Game Theory | 8 weeks | 3 hours/week | mathematical thinking, probability, calculus |
Courses | Duration | Effort | Prerequisites |
---|---|---|---|
Web Security Fundamentals | 5 weeks | 4-6 hours/week | understanding basic web technologies |
Security Governance & Compliance | 3 weeks | 3 hours/week | - |
Digital Forensics Concepts | 3 weeks | 2-3 hours/week | Core Security |
Secure Software Development: Requirements, Design, and Reuse | 7 weeks | 1-2 hours/week | Core Programming and Core Security |
Secure Software Development: Implementation | 7 weeks | 1-2 hours/week | Secure Software Development: Requirements, Design, and Reuse |
Secure Software Development: Verification and More Specialized Topics | 7 weeks | 1-2 hours/week | Secure Software Development: Implementation |
Courses | Duration | Effort | Prerequisites | Discussion |
---|---|---|---|---|
Essence of Linear Algebra | - | - | high school math | chat |
Linear Algebra | 14 weeks | 12 hours/week | corequisite: Essence of Linear Algebra | chat |
Introduction to Numerical Methods | 14 weeks | 12 hours/week | Linear Algebra | chat |
Introduction to Formal Logic | 10 weeks | 4-8 hours/week | Set Theory | chat |
Probability | 15 weeks | 5-10 hours/week | Differentiation and Integration | chat |
Courses | Duration | Effort | Prerequisites |
---|---|---|---|
Fullstack Open | 12 weeks | 15 hours/week | programming |
Modern Robotics (Specialization) | 26 weeks | 2-5 hours/week | freshman-level physics, linear algebra, calculus, linear ordinary differential equations |
Data Mining (Specialization) | 30 weeks | 2-5 hours/week | machine learning |
Big Data (Specialization) | 30 weeks | 3-5 hours/week | none |
Internet of Things (Specialization) | 30 weeks | 1-5 hours/week | strong programming |
Cloud Computing (Specialization) | 30 weeks | 2-6 hours/week | C++ programming |
Data Science (Specialization) | 43 weeks | 1-6 hours/week | none |
Functional Programming in Scala (Specialization) | 29 weeks | 4-5 hours/week | One year programming experience |
Game Design and Development with Unity 2020 (Specialization) | 6 months | 5 hours/week | programming, interactive design |
Fork the GitHub repo into your own GitHub account and put β next to the stuff you've completed as you complete it. This can serve as your kanban board and will be faster to implement than any other solution (giving you time to spend on the courses).
- Eric Douglas: founder of OSSU
- Josh Hanson: lead technical maintainer
- Waciuma Wanjohi: lead academic maintainer
- Contributors