📖軟體由來
這是我前陣子在測試目前的AI有沒有辦法寫出排課軟體時試寫的作品。身為一個以前當過十幾年教學組長的老師,排課對我來說一直是學期初最頭痛的事情之一。
用我以前當教學組長排了十幾年課的經驗,用我覺得最方便的流程來設計的。不過我在六班小校,所以我測試軟體時,只用六班來排課測試,沒試過大校多班多教師的,有興趣的老師們可以自己再試試看。
整個系統是用 Google 的 Gemini 3.5 Flash 大型語言模型輔助編譯與設計製作的。從介面設計到自動排課演算法,都是在AI的協助下完成的。這也讓我深刻體會到,AI已經不再是科幻電影裡的情節,而是真真切切能幫我們解決實際問題的工具。
⚡核心功能總覽
這套排課系統具備以下特色:
🎓排課實戰應用
🏫 小校排課的最佳幫手
對於像我這樣在六班小校服務的老師來說,這套系統真的幫了大忙。以前用 Excel 排課,每次都要手動檢查衝堂,一個不小心就要重來。現在只要照著五個步驟走,系統會自動幫你避開所有衝突。
特別是「雙向對照排課」功能,當自動排課後還有少數課程因為限制條件無法排入時,系統會自動比對班級和教師的時間,用綠色標示出兩邊都是空堂的「完美時段」,點一下就搞定,不用再自己比來比去。
📋 引導式操作流程
系統採用上方橫式分頁標籤,從第一步到第五步一目了然:
- 年級與班級設定:設定年級、班級,並可指定不上課時段
- 時間框架設定:設定每週天數與節數,以及教師不可排課時段
- 課程計畫與配課:設定各科每週節數,建立教師名冊,進行配課
- 預排指定時段:將需要固定時段的課程先行排入
- 執行自動排課:一鍵啟動演算法,1.5秒內完成全校課表
📤 彈性的匯出選項
排好的課表可以輸出為 PDF 或 Word 格式。如果有其他學校要用的系統可以匯入排課資料的話,老師可以匯出排課資料,自己再請AI把格式調整成你們學校用的系統可以匯入的格式。
系統採用 Landscape (橫式) A4 排版,包含行分割防截斷設計,確保一班一頁,列印不跨頁,品質非常專業。
🔧使用教學:從零開始
🚀 快速開始
- 點擊上方「立即體驗排課系統」按鈕,開啟排課系統網頁。
- 按照頂部橫式選單的五個步驟依序操作。
- 先設定年級與班級,再設定時間框架。
- 建立課程計畫與教師名冊,進行配課。
- 如有需要,預排指定時段的課程。
- 最後點擊「開始自動排課」,系統會自動完成全校課表。
📌 重要提醒
- 資料備份:系統頂部有備份功能,請務必定期備份,避免瀏覽器關閉或重新整理導致資料遺失。
- 衝堂防呆:系統會自動偵測教師同節衝堂,並發出警告阻擋指派。
- 預排優先:預排的課程會被保留,演算法會自動避開這些課程進行排課。
- 每週節數上限:系統會阻擋超額排入,保護每週授課上限不超支。
🎁 進階功能
- 課程拆分:可將彈性課程拆分為多個子課程,分別指派給不同教師。
- 批次指派:可勾選多門課程,一次指派給同一位教師。
- 關鍵字搜尋:可快速搜尋特定班級、學科或教師。
- 課表直接調整:排課完成後,可直接點擊課表格子進行微調。
💡技術亮點
這套系統在技術上採用了以下架構:
React 18 Tailwind CSS Lucid Icons html2pdf.js docx.js CSP 演算法 Babel JSX
系統採用單一網頁架構 (Single-File App),所有邏輯、樣式與資料處理皆整合在 index.html 內,下載至本機即可離線使用。這種設計讓部署變得非常簡單,不需要安裝任何軟體,也不需要後端資料庫。
核心的防呆限制性規避演算法 (CSP),能在毫秒間自動計算並填入最佳課表,自動避開班級不上課、教師不可排課及教師同節衝堂,大幅節省了排課時間。
💻開源專案
🤝結語
這套排課系統是我用十幾年排課經驗,結合AI輔助開發出來的作品。雖然我只在六班小校測試過,但系統的設計應該能適用於不同規模的學校。有興趣的老師們可以自己試試看。
沒有留言:
張貼留言