Frequently Asked Questions

General Course Information

From Data to Manuscript in R (D2MR) is a graduate-level course at the University of Chicago that teaches students a workflow for producing academic research projects with GitHub and RStudio. The course is designed to help students learn how to use R for data analysis and visualization, how to use R Markdown to write reproducible manuscripts, and how to use GitHub to collaborate with others and version control their work.

D2MR was developed by Dr. Marisa Casillas in the department of Comparative Human Development and Dr. Natalie Dowling in the Master of Arts Program in the Social Sciences (MAPSS). It is offered through MAPSS and cross-listed with MACSS, psychology, and comparative human development.

D2MR is currently taught by Dr. Dowling, with assistance from graduate student TAs. If you are interested in TAing for the course in a future quarter, please contact Dr. Dowling (ndowling@uchicago.edu).

This class is for students who are interested in using R and related tools to conduct and disseminate research. It is designed for students who have little to no experience with R, but it is also useful for students with some R experience looking to fill in gaps in their knowledge, develop more structured practices, or gain experience directly applying R to their own research projects. Class instruction is geared toward psychologists and other quantitative social scientists, but the skills learned are not specific to any discipline. Most students are MA or early PhD level, but the course is also open to advanced undergraduates.

On the website, syllabus, and in any other materials:

  • Me = Dr. Dowling
  • You = Student(s)
  • We = Our classroom community: Dr. Dowling, the TAs, and the students

Also FYI, “me” is a psychologist who studies gesture and communicative development, so that’s why all the examples have to do with kids’ shrugs.

Objectives-based grading is a combination of several other alternative grading systems, including standards- and specifications-based grading. Students are evaluated based on the number of learning objectives they meet, rather than being assigned letter grades on assignments.

In D2MR, there are 30 explicit “assessed” learning objectives (e.g., use stringr functions to manipulate strings; run inline R functions to render dynamic data-dependent text), which students must demonstrate mastery of across multiple assignments. There are also “unassessed” objectives which students can optionally show mastery of and which tend to be “softer” skills (e.g., define “tidy” data and explain its advantages and disadvantages; follow a coding style guide).

The grading structure of this class is designed to be more transparent, motivating, and equitable than a traditional grading structure. The goal is to help students focus on learning and improvement rather than on grades. Students can see exactly what they need to do to succeed in the class, and they can see their progress toward that goal. The system also allows for more flexibility and individualization than traditional grading systems, since students can choose which objectives to focus on and how to demonstrate mastery of them. Alternative grading systems like this can be more equitable that traditional grading systems, reducing grading subjectivity and bias and allowing students to demonstrate their knowledge and skills in a variety of ways and at their own pace.

Before you start Googling, it’s worth pointing out here that “objectives-based grading” is just what I call the system we use in this course. If you want to learn more about alternative grading systems in general, the terms to look out for are “standards-based grading,” “specifications-based grading,” or “mastery-based grading.” Here are some places to start:

You can email Dr. Dowling about things like typos, broken links, or other mistakes that likely have quick fixes.

If you are currently a student and find something confusing or inconsistent that needs to be clarified/corrected, your first stop is the class Slack. If you don’t get an answer there you can ask Dr. Dowling directly.

Note that this course goes through regular updates and revisions. Expect frequent updates during the quarter, and expect major revisions year to year, which may lead to temporary inconsistencies while the course is in transition.

I’m aware.

Final Research Project

Yes! Many of the objectives above can be met simultaneously. For example, you can use functions from stringr or forcats in your data visualization. You can render a table to display the results of a statistical analysis. You don’t need to create code chunks just for the purpose of meeting the code chunk objectives; you should be demonstrating the other objectives within code chunks and following best practices.

My suggestions for meeting the objectives are not 100% rigid. For example, if I suggest using 2 of something but you use 1 thing in an extremely creative and intricate way, that can be sufficient. Following my suggestions should be a safe bet though if you’re feeling unsure.

Yes. Not everything in your final project for this class needs to stay in the manuscript you continue working on after the class. I understand that your thesis may not need a table of descriptive statistics or a scatter plot of your data, and that’s fine. But you should be able to demonstrate that you can create these things in your final project for this class, then cut them out once you’re done here.

You can earn up to 30 points for the number of unique objectives you meet. You cannot earn more than one point for any objective (though you can meet multiple objectives with the same element/code).

You can earn up to 10 points for engagement. Meeting the learning objective expectations will get you the 30 points above, but you need to earn the additional 10 engagement by exceeding those expectations. You don’t start at 10 points and lose them for penalties; you start at 0 and earn up to 10 when you demonstrate commitment and creativity.

You earn engagement points by doing more than what I ask you to do. Use a particularly creative or intricate method that we didn’t cover much or at all in class to meet an objective.

Include additional elements in your manuscript that aren’t required to show you’re getting in extra practice. Demonstrate a high level of commitment to the project by making sure your manuscript is fully dynamic and reproducible. Include an exceptionally detailed README in your repo. Find and effectively make use of an R package for advanced statistical analysis or visualization.

Just do more. Meeting the learning objectives is meeting expectations. It’s average/fair performance, pretty much a C grade. Earning an A requires exceeding expectations. This is where you do that.

A good deal of your grade depends on your manuscript being 100% reproducible. It can be easy to overlook things like packages you forgot were installed/loaded or data in a hidden folder or a code chunk that you thought was running but actually wasn’t. Try to clone your repo to a new location and knit your manuscript to .pdf from scratch at least once before you submit it. You could pair up with a classmate and try to knit each other’s on your own machines.

