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

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.

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

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:

    1. RStudio + Quarto workflow
    1. GitHub repositories and version control

Class Materials:

Downloads:

  • R
  • RStudio
  • Git
    • You don’t usually need to install Git separately, but you can

Additional Resources:

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:

    1. RStudio + Quarto workflow
    1. GitHub repositories and version control

Class Materials:

Additional Resources:

Next Steps: After this week you’re ready to dive into some repos.

  1. 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 /data folder 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.
  2. 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).

Recommendation:

  1. 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:

    1. Base R syntax and data structures
    1. Control flow (if/else, loops)
    1. Defining functions in Base R

Class Materials:

Additional Resources:

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:

  1. 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.
  2. 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-day is a good one to start with if you want a guided introduction to writing functions in R.
    • hello-world is 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-function is 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.
  3. 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:

  1. 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:

Class Materials:

Additional Resources:

  • readings
  • cheat-sheets
  • tutorials

Graded Submissions:

Recommended Exercises:

Announcements:

Reminders:

Week 5 | Mid-quarter Review & R Workshops

Feb-3; Feb-5

Class plans:

Primary learning objectives:

Class Materials:

Additional Resources:

  • readings
  • cheat-sheets
  • tutorials

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:

Class Materials:

Additional Resources:

  • readings
  • cheat-sheets
  • tutorials

Graded Submissions:

Recommended Exercises:

Announcements:

Reminders:

Week 7 | Tidyverse Data Wrangling, part 2

Feb-17; Feb-19

Class plans:

Primary learning objectives:

Class Materials:

Additional Resources:

  • readings
  • cheat-sheets
  • tutorials

Graded Submissions:

Recommended Exercises:

Announcements:

Reminders:

Week 8 | Data Reporting Essentials

Feb-24; Feb-26

Class plans:

Primary learning objectives:

Class Materials:

Additional Resources:

  • readings
  • cheat-sheets
  • tutorials

Graded Submissions:

Recommended Exercises:

Announcements:

Reminders:

Week 9 | Data Wrangling & Reporting Workshops

Mar-3; Mar-5

Class plans:

Primary learning objectives:

Class Materials:

Additional Resources:

  • readings
  • cheat-sheets
  • tutorials

Graded Submissions:

Recommended Exercises:

Announcements:

Reminders: