為什麼這樣教
AI 可以先提出做法,學員仍要判斷哪些可以採用、哪些該拒絕、哪些還要補充資訊才能判斷,並把判斷依據寫進需求決策文件,供後續流程設計與重做時對照。例如,有標示來源不代表內容一定可信,AI 整理出的資訊也不能直接當成待辦事項。
學員年級從升國二到升碩二,原有程式經驗也有差異。這堂一日課以災害資訊協作工作台為模擬情境:學員先用 AI 做出第一版,再從使用者需求、資料是否可信,以及由誰確認、資訊不足時怎麼處理等面向重新檢視;保留第一版作為對照後完成重做版,練習在資訊不完整時做出工程判斷。
每位學員各有一個主要 GitHub 工作區。「可確認有實質修改」是指 Git 紀錄中能看出相對於共同起始或沿用內容的新增、修改或刪除。33 個工作區在四類成果中都可確認有實質修改;另有 3 個工作區沿用同隊的需求成果,接手後的流程與重做版也可確認有實質修改。
AI 可以先提出做法,學員仍要判斷哪些可以採用、哪些該拒絕、哪些還要補充資訊才能判斷,並把判斷依據寫進需求決策文件,供後續流程設計與重做時對照。例如,有標示來源不代表內容一定可信,AI 整理出的資訊也不能直接當成待辦事項。
課程刻意不先給出完整規格。學員先面對品質不一的模擬災害通報,用 AI 做出第一版;下午由 AI 分別模擬回報者、資訊整理者與現場執行者,讓學員進行訪談。學員接著選定服務對象,寫下需求取捨,畫出資訊處理流程,再回頭重做早上的版本。白天三個主要階段各安排一次分享;最後一個階段先完成流程設計,再依流程製作重做版。分享時,學員要說明自己接受或拒絕了 AI 的哪些建議,以及為什麼。
整理品質不一的模擬通報,用 AI 做出可操作的工作台,並記錄資料缺漏、AI 自行補上的假設與無法判斷之處。
起始實作(Phase 0):第一版工作台+觀察紀錄+AI 使用紀錄訪談由 AI 模擬的使用者角色,選定服務對象,判斷哪些資訊可以使用、哪些必須排除,以及這一版明確不做什麼。
需求取捨(階段 01):需求決策文件把資訊進入系統後的處理方式畫成流程,標明由誰確認、資料不足時要退回補充還是暫時保留。
流程設計(階段 02):資訊確認與處理流程使用同一份資料製作第二版,再執行課程提供的程式自動檢查,確認程式是否符合前面寫下的需求與流程。
重做版這個模擬專案要處理兩個問題:來自不同管道的資訊是否可信,以及資訊要由誰確認。以下以公開工作區 t3-m4 為例,依序查看第一版、需求決策、資訊確認與處理流程及重做版。
安全提醒:下列起始實作與重做版原型仍可互動;除頁面公開顯示的示範密碼外,請勿輸入其他資料,也不要啟動 AI 分析。若仍啟動,輸入與 API 金鑰(存取外部 AI 服務的憑證)會送往所設定的外部服務;金鑰、服務網址與草稿也會保存在瀏覽器中。
先操作第一版,找出一個可能誤判資訊的地方;再看需求文件如何界定服務對象與不做的事、流程文件如何安排確認與資料不足時的處理方式;最後操作重做版,確認畫面和操作是否落實前面的決定。例如文件若寫著「未經人工確認的資訊不能顯示為已確認」,重做版也應該照這項規則運作。
這是 SITCON 2026 夏令營第二天的全天主要課程,為程式經驗差異很大的營隊學員重新設計軟體工程內容。共同專案把真實公共協作中「資訊能不能信、誰有權決定」的工程問題,轉成不連接真實災害資料或服務的教學原型。
第十屆學生資訊夏令營,於 2026 年 7 月 8 日至 12 日在國立陽明交通大學舉行,主要課程涵蓋軟體工程、人工智慧與資訊安全。本案例只聚焦 7 月 9 日的軟體工程主題日。
官方課名中的 Vibe Code,指只憑感覺讓 AI 寫出難以理解、協作或維護的程式。課程目標是讓專案不只寫得出來,也能面對需求變動。
課堂參考 2025 年花蓮光復地區馬太鞍溪災害期間的民間協作平台經驗,把多來源通報、資訊品質、人工確認與責任分工轉化為可在瀏覽器操作的網頁原型。課堂資料均經模擬或改寫,原型不會讀取或寫入真實事件資料。本次課程未邀請受災社群或現場協作者參與需求驗證,模擬情境只供課堂練習。
48 位學員的課前自述顯示,學員橫跨國中到研究所,年齡介於 12–29 歲、中位數 16 歲;有人還沒有用文字式程式語言寫過程式,也有人已附公開作品。
手機可左右滑動圖表。
白天分成三段:09:00–12:00 先做第一版;13:00–約 16:00 訪談並寫下需求取捨;約 16:00–19:00 完成流程設計與重做。每段實作後都安排學員上台分享;20:00–21:00 則先分組交流,再回到全班整理使用 AI 寫程式的經驗。詳細課表、照片與 Git 版本紀錄可在下方展開對照。
手機讀者可左右滑動時間軸。
| 課表時段/依課後紀錄整理的時段 | 課程階段與學員任務 | 學員分享與交流時段 | 全班成果在 Git 版本紀錄中的出現時段 |
|---|---|---|---|
| 09:00–12:00 | Phase 0:先做第一版,讓問題浮現建立共同語言、快速做出第一版,再指出哪些資訊不能相信、不能判斷或不能直接變成任務。 | 11:04–11:35,14 人次上台說明 | 起始實作成果約在 10:00–12:30 出現 |
| 13:00–約 16:00 | 模擬訪談與需求取捨需求與流程教材版本約於 12:30 出現在 Git 紀錄;把假想使用者觀點當成待驗證的需求假設,由人決定服務誰、今天不做什麼。 | 15:16–15:50,12 人次上台說明 | 需求文件約在 13:30–15:30 出現 |
| 約 16:00–19:00 | 流程設計與重做畫出人工確認與退回分支;保留第一版,使用同一份輸入資料製作重做版。 | 18:22–18:58,12 人次上台說明 | 流程文件約在 14:00–17:30、各工作區重做版首次提交約在 14:00–20:30 出現 |
| 20:00–21:00 | 晚間延伸:AI 協作經驗交流比較有效與失效的 AI 協作方式,整理採用、拒絕與仍不確定的地方。 | 20:10–20:20 有 5 人次、20:47–20:57 有 8 人次上台;中間為小組交流 | 重做版與晚間後續變更持續到約 21:00 |
09:47|Phase 0 說明:講師以投影中的災害資訊工作台畫面,向全班說明第一階段任務。
點選照片可開啟 Flickr 原頁14:17|實作與巡堂:學員在電腦前實作,講師俯身查看畫面並與學員對話。
點選照片可開啟 Flickr 原頁18:44|流程設計與重做版成果分享:學員在教室前方,以投影畫面向全班說明階段成果。
點選照片可開啟 Flickr 原頁20:33|晚間小組交流:學員把椅子圍成小圈,一人站立發言,其他人面向發言者。
點選照片可開啟 Flickr 原頁每個圓點代表專案的一筆 Git 提交,線條顯示這筆提交接續自哪一筆既有提交;圓點由左到右大致依提交時間排列。
線條先聚在一起、後來分開,表示多個工作區曾共用一段內容,之後各工作區留下不同版本。共同內容會先排除,再檢查各工作區後來實際修改了什麼。
窄螢幕可左右滑動,先看共同修改歷程向外分開的區域。
原圖保留完整尺寸,可左右及上下捲動,用於查閱日期、工作區與分支標示;理解成果數字不必讀完每一條線。
成果依實際內容判讀,不以 /v1/ 為唯一條件。三項統計都以 48 位學員的個人工作區為分母:38 個可確認有重做修改;33 個在起始實作、需求、流程與重做版四類成果中都可確認有實質修改;另有 3 個沿用同隊需求成果後,在流程與重做版留下實質修改,因此四類成果都有可追查紀錄的工作區共有 36 個。若只採計課程指定的檔案與路徑,五項成果都可確認有實質修改的工作區是 15 個。
-v1 結尾、並在複製後留下新修改紀錄的工作區,會併回原工作區計算,只納入接續後的新修改。48 位學員中收到 22 份回覆,其中 13 份包含具體課程內容,其餘 9 份未列入主題計數;以下主題以這 13 份為基礎,同一份回覆可歸入多個主題。
| 問卷項目 | 5 顆星(份) | 4 顆星(份) | 3 顆星(份) | 2 顆星(份) | 1 顆星(份) | 總回覆(份) |
|---|---|---|---|---|---|---|
| 軟工主線課程收穫 | 15 | 5 | 2 | 0 | 0 | 22 |
| AI 寫程式經驗交流課程收穫 | 14 | 3 | 4 | 1 | 0 | 22 |
| 文件類型 | 可確認早於重做版首次提交(工作區) | 未能確認較早,包含較晚提交或順序無法判定(工作區) |
|---|---|---|
| 需求取捨文件 | 26 | 12 |
| 流程設計文件/流程圖 | 16 | 22 |
表格先標示連結類型:「網站」可直接操作,「文件」開啟課程內容,「首次修改紀錄」顯示該階段成果第一次出現在 Git 的修改內容,不一定是最後版本。成果留在根路徑、非標準位置或後來被其他內容覆蓋時,以首次修改紀錄作為可追查入口。接手案例另標示「沿用同隊」;t8-m3 沒有公開版本歷程,只列為外部成果。
中午,講師與隊輔交換課堂觀察時,談到有些學員面對刻意不給明確答案的任務,會先從不同角色的處境與實際需要出發,區分需要協助的人、提供資源的人與不同專業的志工,再思考系統該怎麼做。
這個課堂片段也讓我們重新看見人文社會視角在軟體工程中的價值。當 AI 能更快生成程式,判斷要解決什麼問題、哪些人的處境需要被看見,以及衝突需求如何取捨,反而更不能外包給工具。人文社會領域長期重視的觀察、詮釋與反思,不是工程之外的點綴,而是現代軟體工程需要共同培養的能力。
部分 Git 版本紀錄中的文件已明確寫出「有標示資料來源,不代表內容就可信;AI 整理出的內容不等於可以直接派工的任務;資訊未經確認前不能顯示為已確認」;但部分程式仍未遵守同一套原則。
原始資訊、AI 整理結果與確認狀態需要分開呈現,不能讓畫面完整感取代證據。
還要說清楚由誰確認、根據什麼、有哪些權限、如何處理爭議,以及是否留下操作紀錄。
文件中的規則需要落實為程式中的判斷條件,並以自動化測試驗證,才能擋下不符合條件的操作。
我認為,AI 已經改變寫程式的方式,軟體工程教育也必須重新思考教學方式。這次使用的教案、投影片與起始專案及成果索引都已公開,歡迎依學員的年齡、經驗與需求,以及課程時數和授課環境取用或改編。
若你實際使用、發現問題,或發展出新的做法,歡迎在 GitHub 提出問題,或寄信到 [email protected] 與我交流。