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

http://rein.utsc.utoronto.ca/submit/.

### Syllabus

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.

#### Midterm

Download as

PDF.

#### 2014 Final exam

Download as

PDF.

#### 2015 Final exam

Download as

PDF.

### Assignments

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