Spring 2026
Instructor:
Prof. Kristina Monakhova
Lectures: TR, 8:40-9:55am, Upson Hall 216
Lab sections: CIS 122, R 11:40AM - 12:55PM or R 1:25PM - 2:40PM
Contact:
Ed (for most questions) or
instructor email (for sensitive/discreet inquiries only, make sure to use [CS4660] in title)
TAs: Shamus Li and Haley Lee
Course staff office hours: W 10-11am
Instructor office hours: R 10-11am, Gates 442B
Course overview: Computational imaging is the holistic design of imaging systems together with algorithms, blending ideas from computer vision, optics, imaging, and machine learning to overcome the limits of traditional cameras and imaging systems. Computational imaging enabled the capture of the first image of the black hole, the imaging of invisible objects, and is used in most smart-phone cameras for HDR imaging and super-resolution. This course will provide the mathematical and algorithmic foundations necessary to build, develop, and characterize computational imaging systems. We will learn how to express imaging systems (e.g. microscopy, MRI, tomography) as linear systems, and use tools from linear algebra and optimization to analyze, design, and improve these systems. In addition, we will mathematically model different aspects of imaging systems, such as noise, aberrations, and blur. Students will learn how to formulate and solve imaging inverse problems using both classical and modern machine-learning-based approaches. The class includes a weekly lab component with real camera hardware where you will get to try out concepts from the class both in hardware and software on a course-provided mirrorless camera. Finally, the class will culminate in a final project where you will get to try out ideas from the class on exciting real-world imaging problems, such as recovering an image of the black hole using the event horizon telescope, compressive MRI imaging, or Fourier ptychography microscopy.
This class is targeted at upper-level undergraduate students in computer science, and other related majors interested in learning more about imaging systems. You should take this class if you:
By the end of the course, you will:
Prerequisites: MATH 2210 or MATH 2310 or MATH 2940 or equivalent linear algebra course and CS 2110 or equivalent programming experience. Familiarity with programming in Python.
Course logistics: The companion Canvas page serves as a hub for access to Ed (the course forum), and Gradescope. If you are enrolled in the course you should automatically have access to the site. All reading, slides, and assignments will be posted on the schedule below. Please bookmark this page.
| Date | Topic | Reading/references | Slides | Lab |
|---|---|---|---|---|
| 1/20 | Introduction | |||
| 1/22 | How humans and machines measure light | Read through this interactive demo, parts: Recording Light | 0 - Python setup + images as code | |
| 1/27 | From pinholes to lenses | Read through this interactive demo, parts: Glass, Waves | ||
| 1/29 | Digital photography | Read through this interactive demo, parts: Manipulating Rays, Aberrations | 1 - Pinhole cameras and Lenses | |
| 2/3 | On-camera processing | |||
| 2/5 | Imaging as a linear system | 2 - RAW image processing | ||
| 2/10 | Linear shift-invariant systems and convolutions | |||
| 2/12 | Fourier transforms | 3 - Fun with Fourier Transforms | ||
| 2/17 | February Break (no lecture) | |||
| 2/19 | Fourier transforms | 4 - Custom Bokeh | ||
| 2/24 | Noise | |||
| 2/26 | Review | 5 - Characterizing Noise | ||
| 3/3 | In-class Prelim | |||
| 3/5 | DiffuserCam - how to build and model a lensless camera | 6 - Build your own lensless camera | ||
| 3/10 | Guest lecture | |||
| 3/12 | Intro to Inverse problems | 7 - Wiener filters and deconvolution | ||
| 3/17 | Solving inverse problems with convex optimization | |||
| 3/19 | Compressive sensing | 8 - FISTA for lensless imaging | ||
| 3/24 | Compressive sensing | |||
| 3/26 | Priors and machine learning | 9 - HDR imaging | ||
| 3/31 | Spring Break (no lecture) | |||
| 4/2 | Spring Break (no lecture) | |||
| 4/7 | Microscopes and Telescopes | |||
| 4/9 | Phase Imaging - seeing the invisible | Final project proposal due! 10 - Using machine learning to solve inverse problems |
||
| 4/14 | Light field imaging | |||
| 4/16 | Coded aperture imaging | final projects | ||
| 4/21 | Diffusion models for inverse problems | |||
| 4/23 | Advanced topics | final projects | ||
| 4/28 | Advanced topics | |||
| 4/30 | Advanced topics | final projects | ||
| 5/5 | Project poster session | |||
| TBD | Final Exam (during finals week) |
Labs: 25%
Exams: 50%, with best of 40-60 or 60-40 prelim-to-finals split
Final Project: 15%
Participation: 10%
Each week, there will be an interactive lab section where you will get to experiment with real imaging hardware and software. Attendance during discussion/lab sections is mandatory. Each lab has an accompanying assignment which will include several activities that must be completed on imaging hardware and checked off with TAs as well as several take-home questions. These assignments will include theoretical components to give you the chance to assess your understanding of lecture materials as well as hands-on programming components for you to implement imaging algorithms in software and hardware. Lab assignments provide preparation for the exams. Labs will be completed in groups of two students. Deliverables: You will submit a write-up answering in-lab and at-home questions associated with each lab assignment. This write-up will be submitted via Gradescope and will be due before the start of the following lab section each week. You may work together with your lab partner and submit a single lab write-up. Grading: Lab assignments will be graded for completion, with possible grades including: complete (100%), partially complete (50%), or incomplete (0%). Once solutions are released, a self-assessment must be submitted with each assignment. In the self-assessment, you will identify any errors that you made and provide an explanation of how you would correct your error (e.g. numerical mistake, misconception, etc.). This is a good chance to assess your own progress in the class's learning objectives and prepare for the exams. Self-assessments are due within 7 days after solutions are posted. No late submissions: We believe timely feedback and self-assessment are crucial for the learning process. As such, we will aim to release lab solutions immediately after the due date. This ensures prompt feedback on your lab assignments, and enables you to complete the lab self-assessment while the assignment is still fresh in your mind to check your understanding of the course concepts. Due to this, we cannot accept late submissions. If you run out of time, you are welcome to submit a partially-complete assignment on the due date, then complete the self-assessment to correct and finish any remaining problems. Lowest lab dropped: We know that life happens and unexpected things can come up. Since we do not accept late submissions, we will drop your lowest grade on one of the labs to provide leniency in case you need to miss a lab section during the semester for any reason.
At the end of the semester, there will be a hands-on final project. Students can choose between several pre-defined final projects or propose their own idea to explore. The final project will give you the chance to delve further into a real imaging problem. Final projects will be completed individually or in groups of two. Final projects will be evaluated based on a poster session and final project write-up. More information about the final project guidelines will be available after the first prelim.
There will be two exams for this class (to be completed individually), an in-class prelim and a final exam during finals week. Exams will evaluate the learning objectives for the class and will be based on material from the lectures, assigned readings, and lab materials. The best way to prepare for the exams is to attend lectures, participate in class activities, attend lab sections, complete all labs, and do any additional assigned readings. Exams will be closed-book with no access to electronic devices or the internet. Between the prelim and final exams, we will weigh the higher of your scores as 60%, and the lower score as 40%. We know that exams can be stressful, so we will provide a higher weighting on whichever exam you perform better on in your final grade calculation.
- Prelim: In class, Tuesday March 3rd
- Final: TBD, during finals week
You are expected to regularly attend class and lab section, do any pre-class reading assignments, and actively participate in classroom discussions. We will incorporate active learning activities during class to discuss, probe further, and facilitate learning. You are expected to be engaged and actively participate during these activities. Participation will be evaluated based on class and lab attendance, as well as active participation during class activities and discussions. You can miss up to 3 lectures and 1 lab section without penalty.
While there is not a textbook for the class, we will include some reading and references from several different textbooks and sources. All expected reading sections and chapters will be listed on the weekly schedule. These textbooks include:
Background in linear algebra, probability, and calculus, as well as some mathematical maturity is assumed for this course. If you feel you need a refresher, or would like to learn more about these topics, the following resources may be useful.