Although it is not strictly a requirement, ideally every single data-dependent number in your manuscript should be generated by R code, so that if I change the data, the manuscript updates automatically. Everything from number of observations to p-values to group totals to means…every number that appears in a table or plot…everything. Same goes for non-data references, like links and bibliography citations. Even if you can’t fully get there, it should be evident that you’ve tried to make your manuscript as dynamic as possible. This at the heart of the class’s design and the motivation to use R Markdown in the first place, and producing a maximally dynamic manuscript will go a long way towards earning a maximum engagement score.

Yes! The objectives are the same, but in practice the way you’ll demonstrate them may not be. The suggestions for meeting these objectives in the final project are often, but not always, good ways to meet them in the mini-projects, too! The mini-projects are a lot more flexible.

Mini-Projects

No. You should use different data for the mini-projects unless the assignment calls for it or you receive prior approval. You can use the same data for multiple mini-projects, but you should demonstrate different skills in each.

I will grant exceptions for using the same data for a mini-project and the research project if you are going to demonstrate very different skills in each and/or use different parts of the data. Send me an email with your idea to get approval.

No(ish). Every mini-project should have its own subdirectory, including its own assessment.md file. Leave the top-level file as-is and duplicate it for each mini-project you complete. The “ish” part of the no(ish) is that you can make changes you expect to apply to all your mini-projects (e.g., your name and section number).

“Off-the-syllabus” projects are designed to let you practice skills that aren’t explicitly covered in the course but are related to the skills we do cover. You’ll be provided with some guidance for approaching the project, but it will be up to you learn the skills independently. These are already part of the menu and don’t require a proposal.

“Off-the-menu” projects are entirely self-designed and can be about anything you want, as long as will help you meet the goals of the course. You can use them to check off assessed learning objectives, to go above and beyond like an OtS project, do demonstrate unassessed/conceptual skills, or a combination. You’ll need to submit a proposal for approval before you can start working on the project.

The same as other projects, using an assessment.md file. If you want, you can earn all 40 points through OtS or OtM projects. They are also a great way to earn the engagement points, as they require you to take a more active role in your learning.

Unless it’s a guided exercise, just go for it! Most projects will just have a simple readme with very open-ended instructions anyway. If you start a project and then it turns out the instructions added later were way different than the direction you took it, that’s fine. You’re functionally doing an off-the-menu project.

No. You get one shot at each mini-project, but this shouldn’t be a limitation. There are 40+ menu items and you can always go off the menu to design a project that will let you demonstrate the same skills in a different context. If you’re not sure if your idea is different enough, submit a proposal for approval.

Yes! Well, mostly. Some projects are specifically designed for pairs or groups, and they are a great way to demonstrate community engagement on top of project engagement. You can also design OtM group projects.

For projects that aren’t designed to be completed collaboratively, you should complete the work individually, but you still can (should!) collaborate to support one another. Discuss ideas, help debug, etc.

In all cases you should each submit your own assessment.md file in the appropriate subdirectory of your own forks and note on it who you worked with. If you have questions about what kinds of collaboration are ok or the logistics of group work, post your questions on Slack or email Dr. Dowling.

No. You can’t make changes to the main repository unless you’re a collaborator, and you can’t become a collaborator unless you’re a TA or Dr. Dowling. If you somehow managed to commit changes to the main repository, you would be prompted to create a “pull request,” so you’d know you weren’t in the right place. If you managed to accidentally submit a pull request, I would just deny the request and everything would still be fine.

Your classmates won’t see your work unless you show it to them. The only way they would see your work is if you made a public repository and shared the link or invited them as collaborators to a private repository. Your professor and section TA need to be collaborators on your forked repository to grade your work, but I promise we aren’t digging through your commit files to judge your git prowess. That would be pretty counterproductive for the course goals. We also just don’t have the time even if we wanted to.

It’s probably part of an off-the-syllabus project. If you’re curious about things like papaja, shiny, or LaTeX, look them up! If you’re not sure whether something is off the syllabus or just something we haven’t gotten to yet, ask on Slack.

You can complete a minimum of 1 mini-project and a maximum of 10. Most students will complete 3-5. Points earned are cumulative across all mini-projects, but remember at least 20 points must be earned from meeting unique assessed learning objectives. You can repeat objectives in the remaining 20, but you cannot earn points for the same objective more than once per mini-project.

Submitting to Canvas functionally serves to alert us that you’ve completed a project and that we should grade it. The actual assessment, including any feedback, happens in the assessment file in this repository. Your Canvas assignment will be marked as “complete” when we’ve finished grading your project and have pushed the assessment back to your repo.

Points earned will be added to your cumulative mini-project scores in Canvas. You won’t see numbers for each project, just complete/incomplete. You’ll have 3 scores in Canvas: up to 20 points for unique objectives demonstrated, up to 20 points for repeat objectives and unassessed objectives, and up to 10 points for engagement.

For code – yes, with some caveats. You can use AI to help you with your projects, but you should be able to explain the code you write and the decisions you make. If you can’t explain it, you probably shouldn’t be using it. Ultimately it’s your decision on whether and how to use AI to help you code. Whatever you choose, you need to disclose your use (or non-use) of AI in your project’s assessment file.

For text – no. All text should be your own work, including narrative text of research reports, comments, responses to prompts, reflections, etc.

View the AI*2 policy for more information.

I appreciate the initiative and enthusiasm, but you can only earn up to 50 points across all mini-projects. Because we have limited resources for grading, we will not continue to grade submissions turned in after you’ve capped out all three categories. However, if you are just genuinely excited about something, please come talk with us about it in office hours! Not only will we be thrilled to get to geek out with you, but we might be able to suggest ways to incorporate it into your research project or other coursework.