Course Syllabus

CS 6320/5320 Fall 2025 Computer Vision

Time: Tuesday and Thursday, 02:00 PM - 03:20 PM. 

Location:   CTIHB 101

Instructor: Ziad Al-Halah 

                    Office Hours:  Tuesdays, 3:30 pm - 4:30 pm, MEB 2176  

TA: Kutay Eken, Email: kutay.eken@cs.utah.edu

                    Office Hours:  Mondays, 4 pm –5 pm, Zoom (https://utah.zoom.us/j/9074188408, Passcode: 390343)

                                          Wednesdays, 11 am - 1 pm, CADE Lab  (WEB 224-226)

                                         Thursdays, 9 am - 10 am, CADE Lab (WEB 224-226)

TA: Yashwanth Karumanchi, Email: yashwanth.karumanchi@utah.edu 

                    Office Hours:  Tuesdays, 11:30 am - 1:30 pm, CADE Lab (WEB 224-226)

                                          Fridays, 2 pm - 3 pm, Zoom (https://utah.zoom.us/j/83048937075,  Passcode: 847201)

 

** Please note that the lectures will not be recorded

 

Welcome!

Computer vision asks how we can enable computers to make sense of the complex world using data provided by cameras, lasers, and other visual sensors. To do this, the field of computer vision draws on a diverse set of tools from the mathematics of geometry, the geometry of light, and data-driven machine learning techniques, among many other fields. With the increasing ubiquity of cameras on mobile devices and large Internet image databases, the tools of computer vision have become more relevant than ever before in all areas of computer science.

 

What does this course offer you?

In this course, you will learn to develop and analyze the algorithms and mathematics for computer vision problems and applications. You will learn to implement vision algorithms efficiently for use in research or industry.

Learning Objectives

Upon completion of this course, students should be able to:

  1. Recognize and describe both the theoretical and practical aspects of computing with images. Connect issues from Computer Vision to Human Vision
  2. Describe the foundation of image formation and image analysis. Understand the basics of 2D and 3D Computer Vision.
  3. Become familiar with the major technical approaches involved in computer vision. Describe various methods used for registration, alignment, and matching in images.
  4. Get an exposure to advanced concepts, including state-of-the-art deep learning architectures, in all aspects of computer vision.
  5. Build computer vision applications with python and the PyTorch framework.

 

Prerequisites

No prior experience with computer vision is assumed, although previous knowledge of visual computing, image processing, or signal processing will be helpful. The following skills are necessary for this class:

  • Data structures: You’ll be writing code that builds representations of images, features, and geometric constructions.
  • Programming: Projects are to be completed and graded in Python. All project starter code will be in Python. TA’s will support questions about Python. If you’ve never used Python, that is OK, as long as you have programming experience.
  • Math: Linear algebra, vector calculus, and probability. Linear algebra is the most important, and students who have not taken a linear algebra course have struggled in the past.

 

How are you, exactly, going to achieve this?

We will have readings associated with most lectures. You should read this material and come prepared to class. We will have selected readings from Rick Szeliski's Computer Vision: Algorithms and Applications book, available free online here: http://szeliski.org/Book/

Links to an external site. and from the book Deep Learning available online here: http://www.deeplearningbook.org/

Links to an external site. by Goodfellow, Bengio, and Courville.

Other readings will come from research papers or notes provided by the instructor.

Programming projects will provide you with an opportunity to implement algorithms studied in the course. You will implement these assignments independently to help improve your own skills in programming vision algorithms. You may work with other students at the level of "whiteboard discussion" to help understand the assignments, but all work turned in must be your own. Please list any individuals you worked with on assignments and correctly cite any other resources used.

We will have around 10 in-class quizzes, approximately one every week, to help enhance and assess retention and understanding of the material. These are very short and straightforward quizzes to help prepare you by reviewing material we'll build on in class that should not take more than 10 or 15 minutes to complete.

There will be an in-class midterm and a comprehensive final exam as well.

 

How will you (and the teaching staff) know if you are making progress in your learning?

The best way to understand your progress is to actively engage in class and work to answer questions yourself. Each class, you will be provided time to engage with the professor and your classmates to solve problems. If something isn't clear, then ask about it! If you are confused, then many others in the class likely are as well.

We will provide feedback on programming assignments quickly to aid in understanding. Office hours by the professor and TA also serve as a great time to go and get individual feedback on your progress if you are uncertain.

 

Helps Hours and Contact
Students can meet with the teaching staff during the office hours listed above or by appointment.

Before sending a message to the teaching staff, please first look on the website for the information. If it is not found there or not clear, then think about asking a question on piazza. This will enable other students to get the same information and decrease the workload of both students and the teaching staff.

Also, please ask relevant questions in class!

If you think your question is better handled privately with the teaching staff, then please contact us using the piazza messaging system. Direct emails not through piazza will generally not be read or responded too. Additionally, you should by default include the instructor and TAs on the message to keep everyone on the same page and increase the timeliness of responses.

Grading

Final grades will be based on the following components:

  • Programming projects: 35%

  • Quizzes, attendance, and short assignments: 10%

  • Midterm exam: 25%

  • Final exam: 30%

While a minimum score of 93% will guarantee an A, the exact grade thresholds may be adjusted downward based on the overall performance of the class. Grades will be determined holistically to reflect student performance across all components.

 

Exam dates

Midterm exam: Thursday, October 16,    2025, 2:00 – 3:20 pm
Final exam:   Wednesday, December 10, 2025, 1:00 – 3:00 pm

 

Project dates

Please note that the project dates provided here are tentative and subject to change at the discretion of the instructor throughout the semester. Students should refer to the dates listed on each assignment as posted on Canvas for the most accurate and up-to-date deadlines. The dates shared here are intended to give you an overview of the schedule and should not be considered final.

Project Release date Due date
Project 1 09/02 09/16
Project 2 09/16 09/30
Project 3 10/28 11/07
Project 4 11/11 11/19
Project 5 11/20 12/01

Late Policy

If you anticipate needing an extension on any assignment due to extenuating circumstances, please notify the teaching staff as early as possible.

For project assignments, each student has a total of 3 automatic "grace days" that can be used for late submissions without penalty. These will be applied automatically, no need to request them.

Once your 3 grace days are used, any additional late submissions will incur a 10% penalty per day, up to a maximum of 30% off (i.e., 3 days late). Assignments cannot be submitted more than 3 days after the deadline, after that, the submission portal will close, and the assignment will receive a 0, regardless of whether grace days remain.

Quizzes will be completed in class during the scheduled time. Both the midterm and final exam will take place at the times listed on the course schedule. Exams will not be rescheduled to accommodate personal travel, internship start dates, interviews, or other personal commitments, please plan accordingly.

 

Regrade Requests

All regrade requests must be submitted through Gradescope within one week of the assignment’s grades being released. We will not consider regrade requests at the end of the semester for assignments whose grades were released more than a week prior.

 

Academic Honesty and AI Use Policy

It is expected that students adhere to University of Utah policies regarding academic honesty, including but not limited to refraining from cheating, plagiarizing, misrepresenting one’s work, and/or inappropriately collaborating.

Students are not permitted to use AI tools to solve assignments. Any use of generative artificial intelligence (AI) for other purposes (e.g., brainstorming, outlining, or research assistance) must be clearly cited and acknowledged. Use of AI without citation, documentation, or authorization will be treated as academic dishonesty. Students are further expected to uphold the professional and ethical standards of the profession/discipline for which they are preparing.

Any student who engages in academic dishonesty or who violates the professional and ethical standards for their profession/discipline may be subject to academic sanctions as per Policy 6-410, Student Academic Performance, Academic Conduct, and Professional and Ethical Conduct.

 

Further Course Administrative Information

 

Acknowledgment

This course is based on the Computer Vision course taught previously by Prof. Tucker Hermans from the University of Utah.