Statistics 327-3: Advanced Data Analysis with R

Check for updates to this tentative syllabus.

Students will integrate R with high performance computing tools to do scientific computing at an introductory level. Here is a course map.

NameOffice HoursPhoneEmail (please use our Q&A forum for most things)
Gillett, JohnMedical Sciences Center 1223   262-6197
Li, QingMedical Sciences Center 1217A
Shi, IreneMedical Sciences Center B248
Johnston, LiamMedical Sciences Center 1582

Class Times
Lecture 327-003 (Gillett, John and TA Shi, Irene)TuTh 9:30-10:45Sterling 3425
Lecture 327-006 (Qing, Li and TA Johnston, Liam)TuTh 1:00-2:15Sterling 3425

STAT 327: Intermediate Data Analysis with R

No textbook is required. We'll provide course notes, and we'll read R documentation and write R code.

Optional Online Reading
R for Data Science by Garrett Grolemund and Hadley Wickham
Advanced R by Hadley Wickham
An Introduction to R (pdf) by W. N. Venables, D. M. Smith and the R Development Core Team
Intro to R video lectures by Google Developers
R Programming wikibook
Using R for Data Analysis and Graphics by J. H. Maindonald
The R Inferno by Patrick Burns

Optional Reference Books
R for Data Science by Garrett Grolemund and Hadley Wickham
Advanced R by Hadley Wickham
Introductory Statistics with R by Peter Dalgaard (2008)
R in a Nutshell by Joseph Adler (2009)
A Beginner's Guide to R by Alain F. Zuur, Elena N. Ieno, and Erik Meesters (2009)
Software for Data Analysis: Programming with R by John Chambers (2008) (advanced)
Modern Applied Statistics with S by W.N. Venables and B.D. Ripley (2002)

A laptop is required in class.

Many questions outside of class should be posted at our Q&A forum. Please feel free to write answers when you know them. We are eager to help in class and office hours too.

These points are available (we might revise this as we write course materials):
≈ 3 R scripts or projects≈ 80
group practice exercises≈ 20

We'll assign grades according to the percentage scale, A = [92,100], AB = [88,92), B = [82,88), BC = [78,82), C = [70,78), D = [60,70), F = [0,60) (92% of points => A); and according to the percentile scale, A = 70, AB = 60, B = 45, BC = 30, C = 10, D = 5, F = 0 (performing better than 70% of the class => A). Your grade will be the higher of these two grades.

If you anticipate religious or other conflicts with course requirements, or if you require accomodation due to disability, you must notify us during the first two weeks of class. You may not make up missed quizzes, homework, or exams, except in the rare case of a documented, serious problem beyond your control.

We encourage you to discuss the course, including the online quizzes, with others, but you must write the R scripts and the exam by yourself and prevent others from copying your work. (See the UW Academic Misconduct policy.)

Note that the registrar's deadlines for five-week courses are special: for our session, "LEE," the add deadline is 4/5/2017 and the drop deadline is 4/21/2017.

Tentative Schedule
Day #: Date Subject Homework Due (11:59 p.m.)
01: Tu 4/4/17 (Install R and RStudio)
(Auditors: email sign up)
Optimization (goldenSectionSearch.R)
Group practice on optimization (optimization.Rmd, p. 1: optimize())
preview hw1, below
02: Th 4/6 Optimization, continued (gradientDescent.R, Newton.R, NelderMead.R)
Discuss hw1
Group practice, p. 2: optim()
03: Tu 4/11 Finish Group practice (submit one per group)
Generic function programming
Creating an R package (jgUtilities, jgUtilities_0.1.tar.gz)
04: Th 4/13 Creating an R package, continued hw1.Rmd (submit) (login help)
05: Tu 4/18 Discuss hw2
Debugging (numbersBug.txt, baby.dbinom.R)
06: Th 4/20 Profiling, timing, and code efficiency
(5profile.R, nflProfile1.R, nflProfile2.R, loopTiming.R)
07: Tu 4/25 Discuss hw3
Multicore computing for embarrassingly parallel problems
(nfl.R, mandelbrot.R, escape.time.R)
08: Th 4/27 Group practice review (submit later) hw2.tar.gz (submit)
09: Tu 5/2 Calling C++ from R via Rcpp (escapeTime.cpp, mandelbrotRcpp.R)
Group practice (submit next time)
10: Th 5/4 Group practice, continued (submit one per group) hw3.Rmd (submit)