Overview and tracking completion of the OSSU curriculum. All completed or ongoing courses have their respective repos which have been nested here under .\src\
as submodules.
The following is an exhaustive list of the courses I have completed or intend to complete in linear order. Courses that don't belong to the Computer Science curriculum will be labeled as such with an arrow (<-
). Courses which I might not take or decide to drop half-way, will be marked with a question mark (?
).
- Python for Everybody
- Introduction to Computer Science and Programming Using Python
- CS50: Introduction to Computer Science
<-
?
- Systematic Program Design (formerly How to Code Simple Data and How to Code Complex Data)
- Basic Java
<-
- Spring Boot FreeCodeCamp (as a compliment for the Basic Java course)
<-
- Rustlings
<-
- Programming Languages Part A
- Programming Languages Part B
- Programming Languages Part C
- Object-Oriented Design
- Design Patterns
- Software Architecture
- Microservice Architecture and System Design with Python & Kubernetes
<-
- Calculus 1A
- Calculus 1B
- Calculus 1C
- Mathematics for Computer Science
- The Missing Semester of your CS Education
- Nand to Tetris Part I
- Nand to Tetris Part II
- OSTEP
- Linux From Scratch
<-
?
- Computer Networking: a Top-Down Approach
- Divide and Conquer, Sorting and Searching, and Randomized Algorithms
- Graph Search, Shortest Paths, and Data Structures
- Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
- Shortest Path Revisited, NP-Complete Problems and What to do About Them
- Cybersecurity Fundamentals
- Principles of Secure Coding
- Identifying Security Vulnerabilities
- Identifying Security Vulnerabilities in C/C++ Programming
- Databases: Modelling and Theory
- Databases: Relational Databases and SQL
- Databases: Semi-structured Data
- Machine Learning
- Computer Graphics
- Software Engineering: Introduction
- Ethics, Technology and Engineering
- Introduction to Intellectual Property
- Data Privacy Fundamentals
- Python Essentials for MLOps
<-
- DevOps, DataOps, MLOps
<-
- MLOps Platforms: Amazon SageMaker and Azure ML
<-
- MLOps Tools: MLflow and Hugging Face
<-
As per the curriculum, students need not take every course from Advanced CS, but should take every course relevant to their field of choice. The following are included tentatively.
- Parallel Programming
- Compilers
- Introduction to Haskell
- Learn Prolog Now!
- Software Debugging
- Software Testing
- Computation Structures 1: Digital Circuits
- Computation Structures 2: Computer Architecture
- Computation Structures 3: Computer Organization
- Computational Geometry
- Web Security Fundamentals
- Secure Software Development: Requirements, Design, and Reuse
- Secure Software Development: Implementation
- Secure Software Development: Verification and More Specialized Topics
- Essence of Linear Algebra
- Linear Algebra
- Introduction to Numerical Methods
- Introduction to Formal Logic
- Probability
-
?
This would conclude an equivalent undergraduate in Computer Science. I have taken many other courses relevant to computer science (mostly from my B.S. and M.S. in industrial engineering) that I didn't bother to include because they predate this commitment to formally educating myself in these topics.
This much is out of scope for now but will consider adding a few later on. A fine resource for OSSUians, by OSSUians.
-
?