退選截止日當天收到的 email
普渡大學(Purdue University)電腦科學系有一門叫 CS240 的課:Systems Programming,系統程式設計。這是 CS 學生的必修核心課,讀完才能上後面的課,沒過就得重修。
2026 年 4 月 16 日,退選截止日當天,一封 email 寄給了超過 200 名學生。
信裡說:你的作業疑似使用 AI 輔助完成。請填這份 Google Form,說明你在哪幾份作業使用了 AI、用了什麼工具。承認的作業那份給零分。如果沒有回覆,期末成績給 F,並致函院長,建議啟動退學程序。
問題在於:信裡沒有告訴學生,系統實際上標記了哪一份作業。學生得自己「猜」是哪一份,然後填進 Google Form。猜對了,那份作業 0 分;猜錯了,等於承認了一份其實沒問題的作業,也 0 分;如果完全不填,也是 F,再加上院長正式信函,以及退學建議。左右都是陷阱。
退選截止日,是大學學期裡最後一天可以放棄一門課、不影響成績單 GPA 的日子。美國大學的退選截止日通常在學期進行到第 10 到 11 週左右,遠比台灣的開學後 2 週晚。此時學生已完成大部分作業,學期只剩 5 週,但繼續下去若被給 F 就會留下正式記錄。選在這一天發信,時機的確有些爭議。
學生收到的實際 email 截圖
消息在週末炸上 Reddit,Purdue 學生討論版一篇接一篇,幾千個讚,幾百則留言。
然後週一,教授 Jeff Turkstra 走進教室,說:Google Form 的資料全數作廢,HW11 之前的所有作業一律不查,即使你已經填表承認了也沒有事,ODOS(學務處)和課程協調員已經介入。
整件事從那封 email 到最終解決,前後不到一個星期。
Turkstra 在課綱中聲明:使用 EnCourse 系統追蹤學生進度。
學生每次編譯程式碼,系統自動記錄提交歷史,累積整個學期的開發軌跡。
Turkstra 寄出 email 給 200 多名學生,附上 Google Form,要求自行坦承 AI 範圍,否則給 F 並致函院長。
消息在 Reddit 爆開,大量討論。根據新聞報導,超過一半的學生(約 600 人中的 300 人)選擇在截止日當天退選,拿 W(Withdrawal)離開,而非繼續面對不確定的指控。
Turkstra 宣布:Google Form 作廢,HW11 前一律不查,指控全面撤銷。學務處已介入。同時宣布任何已退選的同學都可以重新加選課程。
教授自己寫程式,追蹤學生開發軌跡
這件事情最複雜的地方,在於寄出爭議 email 的,其實是一個對教學很投入的老師,他甚至為了盡量協助學生,開發了相關軟體。
Jeff Turkstra 是普渡大學電腦系的 Teaching Professor(教學路線教授,2024 年升等),沒有 tenure(終身教職保障)。他的個人網站域名是 turkeyland.net,看似無厘頭,其實有幾分自嘲意味:Turkstra 是荷蘭弗里斯蘭(Frisian)地區的姓氏,字尾的 -stra 在弗里語裡是地名後綴,意思接近「某地之人」,整個姓氏約略含有「土耳其人之地」的歷史痕跡,並非真的有土耳其淵源。turkeyland.net 大概就是順著這個諧音,把姓氏當成域名,當個幽默。
他的職涯路徑不是直線。他在普渡電機系任助教(2005–2008),接著在科羅拉多州的 Steamboat 滑雪場當了一季纜車操作員後,回到 Purdue 的 Rosen Center 擔任軟體工程師(2009–2016),主要開發 HUBzero 平台,一邊工作一邊完成電機暨電腦工程博士學位(2013)。2017 年轉入 CS 系教學路線,成為現在的 CS240 任課教授。
HUBzero 是普渡大學研發的開源科學協作平台,讓研究者在瀏覽器上直接執行模擬工具與共享資料,最知名的應用是 nanoHUB.org 奈米科學模擬環境。
回到 CS240 事件,Turkstra 的網站上早就公開放著 EnCourse 的論文 PDF,課程大綱一開始也明確告知學生:老師會追蹤開發軌跡、偵測學術誠信問題。規矩從一開始就是透明的。
曾修過他課的學生在 Reddit 上說:「你可能從來沒遇過一個這麼在乎你受好教育的教授。」(zanidor)他定期邀請一批批學生到家裡吃飯,辦公室隨時歡迎學生來聊職涯規劃或問任何問題。
然後他做了一件工程師才會做的事:把他對學生學習過程的理解,系統化成可以自動偵測的程式。
這個系統叫做 EnCourse,2022 年發表在 SIGCSE(電腦科學教育領域最重要的學術會議)。論文共八位作者,第一作者是 Gustavo Rodriguez-Rivera,Turkstra 列名第二。完整論文 PDF 可在 turkeyland.net 上取得,有興趣深入了解的讀者不妨一覽。
每個學生的作業,放在伺服器上的一個 Git repository。Git 可以想成一個有完整歷史記錄的版本控制系統:不只存檔案,還記錄了每一次有哪些程式碼被加入、刪除、或修改,並且可以還原到任意時間點的狀態。學生把它 clone(下載)到自己的電腦,在本機寫程式。
然後,Makefile 裡加了一段指令。Makefile 是「編譯設定檔」:告訴電腦怎麼把你寫的程式碼翻譯(compile,也稱為 build)成電腦可以直接執行的程式。每次學生執行 make,完成一次 build,系統就自動執行兩個動作:git commit(存一個快照,把此刻所有程式碼的狀態記錄下來,附上時間戳記)和 git push(把這個快照上傳同步到伺服器)。
學生不需要手動儲存。每次 build,就是一次記錄。一個學期下來,教授拿到的不是一份最終作業,而是這個學生整個學期的完整開發軌跡,每一行程式碼在什麼時間加進來或刪掉,全都可以追蹤。
# Makefile 裡的那段魔法
git:
git add <relevant_files>
git commit -m "auto commit"
git push
有了這份軌跡,偵測變得系統化。三個指標:
很短的時間內完成大量進度,可疑。用 AI 的學生常在截止日前幾小時突然交出完整解答,開發時間壓縮到異常短暫,不像是逐步摸索的過程。
很少 commit 就大幅推進,代表可能一次貼入大段外來程式碼。自己寫的人會反覆 build 測試,commit 數自然多;AI 生成的程式碼往往一貼就接近完成,commit 次數極少。
正常寫程式會不斷修改,新增和刪除大致平衡。幾乎只有新增、幾乎沒有刪除,代表那段程式碼是從外部貼進來的,不是在本機慢慢長出來的。
這不是什麼神奇演算法。任何有幾年工作經驗的工程師,看一眼 commit 歷史,就能感覺到差異。Turkstra 只是把這個感覺,寫成程式,自動化,規模化到一個班的 600 人。
論文提到,EnCourse 在 CS240 實際使用了五個學期(2018–2021),累積學生從 228 人成長到 342 人。這五個學期的數據,讓研究者看到了幾件有趣的事。
第一個發現出現在 Fall 2018 第一次使用時。課堂上問起,學生都說「沒問題」;但 EnCourse 的數據顯示,整班只有三分之一的人在第一週動工。教授因此能夠提早介入,直接聯繫進度落後的學生,而不是等到期末才發現問題。
commit 圖表讓不同類型的行為變得可視化。自己寫程式的學生,commit 分散在數週,程式碼的新增(綠色)和刪除(紅色)大致平衡,修改、除錯、重寫的痕跡一一留下。被標記的疑似案例,圖表幾乎全是綠色:一次大量貼入,幾乎沒有刪除,build 次數寥寥可數,整個開發過程壓縮在短短幾天。
系統標記之後,驗證靠的是口頭測試(Implementation Quiz):請學生指出某個功能在自己的程式碼裡是怎麼實作的、在哪裡、為什麼這樣寫。如果是自己寫的,這些問題不難;如果是貼上去的,往往說不清楚。
「他在 CS307 完全是另一個人,很棒的講師,期末專案用最像 Copilot 產出的前端他也完全沒問題。」
— Jeezluiz03,曾修過 CS240 與 CS307 的學生CS307 是軟體工程課,明確允許使用 Copilot(GitHub 推出的 AI 程式碼補全工具,能根據上下文自動生成整段程式碼)等 AI 工具,課程重點是 sprint planning(衝刺規劃:把專案拆成短週期、逐段交付)、使用者故事、跨團隊協作,那是用工具大展身手的時候。
這次引起爭議的 CS240 是初階課程:要同學們先學會不靠工具也能走路。
這件事裡,每個人的立場
Turkstra:規矩透明,但程序跳過了
他的個人網站上早就公開放著 EnCourse 論文,課程大綱一開始也載明了偵測機制。CS240 是擋修的基礎課,目的就是讓學生在沒有工具輔助的情況下打好底子,進階課程才是大量使用工具的時候。從這個角度看,規矩是清楚的,動機是有教育依據的。
問題在程序。他沒有事先告知學務處或課程協調員,就直接對學生發出帶有懲罰威脅的 email。對大一新生來說,衝擊不只是一門課的成績:CS240 是必修擋修課,拿 F 可能導致延畢,或重創 GPA,直接影響日後的求職或研究所申請。學務處介入後,整件事急剎車。
週一課堂上,他引用了富蘭克林的話:「讓 100 個罪人逃脫,也好過讓 1 個無辜者受苦。」然後宣布撤銷指控。這句話本身,也是一種間接承認:系統存在偽陽性的可能性,沒有萬全。
繞過這關,下一關還在那裡
Reddit 網友 sjrotella 說:「作弊了 11 份作業的人,現在還是得繼續作弊,因為他們什麼都沒學到,只是在拖延不可避免的結果。」
整個事件在 Reddit 引發數千則討論,但真正承認自己用了 AI 的人幾乎沒有公開發言。少數近似承認的案例是 rymetz17:「我幾乎所有作業都用了 AI,但沒有收到那封 email。我自由了嗎?!」這則留言是真實自白、工具漏抓(偽陰性),還是純粹搞事,無從確認。但知道自己站不住腳的人,通常選擇沉默。
這裡有個更複雜的背景值得理解:今年的作業比往年更難(就是為了應對 AI 特意加難),助教嚴重不足,有時問一個問題要等 20 到 30 分鐘,有 TA 甚至當著學生的面用 AI 幫忙除錯。修課的大多是大一新生,第一次面對這種規模與強度的工程課程。
Reddit 網友 LongjumpingBonus922 說:「我沒有用 AI,但那是因為這學期學分少。如果學分多,我理解為什麼有人會用。」這句話說的不是替作弊辯護,而是點出了一個結構問題:當課程難度與支援資源嚴重失衡,AI 就從誘惑變成了出口。
DudleyFluffles:沒作弊,但教授說我有
他是這次事件中,在 Reddit 上有發文紀錄、可以被公開追溯的唯一一個疑似被誤判的案例。他聲稱自己完全依照規矩作作業,但收到指控作弊的 email 時,信裡並沒有說明是哪一份作業被標記,卻要求他自己在 Google Form 裡填上是哪一份。填錯了,等於承認了一個不存在的作弊,直接 F;完全不填,則是 F 加上 ODOS 的正式信函。
他開始自己寫腳本,分析整個學期的 commit 時間序列,試圖找出哪裡「看起來可疑」。
Reddit 有一個常被忽略的特性:一個帳號的發文歷史,是一份長期的數位側寫。看他在哪些版面出現、提什麼問題、回覆時的語氣與深度,可以大致判斷這個人的學習態度。DudleyFluffles 的發文紀錄顯示他長期參與技術討論,提問有條理,思考有深度,是那種願意花時間搞懂一件事的類型,不像是習慣走捷徑的人。在 Reddit 上,他是唯一一個有完整公開紀錄、可以被追溯性格的疑似無辜案例。
這個案例指出了系統設計的根本問題:當工具把你標記為可疑,你在被告知具體依據之前,根本無從為自己辯護。
程序是紅線,跳過就失效
學務處(ODOS)和課程協調員的介入,讓整件事急剎車。Turkstra 事先沒有知會任何人,就直接發出帶有懲罰威脅的 email。
另一所大學的行政人員 DeviceDirect9820 在 Reddit 留言:「教授需要學會在體制內工作。他的行為有二、三階的後果,不只在教室裡。」
所謂二階後果,是指事件引發學務處介入、課程公信力受損;三階後果,是指調查程序事實上失效,真正作弊的學生因此全數過關,而老實做功課的學生反而顯得白費力氣。
撤銷指控的結果,讓真正作弊的人也一起過關了。有人認為這讓老實做作業的學生不公平,也讓 Purdue 的品牌受損。
幾千個人在網路上討論這件事
這件事在 Reddit 的 Purdue 討論版引發了大量討論。根據 Reddit 網友的投票統計,一個調查帖收了 2270 票,其中約 90% 是完全不在這門課、純粹來旁觀的外人。
幾個有代表性的聲音:
「反駁廢話需要的能量,是產生廢話的一個數量級以上。當半個班的學生同時使用 AI,任何教授就算有再多助教,也無法合理地逐一查核反駁。如果最終無法對作業公平評分,結果只會走向『作業不計分』或『100% 考試』,對學習的傷害更大。」
「他在時機上的失誤,讓一個好工具的可信度受損。他應該在發現作弊時就當下揪出來,而不是等到退選截止日一口氣端出來,讓集體指控的規模迫使學務處介入,最後自己把自己的程序搞垮了。」
「我幾乎所有作業都用了 AI,但沒有收到那封 email。我自由了嗎?!」
這件事也有一則帶著諷刺意味的插曲。事件期間有人在 Reddit 上貼出三張手機截圖,截的是一段以「前研究生校友」口吻寫的感想,每段都有 emoji 標題、條列式重點,措辭均衡而毫無個人溫度,從一開始就是個玩笑,用廉價粗糙的 AI 分析,來評價這次 CS 學生的 AI 使用事件......。
「就算你不同意他的做法,你可能從來沒有遇過一個這麼在乎你受好教育的教授。」
— zanidor,曾修過 Turkstra 課的學生這件事,值得想清楚幾個問題
Turkstra 的時機與權力問題
Turkstra 的做法,最大的問題不只是「跳過程序」,而是時機與力道的不對稱。退選截止日,是學生最脆弱的節點;F 加上 Dean 信函,是教授能給出最重的懲罰組合。Email 按個鈕發出去,同時落在 200 多個學生身上,對象裡包含無辜者,這個力量懸殊,是需要被認真對待的。
不管 Turkstra 動機多好,教授對學生擁有的決定性權力,本來就應該被制度約束,而不是完全仰賴個人的判斷與自制。這正是 ODOS 和課程協調員存在的理由。
作為 CS 學生,沒意識到自己留下了足跡
從另一個角度看,這件事對那些明知規矩、卻仍選擇繳交 AI 作業的學生,也提出了一個值得嚴肅面對的問題。
課綱一開始就說明了:老師使用 EnCourse 系統追蹤開發軌跡。在電腦科學的領域裡,版本控制是最基本的工具之一,數位足跡是最難抹去的東西之一。如果你選擇在這樣的環境裡繳交 AI 生成的作業,卻沒有意識到「我的工作過程是被記錄的」,這本身就是一個技術判斷的失誤,而不只是道德問題。
CS 學生應該比任何人更清楚:系統的眼睛,通常比你想的更多。
界線並不模糊,只是很容易「不小心」跨越
一個近 600 人的大班課,助教嚴重不足,有時候排隊問個問題要等半小時,萬事問助教幾乎是不可行的。
在這樣的環境中,使用自己的 AI 工具去解決遇到的困難,思考自己需要什麼工具,並一步一步親手解決,是比較好的替代方式。
但是,這跟整份作業讓 AI 生成後直接繳交,是完全不同的事。
前者讓 AI 擔任你的助教,後者則是繳了一份不屬於你的作業。這界線,並不模糊,只是太容易跨越。
如果重新設計,流程可以長什麼樣子
從工程的角度看,Turkstra 面對的是一個規模問題:近 600 人的班,助教有限,每個疑似作弊案例都要一對一個別面談,時間根本不夠。問題不是動機,是流程設計撐不起這個規模。
醫學篩檢的邏輯是兩個階段:初篩靈敏度高、成本低,目的是縮小範圍;確認檢測精確度高,只針對初篩陽性者進行。這個架構同樣可以套用在教育設計上。
一個可能的做法是:課程開始就在課綱中說明,EnCourse 會持續追蹤開發軌跡,若某份作業被系統高度標記,這位學生將必須自行預約時間,安排一次上機驗證,在無 AI 工具的環境下完成一道同難度的小題目。通過,案子結束;通不過,才進入正式的學術誠信程序。
這個設計有幾個優點。規則從第一天公開,不是突襲;學生有機會當場證明自己,不是只憑數據被定罪;上機驗證只需要更多的筆電,比面談省資源,助教可以一次監考多位同學;偽陽性也有緩衝,真的自己寫的,上機就能過。或許依然不是完美的系統,但比起目前的困境與爭議,更像一個可以運作的工程。
這一代人的課題
公立大學師生比嚴峻,是結構性的現實,不是個別教授的失職。在這樣的環境裡,能善用 AI 幫助自己理解概念、釐清錯誤訊息、確認思路方向,是值得發展的能力。規則禁止的,是繳出一份不屬於你的作業;至於學習和解惑,AI 可以是很好的資源。分清楚這兩件事,並且在規則還不夠清晰的情況下自己做出判斷,是新時代大學生需要練習的事。
這一代人最辛苦的地方在於,新工具幾乎是以週為單位出現,接觸、理解、找到正確的使用方式,這個循環要一直重複,沒有休息時間。時代對於「怎樣算是合理使用 AI」的共識還沒形成,課堂規則也還在調整,但學生們要面對的是每天真實的決定。
在這種不確定裡,誠實面對自己,能帶你走最遠。
你來這裡是為了什麼
學校和職場最大的不同,在於學校給你時間失敗、重來、慢慢長出能力。基礎課的限制,不是折磨,是設計:讓你在沒有工具撐腰的情況下,確認自己真的學會了。
用 AI 繞過這個過程,作業交出去了,但能力沒有長出來。等到上到進階課程,進入碩博士訓練,或是走進職場,很可能那段沒走的路還在原地等你,只是代價更高了。
進大學,是為了變強,還是為了換一個數字漂亮但你自己知道實力不到的 GPA 回去?答案不同,選擇就不同。