Introduction to D2M-R

syllabus, workflow overview

2026-01-06

Course

From Data to Manuscript in R - Quarter 1

People

Professor: Dr. Natalie Dowling

  • Preferred name: Natalie or Dr. Dowling
  • Pronouns: she/her
  • Email: ndowling@uchicago.edu
  • GitHub: @nrdowling
  • Office hours:
    • 1155 E 60th St, Rm 181
    • Thursdays 2-4pm by appointment - book here
    • Email to set up an alternative meeting time

Teaching Assistant: Qilong Bi

  • Preferred name: Qilong
  • Pronouns: he/him
  • Email: bql20@uchicago.edu
  • GitHub: @QilongBi
  • Office hours:
    • location TBA
    • Tuesdays 2-3:30pm (open)

Syllabus

Expectations & Course Goals

  1. Develop a reproducible and transparent research workflow.
  2. Practice accountability & time management.
  3. Engage with your research communities.
  4. Develop problem-solving and independent learning skills.

Course Philosophy

This class is for you.

  • Gain foundational skills that everything else is built on
  • Apply those skills designed around your individual priorities, interests, and goals

Four key principles

  • Standards-based grading
  • Multiple pathways to demonstrate course objectives
  • Tiered credit for mastery levels
  • Individualized plans and pacing

D2M-R Workflow

  1. Create and sync a GitHub repo and R project
  2. Begin a full manuscript in a Quarto notebook (.qmd)
  3. Use R scripts and chunks to read in, clean, and wrangle data
  4. Source .R scripts for “background” needs
  5. Analyze and visualize your data within your Quarto notebook
  6. Maintain a BibTeX file with all manuscript citations
  7. Compose the manuscript narrative in your notebook
  8. 1-click knit your manuscript to a publishable file format
  9. Dynamically update and maintain your manuscript

Quarter 1

  1. Create and sync a GitHub repo and R project
  2. Begin a full manuscript in a Quarto notebook (.qmd)
  3. Use R scripts and chunks to read in, clean, and wrangle data
  4. Source .R scripts for “background” needs
  5. First steps: Analyze and visualize your data within your Quarto notebook
  6. Maintain a BibTeX file with all manuscript citations
  7. Compose the manuscript narrative in your notebook
  8. 1-click knit your manuscript to a publishable file format
  9. Dynamically update and maintain your manuscript

Course Policies: Overview

Review the syllabus on the course site for full policies!

Communication: Slack

  • Slack participation is required
    • Your first stop for support
  • Use the appropriate channels
  • Intended for peer collaboration
    • Minimal instructor involvement
    • Peer support is part of your grade
  • Direct messages:
    • Do not direct message instructors (including TAs).
    • DMing with other students is permitted but not required

Communication: Email vs. Slack

Email

  • Private communication with professor/TAs
  • Topics that concern you and only you
  • Accommodation requests

Slack

  • Class-wide communication with instructors and students
  • Topics that may concern others, e.g.:
    • Questions about course content
    • Clarifications about grading policies
    • Requests for support

Climate

  • View the class climate policy here.
  • Basically, just be cool, ok?
  • If you have problems with other students or the TA:
  • If you have a problem with me:
    • Discuss it with me directly if you feel comfortable doing so
    • Bring it to UChicago CARES
  • You can always go to CARES without going through me or anyone else first.

Accessibility & Accommodation

  • Requests for formal accommodations should go through Student Disability Services
    • Graduate students need to request accommodation letters be sent to me
    • You never need to disclose personal details to me or anyone outside SDS
  • Meet with me in office hours for informal accommodation requests
  • You will factor your own accommodations into your accountability plan

Disclosing personal information

You are never required to disclose personal information to me or any instructors. These guidelines are for all classes at UChicago, not just this one.

You do not need to:

  • Share details about your health, disability, or reasoning for accommodations
  • Get a doctor’s note for absences
    • Your instructor is not allowed to ask for one!
  • Defend your need for accommodations

You are an adult with priorities and the capacity for cost/benefit decision-making. You can decide what you want to share and with whom. If you need to miss class because you have terrible period cramps, are having a panic attack, are recovering from a migraine, think your roommate might have COVID, need to cram for an exam for a different class, are shamefully hung over, or just really don’t wanna come to campus, you do not need to explain yourself to me or anyone else. Just take care of yourself, and take responsibility for effects on your learning and grades.

This doesn’t mean there are never consequences for missing class. You are responsible for keeping up with the material and assignments (per your accommodations, if applicable), and are subject to penalties defined by the syllabus.

Academic Integrity: Overview

  • View the academic integrity policy here.
  • Plagiarism is bad. Cheating is bad. Don’t do it.
    • Why are you even here?
  • All written/textual content in your submitted assignments must be fully produced by you
  • Code may be produced with AI (or human) assistance with a full disclosure statement
  • Disclosure statements are required for all submitted work

Academic Integrity: Grading Penalties

You will not be penalized for (with disclosure):

  • Using AI to help you with code
  • Using code snippets from print or online resources
  • Co-writing code with classmates/other humans
  • Unintentionally crossing the line with AI if it is fully disclosed
    • I will ask to you revise and resubmit without penalty

You will be penalized for:

  • Failing to disclose any of the above
  • Using AI to generate text for ANY submitted work
  • Using text written by any human other than you, including classmates
    • Exceptions for some group projects may be granted, but must be requested in advance

Submissions that do not follow these guidelines will receive a non-negotiable 0.

Academic Integrity: You & AI

The AIlephant in the room. This is DALL-E’s best attempt at “An elephant with the letters A and I on its ears.” Not very impressive, but I can’t blame it too much. It wasn’t a good pun to begin with.

To see GPT’s coding skills in action, watch DougDoug force it to create Snake 2 (with mixed success).

You should only be taking this class if you want to gain practical skills that will be useful to you outside of the class.

If you don’t care enough to actually learn the material yourself, this probably isn’t the right class for you.

My personal AI philosophy & Official Class Policy

Assessment & Grading

Grading Overview

Earn up to 100 points across five categories:

Points Category Description
10 Accountability Create and maintain a personalized accountability plan
10 Community Engagement Participate actively in class and on Slack
60 Core Standards Mastery Demonstrate proficiency on 12 core technical skills (standards)
20 Integrative Data Project Complete a comprehensive data analysis project demonstrating mastery of all core standards
((10)) Enrichment Optional activities to deepen learning and supplement core work

Because enrichment points are optional, it is possible to earn more than 100 raw points across categories. Final course grades are capped at 100.

You start at 0 points and work up to 100. You don’t start at 100 and lose points. Meeting minimum requirements means you will pass the class. Earning an A takes more than that.

Accountability Plan (10pt)

You create an assignment schedule for yourself.

  • Defining your own goals is part of the research workflow and an explicit learning objective and part of your grade
  • SDS approved accommodations for extensions are built into your plan
  • You will create a personal timeline and accountability plan for the quarter

Accountability is 10% of your final grade.

  • Meeting the 3 checkpoint deadlines for the plan itself (meta-deadlines); Mondays of Weeks 2, 5, and 8
  • Meeting the deadlines you set for yourself
  • Reflecting on your progress and making adjustments
  • Suggesting a grade (of 10)

Community Engagement (10pt)

Attending class and paying attention are basic expectations. Your engagement grade is based on how you show investment in the course and your peers, both in and out of class.

  • In-class:
    • Ask and answer questions during lecture
    • Use workshop time wisely and generously
    • Participate in group activities
  • Outside the classroom:
    • Be an active participant on Slack
    • Seek support from peers and instructors when needed
    • Collaborate with peers
    • Complete collaborative assignments

Core Standards Mastery (60pt)

Demonstrate proficiency on 12 core technical skills (standards) selecting from a project menu.

  • Structured assignments that guide you through skills step-by-step
  • Semi-structured assignments that provide a clear framework with room for creativity
  • Unstructured assignments that give suggested approaches to meet objectives
  • Group assignments
  • “Off-the-menu” Self-designed small projects

Core Standards Mastery (60pt)

