Data to Manuscript in R
Welcome to the first quarter of Data to Manuscript in R!
D2M-R is designed to equip you with the tools necessary to conduct reproducible data analysis using R. D2M-R I in Winter 2026 will cover foundational R programming skills, data wrangling using the tidyverse, and foundational data reporting techniques.
The course structure is unusual, so please review all course policies and assessment details from the syllabus below:
Winter 2026 Details
Class Meetings
- When: Tuesdays & Thursdays, 11am-12:20pm
- Where: 1155 E 60th St, Room 289A
Professor
- Dr. Natalie Dowling
- Email: ndowling@uchicago.edu
- GitHub: @nrdowling
- Office Location: 1155 Building, Room 181
- Office Hours: Thursday 2pm - 4pm
- Sign up via GCal or email me to request an alternative time
Teaching Assistant
- Qilong Bi
- Email: bql20@uchicago.edu
- GitHub: @QilongBi
- Office Hours Location: 1155 Building, Room 222
- Office Hours: Tuesday 2-3:30pm
Hubs
View course policies, assessment, and other details in the syllabus.
- Course site - you are here!
- GitHub organization
- Textbook - a collaborative work in progress
- Slides
- Student Hub - scripts, templates, in-class materials, etc.
- Slack workspace - moderated, requires UChicago email
- Canvas - grade tracking, accountability/engagement submissions
- Example repo: schelling-games
Materials
Slides
Slides will typically be posted on Mondays and remain accessible through the end of the academic year. Links in the course calendar below will take you directly to the web presentation version of the slides.
You can alternatively find the Quarto files in the website’s repo, which include additional details and notes not visible in the presentation format.
Readings
D2M-R textbook chapters correspond to subjects in the textbook that goes with this class. This book is very much in development, with large portions entirely untouched as of the start of the quarter. Prioritize the assigned resources from external sources like R for Data Science.
You can contribute to any part of the textbook for course credit! See the student hub documents for textbook contributions for details.
Winter 2026 Calendar
This calendar will be updated with materials, announcements, and other information throughout the quarter. This should be your first stop for course information.
Check this calendar at least once a week to stay up to date on course materials and assignments!
Unit 1: Establishing a Workflow
Week 1 | Introduction to D2M-R
Jan-6; Jan-8
Class plans:
- Tuesday: Introduction to the course, syllabus review
- Thursday: Debugging & problem-solving strategies
- Example Assignment - Tentatively, the plan here is:
- Tuesday end of class: connect RStudio and GitHub, accept the assignment, and clone the repo
- Before Thursday: figure out anything you didn’t get working on Tuesday, up to having the repo locally
- Thursday end of class: complete the assignment, fill out the submission doc, push to GH, and create a pull request
- Realistically, we may have little time to work on this in class. There are detailed instructions to get you through each step of this assignment on this site, other R learning sites, and in the files of the assignment itself. Whether or not we work on it in class, you should complete it before Tuesday Week 2.
- See “Assignments & To-Do” below for details about the assignment itself.
Primary learning objectives:
- RStudio + Quarto workflow
- GitHub repositories and version control
Class Materials:
- Intro Slides
- Problem-Solving Slides
- Course guides:
- Textbook
- Reminder: The textbook is in its infancy! I hope you’ll take advantage of what is there now, but plan to rely primarily on the slides, course guides, and additional resources.
- Ch1: Introduction to D2M-R
- Chapter status (Jan 2025): overview of what the book is and isn’t, basically nothing else
- Ch2: Solving (Your Own) Problems
- Chapter status (Jan 2025): ~90% first draft for Best Practices section; 2% for debugging (stick to slides for now)
- Ch3: RStudio Essentials
- Chapter status (Jan 2025): ~75% first draft
Downloads:
Additional Resources:
- Getting started with R and RStudio:
- Happy Git and GitHub for the useR
- Hands on Programming for R: The Very Basics
- Intro2r: Ch1 Getting Started
- RStudio User Guide: Get Started
- Detailed introduction to the RStudio interface by the people who make it
- Best practices:
- Troubleshooting:
- Relevant subreddits:
Graded Submissions:
- Accountability Plan - Initial Submission
- Due: Monday, January 12th, 2026
- Submit to Canvas.
- Create an individual accountability plan to follow throughout the quarter.
- See the accountability page for details about this assignment.
- We’ll talk about this on Thursday.
Recommended Exercises:
- Example Assignment:
- This is a crash course in using RStudio with GitHub, working in Quarto documents with markdown, and running simple R code within a Quarto document.
- Use this GH classroom invite to access the assignment so you can figure out the process of cloning, editing, committing, pushing, and submitting assignments through GitHub and GH Classroom.
- Between Tuesday and Thursday, you should get everything set up at least through have the repo cloned on your computer and accessible with an RStudio project.
- Before Week 2 you should complete the rest of the assignment, using the problem-solving slides to help if you get stuck.
- Guided Exercise: Create and Sync a GitHub Repo with RStudio
- This exercise walks you through creating a GitHub repository and connecting it to an RStudio project.
- This is similar to what you’ll do for the example assignment, but with more detailed instructions and without the logistical complications of GH Classroom.
Other To-do:
-
- Minimally, send a message including your name and github username, but we’d also love to know a little bit about you and/or why you’re taking the class!
Reminders:
- Initial accountability plans are due on Monday, January 12th. Look at the examples if you need inspiration. Remember that ultimately these plans are for you, not me, so they should be in a form that you’ll actually use. Make them fancy, make them minimal. Copy and paste directly from the examples, write a few sentences for each element, or make a full database with day by day planning. Don’t force yourself into a format that will be more overwhelming than functional.
Week 2 | Git & GitHub
Jan-13; Jan-15
Class plans:
- Tuesday: Introduction to the Git & GitHub (mostly slides)
- Now that you’ve got it set up, actually learning what it is.
- Thursday: Finish slides if needed + hands-on practice with Git & GitHub
- Create a repository, make changes, commit, push, pull, etc.
- Q&A/demo as needed for RStudio and GitHub
- Depending on need/interest, we can use Tuesday or Thursday to do a more involved RStudio and Quarto introduction.
- That would make it a very dense week for slides trying to fit all of Git/GitHub into 1 day, but it’s doable.
Primary learning objectives:
- RStudio + Quarto workflow
- GitHub repositories and version control
Class Materials:
- Git & GitHub Slides
- RStudio & Quarto Slides
- Course guides:
- Textbook
- Reminder: The textbook is in its infancy! I hope you’ll take advantage of what is there now, but plan to rely primarily on the slides, course guides, and additional resources.
- Ch3: RStudio Essentials
- Chapter status (Jan 2025): ~75% first draft
- Ch4: Git and GitHub
- Chapter status (Jan 2025): primarily just outline, includes some content and speaker notes from slides
Additional Resources:
- GitHub
- Happy Git and GitHub for the useR
- In my opinion this is the absolute best resource for learning about Git(Hub) as an R user. When you git stuck, this should be your first stop.
- That was a typo, not a pun, but I’m committing to it now.
- That one actually was intentional.
- That was a typo, not a pun, but I’m committing to it now.
- In my opinion this is the absolute best resource for learning about Git(Hub) as an R user. When you git stuck, this should be your first stop.
- An Introduction to R, Douglas et al. (2024)
- R for the Rest of Us: How to Use Git/GitHub with R
- Bryan J. 2017. Excuse me, do you have a moment to talk about version control? PeerJ Preprints
- .gitignore Documentation
- Oh shit, Git!?!
- Plain English explanations to prevent git-induced panic attacks and/or migraines
- Happy Git and GitHub for the useR
- Quarto/Markdown
Next Steps: After this week you’re ready to dive into some repos.
- Make a repo and linked RStudio project for your integrated data project.
- This is a private repo in your private account. Do not create the repo within the D2M-R organization. Add prof+TA as collaborators before submitting your first draft.
- All you need at this point to get started is a name. Hopefully you have a plan for what data you’ll be using, which should be enough to form a sensible name. Though it’s generally not recommended if you can avoid it, you can change the name later (via GitHub settings) if needed, so there’s really no reason to wait on this.
- Start by adding the essential files:
- README.md and .gitignore can be created when you make the repo on GitHub or added later via RStudio
- Create a manuscript Quarto file (e.g.,
manuscript.qmd) in the root directory. - Add a
/datafolder with any data files you have ready to go – be sure they are anonymized and safe to upload to a private repo first!
- Add some content (real or placeholder) to your readme and manuscript files so you have something to commit and push. Experiment with simple markdown formatting in both files (e.g., headings, bold/italic text, lists, links, etc.) and add a code chunk to the manuscript file.
- Remember the cardinal rules of Git: Pull when you sit down. Commit more than you think you should. Push when you stand up.
- Explore the Skeleton Repo core skills project. You can complete this right now to get points for objectives 1 & 2, or start it now and build it up over the next couple weeks to add points toward objectives 3-5 (or more).
- Skeleton Repo core skills project instructions
- Note that this project requires creating a private repo from scratch in the D2M-R organization. There is no GitHub Classroom assignment option.
Recommendation:
- Make a few human friends in class and form a study or accountability group. This will be a nice supplement your new rubber duck friend and open up options for group projects later.
Office Hours:
- Dr. Dowling: Thurs 2-4pm, 1155 Bld. Room 181
- Qilong Bi: Tues 2-3:30pm, 1155 Bld. Room 222
- Open/drop-in
Reminders:
- Accountability plans past-due
- Accept the GitHub D2M-R organization invite
- Requires accepting any GH classroom invite first
- RStudio + Git setup: happygitwithr.com
Unit 2: R Programming Foundations
Week 3 | R Programming Language
Jan-20; Jan-22
Class plans:
- Lecture: Fundamentals of R Programming Language
- R syntax and structure
- Functions and packages
- Control flow - conditionals and loops
- Exercises/demos:
- Programmer’s Groceries
hello_world()example- Packages and Dependencies
Primary learning objectives:
- Base R syntax and data structures
- Control flow (if/else, loops)
- Defining functions in Base R
Class Materials:
- R Language Fundamentals Slides
- Demos and Exercises
- Textbook
- Reminder: The textbook is in its infancy! I hope you’ll take advantage of what is there now, but plan to rely primarily on the slides, course guides, and additional resources. Remember you can always contribute to incomplete chapters for core objectives and enrichment credit.
- Ch5: R Language Basics
- Chapter status (Jan 2025): ~90% first draft
- Ch6: Packages
- Chapter status (Jan 2025): ~90% first draft
- Ch7: Intro to Programming in R
- Chapter status (Jan 2025): ~40% first draft
Additional Resources:
- STAT545
- Hands-On Programming with R
- R for Data Science (2e)
Note: This week’s resources (both textbook and additional) include a lot of overlap of material. This is intentional. This content is probably the most essential of the whole course, so I want to offer multiple approaches and perspectives to teaching it. I’ve bolded the chapters I think are likely to be the most useful, but I suggest skimming through all of them to see which ones resonate best with you.
Next Steps:
- If you haven’t already, make a repo and linked RStudio project for your integrated data project.
- This is a private repo in your private account. Do not create the repo within the D2M-R organization. Add prof+TA as collaborators before submitting your first draft.
- Take a look at the to-do from last week for tips to get started.
- Explore the R Programming core projects. You can view them in the student hub or accept any as GH Classroom assignments via links on the menu.
adoption-dayis a good one to start with if you want a guided introduction to writing functions in R.hello-worldis a version of the classic exercise to get you familiar with R syntax and function structure. It has clear and simple goals but less step-by-step instruction.wrangling-functionis more advanced, and it better suited to students who have some familiarity with base R and dplyr already. For most students, it will be better to come back to this one in Week 5 or later.
- Review the newly added suggestions for enrichment activities in the student hub. Most can be begun at any time, and several are best suited to continuing across at least a few weeks or the whole quarter.
Reminders:
- Keep track of your accountability plan! You won’t have a formal check-in with it until week 5, but it’s only useful if you actually use it between check-ins.
Week 4 | Tidyverse Essentials
Jan-27; Jan-29
Class plans:
Primary learning objectives:
Graded Submissions:
Recommended Exercises:
Announcements:
Reminders:
Week 5 | Mid-quarter Review & R Workshops
Feb-3; Feb-5
Class plans:
Primary learning objectives:
Graded Submissions:
Recommended Exercises:
Announcements:
Reminders:
Unit 3: Data Wrangling & Reporting
Week 6 | Tidyverse Data Wrangling, part 1
Feb-10; Feb-12
Class plans:
Primary learning objectives:
Graded Submissions:
Recommended Exercises:
Announcements:
Reminders:
Week 7 | Tidyverse Data Wrangling, part 2
Feb-17; Feb-19
Class plans:
Primary learning objectives:
Graded Submissions:
Recommended Exercises:
Announcements:
Reminders:
Week 8 | Data Reporting Essentials
Feb-24; Feb-26
Class plans:
Primary learning objectives:
Graded Submissions:
Recommended Exercises:
Announcements:
Reminders:
Week 9 | Data Wrangling & Reporting Workshops
Mar-3; Mar-5
Class plans:
Primary learning objectives:
Graded Submissions:
Recommended Exercises:
Announcements:
Reminders: