- 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.
- Class Time/Place: Tue/Thu 12:30pm-1:45pm Catalog, 1320 Digital Computer Laboratory
- Instructor: Michael T. Heath
-
Lecture Videos: Video from the 12:30 Lecture
-
Class Time/Place: Tue/Thu 3:30pm-4:45pm Catalog, 1310 Digital Computer Laboratory
-
Instructor: Eric Shaffer
-
Class URL: go.cs.illinois.edu/cs357
- Web forum: piazza.com/illinois/spring2016/cs357/home
- TAs: Ryne Beeson, Nathan Bowman, Erin Carrier, David Raju, Karthik Ramaswamy
- Syllabus and Calendar
- Grading Policy
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 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
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 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
Lecture | Date | Topic | Material |
---|---|---|---|
21 | Tue Mar 29 | Your Graph is a Sparse Matrix | |
22 | Thu Mar 31 | Finding Least-Squares |
|
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:00-3:00pm | OH (4324 Siebel) | Michael Heath |
Tue | 11:00-12:00am | OH (2103 Siebel) | Eric Shaffer |
Wed | 9:30-11:30am | OH (0209 Siebel) | Erin Carrier |
Wed Thur |
3:00-4:00pm 3:00-4:00pm |
OH (0209 Siebel) | David Raju |
Wed | 4:00-6:00pm | Discussion (1131 Siebel) | Ryne Beeson |
Thur | 9:30-11:30am | OH (0209 Siebel) | Nathan Bowman |
Thur | 5:00-7:00pm | Discussion (1131 Siebel) | Karthik Ramaswamy |
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 the 12:30pm 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 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 half-credit (ie, your work will be graded and multiplied by 0.5). You can submit homework for half-credit 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 half-credit. 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 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. 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
- 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 course staff will only provide support for using the supplied virtual machine image.