Syllabus by area
These are the subjects I have taught at university and the topics I work on in class. Any area can be done one to one, in a group or as an intensive.
Programming and software
6From syntax to the projects set in class: we fix what is not working and work through exam-style exercises.
Topics that get stuck most
- Programming I and II (C)
- Object-Oriented Programming (Java)
- Algorithms and data structures
- Distributed Systems (RPC, Docker, Kubernetes)
- Concurrent Programming
- Software Engineering
Data and databases
4Modelling, queries and real databases (SQL, MongoDB, Redis, Neo4j): the parts that stall coursework and final projects.
Topics that get stuck most
- Advanced Databases (MongoDB, Redis, Neo4j)
- Databases and SQL
- Big Data (Hadoop, Spark)
- Geographic Information Systems
AI, NLP and search
5Models, NLP and information retrieval, plus vibe coding: coding with AI assistants while reviewing what they produce.
Topics that get stuck most
- Information Retrieval and Analysis
- Machine Learning and Deep Learning (PyTorch)
- NLP and LLMs: RAG and agents
- MLOps and production deployment
- Vibe coding: coding with AI assistants
Maths for computer science
3The maths actually used in computer science: linear algebra for graphs and search, probability for machine learning and optimisation for training models. With step-by-step worked exercises.
Topics that get stuck most
- Linear algebra and graphs
- Probability and statistics for AI
- Calculus and optimisation
How I work a topic
- 1Diagnosis: what is failing and why, with your exercises in front of us
- 2The minimum theory to understand what we are doing
- 3Your exercises, corrected live
- 4A summary and a concrete plan for the week
Not on the list? Write to me: if I cannot teach it, I will tell you straight.