Skip to content

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

CPSC 221

The main feature of this course template is a landing page with a schedule table allowing students to navigate to all the course materials. Website is automatically deployed using GH Actions to GitHub Pages.

This site is based on the course-template used by UBC-CS/ai-100.

Edit the template

There are a few things you need to do to adapt this template for your course.

  1. In _variables.yml, fill in the <TODO-...> placeholders — course code/title/term/dates, instructor contact, building/room, and links (Canvas, PrairieLearn, etc.). Variables are used across the entire Quarto project using the shortcode {{< var <key> >}} (reference sub-keys with ., e.g. course.code; more details). course.monday-of-the-first-term-week must be set (format YYYY-MM-DD) since it's used to calculate dates in the schedule table.

  2. The _quarto.yml file controls Quarto project settings including website options (such as navigation). Fill in the <TODO-...> sidebar resource links.

  3. To enable the schedule table, provide week numbers and day of the week for each unit in /data/schedule.csv.

  4. Any extra resources that aren't Quarto documents (e.g. lecture recordings, PrairieLearn links) go in /data/additional-resources.csv.

  5. index.qmd (syllabus) and schedule.qmd still contain <!-- TODO --> markers where CPSC 221-specific content needs to be written in.

Website notes

The course schedule is dynamically generated from the files in the directories pre-activities, activities, slides and summaries using R (specifically, render_schedule() in /R/render-schedule.csv). Having documents organized this way allows them to be formatted with _metadata.yml files in their directories.

  • There are six different types of <unit>s: part, week, lecture, discussion, potw and exam.
  • There are the following <types> of resources: summaries, pre-activities, activities, slides, recording, practice and link.
  • All resources belonging together have a unique <id> consisting of their <unit> followed by a two-digit number, e.g., lecture-01.
  • Files belonging to one unit should be named following the pattern: <id>_<type>.
  • id is a unique identifier to join resources for all related resources to generate the schedule table.
  • The titles of part documents are used as headings in the course schedule.

Setup

Quarto and R need to be installed locally to render the site (quarto render or quarto preview). Python dependencies are managed with uv; R dependencies with renv.

Different versions of the website are rendered to different subdirectories by defining Quarto project profiles. To render a profile, it has to be added to the GitHub Actions step (.github/workflows/main.yml).

Target audienceQuarto project profile(s)Website subdirectoryContentLesson plans
Studentstudent/Do not show future weeksNo
Student with accessibility needsstudent,access/accessDo not show future weeksNo
Instructorinstructor/instructorAllYes
Teaching assistant (TA)ta/taAllYes
Coordinatorcoordinator/coordinatorAllYes

Attribution

The course template can be found at https://github.com/stephan-koenig/course-template and is based on:

Some slides design was adapted from:

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

Generated from UBC-CS/cpsc203