COMP329 Advanced ML & Deep Learning

Orientation · Start here

COMP329 Welcome to Advanced Machine Learning and Deep Learning

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.

10 minute read 6 orientation steps 1 setup task 3 things to do this week

1 Welcome

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.

Before you go any further

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.

If you are coming from COMP328

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.

2 What to expect

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.

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.

Wall-clock bound

  • Training takes real time you cannot compress.
  • Start experiments early; prototype on small subsets.
  • Plan your compute budget before you launch a run.

Evidence-driven

  • Every claim about a model must be backed by a comparison.
  • Baselines are mandatory, not optional.
  • An honest negative result beats a dishonest positive one.

Expect to be stuck

  • Debugging is the work, not a distraction from it.
  • Read the error message carefully before asking for help.
  • Minimal reproductions are your most useful debugging tool.

Time commitment

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.

3 The rhythm of the course

Every unit follows the same four-part structure, so you always know what is coming next and how to prepare.

  1. Study the theory

    Derivations and architecture diagrams explain why a method works, not just how to call it.

  2. Implement it

    Build the model in NumPy first, then reproduce it in PyTorch so the framework holds no mysteries.

  3. Train and evaluate

    Run GPU lab experiments, tune hyperparameters and interpret the results critically.

  4. Check your understanding

    Finish with self-check questions, a unit quiz and a short reflective summary.

A typical week

Weeks vary a little depending on the module, but the pattern below is what most weeks look like. Use it to plan your time.

A typical COMP329 week
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.

Start training runs early

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.

5 Setting up your environment

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.

Do this before week 1's lab

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.

Option A — Laboratory workstations

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.

What is pre-installed in the laboratory
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.

Option B — Your own machine or cloud

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.

Local setup

  • Install Python 3.11 or later.
  • Create a virtual environment for the course.
  • Install PyTorch, scikit-learn and Jupyter.
  • Verify CUDA works if you have an NVIDIA GPU.
  • Run the week 1 notebook to confirm.

Cloud notebook setup

  • Choose a provider offering free GPU time.
  • Enable GPU acceleration in the runtime settings.
  • Install the course requirements file.
  • Copy your work back to local storage before sessions end.
  • Do not store API keys or personal data in a shared notebook.
PyTorch setup guide Full step-by-step instructions, troubleshooting and a verification notebook.
Open guide

If your environment will not cooperate

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.

6 How to study this course

Deep learning rewards a particular kind of study discipline. The advice below is what consistently separates students who do well from those who struggle.

Work by hand first

  • Re-derive the backpropagation equations on paper.
  • Sketch the architecture before you code it.
  • Predict the shape of every tensor before you run the cell.

Understand every line

  • If you cannot explain a line of code, you do not understand it.
  • Rewrite library calls from scratch at least once.
  • Reading working code is not the same as being able to write it.

Run small experiments

  • Prototype on tiny subsets before full training runs.
  • Vary one thing at a time and record what changed.
  • Keep a log of every experiment and its result.

Distrust good news

  • Check for data leakage before celebrating a high score.
  • Always compare against a simple baseline.
  • If a result looks too good, it probably is.

Write as you go

  • Do not leave the evaluation report to the last day.
  • Notebook markdown cells are part of the submission.
  • Record decisions and their justification in real time.

Manage your compute

  • Estimate training time before you launch a run.
  • Use checkpointing so a crash does not cost you the day.
  • Kill jobs you are not monitoring — be a good citizen.

The most common mistakes

  • Leaving training runs until the night before a deadline.
  • Reporting accuracy without a baseline or a confusion matrix.
  • Overfitting to the test set by tuning on it repeatedly.
  • Submitting a notebook that only runs top-to-bottom on your own machine.
  • Copying code from a tutorial without understanding what it does.

A good week looks like this

  1. Monday: attend the lecture, skim the week's tutorial pages.
  2. Tuesday: re-derive the key equations by hand, code a small prototype.
  3. Wednesday: attend the second lecture, plan your lab experiments.
  4. Thursday: run the lab, launch a long training job, take notes.
  5. Friday: evaluate the training run, complete the unit quiz, write a summary.
  6. Weekend: catch up or get ahead on the current assignment.

7 Your first-week checklist

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.

Orientation checklist

  1. Read the syllabus end to end. Pay particular attention to the assessment table, the capstone requirements, and the policies on AI use and late submission.
  2. Set up a working environment. Either log in to a laboratory workstation or follow the PyTorch setup guide. Verify that the week 1 notebook runs without errors.
  3. Skim the first unit's tutorial pages. You do not need to fully absorb them yet. Read enough to recognise the shape of the material before the first lecture.
  4. Note your assessment dates. Copy the deadline table from the syllabus into your calendar. Put a reminder one week before each deadline.
  5. Find the discussion forum and office hours. Bookmark them. Know where to ask questions before you have one.
  6. Write one sentence about what you want from this course. A specific project, a skill, a portfolio piece. Come back to it in week 14.

If you do only one thing

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.

8 Getting help

There are four ways to get help, and they are not interchangeable. Using the right one will get you a useful answer faster.

Laboratory sessions

  • For hands-on debugging and environment problems.
  • Bring a minimal reproduction of the issue.
  • Bring the exact error message, not a paraphrase.

Office hours

  • For conceptual questions and project direction.
  • Times published on Moodle each week.
  • No appointment needed.

Discussion forum

  • For questions other students will also have.
  • Search before posting.
  • Never post a full solution to assessed work.

Moodle announcements

  • Check at least twice a week.
  • Deadline changes and clarifications appear here.
  • Enable email notifications.

How to ask a good technical question

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.

What not to do

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.

9 Where to go next

You are ready to begin. The natural next steps are listed below — in order.

One last thing

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.

👤