INSTRUCTORS.md
This file is for instructors and maintainers of the DataFun project series. Students do not need to read this file to complete assignments.
Its purpose is to explain why the repository is structured the way it is, and to document policies that keep course projects consistent, repeatable, and low-friction.
Instructional Intent
This repository is a teaching template, not a production system.
Design priorities are:
- clarity and stability
- repeatability across projects
- professional habits with minimal cognitive load
- useful tools that behave the same on Windows, macOS, and Linux
Anything that increases confusion, noise, or maintenance burden is intentionally avoided.
Workflow Consistency Policy
All DataFun repositories use the same three-phase workflow:
- Set Up Machine (once per machine)
- Set Up Project (once per repository)
- Daily Workflow (repeated each session)
Commands, ordering, and expectations are intentionally uniform across projects so students can focus on learning Python, not relearning tooling.
Tooling Philosophy
This project models modern, professional Python practice using:
uvfor Python versioning and dependency managementsrc/layout for import clarity- automated formatting and checks where appropriate
- GitHub for version control and collaboration
Tools are included to model good practice, regardless of the project focus.
Dependency and Update Policy
- Security alerts and fixes are enabled to model responsible maintenance.
- Automatic version update
pull requests (PR)may be disabled in downstream repos to reduce noise and confusion. - Configuration lives in (
pyproject.tomland.github/dependabot.yml) so behavior is explicit and reproducible.
Keywords and Metadata Policy
To prevent drift across systems, metadata responsibilities are intentionally separated:
- CITATION.cff - Canonical source of keywords for citation, indexing, and scholarly use.
- GitHub repository topics - A small, curated, search-oriented subset of keywords.
- SE_MANIFEST.toml - Structural metadata only; keywords are omitted or kept intentionally broad.
Policy: CITATION.cff is the canonical source of keywords; GitHub topics are a curated subset,
and SE_MANIFEST.toml omits keywords to prevent drift.
Troubleshooting Placement
Critical blocking issues (for example, getting stuck at the >>> Python prompt)
must appear in the root README.md, not only in documentation.
When to Change This Template
Changes should be made when they:
- reduce confusion
- improve cross-platform reliability
- strengthen alignment with professional practice
- apply uniformly across related projects
Avoid changes that add novelty without instructional value.
Maintainer Note
This file exists to avoid having to reverse-engineer decisions later.
If you are reading this while teaching: you are encouraged to reuse, adapt, and extend this template across courses.