See the full OSSU CS curriculum here. This document is a collection of all the courses and certifications I've earned under the OSSU course.
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., but specifically chosen to meet the following criteria.
Courses must:
- Be open for enrollment
- Run regularly (ideally in self-paced format, otherwise running multiple times per year)
- Be of generally high quality in teaching materials and pedagogical principles
- Match the curricular standards of the CS 2013: Curriculum Guidelines for Undergraduate Degree Programs in Computer Science
Topics covered:
computation
imperative programming
basic data structures and algorithms
and more
| Courses | Duration | Institution | Platform | Certificate |
|---|---|---|---|---|
| CS50x - CS50’s Introduction to Computer Science | 11 weeks | Harvard University | Harvard OpenCourseWare | - No Certificate (Audit Access) - |
| CS50w- CS50’s Web Programming with Python and JavaScript | 9 weeks | Harvard University | Harvard OpenCourseWare | - No Certificate (Audit Access) - |
| Java Programming: Solving Problems with Software | 5 Modules | Duke University | Coursera | -link- |
Topics covered:
functional programming
design for testing
program requirements
common design patterns
unit testing
object-oriented design
static typing
dynamic typing
ML-family languages (via Standard ML)
Lisp-family languages (via Racket)
Ruby
and more
| Courses | Duration | Institution | Platform | Certificate |
|---|---|---|---|---|
| How To Code: Simple Data | 7 weeks | The University of British Columbia | edX | -link- |
| How To Code: Complex Data | 6 weeks | The University of British Columbia | edX | -link- |
| Class-based Program Design | 13 weeks | Northeastern University | NEU Online Portal | - No Certificate Provided - |
| Programming Languages, Part A | 5 weeks | University of Washington | Coursera | -link- |
| Programming Languages, Part B | 3 weeks | University of Washington | Coursera | -link- |
| Programming Languages, Part C | 3 weeks | University of Washington | Coursera | -link- |
| Object-Oriented Design | 4 weeks | University of Alberta | Coursera | -link- |
| Design Patterns | 4 weeks | University of Alberta | Coursera | -link- |
| Software Architecture | 4 weeks | University of Alberta | Coursera | -link- |
| Service Oriented Architecture | 4 weeks | University of Alberta | Coursera | -link- |
Topics covered:
terminals and shell scripting
command line environments
version control
and more
| Courses | Duration | Institution | Platform | Certificate |
|---|---|---|---|---|
| The Missing Semester of Your CS Education | 2 weeks | Massachusetts Institute of Technology | MIT Open Learning | No Certificate Provided |
Topics covered:
procedural programming
manual memory management
boolean algebra
gate logic
memory
computer architecture
assembly
machine language
virtual machines
high-level languages
compilers
operating systems
network protocols
and more
| Courses | Duration | Institution | Platform | Certificate |
|---|---|---|---|---|
| Build a Modern Computer from First Principles: From Nand to Tetris | 6 weeks | Hebrew University of Jerusalem | Coursera | -link- |
| Build a Modern Computer from First Principles: Nand to Tetris Part II | 6 weeks | Hebrew University of Jerusalem | Coursera | -link- |
| Operating Systems: Three Easy Pieces | 10-12 weeks | University of Wisconsin, Madison | University Online Portal | - No Certificate Provided - |
| Computer Networking: a Top-Down Approach | 8 weeks | - | Online Portal | - No Certificate Provided - |
Topics covered:
divide and conquer
sorting and searching
randomized algorithms
graph search
shortest paths
data structures
greedy algorithms
minimum spanning trees
dynamic programming
NP-completeness
and more
| Courses | Duration | Institution | Platform | Certificate |
|---|---|---|---|---|
| Divide and Conquer, Sorting and Searching, and Randomized Algorithms | 4 weeks | Stanford University | Coursera | -link- |
| Graph Search, Shortest Paths, and Data Structures | 4 weeks | Stanford University | Coursera | -link- |
| Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming | 4 weeks | Stanford University | Coursera | -link- |
| Shortest Paths Revisited, NP-Complete Problems and What To Do About Them | 4 weeks | Stanford University | Coursera | -link- |
| Algorithms, Part I | 13 modules | Princeton University | Coursera | - No Certificate Provided - |
| Algorithms, Part II | 14 modules | Princeton University | Coursera | - No Certificate Provided - |
Topics covered
Confidentiality, Integrity, Availability
Secure Design
Defensive Programming
Threats and Attacks
Network Security
Cryptography
and more
| Courses | Duration | Institution | Platform | Certificate |
|---|---|---|---|---|
| Principles of Secure Coding | 4 weeks | University of California, Davis | Coursera | -link- |
| Identifying Security Vulnerabilities | 4 weeks | University of California, Davis | Coursera | -link- |
| Exploiting and Securing Vulnerabilities in Java Applications | 4 weeks | University of California, Davis | Coursera | -link- |
Topics covered:
Agile methodology
REST
software specifications
refactoring
relational databases
transaction processing
data modeling
OpenGL
ray tracing
and more
| Courses | Duration | Institution | Platform | Certificate |
|---|---|---|---|---|
| Databases: Modeling and Theory | 2 weeks | Stanford University | edX | -link- |
| Databases: Relational Databases and SQL | 2 weeks | Stanford University | edX | - No Certificate (Audit Access) - |
| Databases: Semistructured Data | 2 weeks | Stanford University | edX | - No Certificate (Audit Access) - |
| Computer Graphics | 6 weeks | University of California San Diego | Online Portal | - No Certificate Provided - |
| Software Engineering: Introduction | 6 weeks | The University of British Columbia | edX | - No Certificate (Audit Access) - |
Topics covered:
Social Context
Analytical Tools
Professional Ethics
Intellectual Property
Privacy and Civil Liberties
and more
| Courses | Duration | Institution | Platform | Certificate |
|---|---|---|---|---|
| Ethics, Technology and Engineering | 9 weeks | Eindhoven University of Technology | Coursera | - No Certificate (Audit Access) - |
| Introduction to Intellectual Property | 4 weeks | Northeastern University | Coursera | - No Certificate (Audit Access) - |
| Data Privacy Fundamentals | 3 weeks | Northeastern University | Coursera | - No Certificate (Audit Access) - |
After completing every required course in Core CS, students should choose a subset of courses from Advanced CS based on interest. Not every course from a subcategory needs to be taken. But students should take every course that is relevant to the field they intend to go into.
Topics covered:
debugging theory and practice
parallel computing
object-oriented analysis and design
large-scale software architecture and design
and more
| Courses | Duration | Institution | Platform | Certificate |
|---|---|---|---|---|
| Functional Programming Principles in Scala | 6 weeks | EPFL - Swiss Federal Technology Institute of Lausanne | Coursera | -link- |
| Functional Programming Design in Scala | 5 weeks | EPFL - Swiss Federal Technology Institute of Lausanne | Coursera | -link- |
| Parallel Programming | 4 weeks | EPFL - Swiss Federal Technology Institute of Lausanne | Coursera | -link- |
| Big Data Analysis with Scala and Spark | 4 weeks | EPFL - Swiss Federal Technology Institute of Lausanne | Coursera | -link- |
| Software Debugging | 8 weeks | - | Udacity (YouTube) | - No Certificate Provided - |
| Software Testing | 4 weeks | - | Udacity (YouTube) | - No Certificate Provided - |
Topics covered:
Core AWS Services
EC2
S3
RDS
VPC
ELB
IAM
Serverless Architectures with AWS Lambda
Cloud Computing Basics (IaaS, PaaS, SaaS)
Amazon RDS and DynamoDB
and more
| Courses | Institution | Platform | Certificate |
|---|---|---|---|
| AWS Cloud Technical Essentials | Amazon Web Services | Coursera | -link- |
| Migrating to the AWS Cloud | Amazon Web Services | Coursera | -link- |
| Architecting Solutions on AWS | Amazon Web Services | Coursera | -link- |
Topics covered:
Linux
Shell
Go
HTTP Clients
HTTP Servers
Git
Docker
and more
| Courses | Platform | Certificate |
|---|---|---|
| Learn Linux | Boot.dev | -link- |
| Learn Go for Developers | Boot.dev | -link- |
| Learn HTTP Clients in Go | Boot.dev | -link- |
| Learn SQL | Boot.dev | -link- |
| Learn HTTP Servers in Go | Boot.dev | -link- |
| Learn Git | Boot.dev | -link- |
| Learn Git 2 | Boot.dev | -link- |
| Learn Docker | Boot.dev | -link- |
| Learn JavaScript | Boot.dev | -link- |
| Learn TypeScript | Boot.dev | -link- |
| Learn Pub/Sub Architecture in RabbitMQ | Boot.dev | -link |