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.
Structure
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., but specifically chosen to meet the following criteria.
Courses requirements
Be open for enrollment - Run regularly (ideally in self-paced format, otherwise running at least once a month or so) - Fulfill the of OSSU - Fit neatly into the progression of the curriculum with respect to topics and difficulty level - Be of generally high quality in teaching materials and pedagogical principles
Organization
The curriculum is designed as follows:
- Intro CS: for students to try out CS and see if it’s right for them
- Core CS: corresponds roughly to the first three years of a computer science curriculum, taking classes that all majors would be required to take
- Advanced CS: corresponds roughly to the final year of a computer science curriculum, taking electives according to the student’s interests
- Final Project: a project for students to validate, consolidate, and display their knowledge, to be evaluated by their peers worldwide - Pro CS: graduate-level specializations students can elect to take after completing the above curriculum if they want to maximize their chances of getting a good job
Duration
It is possible to finish the Core CS part within about 2 years if you plan carefully and devote roughly 18-22 hours/week to your studies. Courses in Core CS should be taken linearly if possible, but since a perfectly linear progression is rarely possible, each class’s prerequisites is specified so that you can design a logical but non-linear progression based on the class schedules and your own life plans.
My progress
Talking about life plans: my progress has been on and off due to full days including small children and a day-time job. So some of the courses that I have taken are not offered anymore in the OSSU. However, I have added them to my personal fork. You can look at my progress there:
- ✅ for courses completed
- ❌ for courses that I do not intend to take - mostly because I have taken a similar/equivalent course in the past or my interests just do not align with it
- ~ for ongoing courses
- ? for courses where I am not quite sure yet
Courses
This is a selection of the courses taken and my notes attached to them. At some point I have unfortunately lost some data and so some of my work has been lost. In other courses I have not taken extensive notes. However, this mostly functions as a braindump for me, so happy with preserving whatever there is.