How to organize course materials: one folder per week
Organize a course as one folder per course, one numbered folder per week inside it, and inside each week the deck, its images and its own readings. The syllabus, the course-wide readings and a short context file live at the course root. Use plain text for anything you write and lowercase, dash-separated names for everything. That layout sorts correctly, searches in one command and copies to next term as a unit.
This guide describes the layout, the naming rules, where readings go, what a term boundary looks like, and how tools that understand the layout (git, an assistant) benefit from it.
The layout
courses/
sources/ readings every course cites
os-fall-2026/
syllabus.md
context.md what the course is, who the students are, house rules
sources/ readings this course cites
week-01/
week-01-slides.md
week-01-handout.md
week-01-questions.md
assets/ images the deck uses
sources/ readings only this week cites
week-02/
…
os-spring-2027/ next term, copied from the folder above
Three levels, and each file is where a stranger would look for it.
Naming rules
- Lowercase, digits, dots and dashes. No spaces, no capitals:
week-03, notWeek 3. Every tool, every shell and every URL is happy. - Zero-padded numbers.
week-01…week-14sort correctly everywhere;week-1sorts afterweek-10. - The unit word matches how you teach. Weeks for a weekly course, sessions for a short course, modules for a self-paced one, days for a workshop. Pick one and keep it.
- The file says what it is.
week-03-slides.md,week-03-handout.md. A folder of twelvedeck.mdfiles is unsearchable by name. - Term in the course folder name.
os-fall-2026, so two terms can sit side by side.
Where the readings go
Readings are the reason the layout has three sources/ folders:
| Folder | Holds | Cited by |
|---|---|---|
courses/sources/ |
the textbook chapters and papers several courses use | any course |
os-fall-2026/sources/ |
the course's reading list | any week of the course |
week-03/sources/ |
a paper only that week uses | that week |
Put a reading at the narrowest level that uses it. It is then obvious what a week depends on, and what a course would lose if a reading were dropped.
Text, not binaries
Write decks, handouts, questions and the syllabus as Markdown. The reasons are practical: a search across the whole course is one command; a change between terms is a diff; an assistant can read and edit the files; and nothing is locked in an application. Export to PDF or PPTX when a student or a colleague needs that, from the text.
The term boundary
At the end of a term, the course folder is done. Do not edit it again. Next term is a copy with a new name (os-spring-2027), re-dated, and edited week by week against the old one; updating a course for next semester is that routine. The old folder stays as the record.
Git, optionally
The layout above works as a plain folder. Put it in git and you get history and a diff between terms for free; ignore the exported PDFs and the OS files. One repository per course is the simplest; one repository for all courses works if the sources are yours to share.
Tools that know the layout
A tool that understands "course, unit, deck, sources" can do things a file manager cannot: create the next week with its files, re-date every deck for a new term, compare two terms unit by unit, index the readings at the right scope and cite them.
Lecture Studio uses this layout as its library: a course is a folder with studio.json, syllabus.md, a context file and sources/; each unit is a numbered folder with the deck, an optional instructor guide, assets/ and its own sources/; the library root has a sources/ folder shared by every course. The unit word (week, session, module, lecture, day, part) is a course setting. Readings are indexed per scope and cited by the assistant, a new term copies and re-dates the course, and git is a bar at the bottom of the workspace when the folder is a repository. Everything stays plain files. The app runs on macOS 15 or later; the assistant needs an Oberik project key.
FAQ
How should I name lecture files?
Lowercase, digits and dashes, zero-padded numbers, and the kind of file in the name: week-03-slides.md, week-03-handout.md.
Where should I keep the readings for a course?
In a sources/ folder at the narrowest level that uses them: shared across courses, per course, or per week.
Should each week have its own folder?
Yes. A week's deck, images, handout, questions and readings in one folder is what makes a week movable, comparable and deletable as a unit.
How do I reuse the course folder next term?
Copy it under a new name, re-date the weeks, and edit against the old copy. Keep the old folder unchanged.