Sta 790-02
Spring 2019
  Advanced Statistical Computing


Date Topic Readings Notes
0 Thu, Jan 10 Introduction
1 Tue, Jan 15 Linux Systems
2 Tue, Jan 22 Docker
Thu, Jan 24 Rocker & Dockerfiles
3 Tue, Jan 29 Singularity
Thu, Jan 31 Putting it together example_pm25 repo
4 Tue, Feb 5 Cluster & Slurm Basics
Thu, Feb 7 Slurm batch jobs
5 Tue, Feb 12 Slurm Odds and Ends + Parallelization
Thu, Feb 14 (More) Parallelization
6 Tue, Feb 19 Profiling
Thu, Feb 21 Profiling with perf
7 Tue, Feb 26 Rcpp + C++ Basics
Thu, Feb 28 std::vector and Rcpp Vectors
8 Tue, Mar 5 STL Containers
Thu, Mar 7 Class canceled
9 Tue, Mar 12 No class - Spring recess
Thu, Mar 14 No class - Spring recess
10 Tue, Mar 19 Armadillo arma example repo
Thu, Mar 21 Armadillo - Sparse Matrices
11 Tue, Mar 26 Thrust
Thu, Mar 28 Makevars + CURAND examplePkgCuda
12 Tue, Apr 2 More Makevars
Thu, Apr 4 cuBLAS and cuSOLVER
13 Tue, Apr 9 RAII + Zerotier
Thu, Apr 11 Google Cloud DataProc, HDFS, Sparklyr
14 Tue, Apr 16 More Spark


Lectures & Lab:

The goal of both the lectures and the labs is for them to be as interactive as possible. My role as instructor is to introduce you new tools and techniques, but it is up to you to take them and make use of them. Programming is a skill that is best learned by doing, so as much as possible you will be working on a variety of tasks and activities throughout each lecture / lab. Attendance will not be taken during class but you are expected to attend all lecture and lab sessions and meaningfully contribute to in-class exercises and homework assignments.


Perkins 060 (Link Classroom 1)

  • Lecture - Tuedays 11:45 AM - 01:00 PM
  • Lab - Thursdays 11:45 AM - 01:00 PM


During the course of the lectures and labs you will be given larger computing / programming tasks which you are expected to work on outside of class. Successful completetion of all of these assignments is not necessary to receive credit for this course but at least attempting them is.

Course Announcements:

I will regularly send course announcements by email, make sure to check your email daily. Email is the easiest way to reach me outside of class, note that it is much more efficient to answer most questions in person.

Academic integrity:

Duke University is a community dedicated to scholarship, leadership, and service and to the principles of honesty, fairness, respect, and accountability. Citizens of this community commit to reflect upon and uphold these principles in all academic and non-academic endeavors, and to protect and promote a culture of integrity. Cheating on exams or plagiarism on homework assignments, lying about an illness or absence and other forms of academic dishonesty are a breach of trust with classmates and faculty, violate the Duke Community Standard, and will not be tolerated. Such incidences will result in a 0 grade for all parties involved. Additionally, there may be penalties to your final class grade along with being reported to the Undergraduate Conduct Board.

Please review the Academic Dishonesty policies here.

A note on sharing / reusing code - I am well aware that a huge volume of code is available on the web to solve any number of problems. Unless I explicitly tell you not to use something the course's policy is that you may make use of any online resources (e.g. StackOverflow) but you must explicitly cite where you obtained any code you directly use (or use as inspiration). Any recycled code that is discovered and is not explicitly cited will be treated as plagiarism. The one exception to this rule is that you may not directly share code with another team in this class, you are welcome to discuss the problems together and ask for advice, but you may not send or make use of code from another team.

Excused Absences:

Students who miss a class due to a scheduled varsity trip, religious holiday or short-term illness should fill out an online NOVAP, RHoliday or short-term illness form respectively. Note that these excused absences do not excuse you from assigned homework, it is your responsibility to make alternative arrangements to turn in any assignments in a timely fashion.

Those with a personal emergency or bereavement should speak with your director of graduate studies or your academic dean.

Late work policy:

  • late, but same day: -10%
  • late, next day: -20%
  • 2 days or later: no credit


The course is graded based on a credit / no-credit basis. In order to receive credit you are expected to attend as many of the lectures and labs as possible and to be an active participant during these classes.

Contact Information

Office Hours:

About this website

This site is built with Hugo and Blogdown. The theme is based on Blackburn and Hugo Conference.

© 2018. All rights reserved.