Course:115-1/物件導向程式設計
課程概述 Course Overview
整門課就是一個專案:「後未來動物園」。人類消失之後,地球會長出怎樣的生物?牠還是碳基生物嗎?靠什麼存活?每位學生培育自己的物種,從世界觀研究、物種設定,一路做到透過程式讓牠活起來,會動、會繁衍、成群、對觀眾有反應,學期末全班的物種聚合成一座動物園公開展演,你以該物種首席研究員的身分導覽,並回答關於牠的任何問題。
課程以里程碑 M0 到 M6 為主軸,搭配每週四上課的 16 週進度表,讓你知道每次上課做什麼、每一站何時截止。每次上課三小時,作品主要在課外推進,課堂時間拿來討論與解決問題,每週都有課前準備(看、讀、寫、帶),老師的講解看大家帶來的問題再補充。零考試、不考程式,評量看三件事:你怎麼思考牠的生命、做得多完整、最後呈現出什麼。方法論主軸是 AI 素養與研究先行工作流:動手前先讓你的 AI 深度研究、比較做法與工具、查證來源,AI 是機率性的,會一本正經地錯,驗證永遠是你的工作。
里程碑 Milestones
里程碑順序固定,下表是本學期的週次、全班同步的站點與各站截止時間。「上課前」指當天 15:30 上課開始之前。
| 里程碑 | 主題 | 交付 | 站點 | 週次 | 截止 |
|---|---|---|---|---|---|
| M0 裝備 | 建好自己的 AI 工作流,並親眼看過 AI 出錯 | m0-outfit 四件套(會呼吸的圓、AI 出錯截圖、反思與揭露)+AGENTS.md 三條自己的規則 | — | 第 1–2 週(9/10、9/17) | 先不收,什麼時候收另行公告 |
| M1 世界 | 沒有人類之後的地球,世界觀研究 | 10/1 世界分享(約三分鐘,形式不限,重點是自己的想法;完整的世界觀研究報告選做) | 世界分享與確認 | 第 3–4 週(9/24、10/1) | 10/1 上課分享 |
| M2 物種 | 牠是什麼、憑什麼在你的世界活下來 | 物種設定書+會動的雛形+物種簡報(三分鐘) | 物種簡報與檢核 | 第 5–6 週(10/8、10/15) | 10/15 上課前 |
| M3 個體 | 讓牠活起來,行為對得上設定書 | 活的個體(可執行)+發表簡報(三分鐘) | 物種發表會(期中) | 第 7–10 週(10/22–11/12) | 11/12 上課前 |
| M4 族群 | 演化與變異,一隻到一群,族群才是生態 | 族群生態 | — | 第 11–12 週(11/19、11/26) | 12/3 上課前 |
| M5 棲地 | 給族群一個世界,觀眾透過鏡頭走進來 | 可互動的棲地展示 | — | 第 13–14 週(12/3、12/10) | 12/17 上課前 |
| M6 開園 | 後未來動物園公開展演與導覽 | 公開網址+導覽簡報(三分鐘) | 開園 | 第 15–16 週(12/17、12/24) | 12/24 開園前交作品與導覽簡報,反思與 AI 揭露當天 23:59 前補齊 |
每站一個資料夾,名稱照這七個:m0-outfit、m1-world、m2-species、m3-creature、m4-population、m5-habitat、m6-zoo。每站交付都是四件套:可執行的程式碼、截圖或影片、一百至兩百字反思(自己寫)、AI 揭露欄,反思與揭露欄寫在該站資料夾的 README.md,課前準備與物種日誌寫在該站的 notes.md。報告站(M2、M3、M6)另加簡報 PDF,放進該站資料夾一起交上去;M1 世界分享形式不限,簡報、草圖、筆記、照片都可以。
每週進度 Weekly Schedule
每週的課前準備、課堂上討論的事與下次上課前要推進到哪,完整內容見課程主頁「週進度」。學期內的停課日(中秋節 9/25、教師節 9/28、國慶日補假 10/9、光復節補假 10/26、全校運動大會 11/11)都不在週四,16 次上課照常進行。期末考週本課不考試,開園展演排在 12/24 那堂課。
| 週 | 日期 | 里程碑 | 主題 |
|---|---|---|---|
| 1 | 9/10 | M0 | 開學:認識後未來動物園 |
| 2 | 9/17 | M0 | 裝好工作環境,開始想你的世界 |
| 3 | 9/24 | M1 | 世界研究:第一次完整跑研究迴圈(每個人跟老師個別討論簡報材料) |
| 4 | 10/1 | M1 | 報告站 世界分享與確認 |
| 5 | 10/8 | M2 | 從世界推出你的物種 |
| 6 | 10/15 | M2 | 報告站 物種簡報與檢核 |
| 7 | 10/22 | M3 | 先設計,再寫碼 |
| 8 | 10/29 | M3 | 讓行為對上設定書 |
| 9 | 11/5 | M3 | 長出天性,準備發表 |
| 10 | 11/12 | M3 | 報告站 物種發表會(期中) |
| 11 | 11/19 | M4 | 成群、變異、生與死 |
| 12 | 11/26 | M4 | 演化與群體行為 |
| 13 | 12/3 | M5 | 造景,接上感官 |
| 14 | 12/10 | M5 | 觀眾是誰 |
| 15 | 12/17 | M6 | 開園準備與彩排 |
| 16 | 12/24 | M6 | 報告站 後未來動物園開園 |
資源取得位置 Resources
所有教材與工具的取得管道整理如下,帳號類先辦(GitHub 學生驗證最花時間,最先辦)。
| 資源 | 位置 | 怎麼取得與用途 |
|---|---|---|
| 課程主頁(完整手冊) | course.interaction.tw/oop | 課程唯一完整手冊:想你的生物、每週進度與課前準備、里程碑逐站步驟與完成清單、演算法圖鑑(19 個造物演算法,附可複製的 AI 起手式)、感測互動、案例庫(36 個,附官方圖與討論題)、AI 公約、開工準備,全部在同一頁 |
| 後未來動物園 | course.interaction.tw/oop/gallery | 全班物種的聚合園區,M6 把物種名、一句話介紹、作品網址貼到課程 Discord,老師更新名單後即入住 |
| 作品集 template | github.com/chenweichiang/oop-portfolio-template | 按「Use this template」開出自己的作品集 repo(選 Public),一人一個整學期用同一個。課堂公約與你的工作流寫在 AGENTS.md(agy、Codex 自動讀,Claude Code 透過 CLAUDE.md 讀到),四件套格式、第一次試跑與簡報上傳都在 README,也有 Codespaces 雲端備援 |
| GitHub Desktop | desktop.github.com | 免費,用 GitHub 帳號登入,把作品集 repo 下載到筆電(預設在「文件」裡的 GitHub 資料夾),交付時按 Commit 再按 Push origin,全程不用打 git 指令 |
| agy(Google Antigravity CLI) | antigravity.google | 上課用的終端機 AI 代理,在作品集 repo 資料夾裡啟動,用個人 Google 帳號登入,免費帳號額度每週重置。Mac 與 Windows 的安裝指令與排錯見課程主頁「開工準備」 |
| Google AI Pro(選配) | gemini.google | NT$650/月,agy 額度常常不夠再訂,訂了之後額度改成每五小時重置。已經有 Claude Pro 或 ChatGPT 帳號的同學不用再訂,改用 Claude Code 或 Codex,經濟上不方便的同學直接找老師 |
| 課程 Discord | 「物件導向程式設計」頻道 | 公告、卡點與交 repo 網址都在這裡,上課前一天把卡點用截圖加一句話貼上來。看不到頻道就在課堂上跟老師或助教說 |
| p5.js 網頁編輯器 | editor.p5js.org | 免費,用 GitHub 帳號直接登入,草稿存雲端,任何電腦打開都在 |
| GitHub 學生驗證 | github.com/education | 免費,用學校信箱與學生證申請,審核需要數天到數週,最先辦。驗證後 Codespaces 額度升級為每月 180 core-hours |
| Nature of Code | natureofcode.com | 演算法圖鑑的主參照書,免費線上閱讀 |
| ml5.js 官方文件 | ml5js.org | M5 感測互動(臉、手、身體偵測)的官方文件,瀏覽器本機推論,影像不上傳 |
作業繳交與 GitHub
交付一律走 GitHub 作品集 repo,老師從 repo 看你的一切進度,重點五條(完整步驟見課程主頁「繳交」一節):
- repo 保持公開(public),M0 把 repo 網址貼到課程 Discord 的「物件導向程式設計」頻道,交一次就好,之後每站老師直接看 repo。
- 交上去才算交付:檔案只放在自己電腦或 Codespace 裡老師看不到,在 GitHub Desktop 按 Commit 再按 Push origin,到 repo 網頁親眼看到檔案出現才算數,commit 時間戳就是交付紀錄。
- 不會用終端機沒關係:GitHub Desktop、Codespace(Source Control 按 Commit 再按 Sync Changes)或 repo 網頁 Add file → Upload files 都可以,交出來的東西一樣。
- 照截止時間交:各站截止時間見上方里程碑表,M2 到 M5 都是當天上課前。M1 在 10/1 上課分享自己的世界,形式不限,不收完整的研究報告;M0 先不收,什麼時候收另行公告。
- 簡報一律匯出 PDF 再上傳(GitHub 能直接預覽 PDF,pptx 只能下載),放進該站資料夾,檔名用里程碑代號加「-簡報.pdf」(例如 m2-species/m2-簡報.pdf)。網頁上傳單檔上限 25MB,超過就把簡報裡的影片抽出來另外放。
AI 公約
五條,全文與細則見課程主頁,也寫在作品集 template 的 AGENTS.md:
- 研究先行:動手前先讓你的 AI 深度研究,開源、穩定、熱門者優先,合成答案只當路標,關鍵事實回原始出處確認。
- 驗證是你的工作:AI 給的每段程式碼、每個事實,跑過、查過才算數。
- 完整揭露:每份交付註明工具、日期、prompt 摘要、採用範圍,誠實揭露永遠不是問題。
- 把牠說完整:最後你要能說出牠活在怎樣的世界、為什麼長成這樣、你做了哪些選擇,以及牠呈現出什麼樣子。
- 反思自己寫:反思、設計理由、研究報告的結論要是你自己的想法,AI 只能幫你調整結構與文句。