實現方法
要編寫一個實用排課系統,最主要解決兩個問題。第一是避免課程衝突,完成所有的課程編排。這個問題可通過設計完善的排課算法實現。第二個問題是編排的課程要合理,使學校、教師、甚至班級學生滿意。這點不能通過算法簡單實現的。因為我們面對的不是一個規則,而是面對不同的教師要求,不同的學校環境。解決這個問題最好辦法是軟體提供有效的前期條件設定和後期課程調整,才能確保課程編排合理。
軟體類型
目前市面上所見的排課軟體可分三種類型:手動型、自動型、混合型。
手動型
傳統的排課軟體一般側重手動。理論上手動拖曳放置更加符合排課者的意願。然而由於課節數目較多,教師與教師之間,課節與課節之間的衝突與牽連甚大,排課者面前繁雜的、牽一髮動全身的課程編排面前,容易顧此失彼,導致排課失敗。
自動型
軟體隨機或通過一些通用的排課算法,自動幫排課者完成課程編排。自動型的優點是速度快,省事。但自動排出來的課程仁者見仁,智者見智,不容易被排課者接受。
混合型
即手動、自動結合的類型。這也是目前排課軟體中比較科學的一種類型。雖然大部分排課軟體都號稱手動、自動相結合,其實真正能做的少之又少。真正的混合型手動部分應該有足夠的排課指引,自動部分應該有精確的條件設定,使手動編排課程和自動編排的課程結合成的課程表,都符合排課者的意願。混合型對排課算法要求非常高,因為程式在用戶完成了手工排課後,面對的是一個非常複雜的“半成品”,在這半成品上做到百分之百通過餘下課程無疑是對算法的一種嚴峻考驗。