Heavy on implementation
- You will write a lot of Python, not just read about it.
- You will build models in NumPy before using PyTorch.
- Understanding the framework means being able to debug it.
Orientation · Start here
This page tells you everything you need to begin. Read it once, end to end, before your first laboratory session — it will save you hours later. It explains how the course is structured, how to navigate the materials, how to set up your environment and how to get help when you need it.
COMP329 is the capstone course of the AI sequence. It assumes you already know the fundamentals of machine learning, and it takes you into the architectures, training techniques and engineering practices that make contemporary deep learning systems work.
Over one semester you will build neural networks from first principles, train them at depth, fine-tune pretrained transformers, implement generative models and deploy a trained system. You will spend a lot of time running code, watching loss curves, and thinking carefully about whether your results mean what you think they mean.
This course is demanding, but it is also unusually rewarding. By the end you will have a trained model, a reproducible training pipeline and an honest evaluation report — a genuine portfolio piece that demonstrates not just that you can call a library, but that you understand what it is doing and why.
If you have not already read the syllabus and the course overview, do that first. They define the learning outcomes, assessment weightings and policies that this orientation page assumes.
You are in exactly the right place. COMP329 picks up where COMP328 ends and does not reteach regression, classification, decision trees, ensembles or the basic evaluation framework — those are assumed. If you feel rusty on any of them, review your COMP328 notes before week 3, when the first assignment is due.
Advanced machine learning is a different kind of subject from the courses that precede it. It is less about learning rules and more about developing judgement: knowing which architecture to try, which experiment to run next, and when your results are too good to be true.
Plan for roughly 12–14 hours per week. Roughly a third of that is scheduled contact time; the rest is independent study, reading, coding and training. Students who fall behind in week 4 rarely catch up by week 10 — the material compounds.
Every unit follows the same four-part structure, so you always know what is coming next and how to prepare.
Derivations and architecture diagrams explain why a method works, not just how to call it.
Build the model in NumPy first, then reproduce it in PyTorch so the framework holds no mysteries.
Run GPU lab experiments, tune hyperparameters and interpret the results critically.
Finish with self-check questions, a unit quiz and a short reflective summary.
Weeks vary a little depending on the module, but the pattern below is what most weeks look like. Use it to plan your time.
| When | What | What you should do |
|---|---|---|
| Before Monday | Read ahead | Skim the unit tutorial pages so the lecture makes sense. |
| Monday | Lecture 1 | Attend, take notes, ask questions in the moment. |
| Tuesday | Independent study | Re-work the derivations by hand. Do not skip this. |
| Wednesday | Lecture 2 | Attend. Connects the week's theory to the lab. |
| Thursday | GPU laboratory | Bring a working environment and a specific problem. |
| Friday | Consolidation | Finish the lab notebook, take the unit quiz, write your summary. |
| Weekend | Buffer | Overflow from the week, or get ahead on assignments. |
A training run that takes two hours is not something you can do at 11pm the night before a deadline. Launch experiments on Tuesday and Wednesday, check on them between other work, and leave the last few days of the week for writing and evaluation.
You have two options: use the shared GPU workstations in the laboratory, or set up a local or cloud environment that mirrors them. Either way, you must be ready before your first laboratory session.
Arriving at the first laboratory session without a working environment means you spend the session on setup rather than on the material. Follow the setup guide and verify that the week 1 notebook runs end to end before you attend.
Shared GPU workstations are provided in the teaching laboratory. They are pre-configured with PyTorch, TensorFlow, scikit-learn, Hugging Face Transformers, Jupyter and CUDA. If you only use these, no local setup is required — but you will need somewhere to store your work between sessions.
| Tool | Purpose |
|---|---|
| Python 3.11 | The base language for the course. |
| PyTorch | The primary deep learning framework. |
| TensorFlow / Keras | Alternative framework for comparison and deployment. |
| scikit-learn | Baselines, metrics and preprocessing. |
| Hugging Face | Pretrained transformers and datasets. |
| JupyterLab | Notebook environment with CUDA acceleration. |
You can work locally if you have a machine capable of running the notebooks, or in a free cloud notebook tier. Every assignment is designed to fit within the free tiers of common cloud notebook providers, so no personal GPU is required.
Bring the exact error message and the command that produced it to the first laboratory session. Do not spend the whole week fighting setup — a demonstrator can usually resolve these issues in minutes.
Deep learning rewards a particular kind of study discipline. The advice below is what consistently separates students who do well from those who struggle.
Complete every item below before the end of the first week. Each one is short, but each one matters. If you finish all of them, you are ready for the course.
Get your environment working before the first laboratory session. Everything else on this list is a short read; that one is the task that most often holds students up in week 1.
There are four ways to get help, and they are not interchangeable. Using the right one will get you a useful answer faster.
State what you expected, what actually happened, the exact error message, the smallest piece of code that reproduces it, and what you have already tried. This is the same discipline required in your evaluation reports, and it is assessed.
Do not post screenshots of code. Do not paste your entire notebook. Do not ask "why doesn't this work?" without describing what "work" was supposed to mean. And do not ask a demonstrator to debug code you have not read.
You are ready to begin. The natural next steps are listed below — in order.
The full statement of what the course covers, how it is assessed and what is expected of you.
The mathematics of learning at scale: optimisation, regularisation and the evaluation discipline advanced models demand.
Begin the course. Gradient descent, learning rates and the optimisation machinery that underpins everything else.
This course is hard, and it is meant to be. The students who do well are not the ones who find it easy — they are the ones who start early, run experiments constantly, and ask for help before they are stuck. You have everything you need to succeed. Good luck.