CS489/698 - Syllabus

Instructor: Pascal Poupart
Email: ppoupart [at] cs [dot] uwaterloo [dot] ca
Website: http://www.cs.uwaterloo.ca/~ppoupart/teaching/cs489-winter10/cs489-winter10.html
Newsgroup: uw.cs.cs489
Office Hours: TBA (DC2514)
Lectures: Tu & Th 1:00 pm - 2:20 pm (DWE3519)
Teaching Assistant: Wilson Hsu


Computers are traditionally programmed by listing a set of instructions that dictate the operation of the machine step by step.  As a result, machines tend to have a predetermined and rigid behaviour.  However, in many situations it would be desirable to endow machines with the ability to adapt and learn.  This course provides an introduction to the field of machine learning, which studies the principles and algorithms that allow a computer to learn new concepts from some examples.  The course will cover both the theoretical foundations of machine learning (e.g., learning theory and Bayesian learning) as well as the design of algorithms for machine learning (e.g., decision trees, neural networks, kernel methods, support vector machines, ensemble learning). 

Machine learning has recently lead to major advances in several areas of computer science.  The ability to learn new concepts from examples is particularly useful in data mining, information retrieval, natural language processing, computer vision, computational finance, bioinformatics, and health informatics. Similarly, the ability to adapt to new situations is also essential for self managing systems and robotics.   Hence, this course should be of interest to a wide audience.


The topics we will cover include:

  1. Introduction to Machine Learning
  2. Theoretical Foundation
    1. Learning theory
    2. Bayesian learning
  3. Classification
  4. Regression
  5. Dimensionality reduction
  6. Specific models/algorithms
    1. Decision trees
    2. Neural networks
    3. Kernel methods
    4. Support vector Machines
    5. Ensemble learning


There are many good references for machine learning.  We will mostly use the following three textbooks.  Readings in the textbooks are assigned for every lecture in the course schedule.
[M] Tom Mitchell, Machine Learning (1997)
[BDSS] Shai Ben-David & Shai Shalev-Shwartz, Machine Learning: From Theoretical Priciples to Practical Algorithms (under writing)
[B] Christopher Bishop, Pattern Recognition and Machine Learning (2006)


There will be four assignments given the course, each worth 12.5% of the final mark (7.5% for CS689). Each assignment will have a theoretical part and a programming part.  Assignments are done individually (i.e., no team).  You are free to program in the language of your choice, however Matlab is recommended since it provides a convenient high-level programming environment for matrix operations.  If you decide to program in Matlab, the IST group maintains a nice set of online references for Matlab including a tutorial.

The approximate out and due dates are:

For each assignment, a hard copy must be handed in on the due date either in class or in the assignment drop off box (3rd floor of the math building near the bridge to DC). No late assignment will be accepted.


There is no midterm.

There will also be a final examination of 2.5 hours worth 50% of the final mark (40% for CS698) to be scheduled by the registrar.


The grading scheme for the course is as follows.


CS698 (graduate students only):


Academic Integrity: In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. [Check www.uwaterloo.ca/academicintegrity/ for more information.]

A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70, Student Petitions and Grievances, Section 4, www.adm.uwaterloo.ca/infosec/Policies/policy70.htm. When in doubt please be certain to contact the department’s administrative assistant who will provide further assistance.

A student is expected to know what constitutes academic integrity [check www.uwaterloo.ca/academicintegrity/] to avoid committing an academic offence, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about “rules” for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline, www.adm.uwaterloo.ca/infosec/Policies/policy71.htm. For typical penalties check Guidelines for the Assessment of Penalties, www.adm.uwaterloo.ca/infosec/guidelines/penaltyguidelines.htm.

Appeals: A decision made or penalty imposed under Policy 70 (Student Petitions and Grievances) (other than a petition) or Policy 71 (Student Discipline) may be appealed if there is a
ground. A student who believes he/she has a ground for an appeal should refer to Policy 72 (Student Appeals) www.adm.uwaterloo.ca/infosec/Policies/policy72.htm.

Note for Students with Disabilities: The Office for Persons with Disabilities (OPD), located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the OPD at the beginning of each academic term.