TA Office hours
Study Guide
CSC2515 Grad Project

CSC411/2515: Machine Learning and Data Mining

Winter 2018

About CSC411/2515

This course serves as a broad introduction to machine learning and data mining. We will cover the fundamentals of supervised and unsupervised learning. We will focus on neural networks, policy gradient methods in reinforcement learning. We will use the Python NumPy/SciPy stack. Students should be comfortable with calculus, probability, and linear algebra.

Required Math Background

  • Linear Algbera
    • Vectors: the dot product, vector norm, vector addition
    • Matrices: matrix multiplication
    • Rotation and translation, linear spaces, basis and dimension, Eigenvectors
    • Calculus: derivatives, derivatives as the slope of the function; integrals
    • Probability: random variables, expectation, independence, conditional probability, Bayes' Rule

    Math background problem set: complete ASAP

    Other topics will be needed, but are not part of the pre-requisites, so we will devote an appropriate amount of lecture time to them.


    The two recommended textbooks for this course are below. Additional useful resources are further down the page.

    • Pattern Recognition and Machine Learning by Christopher M. Bishop. A very detailed and thorough book on the foundations of machine learning. A good textbook to have as a reference.
    • Deep Learning  by Yoshua Bengio, Ian Goodfellow, and Aaron Courville. A advanced textbook with good coverage of deep learning and a brief introduction to machine learning, and several chapters covering the math you need for this course.
    • Introduction to Machine Learning, Second Edition by Ethem Alpaydin. This textbook contains explanations at about the level of this course (although we sometimes go beyond what is in this textbook).

    Discussion Forum

    The course discussion forum is on Piazza. Please ask questions on Piazza if they are relevant to everyone.

    is a third-party discussion forum with many features that are designed specifically for use with university courses. We encourage you to post questions (and answers!) on Piazza, and read what other questions your classmates have posted. However, since Piazza is run by company separate from the university, we also encourage you to read the privacy policy carefully and only sign up if you are comfortable with it. You can always read announcements and other students' posts without signing up.


    The course mark will be the maximum of the following. Students enrolled in CSC2515 have to submit a graduate course project instead of writing the exam. A minimum grade of 40% on the final exam/graduate course project is required to pass the course.

    • 40%: Projects (10% each)
    • 30%: Midterm
    • 30%: Final Exam
    • 40%: Projects (10% each)
    • 10%: Midterm
    • 50%: Final Exam

    Policy on special consideration

    Special consideration will be given in cases of documented and serious medical and personal cirumstances.


    The midterm will take place Friday March 2nd, 2018 at 6pm-8pm. In case of scheduling conflicts, please contact the instructors by Feb. 23 with the documentation of the scheduling conflict to make arrangements for an alternate sitting.

    Other recommended resources


    We will be using the Python NumPy/SciPy stack in this course. It is installed in the Teaching Labs.

    The most convenient Python distribution to use is Anaconda. If you are using an IDE and download Anaconda, be sure to have your IDE use the Anaconda Python.

    We will be using PyTorch later on in the course.


    Web-based LaTeX interfaces: Overleaf, ShareLaTeX

    TeXworks, a cross-platform LaTeX front-end. To use it, install MikTeX on Windows and MacTeX on Mac

    Detexify2 - LaTeX symbol classifier

    The LaTeX Wikibook.

    Additional LaTeX Documentation, from the home page of the LaTeX Project.

    LaTeX on Wikipedia.