STATS 607A: Programming and Numerical Methods in

Fall 2015

- Days & Time: Mondays & Wednesdays, 4 pm -- 5:30 pm
- Location: B760 East Hall
- Description: This is the first part (Part A) of a two part course. Part A focuses on building good programming skills using the Python language and learning to use them for solving complex data analysis problems. Prior exposure to some programming is recommended. Prior exposure to probability and statistics (at an advanced undergraduate level) is required. We will begin by introducing basics of Python (functions, recursion, objects, exceptions, types, data structures). We will then learn about some Python packages useful for data analysis: numpy, scipy, matplotlib and pandas. Part B, offered in the following semester, will focus on numerical methods in linear algebra.
- Textbook: There’s no official textbook. I will list resources for each lecture below.
- Ctools: You should access the Ctools class page for this course frequently. It will contain important announcements and posted homework assignments.
- Course end date: This is a half-semester course and will end on October 21, 2015.

Name: Ambuj Tewari

Office: 454 West Hall

Office Hours: By appointment

Email: tewaria@umich.edu

Name: Yun-Jhong Wu

Office Hours and Location: Mondays 7:30-8:30pm and Wednesdays 7:30-8:30pm in SLC (1720 Chemistry)

Email: yjwu@umich.edu

The final grade in the course will be determined by your scores in 3 assignments (each has 25% weight) and a final exam (25% weight).

- Assignment 1 (Basic Python):

- Out: Sep 21, Due: Sep 30

- Assignment 2 (Numpy, Scipy):

- Out: Sep 30, Due: Oct 10

- Assignment 3 (Matplotlib, Pandas):

- Out: Oct 12, Due: Oct 22

- Final Exam (Covers material from the entire course):

- In class on Oct 21

The notebooks containing lecture material are all in a github repository:

https://github.com/ambujtewari/stats607a-fall2015/wiki

The notebooks themselves are just static documents (in JSON format) but clicking on the links will show you properly rendered notebooks thanks to the awesome rendering service at http://nbviewer.ipython.org/.

Make sure you have Anaconda 2.3.0 installed on your personal computer or on your account on the Bayes servers. Anaconda 2.3.0 comes with Python 2.7 and all packages required for this class.

Week 0 (Sep 9)

- Sep 9

- Lecture 00: Introduction
- Reading Assignment: Read An Informal Introduction to Python

Week 1 (Sep 14, 16)

- Sep 14

- Lecture 01: Control Flow and Function Arguments
- Reading Assignment: Read More Control Flow Tools

- Sep 16

- Lecture 02: Data Structures
- Reading Assignment: Read Data Structures

Week 2 (Sep 21, 23)

- Sep 21

- Lecture 03: Standard Library
- Suggested Reading: Read Modules (this topic not covered in lecture)
- Suggested Reading: Read Input and Output (this topic not covered in lecture)
- Suggested Reading: Read Errors and Exceptions (this topic not covered in lecture)
- Reading Assignment: Read Brief Tour of the Standard Library

- Sep 23

- Lecture 04: Numpy Basics
- Reading Assignment: Read Numpy basics (only first 5 sections, i.e., Data types through Broadcasting)

Week 3 (Sep 28, 30):

- Sep 28

- Lecture 05: More Numpy
- Suggested Reading: Familiarize yourself with Statistics Routines for Numpy Arrays
- Suggested Reading: Familiarize yourself with Random Sampling Routines for Numpy Arrays

- Sep 30

- Lecture 06: Numpy Wrap-up
- Suggested Reading: Familiarize yourself with Input/Output Routines for Numpy Arrays
- Suggested Reading: Familiarize yourself with Linear Algebra Routines for Numpy Arrays

Week 4 (Oct 5, 7):

- Oct 5

- Lecture 07: Scipy
- Suggested Reading: Familiarize yourself with Optimization and Root Finding
- Suggested Reading: Familiarize yourself with Special Functions
- Suggested Reading: Familiarize yourself with Statistical Functions

- Oct 7

- Lecture 08: Matplotlib
- Suggested Reading: Familiarize yourself with the Matplotlib User’s Guide and read the Pyplot Tutorial

Week 5 (Oct 12, 14):

- Oct 12

- Lecture 09: Pandas Basics
- Suggested Reading: Read Intro to Data Structures

- Oct 14

- Lecture 10: Data Importing and Exporting in Pandas
- Suggested Reading: Read IO Tools

Week 6 (Oct 21): [Oct 19 is during Fall Study Break]

- Oct 21

- Final Exam