Repository layout¶
Everything for one chapter lives in one folder. The deck, its compiled PDF, its figures and the companion lab notebook sit side by side, so teaching or adapting a chapter means opening a single directory rather than tracking one file across two trees. The advanced modules and the projects follow the same shape.
.
├── Chapters/ # one folder per ISLP chapter — deck + lab together
│ ├── README.md # deck guide: design, exercise counts, lecture plan
│ ├── chapter_NN/
│ │ ├── chapter_NN.tex # deck source
│ │ ├── chapter_NN.pdf # compiled deck (committed)
│ │ ├── chapter_NN_lab.ipynb # companion lab, with stored outputs
│ │ ├── images/ # matplotlib figures used by the deck
│ │ └── make_figures.py # regenerates them, where a deck ships one
│ └── Advanced/ # nine optional self-study modules, same shape
│ ├── README.md
│ ├── STYLE_DECK.md # the house style, distilled, for a new module
│ ├── STYLE_NOTEBOOK.md
│ └── advanced_NN_topic/
│ ├── advanced_NN_topic.tex
│ ├── advanced_NN_topic.pdf
│ ├── advanced_NN_topic_lab.ipynb # deck, PDF, lab, figures — as above
│ ├── images/
│ └── make_figures.py
├── Projects/ # six short projects: a decision on real data
│ ├── README.md
│ └── project_N_slug/
│ ├── README.md # the brief the student reads
│ ├── project_N_starter.ipynb # Colab-ready scaffolding
│ └── SOLUTION_NOTES.md # expected findings, the trap, marking guide
├── Teaching_Guide/ # instructor kit: plan, index, checklist, handouts
│ ├── semester_plan.md # the eleven sessions on one page
│ ├── slide_index.md # generated: sections, exercises, page numbers
│ ├── before_class.md # the ten-minute pre-lecture checklist
│ ├── runsheets/ # lecture_NN.md + module_aN_*.md — git-ignored (assessment)
│ ├── handouts/ # printable 2-up decks — build output
│ ├── make_index.py # generates slide_index.md from the compiled PDFs
│ ├── check_decks.py # deck health: page counts, frames that overrun
│ ├── check_runsheets.py # validates every runsheet page reference
│ └── check_notebooks.py # re-executes notebooks, diffs stored outputs
├── Mock_Exams/ # eight papers — git-ignored (assessment material)
├── ALL CSV FILES - 2nd Edition/ # course datasets (statlearning.com)
├── docs/ # this documentation (Sphinx)
├── Source_Material/ # copyrighted book PDFs & figure banks — git-ignored
├── Makefile # one-command rebuild: figures, decks, index, handouts
├── requirements.txt # what the notebooks need (deliberately loose)
├── constraints.txt # the exact build that reproduces the stored outputs
├── CITATION.cff # how to cite these materials
└── README.md
What is and isn’t committed¶
Committed |
Deck LaTeX sources and compiled PDFs, notebooks with stored outputs, datasets, project briefs and starters, this documentation |
Git-ignored |
|
Compiled deck PDFs are committed on purpose: a colleague should be able to clone the repository and teach from it without a TeX installation. The exams are the exception — publishing worked solutions to a public repository would make them useless as assessment.
Naming conventions¶
Chapter numbers always follow ISLP, zero-padded to two digits (
chapter_04), so slides, labs and datasets line up.chapter_00/chapter_00bhold the two precourse decks. The sequence stops after 08 and has gaps at 09 and 10: chapters 09–13 keep their decks and labs but live underAdvanced/as self-study modules A5, A9, A6, A8 and A7, soChapters/chapter_*globs to the eight taught chapters plus the two precourse decks and nothing else.Every file in a chapter folder is named for that folder, so a path is self-describing and a glob is unambiguous:
chapter_04/chapter_04.tex,chapter_04/chapter_04_lab.ipynb. The build scripts rely on this — they find decks withChapters/chapter_*/chapter_*.texand labs withChapters/chapter_*/chapter_*_lab.ipynb.Exam folders carry
Mockin the name and are keyed to the chapter they follow (Mock_Exam_2_after_Chapter_06), never to a date or a session number: the calendar can shift, and two of the three chapters span two sessions, so a session number would be ambiguous. This matches the checkpoints in The course at a glance and Mock exams. Every paper also repeatsMOCK EXAMin a footer on every page and in its PDF title, so a single loose sheet cannot be mistaken for the real examination.Exam PDFs use
Title_Case, their LaTeX sourcessnake_case— the-jobnameargument in the build command is what maps one to the other.