Contributing¶
Maintainer material
This section is for people editing the course, not for students learning from it. Students do not need anything here. If you only want to learn project management, go to Start Here.
This page explains how to propose a change to the course. It is the short version; the
repository's
CONTRIBUTING.md
has the full process.
Who contributes¶
| Contributor | Typical contribution |
|---|---|
| Students | Typos, unclear explanations, broken links, "this answer seems wrong" |
| Teaching assistants | Lab improvements, extra worked examples, quiz questions |
| Instructors | New lessons, case studies, course mapping, assessment design |
| Maintainers | Structure, tooling, deployment, review |
Students and TAs: do not be put off by the tooling. A correction to one sentence is a genuinely valuable contribution, and you do not need to understand the build to make one. The only thing you must respect is the accuracy rule below.
The one hard rule: accuracy¶
This course makes a commitment that shapes every edit:
No fabricated references, standards, statistics, or citations.
In practice:
- Do not add a statistic, quotation, or citation you cannot verify against a real source.
- Cite real sources by their canonical title and publisher — the list in Standards & Further Reading shows the format.
- Where a real figure would normally be quoted, either omit it or describe the finding qualitatively. "Estimates are frequently optimistic" is fine; an invented percentage is not.
- Label any synthetic or illustrative scenario as illustrative. The case study template has the required wording.
- Keep technical statements about tools, standards, and methods correct as of the date of writing.
A change that breaks this rule will not be merged, however good it otherwise is.
Ways to contribute¶
The easiest and most useful contribution. Fix a typo, clarify a sentence, repair a link, or propose a better model answer. One file, one change.
Author a lesson, lab, case study, or quiz. Start from the matching template in
Templates and follow the module anatomy in
ARCHITECTURE.md.
Navigation, accessibility, layout, or the build itself. Read Local Development first, and keep the site lightweight — this is a static documentation site, not an application.
Where things live¶
| Path | What it is |
|---|---|
docs/course-content/ |
The 13 teaching modules |
docs/labs/, docs/case-studies/ |
Practical work and analysis |
docs/templates/ |
Artefact and authoring templates |
docs/self-assessment/ |
Quizzes, with answers hidden |
docs/reference/ |
Glossary and curated sources |
docs/instructor/ |
Instructor-only material |
docs/contributing/ |
This section |
mkdocs.yml |
Navigation lives here. A page not listed here triggers a build warning |
tools/ |
Local validators |
.github/workflows/ |
Continuous integration and publishing |
Project documentation for maintainers sits at the repository root: ARCHITECTURE.md,
IMPLEMENTATION-PLAN.md, NAMING-CONVENTIONS.md, and CONTRIBUTING.md.
Workflow in brief¶
- Create a branch:
fix/schedule-typo,content/risk-lessons,docs/glossary-additions. - Make the change.
- If you added or renamed a page, add it to
navinmkdocs.yml. - Run the checks:
python tools/validate-structure.py. - Open a pull request explaining what changed and why.
Run the full check suite before opening a pull request:
python tools/validate-structure.py # structure, naming, internal links
python tools/check-curriculum.py # 32-session curriculum integrity
mkdocs build --strict # authoritative build
See Local Development for how to run these, and Deployment for how a merged change reaches the website.
Style¶
- Follow the naming rules in
NAMING-CONVENTIONS.md. - Write student-facing content in the second person ("you will build…").
- One idea per page. Link to the canonical page instead of duplicating it.
- Prefer a Mermaid diagram over an image — diagrams stay readable in the repository and in a diff.
- Use the standard "At a glance" header on every lesson, lab, case study, and assessment.