 Where is the discussion forum?
 piazza.com/illinois/spring2016/cs357/home
 You are expected to monitor Instructor notes on piazza as quizzes and homeworks will be announced there.
 Note: We will not debug code on Piazza. If you wish to work with course staff to debug your code you need to come to office hours.
 Where are my grades listed?
 At the top, under Student>View Grades
 When are the exams? Exam Schedule
 Can I use something other than Python? No.
 Do I need to type the homework? No, but it must be readable. You will lose points for bad handwriting or unreadable scans.
Homework
 Homework 0 Due Friday, January 29 at 4pm
 Homework 1 Due Friday, February 5 at 4pm
 Homework 2 Due Friday, February 12 at 4pm
 Homework 3 Due Friday, February 19 at 4pm
 Homework 4 Due Friday, March 4 at 4pm
 Homework 5 Due Friday, March 11 at 4pm
 Homework 6 Due Friday, March 18 at 4pm
 Homework 7 Due Friday, April 1 at 4pm
 Homework 8 Due Friday, April 15 at 4pm
 Homework 9 Due Friday, April 22 at 4pm
 Homework 10 Due Friday, April 29 at 4pm
 Homework 11 Due Wednesday, May 4 at 4pm (No late submissions)
Exam Schedule
 Midterm 1: Monday February 22  Friday February 26
 Midterm 2: Monday April 4  Friday April 8
 Final: Thursday May 5  Thursday May 12
Computing with Data
Applications
 Computation cost on a cloud and the benefits of fast data structures
 Timing Data from an experiment
 Floating point disasters
 Image Manipulation
 Randomness and simulating risk
 Options Pricing
math.h
and Taylor series
Objectives
 Use numpy for more efficient computations
 Construct examples that show the benefits of contigous memory (numpy arrays)
 Identify the advantages of numerical libraries
 Create a numerical experiment that measures the cost of basic array operations
 Represent a real number in a floating point system
 Measure the error in rounding numbers in the IEEE754 floating point standard
 Compute floating point vaules in different portions of the floating point range
 Use the IEEE754 standard to quantify error floating point arithmetic
 Compute the memory storage of single versus double precision
 Describe the accuracy of several examples in terms of machine epsilon
 Determine whether data grows algebraically versus exponentially and at which rate
 Design a numerical experiment with reproducibility, randomness, consistent timing in mind
 Compute a random process
 Use randomness to confirm a numerical hypothesis
 Approximate a function using a Taylor series approximation
 Quantify the error in using a Taylor series approximation at several points
Lecture  Date  Topic 
Material 
1

Tue Jan 19

All About Data and Computing with Python


2

Thu Jan 21



3

Tue Jan 26

Approximations in Numerical Computing


4

Thu Jan 28



5

Tue Feb 02

Designing a numerical experiment


6

Thu Feb 04

Randomness and Simulation. Monte Carlo


7

Tue Feb 09

An approximation tool. Taylor Series


8

Thu Feb 11

Linear Algebra Meets Computation


Computing with arrays of data
Applications
 Raw Materials and Manufacturing
 Algebraic Connectivity of Graphs
 Prinicple Component Analysis on a dataset
 Page Rank and similar probability measures
 Image Compression
 Learning Algorithms
Objectives
 Take a linear algebra operation and apply the operation in a computational setting
 Represent a problem description in terms of matrices and vectors
 Load a collection of data into matrix and vector data structures
 Compute the solution to a linear system of equations
 Detail the pieces of an LU factorization of a linear system
 Use an LU factorization to solve a problem with many righthand sides
 Measure the number of digits of accuracy for poorly conditioned problems
 Compute eigenvalues/eigenvectors for different applications
 Use the Power Method to find a specific eigenvector
 Compute singular value decomposition for different applications
 Use singular values to identified important components
 Represent a linear system as a sparse linear system
 Represent a graph as a sparse system
 Compute the cost of a sparse matrixvector multiply
Lecture  Date  Topic 
Material 
9

Tue Feb 16

Norms


10

Thu Feb 18

Solving Systems


11

Tue Feb 23

Factorizations and Eliminations


12

Thu Feb 25

no class.


13

Tue Mar 01

Pivoting and Computational Expense and Accuracy


14

Thu Mar 03

An inclass project. Options Pricing with Monte Carlo


15

Tue Mar 08

Eigen Everything


16

Thu Mar 10

The Power Method and Ranking Things


17

Tue Mar 15

Singular Values and Compression


18

Thu Mar 17

Othogonality


19

Sat Mar 19

Spring Break (no class)


20

Mon Mar 21

Spring Break (no class)


Approximating data
Applications
 Polling Data
 Baseball Statistics and Trends
 Scalable fonts
Objectives
 Interpolate or fit a piece of data with a given model (or function)
 Find the derivative of noisy data
 Compute the intgral of a data set
 Use leastsquares data fit to determine a trend
 Calculate the the cost of a leastsquares solution
 Measure the error in a leastsquares solution
 Approximate the minimum to an objective function
 Approximate the minimum to an objective function in multiple dimensions
Lecture  Date  Topic 
Material 
21

Tue Mar 29

Your Graph is a Sparse Matrix


22

Thu Mar 31

Finding LeastSquares


23

Tue Apr 05

Interpolation


24

Thu Apr 07

no class


25

Tue Apr 12

Interpolation and Splines


26

Thu Apr 14

Nonlinear Equations


27

Tue Apr 19

Nonlinear Equations


28

Thu Apr 21

Optimization


29

Tue Apr 26

Optimization


30

Thu Apr 28

Optimization


31

Tue May 03

Final Exam Review (practice exam)


Office/Discussion Hours
Day 
Time 
Type (Location) 
People 
Mon 
2:003:00pm 
OH (4324 Siebel) 
Michael Heath 
Tue 
11:0012:00am 
OH (2103 Siebel) 
Eric Shaffer 
Wed 
9:3011:30am 
OH (0209 Siebel) 
Erin Carrier 
Wed Thur 
3:004:00pm 3:004:00pm 
OH (0209 Siebel) 
David Raju 
Wed 
4:006:00pm 
Discussion (1131 Siebel) 
Ryne Beeson 
Thur 
9:3011:30am 
OH (0209 Siebel) 
Nathan Bowman 
Thur 
5:007:00pm 
Discussion (1131 Siebel) 
Karthik Ramaswamy 
The lectures will have associated prelecture material: a collection of
videos, slides, short writeups, etc that will support the upcoming lecture.
Quiz Policy
As part of the prelecture material, there will often be associated quizzes.
These quizes will be short and directly related to the latest material.
 Quizzes will allow two graded attempts. This higher grade will be
recorded.
 Quizzes are to be done on your own, not in groups.
 Quizzes will have a deadline of 10 minutes before the 12:30pm class. After this you can
take the quizes for halfcredit for up to 3 days. You must "end session" and
"confirm" before the deadline; if you start a quiz before the deadline, but
finish after the deadline, then you will receive halfcredit. If you
submit after 3 days, then no credit will be given.
 You must fully submit your entire quiz in order to receive credit. To do so,
you must press the "Submit for grading" button in the upper right corner. Note,
this button was previously titled "End session". This is separate from submitting
a final answer or saving an answer to a single question. Failure to submit the
entire quiz, regardless of whether answers were saved for individual questions,
will result in no credit.
Importantly, the quizzes are designed to help you go through prelecture
material! They are not a major component of the grade, but should be a
helpful step toward understanding the course content.
Homework Policy
Homeworks will be released on weekly basis, being released on Fridays and due
on Fridays at 4pm (leaving approximately one week to complete).
There are a few rules that are different from quizzes:
 Homeworks will have one graded attempt. Meaning if you submit your
solutions, then you cannot change them for regrading.
 As soon as you start the homework, you should make sure that the desired
option for "At deadline" is selected. If "Submit session for grading is selected",
your assignment will be automatically submitted at the deadline. If you wish
to work on the assignment and submit late, you must select "Do not submit
session for grading". Otherwise, your session will automatically be submitted
at the deadline and your session will not be reopened.
 Homework submitted after the deadline will receive halfcredit (ie, your work
will be graded and multiplied by 0.5). You can submit homework for
halfcredit for up to 3 days. You must "submit assignment" and "confirm" before
the deadline; if you start a homework before the deadline, but finish
after the deadline, then you will receive halfcredit. If you submit after
3 days, then no credit will be given.
 Solutions to the homework can be viewable (and reviewable) after the due date. If you are
submitting homework for the halfcredit due date, you cannot directly copy
the sample solution. What you submit must still be written by you, not just
copied.
 A homework is considered either all late or all ontime. If any
portion of the homework is submitted after the deadline then the
entire homework will be graded as late.
Exam Policy
There will be three exams: two midterm exams and a final. The final will be
comprehensive but weighted toward the last section of material in the course.
Accomodations
If you have requests for special accomodations in the classroom, with the
digital content, or for exams, please see Prof. Shaffer at
shaffer1@illinois.edu.
Distribution

Weight 
HW 
25% 
Exam1 
20% 
Exam2 
20% 
Final 
25% 
Quiz 
10% 
Detailed Distribution:
Academic Grading System in the US
Course Grade 
Total Score as weighted above 
A+ 
[97,100) 
A 
[93,97) 
A 
[90,93) 
B+ 
[87,90) 
B 
[83,87) 
B 
[80,83) 
C+ 
[77,80) 
C 
[73,77) 
C 
[70,73) 
D+ 
[67,70) 
D 
[63,67) 
D 
[55,63) 
F 
[ 0,55) 
Numerical Methods
 Lecture Notes Scientific Computing: An Introductory Survey by Michael T. Heath
Python Help
Numpy Help
Computing
We will be using Python with the libraries
numpy,
scipy and
matplotlib for inclass work and
assignments. No other languages are permitted. Python has a very
gentle learning curve, so you should feel at home even if you've
never done any work in Python.
Virtual Machine Image
While you are free to install Python and Numpy on your own computer
to do homework, the course staff will only provide support for using the
supplied virtual machine image.
Download Virtual Machine »