Syllabus for Machine Learning (308-761A)

Fall 2001


General Information

Location:McConnell Engineering Building, Room 320.
Times:Tuesday and Thursday, 10:00-11:30am.
Instructor:Professor Doina Precup, School of Computer Science.
Office:McConnell 326.
Office hours:
Tuesday & Thursday, 11:30-12:00;
Wednesday, 2:00-3:00pm.
Meetings at other times by appointment only!
IMPORTANT: Email is the easiest way to reach me!
Class web page:
IMPORTANT: This is where class notes, announcements and homeworks are posted!


Course Description

The field of machine learning is concerned with the question of how to construct computer programs that automatically improve with experience. In recent years, many successful applications of machine learning have been developed, ranging from data-mining programs that learn to detect fraudulent credit card transactions, to autonomous vehicles that learn to drive on public highways. At the same time, there have been important advances in the theory and algorithms that form the foundation of this field.

The goal of this class is to provide an overview of the state-of-art algorithms used in machine learning. We will discuss both the theoretical properties of these algorithms and their practical applications.



Basic knowledge of a programming language is required. Basic knowledge of probabilities and statistics is highly recommended. Example courses at McGill providing sufficient background are 189-323 or 304-305. Some AI background is recommended, as provided, for instance by 308-424 or 304-526. If you have doubts regarding your background, please contact me to discuss it.


Reference Materials

The main textbook for the course is Machine Learning by Tom Mitchell (McGraw-Hill, 1997). Since the book does not cover many new and exciting developments in the field, we will supplement it with research papers in the field. These will be distributed in class or posted on the web page, as appropriate. The class slides will be posted on the web page.


Class Requirements

The class grade will be based on the following components:

Minor changes to the evaluation scheme (if any) will be announced in class by Tuesday, September 11 (pending in-class discussion and the estimated total enrollment).

The assignments will include both written work and implementations. The implementation work will involve programming of algorithms that we discuss in class and reporting results produced by these algorithms. The ability to program in a high-level language, such as C/C++, Java, LISP, Matlab, under the UNIX operating system is assumed but the use of these languages is not mandatory. You may use any programming language, as long as you can demonstrate that your implementation is correct. The written work will involve solving problems related to the theoretical part of the course, and explaining the results of your implementations. During the course we will also use programs written by other machine learning researchers. Instructions regarding how to use these programs will be provided as needed.

The reading assignments will involve summarizing and/or critiquing research papers in the field. You are also expected to actively participate in class discussions, and the participation is part of your grade for the reading assignment. When reading the book and other papers, always think about questions that you may have, and bring them to class.

The final project will involve choosing a topic, either from a list of suggestions that will be provided or based on your own interests. You will be required to read papers related to the topic, implement or find available implementations of the algorithms discussed, and perform experimental work comparing these algorithms. By October 11, you will have to hand in a short write-up of your intended work (details will be provided later). At the end of the semester, you will write a final report and you will prepare a 25-minute class presentation of the topic you investigated. The presentation will be evaluated by all the people present.


Homework Policy

Assignments should be submitted in class on the day when they are due. In addition, the answers to programming problems must also be submitted electronically, using the handin system. Assignments submitted until 10:00am on the next day will be penalized by 10 points. Assignments submitted before the next class are penalized 25 points. No credit is given for assignments submitted at a later time, unless you have a medical problem.

Reading assignments are due in class. If you cannot come to class, please contact me to make different arrangements for submitting the assignment.

All assignments are INDIVIDUAL! You may discuss the problems with your colleagues, but you must submit individual homeworks. Please acknowledge all sources you use in the homeworks (papers, code or ideas from someone else).


Tentative Schedule

  1. Introduction (1 lecture)
  2. Concept Learning and Version Spaces (1 lecture)
  3. PAC learning (1 lecture)
  4. Decision Trees (2 lectures)
  5. Artificial Neural Networks (2 lectures)
  6. VC dimension (1 lecture)
  7. Empirical evaluation of learning algorithms (2 lectures)
  8. Bayesian learning (2 lectures)
  9. Ensemble methods (1 lectures)
  10. Instance-based learning (1 lecture)
  11. Support Vector Machines (2 lectures)
  12. Genetic Algorithms (1 lecture)
  13. Reinforcement learning problems (1 lecture)
  14. Temporal-difference learning (2 lectures)
  15. Using function approximation in reinforcement learning (2 lectures)
  16. Unsupervised learning (1 lecture)
  17. Project presentations (2 lectures)
  18. Wrap-up (1 lecture)
IMPORTANT: The schedule is subject to change. Up-to-date information about the schedule and assigned readings will be posted on the class web page.