CSC320
  • Description
  • Logistics
  • Courseware
  • Coursework
  • Schedule
  • Piazza

CSC320: Introduction to Visual Computing

Fall 2026

 

 

 

 

 

 

 

 

 

 

 

 

photo credit

Course Description

This course is a first-principles introduction to the acquisition and computational processing of 2D images. It is aimed at undergraduates interested in learning about computer vision, digital photography and computer graphics.

The course serves as a stepping stone for tackling more advanced courses in those subjects and covers four broad themes:

  • Mathematical and engineering foundations: introducing key concepts from geometry; multivariate calculus; linear algebra; image and signal processing; and human vision.
  • Algorithms for low-level computer vision: image warping, morphing and stitching; image enhancement; image scissoring and inpainting; color image processing and display; face recognition; and 2D image matching.
  • Implementation: implementing several such tools in Python and OpenCV.
  • A first taste of vision and graphics research: understanding how to turn algorithmic descriptions in research papers into working computer vision code---and how to evaluate its performance---will be key skills acquired in the course.

Instructor

Aviad Levis

Teaching Assistants

Nhan (Len) Luong
Head TA
Zi Yuan (Julian) Ding
Leo Kaixuan Cheng
Amirhossein Kazerouni
Steve Rhyner

Course Logistics

  Lectures: Tuesdays 1:00pm-3:00pm in MS 2172 and 6:00pm-8:00pm in BA 1180.
  Tutorials: Tuesdays 8:00pm-9:00pm in BA 1180 and Thursdays 1:00pm-2:00pm in RW 117.

Instructor office hour (week 2 onwards): Tuesday 3:00pm-4:00pm (BA 7250) right after class.

TA office hour: TBD

Contact: Course announcements and general information will be posted Quercus. Q&A related to lectures, assignments and practice problems will take place on Piazza.

Course dropbox: The one-stop shop for all course materials. See Quercus for the link.

Course Materials

Lecture Slides & Recordings

Links to slides for all lectures will be available on the course Dropbox approximately an hour before each lecture (see Quercus for Dropbox link). The full set of lecture slides from the latest offerings of the course, is already available on dropbox. This years course slides will be very similar to pervious term's offering so students who prefer reviewing the lecture content in advance of a lecture can simply refer to those slides.

Recordings should be available on Quercus soon after each lecture. Since recording glitches are not uncommon due to issues with the system in specific classrooms (eg. missing sound, incomplete recordings, delays in posting) the completeness and timely availability of these recordings cannot be guaranteed, and they should not be treated as a substitute for in-person attendance.

Textbooks

In addition to lecture slides, assigned readings consist of selected sections from the following textbooks. The vast majority of required readings come from the first two; the rest will be used very occasionally and/or only as optional readings for those interested in delving more deeply into the lecture's subjects. Several of these books are freely available online; the rest can be found in the library and/or are available for purchase. See the course schedule for full details.

 

 

 

 

 

 

 

Videos

For the first half of the course, selected cartoon videos from Steve Seitz' "Graphics in 5 minutes (G5M)" channel on youtube must be watched before each week's lecture. In addition to these videos, Shree Nayar's video lectures on the First Principles of Computer Vision are an excellent source of lectures for optional viewing after class. See the course schedule for full details.

 

Practice Problems & Past Exams

Solutions to past term tests and final exams since 2016 can be found on the course Dropbox. The TAs have also compiled a selection of practice problems from several textbooks to help you test your understanding of the lecture material. These resources will be available on the course Dropbox.

Coursework

Course Redesign and Generative AI

Generative AI has made code generation and the translation of research papers into working implementations substantially easier. The course has therefore shifted its emphasis away from implementing algorithms from scratch and toward developing intuition and understanding. Coursework will focus on asking useful questions, designing informative experiments, examining assumptions and failure cases, and critically evaluating the results produced by computer vision systems. Students may use generative AI as a tool, but remain responsible for understanding, verifying, and explaining their work.

Exploratory Labs and Submissions (25%)

The course includes five exploratory labs, one for each instructional module. Each lab is worth 5%. Students will use complete implementations provided in Jupyter notebooks to experiment with parameters, compare algorithms, investigate assumptions and failure cases, and interpret their results. The submissions assess the quality of these experiments and the understanding demonstrated in the analysis, rather than the ability to implement algorithms from scratch. Lab 5 has the same weight as the other labs but a smaller scope because of the shorter time available at the end of term.

Late policy: Lab submissions are due at 11:59pm on the due date. To account for unexpected last-minute technical issues, each student will receive a one-hour grace period for every lab submission. To request an extension of at most seven days, use the special-consideration form available on Quercus. This form is required even if an absence declaration has already been submitted through ACORN. Requests made by email to an instructor or TA will not be accepted.

