Course Description

Computer vision enables computers and systems to extract and derive meaningful information from digital images, videos, and other visual inputs. The goal of computer vision is much the same as human vision, enabling computers to see, observe and understand. In the course, students will implement, test and evaluate several classical algorithms and techniques such as filtering, feature detection and matching, object recognition, stereo imaging, image alignment and stitching, and motion estimation.  We will also cover newer, machine-learning based computer vision.

Topics Covered
  • Python Programming
  • NumPy Array Manipulation
  • Image Transformations
  • Kernel Operators
  • Canny Edge Detection
  • Harris Corner Detection
  • Connected Components
  • Image Morphology
  • Hough Transformations
  • Image Moments
  • Scale Invariant Feature Transformations
  • GUI Development in OpenCV
  • Optical Flow
  • Background Subtraction
  • Object Tracking
  • Face Detection and Recognition
  • Stereo Vision
  • Camera Calibration
Grading Criteria

This course is cross-listed as a combined undergraduate and graduate course. Students in both sections will complete the same assignments for most of the semester with the exception of a final project. Thus, the final project will carry slightly more weight for graduate students than for undergraduate students. The course breakdown is shown below.

Undergraduate Students
  • Homework (45%)
  • Project (15%)
  • Midterm Exam (15%)
  • Final Exam (15%)
  • Participation (10%)
Graduate Students
  • Homework (40%)
  • Project (20%)
  • Midterm Exam (15%)
  • Final Exam (15%)
  • Participation (10%)

Each week, students will receive a coding assignment. Students are expected to submit their work individually, though you are encouraged to work in a collaborative environment.

  1. Completion Time. Please note how long it took you took to complete each assignment. You will be asked to report this when submitting assignments.
  2. Late penalty. Homework will be accepted up to 24 hours after the due date without a penalty. If an extension of 48 hours is needed, then please complete this form prior to the assignment deadline.
  3. Dropping the lowest score. You will be allowed one excused homework assignment (the lowest grade will be dropped).
  4. Excused absences and extensions. No assignments will be accepted after one week of its due date, including those for university official excused absences. This allows graded material to be returned at a reasonable time and for the solution to be disseminated to all students. Excused absences requiring greater than a week to complete missing work will be dropped, increasing the weight of all other assignments.

Students will be given four (4) weeks to implement a programming project relating to a topic computer vision. Results from these projects will be presented during the final class period. Students enrolled in the graduate section will be required to complete a research paper describing their work in addition to the program implementation.

Midterm Exam

A mid-term exam will be given during class on either the sixth (6th) or seventh (7th) week of the semester.

Final Exam

Friday, December 16, 2022, 8:30 – 11AM. Final exams may not be taken early or remotely.

Final letter grades will be determined based upon the following criteria:

Letter GradeNumerical Grade
A93 >
A-89 – 93
B+86 – 89
B82 – 86
B-78 – 82
C+75 – 78
C72 – 75
C-68 – 72
D+65 – 68
D62 – 65
D-55 – 62
F55 <
Final Letter Grades. Please note that students in the graduate course can only receive grades A through C and F per university policy.

academic integrity, n.: the process of maintaining honesty about ideas and their sources, and avoiding behaviors such as cheating on tests, plagiarizing papers, falsifying data.

Villanova University, Office of the Provost

Take a moment to review the University’s policies and guidelines for academic integrity. The computing sciences department encourages collaborative working. Additionally, the internet provides a wealth of computer science and programming resources. We encourage you to utilize those resources, but please do so in a way that does not violate the spirit of the University’s Code for Academic Integrity.

