The OSSU curriculum is a complete education in computer science using online materials. It's not merely for career training or professional development. It's for those who want a proper, well-rounded grounding in concepts fundamental to all computing disciplines, and for those who have the discipline, will, and (most importantly!) good habits to obtain this education largely on their own, but with support from a worldwide community of fellow learners.
It is designed according to the degree requirements of undergraduate computer science majors, minus general education (non-CS) requirements, as it is assumed most of the people following this curriculum are already educated outside the field of CS. The courses themselves are among the very best in the world, often coming from Harvard, Princeton, MIT, etc.
| Courses | Duration | Effort | Completion | Topics |
|---|---|---|---|---|
| Python for Everybody | 10 weeks | 10 hours/week | ✅ | simple programs simple data structures |
| Introduction to Computer Science - CS50 | 12 weeks | 10-20 hours/week | ✅ | problem-solving algorithms data structures C programming |
| Courses | Duration | Effort | Prerequisites | Completion |
|---|---|---|---|---|
| Arithmetic | 20 Weeks | 8 hours/week | None | ✅ |
| Pre-Algebra | 14 Weeks | 6 hours/week | Arithmetic | ⬜️ |
| Algebra 1 | 19 Weeks | 8 hours/week | Pre-Algebra | ⬜️ |
| Geometry | 25 Weeks | 8 hours/week | Algebra 1 | ⬜️ |
| Algebra 2 | 28 Weeks | 8 hours/week | Algebra 1, Geometry | ⬜️ |
| Trigonometry | 18 Weeks | 8 hours/week | Algebra 2, Geometry | ⬜️ |
| Precalculus | 26 Weeks | 9 hours/week | Trigonometry | ⬜️ |
| Courses | Duration | Effort | Completion | Topics |
|---|---|---|---|---|
| Systematic Program Design | 13 weeks | 8-10 hours/week | ✅ | program design functional programming testing abstraction |
| Class-based Program Design | 13 weeks | 5-10 hours/week | ✅ | object-oriented design data structures algorithm complexity |
| Programming Languages | 11 weeks | 4-8 hours/week | ✅ | ML-family languages Lisp-family languages (via Racket) Ruby |
| Object-Oriented Design | 13 weeks | 5-10 hours/week | ⬜️ | object-oriented design common design patterns |
| Name | Author(s) | Completion |
|---|---|---|
| How to Design Programs, Second Edition | Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi | ⬜️ |