Course outline

COMS4036A & COMS7050A — Computer Vision
School of Computer Science and Applied Mathematics, University of the Witwatersrand
Semester 2, 2026

Instructor

Prof. Richard Klein · MSB UG07 · richard.klein@wits.ac.za

Description

Computer vision is the study of how machines extract meaning from images. This course follows the field’s own arc. It opens with the classical pipeline of filters, features, and codebooks, then spends the remaining thirteen weeks replacing that pipeline, stage by stage, with learned components: convolutional networks, detection and segmentation, transformers, self-supervised and language-aligned representations, generative diffusion models, and neural rendering in 3D.

The course is taught as one long-form lecture a week, with a lab in every week but the last. The lectures build the ideas; the labs build the practitioner skills that make them usable: experiment tracking, debugging rituals, data pipelines, hyperparameter search, and inference-time engineering. This book is the course’s written companion.

Timetable

Day Time Venue
Lectures Tuesday 14:15–17:00 LB145
Labs Friday 11:15–13:15 MSL006

Fourteen teaching weeks run from 21 July to 27 October 2026. Labs are not compulsory, but they are the best opportunity to get help, and lab work is assessed. The full week-by-week schedule is on the next page.

Consultation

Tutors and I are available during most lab sessions. That is the best time to consult. Outside of that, book a slot at app.reclaim.ai/m/kleinric/consultation.

Communication

All official communication goes through the Moodle Announcements forum, which emails you. It remains your responsibility to make sure you receive it: you are expected to have seen any announcement within 24 hours of posting.

Ask questions publicly wherever you can. The Moodle Q&A forum exists so that answers reach everyone. Discord is available for informal discussion between students.

Textbooks and references

All of the following are freely available online.

  • Szeliski (2022), Computer Vision: Algorithms and Applications, 2nd ed. The reference text for the classical material.
  • Prince (2012), Computer Vision: Models, Learning, and Inference.
  • Torralba, Isola & Freeman (2024), Foundations of Computer Vision.
  • Goodfellow, Bengio & Courville (2016), Deep Learning.
  • Prince (2023), Understanding Deep Learning.

Additional course resources

Syllabus

  • Image formation and classical vision: cameras and projection; sampling, quantisation, and colour; filtering and convolution; edges and scale; texture with Gabor filters, MR8, and textons; local features (Harris, SIFT, HOG); Bag of Visual Words.
  • Deep learning for vision
    • Convolutional networks: LeNet, AlexNet, VGG, ResNet; transfer learning.
    • Detection: the R-CNN lineage, one-stage detectors, DETR.
    • Segmentation: FCN, U-Net, DeepLab, Mask R-CNN, SAM and SAM2.
    • Sequences and attention: RNNs through to the transformer; ViT, Swin.
    • Representation learning: contrastive and non-contrastive objectives, masked image modelling, DINOv2.
    • Language-aligned vision: CLIP, open-vocabulary detection, vision-language models.
    • Generative vision: diffusion mechanisms, latent diffusion, flow matching.
  • 3D vision: multi-view geometry, NeRF, and 3D Gaussian Splatting.
  • Frontiers: video understanding; where the field is heading.

Prerequisites

  1. Python sufficient to write non-trivial programs.
  2. Calculus and linear algebra.
  3. Probability theory.
  4. Machine learning fundamentals:
    • supervised and unsupervised learning;
    • feature extraction;
    • the basics of neural networks and deep learning;
    • train/validation/test splits;
    • evaluation metrics: accuracy, precision and recall, F1, confusion matrices.

Programming languages and libraries

Python throughout. NumPy and PyTorch for tensors and models; OpenCV, PIL, and related libraries for classical work. Labs are developed and submitted as Jupyter notebooks, generally on Google Colab.

High-level library functions are permitted unless a task states otherwise. Some exercises require you to implement the method yourself. If the task says to build HOG, build it; do not call cv2.HOGDescriptor() or an equivalent wrapper. Low-level operations (slicing, convolution, broadcasting, custom filters) are always permitted.

Optional but recommended: Weights & Biases for experiment tracking, and Hugging Face for pretrained models and datasets.

Grading

Weightings are indicative and subject to change. Tests and the examination are common papers across both cohorts.

Honours (COMS4036A)

Component Weight
Labs 10%
Test 1 15%
Test 2 15%
Project 20%
Examination 40%

MSc Coursework (COMS7050A)

MSc students engage more deeply with the current research literature and with reproducibility, in place of the Honours applied project.

Component Weight
Labs 5%
Test 1 15%
Test 2 15%
Research & Journal Club 30%
Examination 35%

The Research & Journal Club component runs from Week 3 in the tail of the lecture slot, and is assessed across several activities rather than one deliverable: a paper reproduction with a report-back and viva, a presentation of the paper you intend to reproduce, a designated-discussant role (“Reviewer 2”) on somebody else’s paper, a timed PaperBlitz on an unseen paper, and a written referee report. The Journal Club page details each activity, the shared rubric, and the curated reproduction-paper list.

Assessment dates

  • Test 1 (covers Weeks 1–6): Friday 4 September 2026, in the lab slot.
  • Test 2 (covers Weeks 7–11): Friday 9 October 2026, in the lab slot.

Lab work continues in both of those weeks as take-home. Project presentations run in an additional session in Week 14, timing to be confirmed.

Academic integrity

Academic integrity is taken extremely seriously. Any form of academic misconduct — including plagiarism, unauthorised collaboration, accessing another student’s Moodle account, or communicating during assessments — will be dealt with in line with university and school policies.

Penalties include a mark of zero for the affected assessment, a Fail with Compulsory Misconduct (FCM) notation for the course, and referral to the Legal Office or Disciplinary Committee.

You are expected to complete all assessments honestly and independently, unless group work is explicitly permitted.

Use of AI tools

Large language models, including ChatGPT and GitHub Copilot, are permitted when used responsibly. They are genuinely useful for debugging, for clarifying concepts, and as an on-demand tutor.

Two things follow from that. First, using them raises the expectations on your submissions: you remain fully accountable for everything you hand in, and you must be able to explain and justify every part of it. Second, for written work, AI may assist with editing, summarising, and brainstorming, but may not generate whole sections — work that appears AI-generated without meaningful synthesis of your own is treated as academic misconduct.

Every submission requires a declaration of how AI tools were used. I may ask you to explain any submission in a viva voce, and that discussion replaces the mark.

If you are unsure whether a particular use is acceptable, ask.