Today: Lecture #02: Tools for Reproducible Research
These slides can be found online at:
In-class activities can be found at:
Upcoming student responsibilities - Tuesday Section:
| Date | Time | Student Responsibility |
|---|---|---|
| 2026-09-14 | 11:59pm ET | Syllabus Quiz / Verification of Enrollment |
| 2026-09-15 | 6:00pm ET | Pre-Assignment #03 Due |
| 2026-09-22 | 6:00pm ET | Pre-Assignment #04 Due |
| 2026-09-24 | 11:59pm ET | Team Roster Submission |
| 2026-09-25 | 11:59pm ET | Mini-Project #00 Due |
| 2026-09-29 | 6:00pm ET | Team Contract Due |
| 2026-09-29 | 6:00pm ET | Project Proposal Presentation Slides Due |
| 2026-10-05 | 11:59pm ET | Mini-Project Peer Feedback #00 Due |
| 2026-10-06 | 6:00pm ET | Pre-Assignment #05 Due |
Upcoming student responsibilities - Thursday Section:
| Date | Time | Student Responsibility |
|---|---|---|
| 2026-09-14 | 11:59pm ET | Syllabus Quiz / Verification of Enrollment |
| 2026-09-17 | 6:00pm ET | Pre-Assignment #03 Due |
| 2026-09-24 | 6:00pm ET | Pre-Assignment #04 Due |
| 2026-09-24 | 11:59pm ET | Team Roster Submission |
| 2026-09-25 | 11:59pm ET | Mini-Project #00 Due |
| 2026-10-01 | 6:00pm ET | Team Contract Due |
| 2026-10-01 | 6:00pm ET | Project Proposal Presentation Slides Due |
| 2026-10-05 | 11:59pm ET | Mini-Project Peer Feedback #00 Due |
| 2026-10-08 | 6:00pm ET | Pre-Assignment #05 Due |
Other Important Dates:
| Date | Instructor Action |
|---|---|
| 2026-09-08 | Mini-Project Released #00 |
| 2026-09-15 | Course Project Description Finalized |
| 2026-09-22 | Mini-Project Released #01 |
| 2026-09-28 | Mini-Project Peer Feedback Assigned #00 |
| 2026-10-02 | Estimated Return of Peer Comments #00 |
Final enrollment: 87
Course project description is now online
Detailed discussion of:
Please send me questions!
First step: by 2026-09-24, email me your group members.
Instructor Tip: Before committing to a team with someone, you can look up their GitHub and see how they did MP#00 (how early, how technical). This might be helpful to find teammates whose work patterns are calibrated to your own.
Special presentation next week on finding good data sources
You must submit the Brightspace Syllabus Quiz before you can submit any graded assignments.
Pre-Assignment #02
Pre-Assignment #03
Due (just after) Friday, September 25
Possible tech issues, so start early
If you’ve submitted on GitHub but haven’t received a ‘all checks passed’ confirmation message, I still need your GitHub info via personal message (“Assignment”) on the discussion board
Optional DataCamp course:
R Markdown is proto-Quarto:
Markdown:
Source code:
This is what Markdown looks like!
I can write in *italics* or **bold**.
Lists are easy:
1. First
1. Second
1. Third
as are links to [helpful info](https://commonmark.org).
Aside, ‘fixed-width font’ (like the above) is used to emphasize that text should be read as code. Cf. Python where indentation (and hence horizontal spacing) matters and needs to be standardized
Output:
This is what Markdown looks like!
I can write in italics or bold.
Lists are easy:
- First
- Second
- Third
as are links to helpful info.
Markdown is just a language:

Pandoc can essentially convert anything to anything:
Markdown is a WYSIWYM format:
Extensions allow finer control of formatting
pandoc for finer control (not in this class)
In this class, web sites:
qmd document becomes a single html file (page)Resources:
Official Cheat Sheets:
Data Camp RStudio Tutorial (Free)
RStudio has native Quarto support: just hit “Render”
What is Markdown?
Per Wikipedia: “Markdown is a light-weight, plain-text, markup language specification”
What is Markdown?
Other than text formatting, does Markdown have any other uses?
On its own, Markdown is just text formatting (but that’s a lot!)
We will use Quarto which augments markdown for reproducible research.
We can embed code-and its output-inside Markdown documents.
What uses Markdown?
So much! Used by Bitbucket, GitHub, OpenStreetMap, Reddit, Stack Exchange, Drupal, ChatGPT, Discord, MS Teams and many more!
Tools like Pandoc/Quarto render Markdown to:
What is the difference between a Code section and a Nested List? Are they just different ways of indenting?
No. Nested lists are ‘just’ text
Code formatting enables much more if rendering engine supports it:
How are we going to use Markdown?
All written work (mini-projects and final project) in this course will be submitted using Markdown (by way of Quarto).
Specifically:
You are also encouraged (but not required) to use Markdown for presentation slides (like these!)
How can I create Tables in Markdown?
Markdown has two table syntaxes:
If you are making complex tables, I recommend using the list-table extension.
(See syllabus.qmd in course repo for examples.)
For results tables, we will use the gt R package starting in MP#01
How to create images and links?
Basic hyperlinks look like this:
[link text](https://the.url/goes/here)
If you want to embed the contents of a link, prepend it with an exclamation point. This is most useful for images:

You can even put a link inside an image to be fancy:
[](https://en.wikipedia.org/wiki/Elephant)
This makes a ‘clickable image’
How to create images and links?
Quarto automatically embeds the results of plotting code:

Here, Quarto handles all the file creation and link targeting for us. If I change the code, the figure will change automatically.
Any other questions?
Let’s go practice using Quarto in this week’s lab
(Random breakout rooms)
git is the industry-standard tool for source code management (SCM)
Courtesy of PhD Comics, this is what we want to avoid:

Git tracks changes to files
main) is just a stand-in for “latest commit”For this course, I like the mental model of a box:
git add: Commands to put changes in the boxgit commit: Seal the box and put shipping info on the outsidegit push: Send the box (to GitHub)From GitHub user @design-web-victo:

Once you create a project, RStudio has built-in git integration

M are files that have been Modified since the last commit? are files I have never told git to trackCheck box next to a file name to stage (or add) it in git

See how the M moves over to the first column as well.
Create a commit with the Commit button
Commit a second time
git push (green up arrow button) to move files to GitHub
Resulting commit now visible on GitHub
Automatically updates website as well
File no longer listed in Git pane - no new changes
MFor us, GitHub is just a “dumping ground”
GitHub from a single computerWarning: Do not make any edits using the GitHub website.
GitHub provides GitHub Pages
We will use GitHub pages for all work submission in this class
qmd files allows automatic checksBy default, URLs look like:
https://YOUR_GITHUB_ID.github.io/YOUR_REPO_NAME
If you create a repo called YOUR_GITHUB_ID.github.io, URL simplifies:
https://YOUR_GITHUB_ID.github.io/
If you own a domain, you can map to arbitrary base URL:
https://DOMAIN_NAME/YOUR_REPO_NAME
E.g., https://michael-weylandt.com/STA9750 from michaelweylandt/STA9750 on GitHub
Throughout course instructions, you will see things like YOUR_GITHUB_NAME; substitute your GitHub account name for the whole string
For me, if instructions say
STA 9750 YOUR_GITHUB_ID Mini Project #00
I will type
STA 9750 michaelweylandt Mini Project #00
(no brackets)
Professional programming is at least half looking things up; at beginning stages, the fraction is even higher.
So it’s important to know how to see help the smart way:
R and its packages are no exception. Everything we will use in this class has solid documentation.Most programming challenges have been faced by somebody before, so Google it!
Tips:
R or rstats in your search queryStackOverflow for specific code questions; blogs and course materials are better for “big picture” questionsLLMs can do this semi-automatically for you, but advice about what to search still holds
Programming fora, like StackOverflow, are full of great resources. Most of what you need is already there. But if you need to ask a new question, make sure to create a minimal reproducible example
Make it easy for your helper to help you.
Pro-Tip: You’ll solve over 50% of your problems in trying to create an MRE.
This is just as true when asking LLMs for help!
Tips:
The reprex R package helps with this: see this talk.
For this class, rely on our discussion board!
You should now start thinking about Mini-Project #00
quarto (like my course site)
Due 2026-09-25 at 11:59pm ET
Course Project:
In the near future, you may want recommendations from your professors. Some advice on getting good recommendations:
Professional: For a job. Typically a brief survey or quick reference check.
Academic: For awards, fellowships, research positions, graduate admissions. A personalized letter from me.
I can usually do professional recommendations quickly (4-5 business days). Academic recommendations require a minimum of two weeks.
A strong recommendation is one that supplements what is already in your application.
The better I know you, the stronger a letter I can write.
You can ask if a professor can write you a strong recommendation. If they say they can write, but it may not be strong, consider asking elsewhere.
Ugly:
Student N took my class and received an A.
Bad:
Student N took my XYZ class and received an A. My XYZ class covers ABC at an advanced level and provides N a strong foundation for your program.
Good:
I first met student N in my XYZ class. She was an active participant in class, regularly attended my office hours, and regularly asked for additional advanced material. She had a remarkable final project in which she ABC. It is clear that her drive and passion for XYZ make her an excellent candidate for your fellowship.
Under some parts of US law, you have the right to see what letters for you I write unless you specifically waive that right.
Waive the right
Readers will assume you have read a non-confidential letter and discount whatever I say.
I will write a letter for any student who has passed one of my classes (C or higher) or is on track to do so.
No guarantee it is strong unless you ask. I understand that sometimes you are just trying to make sure you have enough.
Give me at least 3 weeks, ideally more. A rushed letter is a short and generic letter.
Send me:
Once a letter is written, it’s easy for me to update and re-use.
Help me help you.

Software Tools for Data Analysis
STA 9750
Michael Weylandt
Week 2 – Tuesday 2026-09-08, Thursday 2026-09-10
Last Updated: 2026-09-12 – STA 9750
Software Tools for Data Analysis
STA 9750
Michael Weylandt
Week 2 – Tuesday 2026-09-08, Thursday 2026-09-10
Last Updated: 2026-09-12 – STA 9750
Software Tools for Data Analysis
STA 9750
Michael Weylandt
Week 2 – Tuesday 2026-09-08, Thursday 2026-09-10
Last Updated: 2026-09-12 – STA 9750
STA 9750
Basic Software Tools for Data Analysis
Basic Software Tools for Data Analysis
Basic Software Tools for Data Analysis