這是上下學期共用的資訊科技學習平台,以流程圖任務、觀念挑戰、逐步提示與作品檢核串接學生的學習過程,讓教師能同時觀察概念理解與實作成果。
index.html依日期自動導向 115 學年度的當期學生入口:8 月至隔年 1 月為上學期,2 月至 7 月為下學期。teacher.html依日期開啟當期教師後台;各學期中的teacher.html只是帶入學期範圍的轉接網址,實際後台只有一份。firebase-config.js是唯一 Firebase 設定檔;所有學期頁面均引用它。shared/portal.js是唯一的學生登入與入口網版型;shared/teacher.html是唯一的教師後台版型。terms/115-1和terms/115-2僅放該學期教材、任務設定(term-config.js)與圖片。
本專案的互動設計特色,是把「閱讀概念、作出決策、理解回饋、表示流程、完成作品」串成可操作的學習路徑。介面中的每一步都有對應的思考任務,學生的選擇與作品也能成為教師調整教學的依據。
| 互動介面 | 學生需要進行的思考 | 對理解與教學的設計目的 |
|---|---|---|
| 上學期的流程步驟排序 | 依本關程式邏輯安排事件、處理與執行順序,再檢查排列 | 讓學生在操作 Scratch 前先整理演算法,辨認「步驟內容正確,但順序錯誤」的問題。 |
| 下學期的「流程圖教練」 | 先完成三題學習重點確認,再進行四輪、每輪三個方案的決策;比較起點、方向、次數、事件與條件等安排 | 把容易混淆的程式概念變成具體選擇,透過方案回饋辨認哪些差異改變結果、哪些差異影響核心任務成立。教練採預先設計的對話與規則。 |
| 流程圖參考文件與 Mermaid 表示 | 將輸入、輸出、處理、判斷及起訖等概念,對照本關的程式結構;通關後查看 Mermaid code 並繪圖 | 支持學生在文字描述、流程圖與 Scratch 程式之間建立對應。Mermaid 的主流程依各單元預先設計的程式結構呈現,另保留本次教練選擇供回看。 |
| 觀念挑戰與逐步解鎖提示 | 先回答本單元觀念題,再取得解題提示並回到作品實作 | 在取得範例前提供一次自我檢查,讓提示有明確的使用時機;答錯後可重試,通關證明與集章提供可見的階段目標。 |
| 分步浮動視窗與共用版型 | 每次專注於目前的閱讀、確認或決策活動,依明確按鈕前往下一步 | 控制同一畫面的資訊量;共用的名稱、版面與導覽位置,讓學生跨學期使用時可沿用操作經驗。 |
| 全班任務儀表板、作業檢核與作答分析 | 學生提交截圖或影片;教師查看作品、選定採認附件,結合作答紀錄判斷理解情形 | 空心與實心狀態區分「已有作品」與「已核定」,讓教師掌握需要支援或尚待檢核的學生;首次答對率與選項分布可協助找出全班共同的迷思概念。 |
例如,下學期學生在流程圖教練中選擇角色的起點、方向與重複方式後,會看到該安排的回饋,再對照流程圖與實際程式。這個過程的教學重點是讓學生說明「這個安排會造成什麼結果」,並在實作中檢查自己的推論。上學期則先以流程排序建立循序觀念,再銜接較多決策的任務。
上述內容是介面的教學設計目的。是否實際改善理解,仍需結合作答前後表現、錯誤選項的變化、學生對流程的解釋與作品檢核結果觀察;完成任務數與使用時間可作為參考,不能單獨代表學生已理解概念。
rosters/{studentId}:共用名冊。users/{uid}.profile:共用學生身分。users/{uid}.terms.{termId}:該學期任務、證書與成績。users/{uid}.terms.{termId}.attendance.{YYYY-MM-DD}:學生當日登入時間;教師可依日期查詢出席。users/{uid}.terms.{termId}.usage:本學期有效使用秒數與每次上課紀錄。登入會建立紀錄;頁面可見時每 2 分鐘累積,離開或關閉頁面則以最後活動時間結束該次紀錄。users/{uid}.activeSession:目前有效的跨裝置學生登入識別;新裝置登入時會更新此資料。- 學生登入僅保留在目前瀏覽器頁籤的工作階段;關閉頁籤後重新開啟入口網,必須再次輸入驗證碼。
users/{uid}.teacherProgress.{termId}:該學期教師核定資料。users/{uid}.teacherProgress.{termId}.taskCompletions:運算思維與程式設計由教師檢核 Classroom 附件後,依指定單元寫入的完成紀錄;核定時保存採認的附件連結,completedAt使用該附件的 Drive 建立時間(無資料時退回 Classroom 作業更新時間),reviewedAt保留教師核定日期。學生入口只能讀取,不能自行勾選或修改。users/{uid}.teacherProgress.{termId}.taskHistory:每次附件檢核的歷史事件,供教師端依週回看 32 項任務的成長曲線;曲線以completedAt(附件上傳日期)計算。- Notion 整理直接沿用
taskCompletions的單元與採認附件,不再使用獨立的 Classroom 任務對照設定;舊teacherSettings/notionSync資料保留但不再讀寫,不需重設資料庫。 quizAnswerKeys/{questionId}:教師專用的題目答案金鑰。正確選項與流程排序解答不放在學生端網頁,避免從網頁原始碼直接取得答案。quizAttempts/{uid}/events/{attemptId}:學生每次作答的不可修改紀錄。Firestore Rules 會依私密答案金鑰判定正誤,供教師端的「題目作答分析」查看作答人數、首次答對率、答對率、選項分布與平均作答時間。
「題目作答分析」可選擇各班或「全年級」(701–711 班),讀取本學期逐題紀錄。全年級合併相同題號,統計作答人數、次數、首次答對率、總答對率、選項分布與平均作答秒數;比率依實際學生/作答計算,不取各班百分比平均。學生繼續作答後會即時更新,切換範圍會停止原有讀取。載入中、讀取失敗與確實沒有紀錄會分開顯示,讀取失敗時可按「重新讀取作答紀錄」。既有逐題紀錄可直接分析,不需重作測驗;只有通關證書、沒有逐題紀錄的舊資料,無法還原選項分布或首次答對率。
部署前請將根目錄的 firestore.rules 發佈至 Firebase,並以本目錄作為網站部署根目錄。首次啟用題目保護時,教師也要登入 shared/quiz-key-import.html,匯入本機保管的私密題庫金鑰檔;該檔案不可推送至 GitHub。
下一個學年度只需新增新的學期內容資料夾,並將 firebase-config.js 的 academicYearId 更新為新的學年度。
兩學期集章測驗的發布程式採用壓縮、局部變數改名與文字跳脫,增加直接閱讀開發者工具原始碼的難度;畫面文字與操作不變,答案仍保存在教師專用私密題庫,驗證方式不變。此處理不是加密,也不作為安全或防作弊保證。
兩學期集章測驗作答中,僅題目與選項區禁止透過瀏覽器複製/剪下,操作時顯示提醒,不扣分、不換題。其他頁面區域、閱讀教材及完成後的結果仍可正常複製;保留文字選取、鍵盤作答與右鍵選單,不干擾一般閱讀操作。此限制不會讀取剪貼簿,也不需要額外授權;不能阻止螢幕擷取、拍照或其他外部工具。
兩學期資訊生活/資訊安全集章測驗加入失焦換題:測驗途中切換分頁、切換視窗或離開頁面時,立即遮住題目並暫停送出;3 秒內回來恢復原題與原選項順序,超過 3 秒才改出同單元的另一題。回來後均需重新選擇答案。離開時間以實際失焦與返回時間差計算,不依背景計時器次數判斷。已完成的作答進度保留,不因失焦扣分或記為答錯;返回章節與完成測驗後停止偵測。答案仍依原有 Firestore Rules 驗證,已送出的紀錄保留;失焦前的延遲回應不會套用到恢復/換題後的題目或增加當次通關進度。此功能只作為課堂專注提醒,不能可靠判定開發者工具、螢幕擷取或外部 AI 使用,也不作為作弊證據。
本系統目前仍存在登入驗證風險,適合作為教材、上課進度與教師輔助檢核使用;不建議將平台自動記錄或顯示的結果直接作為正式評量成績。題目保護可避免由網頁原始碼直接取得正解,但作答分析仍應作為教學診斷使用;正式成績應由教師依作業、測驗與人工覆核結果判定。
兩學期的測驗集章選單,已通關的小卡顯示「✓ 已通關・可再次挑戰」。進入該單元的閱讀頁或再次開始測驗時,顯示上次通關的正確率、作答時間與通關日期(台灣時間),方便學生比較自己的學習表現;未通關的單元不顯示通關提示。
通關提示沿用各關卡的配色,滑鼠移入時也與按鈕同步變色。關卡提示、證書牆及大擂台解鎖狀態共用目前登入學生的同一份即時進度,不各自重複讀取;完成通關後自動更新。集章數僅計算該學期八個有效且不重複的證書,並相容既有證書編號與章節欄位。登入及資料尚未同步時顯示「正在同步」,不先判定為零章;暫時無法更新時保留已讀取的進度並顯示提醒。更換學生或離開頁面會停止原有即時讀取,避免帶入前一位學生的紀錄。
每次成功通關另存最近一次紀錄,不改變原有證書保存與評分方式;上學期的最佳證書仍依正確率及耗時比較保留。既有學生資料直接沿用證書紀錄顯示,未曾保存的耗時等欄位標示「未記錄」,不補造資料或要求重做。提示依目前登入學生與學期讀取,不使用跨帳號共用的瀏覽器暫存。本功能不需重新部署 Apps Script、修改 Firestore Rules 或重新匯入題庫金鑰。
上下學期共用同一套挑戰規則,完成該學期資訊生活八枚印章後開放;原有題庫與答案驗證方式保留。
- 每個學號每天限挑戰兩次,各難度合計,台灣時間午夜恢復兩次;上下學期的每日額度分開計算,並非整學期僅能挑戰兩次。成功登記開始即使用一次;重新整理、關閉頁面或中途離開不退回次數。資料庫以同一筆交易登記挑戰與每日次數,離線或無法確認權限時不開放開始。
- 每局重新洗牌完整題庫與選項。每題十秒,簡單/普通/困難分別有三/二/一條生命;答錯的題目放回待答佇列。
- 作答及等待答案驗證期間,切換分頁、離開視窗或最小化立即視為本題答錯並扣一命。同一次離開只扣一次;離開期間不連續扣命,返回後須確認才開始下一題。首頁、英雄榜、已結算的答題回饋與結果畫面不扣命;不會將背景中的下一題自動開始計時。
- 題目與選項禁止複製/剪下並顯示提醒,其餘區域不限制。每題只結算一次;重複送出、逾時、失焦與延遲回應不會重複加分或扣命。驗證失敗重試不重設本題倒數。
- 結果分別顯示答對、真正答錯、逾時與離開畫面的次數,並保存本次挑戰紀錄。逾時/失焦不另製造選項作答紀錄;結果保存失敗可重試,不額外使用每日次數。失焦只代表離開作答畫面,不作為作弊證據。
- 英雄榜按學期及難度區分,每人僅列個人最高分,顯示前二十名。登錄較低或相同成績不覆蓋最佳紀錄;既有重複紀錄保留於資料庫,畫面合併後再排名。結尾
00的測試帳號可挑戰與保存個人紀錄,但不列入正式英雄榜。
本功能須先發布本版 firestore.rules,再更新網站;不需重新部署 Apps Script 或重新匯入題庫金鑰。只更新網站而未發布規則時,無法開始新挑戰。既有學生進度、集章與歷史英雄榜資料不重置。首頁會顯示今日剩餘次數;開始或保存失敗時提供明確提醒,不以瀏覽器暫存取代資料庫限制。
- 同一瀏覽器:同一時間只能使用一個學號;同學號可開啟多個課程分頁。若改以不同學號登入,系統會提示先關閉原學生的所有課程分頁。
- 不同裝置或瀏覽器:同一學號在新裝置登入後,原裝置會在連線時收到登入識別更新,自動回到入口並顯示「此帳號已在其他裝置登入」。離線中的原裝置會在恢復連線後退出。
- 個人暫存資料:流程圖、Scratch 解鎖與補充單元開啟紀錄會依學生分開儲存,不會因同一台電腦曾使用其他學號而混用。
教師後台的「作業檢核」可依班級讀取 Google Classroom 課程、指定作業與學生附件,開啟作品後由教師核定通關或標示補件。讀取 Classroom 資料時不會更動原始作業;系統已內建連線網址。
- 以教師帳號開啟正式教師入口
teacher.html,登入後進入「作業檢核」。 - 選擇班級,按「讀取對應課程」,再指定本節課作業。Classroom 作業命名可參考「流程圖指定單元」的完整編號與名稱,例如
2026/09/23 任務一:2-2-3 動畫實作。選擇作業後,系統會自動對應「2-2-3 動畫實作」;日期與任務前綴不影響辨識。名稱不符或包含多個單元時,須手動確認流程圖單元後才能檢核,避免通關紀錄寫入錯誤單元。此功能不會修改 Classroom 原始作業名稱或已保存的歷史紀錄。 - 系統將 PNG 圖片與 Google 繪圖(雲端硬碟檔案或
docs.google.com/drawings/d/...連結)列為運算思維附件,MP4 列為程式設計附件;教師開啟作品後選定一件採認,再核定通關。同一作業有多件附件時不會自動挑選;Google 繪圖會開啟原始連結,不會自動轉存為 PNG。
學生須將作品加入 Classroom 作業附件;僅貼在私人留言中的連結不屬於作業附件,不會被此功能讀取。
Classroom 學生帳號會以 qfm15xxxxx@mail.qfm.kh.edu.tw 格式對應平台學號;不符合此格式的 Classroom 成員會顯示為「未對應」,便於教師檢查名冊。
- 作業檢核可篩選「全部、待檢核(含新作品)、需補件、已完成」,並依座號、姓名或學號搜尋。「已完成」指運算思維與程式設計兩項均核定;集章與流程圖依原有系統紀錄顯示。篩選只改變學生小卡,不改變全班繳交統計的分子與分母。
- 開啟學生小卡後,可用「上一位/下一位」連續檢核。每輪沿用開啟時的篩選清單與座號順序,學生核定後不會因小卡從待檢核篩選消失而跳過下一位。「儲存後前往下一位」只儲存當次點選的項目,不會同時核可另一項;儲存失敗會留在原學生。另一項有未儲存的補件說明時,也會先保留在原學生。
- 附件狀態顯示最後成功更新時間、下次自動讀取倒數及讀取失敗提醒;每分鐘自動讀取可關閉。失敗時保留上次成功資料,明確標示不是最新狀態。切換班級或作業會重設附件狀態,延遲回應不會覆蓋新班級/作業。
- 「需要補件」須選擇原因,可補充最多 200 字;選擇「其他」時必填說明。原因與檢核結果一併保存,之後重新開啟可查看;此操作不會自動發送 Classroom 留言。
- 每次檢核保存該類附件的識別與可讀取的修改時間。新增、替換、移除附件或讀到同一檔案的新修改時間時,標示「作品/附件已異動,待複核」,不自動寫入核定或抹除原採認歷史。既有通關與成長紀錄保留,教師重新檢核後才更新採認;成長日期仍使用原有附件建立時間,教師審核時間另存。檢核視窗開啟途中若附件或單元更新,必須重新載入該學生後再核定,補件說明草稿會保留。舊檢核紀錄未保存附件快照時,僅依可確認的檔案識別與日期變化提醒,不要求全部重評。
- 任務儀表板可開啟投影模式,隱藏教師導覽與管理控制,保留班級、本節作業、集章/流程圖單元、更新狀態、上課框線及領先標示。桌面採八欄並依畫面高度調整卡片;小螢幕改為四欄,班級人數超出畫面時可捲動。投影時僅顯示正式學生,測試帳號仍保留於一般教師畫面。可按退出按鈕或 Esc 返回;瀏覽器不支援全螢幕時,仍可使用頁面內投影版面。
同一份 Google 繪圖的內容修改偵測,需要更新並重新部署本版 shared/google-classroom.gs,讓 Drive 中繼資料回傳檔案修改時間。沿用既有唯讀權限,不修改 Classroom 原始作業或附件。無法取得修改時間時,畫面會提醒偵測限制;舊部署僅能依附件連結與作業更新時間保守提示,不能保證辨識同檔案的內容修改。
教師端的「Notion 整理」有獨立班級切換,名冊匯出與同步均以此處選定的班級為準,不會更動或跟隨「作業檢核」的目前班級。分類、單元與採認附件直接沿用作業檢核紀錄,不必再次選擇課程、作業或儲存對照。每位學生可整理四類共 32 項學習展示卡:
學號結尾為 00(例如 1510100)視為測試帳號,在 Notion 整理的人數、來源統計、名冊 CSV、32 項作品索引 CSV 與直接同步中一律排除。Apps Script 後端同樣略過這類帳號,請更新並重新部署以套用後端排除規則。已存在於 Notion 的測試頁面不會自動刪除,也不再由同步程式更新。
教師端仍保留測試帳號的管理、檢核小卡與個人進度紀錄,並標示「測試」。班級正式人數、圖片/影片繳交人數與分母、出席/上課人數與出席率、全班平均完成項目/完成率/累計時間、每週全班平均成長曲線、任務前五名,以及各班與全年級題目分析均排除測試帳號。個別查看測試帳號的成長曲線僅供操作測試,不列入全班平均;原始 Firebase 資料不刪除。
- 資訊生活 8 項:依本學期既有測驗集章紀錄產生證書 PNG,不需重作測驗。
- 演算流程 8 項:依既有流程圖完成紀錄產生證書 PNG;上學期須完成排序,下學期須完成 Mermaid code 產生,僅開啟教練或完成討論不算集章。
- 運算思維 8 項、程式設計 8 項:直接讀取該學生、本學期、指定單元的教師採認附件,不重讀 Classroom 的全部附件或另配對作業;教師在檢核時保存課程/作業識別與採認檔案,新紀錄也保存作業名稱。未核可、需要補件或缺少完整採認資訊者保留空白卡,不匯入作品連結。
上下學期的程式設計頁面均有「流程圖集章牆」,可查看已集章數、單元、通關時間及通關得分(有紀錄時),並下載證書 PNG。資訊生活證書也可查看/下載 PNG。共同證書版型由 shared/learning-certificates.js 產生,供學生查看與教師同步使用。
教師可同步指定任務,或按「同步本班全部 32 項」,每次分批處理 4 位學生;可在目前批次完成後停止,之後再次同步更新原卡。同步由教師按鈕啟動,不是在學生通關當下自動上傳。CSV 作品索引也包含完整 32 項、通關時間、得分、正確率及作答秒數(有紀錄時)。
證書 PNG 經教師限定的 Apps Script 直接上傳至 Notion,附在作品卡的「作品附件」、正文與封面,不另建公開學生圖片網址,也不需新增 Google Drive 寫入權限。未變更的證書沿用既有圖片,更新通關資料或學生姓名後再同步會刷新證書;原有 Classroom 作品連結仍受 Google Drive 權限控制。系統會自動補齊 Notion 的「證書索引」、「通關得分」、「正確率」、「作答秒數」欄位;金鑰仍只保存於 Apps Script 指令碼屬性,不存入網站或 Firebase。
「可同步人數」只表示平台有可用的來源紀錄,不是 Notion 圖片同步成功數。再次同步會更新同一作品卡,補齊缺少的封面、作品附件與正文圖片,並清除系統留下的「尚無本學期通關紀錄」舊提示;舊檔案會先檢查上傳狀態,失效或不存在時重新上傳。證書寫入後會讀回確認各欄位與正文,不只憑舊索引或送出人數判定成功;個別學生同步失敗時列出學號、姓名、任務與原因,繼續處理其餘學生,失敗項目不計入成功件數。修正原因是空白卡轉為已通關時,舊提示原本未清除,造成目前通關狀態與 Notion 顯示不一致。補圖不需學生重新測驗,也不刪除作品卡或教師筆記。
證書補圖與結果確認需部署 learning-archive-v4 版 Apps Script;教師端會阻擋舊版直接同步並提示更新。請以最新 shared/google-classroom.gs 更新現有 Apps Script 專案,部署新的 Web App 版本後重新開啟教師頁面,再同步原班級、原任務。沿用原本的 Web App 網址、Notion 指令碼屬性及權限,不需重設 Firebase 或 Notion 資料庫。
既有證書圖片更新採用 Notion 專用的區塊更新格式,不共用新增圖片的完整格式,避免重複同步時因 image.type 被拒而出現 HTTP 400。若已部署較早的 v4,仍須套用最新指令碼並新增部署版本;原卡及通關紀錄可直接沿用。
同步前會先檢查「學生名冊」的班級,以及「學習作品」的班級、學期、類別與教師狀態選項,僅新增本批需要但尚未建立的選項,再查詢與更新作品,避免切換到新班級時因選項不存在而中止。保留原選項、顏色及說明,不改動既有學生的班級;已存在的選項不重複寫入。若設定更新或讀回確認失敗,會在寫入學生資料前停止並顯示原因。這項修正同樣須更新 Apps Script 並新增部署版本。
欄位說明為空白、null 或未設定時,不會送出空字串的 description,避免 Notion 拒絕更新選項;原有非空白說明仍完整保留。不需為了同步而手動填寫欄位說明。
本功能須更新並重新部署 shared/google-classroom.gs。舊版核可紀錄若未保存採認附件,需回「作業檢核」重新選定並核可。重新同步會更新系統產生的附件區塊,不保留未採認的作品連結;通關紀錄移除後,對應的系統證書圖片會移到 Notion 垃圾桶,作品卡保留。教師自行補充的內容應放在自動管理區塊以外。完整欄位、作品牆展示與操作方式見 Notion 學習作品整理。