Tuesdays & Thursday 8:05 - 9:20AM in CENTER Room 214

Henrik I Christensen
Office: CSE 2116
Hours: Tues 10-12AM
TA: Ruffin White
Office: QI 6th floor
Office Hours: Wed 10-12AM

Who is this for?

This is a graduate level course for those interested in pattern recognition in general and in many cases as applied to computer vision. It is not going to be a comprehensive Machine Learning course.


Since this is a graduate course we are typically quite loose with prerequisites.
  • A good foundation of probability and linear algebra. This class will have more math in it than most Computer Science classes.
  • Any Machine Learning background will help. Though the course won’t technically presume ML as a background it will be much easier to grasp if you’ve seen things like graphical models or other inference structures.
  • A good working knowledge of Matlab or Python with Numpy. We will be doing things in Python as part of the class. Octave will also be OK though the lack of some plotting make may some figures harder to generate.


The two texts that we will draw from are:
  • "The Elements of Statistical Learning: Data Mining, Inference, and Prediction. (2nd Ed)" by Hastie, Tibshirani, and Friedman (web site, Amazon). The book is available as a free PDF from the web site but it is also only $60 from Amazon which is relatively inexpensive for such a good text.
  • “Pattern Classification” by Duda, Hart and Stork (Amazon) This is a classic text (used to be just Duda and Hart) In some sense it mostly predated “modern” Machine Learning, but it’s extremely accessible.

We will require readings from both Hastie and D&H. In additon we will read a number of current day research papers to give you a sense of how the techniques are applied to real-world problems.


  • Web site: This site. Will have posted calendar/syllabus with posted slides, problem sets with data, other administrative stuff.
  • Slides: PDF slides will be posted as links to the schedule. As these will be collaborative lectures (more on that in class) they will probably not be posted before class.
  • Piazza: You will all receive an invitation to Piazza for CSE291. If not, send us email. Rather than emailing questions to the teaching staff (i.e. me), I encourage you to post your questions on Piazza. Find our class page at: XX
  • Matlab access: if you don’t know how to get MATLAB access, first ask a friend. Then come see the TAs or me. Python access: We encourage you to use Python / Numpy / SciKit-Learn directly or as part of a package such as Anaconda.


The grade will be based upon a small number of projects some of which can be done in groups no larger than two. The intent is to have three projects where everyone in the class uses the same data set and a variety of algorithms, whereas for the “final” project you will need to propose your own pattern recognition problem/data set. Also, everyone will be responsible for presenting some Pattern Recognition material, based on more recent methods in research papers. The presentations will be in smaller groups of 20-25 students to enable more discussion.
  • Communal Projects: 45%
  • Final project: 25%
  • Class presentation: 25%
  • Class participation: max 5% (ie it can only raise your grade)

Late Policy

Don't be late, it’s not fair to the TA. We will not accept late home works for full credit it unless you have (several day) prior approval from the professor for really extenuating circumstances. Submit what you have on time.

Honesty and Integrity Policy

Projects are to be done individually (or within your group) but you may collaborate at the white board level. You may help each other with algorithms and general computation, but your code must be your own.
Last modified: 3/1/2017