Learn

Programming tutorials

Choose a language and build understanding one concept at a time.

Learn by subject

458 lessons across 19 languages. Choose a subject path or browse a language below.

Programming fundamentals (PF)

Choose a language, then study values, decisions, loops, functions, recursion, and input handling. Each language lists the topics currently available.

Explore lessons →

Object-oriented programming (OOP)

Learn objects, encapsulation, inheritance, polymorphism, abstraction, and composition through language-specific examples.

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

Explore lessons →

Analysis of algorithms

Measure how running time and memory grow, solve recurrences, reason about average and amortized cost, and prove a loop correct.

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

Explore lessons →

Operating systems

Study CPU scheduling, page replacement, deadlock avoidance, synchronization, and virtual memory through small simulations.

Explore lessons →

Computer networks

Learn protocol layering, IP addressing, TCP and UDP sockets, HTTP messages, and how routers choose where to send a packet.

Explore lessons →

Software engineering

Practise the habits of building maintainable software: unit tests, safe refactoring, SOLID design, design patterns, version control, and clear contracts.

Explore lessons →

Information security

Learn the safe defaults: hashing, password storage, message authentication, why keys must not be reused, SQL injection, and secure randomness.

Explore lessons →

Parallel and distributed computing

Understand concurrency versus parallelism, thread pools, processes, speed-up limits, MapReduce, logical clocks, and replication with quorums.

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

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

Explore lessons →

Machine learning (ML)

Learn how models are evaluated and trained: metrics, linear and logistic regression, k-nearest neighbors, decision trees, clustering, and validation.

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

Explore lessons →

Computer vision (CV)

Treat images as arrays, then filter, detect edges, threshold, label blobs, and match templates.

Explore lessons →

19 languages