About the course

From the second they are born, humans begin a long journey of learning. In this journey, they will learn to understand the shape of objects, to associate smells with taste, to walk, to communicate with others, to make ethical decisions and much more. Learning is at the core of what defines us. Without this cognitive capacity, we would cease to exist. It is however not unique to us, but also essential to the survival of all other species. Understanding learning is a big part of understanding life itself. This course is about understanding learning and some of its neural mechanisms.

The course is also about more immediate practical skills. It is about the analysis of "Big Data". It is about learning the tools that will allow you to succeed in the face of the data deluge.


  • PCA and ICA
  • Linear supervised learning: MLE, ridge and Bayesian estimators.
  • Nonlinear regression with neural networks.
  • Optimization algorithms for training.
  • Importance sampling for Bayesian logistic regression.
  • MCMC and Bayesian neural network models.
  • Gaussian processes and kernel methods.
  • Bandits and Bayesian optimization.
  • Boosting.
  • K-means and mixture models.
  • RBMs and Markov random fields.
  • Autoencoders.
  • Transfer Learning.
  • Deep learning techniques for object recognition.
  • Deep learning techniques for language modelling.
  • Deep learning techniques for recommender systems.
  • Deep learning techniques for video.
  • Deep learning techniques for audio and speech.
  • Bayesian models of cognition.
  • Recurrent neural networks and predictive coding.


    Time: Tue Th 11:00-12:30

    Location: Dempster 110

    Instructor: Nando de Freitas (nando@cs)

    Tutorial/office hours: Fridays 2:00-3:30 (ICICS 146)

    TA: Matt Hoffman (hoffmanm@cs)

    TA office hours: Fridays 1:00-2:00 (ICICS 146)

    Online discussion: cpsc540 google group


  • Assignments: 40%
  • Exam: 20% (November 17th)
  • Project: 40%
  • The instructor has the right to change the marking scheme under reasonable circumstances, and in accordance with majority vote in class.


  • Assignments will involve both written and Python programming problems.
  • All assignments are due in class at 11:00am on the specified date. IF THE ASSIGNMENTS ARE NOT IN TIME, THEY WILL NOT BE ACCEPTED. The assignment with the lowest mark will not be counted toward the final mark. Hence, please do not ask the lecturer or TA to consider late assignments.
  • Useful Links :