Sta 523L
(Fall 2026)
  Statistical Programming

Schedule

Week Date Topic Lecture R Readings Python Readings
1 Mon, Aug 24 Fundamentals Welcome & System Basics
Wed, Aug 26 Types
2 Mon, Aug 31 Control Flow
Wed, Sep 2 Subsetting & Vectorization
3 Mon, Sep 7 No class - Labor Day
Wed, Sep 9 Data Structures
4 Mon, Sep 14 Tidy Data Data Frames
Wed, Sep 16 Data Frames (2)
5 Mon, Sep 21 Functional Programming
Wed, Sep 23 Visualization
6 Mon, Sep 28 Web Scraping Text data
Wed, Sep 30 Scraping
7 Mon, Oct 5 http
Wed, Oct 7 APIs
8 Mon, Oct 12 No class - Fall Break
Wed, Oct 14 Midterm 1 - In class
9 Mon, Oct 19 Databases SQL
Wed, Oct 21 SQL (2)
10 Mon, Oct 26 DuckDB
Wed, Oct 28 DuckDB (2)
11 Mon, Nov 2 Shiny Shiny for R
Wed, Nov 4 Shiny for Python
12 Mon, Nov 9 Dynamic UIs
Wed, Nov 11 Modules
13 Mon, Nov 16 TBD
Wed, Nov 18 TBD
14 Mon, Nov 23 TBD
Wed, Nov 25 No class - Thanksgiving recess
Fri, Nov 27 No lab - Thanksgiving recess
16 Wed, Dec 9 Midterm 2 - In class
(9am - 12pm)

Syllabus

Instructors:

Dr. Colin Rundel - colin.rundel@duke.edu

Office hours:

  • Wednesdays 12:00 - 1:00 pm - 204 Old Chemistry

Office hours:

  • By appointment - 204 Old Chemistry / Zoom

Teaching Assistants:

  • Ruibo Song
  • William Mentz

Classroom:

Lecture

  • Old Chemistry 116 - Mondays & Wednesdays, 10:05 - 11:20 am

Lab

  • Old Chemistry 116 - Fridays, 10:05 - 11:20 am

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 to 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.

Computing Resources:

Students will have access to the department's Posit Workbench environment for all of their computing needs in this course. The servers are available from the Duke Network (DukeBlue or VPN if off campus) at https://rstudio.stat.duke.edu.

We will be using the Positron IDE environment for the course.

Homework and Midterms:

You will be assigned larger programming tasks throughout the semester (roughly every two weeks). These assignments will be completed either in a team or individually.

Students are expected to make use of the provided git repository on the course's GitHub page as their central collaborative platform. Commits to this repository will be used as a metric (one of several) of each team member's relative contribution for each homework.

There will be two midterms that you are expected to complete individually. Each midterm will ask you to complete a number of small programming tasks related to the material presented in the class. The exact structure and content of the midterms will be discussed in more detail before they are assigned. You must attempt both midterms in order to pass this class.

Each midterm will have two components: an individual take home component and an in class written component based on the take home. Failure to sit the in class component will result in an automatic zero on both components of that midterm. Exceptions will only be made in the case of a documented significant illness, bereavement, personal emergency, or required legal or court appearance. In these cases the in class exam may be replaced with a personal oral exam, which must be scheduled within one week of the original exam date.

Quizzes

There will be a number of short quizzes throughout the semester that will cover material from the lectures. These quizzes will be completed individually in lecture or lab using pen and paper and without using notes or other reference materials.

There will be 10-15 quizzes given randomly throughout the semester with an approximate cadence of 1 per week, however there may be some weeks with multiple quizzes. Quiz grades will be partially based on attendance (turning in the quiz) and partially based on correctness. Your 3-5 lowest quiz grades will be dropped when calculating your final course grade. This policy is meant to cover any quizzes you might miss for any excused or unexcused absences from lecture or lab.

Teams:

For all of the team based assignments in this class you will be randomly assigned to teams of 3 or 4 students - these teams will change after each assignment. You will work in these teams during your scheduled labs. For team based assignments, all team members are expected to contribute equally to the completion of each assignment and you will be asked to evaluate your team members after each assignment is due. Failure to adequately contribute to an assignment will result in a penalty to your mark relative to the team's overall mark.

Course Announcements:

We will regularly send course announcements via email and Canvas, make sure to check one or the other of these regularly.

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 the Graduate School's Standards of Conduct, and will not be tolerated.

As a graduate course, suspected violations are handled according to the Graduate School's Standards of Conduct and the Department of Statistical Science's academic integrity process for graduate students. The instructor will notify the student(s) involved and the relevant program director (DGS or MSS Director) in writing, and the matter will be reported to the Graduate School. Academic sanctions are determined by the instructor and will, at a minimum, result in a 0 grade on the assignment for all parties involved and may include a penalty to your final course grade. Disciplinary sanctions (e.g. probation, suspension, or dismissal) are determined by the Graduate School.

Please review the following:

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.

The same policy applies to the use of AI tools and LLMs (e.g. ChatGPT, Claude, Gemini, GitHub Copilot) - you are welcome to make use of these tools as the basis for your solutions but you must explicitly cite the tool when using it for significant code generation. Uncited AI generated code will be treated the same as any other uncited recycled code.

What happens if you violate the academic honesty policy?

Any violation of the academic honesty standards outlined in the Duke Community Standard, the Graduate School's Standards of Conduct, or the policies specific to this course:

  • will automatically result in a 0 for the relevant portion or the entirety of the assignment or assessment,
  • can result in further deductions to your overall course grade (e.g. dropping down to the next letter grade or to an F), and
  • can be reported to the Graduate School and the Office of Student Conduct & Community Standards for further action.

Excused Absences:

There is no dean's excuse process for graduate students. Per the Graduate School's Student Time-Off Policy, it is your responsibility to consult with your course instructors about how any absence will affect your academic progress. If you must miss a class, lab, or exam due to a significant illness, bereavement, personal emergency, religious observance, or required legal or court appearance, notify the instructor by email as soon as possible (in advance whenever possible) and be prepared to provide documentation.

Note that an excused absence does not excuse you from assigned homework, it is your responsibility to make alternative arrangements to turn in any assignments in a timely fashion. Those dealing with an extended illness, personal emergency, or bereavement should also speak with the Director of Graduate Studies for their program.

Late work policy:

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

Assessment:

Your final grade will be composed of the following.

Assignment Value
Homework 35%
Midterms 50%
Quizzes 15%

The exact ranges for letter grades will be curved and cutoffs will be determined at the end of the semester. The more evidence there is that the class has mastered the material, the more generous the curve will be.

Textbooks

There are no required textbooks for this course, the following textbooks are recommended for supplementary and reference purposes.

About this website

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

© 2026. All rights reserved.