Skip to content

Tracking my progress through the OSSU Computer Science curriculum.

License

Notifications You must be signed in to change notification settings

SelormDev/computer-science

Repository files navigation

OSSU - Computer Science


Open Source Society University - Computer Science License Code size in bytes Top language Last commit Total cost

🎯 What This Repository Is About

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.

πŸ“š What I’m Doing

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

πŸ“ˆ Current Progress

Systematic Program Design - Part 1

Module Status Notes
0: Introduction Completed -
1a: Beginning Student Language Learning Booleans and if Expressions Link

πŸ“ Detailed Learning Path & Progress

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.

πŸ“š Intro CS

βœ… Introduction to Programming

Courses Topics covered Notes Certificate
Introduction to programming simple programs simple data structures Link

βœ… Introduction to Computer Science

Courses Topics covered Notes Certificate
Introduction to Computer Science and Programming using Python computation imperative programming basic data structures and algorithms Link

πŸ“š Core CS

Core Programming

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 - - -

Core math

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 - - -

CS Tools

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 - - -

Core Systems

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 - - -

Core Theory

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 - - -

Core Security

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 - - -

Core 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 - - -

Core Ethics

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 - - -

πŸ“š Advanced CS

| Advanced Programming

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)

Advanced Systems

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 - - -

Advanced Theory

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 - - -

Advanced Information Security

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 - - -

Advanced Math

Courses Topics covered Notes Certificate
Essence of Linear Algebra - - -
Linear Algebra - - -
Introduction to Numerical Methods - - -
Introduction to Formal Logic - - -
Probability - - -

πŸ“š Final Project

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) - - -

πŸš€ How This Repo Will Evolve

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!


πŸ‘€ Author

πŸ› οΈ Tools & Technologies

  • Python
  • JavaScript
  • DrRacket
  • Git & GitHub

πŸ“œ License

This repository is licensed under the MIT License.