Project Types
Course/Teaching
Simplified structure for teaching materials
Overview
The Course/Teaching type is designed for educators creating academic courses. It provides organized directories for slides, assignments, and course materials.
Directory Structure
my-course/
├── assignments/ # Student assignments
├── course_docs/ # Course documentation
├── data/ # Shared datasets
├── readings/ # Assigned readings
├── slides/ # Lecture presentations
├── framework.db # Metadata database
└── settings.yml # Course configuration
Optional directories available in the GUI: functions/, modules/, scripts/
Creating Course Content
Slides
Create lecture slides with Quarto RevealJS:
make_notebook("intro-to-r", subdir = "slides/week-01")
Assignments
Create assignment notebooks:
make_notebook("assignment-01", subdir = "assignments")
Course Documents
Create syllabi and schedules:
make_notebook("syllabus", subdir = "course_docs")
Configuration
Example settings.yml for a course:
default:
project_type: course
directories:
data: data
slides: slides
assignments: assignments
course_docs: course_docs
readings: readings
packages:
- name: dplyr
auto_attach: true
- name: ggplot2
auto_attach: true
- name: palmerpenguins
auto_attach: false
Organizing Content
By Week
slides/
├── week-01-introduction/
├── week-02-data-types/
├── week-03-data-wrangling/
└── week-04-visualization/
By Module
slides/
├── foundations/
├── data-manipulation/
└── visualization/
Teaching Workflow
1. Prepare Lectures
Create slides in slides/:
make_notebook("data-wrangling", subdir = "slides/week-03")
2. Create Assignments
Build assignments with instructions:
assignments/assignment-01/
├── instructions.qmd # Student-facing
└── solution.qmd # Answer key
3. Render Materials
Slides render to rendered/slides/, assignments to rendered/assignments/.
quarto render slides/week-01/lecture.qmd
Best Practices
Consistent Naming
Use consistent prefixes:
week-01-*, week-02-*, ...
assignment-01, assignment-02, ...
Reusable Functions
Enable and use functions/ for common code:
# functions/grading.R
calculate_grade <- function(scores, weights) {
sum(scores * weights) / sum(weights)
}