Free university-level lessons
Undergraduate computing modules, free to read
Programming, algorithms, networks, databases, AI, security and more. Every lesson is free to read in full, and every module is worked in a hands-on lab you can open with a free account.
Foundations
Start here: programming, logic, and how a computer stores and runs things.
7 lessons
Programming with Python
Learn Python programming hands on: algorithms, variables, if statements, loops, functions, lists, dictionaries and files.
See the module6 lessons
Discrete maths and logic
Learn discrete maths hands on: truth tables, sets, counting, functions, graphs and modular arithmetic, each checked in Python.
See the module6 lessons
Operating systems and Linux
Learn Linux and operating systems hands on: files, permissions, processes, services and logs, worked in a real Linux lab.
See the module6 lessons
Computer architecture
Learn computer architecture hands on: binary, logic gates, RISC-V, the CPU cycle, caches and pipelines, in a real VM.
See the module
Core computer science
The ideas under every program: data structures, algorithms, theory, compilers, databases and networks.
6 lessons
Data structures
Learn data structures hands on: arrays, stacks, queues, linked lists, hash tables, trees and heaps, and what each costs.
See the module6 lessons
Algorithms and complexity
Learn algorithms and complexity hands on: count steps, search, sort, write recursion, memoise answers and find paths in graphs.
See the module5 lessons
Theory of computation
Learn the theory of computation hands on: finite automata, regular expressions, grammars, Turing machines and what no program can decide.
See the module6 lessons
Compilers
Learn how compilers work by building one: lexing, parsing, type checks, interpreting and code generation, in a real VM.
See the module6 lessons
Databases
Learn relational databases and SQL hands on: tables and keys, queries, joins, changing data, normal forms and a web API.
See the module8 lessons
Computer networks
Learn computer networks hands on: subnets, routing, OSPF, BGP, NAT, DHCP, DNS, VLANs and VPNs, in real network labs.
See the module
Software engineering
Building software that lasts: testing, Git, APIs, design, distributed systems, DevOps and big data.
6 lessons
Software testing
Learn software testing hands on: unit tests, test cases, fakes, test-driven development and code coverage, with Python in a lab.
See the module6 lessons
Version control with Git
Learn Git hands on: commits, branches, merging, remotes, pull requests and how to undo mistakes safely.
See the module6 lessons
Web applications and APIs
Learn web APIs hands on: HTTP requests, REST design, JSON, status codes, API keys and tokens, rate limits and versioning.
See the module5 lessons
Requirements and software design
Learn requirements and software design hands on: user stories, models, coupling and cohesion, and layers, services or events.
See the module6 lessons
Distributed systems
Learn distributed systems hands on: replication, consistency, partitioning, quorums and safe retries, with a real store and a log.
See the module5 lessons
DevOps and cloud
Learn DevOps and cloud hands on: containers, configuration as code, monitoring, hardened delivery and a Git workflow.
See the module4 lessons
Big data engineering
Learn big data engineering hands on: Hadoop and MapReduce, Spark, Kafka streams and key-value stores, in real labs.
See the module
AI and data science
Statistics, machine learning, deep learning, language processing and building AI responsibly.
6 lessons
Statistics for data science
Learn statistics for data science hands on: spread, probability, distributions, sampling, p-values and correlation, worked in Python notebooks.
See the module8 lessons
Data science and machine learning
Learn data science and machine learning in Python notebooks: dataframes, cleaning, charts, regression, k-means and language models.
See the module5 lessons
Deep learning
Learn deep learning hands on: neural network layers, the forward pass, gradient descent, overfitting and convolutions.
See the module5 lessons
Natural language processing
Learn natural language processing hands on: tokens, word counts, TF-IDF, cosine similarity, text classification and word embeddings.
See the module5 lessons
Data mining
Learn data mining hands on: frequent itemsets, association rules, decision trees, precision and recall, and recommendations.
See the module5 lessons
Responsible AI
Learn responsible AI hands on: find bias in data, measure fairness, explain predictions, protect privacy and document a model.
See the module
Cybersecurity
Defending systems: fundamentals, cryptography, secure code, networks, forensics, operations and privacy.
5 lessons
Security fundamentals
Learn security fundamentals hands on: threats, risk, authentication, access control and layered defence, worked in a real Linux lab.
See the module5 lessons
Applied cryptography
Learn applied cryptography hands on: hashes and checksums, encryption, public keys, signatures, certificates and safe password storage.
See the module5 lessons
Network security
Learn network security hands on: attack surface, firewall rules, segmentation, TLS, SSH and VPNs, and spotting attacks, in real labs.
See the module6 lessons
Secure software development
Learn secure software development hands on: safe design, input checks, parameters, password hashing, dependencies and code review.
See the module7 lessons
Web and application security
Learn web and application security hands on: SQL injection, XSS, broken access control, weak sessions, secrets and hardening.
See the module5 lessons
Digital forensics
Learn digital forensics hands on: collect evidence, check it with hashes, rebuild a timeline from logs and write a report, in a real lab.
See the module5 lessons
Security operations
Learn security operations hands on: what to log, alert triage, detection rules, incident response and measuring it, in a real lab.
See the module5 lessons
Privacy and data protection
Learn privacy and data protection hands on: personal data, collecting less, pseudonymising, retention, and handling requests and breaches.
See the module
Teaching a class? Set this module for your students with a teacher guide, marked assignments and a lab for every student.