In-Class Quizzes (20%)

Each module concludes with a 10-15 minute multiple-choice quiz during tutorial. Questions emphasize visual and algorithmic intuition, including recognizing parameter effects, artifacts, failure modes, and violated assumptions. There are five quizzes; each is worth 5%, and the best four of five count toward the final grade.

Collaboration, Generative AI, and Academic Integrity

Discussion, brainstorming, and the use of generative AI tools are permitted for the exploratory labs. These tools may be used for installation, debugging, adapting code, designing experiments, and interpreting results. A word of caution: relying on AI for interpretation can hinder the genuine understanding needed for the quizzes and final examination. AI systems often produce agreeable and plausible explanations or suggestions that nevertheless miss the mark. Developing your own intuition is therefore essential, both for understanding computer vision and for recognizing when an AI-generated answer has failed. Students remain responsible for verifying generated material and for understanding and explaining everything they submit. Submitted observations, analysis, and conclusions must reflect the student's own work, and material taken from another person or source must not be presented as original work. Quizzes and the final examination are individual assessments; sharing their questions or answers is not permitted.

Final Examination (55%)

Final exam (no auto-fail): The comprehensive final examination assesses mathematical foundations, image-processing principles, and algorithmic intuition. Date and time TBD.

Schedule and Syllabus

Lecture
Week
Date Description G5M Videos to Watch Before Class Lecture
Materials
Labs Quizzes
Part I: Foundations
1 08/09 Course Intro
Image Geometry 1
Homogeneous 2D coordinates, 2D transformations, homographies, image warping algorithms.
Affine transforms
[materials01] Lab 1 released
Tue
08/09
Tutorial
Introduction to Python, Jupyter notebooks, and the course labs.
Thu
10/09
Tutorial
Introduction to Python, Jupyter notebooks, and the course labs.
2 15/09 Image Geometry 2
Homogeneous 3D coordinates, pinhole imaging & perspective projection, imaging of 3D planes, panoramic image stitching, homography estimation.
Perspective projection,
Perspective projection--the math
[materials02]
Tue
15/09
Tutorial
Linear algebra refresher: solving systems of linear equations. Lecture 1 practice problems.
Thu
17/09
Tutorial
Linear algebra refresher: solving systems of linear equations. Lecture 1 practice problems.
3 22/09 Image Filtering 1
Linear shift-invariant filters, convolution, basic filters.
Images,
Image filtering
[materials03] Lab 2 released
Tue
22/09
Tutorial
Quiz 1. Lecture 2 practice problems. Lab2 Q&A.
Quiz 1
Thu
24/09
Tutorial
Quiz 1. Lecture 2 practice problems. Lab2 Q&A.
Quiz 1
4 29/09 Image Filtering 2
Gaussian filters, derivative filters, sharpening filters. The Bilateral filter. Discrete image formation, image interpolation.
Interpolation [materials04]
Tue
29/09
Tutorial
Image filtering in action . Lecture 3 practice problems. Lecture 6 prep: Math refresher on complex numbers and their Euler representation
Thu
01/10
Tutorial
Image filtering in action. Lecture 3 practice problems. Lecture 6 prep: Math refresher on complex numbers and their Euler representation
Fri
02/10
Lab 1 submission Due at 23:59
5 06/10 Image Filtering 3
Introduction to Fourier transforms, convolution theorem.
Fourier transforms [materials05]
Tue
06/10
Tutorial
Image Filtering 3 continued. Tutorial is replaced by a lecture given by Aviad.
Thu
08/10
Tutorial
Image Filtering 3 continued. Tutorial is replaced by a lecture given by Aviad.
6 13/10 Image Filtering 4
Fourier-domain image filtering, hybrid images. Sampling theory basics, aliasing, anti-aliasing methods.
[materials06]
Tue
13/10
Tutorial
Lecture 3 & 4 practice problems.
Thu
15/10
Tutorial
Lecture 3 & 4 practice problems.
7 20/10 Color Vision & Camera ISPs
Color perception in the human visual system, color imaging, color spaces, color displays. Smartphone Image Signal Processing pipelines.
Color [materials07] Lab 3 released
Tue
20/10
Tutorial
Quiz. Fourier-domain filtering & anti-aliasing in action. Lab3 Q&A.
Quiz 2
Thu
22/10
Tutorial
Quiz. Fourier-domain filtering & anti-aliasing in action. Lab3 Q&A.
Quiz 2
Fri
23/10
Lab 2 submission Due at 23:59
Part II: Image Representations
27/10
29/10
Reading week break (No Lecture, Tutorial, Office hours)
8 03/11 Differentiable 1D & 2D Representations
Representing smooth 2D curves, curve tangent, curve normal and the moving frame. Image gradient, image Laplacian, edge enhancement, Canny edge detection. Intelligent scissors, painterly rendering.
[no video] [materials08]
Tue
03/11
Tutorial
Lecture 7 practice problems. Lecture 9-10 prep: Linear algebra refresher on matrix eigenvectors and eigenvalues.
Thu
05/11
Tutorial
Lecture 7 practice problems. Lecture 9-10 prep: Linear algebra refresher on matrix eigenvectors and eigenvalues.
9 10/11 Vector-Based Representations 1
Template matching, measuring image similarity, Harris/Foerstner corner detection. Introduction to PCA.
[no video] [materials09] Lab 4 released
Tue
10/11
Tutorial
Quiz. Lecture 8 practice problems.
Quiz 3
Thu
12/11
Tutorial
Quiz. Lecture 8 practice problems.
Quiz 3
Fri
13/11
Lab 3 submission Due at 23:59
10 17/11 Vector-Based Representations 2
Principal component analysis, face recognition using eigenfaces.
[no video] [materials10]
Tue
17/11
Tutorial
Lecture 9 practice problems. Lab4 Q&A.
Thu
19/11
Tutorial
Lecture 9 practice problems. Lab4 Q&A.
11 24/11 Multi-Scale Representations 1
The Discrete Haar Wavelet Transform, wavelet-based image compression, wavelet-based image processing.
[no video] [materials11] Lab 5 released
Tue
24/11
Tutorial
Quiz. Lecture 10 practice problems.
Quiz 4
Thu
26/11
Tutorial
Quiz. Lecture 10 practice problems.
Quiz 4
Fri
27/11
Lab 4 submission Due at 23:59
12 01/12 Multi-Scale Representations 2
Panoramic image stitching revisited. SIFT keypoints and SIFT-based correspondence-finding. Robust model fiting using RANSAC. Gaussian and Laplacian pyramids. Laplacian image blending.
[no video] [materials12]
Tue
01/12
Tutorial
Quiz. Preparing for the final. Lab5 Q&A.
Quiz 5
Thu
03/12
Tutorial
Quiz. Preparing for the final. Lab5 Q&A.
Quiz 5
08/12 Lab 5 submission Due at 23:59
08/12 End of term

