kangwonlee / kangwonlee/nmisp

Meta: 00_introduction restructure — motivation chapter + 03_python_basics + 06_python_advanced

Open
#402 1 comment 0 reactions 0 assignees View on GitHub
pedagogy
Dominant language
Jupyter Notebook
Stars
12
Forks
76
PR merge metrics
No merged PRs in 30d

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 problems
- `10_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_strings`
- `40_lists_tuples` · `50_dicts_sets` · `60_control_flow` · `70_file_io`

### `06_python_advanced/` — Python toolbox + libraries + case studies
- `10_testing_debugging`
- `20_writing_modules`
- `30_comprehensions`
- `40_classes`
- `50_functional_programming` (from `00/30`)
- `55_pathlib_files` (from `00/30`)
- `60_numpy_basics` (split from `00/35`)
- `70_matplotlib_basics` (split from `00/35`)
- `80_circle_case_study` (moved from `00/40` after content fix)
- `90_pandas` (merged from `00/50` + `20/30`)

## Atomic issues — checklist

- [ ] #390 — Maintenance: migrate `pylab` → `matplotlib.pyplot` + `numpy` (33 notebooks)
- [ ] #391 — split `20_python_review` → `03_python_basics/`
- [ ] #392 — testing & debugging notebook (`06/10`)
- [ ] #393 — writing your own module (`06/20`)
- [ ] #394 — comprehensions standalone (`06/30`)
- [ ] #395 — classes mini-notebook (`06/40`)
- [ ] #396 — reframe `00_introduction` (motivation + floating-point hook)
- [ ] #397 — complete `40_how_to_draw_a_circle` (hint + solution + exercises)
- [ ] #398 — merge pandas (`00/50` + `20/30` → `06/90`)
- [ ] #399 — move `30_python_review_2` → `06/50` + `06/55`
- [ ] #400 — move `35_numpy_matplotlib` → `06/60` + `06/70`
- [ ] #401 — move `40_circle` → `06/80`

## Ordering constraints

- **#397 before #401** — fix circle content first, then move it.
- **#394 before #399** — extract comprehensions before retiring `30_python_review_2`.
- **#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/30` only get removed after their replacement(s) are in place and CI is green.

## Open questions

1. **Is `06_python_advanced/` overcrowded** at 10 notebooks? Could split scientific-Python (60/70/80/90) into a future `09_scientific_python/`. Defer the decision until 06 is populated and we can judge.
2. **pathlib placement**: `03_python_basics/70_file_io` or `06_python_advanced/55_pathlib_files`? See #399 body for discussion.
3. **`00_introduction.ipynb` size**: motivation chapter could stay tiny (10–20 cells) or grow into a "course tour." Trade-off in #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.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.