Spaces:
Running
Running
Download classroom_data/course.json from Telearn/Project_Demo: direct link, hf CLI and curl.
- Browser
- Download file 22.1 kB
-
https://huggingface.co/spaces/Telearn/Project_Demo/resolve/main/classroom_data/course.json
- Command line
-
hf download hf://spaces/Telearn/Project_Demo/classroom_data/course.json
-
curl -L -o course.json https://huggingface.co/spaces/Telearn/Project_Demo/resolve/main/classroom_data/course.json
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": "夥伴可以單人完成兩輪、結果圖以共同尺度表示虛擬幣、能說出自己改的規則與測試結果" | |
| } | |
| } | |
| ] | |
| } | |