The 12 core skills for the first quarter are:

  1. RStudio + Quarto workflow
  2. GitHub repositories and version control
  3. Base R syntax and data structures
  4. Control flow (if/else, loops)
  5. Defining functions in Base R
  6. Importing data with tidyverse tools
  7. Data manipulation with dplyr and pipelines
  8. Tidy data structure
  9. Reshaping data with tidyr
  10. Character strings with stringr
  11. Factors with forcats
  12. Basic reporting: plots and descriptives in Quarto

Core Standards Mastery (60pt)

Each standard is scored on a 4 / 5 / 6 point scale based on the quality and independence of your demonstration of the skill.

Points Label Description
No grade No demonstration You have not yet demonstrated this skill.
4 Meets Expectations You demonstrate the skill correctly in structured or familiar contexts.
5 Exceeds Expectations You apply the skill correctly and independently in a novel context.
6 Outstanding You use the skill in an especially expansive way.

Access and Complete Core Projects

  1. Visit the menu of core standards assignments here.
  2. Select assignments that address the standards you want to demonstrate.
  3. Use the links on the menu to create a repo within the D2M-R GitHub organization by either:
    1. Accepting the GitHub classroom invitation (if available)
    2. Creating a private repo from scratch and adding in the associated files from the student hub repo
  4. Complete the assignment according to the instructions in the assignment’s README file or Quarto notebook.
  5. Complete the corresponding submission document (student-hub/templates)
  6. Finalize your assignment with a GitHub pull request.
  7. Submit to the grading queue with the “Submit” form on the website.

There are extremely detailed instructions for how do do each step of this process in the student-hub repo, on each submission document, and on the website. Start here.

We’ll do a demo of what this looks like later.

Integrative Data Project (20pt)

The final project is a data analysis report created with RStudio and maintained in a GitHub repo that includes:

  • Data import
  • Data wrangling/cleaning
  • Basic descriptive statistics
  • Simple data visualization
  • Narrative markdown text explaining your choices and findings

Screenshot of a data project showing code chunks and narrative text in a Quarto document.

Integrative Data Project (20pt)

Earn up to 20 points on the data project:

Points Component Description
12 Core standards Demonstrate all 12 core standards at 4pt-level or above
2 Reproducibility Code is fully reproducible, with no errors
2 Documentation Code is clearly commented with explanatory Quarto narrative text
2 Cohesion Data wrangling, statistics, and plots are clearly connected with narrative text
2 Presentation Quarto document is well-formatted and knits without error

Submit your data project up to 3 times to get early feedback and/or complete the requirement early.

Enrichment (up to 10pt)

10 optional points: customize your curriculum to your own interests

You can earn 100 points without any enrichment points.

Examples include:

  • Debugging journals that document how you worked through specific problems
  • Short write‑ups teaching a peer how to do something (e.g., connecting RStudio and GitHub)
  • Reflections on responsible and productive use of AI tools in your workflow
  • Evidence of sustained collaboration on GitHub (e.g., issues, pull requests, code review)
  • Contributions to open‑source R packages or communities (e.g., GitHub issues, Stack Overflow answers)

Where do I find them?

For the most part it’s up to you to design your own enrichment activities. Figuring out for yourself what would be most useful for your own learning is part of the point of this category. If you are totally lost as to where to start, there are a few unstructured activities available in the student-hub repo.

LET’S DO SOME STUFF!

Get Yourself Sorted

Use your common sense and the many resources on the course website to get the following done:

  1. Make your GitHub account, apply for the education account.
  2. Install R and RStudio.
  3. Connect GitHub and RStudio using the guide on the course site.

Example Assignment

In the meantime, while you figure yourself out, I’m going to demo the workflow of an example assignment.

Follow along if you’re ready to go, otherwise just watch me and do it on your own later.

  1. Go to the assignment menu and click the GitHub classroom invite for the example assignment.
  2. Accept the assignment and create your GitHub repo.
  3. Clone the repo to your computer using RStudio.
  4. Open the example R script in RStudio and follow the instructions to complete the assignment.
    • Even if you don’t have the github/RStudio thing sorted yet, you should open RStudio at this point and try out the interface.
  5. Submit the assignment for (fake) grading with a pull request and the class submission form.

If you’re not sure how to do something, figure it out!

That’s the point. Practice finding resources and solving problems on your own. If you get stuck, ask for help on Slack. Thursday we’ll talk about specific problem-solving and debugging strategies.