**Where is the discussion forum?****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.

**Class Time/Place**: Tue/Thu 9:30am-10:45pm Catalog, 1404 Siebel Center**Class URL**: go.cs.illinois.edu/cs357**Web forum**: piazza.com/illinois/fall2015/cs357/home**Instructor**: Luke Olson**TAs**: Ryne Beeson, Nathan Bowman, Erin Carrier, Peter Sentz**Syllabus and Calendar****Grading Policy**

## Homework

- Homework 0 Due Friday, September 4 at 4pm
- Homework 1 Due Friday, September 11 at 4pm
- Homework 2 Due Friday, September 18 at 4pm
- Homework 3 Due Friday, September 25 at 4pm
- Homework 4 Due Friday, October 9 at 4pm
- Homework 5 Due Friday, October 16 at 4pm
- Homework 6 Due Friday, October 23 at 4pm
- Homework 7 Due Friday, October 30 at 4pm
- Homework 8 Due Friday, November 13 at 4pm
- Homework 9 Due Friday, November 20 at 4pm
- Homework 10 Due Friday, December 4 at 4pm
- Homework 11 Due Thursday, December 10 at 4pm

## Exam Schedule

- Midterm 1: Sunday September 27 - Wednesday September 30
- Midterm 2: Sunday November 1 - Wednesday November 4
- Final: tentatively Thursday December 10 - Monday December 14, but do not make plans around this yet since this is not confirmed

## 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 IEEE-754 floating point standard
- Compute floating point vaules in different portions of the floating point range
- Use the IEEE-754 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

## 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 right-hand 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 matrix-vector multiply

## 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 least-squares data fit to determine a
*trend* - Calculate the the cost of a least-squares solution
- Measure the error in a least-squares solution
- Approximate the minimum to an objective function
- Approximate the minimum to an objective function in multiple dimensions

## Office/Discussion Hours

Day | Time | Type (Location) | People |
---|---|---|---|

Mon | 11-12:30pm | OH (0209 Siebel) | Nathan Bowman |

Tues | 10:45-11:30am | OH (4312 Siebel) | Luke Olson |

Wed | 10:30-12:30pm | OH (0209 Siebel) | Erin Carrier/Pete Sentz |

Wed | 4:30-6pm | Discussion (1109 Siebel) | Ryne Beeson/Erin Carrier |

Thur | 4:30-6pm | Discussion (1103 Siebel) | Pete Sentz/Nathan Bowman |

The lectures will have associated *pre-lecture* material: a collection of
videos, slides, short write-ups, etc that will support the upcoming lecture.

# Quiz Policy

As part of the pre-lecture 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 class. After this you can
take the quizes for half-credit 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 half-credit. 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 pre-lecture
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 quizes:

- Homeworks will have
**one**graded attempt. Meaning if you submit your solutions, then you cannot change them for regrading. - Homework submitted after the deadline will receive half-credit (ie, your work
will be graded and multiplied by 0.5). You can submit homework for
half-credit for up to
*7 days*. You must "end session" and "confirm" before the deadline; if you start a homework*before*the deadline, but finish*after*the deadline, then you will receive half-credit. If you submit after 7 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 half-credit 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 on-time. 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. Olson at lukeo@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 | [93,99) |

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

## Python Help

- Python tutorial
- Facts and myths about Python names and values
- Dive into Python 3
- Learn Python the hard way
- Project Euler (Lots of practice problems)

### Numpy Help

- Introduction to Python for Science
- The SciPy lectures
- The Numpy MedKit by Stéfan van der Walt
- The Numpy User Guide by Travis Oliphant
- Numpy/Scipy documentation
- More in this reddit thread
- Spyder (a Python IDE, like Matlab) is installed in the virtual machine. (Applications Menu > Development > Spyder)
- An introduction to Numpy and SciPy
- 100 Numpy exercises

## Computing

We will be using Python with the libraries numpy, scipy and matplotlib for in-class 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 only *supported* way to do so is using the
supplied virtual machine image.