8000 GitHub - Corona040/ossu-cs-roadmap: πŸŽ“ Path to a free self-taught education in Computer Science!
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Corona040/ossu-cs-roadmap

Β 
Β 

Repository files navigation

Open Source Society logo

Open Source Society University

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

Awesome Open Source Society University - Computer Science

Curriculum


Core CS

Core systems

Topics 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

Progress 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

Topics 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

Progress 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

Topics covered Confidentiality, Integrity, Availability Secure Design Defensive Programming Threats and Attacks Network Security Cryptography and more

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

Progress 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

Topics covered: Agile methodology REST software specifications refactoring relational databases transaction processing data modeling neural networks supervised learning unsupervised learning OpenGL ray tracing and more

Progress 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

Topics covered: Social Context Analytical Tools Professional Ethics Intellectual Property Privacy and Civil Liberties and more

Progress 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

Topics covered: debugging theory and practice goal-oriented programming parallel computing object-oriented analysis and design UML large-scale software architecture and design and more

Progress 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

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

Progress 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

Topics 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

Progress 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

Progress 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

Final project

Progress 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

Code of conduct

OSSU's code of conduct.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0