This repository is dedicated to tracking my journey through the OSSU Computer Science curriculum. This curriculum is a complete path to obtaining a strong foundation in computer science, covering a wide range of topics from programming to systems, theory, and applications.
I am dedicated to self-paced learning, focusing on mastering the fundamentals of computer science. I will document my progress here, including:
- Notes and summaries of key concepts
- Code implementations and projects
- Solutions to problem sets
- Reflections and takeaways from each course
Module | Status | Notes |
---|---|---|
0: Introduction | Completed | - |
1a: Beginning Student Language | Learning Booleans and if Expressions | Link |
The OSSU curriculum contains several topics, each with multiple courses. Below is a table listing all the main areas of study with checkboxes for tracking my progress.
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Introduction to programming | simple programs simple data structures |
Link | ![]() |
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Introduction to Computer Science and Programming using Python | computation imperative programming basic data structures and algorithms |
Link | ![]() |
Topics To Be 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 | Topics covered | Notes | Certificate |
---|---|---|---|
Systematic Program Design | - | - | - |
Class-based Program Design | - | - | - |
Programming Languages, Part A | - | - | - |
Programming Languages, Part B | - | - | - |
Programming Languages, Part C | - | - | - |
Object-Oriented Design | - | - | - |
Software Architecture | - | - | - |
Topics To Be covered:
discrete mathematics
mathematical proofs
basic statistics
O-notation
discrete probability
and more
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Calculus 1A: Differentiation | - | - | - |
Calculus 1B: Integration | - | - | - |
Calculus 1C: Coordinate Systems & Infinite Series | - | - | - |
Mathematics for Computer Science | - | - | - |
Topics To Be covered:
terminals and shell scripting
vim
command line environments
version control
and more
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
The Missing Semester of Your CS Education | - | - | - |
Topics To Be 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 | Topics covered | Notes | Certificate |
---|---|---|---|
Build a Modern Computer from First Principles: From Nand to Tetris (alternative) | - | - | - |
Build a Modern Computer from First Principles: Nand to Tetris Part II | - | - | - |
Operating Systems: Three Easy Pieces | - | - | - |
Computer Networking: a Top-Down Approach | - | - | - |
Topics To Be 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 | Topics covered | Notes | Certificate |
---|---|---|---|
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 Paths Revisited, NP-Complete Problems and What To Do About Them | - | - | - |
Topics To Be covered
Confidentiality, Integrity, Availability
Secure Design
Defensive Programming
Threats and Attacks
Network Security
Cryptography
and more
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Cybersecurity Fundamentals | - | - | - |
Principles of Secure Coding | - | - | - |
Identifying Security Vulnerabilities | - | - | - |
Choose one of the following: | |||
Identifying Security Vulnerabilities in C/C++Programming | - | - | - |
Exploiting and Securing Vulnerabilities in Java Applications | - | - | - |
Topics To Be covered:
Agile methodology
REST
software specifications
refactoring
relational databases
transaction processing
data modeling
neural networks
supervised learning
unsupervised learning
OpenGL
ray tracing
and more
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Databases: Modeling and Theory | - | - | - |
Databases: Relational Databases and SQL | - | - | - |
Databases: Semistructured Data | - | - | - |
Machine Learning | - | - | - |
Computer Graphics (alternative) | - | - | - |
Software Engineering: Introduction | - | - | - |
Topics To Be covered:
Social Context
Analytical Tools
Professional Ethics
Intellectual Property
Privacy and Civil Liberties
and more
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Ethics, Technology and Engineering | - | - | - |
Introduction to Intellectual Property | - | - | - |
Data Privacy Fundamentals | - | - | - |
Topics To Be covered:
debugging theory and practice
goal-oriented programming
parallel computing
object-oriented analysis and design
UML
large-scale software architecture and design
and more
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Parallel Programming | - | - | - |
Compilers | - | - | - |
Introduction to Haskell | - | - | - |
Learn Prolog Now! (alternative)* | - | - | - |
Software Debugging | - | - | - |
Software Testing | - | - | - |
(*) book by Blackburn, Bos, Striegnitz (compiled from source, redistributed under CC license)
Topics covered:
digital signaling
combinational logic
CMOS technologies
sequential logic
finite state machines
processor instruction sets
caches
pipelining
virtualization
parallel processing
virtual memory
synchronization primitives
system call interface
and more
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Computation Structures 1: Digital Circuits alternative 1 alternative 2 | - | - | - |
Computation Structures 2: Computer Architecture | - | - | - |
Computation Structures 3: Computer Organization | - | - | - |
Topics To Be covered:
formal languages
Turing machines
computability
event-driven concurrency
automata
distributed shared memory
consensus algorithms
state machine replication
computational geometry theory
propositional logic
relational logic
Herbrand logic
game trees
and more
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Theory of Computation (alternative) | - | - | - |
Computational Geometry | - | - | - |
Game Theory | - | - | - |
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Web Security Fundamentals | - | - | - |
Security Governance & Compliance | - | - | - |
Digital Forensics Concepts | - | - | - |
Secure Software Development: Requirements, Design, and Reuse | - | - | - |
Secure Software Development: Implementation | - | - | - |
Secure Software Development: Verification and More Specialized Topics | - | - | - |
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Essence of Linear Algebra | - | - | - |
Linear Algebra | - | - | - |
Introduction to Numerical Methods | - | - | - |
Introduction to Formal Logic | - | - | - |
Probability | - | - | - |
Courses | Topics covered | Notes | Certificate |
---|---|---|---|
Fullstack Open | - | - | - |
Modern Robotics (Specialization) | - | - | - |
Data Mining (Specialization) | - | - | - |
Big Data (Specialization) | - | - | - |
Internet of Things (Specialization) | - | - | - |
Cloud Computing (Specialization) | - | - | - |
Data Science (Specialization) | - | - | - |
Functional Programming in Scala (Specialization) | - | - | - |
Game Design and Development with Unity 2020 (Specialization) | - | - | - |
As I complete each course, I will:
- Upload notes and projects for each topic.
- Create a dedicated folder for each course, containing assignments, code files, and additional resources.
- Share my learnings and key takeaways in the form of blog posts or video tutorials.
Stay tuned for more updates as I continue through the OSSU curriculum!
- Python
- JavaScript
- DrRacket
- Git & GitHub
This repository is licensed under the MIT License.