程式設計評測系統 · 老師版
這本手冊說明老師要做的事:用題庫編輯器出題,在「教師管理」建立班級、看學生進度和作答,把試卷發佈成班級測驗,以及備份資料。學生端操作請看《操作講義》。
PART A · 概念
老師登入「教師管理」後,在班級列表下方的「👀 預覽學生答題介面」按 Blockly/Scratch/Python/C++,會在新分頁開啟學生的畫面,可以試做內建題庫,不會產生學生紀錄。沒有登入的人看不到這個入口。
學生用「班級代碼+座號+自設 4 位數密碼」登入。按「評分」的成績和程式會自動傳給老師,遊戲幣、獎牌等進度存在雲端,換電腦也能接著做。
老師把組好的試卷發佈到班級。學生從選單按「開始」就作答,限時、不能看解答,由伺服器評分。
| 介面 | 學習路線 | 說明 |
|---|---|---|
| 🧩 Blockly、🐱 Scratch | 🧩 積木 | 拖拉積木;有示範題的「🧭 指引」與「參考解答」分頁。 |
| 🐍 Python | 🐍 Python | 文字寫程式;沒有參考解答分頁,評分未過顯示提示。 |
| ⚙️ C++ | ⚙️ C++ | 瀏覽器內編譯執行(clang,C++17),不用安裝軟體、不用評測伺服器;銜接 APCS 與程式競賽。沒有參考解答分頁,評分未過顯示提示。 |
四種介面共用同一套題庫與測資。三條路線的獎牌、學習積分和全國排行各自計算(C++ 有自己的排行榜);同一題用第二種語言再完成,遊戲幣給一半。
C++ 介面須知
學生第一次開啟要下載約 19 MB 的編譯器,之後瀏覽器會快取;上課第一次使用前,建議先讓每台電腦開一次 C++ 介面。支援 bits/stdc++.h 與 STL;不支援 try/throw、thread、讀寫檔案。每筆測資執行上限 3 秒。評分只忽略行尾空白,中間空白或換行不同會判錯(和 Python 相同)。
🧪 教學工具:程式模擬器
教師管理首頁的「🧪 教學工具:程式模擬器」卡片有 🐍 Python 模擬器 和 ⚙️ C++ 模擬器,上課講解、示範除錯用,不需登入、不計分。內建教學範例與程式片段,可放大字體投影;Python 可按「👣 逐步執行」一步一步播放,看目前執行到哪一行、變數與函式呼叫堆疊怎麼變化。學生面板「📚 開始練習」也有入口。
PART B · 出題
出題工具是「題庫編輯器」,用瀏覽器打開就能用,不需要登入。
tag-dictionary.json,當分類與知識點的下拉選單。「範例(公開)」勾與不勾
勾了:這筆會出現在學生的「自行測試」,顯示輸入與預期輸出。不勾:只用來評分,學生看不到(隱藏測資)。建議留 1~2 筆公開當示範,其餘設隱藏。班級測驗中,隱藏測資的預期輸出只存在伺服器,學生在瀏覽器裡找不到。
明碼 .txt 還是加密 .enc?
放在公開網路(例如 GitHub)的練習題庫建議用 .enc,避免學生直接翻到答案;老師發佈作業選「題組網址」時,填同名的 .txt 網址即可,系統會自動找 .enc 解密。上傳到試卷庫兩種都可以。
PART C · 格式
題庫編輯器匯出的就是這個格式。要手改也可以:
題目:計算兩數相加 說明:輸入兩個整數,輸出它們的和。 筆數:2 輸入1_1:5 輸入1_2:3 輸出1:8 分數1:50 範例1:1 輸入2_1:100 輸入2_2:150 輸出2:250 分數2:50 (下一題從「題目:」再開始…)
| 欄位 | 意義 |
|---|---|
| 題目: | 一題的開始,也是題目名稱(同一份試卷裡不要重複)。 |
| 筆數:N | 這一題有幾筆測資。 |
| 輸入N_1、輸入N_2… | 第 N 筆測資的輸入;每行代表程式的一次輸入。 |
| 輸出N | 第 N 筆的預期輸出。 |
| 分數N | 第 N 筆通過可得的分數;一題的滿分=各筆分數加總。 |
| 範例N:1 | 把第 N 筆設為公開範例(不寫就是隱藏測資)。 |
PART D · 帳號
名額
每位老師有學生名額(座位總數)和班級數上限,登入後顯示在最上方。不夠時請洽管理員調整。
PART E · 班級
| 功能 | 說明 |
|---|---|
| 📱 學生登入 QR code/連結 | 顯示這個班級的 QR code、班級代碼和登入連結。可以「📋 複製連結」貼到 Google Classroom 或班級群組,或按「🖨️ 列印/投影用大圖」開出大字版,投影到教室螢幕或列印貼在教室。班主和協同老師都可以使用。 |
| 🔒 關閉加入 | 全班加入後建議關閉,避免有人冒用空座號。已加入的學生照常登入。 |
| 📖 參考解答開放方式 | 設定學生什麼時候能看 Blockly/Scratch 的參考解答(見 E-2)。班主和協同老師都可以設定。 |
| 重設密碼 | 學生忘記密碼、或座位被冒用時使用。作答紀錄保留,學生重新加入並設定新密碼。 |
| 清空座位 | 換學生時使用,刪除這個座位所有作答紀錄。 |
| 增加座位/改名/刪除班級 | 刪除班級要輸入班級代碼確認,所有紀錄一併刪除且無法復原(建議先備份)。 |
| 座號姓名對照 | 伺服器只記座號。姓名只存在老師這台電腦,可以匯出/匯入 CSV;換電腦時記得帶過去(完整備份也會包含)。 |
QR code/連結等同班級代碼
拿到連結的人都能用空座號加入,所以可以貼在班級群組,但不要公開貼在網路上。全班加入後按「🔒 關閉加入」,即使有連結也無法再認領空座號。
| 功能 | 班主 | 協同老師 |
|---|---|---|
| 看進度、題目分析、個別學生、看程式、匯出 CSV | ✅ | ✅ |
| 發佈測驗、看成績、開關測驗、讓學生重考 | ✅ | ✅(可用自己試卷庫的試卷) |
| 開放/關閉加入、學生重設密碼、學生登入 QR code/連結 | ✅ | ✅ |
| 清空座位、增加座位、改班名、刪除班級 | ✅ | ❌ |
| 完整備份、還原 | ✅ | ❌ |
| 邀請/移除協同老師 | ✅ | ❌(可以自己「退出協同」) |
座號姓名對照不會自動共享
姓名只存在各自的電腦。班主可以按「⤓ 匯出對照表」,把 CSV 給協同老師「⤒ 匯入對照表」。協同老師退出或被移除後,他發佈過的測驗和學生成績都會保留。
PART E-2 · 參考解答
學生很容易一卡住就直接看參考解答。老師可以依班級決定學生什麼時候能看。設定位置:班級頁「👥 座位與加入」分頁的「📖 參考解答開放方式」卡片,按一下就切換;班級頂端的統計列也會顯示目前的狀態。
| 設定 | 學生端 | 適合 |
|---|---|---|
| ✅ 通過後才開放(預設、建議) | 這題評分拿到滿分後才能看參考解答,用來對照不同寫法。還沒通過前,評分未過會顯示提示卡。 | 平常練習。舊班級也自動套用這個設定。 |
| 🔓 評分未過 2 次解鎖 | 原本的做法:評分沒通過 2 次就能看。學生容易亂按兩次評分就直接看答案。 | 剛入門、需要多一點鷹架的班級。 |
| 🔒 僅教師 | 學生完全看不到參考解答(伺服器直接拒絕下載解答檔),示範題的「🧭 指引」也一併關閉;提示照常顯示。 | 段考前、想讓學生獨立解題時。 |
限制
「通過後才開放」由學生的瀏覽器判斷,懂開發者工具(F12)的學生理論上可以繞過;要確實擋住,請改用「🔒 僅教師」(由伺服器把關)。
PART F · 進度與作答
學生每次在答題頁按「評分」,成績和當下的程式(或積木)就會自動傳上來。教師管理每分鐘自動更新,也可以按「🔄 重新整理」。
每位學生的通過題數、綜合驗證題、銀牌金牌、匯入次數,以及每個主題的進度。點一列看該生的作答。
每題的作答人數、通過率、平均次數、自己完成人數。通過率低、次數高的題目,代表全班卡關,可以上課講解。
選座號看他每一題的最高分、最近一次分數、次數、通過時間,按「看程式/看積木」檢視作答。
匯出 CSV(Excel 可開),可只匯出 Python、C++ 或積木;也可以下載完整備份。
Python、C++ 和積木(Blockly/Scratch)分開計算,上方的「全部/🐍 Python/⚙️ C++/🧩 積木」可以切換。按「看程式」時,C++ 作答會以 C++ 程式碼顯示。
| 標記 | 意思 |
|---|---|
| 自己完成 | 通過,而且大部分是學生自己打字或拖積木完成的。 |
| 匯入/貼上 | 通過,但程式大多是匯入或貼上的(可能是抄別人的)。這種情況學生不會拿到遊戲幣和獎牌。 |
| 寫死答案 | 程式裡直接寫出測資的答案(例如 Python 的 if n==10: print(55)、C++ 的 cout << 55;),不是真的算出來。同樣不發遊戲幣。 |
看程式時顯示的是哪一版?
已通過的題目,保存的是通過時的版本;還沒通過的,是最近一次評分的版本。
PART F-2 · 學生回報
學生在答題頁左下角按「🙋 回報問題」(測驗中是底部的「🙋 舉手」),選類型(看不懂題目/測資好像有錯/系統出錯/其他)、寫下問題送出。系統會自動附上題組、第幾題、介面,學生也可以勾選附上程式和最近一次評分結果。
限制與自學學生
每位學生每 10 分鐘最多回報 3 次(測驗舉手另計)、每天 20 次,內容 300 字以內;回報都綁座號,不是匿名。沒有登入班級的自學學生只能回報「測資好像有錯」,會送給系統管理員處理預設題庫,不會回覆。
PART G · 測驗
組好的試卷存進試卷庫,就能一次發佈到多個班級,也能用分享碼分享給其他學校的老師。發佈時可以選「📝 測驗」或「📘 作業」。學生不用輸入題組網址,從選單按「開始」就作答。
| 📝 測驗 | 📘 作業 | |
|---|---|---|
| 時間 | 限時,時間到自動交卷 | 不限時,有截止日 |
| 參考解答/遊戲幣 | 沒有 | 有(參考解答需用預設題庫或題組網址出題,並依班級的參考解答開放方式) |
| 評分 | 伺服器評分(看不到隱藏答案) | 和平常練習一樣 |
| 題目來源 | 試卷庫、上傳題組檔 | 試卷庫、上傳題組檔、預設題庫、題組網址 |
| 其他選項 | 每人順序隨機、隨機抽 N 題、允許重考、個別延長、公布成績 | 改截止時間;老師看完成度與遲交 |
.txt 或 .txt.enc,系統會先顯示幾題、滿分多少。| 作答介面 | 說明 |
|---|---|
| Blockly 或 Scratch | 學生開始時自選,作答中可以切換(各介面的積木各自保留)。 |
| 只用 Blockly/只用 Scratch/只用 Python/只用 C++ | 限定介面,不能切換。「只用 C++」由伺服器用 C++ 規則評分,成績記在 C++ 路線。 |
| 都可以 | 學生開始時從 Blockly、Scratch、Python、C++ 四種中選。 |
QX7K-29PM)。可以選擇有效期限(不限、1/7/30 天)和使用次數上限。測驗成績也會出現在其他分頁
測驗的作答會以題組名稱「【測驗】測驗名稱」出現在「題目分析」「個別學生」和匯出的 CSV 裡。
PART H · 分析與報告
班級頁「🧠 知識點」分頁依題目說明裡的「標籤:迴圈・累加累乘」統計:每個知識點的題數、作答人數、通過率(綠≥80%、黃≥50%、紅<50%)與平均次數,通過率最低的排最上面,方便決定上課要加強什麼。下方「熱力圖」是學生 × 知識點,一眼看出誰卡在哪裡。「個別學生」分頁也會列出該生的強項與建議加強的知識點。
標籤從哪來
出題時在題目說明第一行寫「標籤:S1・迴圈・累加累乘」(題庫編輯器的知識點標籤)。S1 這類階段代碼不計入。只統計這項功能上線後的作答紀錄。
PART I · 備份
每年 1、6、7 月,教師管理首頁會提醒「30 天內沒有下載過完整備份」的班級,點一下就到下載頁;可以按「7 天內不再提醒」。系統也會自動清理過舊的資料(已處理超過半年的學生回報、失效的邀請碼與分享碼),學生作答和班級不會被清掉。
⚠ 學期結束建議
先下載完整備份,存到隨身碟或雲端硬碟,再刪除班級,釋放雲端空間。備份檔包含學生作答與密碼雜湊,請妥善保管。
PART J · 防作弊
| 機制 | 擋什麼 | 限制 |
|---|---|---|
| 匯入/貼上偵測 | 直接貼上或匯入別人的程式就通過。 | 只看「自己打的字/拖的積木」比例,不是百分之百準確。 |
| 寫死答案偵測 | 程式直接印出測資答案。 | 把答案拆開算(如 print(50*101))偵測不到;只檢查 2 位數以上的數字答案。C++ 檢查 cout/printf 的輸出。 |
| 伺服器評分(班級測驗) | 隱藏測資的答案只在伺服器,學生拿不到,也無法自己捏造分數。 | 測驗要連網。 |
| 加密題庫(.enc) | 學生直接瀏覽 GitHub 等公開位置看到答案。 | 平常練習與作業在瀏覽器評分,懂技術的學生仍可能取得測資;重要考試請用班級測驗。 |
| 座位卡、關閉加入 | 冒用別人的座號。 | 學生把密碼告訴別人就擋不住。 |
| 參考解答「🔒 僅教師」 | 學生直接看解答。 | 「通過後才開放」只在瀏覽器判斷;要確實擋住請用「僅教師」。 |
建議
標記是提醒,不是定罪。看到「匯入/貼上」或「寫死答案」,點開程式看一下,再找學生聊聊。
PART K · 排解
try/throw、thread、讀寫檔案;每筆測資執行超過 3 秒會被停止。編譯錯誤會附中文提示(💡),可以請學生先看提示。