董秀萍,汲雪飛,吳巧梅
(1.北京工商大學機械工程學院,北京100048;2.裝甲兵技術學院電子工程系,吉林長春130117;3.北京工商大學計算機與信息工程學院,北京100048)
基于網絡的教務排課系統研究與開發
董秀萍1,汲雪飛2,吳巧梅3
(1.北京工商大學機械工程學院,北京100048;2.裝甲兵技術學院電子工程系,吉林長春130117;3.北京工商大學計算機與信息工程學院,北京100048)
本文基于教務管理中排課系統存在的基本問題,詳細分析論證案例院校的排課流程及主要實現方法,基于Browser/Server結構,在Visual Studio集成開放環境下采用C#和SQL Server開發排課系統。該系統實現了人機交互、智能輔助排課、沖突檢測等功能,并成功地與教務管理系統的其他功能模塊進行了數據共享。
教務管理;排課;數據共享
排課是每年教務管理人員的首要任務,如何科學合理地進行排課,根據不同年級、不同班級、不同教員的特點快速、有效地進行排課,是教務管理人員一直期待解決的問題,這就亟需一套排課系統來解決此當務之急。在計算機和互聯網普遍應用的今天,作為信息化教務辦公管理系統的一部分,排課系統如何與成績系統、選課系統、教學評價、考勤系統等教務管理其他子功能模塊科學有效地相結合,同樣是必須考慮的問題,也是排課系統開發的重點問題之一。
自從20世紀50年代開始,國外就有人開始了對排課的研究,經研究提出解決問題的方法主要有:模擬手工排課法、圖論方法、模擬退火法和遺傳算法排課法等。國內針對排課問題也相繼研制出了一些排課軟件,但是由于排課需要考慮的因素眾多,真正能夠很好地解決排課問題的軟件卻很少。國外的研究表明,解決大規模的課表編排問題光靠數學方法是行不通的。因為影響排課的因素很多:教師、班級、時間、地點、時段等因素之間的關系難以運用統一的方法進行模式化,而在某些院校內還可能會出現某些特別的限制條件,通常這些特定條件無法歸結出固定的規律,但往往又是決定性的,所以在這種情況下只能具體問題具體分析、具體問題具體解決。在仔細研究了案例院校排課特點之后,我們發現該校的教學靈活度非常大,沒有固定的開始時間和持續周數,而且上課的地點和教師具有很大的指定性(如某周在另外的教室上一節或多節課),這樣,如果使用推理方法進行自動排課,是無法生成最終解決方案的,就算生成半成品,那么在后續的交互改進過程中工作量照樣很大,還不如直接重排。所以,我們提出了以手工排課為基礎,利用網絡和軟件的功能性最大化提高排課速度,減小重復性操作的解決方案,并實現與教務管理系統其他模塊(課表模塊、考勤模塊等)的數據統一。
對于排課系統來說,首先要解決的問題是如何建立一個合理的數據結構,數據結構的建立必須要對排課的各個細節問題都有深入的理解,這樣才能為排課系統打好基礎,在將來的應用過程中數據結構通常不會再改變。其次要確定排課系統的核心環節——上課時間地點信息,包括上課班級、授課教員、上課地點、使用裝備及數量、上課時間等信息。上課時間的記錄,經過考慮決定使用周、天、時間3個條目的方式進行記錄,這種記錄方法相對于絕對日期記錄的好處在于,在排課、課表、考勤幾個模塊中可以直接以此作為課程的坐標,不需要進行換算,提高了程序的效率,而且相對時間是很靈活的,有利于處理意外情況。另外,此案例的特殊之處主要有:
(1)學校存在一個標準的學期時間段:每年9月到次年1月為第一學期,1月到8月為第二學期,而對于班級而言,沒有準確的學期概念,可能是從任意時間開始作為此班級學期的開始時間。
(2)班級在上某些課程時需要編排使用器械情況,在排課過程中應可以為某門課的某個特定時段課程定制器械,包括器械的名稱和數量。
(3)具有合班上課的情況,要求編排好合班課程后其他相應課程自動排好。
(4)課表的格式是將每一周的課程都顯示出來,橫軸是星期,縱軸是周數。這是由院校方提出的要求,目的是詳盡地顯示出多變的課程屬性并與老式課表具有相同的格式,這種類型的課表格式廣泛出現在課程屬性隨時間多變的任職培訓類院校中。
排課系統的主要排課流程可以分為三個階段:排課前置信息準備;排課;后續顯示與重用。圖1為排課的整體組織結構。

