Teaching
Friendly, example-driven learning resources plus academic papers.
Computer Science Foundations
Programming Fundamentals
Java is the first language most students meet here; Python follows later. Both get a fundamentals page in the order they're actually taught.
Algorithms
Sorting and searching, divide and conquer, greedy algorithms, dynamic programming, and traversal over trees, heaps, and graphs.
Databases
Relational modelling, normalization, and query design — from entity-relationship diagrams through to a working schema.
Mathematics for Computing
Linear algebra, calculus and optimization, and probability and statistics for graphics, machine learning, and data analysis, plus the discrete side: set theory, predicate logic, and formal methods.
Computer Systems & Networks
Binary representation, CPU architecture and the memory hierarchy, operating systems, and computer networks.
Concurrency
Threads, shared state, and the modern toolbelt — the capstone after imperative and object-oriented programming.
Machine Learning, Data & Vision
Machine Learning
Supervised, unsupervised, and deep learning, generative models, reinforcement learning, and adversarial search — the algorithmic core behind modern AI.
Text Mining & Natural Language Processing
Computer Vision & Graphics
Digital image processing, object recognition, and the transform pipeline behind real-time 3D graphics and VR.
Data Science & Cloud Computing
Exploratory data analysis and preprocessing, cloud computing models, big data and distributed systems, and data integration and visualisation.
Agentic, Cognitive & Adaptive Systems
AI, LLMs & Agentic Systems
A practical, no-code introduction to generative AI: large language models, context engineering, orchestration, retrieval-augmented generation, and agentic task execution.
Cognitive and Agentic Systems
Theory and practice in designing and implementing cognitive systems
Cybernetics
Feedback control and requisite variety, artificial life and emergent systems, and evolutionary computation — the study of regulation and adaptation in animal, machine, and organisation alike.
Finding Myself: Building a Self-Model in PatLang
Engineering documentation for a real, working reference implementation of a reflexive cognitive architecture, built in PatLang: the journey of building it, its safety and ethics requirements, and a page for each component. A weak-AI claim throughout — an analogue, not an instance. Companion to the theoretical Modelling the Self series.
Software Engineering & Professional Practice
Software Engineering
Project Management Methodologies
How real projects actually get planned, scheduled, and run: Waterfall, the Agile family (Scrum, Kanban, XP, Lean), the hybrids and "agile-inspired" reality most companies actually practice, and the scheduling techniques (WBS, Gantt, Critical Path Method, PERT) that sit underneath all of them.
Quality Management
How organisations and projects actually know their work is good: ISO 9001 and its software-specific descendants, CMMI's graduated maturity model, and PRINCE2's quality theme.
Data Security
Encryption, network attacks, memory corruption, injection and access control.
Ethics in Computing
Games, Graphics & Spatial Mathematics
Game Development
Geometric Algebra
A guide to geometric algebra and interval arithmetic — from blades and rotors through to a working Ruby implementation and conformal-space worked examples.
Learning, Projects & Reflective Practice
Project Guidance
Navigating substantial projects: staying oriented, generating evidence, and writing as you build.
Learning
Cross-cutting pages about how learning itself works: what uncertainty, failure, and taking a step to get a second viewpoint have in common, and why they resolve into the same underlying skill, plus practical guidance for students on this site's own degree programmes.
Pedagogy & Learning Theory
How learning and teaching actually work, and how to act on it: a maturity model for a learner's own study process, what a UK Bachelor's degree is formally meant to produce, the educational theory of who decides what gets learned, and practical decision guides for educators and academic tutors applying it.
The Human & Forensic Science of Software
A five-lecture series reading software engineering through anthropology, social science, anatomy and pathology, and the criminology of code.
Lessons from PatLang
A real, ongoing human-directed, AI-built development project, read back through the site's own teaching material: testing discipline, project navigation, professional integrity, and instrumenting long-running software for health and progress monitoring.
Academic Papers
Academic Papers
Academic papers and technical manuscripts.