出題SOP

 這是一份給出題老師或題庫維護人員使用的**「出題標準作業程序 (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 試題。