mirror of
https://github.com/saymrwulf/NTT-learning.git
synced 2026-05-14 20:47:53 +00:00
master
| notebooks | ||
| ntt_learning | ||
| scripts | ||
| tests | ||
| tools | ||
| .gitignore | ||
| AGENT_CONTEXT.md | ||
| pyproject.toml | ||
| README.md | ||
NTT-learning
NTT-learning is a local-first, notebook-first course repo for understanding the Number Theoretic Transform in the context of Kyber.
The project is built around one supported learner route:
notebooks/START_HERE.ipynbnotebooks/COURSE_BLUEPRINT.ipynbnotebooks/foundations/01_convolution_to_toy_ntt/lecture.ipynbnotebooks/foundations/01_convolution_to_toy_ntt/lab.ipynbnotebooks/foundations/01_convolution_to_toy_ntt/problems.ipynbnotebooks/foundations/01_convolution_to_toy_ntt/studio.ipynb
The current build intentionally starts with convolution, negacyclic folding, a tiny toy NTT, and butterfly mechanics before any Kyber-specific implementation details.
Notebook Contract
Visible notebook cells follow an explicit contract:
METAcells provide route, objective, pacing, and handoff guidance.MANDATORYcells are the official walkthrough.FACULTATIVEcells are optional extensions only.
Difficulty is reserved as follows:
1-3for mandatory cells4-10for facultative cells
Route notebooks stay pure route notebooks. They contain META and MANDATORY cells only.
Local Operations
All repo-local operations live in scripts/:
scripts/bootstrap.shscripts/start.shscripts/stop.shscripts/restart.shscripts/status.shscripts/reset-state.shscripts/validate.sh
Typical first run:
scripts/bootstrap.sh
scripts/validate.sh
scripts/start.sh
Notes
- The repo uses a local
.venv. - Validation is designed to work with the standard library first, so structure and notebook execution checks can run before richer notebook tooling is installed.
- JupyterLab is declared in
pyproject.tomland installed byscripts/bootstrap.sh.