Prof. Corso moved to the Electrical Engineering and Computer Science department at the University of Michigan in the 8/2014. He continues his work and research group in high-level computer vision at the intersection of perception, semantics/language, and robotics. Unless you are looking for something specific, historically, here, you probably would rather go to his new page.

Full Teaching List

CSE 455/555 Introduction to Pattern Recognition
SUNY at Buffalo
Webpage for Spring 2013

Instructor: Jason Corso (UBIT: jcorso)

Course Webpage: or but this is just a link to the first one.


Meeting Times: TR 11:00-12:20

Location: Davis 101

Recitation Times: 455 Recitations (mandatory registration): M 10-11 (Bell 337), W 8-9 (Park 250)
555 Recitation (voluntary) W 9:15PM-10:15PM (Davis 101).

Teaching Assistants: David Johnson (ubit: davidjoh)
Yingbo Zhou (ubit: yingbozh)

Office Hours:

  • Instructor: TR 12:20-2:00 (Davis 332)
  • TA: David Johnson: M 2:00-4:00 and R 1:00-3:00
    Yingbo Zhou TW 4:00-6:00

Final Exam: Friday 3 May 2013, 11:45–2:45 in Davis 101.

Mailing List: for both 455 and 555 students.

Student Updates: All updates will be posted to the course website and sent to the mailing list. There is no other official course announcement mechanism, such as a newgroup, blog, piazza or otherwise.

