Computational Photography
CSCI 3240U
Fall 2023
Faisal Qureshi


Sep 1, 2024
Website is now online.

Course Info




Office hours

Lab times and locations are available here.

Canvas (requires login)

Labs and inclass exercises will be submitted through course canvas site.


Computational photography, in a nutshell, deals with the theory, methods, and systems for using computational techniques to create better “photographs.” It seeks to overcome the limitations of conventional photography. Additionally, it covers techniques for creating graphics artifacts using photographic content. Computational photography sits at the confluence of computer graphics, computer vision, and increasingly, machine learning. This is an introductory, undergraduate course in computational photography, and those students who wish to pursue advanced topics in computer graphics or computer vision may find this course helpful.

Broadly speaking, this course will cover topics in image processing, i.e., using computer vision techniques for image “modification” and enhancement. For example, image colorization, image segmentation, image stitching, etc. Furthermore, the course will cover topics in computational illumination, e.g., high-dynamic range photography, hybrid images, etc. Students will be exposed to the theory and methods that underlie the modern digital imaging devices, e.g., digital cameras, phone cameras, hyperspectral cameras, etc. Additionally, the students will have an opportunity to further develop their programming skills by completing computational photography labs and assignments.

The course assumes a working knowledge of programming in a high-level language, such as Python. Additionally, students need to have second-year university level understanding of discrete mathematics and calculus.

Tentative schedule


A student must get 50% in the course project to pass the course.

Important dates

Ontario Tech University’s academic calendar that lists important dates (and deadlines) is available at here.

Lecture Slides

Course project

The course project is an independent exploration of a specific problem within the context of this course. The topic of the project will be decided in consultation with the instructor.

Project grade will depend on the ideas, how well you present them in the report, how well you position your work in the related literature, how thorough are your experiments and how thoughtful are your conclusions.

Teams of up to two students are allowed.

Three minutes project videos

You are required to prepare a three-minutes video that provides an overview of your project. You may frame these videos as pitch videos to investors–having broad understanding of computers science, information technology, and artificial intelligence landscape–who are considering investing in your business that is built around the technology that you have developed in your project.

Final Report

For your final project write-up you must use ACM SIG Proceedings Template (available at the ACM website). Project report is at most 12 pages long, plus extra pages for references.

Alternately, you can use the following template (from “Tech Report ala MIT AI Lab (1981):


Reading material

No single textbook covers all the material that we will discuss in this course. Still the following two books are useful for a deeper study of most of the topics that we will cover in this course.

Students are strongly encouraged to take their own notes during lectures.

Other similar courses on the web