-
Notifications
You must be signed in to change notification settings - Fork 76
Meta: 00_introduction restructure — motivation chapter + 03_python_basics + 06_python_advanced #402
Open
Description
This issue is the single source of truth for the introductory-chapter restructure. Each row links to an atomic issue that does the actual work. Read this for the big picture, then click into the atomic issue you want to pick up.
Vision
00_introduction/ becomes a motivational chapter (why use computers for math; why floats are tricky). Python-language teaching moves to a new 03_python_basics/. Python-toolbox teaching (libraries, advanced idioms, case studies) moves to a new 06_python_advanced/.
End-state tree
00_introduction/ — motivation
00_introduction.ipynb— why we use computers to solve math problems10_floating_point.ipynb— kept; opens with the(2^64)vs uncountable-reals hook
03_python_basics/ — core Python language (split from 00/20_python_review)
10_numbers_operators·20_variables_functions·30_strings40_lists_tuples·50_dicts_sets·60_control_flow·70_file_io
06_python_advanced/ — Python toolbox + libraries + case studies
10_testing_debugging20_writing_modules30_comprehensions40_classes50_functional_programming(from00/30)55_pathlib_files(from00/30)60_numpy_basics(split from00/35)70_matplotlib_basics(split from00/35)80_circle_case_study(moved from00/40after content fix)90_pandas(merged from00/50+20/30)
Atomic issues — checklist
- Maintenance: migrate pylab → matplotlib.pyplot + numpy across notebooks (33 files) #390 — Maintenance: migrate
pylab→matplotlib.pyplot+numpy(33 notebooks) - Pedagogy: split 20_python_review into focused notebooks under 03_python_basics/ #391 — split
20_python_review→03_python_basics/ - Pedagogy: add testing & debugging notebook under 06_python_advanced/ #392 — testing & debugging notebook (
06/10) - Pedagogy: add 'writing your own module' notebook under 06_python_advanced/ #393 — writing your own module (
06/20) - Pedagogy: extract comprehensions into standalone notebook under 06_python_advanced/ #394 — comprehensions standalone (
06/30) - Pedagogy: add classes mini-notebook under 06_python_advanced/ #395 — classes mini-notebook (
06/40) - Pedagogy: reframe 00_introduction to motivation + floating-point hook #396 — reframe
00_introduction(motivation + floating-point hook) - Pedagogy: complete 00_introduction/40_how_to_draw_a_circle.ipynb (hint, solution, exercises) #397 — complete
40_how_to_draw_a_circle(hint + solution + exercises) - Pedagogy: merge 00_introduction/50_pandas + 20_probability/30_pandas → 06_python_advanced/90_pandas #398 — merge pandas (
00/50+20/30→06/90) - Pedagogy: move 00_introduction/30_python_review_2 → 06_python_advanced/{50_functional_programming, 55_pathlib_files} #399 — move
30_python_review_2→06/50+06/55 - Pedagogy: move 00_introduction/35_numpy_matplotlib → 06_python_advanced/{60_numpy_basics, 70_matplotlib_basics} #400 — move
35_numpy_matplotlib→06/60+06/70 - Pedagogy: move 00_introduction/40_how_to_draw_a_circle → 06_python_advanced/80_circle_case_study #401 — move
40_circle→06/80
Ordering constraints
- Pedagogy: complete 00_introduction/40_how_to_draw_a_circle.ipynb (hint, solution, exercises) #397 before Pedagogy: move 00_introduction/40_how_to_draw_a_circle → 06_python_advanced/80_circle_case_study #401 — fix circle content first, then move it.
- Pedagogy: extract comprehensions into standalone notebook under 06_python_advanced/ #394 before Pedagogy: move 00_introduction/30_python_review_2 → 06_python_advanced/{50_functional_programming, 55_pathlib_files} #399 — extract comprehensions before retiring
30_python_review_2. - Maintenance: migrate pylab → matplotlib.pyplot + numpy across notebooks (33 files) #390 before content rewrites that touch the same notebook (or do the pylab cleanup as part of the rewrite).
- Deletions are last:
00/30,00/35,00/40,00/50,20/30only get removed after their replacement(s) are in place and CI is green.
Open questions
- Is
06_python_advanced/overcrowded at 10 notebooks? Could split scientific-Python (60/70/80/90) into a future09_scientific_python/. Defer the decision until 06 is populated and we can judge. - pathlib placement:
03_python_basics/70_file_ioor06_python_advanced/55_pathlib_files? See Pedagogy: move 00_introduction/30_python_review_2 → 06_python_advanced/{50_functional_programming, 55_pathlib_files} #399 body for discussion. 00_introduction.ipynbsize: motivation chapter could stay tiny (10–20 cells) or grow into a "course tour." Trade-off in Pedagogy: reframe 00_introduction to motivation + floating-point hook #396 .
Why a meta issue
Each atomic issue stays focused on one notebook. This meta issue tracks the composition so:
- One read-once view of the end-state.
- Cross-cutting decisions (folder names, ordering) get one discussion thread.
- Anyone — including future contributors and scheduled agents — can see what's done and what's next.