Skip to content

πŸŽ“ Path to a free self-taught education in Computer Science!

License

Notifications You must be signed in to change notification settings

Sk3ggox/computer-science

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Open Source Society University

Path to a free self-taught education in Computer Science!

Curriculum


Core CS

Core Programming

Courses Duration Effort Prerequisites Discussion
Systematic Program Design 13 weeks 8-10 hours/week none chat: part 1 / part 2
Class-based Program Design 13 weeks 5-10 hours/week Systematic Program Design, High School Math chat
Programming Languages, Part A 5 weeks 4-8 hours/week Systematic Program Design (Hear instructor) chat
Programming Languages, Part B 3 weeks 4-8 hours/week Programming Languages, Part A chat
Programming Languages, Part C 3 weeks 4-8 hours/week Programming Languages, Part B chat
Object-Oriented Design 13 weeks 5-10 hours/week Class Based Program Design chat
Software Architecture 4 weeks 2-5 hours/week Object Oriented Design chat

Core math

Courses Duration Effort Notes Prerequisites Discussion
Calculus 1A: Differentiation (alternative) 13 weeks 6-10 hours/week The alternate covers this and the following 2 courses high school math chat
Calculus 1B: Integration 13 weeks 5-10 hours/week - Calculus 1A chat
Calculus 1C: Coordinate Systems & Infinite Series 6 weeks 5-10 hours/week - Calculus 1B chat
Mathematics for Computer Science (alternative) 13 weeks 5 hours/week 2015/2019 solutions 2010 solutions 2005 solutions. Calculus 1C chat

CS Tools

Courses Duration Effort Prerequisites Discussion
The Missing Semester of Your CS Education 2 weeks 12 hours/week - chat

Core systems

Courses Duration Effort Additional Text / Assignments Prerequisites Discussion
Build a Modern Computer from First Principles: From Nand to Tetris (alternative) 6 weeks 7-13 hours/week - C-like programming language chat
Build a Modern Computer from First Principles: Nand to Tetris Part II 6 weeks 12-18 hours/week - one of these programming languages, From Nand to Tetris Part I chat
Operating Systems: Three Easy Pieces 10-12 weeks 6-10 hours/week - Nand to Tetris Part II chat
Computer Networking: a Top-Down Approach 8 weeks 4–12 hours/week Wireshark Labs algebra, probability, basic CS chat

Core theory

Courses Duration Effort Prerequisites Discussion
Divide and Conquer, Sorting and Searching, and Randomized Algorithms 4 weeks 4-8 hours/week any programming language, Mathematics for Computer Science chat
Graph Search, Shortest Paths, and Data Structures 4 weeks 4-8 hours/week Divide and Conquer, Sorting and Searching, and Randomized Algorithms chat
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming 4 weeks 4-8 hours/week Graph Search, Shortest Paths, and Data Structures chat
Shortest Paths Revisited, NP-Complete Problems and What To Do About Them 4 weeks 4-8 hours/week Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming chat

Core security

Courses Duration Effort Prerequisites Discussion
Cybersecurity Fundamentals 8 weeks 10-12 hours/week - chat
Principles of Secure Coding 4 weeks 4 hours/week - chat
Identifying Security Vulnerabilities 4 weeks 4 hours/week - chat

Choose one of the following:

Courses Duration Effort Prerequisites Discussion
Identifying Security Vulnerabilities in C/C++Programming 4 weeks 5 hours/week - chat
Exploiting and Securing Vulnerabilities in Java Applications 4 weeks 5 hours/week - chat

Core applications

Courses Duration Effort Prerequisites Discussion
Databases: Modeling and Theory 2 weeks 10 hours/week core programming chat
Databases: Relational Databases and SQL 2 weeks 10 hours/week core programming chat
Databases: Semistructured Data 2 weeks 10 hours/week core programming chat
Machine Learning 11 weeks 9 hours/week Basic coding chat
Computer Graphics (alternative) 6 weeks 12 hours/week C++ or Java, linear algebra chat
Software Engineering: Introduction 6 weeks 8-10 hours/week Core Programming, and a sizable project chat

