adapted from Stefan Luiken'sopen source CS curricukum
OPENCS is an open source computer science curriculum adapted from Stefan Luiken's open source CS program with all credits to him for personally crafting the curriculum. This program is designed according to the degree requirements of undergraduate computer science majors from top universities. All courses included in this program, originate from the world's top educational institutions in the field of computer science, such as Harvard and University of Helsinki.
I decided to merge my ongoing learning with this curriculum so as to be able to track my learning and also to structure it appropiately. For context, in the previous 2 years, I had predominantly learnt Python and JavaScript. Before undertaking this OPENCS, I had also enrolled in a local diploma program in web and programming to solidify my application on Python and JavaScript (you can find my motivations here).
The curriculum is designed as follows:
- Intro CS: giving a basic but broad overview of the computer science spectrum.
- Core CS: classes that all computer science majors would require to take.
- Specialization CS: a specialization in software engineering.
Program version: 1.3.0_madifz
(I've added a _madifz
suffix to differentiate from the original)
Topics covered:
basic computer science
basic programming
basic data structures and algorithms
Progress | Course(s) | University | Duration | Effort |
---|---|---|---|---|
In Progress | CS50's Introduction to Computer Science | Harvard University | 12 weeks | 20 hours/week |
Topics covered:
Java
object-oriented design
Course(s) | Progress | University | Duration | Effort |
---|---|---|---|---|
In Progress | Head First Java 3rd Edition O'Reilly | Literature | 5 weeks | 10 hours/week |
Assigned | Java Programming Masterclass covering Java 11 & Java 17 | Udemy | 10 weeks | 8 hours/week |
Topics covered:
object-oriented design
Java
IDE
Course(s) | Progress | University | Duration | Effort |
---|---|---|---|---|
Assigned | Computing Tools for Computer Science Studies | University of Helsinki | 1 week | 8-10 hours/week |
Assigned | Java Programming I | University of Helsinki | 7 weeks | 15-20 hours/week |
Assigned | Java Programming II | University of Helsinki | 7 weeks | 15-20 hours/week |
Topics covered:
computer architecture
memory
assembly
operating systems
secure design
network security
Course(s) | Progress | University | Duration | Effort |
---|---|---|---|---|
Finished ! | API and Web Service Introduction | Udemy | 1 week | 8 hours/week |
Assigned | Introduction to Networking | Stanford | 4 weeks | 7 hours/week |
Assigned | Cyber Security Base: Introduction to Cyber Security | University of Helsinki | 2 weeks | 8 hours/week |
Assigned | Cyber Security Base: Securing Software | University of Helsinki | 2 weeks | 8 hours/week |
Assigned | Build a Modern Computer from First Principles: From Nand to Tetris | Hebrew University of Jerusalem | 6 weeks | 7-13 hours/week |
Topics covered:
sorting and searching
O-notation
data structures
algorithms
Course(s) | Progress | University | Duration | Effort |
---|---|---|---|---|
Assigned | Problem Solving with Algorithms and Data Structures Using Python | Literature | 10 weeks | 12 hours/week |
Assigned | Design Patterns Second Edition | Literature | 4 weeks | 6 hours/week |
Assigned | AlgoExpert | AlgoExpert.io | 12 weeks | 10 hours/week |
Assigned | OCA: Oracle Certified Associate Java SE 8 Programmer | Literature | 8 weeks | 20 hours/week |
Topics covered:
databases
command line
Git
DevOps
Course(s) | Progress | University | Duration | Effort |
---|---|---|---|---|
Assigned | The Git & Github Bootcamp | Udemy | 2 weeks | 10 hours/week |
Assigned | The Command Line Bootcamp | Udemy | 2 weeks | 10 hours/week |
Assigned | Docker Mastery: Complete toolset | Udemy | 2 weeks | 10 hours/week |
Assigned | Apache Kafka Series: Kafka v2 for beginners | Udemy | 2 weeks | 10 hours/week |
Assigned | Databases: Relational Databases and SQL | Stanford | 2 weeks | 10 hours/week |
Assigned | Databases: Advanced Topics in SQL | Stanford | 2 weeks | 10 hours/week |
Assigned | Databases: Semistructured Data | Stanford | 2 weeks | 10 hours/week |
Assigned | SQL and PostgreSQL: The Complete Developer's Guide | Udemy | 2 weeks | 20 hours/week |
Topics covered:
software engineering
design patterns
best practices
Course(s) | Progress | University | Duration | Effort |
---|---|---|---|---|
Assigned | The Pragmatic Programmer | Literature | 4 weeks | 6 hours/week |
Assigned | Effective Java Third Edition | Literature | 4 weeks | 6 hours/week |
Assigned | The Missing README | Literature | 3 months | 2 hours/week |
Assigned | Software Engineering at Google | Literature | 3 months | 2 hours/week |
Assigned | System Design Interview: An insider's guide | Literature | 4 weeks | 6 hours/week |
Assigned | Clean Code | Literature | 4 weeks | 6 hours/week |
Assigned | Cracking the Coding Interview | Literature | 12 weeks | 20 hours/week |
Finished ! | The Coding Career Handbook | Literature | 2 weeks | 2 hours/week |
Topics covered:
large-scale software architecture and design
compilers
debugging theory and practice
Course(s) | Progress | University | Duration | Effort |
---|---|---|---|---|
Assigned | Software Engineering: Introduction | The University of British Columbia | 6 weeks | 10 hours/week |
Assigned | Software Debugging | Udacity | 8 weeks | 6 hours/week |
Assigned | Software Testing | Udacity | 4 weeks | 6 hours/week |
Assigned | Software Architecture & Design | Georgia Tech | 8 weeks | 12 hours/week |
Assigned | Software Construction in Java | MIT | 10 weeks | 15 hours/week |
Assigned | Advanced Software Construction in Java | MIT | 15 weeks | 10 hours/week |
Topics covered:
Android development
Java
Gradle
Fullstack web development
JavaScript
React
Course(s) | Progress | University | Duration | Effort |
---|---|---|---|---|
In Progress (Semester 1) | Diploma (Conversion) in Web and Programming | Singapore Polytechnic | 52 weeks | 8 hours/week |
Assigned | CSS for JavaScript Developers | Josh Comeau Courses | 12 weeks | 10 hours/week |
Assigned | Bootcamp: Full stack open 2022 | University of Helsinki | 12 weeks | 10 hours/week |
Assigned | Nanodegree: Android Basics | Udacity | 12 weeks | 10 hours/week |