[PR #1542] [CLOSED] fix: close issues 1531, 1532, 1502, 1508 #8251

Closed
opened 2026-04-27 17:36:17 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/harvard-edge/cs249r_book/pull/1542
Author: @Shashank-Tripathi-07
Created: 4/25/2026
Status: Closed

Base: devHead: fix/close-issues-1531-1532-1502-1508


📝 Commits (1)

  • 158a2cf fix: close issues 1531, 1532, 1502, 1508

📊 Changes

36 files changed (+96 additions, -48 deletions)

View changed files

.codespellrc (+3 -0)
📝 interviews/vault/questions/tinyml/tinyml-0384.yaml (+14 -13)
📝 labs/vol1/lab_00_introduction.py (+1 -1)
📝 labs/vol1/lab_01_ml_intro.py (+1 -1)
📝 labs/vol1/lab_02_ml_systems.py (+1 -1)
📝 labs/vol1/lab_03_ml_workflow.py (+1 -1)
📝 labs/vol1/lab_04_data_engr.py (+1 -1)
📝 labs/vol1/lab_05_nn_compute.py (+1 -1)
📝 labs/vol1/lab_06_nn_arch.py (+1 -1)
📝 labs/vol1/lab_07_ml_frameworks.py (+1 -1)
📝 labs/vol1/lab_08_model_train.py (+1 -1)
📝 labs/vol1/lab_09_data_selection.py (+1 -1)
📝 labs/vol1/lab_10_model_compress.py (+1 -1)
📝 labs/vol1/lab_11_hw_accel.py (+1 -1)
📝 labs/vol1/lab_12_perf_bench.py (+1 -1)
📝 labs/vol1/lab_13_model_serving.py (+1 -1)
📝 labs/vol1/lab_14_ml_ops.py (+1 -1)
📝 labs/vol1/lab_15_responsible_engr.py (+1 -1)
📝 labs/vol1/lab_16_ml_conclusion.py (+1 -1)
📝 labs/vol2/lab_01_introduction.py (+1 -1)

...and 16 more files

📄 Description

Closes #1531, Closes #1532, Closes #1502, Closes #1508

fix(labs): bump mlsysim wheel ref 0.1.0 to 0.1.1 in all 33 labs

pyproject.toml was bumped to 0.1.1 in PR #1523 but the micropip.install() URLs in every lab still pointed to 0.1.0. This caused TestWheelConsistency and the WASM smoke test to fail on every subsequent PR. Bulk-replaced across all 33 labs in labs/vol1/ and labs/vol2/.

fix(ci): add .codespellrc to suppress false positive spell check failures

The codespell check has been failing on every PR because there was no ignore list. Added .codespellrc at the repo root:

  • Skips socratiq/src_shadow (vendored/compiled JS, not hand-written)
  • Whitelists: clos (Clos network topology), fpr (False Positive Rate), rin (ring buffer variable), ans, fo, curren (contributor name "Curren Iyer")

fix(staffml): correct tinyml-0384 KWS question

Option 3 distractor used a valid throughput approach (4 x 80 = 320 MFLOPS) then poisoned it with a false MHz=MFLOPS equivalence, which penalized students who reasoned correctly. Replaced with an unambiguously wrong distractor. Also:

  • Napkin math now shows both equivalent solution paths (latency and throughput)
  • common_mistake updated to flag the MHz vs MFLOPS confusion

fix(tinytorch): strip solution blocks when creating student notebooks

tito module start was creating notebooks from src/ verbatim via jupytext, including all working implementations between ### BEGIN SOLUTION / ### END SOLUTION markers. Students received solved notebooks instead of blank scaffolding.

_create_module_from_src now strips solution blocks and replaces them with raise NotImplementedError stubs before passing to jupytext. A _strip_solutions static method handles the stripping. Asset files alongside the source are copied to the temp dir so the notebook can still reference them.

Verified on module 01: 13 solution blocks stripped, 13 stubs inserted, 0 markers remaining.

Test plan

  • uv run --with pytest python -m pytest tests/ in mlsysim/ -- 363 passed
  • _strip_solutions verified directly on src/01_tensor/01_tensor.py
  • TestWheelConsistency will pass: all 33 labs now reference mlsysim-0.1.1
  • Codespell will pass: false positives suppressed via .codespellrc

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/harvard-edge/cs249r_book/pull/1542 **Author:** [@Shashank-Tripathi-07](https://github.com/Shashank-Tripathi-07) **Created:** 4/25/2026 **Status:** ❌ Closed **Base:** `dev` ← **Head:** `fix/close-issues-1531-1532-1502-1508` --- ### 📝 Commits (1) - [`158a2cf`](https://github.com/harvard-edge/cs249r_book/commit/158a2cfd4563cc0b6426fe426a8e5b2f9f7edefb) fix: close issues 1531, 1532, 1502, 1508 ### 📊 Changes **36 files changed** (+96 additions, -48 deletions) <details> <summary>View changed files</summary> ➕ `.codespellrc` (+3 -0) 📝 `interviews/vault/questions/tinyml/tinyml-0384.yaml` (+14 -13) 📝 `labs/vol1/lab_00_introduction.py` (+1 -1) 📝 `labs/vol1/lab_01_ml_intro.py` (+1 -1) 📝 `labs/vol1/lab_02_ml_systems.py` (+1 -1) 📝 `labs/vol1/lab_03_ml_workflow.py` (+1 -1) 📝 `labs/vol1/lab_04_data_engr.py` (+1 -1) 📝 `labs/vol1/lab_05_nn_compute.py` (+1 -1) 📝 `labs/vol1/lab_06_nn_arch.py` (+1 -1) 📝 `labs/vol1/lab_07_ml_frameworks.py` (+1 -1) 📝 `labs/vol1/lab_08_model_train.py` (+1 -1) 📝 `labs/vol1/lab_09_data_selection.py` (+1 -1) 📝 `labs/vol1/lab_10_model_compress.py` (+1 -1) 📝 `labs/vol1/lab_11_hw_accel.py` (+1 -1) 📝 `labs/vol1/lab_12_perf_bench.py` (+1 -1) 📝 `labs/vol1/lab_13_model_serving.py` (+1 -1) 📝 `labs/vol1/lab_14_ml_ops.py` (+1 -1) 📝 `labs/vol1/lab_15_responsible_engr.py` (+1 -1) 📝 `labs/vol1/lab_16_ml_conclusion.py` (+1 -1) 📝 `labs/vol2/lab_01_introduction.py` (+1 -1) _...and 16 more files_ </details> ### 📄 Description Closes #1531, Closes #1532, Closes #1502, Closes #1508 ## fix(labs): bump mlsysim wheel ref 0.1.0 to 0.1.1 in all 33 labs `pyproject.toml` was bumped to `0.1.1` in PR #1523 but the `micropip.install()` URLs in every lab still pointed to `0.1.0`. This caused `TestWheelConsistency` and the WASM smoke test to fail on every subsequent PR. Bulk-replaced across all 33 labs in `labs/vol1/` and `labs/vol2/`. ## fix(ci): add .codespellrc to suppress false positive spell check failures The codespell check has been failing on every PR because there was no ignore list. Added `.codespellrc` at the repo root: - Skips `socratiq/src_shadow` (vendored/compiled JS, not hand-written) - Whitelists: `clos` (Clos network topology), `fpr` (False Positive Rate), `rin` (ring buffer variable), `ans`, `fo`, `curren` (contributor name "Curren Iyer") ## fix(staffml): correct tinyml-0384 KWS question Option 3 distractor used a valid throughput approach (4 x 80 = 320 MFLOPS) then poisoned it with a false MHz=MFLOPS equivalence, which penalized students who reasoned correctly. Replaced with an unambiguously wrong distractor. Also: - Napkin math now shows both equivalent solution paths (latency and throughput) - `common_mistake` updated to flag the MHz vs MFLOPS confusion ## fix(tinytorch): strip solution blocks when creating student notebooks `tito module start` was creating notebooks from `src/` verbatim via jupytext, including all working implementations between `### BEGIN SOLUTION` / `### END SOLUTION` markers. Students received solved notebooks instead of blank scaffolding. `_create_module_from_src` now strips solution blocks and replaces them with `raise NotImplementedError` stubs before passing to jupytext. A `_strip_solutions` static method handles the stripping. Asset files alongside the source are copied to the temp dir so the notebook can still reference them. Verified on module 01: 13 solution blocks stripped, 13 stubs inserted, 0 markers remaining. ## Test plan - [x] `uv run --with pytest python -m pytest tests/` in `mlsysim/` -- 363 passed - [x] `_strip_solutions` verified directly on `src/01_tensor/01_tensor.py` - [x] `TestWheelConsistency` will pass: all 33 labs now reference `mlsysim-0.1.1` - [x] Codespell will pass: false positives suppressed via `.codespellrc` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-27 17:36:17 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/cs249r_book#8251