STATS 607A: Programming and Numerical Methods in
Statistics
Fall 2017
Class Information
- Days & Time: Mondays & Wednesdays, 2:30 pm -- 4:00 pm
- Location: 1200 CHEM
- 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.
- Canvas: You should access the Canvas 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 20, 2017.
Instructor Information
Name: Ambuj Tewari
Office: 454 West Hall
Office Hours: Mondays and Wednesdays, 1:00 pm -- 2:00 pm and Wednesdays, 4:00 pm -- 5:00 pm
Email: tewaria@umich.edu
GSI Information
Name: Roger Fan
Office Hours and Location: Tuesdays 10:30 am -- 11:30 am and 2:45 pm -- 4:45 pm, both in SLC (1720 CHEM)
Email: rogerfan@umich.edu
Grading
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):
- Assignment 2 (Numpy, Scipy):
- Assignment 3 (Matplotlib, Pandas):
- Final Exam (Covers material from the entire course):
Python Notebooks
The notebooks containing lecture material are all in a github repository:
https://github.com/ambujtewari/stats607a-fall2017
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.jupyter.org/.
Python Distribution
Make sure you have Anaconda 4.4 (Python 2.7 version) installed on your personal computer or wherever you plan to work. Anaconda supports all major operating systems, installs locally, and does not require administrator privileges. The latest version of Anaconda comes with Python 2.7 and all packages required for this class.
Schedule
Week 0 (Sep 6)
Week 1 (Sep 11, 13)
Week 2 (Sep 18, 20)
- Lecture 04: Numpy Basics
- Reading Assignment: Read Numpy basics (only first 5 sections, i.e., Data types through Broadcasting)
Week 3 (Sep 25, 27):
Week 4 (Oct 2, 4):
Week 5 (Oct 9, 11):
Week 6 (Oct 18): [Oct 16 is during Fall Study Break]