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.

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.

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

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.

Games, Graphics & Spatial Mathematics

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.

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