這是一份給出題老師或題庫維護人員使用的**「出題標準作業程序 (Question Design SOP)」**。
這份 SOP 的目的在於確保每一道新題目都能完美適應我們的「自動化評測系統」,從構思、資料建置到檔案產出,標準化所有步驟。
出題標準作業程序 (Question Design SOP)
適用對象:出題教師、教材研發人員
系統核心:Google Sheets 資料庫 \rightarrow GAS 自動生成 \rightarrow Scratch 模板整合。
第一階段:題目構思與邏輯設計 (Concept Phase)
在打開電腦前,請先在紙上確認以下 4 點,確保題目適合「自動評分」:
* 確認測驗目標 (Tag):
* 這題要考什麼?(例如:字串處理、巢狀迴圈、陣列操作)
* 對應難度是 Level 幾?(1~6)
* 定義輸入與輸出 (I/O Definition):
* 輸入 (SYS_題目):是一個數字?一串文字?還是逗號分隔的清單?
* 輸出 (SYS_作答):答案必須是**「絕對唯一」**的。
* ❌ 不佳範例:「請說出一句讚美的話」 (無法自動評分)
* ✅ 良好範例:「請輸出字串長度」 (答案只有一個數字)
* 設計測資 (Test Cases):
* 學生預設資料 (Student Data):2~3 筆簡單、直觀的例子 (讓學生知道題目在幹嘛)。
* 教師鑑別資料 (Teacher Data):5~10 筆包含邊界值 (0, 1, 空白)、陷阱值 (負數, 大小寫) 與壓力測試 (大數據)。
第二階段:資料庫建置 (Database Entry)
請開啟專案指定的 Google Sheet 題庫表 (Full_Question_Bank) 進行填寫。
填寫欄位規範:
| 欄位 (Col) | 填寫說明 | 範例 |
|---|---|---|
| A: ID | 題目編號 (唯一),建議 Q + 兩碼數字 | Q07 |
| B: Type | 類型,填寫 Student 或 Teacher | Student |
| C: Name | 題目名稱 (簡短易懂) | 階乘計算 |
| D: Input | 題目內容 (要塞給 SYS_題目 的值) | 5 |
| E: Output | 標準答案 (要跟 SYS_作答 比對的值) | 120 |
| F: Diff | 難度權重 (1~3,可選) | 2 |
操作步驟:
* 先填寫 Student 類型的列 (約 2-3 列)。
* 接著填寫 Teacher 類型的列 (約 5-10 列)。
* 檢查:確認 Input 與 Output 的格式正確 (例如 Scratch 裡 01 不等於 1,文字要精確)。
第三階段:自動化檔案生成 (Asset Generation)
當 Google Sheet 填寫完畢後,利用 GAS 產出 txt 素材。
* 點擊 Google Sheet 上方選單 「題庫系統」 \rightarrow 「生成所有題目檔案」。
* 等待腳本執行完畢 (約 5-10 秒)。
* 進入 Google Drive 指定資料夾,確認是否產生了新的子資料夾 (例如 Q07_階乘計算)。
* 檢查資料夾內是否有:
* Q07_學生練習_題目.txt (及對應答案、難度檔)
* Q07_教師評分_題目.txt (及對應答案、難度檔)
第四階段:試題封裝 (.sb3 Production)
這是將資料與 Scratch 引擎結合的步驟。
準備工作:
* 準備一個乾淨的 「Scratch 試題母板.sb3」 (內含老師角色邏輯、全域變數,但清單是空的)。
製作步驟:
* 開啟母板:用 Scratch 編輯器打開母板檔案。
* 修改標題:將專案名稱改為 Exam_Q07_階乘計算。
* 匯入學生資料:
* 在變數區,對 題目 清單按右鍵 \rightarrow 匯入 Q07_學生練習_題目.txt。
* 對 答案 清單按右鍵 \rightarrow 匯入 Q07_學生練習_答案.txt。
* (難度清單視需求匯入)。
* 設定說明 (可選):在「學生角色」的註解或舞台背景上,簡單寫下題目要求(雖然學生應該看試卷,但程式裡有提示更好)。
* 存檔:儲存為 .sb3 檔案。
第五階段:驗收測試 (Quality Assurance)
在發布給學生之前,必須進行**「解題測試」與「評分測試」**。
* 扮演學生 (Self-Test):
* 打開剛剛做好的 Exam_Q07.sb3。
* 寫一段正確的程式積木來解題。
* 按綠旗,確認能否通過內建的「學生預設資料」。
* 扮演評審 (Judge-Test):
* 保持剛剛寫好的正確程式。
* 右鍵匯入 Q07_教師評分_題目.txt (及答案)。
* 按綠旗,確認是否能通過所有嚴格測試並拿到滿分。
* 故意寫錯 (Negative Test):
* 故意把程式改錯 (例如:階乘寫成連加)。
* 確認評分系統是否能正確判讀為錯誤 (不能顯示滿分)。
💡 出題者的檢核清單 (Checklist)
* [ ] 唯一性:這題的答案是否只有一種可能?(避免 "請寫出大於10的數" 這種多重解題目)
* [ ] 格式準確:空格要注意!(答案是 apple 還是 apple ?建議 trim 掉空白或明確規範)
* [ ] 陷阱題:有沒有加入 0、負數、空白 或 極大值 來防止學生寫死答案?
* [ ] 檔案對應:生成的 .sb3 裡面裝的真的是 學生資料 嗎?(不要誤把教師資料裝進去,不然學生就看到考卷答案了)
完成以上步驟,您就產出了一份高品質、符合 APCS 標準且可自動評分的 Scratch 試題。