Skip to content

Week 16 課程教材 - 0611 改為排序效能實驗室(timeit 分階段專題) - #1074

Merged
AugustChaoTW merged 1 commit into
mainfrom
wk16-0611-sort-lab
Jun 10, 2026
Merged

AugustChaoTW merged 1 commit into
mainfrom
wk16-0611-sort-lab

Conversation

@AugustChaoTW

Copy link
Copy Markdown
Contributor

內容

把 6/11 課堂從「進位計數獨立演練」改為四階段專題「排序效能實驗室」:

  1. Stage 1:用 TDD 開發可測試的 @timeit 計時飾詞(last_elapsed / records)
  2. Stage 2:實作 bubble / quick / merge 排序,用 @timeit 進行 benchmark(固定 seed、重複取平均、輸出 results.json)
  3. Stage 3:加速實驗——sorted() 列為 baseline,Cython 化或演算法優化擇一,加速版須通過同一組正確性測試
  4. Stage 4:matplotlib 畫實驗結果圖(log scale)+ 報告解讀

流程要求

  • 每階段 test:(紅燈)→ feat:(綠燈)兩個 commit,共八個,git log --reverse 可稽核
  • 課堂完成 Stage 1–2 並開 PR;Stage 3–4 課後補 push,6/17(三)前完成
  • 納入作業成績(評分表見教案)

檔案異動

  • 新增 0611-sort-lab.md0611-sort-starter/(test_timing.py / test_sorts.py 紅燈骨架,已驗證全紅)
  • 移除舊 0611-starter/(進位計數);0611-solo-drill.md 保留為備用教案
  • 更新 week-16 README 與 in_class/README 連結與時程

⚠️ CI(submission-policy-check)只放行學生 solutions 路徑,本 PR 為課程教材更新,檢查必紅,請用 admin merge。

🤖 Generated with Claude Code

- 新增 0611-sort-lab.md:四階段專題(timeit 飾詞 → bubble/quick/merge
  排序評估 → 加速實驗(Cython/演算法優化)→ matplotlib 實驗圖表)
- 新增 0611-sort-starter/:test_timing.py、test_sorts.py 紅燈骨架
- 每階段強制 test:(紅)→ feat:(綠)commit,共八個,納入作業成績
- 移除舊 0611-starter(進位計數);0611-solo-drill.md 保留為備用教案,
  改為自行建立工作目錄
- 更新 week-16 README 與 in_class/README 的 6/11 連結與時程(6/17 前補完)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 10, 2026 15:29
@AugustChaoTW
AugustChaoTW merged commit 7d869b9 into main Jun 10, 2026
1 of 2 checks passed
@AugustChaoTW
AugustChaoTW deleted the wk16-0611-sort-lab branch June 10, 2026 15:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

本 PR 將 Week 16 的 6/11 課堂內容由「進位計數獨立演練」調整為四階段專題「排序效能實驗室」,並同步更新課程文件連結與 starter 材料,讓學生能以 TDD 流程完成 @timeit、排序實作、效能量測、加速與視覺化。

Changes:

  • 更新 Week 16 與 in_class README:6/11 改為「排序效能實驗室」,並加入 Stage 3–4 的課後補交與 6/17 截止說明。
  • 新增 6/11 專題教案 0611-sort-lab.md 與新的 starter 0611-sort-starter/(Stage 1/2 測試紅燈骨架)。
  • 移除舊的 0611-starter/(進位計數 starter),並將 0611-solo-drill.md 調整為不提供 starter、保留為備用自練教案。

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
weeks/week-16/README.md 更新 6/11 課堂主題與評分/時程資訊,反映排序效能專題安排
weeks/week-16/in_class/README.md 更新 6/11 連結與課堂流程描述,並標示舊教案為備用
weeks/week-16/in_class/0611-starter/test_carry_counter.py 移除舊進位計數測試骨架(舊 starter 一部分)
weeks/week-16/in_class/0611-starter/README.md 移除舊進位計數 starter 說明文件
weeks/week-16/in_class/0611-sort-starter/test_timing.py 新增 Stage 1 @timeit 測試紅燈骨架
weeks/week-16/in_class/0611-sort-starter/test_sorts.py 新增 Stage 2 三種排序共用測試紅燈骨架(subTest 設計提示)
weeks/week-16/in_class/0611-sort-starter/README.md 新增新專題 starter 使用方式與規格速查
weeks/week-16/in_class/0611-sort-lab.md 新增 6/11 四階段專題完整教案(產出、時程、評分與規格)
weeks/week-16/in_class/0611-solo-drill.md 將備用教案改為「不提供 starter、從空目錄建立」的指引

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread weeks/week-16/README.md
> 本週兩題均進入期末考 **B 區候選池(不公開)**。
> B 區範圍是 6/3 ~ 6/18 的週三、週四課堂題——**缺這兩堂,B 區就少一半。**
> 6/10 題目進入期末考 **B 區候選池(不公開)**;6/11 專題的 timeit 與排序屬 in-class 範圍
> B 區範圍是 6/3 ~ 6/18 的週三、週四課堂題——**缺課,B 區就少一塊。**
## starter 檔
## 工作目錄

本教案不提供 starter,自己建立(這也是考場上的第一步):
Comment on lines +97 to +98
從空的 `test_carry_counter.py` 開始:先補 ≥3 個 test case(含 edge case 與例外案例)、
跑紅燈、commit,再建立 `carry_counter.py`。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants