NTT-learning/notebooks/COURSE_BLUEPRINT.ipynb

88 lines
3.1 KiB
Text

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"pedagogy": {
"role": "meta",
"difficulty": 1,
"kind": "orientation",
"title": "Why This Order Exists"
}
},
"source": "## META | difficulty 1 | Why This Order Exists\n\nThe course separates three ideas that are often blurred together:\n\n- the algebraic purpose of the NTT\n- the in-place butterfly dataflow\n- Kyber-specific implementation conventions\n"
},
{
"cell_type": "markdown",
"metadata": {
"pedagogy": {
"role": "mandatory",
"difficulty": 2,
"kind": "route",
"title": "Learning Staircase"
}
},
"source": "## MANDATORY | difficulty 2 | Learning Staircase\n\nThe supported staircase is:\n\n1. ordinary polynomial multiplication and convolution\n2. negacyclic multiplication\n3. a tiny toy NTT\n4. butterfly mechanics in isolation\n5. forward and inverse flow side by side\n6. Kyber-specific parameters and indexing\n7. real implementation patterns\n"
},
{
"cell_type": "markdown",
"metadata": {
"pedagogy": {
"role": "mandatory",
"difficulty": 2,
"kind": "structure",
"title": "Bundle Rhythm"
}
},
"source": "## MANDATORY | difficulty 2 | Bundle Rhythm\n\nTechnical bundles follow a consistent rhythm:\n\n- `lecture.ipynb` explains the idea carefully\n- `lab.ipynb` asks for predictions before execution\n- `problems.ipynb` checks retrieval and reflection\n- `studio.ipynb` compares implementation choices and debugging cues\n"
},
{
"cell_type": "markdown",
"metadata": {
"pedagogy": {
"role": "meta",
"difficulty": 1,
"kind": "constraints",
"title": "Route Constraints"
}
},
"source": "## META | difficulty 1 | Route Constraints\n\nRoute notebooks stay pure route notebooks.\n\n- no facultative detours here\n- no hidden competing learner route\n- every notebook ends with a visible handoff\n"
},
{
"cell_type": "markdown",
"metadata": {
"pedagogy": {
"role": "meta",
"difficulty": 1,
"kind": "handoff",
"title": "Next Notebook"
}
},
"source": "## META | difficulty 1 | Next Notebook\n\nNext notebook: `foundations/01_convolution_to_toy_ntt/lecture.ipynb`\n"
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"name": "python"
},
"ntt_learning": {
"title": "Course Blueprint",
"contract_version": "0.1",
"sequence": [
"notebooks/START_HERE.ipynb",
"notebooks/COURSE_BLUEPRINT.ipynb",
"notebooks/foundations/01_convolution_to_toy_ntt/lecture.ipynb",
"notebooks/foundations/01_convolution_to_toy_ntt/lab.ipynb",
"notebooks/foundations/01_convolution_to_toy_ntt/problems.ipynb",
"notebooks/foundations/01_convolution_to_toy_ntt/studio.ipynb"
]
}
},
"nbformat": 4,
"nbformat_minor": 5
}