STAT 385 Summer 2025 Unofficial Syllabus
Written on March 15th, 2025 by Christopher Kinson
STAT 385 Statistical Data Management
3 Credit Hours - Major Elective
Section ONL
Summer 2025 - Syllabus
Table of Contents
Course Description
Statistics Programming Methods (STAT 385) is a programming course designed to establish the foundations of statistical computing. Potential topics include the following: command line operations, version control, objects, control structures, user-defined functions, mathematics (arithmetic, algebra, calculus), statistics (data and randomization), arrays, linear algebra and matrix manipulation, algorithms, string manipulation, regular expression, and debugging code.
The code we write in this course must be reproducible - verifiable by any computer running the same exact code and receiving the same exact result as the original source. It is important that code does not contain executable errors and warnings. Critical and creative thinking and efficient coding will be encouraged. Additionally, students will learn basic knowledge of computers, such as locating a file, creating a directory, saving a file, compressing a file, extracting a compressed file, keyboard shortcuts, and fundamental troubleshooting. This course aims to present these programming methods concepts and skills via R and version control via Git and GitHub. R with RMarkdown offers reproducible documentation with Markdown syntax, which will support long-term learning opportunities, while Git propels students’ capacity for collaboration. Using Git in this course encourages students collaborating alone as individuals (pulling and pushing their own work) and with classmates (pulling and pushing everyone’s joint work). This means that students must have a computer that they can access on any given day.
This course is an asynchronous online course without a traditional daily lecture format. The instructor will provide readings, coding files, and potentially notes and videos. Some videos may be shared as supplemental to the readings. Readings are the primary source of learning material and will contain examples and code. Readings should be read and understood before attempting any assignments. Code within the readings should be attempted prior to beginning assignments. There will be three types of weekly assignments, and a final project will be due near the end of the semester. The expectation is that students will gain strong fundamental mastery of coding, troubleshooting, and building programs in R. Concepts covered in this course will build upon each other. Thus, students can expect all assessments and assignments to be cumulative. Assignments will be graded with an autograder. The coding comprehension assignments and final project will be graded by course staff.
Learning Objectives
These learning objectives are important because they connect the physical know-how with the technical knowledge of the course.
-
Students must construct reproducible code in digital notebook files and script files.
-
Students must recall important coding concepts and workflows.
-
Students will present programming in a reproducible document file using Markdown syntax and code chunks. No local data files will be utilized.
-
Students must demonstrate critical thinking and creativity through asking questions.
-
Students must be able to explain and summarize R code.
-
Students will share and discuss programming ideas, code chunks, and other thoughts to aid in meaningful dialogue.
-
Students will reflect on their own learning of programming principles.
-
Students will build programs, tools, and games and store all work using git, a version control software, and GitHub.
Course Staff
- Instructor - Christopher Kinson (kinson2\@illinois.edu{.email})
- Teaching assistant - Chenyang Lu (lu103\@illinois.edu{.email})
Course Specifics
Course Website
The course website is https://github.com/illinois-stat385. This course is operating as an organization named illinois-stat385 within GitHub. Students should bookmark or save the link below in their browser for future use, because it contains access points to all repositories and course materials including readings, assignment solutions, notes, and videos.
Prerequisites
The prerequisites for this course are the following:
-
A computer or laptop (not a netbook) with most up-to-date versions of R and RStudio installed. If using a netbook or Chromebook, please setup a Posit Cloud (formerly RStudio Cloud) account.
-
STAT 107 or STAT 200 or STAT 212
Meeting Schedule and Expectations
-
Because this course is online, there is no regular meeting schedule.
-
There will be readings (in readings directory of course_content repo). There may be notes (in notes directory of the course_content repo) and videos from external sources posted on the Course Website (in videos directory of the course_content repository). Any videos posted can be considered supplemental learning opportunities.
-
All students are expected to do the following before coming to class each week: read the readings, annotate the readings to improve their understanding, view supplemental videos and notes, and complete assignments.
-
Course content - syllabus, readings, assignments, assignment solutions, notes, videos, discussion board (as Discussions tab) - will be found on the Course Website via the course_content repository. Do check the course_content repo often for updates and announcements. Students are encouraged to clone the course_content repository once, then pull the course_content repo daily afterwards if accessing it remotely via git.
Office Hours
Any and all times listed in this document are in current US Central Time. Take care to adjust clocks when daylight savings time occurs.
Office hours will be online in Zoom. If a student has a specific question, but cannot attend the office hours, then that student should post their question in the Discussions board. If a student wants one-on-one assistance from the course staff (kinson2\@illinois.edu{.email}) at an alternative time, then that student should email the course staff in order to schedule a Zoom meeting.
-
Instructor online office hours:
- Thursdays 06:30 pm - 07:30 pm in Zoom using the link https://illinois.zoom.us/j/83652382670?pwd=6PXtgeapefQ2zFiX6pdtKuQvMHbsM0.1
-
Teaching assistant online office hours:
- Thursdays 06:30 pm - 07:30 pm in Zoom using the link https://illinois.zoom.us/j/83652382670?pwd=6PXtgeapefQ2zFiX6pdtKuQvMHbsM0.1
Textbooks
There is no required textbook, but readings are required and will come from more than one book. Links will be provided to all readings. Below one may find textbooks that are useful in learning R by oneself.
R
- R Ice Breaker. Sanchez. https://www.gastonsanchez.com/R-ice-breaker/
- R Coding Basics. Sanchez. https://www.gastonsanchez.com/R-coding-basics/
- An Introduction to R. Venables, Smith and the R Core Team. https://cran.r-project.org/doc/manuals/r-release/R-intro.pdf
- Deep R Programming. Gagolewski. https://deepr.gagolewski.com/
- R for Data Science. Wickham and Grolemund. https://r4ds.had.co.nz/
- Hands-On Programming with R. Grolemund. https://rstudio-education.github.io/hopr/
- R Inferno. Burns. https://www.burns-stat.com/pages/Tutor/R_inferno.pdf
Software
The course assumes students are new to R and the version control system, Git.
- R with RStudio
- Git and GitHub
- Step 1. Download and Install Git
- Step 2. Create a GitHub account if you don’t have one already and Sign into GitHub
- Step 3. Click here to enroll in STAT 385 course organization and follow the steps to be setup properly in the learning management system
- Additional steps to setup your student repo can be completed based on instructions here.
- Make sure your Git is updated to the latest version.
- Zoom video teleconferencing software with functioning Webcam and Microphone https://illinois.zoom.us/
Calendar
Below is a calendar of topics and tentative assignment deadlines. Readings are written in bold and required. Ideally, the readings are read in the order that they are listed below.
Grading Breakdown
7 Reading Comprehension Assignments: 56 points total (8 points each)
- reading-comprehension01 - reading-comprehension07 are weekly comprehensive assignments based on the readings, which will be graded for correctness on conceptual questions and due on Tuesdays by 11:59 pm.
7 Coding Comprehension Assignments: 56 points total (8 points each)
- coding-comprehension01 - coding-comprehension07 are weekly comprehensive assignments based on the readings, notes, and videos, which will be graded for correctness on conceptual and coding questions and due on Thursdays by 11:59 pm.
7 Homework Assignments: 70 points total (10 points each)
- homework01 - homework07 are weekly assignments based on the readings, notes, and videos, which will be graded for correctness on conceptual and coding questions and due on Sundays by 11:59 pm.
1 Final Project: 18 points total
- The final project is an .R script file that showcases students’ ability to create a game program that can be played by a single person (graded by the course staff). This project is due on the last day of class, August 6 by 11:59 pm. This allows for sufficient time to be graded and those grades returned.
Course Total Points: 200 points
Final Letter Grades
When computing final grades, students can add up their scores on the assignments. The resulting sum will determine which letter grade they earn when the course is completed. There is only one $+$ letter grade in this course. All other letter grades are without $+/-$. Points are not rounded.
Lower bound | Upper bound | Letter grade |
---|---|---|
200.000 points | 200.000 | A+ |
180.000 points | 199.999 points | A |
160.000 points | 179.999 points | B |
140.000 points | 159.999 points | C |
120.000 points | 139.999 points | D |
0.000 points | 119.999 points | F |
Instructional Activities
Students should read the readings, read and annotate any notes, watch any videos, and complete all assignments. If or when students get stuck, then they should ask questions in the i) Discussions Board, ii) Office Hours, or iii) via email (preference in this order). The following activities and tools will be useful for students.
Readings
The readings are the most important pathways to learning in this course. The readings typically have code within the text. It’s a great idea to attempt the code on your own and alter it in some ways to see how those changes affect the result. Yes, there is a lot of information in the readings, but it is useful to read them for the important parts and return to it for details after beginning the reading-comprehension assignments.
Supplemental Notes and Videos
At times, the Instructor may provide notes and links to videos to supplement student learning. These materials could be useful for learning and reinforcement of ideas. Any supplemental notes and videos will be posted on the course website in the course_content repository.
Discussions
This discussion board, which exists as a tab on the course_content repository, is one of the best ways to communicate with classmates and course staff. Questions can be seen quickly and receive a rapid response. Students are encouraged to use this board, but there is no requirement to participate in the discussion board.
Do use the board to openly discuss ideas about the course such as questions about content, deadlines, notes, data, etc. If a student specifically wants the course staff to respond, then student should use the mention @kinson2
when posting in the board. The things discussed here should be of a non-personal and non-private matter. If student has a personal or private matter to discuss with the Instructor, such as grades, please send an email to kinson2\@illinois.edu{.email}. Additionally, the conversation in the discussion board should be respectful of people’s differences and cannot be used to speak negatively about anyone or harm anyone.
Assignments
Reading Comprehension Assignments
These are guided comprehension assignments to be completed by each student as an individual to assess what students have read and understood from the readings. There are 7 reading comprehension assignments for the semester. The filename for these assignments is reading-comprehension followed by a two-digit number representing the week of the assignment. For example, reading-comprehension04 corresponds to week 04 and the readings of week 04 and is due on Tuesday of week 04.
Each reading-comprehension file must be submitted in the main branch of each student’s repo in the reading-comprehension directory. See calendar and course website for web links. These reading-comprehension assignments are graded for completion and correctness using the Instructor’s triggered autograder. See Autograder section below.
Coding Comprehension Assignments
These are guided comprehension assignments to be completed by each student as an individual to assess what students have read and understood from the readings, notes, and videos with an emphasis on coding and coding documentation. These are coding comprehension assignments to be completed by each student as an individual. There are 7 coding comprehension assignments for the semester. The filename for these assignments is coding-comprehension followed by a two-digit number representing the week of the assignment. For example, coding-comprehension04 corresponds to week 04 and the readings, notes, and videos of week 04 and is due on Thursday of week 04.
Each coding-comprehension file must be submitted in the main branch of each student’s repo in the coding-comprehension directory. See calendar and course website for web links. These coding-comprehension assignments are graded for completion and correctness via the course staff; not via the autograder.
Homework Assignments
These are assignments are intended to challenge students’ conceptual knowledge and coding and programming skills based on the readings, notes, and videos. These assignments will require coding documentation as well as answers to problems. There are 7 homework assignments for the semester. The filename for these assignments is homework followed by a two-digit number representing the week of the assignment. For example, homework04 corresponds to week 04 and the readings, notes, and videos of week 04 and is due on Sunday of week 04.
Each homework file must be submitted in the main branch of each student’s repo in the homework directory. See calendar and course website for web links. These homework assignments are graded for completion and correctness via the Instructor’s triggered autograder. See Autograder section below.
Final Project
The Final Project in this course is the creation of a single-player game program saved as a .R script file. The game program showcases students’ abilities, creativity, conceptual knowledge, and coding skills. The .R script file must be submitted in the student’s repo by 11:59 pm on the last day of class (August 6). Your ideas and coding must be your own.
Autograder
The code we write in this course must be reproducible - verifiable by any computer running the same exact code and receiving the same exact result as the original source. It is important that code does not contain executable errors and warnings. Submitting code with executable errors and warnings shows that a student is not following one of the course learning objectives. Submitting error-producing code also shows that there is no regard for what reproducibility means. There is an autograder used in this course to grade assignments. The autograder is not forgiving. It will scan the entire file and check for base R executable errors and warnings as well as grade the assignment for correctness and completion. Objects created at the top of the file which are overwritten at the bottom of the file will be considered incorrect by the autograder. When the autograder detects a base R executable error or warning, it will stop grading the student’s submission and assign a grade of 0 for the assignment.
To follow reproducible coding guidelines and prevent executable errors and warnings, be sure to do the following (in no particular order):
-
Always use URLs for accessing and importing data. Local file locations are not reproducible.
-
If timing permits, knit the file to html to see if any error occurs.
-
If timing permits, run your code in R (not in RStudio). Check the R console to see if any error occurs.
-
Save the file with the correct name. Your netid should replace anything saying ‘netid’.
-
Save the file in the correct location.
homeworkXX
assignments belong directly in the homework directory of your repo on the main branch. Allreading-comprehensionXX
assignments belong directly in the reading-comprehension directory of your repo on the main branch. Allcoding-comprehensionXX
belongs in the coding-comprehension directory of your repo on the main branch. Any sub-directories within these directories is inappropriate. -
Within a code chunk, explicitly write code that attaches or loads a package using either
library()
or environment callpackage_name::
if you use a package to produce your result. -
Change your RStudio Global Options’s General Tab such that:
- Restore most recently opened project at startup is not checked.\
- Restore previously open source documents at startup is not checked.\
- Restore .RData into workspace at startup is not checked.\
- Save workspace to .RData on exit is Never.\
- Always save history (even when not saving .RData) is not checked.
-
Change your RStudio Global Options’s Code Tab such that Under the Saving section:
- Always save R scripts before sourcing is not checked.\
- Automatically save when editor loses focus is not checked.\
- When editor is idle is Do nothing.
-
Within RStudio, restart your R session. This can be done in RStudio using the Session > Restart R. After clicking this, if your session still shows objects in the Environment, then click Session > Terminate R > Yes. Terminating the R session effectively does the same thing that restarting the R session should do: detach any packages and remove all objects in the global environment giving you a new session.
-
After beginning a new session, execute and run all your code to ensure there are no executable errors or warnings. Some warnings are specific to a package which may not cause R executable errors or warnings.
-
Comment out any erratic code using the hashtag symbol
#
. Doing so will prevent the autograder from executing it. This is useful if you don’t know how to correct your errors or warnings before the deadline. -
Comment out or remove any
install.packages()
in your code chunks.
Grade Disputes
A grade dispute is not a plea or request to change a grade simply because a student does not like the grade.
A grade dispute is when a grade has been incorrectly applied to an assignment and the student has evidence supporting the fact that the grade is incorrectly applied.
Please email the Instructor (kinson2\@illinois.edu{.email}) with your disputes within 7 days (i.e. 1 week) of your grade being returned.
Late or Improper Assignment Submissions Policy
An assignment is considered a late submission when it is submitted by a student in the proper location after the assignment deadline.
An assignment is considered an improper submission when it is submitted by a student outside of the appropriate directory in their repo or not in their repo at all.
It is possible for an assignment to be submitted properly but late. It is possible for an assignment to be submitted improperly but before the deadline. It is also possible that an assignment may be submitted both late and improperly.
Students have up to 3 days to properly submit an assignment that was originally considered late, improper, or both. On each late day, those affected students will receive a new grade assuming they have submitted the assigment properly.
For reading-comprehension assignments, the latest gradable assignment submission is on Fridays. For coding-comprehension assignments, the latest gradable assignment submission is on Sundays. For homework assignments, the latest gradable assignment submission is on Wednesdays. Any time after these days, the assignment submission is deemed missing and a grade of 0 will be earned for any such assignment.
University Specifics
Disability Accommodations
To obtain disability-related academic adjustments and/or auxiliary aids, students with disabilities must contact the course instructor and the Disability Resources and Educational Services (DRES) as soon as possible. To contact DRES, student may visit 1207 S. Oak St., Champaign, call 333-4603, e-mail disability\@illinois.edu{.email} or go to the DRES website at http://disability.illinois.edu/
Academic Integrity and Generative Artificial Intelligence Tools
It is expected that all students abide by the campus regulations on academic integrity http://studentcode.illinois.edu/article1_part4_1-401.html. Intentional violations of academic integrity can be found at http://studentcode.illinois.edu/article1_part4_1-402.html and include, but are not limited to, copying any part of another student’s assignment and allowing another student to copy any part of student’s own assignment.
Generative artificial intelligence tools are relatively new to the general public and can be useful in learning and studying. If students use generative AI tools in this course, do so outside of class as a means of studying and learning accurate information relevant to this course’s content. Students should not use generative artificial intelligence tools as a means to perform (on graded assignments and submissions) in this course. Doing so is an intentional violation of academic integrity.
Safety Protocol
We have been asked by Public Safety https://police.illinois.edu/emergency-preparedness/run-hide-fight/ to share the following information in case of weather or security emergencies. See the links:
Sexual Misconduct Policy and Reporting
The University of Illinois is committed to combating sexual misconduct. Faculty and staff members are required to report any instances of sexual misconduct to the University’s Title IX and Disability Office. In turn, an individual with the Title IX and Disability Office will provide information about rights and options, including accommodations, support services, the campus disciplinary process, and law enforcement options.
A list of the designated University employees who, as counselors, confidential advisors, and medical professionals, do not have this reporting responsibility and can maintain confidentiality, can be found at https://wecare.illinois.edu/resources/students/#confidential. Other information about resources and reporting is available at https://wecare.illinois.edu.
The Last Word
The Instructor reserves the right to make any changes considered to be academically advisable. Any changes will be announced in class and on the Course Website. It is the student’s responsibility to attend the class and keep track of the changes.