
Advanced Statistical Computing
Spring 2026
This quarter, the undergraduate Advanced R course (STAT 431) is being coordinated with the graduate Advanced R course (STAT 541). The structure of each course is identical and the content will be very similar. However, the graduate course will occasionally require additional content.
STAT 431
Instructor: Dr. Kelly Bodwin – you can call me Dr. Bodwin or Dr. B or just Kelly! I use she / her pronouns. 😊
Email: kbodwin@calpoly.edu1
Office: Building 25, Office 106

Room: 180-272
Times:
- Section 01: Mondays & Wednesdays from 2:10pm - 4:00pm
- Section 02: Mondays & Wednesdays from 4:10pm - 6:00pm
| Day | Time |
|---|---|
| Tuesdays | 10:10pm – 11:00am |
| Wednesdays | 1:10pm – 2:00pm |
| Thursdays | 10:10am – 11:00am |
All student hours are held in-person in my office (25-106), with the exception of the following dates which will be held on Zoom by appointment:
- Weds & Thurs, April 8th-9th
- Tues-Thurs, May 26-28th
Zoom appointments may be booked at this TidyCal link.
Personal Meetings
If you would like to talk with me about personal matters (e.g., grades), please don’t hesitate to send me an email, and we can find a way to meet one-on-one.
STAT 541
Instructor: Dr. Allison Theobold – you can call me Dr. Theobold or Dr. T! I use they / them pronouns. 😊
Email: atheobol@calpoly.edu2
Office: Building 25, Office 105

Room: 38-122
Times: Mondays & Wednesdays from 2:10pm - 4:00pm
This quarter I will be holding student hours on Mondays, Wednesdays, and Thursdays at the same time—so it is easy to remember!
| Day | Time |
|---|---|
| Mondays | 12:10pm – 1:00pm (in-person) |
| Wednesdays | 12:10pm – 1:00pm (in-person) |
| Thursdays | 12:10pm – 1:00pm (in-person) |
I will typically hold student hours in my office (25-105), but may choose to move to the outside vestibule between wings of the building (where all the whiteboards are) or the Statistics department conference room. If we’re meeting somewhere other than my office, I will leave a sign on the door indicating where we’re meeting!
Personal Meetings
If you would like to talk with me about personal matters (e.g., grades), please don’t hesitate to send me an email, and we can find a way to meet one-on-one.
Course Resources
This course has no specific textbook; we will make use of many online books and resources. Some suggested resources are below.
Unit 1:
- Review of Content from STAT 331
- Version Control:
- Refresher on Quarto Documents
- Quarto Tutorial on Making Documents – To get familiar with Quarto documents (what we will typically use)
- Quarto Documentation – Extensive documentation on each type of Quarto document
- Iteration with
purrr - JSON Data
Unit 2:
- Creating Quarto Dashboards
- Integrating WebR into Quarto
Unit 3:
- Good function writing
- Creating R Packages
- Testing Code
You will need either
- Access to a laptop that can run R 4.0+, or
- An account at posit.cloud. You may need to subscribe at the non-free level ($5 / month) for sufficient computing power for this class.
Canvas will be your resource for the course materials necessary for each week. Each module will walk you through what you are expected to do each week, including:
- pre-reading (“Coursework”) to go over before class
- check-ins (short quiz questions) that are done before class and rechecked during class
- practice activities, worked on during first class day in a week
- project checkpoints, worked on during second class day in a week
- projects, due at the end of each unit
- unit exam, done at the end of each unit
Make sure you are receiving email notifications for, at least, announcements and emails. In Canvas, click on your name, then Notifications. Check that Canvas is using an email address that you regularly check; you have the option of registering a mobile number. Check the boxes to get notifications for announcements, and optionally other Canvas activity.
This quarter, we will make use of a class wide Discord Server. The link on Canvas will help you join this server. Refer to the Using Discord guide on Canvas for more information on how to effectively use this server.
Joining the Discord is not optional. Important information and discussion will happen here, and sometimes I will share hints and code snippets for activities or assignments.
Discord is also the best way to possibly get your questions answered outside of ordinary class and office hours.
Course Objectives
After taking this course, you will be able to:
- Work effectively with complex data
- Build functions and automate workflows
- Debug, optimize, and improve code performance
- Create reproducible analyses and reports
- Structure and manage larger R projects
- Communicate results with clear visualizations
- Deliver complete, end-to-end data analyses
Prerequisites
We expect you to enter this class with:
- Comfort in Stat 331 level R skills.
- Statistical knowledge at the Year 2 level; i.e., comfort with the concepts and basic math of multiple linear regression.
- Familiarity with computers and technology (e.g., Internet browsing, word processing, opening/saving files, converting files to PDF format, sending and receiving e-mail, etc.).
- A positive attitude, a curious mind, and a respect for ethical use of data science tools.
Assessment
Check-ins (due Mondays by 9am)
These small “quizzes” or activities are posted each week, to give you a way to check your milestones on the main topics of the week. Check-ins are designed so that they can be done on your own, using the Coursework guides, in advance of class.
At the beginning of the first class day in the week, we will have an on-paper mini-quiz, consisting of 3 selected check-in questions. These questions will be exactly the same as the ones in the check-ins, so if you have done the pre-reading and check-ins, it should be easy points. To allow for illnesses or other unforseen absences, your one lowest score will be dropped.
Canvas check-in quizzes are worth 5% of your grade.
In-Class check-in quizzes are worth 5% of your grade.
Practice Actitivies (due Wednesdays by 9am)
Practice activities are meant to be done in class during or after lecture, during the first class session of the week. If you do not finish in class, you should complete these at home before the next class day.
Practice Activities are worth 15% of your grade.
Project Checkpoints (due Saturdays by midnight)
Each week, you will complete a section of your unit project. You will have some class time in the second class day of the week to work on them, but you will almost certainly need to also work on them at home. These checkpoints will be graded on quality, not just completeness.
Project checkpoints are completed in teams; however, each individual must have their own repository that is kept up to date for each checkpoint. All individual repositories will be turned in to the group assignment each week, and one will be chosen at random for grading.
Project Checkpoints are worth 15% of your grade
Projects (due at the end of each unit)
Your project checkpoints will culminate in a complete and polished deliverable at the end of each unit. These projects have minimum requirements, but for an A-level grade, they must show depth and creativity in addition to meeting the baseline elements.
Project Due Dates for Spring 2026:
- Saturday, May 2
- Saturday, May 23
- Saturday, June 6
Only one final deliverable needs to be submitted for each team.
Projects are worth 10% of your grade each, for a total of 30% of your grade.
Unit Exams
At the end of each unit, you will also have a 1-hour on-paper exam in class. This exam will cover conceptual material from the required readings. It will be similar in nature to the check-ins and exercises from the readings, but unlike the check-in quizzes in class, it will not be identical to questions you have already seen.
Unit Exam Dates for Spring 2026:
- Wednesday, April 29th
- Wednesday, May 20th
- TBD - Registrar-set times in finals week
Unit exams are worth 10% of your grade each, for a total of 30% of your grade.
Summary of Grade Calculations
Classroom community and policies
Weekly expectations
The module for each week will be released no later than 5pm on Friday, so you can look over the content and see what the plan is for the week.
Getting help
This quarter, I am instating a policy that I do not respond to emails with questions of general interest, such as deadline clarifications or conceptual questions. If you have one of these questions, please ask your question on our course Discord server.
Discord: We will use Discord to manage questions and responses regarding course content. There are channels for the different components of each week (e.g., Week 1 Lab Assignment). Please do not send an email about homework questions or questions about the course material. It is incredibly helpful for others in the course to see the questions you have and the responses to those questions. I will try to answer any questions posted to Discord within 3-4 hours (unless it is posted at midnight). If you think you can answer another student’s question, please respond!
Responding to Private Messages
If you use private email or messaging to ask a question that should be public, I may simply answer it in Discord instead. Please don’t take this personally! It just means that you asked a good question, and I think the rest of the class could benefit from seeing the answer.
Of course, if your question is truly private, such as a grade inquiry or a personal concern, you may send me a private email. To help both you and me, here are some specific expectations about emails:
- Please tell me what course and section (by time or number) you are in!
- If you email me between 9am and 4pm on Monday through Friday, I’ll try my best to reply to you on the same day.
- If you email me outside of those hours, I will do my best to respond to you by the next working day. For my own mental health, I do not respond to email on the weekend. Thus, if you send an email after 4pm on Friday or during the weekend, you will not receive a response until Monday morning.
- If your question is much easier to discuss face-to-face, I may ask you to meet with me in my office or on Discord (at a time that works for both of us) rather than answering directly in an email.
- Include any relevant photos / screenshots / error messages / PDFs / links with your email.
Well-being, Access, and Accommodations
What if I have accommodations or feel that accommodations would be beneficial to my learning?
I enthusiastically support the mission of Disability Resource Center to make education accessible to all. I design all my courses with accessibility at the forefront of my thinking, but if you have any suggestions for ways I can make things more accessible, please let me know. Come talk to me if you need accommodation for your disabilities. I honor self-diagnosis: let’s talk to each other about how we can make the course as accessible as possible. See also the standard syllabus statements, which include more information about formal processes.
I’m having difficulty paying for food and rent, what can I do?
If you have difficulty affording groceries or accessing sufficient food to eat every day, or if you lack a safe and stable place to live, and you believe this may affect your performance in the course, I urge you to contact the Dean of Students for support. Furthermore, please notify me if you are comfortable in doing so. This will enable me to advocate for you and to connect you with other campus resources.
My mental health is impairing my ability to engage in my classes, what should I do?
National surveys of college students have consistently found that stress, sleep problems, anxiety, depression, interpersonal concerns, death of a significant other and alcohol use are among the top ten health impediments to academic performance. If you are experiencing any mental health issues, I and Cal Poly are here to help you. Cal Poly’s Counseling Services (805-756-2511) is a free and confidential resource for assistance, support and advocacy.
Someone is threatening me, what can I do?
I will listen and believe you if someone is threatening you. I will help you get the help you need. I commit to changing campus culture that responds poorly to dating violence and stalking.
What if I can’t arrange for childcare?
If you are responsible for childcare on short notice, you are welcome to bring children to class with you. If you are a lactating parent, you many take breaks to feed your infant or express milk as needed. If I can support yo in navigating parenting, coursework, and other obligations in any way, please let me know.
Attendance, Extensions, and Technology
What if I need to miss class?
I encourage you to attend every class session, but policies are for narcs. I put a great deal of time into making each class session engaging and worth your time. Attendance in this course is not explicitly required, but it degrades your classmates’ trust in you when they don’t see you in class.
Please do not email me letting me know when you are missing class - you will not lose points for this, but it is your responsibility to catch up on the materials and complete the in-class activities. Here’s what you should do if you do miss a class:
- Talk to a classmate to figure out what information you missed
- Check Canvas for any necessary handouts or changes to assignments
- Stop by student hours with any questions you have after reviewing notes and handouts
If you miss a bunch of classes, please come talk to me. I’m working from the assumption that you care and are trying, but something is getting in your way (health issues? depression / anxiety? college stress?); let’s figure out what that is and how I can help.
What if I need to turn something in late?
Assignments are expected to be submitted on time. However, every student will be permitted to submit up to three individual assignments up to 2-days late, by completing a deadline extension form. Similar to the “real world,” deadline extensions must be requested before an assignment is due.
When you complete the deadline extension form you will be required to state (1) what assignment you need an extension for, and (2) your proposed new deadline. Your new deadline must be within 2-days of the original deadline.
All deadline extensions must be done through the form, so I can keep track of who has used their allotment of extensions. If you are registered with DRC to have deadline extensions, you are required to complete a deadline extension request and make a note if your extension is related to a need related to DRC accommodations.
Any late work is required to have a deadline extension request, meaning if you do not complete a deadline extension request for an assignment you are not permitted to turn it in late. The link to the deadline extension form can be found in Canvas in the Course Information module (at the top of the page).
Deadline extensions are not permitted for group assignments (e.g., project check-ins, final deliverables)!
Do I need to bring a computer to class?
You are allowed to use technology in the classroom! In fact, we will often do so as part of in-class activities. Our class is held in a room with monitors, but no computers. So, bringing a laptop is critical!
Expectations, Respect, and Integrity
How can I expect to be treated in this course?
Following Ihab Hassan, I strive to teach statistics so that people will stop killing each other. In my classroom, diversity and individual differences are a sources of strength. One of the greatest failures of Statistics, historically and in the present, has been the exclusion of voices from the field. Everyone here can learn from each other, and doing so is vital to the structure of the course. Significant portions of this course involve group work and discussion in class. Some discussions will touch on sensitive topics. So that everyone feels comfortable participating in these activities, we must listen to each other and treat each other with respect. Any attitude or belief that espouses the superiority of one group of people over another is not welcome in my classroom. Such beliefs are directly destructive to the sense of community that we strive to create, and will sabotage our ability to learn from each other (and thus sabotage the entire structure of the course).
In this classroom, I expect you to be polite, respectful, inclusive, and open-minded.
Some examples of how to be a good classmate include:
- Doing your best to avoid language that is ableist, racist, sexist, or classist; or that perpetuates harmful stereotypes.
- Addressing your classmates by their preferred name and pronouns.
- Doing your best to be aware of your own biases, privileges, and areas of ignorance.
- Listening to others’ opinions, and making an effort to understand their perspective.
- Taking the time to help your classmates grasp concepts or solve problems, even when you are ready to move on.
In summary: Be good to each other.
What constitutes plagiarism in a statistics class?
You are encouraged to work with other classmates on all but the exam portions of this class. You are also encouraged (realistically, required!) to make use of online resources to accomplish tasks.
When dealing with code, follow these guidelines:
Never copy-paste more than small snippets of code. That is, you might borrow a little three-line function from StackOverflow, but you should not copy over a full analysis you find on Kaggle.
Attribute all code that is not completely your own. If you do borrow that StackOverflow snippet, provide a link to the source. If you reference a similar analysis for ideas, mention that in your description.
A good rule for deciding if the code you are borrowing is plagiarism is: If I sat you down by yourself in a room with no internet, could you explain to me roughly what each line of code is doing?
(In fact, this is exactly what I will do if I need to investigate possible cheating.)
Learning to Code with ChatGPT
New AI models like Chat GPT offer a whole new world of online coding resources. This is exciting! In this class, you are allowed to use these tools like you would any other online coding support tool. (Note that this is not a typical policy; most of your other classes likely do not allow AI tools to be used.)
If you do use an AI tool to help you write or debug code, it is important that you document and cite this process. That is, you should save the “conversation” with the chatbot, to show how you used your knowledge of R coding to construct queries that lead to useful results.
When you submit your portfolio, if you use AI-generated code in your examples, you will need to make an argument for how you are demonstrating mastery of the requisite skills, and the AI is only being used as support.
Integrity Violations
If you accidentally forget a small citation, or go a little overboard in how much you “borrow” from StackOverflow, you’ll get a warning. Any instance of willful and deliberate cheating will result in a failing grade in this class, full stop.
Be careful about being on the giving end as well as the taking end. For example: If you send your finished assignment to a friend, and that friend copies it, you have both just failed the course.
Footnotes
See Section 5.2 for information on what you can expect when you email me.↩︎
See Section 5.2 for information on what you can expect when you email me.↩︎