A Note On Contacting The Instructor: You are encouraged to contact the instructor or TA via the course-wide mailing list via email. You must 1) send the email from your UBIT account (since this is the approved one on the mailing list) and 2) include [CSE555] at the beginning of the command-line (even if you are in CSE455). Email that does not follow these conventions will not be read.


  • Homework solutions for PCA, Boost and HMM posted. All quiz solutions posted.
  • All past midterms and finals are available here, with solutions where available.
  • Videos from a past offering of the course are available at They are not indexed by topic, but we are doing that now and will post links when available.
  • All slides available. No more homeworks will be posted.
  • HMM and Boosting homeworks now available.
  • Slides from Gao guest lecture and on boosting are posted.
  • Homework on PCA and dimensionality posted.
  • GRADES Summary Stats Available
  • March 3 -- Homeworks to parametric and nonparametric techniques are posted. Quiz solutions to 4-7 are posted. (Note, some quizzes do not have the Q link working, but the A link will work and contain also the questions.)
  • Feb 12 -- Solutions to quiz 4 posted.
  • Feb 7 -- Solutions to homework 3 posted.
  • Feb 5 -- Posted solutions to homework 2 and quiz 3. Posted new homework 3 (on discriminants and SVM). Quiz this week will be review and short answer, and include ideas from last Thursday's guest lecture but no mathematical details.
  • Feb 5 -- Posted matlab code for linear discriminants and linked to the Python code for it. Linked to Ng's videos for linear discriminants and SVMs.
  • Small fix and update to the lecture slides on decision trees (relating to Gini impurity). Solutions to Quiz 2 posted and graded papers available for pickup from TAs.
  • Quizzes available for download too.
  • Jan 24 - Slides for Bayesian Decision Theory posted. (We're on schedule!) Homework 1 solutions and homework 2 will be posted this afternoon are posted too.
  • Jan 18 - Annotated slides from in-class discussions are available for download at the calendar below. Homework on decision trees and random forests posted. pdf.
    Previous Exams are also available (for study material) Midterm 2009 | Midterm 2010 | Midterm 2011 | Midterm 2012 |
  • Jan 15 -- First Class.
  • RECITATIONS ARE BEING HELD IN THE FIRST WEEK OF CLASS. These are review sessions for the background material and highly recommended.
  • Jan 9 -- A recitation time has been set up for the 555 students. It is voluntary but recommended. Wednesday nights 9;15-10:15 in Davis 101.


Before the course begins, you should review your linear algebra, probability and statistics and calculus notes in preparation for the course.

Lectures from Ng's online ML course reviewing linear algebra are: Ng 13 Ng 14 Ng 15 Ng 16 Ng 17 Ng 18

You should also reacquaint yourself with Matlab (or Octave) and Python/Scipy/Numpy as many examples and voluntary assignments are given in these language/environments.

Ng's tutorial on Octave (a free Matlab-clone) are Ng 26 Ng 27 Ng 28 Ng 29 Ng 30 Ng 31 Ng 32

Python resources are at .

Week Tuesday Thursday Reading Assignments Annotated Slides Quizzes
(1) 1/15 Introduction Decision Trees DHS 1, 8.1-8.4 Ng 1 Ng 2 Ng 3 Rec. Learn Python/NumPy/SciPy and/or Matlab/Octave
1/17 trees Q / A
(2) 1/22 Randomized Decision Trees and Random Forests Bayesian Decision Theory DHS 2; Amit and Geman Homework on Trees/Forests Solutions
Supp HW Files
1/22 trees   |   1/24 decision theory Q / A
(3) 1/29 Bayesian Decision Theory Guest Talk on Handwriting Recognition DHS 2,5 Homework on Decision Theory Solutions 1/29 decision   |   Q / A
(4) 2/5 Linear Discriminants and Perceptrons Linear Discriminants and Perceptrons DHS 5
Ng 33 Ng 35 Ng 38
Example Matlab Code
Example Python Code
Homework on Discriminants and SVM Solutions
  Q / A
(5) 2/12 Support Vector Machines Support Vector Machines DHS 5, Moore, Burges
Ng 71 Ng 72 Ng 73 Ng 74 Ng 75
  Q / A
(6) 2/19 Parametric Techniques Parametric Techniques DHS 3 Homework on Parametric Techniques Solutions 2/19 Q / A
(7) 2/26 Non-Parametric Techniques Non-Parametric Techniques DHS 4 Homework on Non-Parametric Techniques and Solutions 2/26 | 2/28 Q / A
(8) 3/5 Clustering and EM Clustering and EM Ch. 10 Example Code: GMM.m and k_means.m   3/5 | 3/7 Q / A
(9) 3/12 Spring Break No Classes
(10) 3/19 Component Analysis and Dimension Reduction Component Analysis and Dimension Reduction Ch. 3
Trunk Turk and Pentland
Belhumeur et al.
Homework on PCA Solutions   Q / A
(11) 3/26 Component Analysis and Dimension Reduction Guest Prof. Jing Gao: Spectral Clustering Turk and Pentland
Belhumeur et al.
Martinez and Kak
Yang and Yang
Saul and Roweis
  Q / A
(12) 4/2 Boosting (Classifier Ensembles) Boosting (Classifier Ensembles) Schapire
Viola and Jones
Homework on Boosting   |   Solutions   Q / A
(13) 4/9 Graphical Models / Sequential Models (HMM) Graphical Models / Sequential Models (HMM) Ch 3.10
Ghahramani HMM/BN Tutorial
Rabiner HMM Tutorial
Homework on HMMs and data   |   Solutions   Q / A
(14) 4/16 Graphical Models / Sequential Models (HMM) Algorithm Independent Topics Ch 3.10, Ch. 9
Ghahramani HMM/BN Tutorial
Rabiner HMM Tutorial
DBNs (from K. Murphy)
DBN Chapter (from K. Murphy)
  Q / A
(15) 4/23 Syntactic Pattern Recognition Syntactic Pattern Recognition Ch. 8.5-8.7   Q / A
Final Exam Friday May 3, 2012 at 11:45-2:45 in Davis 101



In order to deepen an understanding of the discussed math and algorithms, students are strongly encouraged to work on their own to complete the assignments and programming materials. A variety of codes will be distributed to the course, in both Matlab and Python formats. Matlab and Octave are readily available on campus. Students are recommended to learn and use Python (i.e., SciPy, NumPy) in the course. Many programming materials given in lecture and many programming aspects of the homeworks will be given in Python. A brief introduction to scientific Python will be given in the course, but it is the students’ responsibility to get up to speed. Additional python resources will be maintained at .

No work in Java, C/C++, OCaml or other programming environment is contained in this course.

To allow for a common Python environment, the course will officially rely on the Enthough Python Distribution (EPD), which is easy to get, free, and includes the packages needed for our material. The course will use EPD version 7.3. Students are encouraged to install it on their own computers, and it is also installed on the CSE network (see for more information).


The professor will make all of the source code discussed in class available to the students. In addition, some pieces of source code will be provided as part of the homework assignments. The source code discussed in the class and the core package is accessible to the students in three ways
  1. Via the web:
  2. On the departmental (student) Unix network: /home/csefaculty/jcorso/555code. You can copy the whole directory with rsync: rsync -Cavuz .
  3. The directory is actually a bzr repository to which you should have read access. So, you can just pull a copy of the repository (you will not have privileges to commit) with bzr checkout bzr+ssh:// This option is particularly of interest because the code will be periodically updated throughout the semester and you will want to have the most recent version.
Note, the source code will be updated periodically throughout the semester and you need to get the latest versions Also, note that toy data is included at the above location as well. It is not in the repository, however.

How to Submit Your Work

No work will officially be submitted as it is home study.

Main Course Material

Please download the syllabus for all other information regarding the course, including catalog description, grading rubrics, etc.

last updated: Sat Jun 21 07:38:46 2014; copyright jcorso