Additional Information

Prerequisites

  • Formal prerequisites: Please consult the Arts and Science timetable for full details on prerequisites and exclusions. Requests for prerequisite waivers should be directed to the Computer Science Undergraduate office
  • Coding Experience: Students should be comfortable reading, understanding, and writing Python code. The exploratory labs use Jupyter notebooks and packages such as NumPy and OpenCV. Advanced knowledge of these packages is not required; the necessary tools will be introduced in tutorials and within the labs. Students should also be comfortable using AI coding agents for specific tasks while remaining able to understand, verify, and explain the resulting code.
  • Course sequencing: Starting in Fall 2024, CSC320 will be a prerequisite for CSC420 (Introduction to Image Understanding). Foundational material is being moved into CSC320 to make room for more advanced topics in CSC420. Students planning to take CSC317 (Computer Graphics) would also benefit from taking CSC320 first, or concurrently.

Hardware & Software Compatibility

  • You are welcome to use your personal computer (OSX, Windows or Linux) for programming assignments. Be aware, however, that TAs will test your code on Teaching Labs computers and thus it is essential that you verify your code there before submission.

  • We will support only one of the latest versions of python and recommend that you install it using Anaconda or Miniconda (see installation instructions here). Further information about setting up your computing environment for the course's programming assignents will be given at the first tutorial and will also be available in the Tutorial 1 slides.

Related courses at UofT

  • CSC317: Computer Graphics
  • CSC420: Introduction to Image Understanding (StG)
  • CSC2503: Foundations of Computer Vision
  • CSC2529: Computational Imaging
  • CSC2530: Computational Imaging and 3D Sensing
  • CSC2539: Physics-Informed Neural Representations for Visual Computing
  • CSC2520: Geometry Processing

Acknowledgements

This version of the course was built (and taught in previous terms) by Kyros Kutulakos. The lecture slides have been revised significantly from offerings of the course prior to 2021, and include slides from several other instructors. Beginning in Fall 2026, the homework assignments changed substantially in response to the rise of generative AI. Feel free to use these slides for academic or research purposes, but please maintain all acknowledgments and source information. The format and style of this webpage are based on those of CS2529, taught by David Lindell.