圖1 排課的整體組織結構
根據排課系統的要求和特殊條件的情況,系統的整體模型架構如圖1所示,其中在制定教學實施計劃之前必須保證所有的排課前置信息都已經輸入完整。
根據上文所述特殊條件(1),我們發現對于每一個班來說,其起始周時間都是不同的,但為了使用相對時間進行表示,就必須確定一個起始周時間,也就是這個班上第一周課的時間,否則在生成課表時無法顯示出絕對的日期,而沒有將周數與學校學期起始周時間關聯是因為一旦學校的起始周時間有改變,那么全校的課表都會發生變化,這樣不利于系統的穩定。所以,我們增加了班級教學信息表,這個表最重要的功能就是記錄了這個班級起始周的時間,這樣,在排課的過程中就可以清晰地進行操作,圖1表示了待排課程的數據關系,有了這些關系,就得到了課程、班級和起始周時間這幾條關鍵信息,再在排課界面對具體的時間、教員、教室和裝備信息進行選擇即可完成。在教學實施計劃中,我們加入了教室、教員和裝備的選項,目的是為了提高排課效率,在排課的過程中就可以以此作為侯選進行選擇,而不是從全校的教室列表中選擇某一個教室。對于條件(3),我們在排課初始對是否有合班情況進行檢查,如果有,則將合班排的這門課直接進行導入,而非將此信息重復儲存到各個合班的數據庫中,減少了數據的重復度,增加了數據庫的合理性。
本系統用Visual Studio2008、C#和SQL Server數據庫實現上述功能。通過對排課系統流程和模型的整體分析,構建了排課系統的數據庫,其中包括課程詳細表、教學實施計劃表、班級教學總信息表、班級上課時間地點表四個主要數據表。表結構如圖2所示。

圖2 數據表結構
在進入排課之前,先對教師、教室、裝備、班級、學期等信息進行編排,每一個模塊在未來的運行中都可以進行動態的維護。在排課時,為了提高效率,最大限度地減小重復性操作,同一門課在編排過程中可以通過簡單的復制粘貼進行操作。
在沖突檢測模塊中(如圖3所示),對以下條件進行了篩選:同一班級、教師、教室或裝備在同一時間內不能上兩門課,教室的容量乘以一定比率(可動態設置)不能小于上課各個班級人數總數等。排課操作界面如圖4所示。

圖3 沖突檢測算法流程

圖4 排課界面
排課系統的使用實現了較高的效率,友好的操作界面使用戶很容易就能上手,適用于大規模人員同時進行排課,最大幅度地縮短了排課周期。在排課完成后,提供了功能強大的課表顯示和打印功能,同學和老師可以方便地以各自的用戶名登錄系統,自助式地進行打印。在使用過程中,排課系統達到了預期的效果,在短短兩天時間內完成了全校學年課表的編排,并在后續的課表必要修改中得到了預期的簡便、準確的效果,而且很好地和教務系統中的其他模塊特別是考勤模塊實現了聯合,取得了實質性的成功。☉
[1]劉立軍.學生信息管理系統的研究和開發[J].泰州職業技術學院學報,2005(2):63-67.
[2]王柏.分布式計算環境[M].北京:北京郵電大學出版社,2000.
[3]Hans Van Viet.Software Engineering-Principles and Practice,2nd Edition[M].New York:John Wiley&Sons,2000.
[4]Alex Kriegel.SQL寶典[M].北京:電子工業出版社,2003.
(編輯:金冉)
book=70,ebook=96
TP311.52
B
1673-8454(2010)15-0070-03