做完了,不等於拿得出來
通用篇把專題的完成度分成三層,最上面一層是「留下別人能檢查的東西」。理工專題最常卡的就是這一層:研究其實做了,但成果的狀態只有自己看得懂。常見的情況是:
- 數據散在實驗室電腦、自己的筆電和雲端硬碟,檔名是
final2_new.xlsx,不確定哪一份是最後用的。 - 圖表是在試算表裡手動調出來的,數據一改就得重畫一次,沒人知道上次是怎麼調的。
- 程式只在自己的電腦上跑得動,換一台就缺套件、路徑錯誤,或者其實是改學長姐留下的程式,分不清哪幾行是自己寫的。
- 技術報告只有期末發表的簡報,沒有一份完整說明方法與結果的文字版。
這些問題到大四整理備審時才處理,往往要花上好幾週,而且有些已經救不回來——原始數據被覆蓋、實驗條件想不起來。什麼時候該做到哪一步,理工推甄時程已經排好;怎麼把成果寫進 CV、講出個人貢獻,見理工備審怎麼寫。這篇只處理中間那一段:成果本身,怎麼在做的當下就整理到可以展示。
數據與圖表:從原始檔到一張站得住的圖
一張能在書審與口試裡站得住的圖,背後要有一條完整的路:原始數據 → 處理步驟 → 圖。這條路任何一段斷掉,被追問時就說不清楚。
原始數據永遠不覆蓋。 儀器輸出、量測紀錄、下載的資料集,原封不動放在一個只讀的資料夾裡。所有清理、轉換、篩選都另存新檔,檔名或資料夾標上日期與處理階段。這樣任何時候都能回到起點。
每批數據附一份說明。 幾行文字就夠:什麼時候量的、用哪台儀器或哪個資料來源、主要參數設定、每個欄位的意思與單位、有沒有已知的問題(例如某天儀器不穩)。半年後你自己會感謝這份說明。
處理步驟寫成程式或明確的紀錄。 能用腳本處理就用腳本,因為腳本本身就是紀錄;必須手動處理的部分(例如人工剔除異常值),要寫下剔除了哪些、依據什麼標準。
圖表由程式產生,不在試算表裡手調。 同一份數據、同一支程式,每次都畫出同一張圖。整理圖表時可以對照下面幾個常見問題:
| 常見問題 | 教授看到會怎麼想 | 怎麼補 |
|---|---|---|
| 座標軸沒有單位或標示不清 | 不確定你知道自己在量什麼 | 每個軸都寫物理量與單位 |
| 沒有誤差範圍或樣本數 | 不知道結果穩不穩 | 標出誤差棒或信賴區間,圖說寫明 n |
| 圖說只有標題 | 要靠你在場解釋才看得懂 | 圖說寫清楚條件與這張圖要說明的一件事 |
| 只放最好看的那一組 | 懷疑還有沒放出來的 | 全部組別都放,或說明排除的理由 |
| 一張圖塞太多條線 | 看不出你要比較什麼 | 拆成兩張,或只留主要比較對象 |
最後一列牽涉到學術倫理:只挑好看的結果、不交代其他次數,屬於選擇性報告。數據怎麼來、怎麼處理、排除了什麼,都要誠實可追溯,教育部臺灣學術倫理教育資源中心有完整的課程與案例,做專題時就值得先看過。
程式碼:從自己跑得動到別人跑得動
README 該寫什麼、commit 訊息怎麼寫,站上已經有完整說明(見README 怎麼寫與Git 版本管理入門),這裡不重複。研究用的程式比一般作品多了幾件要交代的事:
- 環境:用哪個語言版本、哪些套件與版本。把套件清單存成一個檔案(例如 Python 的
requirements.txt或 conda 的環境檔),別人才裝得出同樣的環境。 - 參數集中管理:實驗參數、檔案路徑、超參數不要散在程式各處,集中在一個設定檔或程式開頭。報告裡寫的每一組參數,都要找得到對應的設定。
- 隨機種子:用到隨機抽樣、模型初始化、資料切分的程式,固定隨機種子並寫進紀錄,否則同一支程式跑兩次結果不同,你自己也無法重現。
- 一支重畫所有圖的腳本:從處理好的數據到報告裡的每一張圖,用一支腳本全部產生。之後數據更新或要改圖的格式,只要重跑一次。
- 標清楚哪些是你寫的:理工專題常常是在學長姐或實驗室既有的程式上延伸。在 README 或程式註解裡寫明哪些模組沿用、哪些是你新寫或改寫的。這不只是誠實,也是之後被問「你負責哪裡」時最好的依據。
程式碼要不要公開,先問指導老師。實驗室的程式與數據可能牽涉未發表的研究或合作單位,不能公開時可以用私人倉庫保存,或把你寫的部分換成公開資料做一個簡化版。
數據、程式散在好幾個地方,不知道從哪裡開始整理?和 TBD 顧問一起盤點你的專題成果 →
技術報告:每一節要回答什麼
期末簡報是為了現場講而做的,離開講者就很難讀懂。技術報告則要能自己站得住:教授在書審時翻到附件,不需要你在旁邊解釋。一份理工專題的技術報告,可以照這個結構寫:
| 段落 | 要回答的問題 | 常見缺漏 |
|---|---|---|
| 摘要 | 做了什麼、怎麼做、得到什麼 | 只寫動機,沒寫結果 |
| 背景與問題 | 為什麼要做、具體要回答哪個問題 | 背景寫很長,問題一句帶過 |
| 方法 | 用什麼材料、設備、資料、演算法,步驟與參數 | 寫得不夠細,別人無法照著重做 |
| 結果 | 量到或算出了什麼,用圖表呈現 | 結果和解讀混在一起 |
| 討論與限制 | 結果代表什麼、和預期或文獻差在哪、有哪些限制 | 只寫優點,不寫限制 |
| 未來工作 | 如果繼續做,下一步是什麼 | 寫成空泛的「可應用於更多領域」 |
| 附錄 | 完整參數、補充圖表、程式或資料位置 | 沒有,或與正文對不上 |
兩個原則最常被忽略。第一,方法段要寫到別人能照著重做——這是技術報告和心得報告最大的差別。第二,結果和解讀分開寫:結果段只說看到了什麼,為什麼會這樣留到討論段。分開寫,教授才分得出哪些是數據、哪些是你的推論。
報告也要留版本。每次給指導老師看的版本、老師的修改意見,都另存一份。被改掉的段落,常常就是口試時「我原本以為……後來發現……」的素材。
可重現性:自己先重跑一次
檢查成果是不是真的可展示,最直接的方法是自己先重現一次:隔一段時間(例如三個月後,或學期結束時),從原始數據開始,照著自己的紀錄與程式,一路做到最後的圖表,看能不能完全對上。更嚴格的版本,是請同實驗室的同學在他的電腦上照著 README 做一次。
第一次這樣做的人,通常會發現幾件事:某個處理步驟沒寫下來、某個套件版本已經更新導致結果不同、某張圖其實是另一份數據畫的。這些在大三發現都還來得及補;到大四口試前一週才發現,就只能祈禱沒被問到。
不同類型的專題,可重現要記錄的東西不一樣:
- 實驗量測:實驗條件(溫度、濕度、校正紀錄)、樣品批號與製備步驟、儀器設定,最好拍下實驗架設的照片。
- 模擬計算:模擬軟體與版本、網格或模型設定、邊界條件、收斂標準,以及跑一次需要的時間與資源。
- 程式與資料分析:資料版本與來源、環境與套件版本、隨機種子、從原始資料到結果的執行順序。
- 硬體實作:電路圖或設計檔的版本、元件型號、韌體版本、測試方法與條件。
可重現不只是為了展示,也是研究能力本身。研究所教授收學生,很在意這個學生做出來的東西,換個人接手還能不能繼續用。
四種專題的展示重點
不同類型的專題,最後拿得出來的東西不一樣,最容易缺的也不一樣。可以先判斷自己的專題屬於哪一種,再對照補齊:
| 專題類型 | 核心產出 | 適合的展示形式 | 最容易缺的 |
|---|---|---|---|
| 實驗量測型 | 量測數據、樣品、分析圖表 | 技術報告+關鍵圖表+實驗架設照片 | 實驗條件紀錄、重複次數 |
| 模擬計算型 | 模型設定、模擬結果、與理論或實驗的比對 | 技術報告+參數表+結果圖 | 收斂與驗證的證據 |
| 軟體系統型 | 程式碼、可運作的系統 | 整理過的倉庫+README+操作影片或截圖 | 測試結果、效能數據 |
| 硬體實作型 | 實體裝置、電路或機構設計 | 示範影片+設計檔+測試數據 | 設計取捨的紀錄、失敗版本 |
軟體與硬體型的專題,一段一兩分鐘的示範影片很值得做:教授不需要安裝任何東西就能看到系統真的在運作。影片不用剪得漂亮,清楚展示輸入、運作過程與輸出就好。
這些產出整理好之後,口試時常被指著圖表追問「這為什麼長這樣」,那部分的準備方式見理工口試怎麼準備。
成果可展示檢核
勾不到的項目,越早補越省力。這些整理工作在做專題的當下順手做,每次只多花十幾分鐘;拖到大四一次補,常常要花上好幾週,而且有些東西已經找不回來。