## 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.

### Submissions

To submit an assignment, go to

portal.utoronto.ca.

### Syllabus

Includes tentative schedule and grading scheme. Download as

PDF.

### Github Repo

Various files for the tutorials and assignments can be found on the course's

github repo.

### Geotab Project

Geotab project description with instructions and deliverables. Download as

PDF.

### Lecture Notes

#### Lecture 1

Introduction, floating point numbers. The following material is available:

slides (pdf) and

lecture notes (pdf).

#### Lecture 2

Floating point number boot camp and algorithmic complexity. The following material is available:

slides (pdf) and

solutions to the hand-out (pdf).

#### Lecture 3

Matricies, algorithmic complexity, LU decomposition. The following material is available:

slides (pdf) and

lecture notes (pdf).

#### Lecture 4

Review and examples for the linear least square fit (see handout from class), root finding algorithm, geotab walk through.
The following material is available:

lecture notes (pdf).
The geotab example and the LU decomposition code are available as jupyter notebooks in the

course repository on github.

#### Lecture 5

Root finding methods beyond bisection, gravitational wave discovery, plotting with matplotlib.
The following material is available:

lecture notes (pdf).
The gravitational wave notebooks are available on the

LIGO Open Science Center.

#### Lecture 6

Midterm, interpolation methods.
The following material is available:

lecture notes (pdf).

#### Lecture 7

Interpolation examples, introduction to differential equations.
The following material is available:

lecture notes (pdf),

interpolation examples (github).

#### Lecture 8

Integration examples, N-body simulations.
The following material is available:

lecture notes (pdf).

#### Lecture 9

Numerical integration, Monte Carlo.
The following material is available:

lecture notes (pdf).
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

Monte carlo methods, Bayes's theorem.
The following material is available:

slides (pdf).

#### Lecture 11

Quiz 4 (retake), review of material for the final exam.
The following material is available:

slides (pdf).

#### Lecture 12

Geotab presentations.

#### Final exams from previous years

Note that some content has changed!
Download the 2014 exam as

PDF.
Download the 2015 exam as

PDF.
Download the 2016 exam as

PDF.