Syllabus: CSCC11 Introduction to Machine Learning

Instructors:
David Fleet (fleet@cs.toronto.edu; Personal Academic Website )
Mehdy Dousty (mehdy.dousty@utoronto.ca; Personal Academic Website)
Office hours: TBD

Synopsis

This course introduces the basic conceptual elements of machine learning. We will cover the mathematical foundations for methods in regression, classification and unsupervised learning. These include linear and nonlinear basis-function regression, Gaussian Process regression, class-conditional models, decision trees, logistic regression, k-means, mixture models, principal component analysis, artificial neural networks. The main course web site will maintain a calendar to specify when specific topics will be covered, the assignments dates and provide handouts.

Required Background

The student is also expected to be comfortable with elementary probability and statistics, linear algebra, elementary geometry, and vector calculus (including partial differentiation). They are also expected to be comfortable programming in Python.

Course Texts

We will mainly focus on notes written by faculty at the University of Toronto. These notes will be posted on the main course website. As a consequence, there is no required textbook for the course. Nevertheless, the following books would serve as fine reference texts, especially those by Bishop and MacKay, which are excellent books but somewhat advanced for this course:

C. Bishop. Pattern Recognition and Machine Learning. Springer, 2006.

T. Hastie, R. Tibshirani, and J. Friedman. The Elements of Statistical Learning. Springer, 2008

T. Mitchell. Machine Learning. McGraw-Hill, 1997.

D. MacKay. Information Theory, Inference and learning Algorithms. Cambridge, 2003.

R. Duda, P. Hart, and D. Stork. Pattern Classifcation. Wiley, 2001.

K. Murphy. Machine Learning, MIT Press, 2012.

Grading

The grading for the course will be based on three (3) assignments (worth 18%), two (2) term tests (worth 32%), and a final exam (worth 50%). One must obtain a mark of at least 35/100 on the final examination to pass the course. If a student's grade on the final exam is less than 35%, then their final course grade will be equal to the exam grade.

Assignments

Assignments involve both written (theoretical) work as well as programming exercises. The programming will be done preimarily in Python. Descriptions of the different assignments will be provided on the main course web site as they become available.

Marking

As a general rule, small matters of marking on assignments (apparent addition errors, questions about evaluation criteria, etc.) should be taken first to the marker (via email). More significant issues, or unresolved matters on assignments, are appropriate to take to the professor. Matters of marking on tests and exams should be taken to the professor.

Academic Fraud:

Plagiarism - or simply, cheating - is taken to be the handing in of work not substantially the student's own; it is usually done without reference, but is unacceptable even in the guise of acknowledged copying. Do not copy work from others, in or out of the class. All work handed in should be the student's work.

It is not cheating, however, to discuss ideas and approaches to a problem, nor is it cheating to seek or accept help with a program or with writing a paper. Indeed, a moderate form of collaboration is encouraged as a useful part of any educational process. However, good judgement must be used, and students are expected to present the results of their own thinking and writing. Never copy another students work -- it is plagiarism to do so, even if the other student "explains it to you first." Do not work together to form a collective solution, from which the members of the group copy out the final solution. Rather, walk away and recreate your own solution later.

You should not need to search the web (eg stack overflow, or other students' git repositories) for solution code or parts of your programming exercise. Search the web for code and submitting or a piece of it as your own, even with minor modifications, is academic fraud. Simiarly, it is not permitted to be large language models to generate the code for your assignments.