Below are some helpful guidelines regarding academic integrity for this course. Please review them in full.

  1. You should not send or receive code, either from your peers in the class, former students.
  2. You should not post code or assignments on websites such as Stack Overflow.
  3. You can and are encouraged to work with your peers.
    • Help debug or find errors in each other’s code.
    • Share ideas and approaches. Here are some examples of what is acceptable:
      • “I think using a list would be a good idea.”
      • “Have you considered sorting the data first?”
      • “Do you need a dictionary? Would another data structure work better?”
      • “There is a function inside the random module that will shuffle your list. Have you investigated that?”
  4. You should not search websites for solutions to problems given in class
    • Examples of acceptable and non-acceptable internet searches
      • Problem: Write a program that simulates a six-sided die
        • Acceptable: “How do you use the random number generator in python”
        • Acceptable: “What is the modulus operator in Python?”
        • Not acceptable: “How do I code a program to roll dice in Python”
      • Problem: Find all the prime numbers in a list.
        • Acceptable: “iterating through a list Python”
        • Acceptable: “using the modulus operator in Python”
        • Acceptable: “creating a new list in Python”
        • Acceptable: “appending values to a list in Python”
        • Not Acceptable: “How to find all the prime numbers in a list”
      • Problem: Write a function to determine if there are duplicate values in a list.
        • Acceptable: finding the length of a list in python
        • Acceptable: difference between list and set in Python
        • Acceptable: sorting a list in Python
        • Not Acceptable: how to find duplicate values in a Python list
      • Problem: Create a histogram of all the words in a document
        • Acceptable: “reading in a text file in python”
        • Acceptable: “Python dictionaries”
        • Acceptable: “creating a bar chart with matplotlib”
        • Not Acceptable: “histogramming words in a document and plotting”

Attendance is mandatory at all class meetings. Where possible, students should inform their instructors if they plan to be late or absent from class. Excused absences do not count toward a failure in the course for first year students. Absence from class does not release the student from work assigned. Students who miss an in-class obligation (exam, presentation, etc.) due to an excused absence will not be penalized – arrangements including a make-up assignment, alternate time for a presentation, or exemption from the assignment will be made in such circumstances.

The University’s list of excused absences for all students includes the following:

  • participation in NCAA athletic competitions
  • participation in special academic events (e.g., conferences, field trips, project competitions)
  • participation in official university business (e.g., student representatives attending meetings related to university governance)
  • attendance at significant events involving the immediate family (e.g., funerals, weddings)
  • religious holidays – see the University’s policy on Religious Holidays
  • college-approved participation in placement activities (e.g., job interviews, graduate school interviews, attending job fairs)
  • documented serious illness or disability

Students are expected to be attentive and respectful contributors to each class.


Students with disabilities who require reasonable academic accommodations should schedule an appointment to discuss specifics with me. It is the policy of Villanova to make reasonable academic accommodations for qualified individuals with disabilities. You must present verification and register with the Learning Support Office by contacting (610) 519-5176 or at For physical access or temporary disabling conditions, please contact the Office of Disability Services at (610) 519-4095 or email Registration is needed to receive accommodations.

Counseling Services

It is common for college students to feel overwhelmed by academic or personal matters. The University Counseling Center, located in 206 Health Services Building, offers individual counseling to discuss personal concerns. More information can be found on their website ( or you can also reach them by phone: (610) 519-4050.

Inclusive Learning

Villanova University supports an inclusive learning environment where diversity and individual differences are respected, appreciated, and recognized as a source of strength and intellectual inquiry. Our different backgrounds, experiences, and perspectives enrich our learning together; they are welcome and valued in this course. We will demonstrate respect and diligence in understanding how other peoples’ perspectives, behaviors, and world views may be different from our own and how they inform our own understanding.

Copyright Policy

The materials used in Villanova University courses (“Course Materials”) generally represent the intellectual property of course instructors, third parties and/or the University which may not be disseminated or reproduced in any form for public distribution (e.g., sale, exchange, etc.) without the written permission of the course instructor. Course Materials include all written or electronic documents and materials, including syllabi, current and past examination questions/answers, and presentations such as lectures, videos, PowerPoints, etc., provided by a course instructor. Course Materials may only be used by students enrolled in the course for academic (course-related) purposes. Published course readings (book chapters, articles, reports, etc.) available in Blackboard are copyrighted material. These works are made available to students through licensed databases or fair use. They are protected by copyright law and may not be further disseminated or reproduced in any form for distribution (e.g., uploading to websites, sale, exchange, etc.) without permission of the copyright owner. Follow these links for more information about intellectual property, copyright, and computer acceptable use.