steveyehtw's picture
Rename Lesson 25 to partner playtest
d6d6f79
Raw History Blame Contribute Delete
22.1 kB
{
"course_id": "2026Fall",
"title": "2026 Fall 進階專題",
"demo_class": "2026Fall進階專題日午",
"weeks": [
{
"id": "week01",
"lesson": 1,
"title": "任務管理器開發挑戰",
"project": "能力診斷",
"output": "文字版任務管理器",
"template": true
},
{
"id": "week02",
"lesson": 2,
"title": "消失的校徽",
"project": "校園謎案調查局",
"output": "探索地點與收集線索的文字案件",
"workspace_id": "week02",
"template": true
},
{
"id": "week03",
"lesson": 3,
"title": "線索會改變世界",
"project": "校園謎案調查局",
"output": "在原案件加入條件解鎖、證詞變化與多結局",
"workspace_id": "week02",
"template": false
},
{
"id": "week04",
"lesson": 4,
"title": "案件體驗升級",
"project": "校園謎案調查局",
"output": "在原案件完成互動、提示、測試與修正",
"workspace_id": "week02",
"template": false
},
{
"id": "week05",
"lesson": 5,
"title": "案件發布日",
"project": "校園謎案調查局",
"output": "原創短案件與線上展示",
"template": false
},
{
"id": "week06",
"lesson": 6,
"title": "領養一顆神祕蛋",
"project": "電子寵物進化實驗室",
"output": "可餵食、玩耍、休息的寵物原型",
"template": false
},
{
"id": "week07",
"lesson": 7,
"title": "寵物真的活起來",
"project": "電子寵物進化實驗室",
"output": "class 與 object 寵物",
"template": false
},
{
"id": "week08",
"lesson": 8,
"title": "你的選擇決定牠的進化",
"project": "電子寵物進化實驗室",
"output": "三條進化路線",
"template": false
},
{
"id": "week09",
"lesson": 9,
"title": "寵物小屋與圖鑑",
"project": "電子寵物進化實驗室",
"output": "動畫、存檔與圖鑑",
"template": false
},
{
"id": "week10",
"lesson": 10,
"title": "進化博覽會",
"project": "電子寵物進化實驗室",
"output": "可重新遊玩的完成版",
"template": false
},
{
"id": "week11",
"lesson": 11,
"title": "用亂數畫出第一件作品",
"project": "生成藝術玩具箱",
"output": "亂數生成畫面",
"template": false
},
{
"id": "week12",
"lesson": 12,
"title": "對稱、重複與規則之美",
"project": "生成藝術玩具箱",
"output": "萬花筒或魔法陣",
"template": false
},
{
"id": "week13",
"lesson": 13,
"title": "讓作品動起來",
"project": "生成藝術玩具箱",
"output": "粒子與軌跡動畫",
"template": false
},
{
"id": "week14",
"lesson": 14,
"title": "做成一台真的藝術機器",
"project": "生成藝術玩具箱",
"output": "參數、seed 與圖片匯出",
"template": false
},
{
"id": "week15",
"lesson": 15,
"title": "班級數位藝廊",
"project": "生成藝術玩具箱",
"output": "系列作品與線上展示",
"template": false
},
{
"id": "week16",
"lesson": 16,
"title": "Director's Cut 重製計畫",
"project": "精選作品重製",
"output": "選題與改進承諾",
"template": false
},
{
"id": "week17",
"lesson": 17,
"title": "Release Candidate",
"project": "精選作品重製",
"output": "通過驗收的上架版",
"template": false
},
{
"id": "week18",
"lesson": 18,
"title": "Demo Day",
"project": "精選作品重製",
"output": "線上作品、展示稿與回顧",
"template": false
},
{
"id": "week19",
"lesson": 19,
"title": "資料分析 I:公開資料與問題",
"project": "公開資料分析",
"output": "從公開資料選定自己的問題,能執行查詢並指出答案在哪個欄位。",
"workspace_id": "week19",
"template": true,
"guide": {
"goal": "從公開資料選定自己的問題,能執行查詢並指出答案在哪個欄位。",
"source_title": "教育部統計處|各級學校縣市別學生人數",
"source_url": "https://data.gov.tw/dataset/40121",
"source_note": "四週使用同一份課堂 CSV:104–114 學年度、22 個縣市、242 筆資料、15 個欄位。檔案已附在 week19 專案。",
"flow": [
{
"time": "0–20 分",
"title": "公開資料",
"body": "看三筆實際學生人數紀錄,確認年份、縣市與人數欄位。"
},
{
"time": "20–40 分",
"title": "下載與 CSV",
"body": "到官方頁面看 CSV 下載位置,確認課堂檔案在 data/students_by_county.csv,讀懂標題列。"
},
{
"time": "40–50 分",
"title": "選一個問題",
"body": "各自選定縣市、學年度與教育階段,寫下要比較什麼。"
},
{
"time": "50–60 分",
"title": "休息",
"body": "保存目前內容,休息 10 分鐘。"
},
{
"time": "60–80 分",
"title": "讀取並執行",
"body": "看 load_rows() 的用途,執行 main.py,核對讀入 242 筆資料與範例人數。"
},
{
"time": "80–95 分",
"title": "修改條件",
"body": "改查 114 學年度國中人數,核對前 3 名,再換成自己的條件。"
},
{
"time": "95–105 分",
"title": "AI 與欄位",
"body": "請 AI 指出題目所需欄位,到 CSV 檢查它是否存在。"
},
{
"time": "105–120 分",
"title": "保存個人進度",
"body": "把題目、來源與一個核對過的數字寫進 REPORT.md,存檔並提交。"
}
],
"checklist": [
"問題寫明年份、縣市或教育階段",
"資料名稱與官方網址已記錄",
"main.py 可以執行",
"至少在 CSV 找到一筆輸出的人數"
],
"ai_checkpoint": "把自己的題目和 CSV 欄位名稱交給 AI,請它指出所需欄位,再到原始表格確認。",
"submission": "問題寫明年份、縣市或教育階段、資料名稱與官方網址已記錄、main.py 可以執行、至少在 CSV 找到一筆輸出的人數",
"ai_note": "每人各自完成。允許使用外部 AI,保留實際使用與核對紀錄;沒有使用就如實註明。",
"question_bank": [
{
"group": "起步題",
"text": "114 學年度,哪些縣市的國小學生人數最多?"
},
{
"group": "起步題",
"text": "選一個縣市,104 到 114 學年度的國小學生人數是增加還是減少?"
},
{
"group": "起步題",
"text": "104 到 114 學年度,哪個縣市的國小學生人數變化最多?"
},
{
"group": "起步題",
"text": "114 學年度,選一個縣市,國小和國中學生人數差多少?"
},
{
"group": "挑戰題",
"text": "選一個縣市,哪兩個學年度的國中學生人數最多和最少?"
},
{
"group": "挑戰題",
"text": "114 學年度,哪個縣市的高中普通科學生人數最多?"
},
{
"group": "挑戰題",
"text": "104 到 114 學年度,哪個縣市的大專校院校本部學生人數變化比例最大?"
},
{
"group": "挑戰題",
"text": "114 學年度,哪個縣市的幼兒園與國小學生人數差距最大?"
}
],
"question_rules": [
"先挑一個數值欄,再加上一個學年度、縣市或教育階段作為比較條件。",
"問「多少、哪個較多、差多少、如何變化」;不要讓這張表替你猜原因或預測未來。",
"自訂資料使用公開、彙總的 CSV,留下來源、時間範圍、欄位和單位,不匯入個人資料。"
]
}
},
{
"id": "week20",
"lesson": 20,
"title": "資料分析 II:資料整理",
"project": "公開資料分析",
"output": "讀懂數字轉換與未知值的處理,實際核對三筆資料。",
"workspace_id": "week19",
"template": true,
"guide": {
"goal": "讀懂數字轉換與未知值的處理,實際核對三筆資料。",
"source_title": "教育部統計處|各級學校縣市別學生人數",
"source_url": "https://data.gov.tw/dataset/40121",
"source_note": "四週使用同一份課堂 CSV:104–114 學年度、22 個縣市、242 筆資料、15 個欄位。檔案已附在 week19 專案。",
"flow": [
{
"time": "0–25 分",
"title": "文字與數字",
"body": "重跑上週程式,練習文字相加、int()、strip() 與 replace()。"
},
{
"time": "25–45 分",
"title": "0 與未知",
"body": "比較 0、空字串與破折號,讀懂 parse_count() 的判斷。"
},
{
"time": "45–50 分",
"title": "測試輸入",
"body": "每人測試五種輸入,寫下回傳結果。"
},
{
"time": "50–60 分",
"title": "休息",
"body": "保存目前內容,休息 10 分鐘。"
},
{
"time": "60–75 分",
"title": "筆數與重複",
"body": "核對 242 筆、15 個欄位,分清不同學年度與真正重複的紀錄。"
},
{
"time": "75–95 分",
"title": "核對三筆",
"body": "各自到 CSV 找到三筆查詢結果,記下年份、縣市、欄位和人數。"
},
{
"time": "95–105 分",
"title": "解釋錯誤",
"body": "請 AI 解釋 int() 的轉換錯誤,用自己的程式測試一個例子。"
},
{
"time": "105–120 分",
"title": "整理紀錄",
"body": "完成資料處理與核對紀錄,重新執行並提交進度;負值檢查為選做題。"
}
],
"checklist": [
"測試五種字串輸入",
"沒有把未知值直接改成 0",
"核對三筆結果並記錄條件",
"保留原始 CSV,程式可重新執行"
],
"ai_checkpoint": "請 AI 解釋 int() 遇到空字串的錯誤,自己測試一個例子並記下回傳結果。",
"submission": "測試五種字串輸入、沒有把未知值直接改成 0、核對三筆結果並記錄條件、保留原始 CSV,程式可重新執行",
"ai_note": "每人各自完成。允許使用外部 AI,保留實際使用與核對紀錄;沒有使用就如實註明。"
}
},
{
"id": "week21",
"lesson": 21,
"title": "資料分析 III:比較與圖表",
"project": "公開資料分析",
"output": "用排名、差值或圖表回答自己的問題,說明計算方式。",
"workspace_id": "week19",
"template": true,
"guide": {
"goal": "用排名、差值或圖表回答自己的問題,說明計算方式。",
"source_title": "教育部統計處|各級學校縣市別學生人數",
"source_url": "https://data.gov.tw/dataset/40121",
"source_note": "四週使用同一份課堂 CSV:104–114 學年度、22 個縣市、242 筆資料、15 個欄位。檔案已附在 week19 專案。",
"flow": [
{
"time": "0–20 分",
"title": "人數增減",
"body": "先執行 L21 套版;讀檔、數字轉換與查詢函式已備好,不需先完成 L20。核對兩個原始人數,再做新北市示範與臺中市練習。已有專案者先暫存,再決定是否匯入套版。"
},
{
"time": "20–35 分",
"title": "百分比與排名",
"body": "說明變化百分比的分母,檢查人數排名;百分比計算可選做。"
},
{
"time": "35–50 分",
"title": "長條圖",
"body": "比較表格、圖表和 Console 文字圖,說明標題、單位、來源與從 0 開始的尺度。"
},
{
"time": "50–60 分",
"title": "休息",
"body": "保存目前內容,休息 10 分鐘。"
},
{
"time": "60–75 分",
"title": "程式計算",
"body": "用 get_count() 取出兩個學年度的人數,再計算差值。"
},
{
"time": "75–90 分",
"title": "修改自己的條件",
"body": "把例題的縣市或欄位改成自己的專題條件,核對結果。"
},
{
"time": "90–100 分",
"title": "解釋數字",
"body": "分清總數、比例和原因,改寫 AI 加入未證實原因的句子。"
},
{
"time": "100–120 分",
"title": "個人圖表",
"body": "完成一張圖或一組數字比較,寫下方法與說明,重新執行並提交。"
}
],
"checklist": [
"圖表或比較結果回答自己的問題",
"有原始數字和計算方式",
"圖表寫明學年度、對象、單位和來源",
"沒有把人數變化直接寫成原因"
],
"ai_checkpoint": "檢查 AI 是否把人數變化寫成原因,找出能從 CSV 核對的部分,改掉缺少證據的說法。",
"submission": "圖表或比較結果回答自己的問題、有原始數字和計算方式、圖表寫明學年度、對象、單位和來源、沒有把人數變化直接寫成原因",
"ai_note": "每人各自完成。允許使用外部 AI,保留實際使用與核對紀錄;沒有使用就如實註明。"
}
},
{
"id": "week22",
"lesson": 22,
"title": "資料分析 IV:分析報告",
"project": "公開資料分析",
"output": "完成個人報告,重新執行專案,親自說明一組數字與資料範圍。",
"workspace_id": "week19",
"template": false,
"guide": {
"goal": "完成個人報告,重新執行專案,親自說明一組數字與資料範圍。",
"source_title": "教育部統計處|各級學校縣市別學生人數",
"source_url": "https://data.gov.tw/dataset/40121",
"source_note": "四週使用同一份課堂 CSV:104–114 學年度、22 個縣市、242 筆資料、15 個欄位。檔案已附在 week19 專案。",
"flow": [
{
"time": "0–15 分",
"title": "完整報告範例",
"body": "看一份完整短報告,對照自己的 REPORT.md。"
},
{
"time": "15–30 分",
"title": "報告各段",
"body": "寫清問題、來源、方法、數字與解釋,練習修正文句。"
},
{
"time": "30–50 分",
"title": "重新執行",
"body": "每人重新打開專案,處理路徑、欄位或條件問題,核對報告數字。"
},
{
"time": "50–60 分",
"title": "休息",
"body": "保存目前內容,休息 10 分鐘。"
},
{
"time": "60–65 分",
"title": "AI 使用紀錄",
"body": "記錄一件實際使用與核對的事;未使用者如實填寫。"
},
{
"time": "65–85 分",
"title": "個人報告",
"body": "各自補完來源、方法、結果和資料還不能回答的事。"
},
{
"time": "85–90 分",
"title": "準備分享",
"body": "挑一張圖或一組數字,準備個人說明。"
},
{
"time": "90–115 分",
"title": "個人分享",
"body": "每人介紹問題、方法與答案,回答一個問題;依人數調整分享長度。"
},
{
"time": "115–120 分",
"title": "提交專題",
"body": "存檔,確認報告和程式一致,提交目前版本。"
}
],
"checklist": [
"REPORT.md 有問題、來源、方法與結果",
"程式可重跑,數字與報告一致",
"資料檔案與 DATA_SOURCE.md 都在",
"能親自說明數字與一段相關程式",
"AI 紀錄如實填寫;未使用也可以"
],
"ai_checkpoint": "檢查 AI 潤飾是否加入原文沒有的原因,保留確定的年份、對象和數字。",
"submission": "REPORT.md 有問題、來源、方法與結果、程式可重跑,數字與報告一致、資料檔案與 DATA_SOURCE.md 都在、能親自說明數字與一段相關程式、AI 紀錄如實填寫;未使用也可以",
"ai_note": "每人各自完成。允許使用外部 AI,保留實際使用與核對紀錄;沒有使用就如實註明。"
}
},
{
"id": "week23",
"lesson": 23,
"title": "拍賣會先玩起來",
"project": "荒謬商品拍賣會",
"output": "修改一件商品或一條規則,完成一輪可試玩的公開拍賣。",
"workspace_id": "week23",
"template": true,
"guide": {
"goal": "修改一件商品或一條規則,完成一輪可試玩的公開拍賣。",
"flow": [
{
"time": "0–15 分",
"title": "先玩一輪",
"body": "用 100 枚虛擬幣競標一件荒謬商品。先看得標與流標,再看程式。"
},
{
"time": "15–60 分",
"title": "改出你的版本",
"body": "執行套版,改商品、起標或最低加價;找同學測超額與最低價。"
},
{
"time": "60–120 分",
"title": "交換試玩",
"body": "兩三人一組輪流主持,挑一個規則解釋 if 如何判斷。"
}
],
"checklist": [
"能執行並完成一次開標",
"同學能玩出自己改的地方",
"測過一筆無效出價"
],
"submission": "能執行並完成一次開標、同學能玩出自己改的地方、測過一筆無效出價"
}
},
{
"id": "week24",
"lesson": 24,
"title": "公開與秘密出價對決",
"project": "荒謬商品拍賣會",
"output": "讓同一商品走完兩種規則,並能解釋成交價從哪裡來。",
"workspace_id": "week23",
"template": true,
"guide": {
"goal": "讓同一商品走完兩種規則,並能解釋成交價從哪裡來。",
"flow": [
{
"time": "0–20 分",
"title": "先預測",
"body": "同一件商品、買家與預算;先寫下哪一種可能成交較高。"
},
{
"time": "20–65 分",
"title": "兩種玩法",
"body": "秘密輪先寫紙條再輸入,公開輪輪流加價。兩輪重新分配虛擬幣。"
},
{
"time": "65–120 分",
"title": "比結果",
"body": "比較兩輪成交價,測平手或流標,分享出價時看到了什麼。"
}
],
"checklist": [
"兩種玩法都可結束",
"知道秘密出價不應讓旁人看到",
"能解釋一次觀察的限制"
],
"submission": "兩種玩法都可結束、知道秘密出價不應讓旁人看到、能解釋一次觀察的限制"
}
},
{
"id": "week25",
"lesson": 25,
"title": "夥伴試玩",
"project": "荒謬商品拍賣會",
"output": "完成一個夥伴能自己操作的拍賣展示,並講解一個程式判斷。",
"workspace_id": "week23",
"template": true,
"guide": {
"goal": "完成一個夥伴能自己操作的拍賣展示,並講解一個程式判斷。",
"flow": [
{
"time": "0–20 分",
"title": "自己試玩",
"body": "用 Console 和三位模擬買家練習,接著打開網頁版。"
},
{
"time": "20–75 分",
"title": "改一個地方",
"body": "換商品或模擬買家的出價上限,測空白、超額、正常成交與重新開始。"
},
{
"time": "75–120 分",
"title": "三分鐘展示",
"body": "請夥伴完成兩輪,再介紹一條規則與兩根長條,說明模擬與真人的差別。"
}
],
"checklist": [
"夥伴可以單人完成兩輪",
"結果圖以共同尺度表示虛擬幣",
"能說出自己改的規則與測試結果"
],
"submission": "夥伴可以單人完成兩輪、結果圖以共同尺度表示虛擬幣、能說出自己改的規則與測試結果"
}
}
]
}