Learning paths
Programming roadmaps
Follow a sequence of topics and practice each one before moving on.
Foundations
Programming fundamentals (PF)
Choose a language, then study values, decisions, loops, functions, recursion, and input handling. Each language lists the topics currently available.
93 lessons
Object-oriented programming (OOP)
Learn objects, encapsulation, inheritance, polymorphism, abstraction, and composition through language-specific examples.
40 lessons
Data structures and algorithms (DSA)
Start with Python's full core sequence, or study the same structures and algorithms in C, C++, Java, C#, Kotlin, JavaScript, TypeScript, and other languages. Compare operations, trace state, and reason about complexity.
81 lessons
Computer science subjects
Analysis of algorithms
Measure how running time and memory grow, solve recurrences, reason about average and amortized cost, and prove a loop correct.
17 lessons
Database systems
Model data with tables and constraints, query it with SQL, normalize designs, keep updates safe with transactions, and speed up queries with indexes.
24 lessons
Operating systems
Study CPU scheduling, page replacement, deadlock avoidance, synchronization, and virtual memory through small simulations.
17 lessons
Computer networks
Learn protocol layering, IP addressing, TCP and UDP sockets, HTTP messages, and how routers choose where to send a packet.
18 lessons
Software engineering
Practise the habits of building maintainable software: unit tests, safe refactoring, SOLID design, design patterns, version control, and clear contracts.
19 lessons
Information security
Learn the safe defaults: hashing, password storage, message authentication, why keys must not be reused, SQL injection, and secure randomness.
24 lessons
Parallel and distributed computing
Understand concurrency versus parallelism, thread pools, processes, speed-up limits, MapReduce, logical clocks, and replication with quorums.
18 lessons
Artificial intelligence (AI)
Model agents and environments, search state spaces, use heuristics with A*, play games with minimax, solve constraints, and use local search.
17 lessons
Knowledge representation and reasoning (KRR)
Represent what a system knows in logic and networks, and derive new facts with entailment, chaining, resolution, unification, and probability.
17 lessons
Machine learning (ML)
Learn how models are evaluated and trained: metrics, linear and logistic regression, k-nearest neighbors, decision trees, clustering, and validation.
18 lessons
Artificial neural networks and deep learning (ANN/DL)
Build up from one neuron to multilayer networks: perceptrons, activations, forward passes, backpropagation, loss functions, convolutions, and regularization.
18 lessons
Computer vision (CV)
Treat images as arrays, then filter, detect edges, threshold, label blobs, and match templates.
17 lessons