This page contains syllabi, problem sets, past exams, and other resources for the courses that I am currently teaching and have taught in the past.

Launch of a rocket built by students in PHYB54 on the roof of the Science Wing.

Mechanics: From Oscillations to Chaos (PHYB54)

From the calendar: The linear, nonlinear and chaotic behaviour of classical mechanical systems such as oscillators, rotating bodies, and central field systems. The course will develop analytical and numerical tools to solve such systems and determine their basic properties. The course will include mathematical analysis, numerical exercises (Python), and demonstrations of mechanical systems.


Includes tentative schedule and grading scheme. Download as PDF.

Problem Sets

Problem Set 1

Due: Monday, January 16th. Download as PDF.

Problem Set 2

Due: Monday, January 23rd. Download as PDF.

Problem Set 3

Due: Monday, January 30th. Download as PDF. Download solutions as PDF.

Problem Set 4

Due: Monday, February 6th. Download as PDF (updated 2017/2/3).

Problem Set 5

Due: Monday, March 6th. Download as PDF.

Problem Set 6

Due: Monday, March 13th. Download as PDF.

Problem Set 7

Due: Monday, March 27th. Download as PDF.
Image of M51 taken with the UTSC Observatory.

Galactic Structure and Dynamics (AST1420)

This is an introductory course to the galactic structure and dynamics. The course starts with discussing observational properties of star clusters, galaxies and galaxy clusters, before going into the mathematical details of modelling these systems. Assignments include numerical exercises.


Download as PDF.

Problem Set 1

Due: Tuesday, February 7th. Download as PDF.

Problem Set 2

Due: Tuesday, March 7th. Download as PDF.
Simulation of the formation of large scale structure and galaxies in the early universe (Max Planck Institute for Astrophysics).

Introduction to Scientific Computing (PSCB57)

From the calendar: Scientific computing is a rapidly growing field because computers can solve previously intractable problems and simulate natural processes governed by equations that do not have analytic solutions. During the first part of this course, students will learn numerical algorithms for various standard tasks such as root finding, integration, data fitting, interpolation and visualization. In the second part, students will learn how to model real-world systems from various branches of science. At the end of the course, students will be expected to write small programs by themselves. Assignments will regularly include programming exercises.


To submit an assignment, go to http://rein.utsc.utoronto.ca/submit/.


Includes tentative schedule and grading scheme. Download as PDF.

Old exams

Note that the topics changed. For example, we did not do cover the assembler language this year.


Download as PDF.

2014 Final exam

Download as PDF.

2015 Final exam

Download as PDF.


Assignment 1

Python and Fibonacci numbers. Download as PDF.

Assignment 2

Floating point numbers, integers and computational complexity. Download as PDF.

Assignment 3

Linear least square fit. Download as PDF. Download climate data: climate.txt. Download solution: Solution_A3.py.

Assignment 4

Newton's methods, data files, bisection method. Download as PDF. (updated Monday Oct 24)

Assignment 5

Differential equations. Download as PDF.

Assignment 6

Your own project!. Download as PDF.

Lecture notes

Lecture 1

Introduction to Scientific Computing. Download slides as PDF. Floating point numbers. Download notes as PDF.

Lecture 2

Floating point number review, algorithmic complexity, matricies. Download as PDF.

Lecture 3

No lecture notes for this lecture. See Computational Physics by Newman, chapter 6.1. Code sample form the lecture: linearequations.py.

Lecture 4

Linear least square fit and root finding methods. Download as PDF.

Lecture 5

Root finding, interpolation. Download as PDF.

Lecture 6

Cubic spline, plotting, colour maps. Download as PDF.

Lecture 7

Differential Equations 1. Download as PDF.

Lecture 8

Differential Equations 2. Download as PDF.

Lecture 9

Monte Carlo. Details on Buffon's Needle can be found on wikipedia. Details on random number generators and cryptography can be found in the Computational Physics book, chapter 10. A good introduction to Monte Carlo methods can be found in Helmut Katzbraber's lecture notes . In particular, read the chapter 2.2 on Markov Chains.

Lecture 10

Numerical integration. See Computational Physics by Newman, chapter 5.

Lecture 11

Bayes' Theorem. See Think Bayes - Bayesian Statistics Made Simple