Mini-project Menu
The following is a list of mini-projects available in the d2mr-assessment
repository. This list is intended to help you choose a mini-project that aligns with your interests and skill level. The listing for each published project includes a brief description of the project, the objectives it targets, and the level of structure it provides. Some have additional comments about the project’s complexity or potential for earning points.
Unpublished projects are in gray. If you would like to complete an unpublished project, please reach out to Dr. Dowling for more information on when it will be available or submit a proposal for an off-the-menu project on that topic.
Data Cleaning
- Cleaning Level 1: Targets tidyverse objectives
- Practice cleaning and transforming a messy dataset using tidyverse functions, using skills like renaming and reordering columns, sorting rows, changing data types, mutating data, and using the stringr and forcats packages.
- Highly structured, good for beginners
- Cleaning Level 2: Targets tidyverse objectives
- Practice cleaning and transforming a messy dataset using tidyverse functions, using skills like renaming and reordering columns, sorting rows, changing data types, mutating data, and using the stringr and forcats packages.
- Practice identifying cleaning needs and writing code to address them without step-by-step instructions
- More complex, good for intermediate R users
- Unstructured format allows for more unassessed objectives and engagement points
- Group Uncleaning: Targets tidyverse objectives
- Work together with a classmate to each “unclean” a dataset for the other(s) to clean. Each partner will “make a mess” of one dataset and clean the other.
- Practice identifying cleaning needs and writing code to address them without step-by-step instructions
- Unstructured format allows for more unassessed objectives and engagement points
Data Wrangling
- Wrangling Level 1: Targets Tidyverse objectives
- Practice transforming dataset using (primarily) tidyverse functions. You will use skills like renaming and reordering columns, sorting rows, changing data types, mutating data, and using the stringr and forcats packages.
- Highly structured, good for beginners
- Wrangling Level 2: Targets tidyverse objectives
- Practice transforming dataset using (primarily) tidyverse functions. You will use skills like renaming and reordering columns, sorting rows, changing data types, mutating data, and using the stringr and forcats packages.
- Challenges you to practice complex data wrangling techniques using the tidyverse ecosystem.
- Practice recognizing transformations and writing code to address them without step-by-step instructions
- More complex, good for intermediate R users
- Unstructured format allows for more unassessed objectives and engagement points
- Group “make-a-mess”: Targets tidyverse objectives
- Work together with a classmate to each “(un)wrangle” a dataset for the other(s) to recreate. Each partner will “make a mess” of one dataset and recreate the other.
- Practice recognizing transformations and writing code to address them without step-by-step instructions
- Unstructured format allows for more unassessed objectives and engagement points
- Off-the-Syllabus - Non-rectangular and Nested Data Wrangling: Targets tidyverse objectives + OTS
- Practice working with non-rectangular or nested data using tidyverse functions. This gives your the opportunity to explore data wrangling techniques beyond what we cover in class, particularly focusing on importing and cleaning messy data formats.
- Minimal structure, good for intermediate/advanced R users
- OTS format is ideal for demonstrating unassessed objectives and earning engagement points
Data Visualization
- Visualization Level 1: Targets ggplot2 objectives
- Practice constructing simple visualizations using the
ggplot2
package in R. Work with simple datasets and focus on the most commonly used layers and aesthetics. - Highly structured, good for beginners
- Practice constructing simple visualizations using the
- Visualization Level 2: Targets ggplot2 & tidyverse objectives
- Practice constructing complex visualizations using the
ggplot2
package in R, using skills like faceting, themes, and scales. - Challenges you to identify and recreate plot and theme elements
- More complex, good for intermediate R users
- Unstructured format allows for more unassessed objectives and engagement points
- Practice constructing complex visualizations using the
- ggplot Theme: Targets ggplot2 objectives
- Create a custom ggplot2 theme that reflects your personal visualization style while maintaining clarity and professionalism.
- Minimal structure, good for intermediate R users
- Unstructured format allows for more unassessed objectives and engagement points
- Group Plot Swap: Targets ggplot2 & tidyverse objectives
- Work with a partner to create and recreate data visualizations using ggplot2. Each partner will create a complex visualization from a dataset, then challenge their partner to recreate it using only the dataset and a static image of the final plot.
- Practice recognizing plot elements and writing code to address them without step-by-step instructions
- Minimal structure, good for intermediate R users
- Unstructured format allows for more unassessed objectives and engagement points
- Tables
- Off-the-Syllabus - Non-ggplot Figures: Targets R programming + OTS
- Create a data visualization project that demonstrates your ability to create publication-quality plots using R packages other than ggplot2 using alternatives to ggplot2 or extensions.
- Minimal structure, good for intermediate/advanced R users
- OTS format is ideal for demonstrating unassessed objectives and earning engagement points
Data Analysis
- Descriptive Statistics: Targets Tidyverse, ggplot2, and data analysis objectives
- Practice using R to calculate and interpret descriptive statistics using an open-access dataset capturing relationships between math anxiety and self-perception.
- Highly structured, good for beginners
- Hypothesis Testing: Targets Tidyverse, ggplot2, and data analysis objectives
- Practice using R to analyze data with common inferential statistics techniques. The exercise includes some work with ggplot2 and opportunities to use inline R code in narrative statistical interpretation.
- Very long project, including both highly structured and fully open-ended components
- Does not need to be completed in its entirety, pick and choose what to work on
- Good for intermediate R users, with optional advanced components
- Off-the-Syllabus - Advanced Analyses
Data Communication
- Transpose to Quarto: Targets ggplot2, analysis, bibtex, notebook, and quarto objectives
- Convert an existing academic document (such as a class paper, research report, or completed thesis) into a reproducible Quarto document using the apaquarto extension. This project is a chance to develop and demonstrate skills in academic writing workflow automation using Quarto and markdown tools.
- Some structure, with clear guidelines but room for creativity
- Ideal for demonstrating many objectives at once, beyond the targeted objectives
- Requires creating a repo outside the assessment repo
- Simple .qmd: Targets notebook and Quarto objectives
- Create a Quarto notebook that includes the three core components: a YAML header, code chunks, and pandoc markdown text.
- Some structure, with clear guidelines but room for creativity
- Ideal for demonstrating many objectives at once, beyond the targeted objectives
- Class Topic Demo: Targets communication, notebook, and Quarto objectives
- Create a Quarto notebook that demonstrates and teaches a core concept from our course curriculum, or an “off-the-syllabus” skill relevant to the course.
- Minimal structure, good for intermediate/advanced R users
- Ideal for demonstrating many objectives at once, beyond the targeted objectives
- Off-the-Syllabus - Non-Quarto Manuscripts
- Off-the-Syllabus - Quarto Publications
- Off-the-Syllabus - Shiny App
R Programming
- Hello World Function: Targets R programming objectives
- Build a function called
hello_world()
. This is a classic beginner programming exercise for learning any coding language. - Some structure, with clear guidelines but room for creativity, good for beginners
- Build a function called
- Plotting Function: Targets R programming, tidyverse, & ggplot2 objectives
- Define a function that creates customized plots using ggplot2. Your final product should be an .R script that defines your function, then demonstrates its use with various datasets and argument combinations.
- Some structure, with clear guidelines but room for creativity, good for intermediate R users
- Wrangling Function: Targets R programming & tidyverse objectives
- Define a function for data wrangling that serves a useful and plausible purpose for data preparation.
- Minimal structure, good for intermediate R users
- Unstructured format allows for more unassessed objectives and engagement points
- Recreate Function: Targets R programming & tidyverse objectives
- Recreate one or more existing functions from base R or a package of your choice. Your final product should be an .R script that defines your function, then compares the output with that of the original function.
- Some structure, with clear guidelines but room for creativity, good for intermediate/advanced R users
- Unstructured format allows for more unassessed objectives and engagement points
- Off-the-Syllabus - Create an R Package: Targets git, R programming, & tidyverse objectives + OTS
- Create a simple R package that contains at least two functions. Your final product will be a working R package that can be installed from GitHub.
- Some structure for the fundamentals, but requires a significant amount of independent learning, good for advanced R users
- OTS format is ideal for demonstrating unassessed objectives and earning engagement points
Git & GitHub
- Skeleton Repo: Targets git & GitHub objectives
- Create a new “skeleton” GitHub repo. The repo can either be just to practice organizing and working in GitHub or as a setup for an actual project you’re going to work on
- Some structure, with clear guidelines but room for creativity, good for beginners
- Ideal for demonstrating many objectives at once, beyond the targeted objectives
- Requires creating a repo outside the assessment repo
- Collaborative Repo
- Off-the-Syllabus - GitHub Pages
Unassessed Objectives & Miscellaneous
- Style Guide: Primarily targets unassessed objectives
- Create and document your own style guide and practice following it.
- Requires little background knowledge, good for beginners
- Can meet assessed objectives depending on application
- Debugging Journal: Primarily targets unassessed objectives
- Demonstrate your troubleshooting and debugging skills developed throughout the course. Document and reflect on your problem-solving experiences, showing how you approach, investigate, and resolve coding challenges in R.
- Requires little background knowledge, good for beginners
- Minimal opportunity to meet assessed objectives, but ideal for demonstrating unassessed objectives, off-the-syllabus skills, and earning engagement points
- Documentation
- Communicating Concepts: Primarily targets unassessed objectives
- Demonstrate your understanding of R programming and data workflow concepts in a format of your choice. The goal is to explain these concepts in your own words, showing how they connect and why they matter for research in psychology (or your field).
- Requires minimal technical knowledge, good for beginners
- Minimal opportunity to meet assessed objectives, but ideal for demonstrating unassessed objectives and earning engagement points
- Off-the-Syllabus - LaTeX: Primarily targets unassessed objectives, may include notebook and Quarto objectives
- Create one or more documents that use LaTeX to render specified and customizable text.
- Almost no structure, requires a significant amount of independent learning, good for those with programming and technical experience outside R
- Crowdsource Contribution: Varies, primarily unassessed objectives
- Contribute knowledge or help to a crowd-sourcing support page, like stack overflow or an R-focused subreddit.
- Minimal structure
- Earn up to 3 points for Unassessed Objective #3 (follow a debugging workflow with independent and collaborative strategies)
- Demonstrate any assessed objectives, unassessed objectives, or OTS skills depending on topic
- Ideal for earning a very high engagement score; can impact your class community engagement score as well as the MP engagement score
- Create a Tutorial: Varies, primarily targets unassessed objectives
- Create a tutorial on any topic related to R programming, data workflows, or research communication that interests you. The goal is to effectively explain technical concepts to a specific audience of your choosing, while demonstrating your own understanding of the material.
- Some structure, with clear guidelines but room for creativity
- Ideal for demonstrating many objectives at once, beyond the targeted objectives
- Schelling Games Repo