Core ethics

Courses Duration Effort Prerequisites Discussion
Ethics, Technology and Engineering 9 weeks 2 hours/week none chat
Introduction to Intellectual Property 4 weeks 2 hours/week none chat
Data Privacy Fundamentals 3 weeks 3 hours/week none chat

Advanced CS

Advanced programming

Courses Duration Effort Prerequisites
Parallel Programming 4 weeks 6-8 hours/week Scala programming
Compilers 9 weeks 6-8 hours/week none
Introduction to Haskell 14 weeks - -
Learn Prolog Now! (alternative)* 12 weeks - -
Software Debugging 8 weeks 6 hours/week Python, object-oriented programming
Software Testing 4 weeks 6 hours/week Python, programming experience

Advanced systems

Courses Duration Effort Prerequisites Notes
Computation Structures 1: Digital Circuits alternative 1 alternative 2 10 weeks 6 hours/week Nand2Tetris II Alternate links contain all 3 courses.
Computation Structures 2: Computer Architecture 10 weeks 6 hours/week Computation Structures 1
Computation Structures 3: Computer Organization 10 weeks 6 hours/week Computation Structures 2

Advanced theory

Courses Duration Effort Prerequisites
Theory of Computation (alternative) 13 weeks 10 hours/week Mathematics for Computer Science, logic, algorithms
Computational Geometry 16 weeks 8 hours/week algorithms, C++
Game Theory 8 weeks 3 hours/week mathematical thinking, probability, calculus

Advanced Information Security

Courses Duration Effort Prerequisites
Web Security Fundamentals 5 weeks 4-6 hours/week understanding basic web technologies
Security Governance & Compliance 3 weeks 3 hours/week -
Digital Forensics Concepts 3 weeks 2-3 hours/week Core Security
Secure Software Development: Requirements, Design, and Reuse 7 weeks 1-2 hours/week Core Programming and Core Security
Secure Software Development: Implementation 7 weeks 1-2 hours/week Secure Software Development: Requirements, Design, and Reuse
Secure Software Development: Verification and More Specialized Topics 7 weeks 1-2 hours/week Secure Software Development: Implementation

Advanced math

Courses Duration Effort Prerequisites Discussion
Essence of Linear Algebra - - high school math chat
Linear Algebra 14 weeks 12 hours/week corequisite: Essence of Linear Algebra chat
Introduction to Numerical Methods 14 weeks 12 hours/week Linear Algebra chat
Introduction to Formal Logic 10 weeks 4-8 hours/week Set Theory chat
Probability 15 weeks 5-10 hours/week Differentiation and Integration chat

Final project

Courses Duration Effort Prerequisites
Fullstack Open 12 weeks 15 hours/week programming
Modern Robotics (Specialization) 26 weeks 2-5 hours/week freshman-level physics, linear algebra, calculus, linear ordinary differential equations
Data Mining (Specialization) 30 weeks 2-5 hours/week machine learning
Big Data (Specialization) 30 weeks 3-5 hours/week none
Internet of Things (Specialization) 30 weeks 1-5 hours/week strong programming
Cloud Computing (Specialization) 30 weeks 2-6 hours/week C++ programming
Data Science (Specialization) 43 weeks 1-6 hours/week none
Functional Programming in Scala (Specialization) 29 weeks 4-5 hours/week One year programming experience
Game Design and Development with Unity 2020 (Specialization) 6 months 5 hours/week programming, interactive design

Congratulations

keep learning

Code of conduct

OSSU's code of conduct.

How to show your progress

Fork the GitHub repo into your own GitHub account and put βœ… next to the stuff you've completed as you complete it. This can serve as your kanban board and will be faster to implement than any other solution (giving you time to spend on the courses).

Team

About

πŸŽ“ Path to a free self-taught education in Computer Science!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published