INFO: 290T: Computer Vision, Fall 2022


Description: This course introduces the theoretical and practical aspects of computer vision from the basics of the image formation process in digital cameras, through basic image processing, space/frequency representations, and techniques for image analysis, recognition, and understanding.


Prerequisitve: A strong foundation in linear algebra, calculus, and coding in Python.


Course Time: Th, 3:30-5:30, 210 South Hall

Course Instructor: Hany Farid
Office Hours: Th, 2:00-3:30 (or by appointment), 203A South Hall

Course Staff: Justin Norman
Office Hours: M, 2:00-3:30; W, 10:30-12:00, 6A South Hall


Format: Lectures will be delivered asynchronously (see below), and class time will be used to review lecture material, answer questions, review assignment solutions, and perform short exercises to reinforce the lecture materials.


Zoom: I will not record lectures. If, however, you are not feeling well and/or have cold/flu/covid symptoms, please do not come to class. Instead, please notify me and I will open a zoom room so that you can attend class virtually.


Software: All course assignments will be done in Python using Jupyter Notebooks. Please install Python 3 and Jupyter Notebook on your computer. Please also install the following Python libraries: imageio, numpy, matplotlib, opencv-python, scipy, scikit-image, and scikit-learn.


Questions: Piazza is being replaced with edstem as our online platform for course discussion. I strongly encourage you to ask and answer questions here. Please be sensitive of the honor code and do not post your code or solutions. I and the course staff will regularly monitor edstem and answer unanswered questions in a timely manner.


Academic Integrity: All work that you submit must be your own. You may not download, copy, or reproduce, in any way, code or solutions that you find on-line or from a fellow or former student. Submitting any work that is not entirely your own is a violation of Academic Integrity. You will generate and submit sample output of your code. Altering this output in any way to be inconsistent with your code is a violation of Academic Integrity.

You may not publish or post any of your assignments or course solutions onto any publicly accessible websites. Such postings only fuel violations of the academic integrity policy in future semesters. Violations of Academic Integrity will be taken very seriously. Independent of any Univeristy consequences that may result from a violation, violations may also lead to a failing grade in the class.


Inclusion: We are committed to creating a learning environment welcoming of all students that supports a diversity of thoughts, perspectives and experiences, and respects your identities and backgroundsi. To help accomplish this:

  1. If you have a name and/or set of pronouns that differ from those that appear in your official records, please let me know.
  2. If you feel like your performance in the class is being impacted by your experiences outside of class (e.g., family matters, current events), please don't hesitate to come and talk with me. I, and the course staff, want to be a resource for you.
  3. We are still in the process of learning about diverse perspectives and identities. If something was said in class (by anyone) that made you feel uncomfortable, please talk to me or the course staff about it.
  4. As a participant in this class, recognize that you can be proactive about making other students feel included and respected.

Grading: There will be seven assignments throughout the semester worth 70% of your final grade, and one project worth 30% of your final grade. There will be no exams.


Assignments: In order to increase flexibility, I have posted all of assignments. I would ask, however, that you use office hours to ask only about current assignments. All assignments must be submitted by the specified deadline (Thursdays at 3:30 pm). Please submit all assignments to bCourses. You may submit, without penalty, up to two assignments within 72 hours of the specified deadline. Because there are nearly weekly assignments, please be careful not to fall behind if you use an extension.


Syllabus (subject to minor change)
You should watch the videos associated with each week [mm.dd] of class, and come to class ready to discuss the material. The weeks are partitioned by topic which means that some weeks will have longer videos than others, so please be careful not to fall behind.