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