Grading
Nickname
Change your nickname in the Discord server to your full name, first and last. This is how we identify you. This item carries 0 points. If you skip it and open a ticket without a first and last name in your nickname, we subtract 10 points from your Assignment 1 grade as a penalty.Development Environment Setup
This section is optional and carries no points - you can do the assignment in Colab but you will benefit long term from learning how to use docker. Please refer to the Virtualization guide for setup instructions. After you clone or import the class github repo you can show that your development environment is correctly set up:-
Complete this notebook. It prints your Torch version and the device it resolved, which is
cudaon an NVIDIA machine,mpson an Apple Silicon Mac running natively, andcpuotherwise. A screenshot of that output is the proof, whichever setup you chose. - Create an account on Hugging Face and provide a screenshot of your profile.
.png files, named dev-environment-xyz.png, and located under the assignment submission folder in your cloned class repo.
Shadow-Invariant Vision
A shadow puts a strong edge in an image. The material under the shadow is the same material, and only the light reaching it changed. A vision system that reads that edge as a real boundary can be fooled by it, and driver assistance systems have braked and swerved for a stripe of shade across a road. The question is whether you can build a representation that responds to a change of surface material and stays quiet for a change of illumination.
A Tesla on FSD 14.2.2.5 swerving for a shadow, reported by Elias Martinez in March 2026. If the embed does not load, the clip is on X.
The method follows chapter 10 of Peter Corke’s Robotics, Vision & Control. Download the chapter before you start, and read sections 10.1, 10.2 and 10.4.
Points
What you will need
In the course container, runmake install-notebooks. It installs Kornia alongside OpenCV and PyTorch. Running make start on its own is not enough, since that installs only the base dependencies.
In Colab, run this once before the first cell:
Assignment Notebook
Open Notebook in Colab
Shadow-Invariant Vision Notebook
Submitting
Commit the notebook to your own private clone of the class repo, underassignments/assignment-1. Save all cell outputs before you commit.
See also the assignment submission guide.

