余 波
(廣東惠州商貿旅游高級職業技術學校,廣東 惠州 516001)
隨著計算機和互聯網技術的發展,社會的信息化程度越來越高,中職學校傳統的手工或半自動化排課系統已跟不上現代教育的節奏。手工處理不但工作強度大,而且容易產生操作上的失誤,信息查詢更是非常不方便。另外,手工制作教學管理系統工作中的各種報表也需要浪費大量的人力和時間,這就在很大程度上影響了學校管理工作的效率,甚至影響正常的教學進程。運用現代化的手段、特別是網絡化進行科學管理,已經成為一個亟待解決的問題。校園網的普及,使得建立全面的具有通用性、開放性、實用性和靈活性的網絡教學管理體系成為必然趨勢。
在惠州商貿旅游高級職業技術學校,智能排課系統是網絡教學管理系統的核心部分。現階段,中職學校的班級和學生是固定不變的,老師在上課時段到班級上課,但每位老師的課時量較多,智能排課系統采取智能算法,主要解決老師上課時間的沖突問題和保證老師上課時間的不連續性問題,在此基礎上,還應滿足個別老師的特殊上課時間要求。
軟件需求分析[1]就是把軟件計劃期間建立的軟件可行性分析求精和細化,分析各種可能的解法,并且分配給各個軟件元素。需求分析是軟件定義階段中的最后一步,是確定系統必須完成哪些工作,也就是對目標系統提出完整、準確、清晰、具體的要求。
1.惠州商貿旅游高級職業技術學校是一所國家級重點中專,2012年招生專業達到48個,總招生規模5000人,在校生約1.6萬人,共174個教學班,540多名教師,且目前分別在三個校區上課。如何制作分課表和課程表是每學期學校教學工作的重中之重。因招生規模的迅速增長,專業發展極不均衡,導致師資出現結構性缺口的可能性比較大。例如,以平均每位教師每周授課18節來計算,全校周總課時數除以教師總人數得到的結果時小于18的,但是在不同的專業上來看,可能會出現遠大于18節/周的情況。所以,能否完成排課是智能排課系統需解決的首要問題。
2.少數教師因各種情況,需要在每周的特定時間上課,在滿足第一點的前提下,系統需盡量滿足特定時間上課的問題,所以在排課時需對部分條件設置優先級。
3.需避免同一門課程在短時間內上完的問題,即排課不連續問題。
4.需避免同一老師連續在不同校區上課的問題,使老師的上課地點相對固定。
5.進行適當的用戶權限管理。根據權限大小用戶分為系統管理員、教務員、教師和學生,他們的權限如下:
(1)系統管理員。為本平臺的日常網絡維護管理,擁有全部的功能,對系統進行修改。
(2)教務員。設置選課基本信息,如可選課,上課班級,上課地點等,設置排課規則,確定最后的排課方案等。
(3)教師。可以修改個人信息,選擇授課班級和課程,查看上課時間、地點等。
6.系統采用B/S模式,運行平臺為Windows+SQL Server,使得系統能有很好的可擴展性和保密性。
系統必須首先解決好教師的課程沖突問題,和老師上課的連續性問題。
排課問題從數學上講,是一個在時間、教師、學生和教師四維空間,以教學計劃和各種特殊要求為約束條件的組合規劃問題,其實質就是解決各因素之間的沖突。分析了國內外對排課問題的研究,根據中職學校的教學體制的特點,采用基于優先級的自動排課算法。該算法通過劃分等價類、計算優先級等方法降低了課程調度的算法復雜性,從而可以以較快的速度獲得較為滿意的排課結果。
智能排課系統的主要功能是把各系別、班級或各授課部門的課程進行了匯總,然后根據學校的教學計劃制訂各班級的課程編排表。

圖1 智能排課系統整體框架圖
(1)業務流程整合。建立以排課為主線的完整業務流程,從開課管理,到分課管理,再到智能排課,能有效避免因教師資源不足而引起的課程沖突問題。
(2)管理流程整合。智能排課系統是網絡教學管理系統的核心部分,它不同于一般的業務流程處理機制,對排課的過程和結果,在時間上、空間上和準確性上都有比較高的要求。
(3)教學資源整合。排課是落實教學任務、實施教學活動的依據。因此排課是學校教學管理中十分重要,又相當復雜的管理工作之一,合理配置教學資源,使整個教學能夠有計劃和有秩序地進行。
智能排課系統是保證教學工作正常開展的關鍵,梳理排課管理流程對后期的軟件的開發具有重要的意義。結合本校的管理特點和其他學校的管理模式,整理出智能排課系統的業務流程,如圖2所示。

圖2 智能排課系統業務流程圖
排課管理子系統提供智能排課、輔助調課和課表查詢等功能模塊,智能判斷各種沖突條件并以直觀方式顯示,并提供時時“空閑班級”、“空閑教室”、“空閑教師”查詢,使課程的安排更加人性化和合理化。排課管理子系統的功能模塊圖如圖3所示。

圖3 智能排課系統功能模塊圖
(1)班級信息:記錄每個班級有多少學生,系別等信息。班級信息部分可以錄入班級信息,信息主要有班級編號、班級人數、系別。班級信息模塊中還包括班級信息的查詢和修改刪除。查詢班級信息的將結果顯示在頁面上,顯示一個班級的內容。班級信息可以進行修改,和刪除操作。
(2)課程信息:主要是記錄這個排課任務中會有哪些課程。課程信息主要包括課程編號、課程名稱、系別、周學時、是否多媒體教學、是否主修課等相關信息。課程信息包括查詢和修改刪除,查詢顯示模式為列表顯示,修改課程信息時將數據讀取到頁面上修改。
(3)教師信息:記錄這個排課任務中所有任課的教師。教師信息主要包括教師編號,教師姓名,周課時及教授課程。教師信息方面同樣要求可以進行查詢及刪除修改操作。
(4)教室信息:主要記錄排課任務中所使用的教室,每個教室可以容納人數。教室信息包括,是否多媒體教室,教室編號,容納人數等信息,是否多媒體教室為單選按鈕,教室編號,容納人數手工輸入,教室編號中可以根據以輸入的內容自動生成部分內容。
(5)手工排課模塊將以三個維度實現,分別為班級維度,教師的維度及教室的維度,手工排課的同時將以其中一個維度為標準羅列出一周的課程表。
手工排課模塊添加的記錄直接以下拉列表的形式修改,關鍵問題在于解決沖突問題,如多個班級在同一教室上課,教室是否可以容納。同一個教師不可以同時在兩個教室上課,同一個班級不可以同時上兩門課等等復雜的邏輯要求。滿足這些邏輯要求之后,要在適當的時候給操作人員提示并解決問題。
(6)自動排課:自動排課所應實現的要求有:1)可以自動生成課表。2)解決課程沖突問題。3)均衡分部課程安排。4)課表可以手工調整。滿足以上要求之后,自動排課可以達到“一鍵”來解決問題。自動排課所生成的課表和手工排課生成的課表不應是同一個,但應同樣可以修改查看,生成一個新的課表。
(7)課表查詢分為,總課表查詢:查詢全部排課結課。班級課表查詢:查詢選定班級的課表。教師課表查詢:查詢選定教師的課表。教室課表查詢:查詢選教室的課表。
排課系統中,主要有四個實體,分別為課程信息,班級信息,教師信息和教室信息,它們之間互相都有聯系。

圖4 智能排課系統E-R圖
課程信息(課程名稱、系別、主修課、周課時、多媒體)。
教師信息(教師姓名、周課時)。
班級信息(班級編號、系別、周課時)。
教室信息(教室編號、容納人數、多媒體)。
課程信息與教師之間存在一個教授與被教授的關系,每個課程可以有多個教師來教授,每個教師可以教授多個課程。
課程信息之間與班級信息之間存在一個學習與被學習的關系,一門課程可以有多個班級來上,而一個班級可以學習多個課程。
課程信息、班級信息與教師信息與教室信息存在上課的關系,每個教室只可以有教授一個課程,每個教師只能有一個教師在上課,每個教室可以有多個班級在上課。
本學校排課系統的主要功能是把各系別,班級或各授課部門的課程進行了匯總,然后根據學校的教學計劃制訂各班級的課程編排表。隨著學校每年的擴招和專業的不斷細化,學校班級,課程門數越來越多,每門課又涉及很多信息,如果仍然采用人工排課,則不可避免地會出現教室資源沖突或教師資源沖突的情況。

圖5 智能排課系統數據流圖
本系統的界面共分為四個部分。
(1)資源管理主界面
用于對系統資源進行初始化設置和修改,它包括如下幾個部分:班級管理:對班級進行初始化設置,添加、刪除、修改班級信息;課程管理:對課程進行初始化設置,添加、刪除、修改課程信息及其所對應的授課教師;公共課室管理:對公共課室進行初始化設置,添加、刪除、修改公共課程信息。
(2)智能排課主界面
用于排課管理和編輯排課信息。已生成的課表:顯示系統已經生成的課程表。注銷課程表:注銷已生成的課程表;生成課表:根據初始化信息,生成課程表;公共教室配置:指定公共教室;所有課程:顯示所有已設定的課程;增加課程:增加課程設置;保存課程:保存課程修改信息;修改課程:修改課程設置;刪除課程:刪除已設置的課程。
(3)課程表輸出
用于輸出課程表信息。報表輸出:以報表形式輸出課程表;輸出到EXCEL:將課程表輸出到EXCEL文檔。
(4)系統管理
用于登錄或退出系統,并對系統進行各項初始化設置。系統登錄:用于登錄系統;用戶管理:用于管理登錄系統的用戶;資源初始化管理:用于對系統的資源進行初始化;系統初始化管理:用于對系統進行初始化;退出系統:用于退出系統。
排課問題實質是為老師、學生的教學活動合理安排時間上和空間上的資源,以保證教學活動有計劃有秩序地進行。本系統的出發點在于:在班級資源飽和的情況下,能夠不沖突的實現全校的自動排課,并且能夠有條件的使課程分布更加合理。采取這種方案由以下好處。
(1)對教師與課程之間做了一個相對優化的組合。在目前中職學校擴招的背景下,導致學校的各種資源日益緊缺,其中最突出的矛盾是師資的結構性缺口。中職學校各專業之間互通性不強,進入門檻較高,如不能及時補充專業對口的師資,將會直接影響到排課結果。
(2)提高了排課效率。在自動排課的基礎上,系統將首先統計是否能否生成合格的課程表,在能夠生成課程表的基礎上,系統可以根據課程的安排實際使多課時的課程分布更加合理。
(3)可以方便的調整算法參數,使輸出結果更令人滿意。只要某些控制參數的值固定,那么輸出結果是確定的。它不同于遺傳算法等隨機算法,輸出結果具有隨機性。因此,用戶可以根據方便輸入參數并調整,使得結果更令人滿意。
(4)系統參數可以隨時修訂,系統適應能力強。系統默認是一天6節課,一周上5天課,可兩節課連上。在一定范圍內,可以修訂這些參數,可以滿足不同教學模式上的需求。
盡管本文提出的求解算法存在上述諸多好處,但也存在不足的地方:(1)自動排課算法可以完成大部分的課程的安排,但是自動排課算法的結果可能會存在著一些不太合理的地方,甚至有可能使得一些課程無法安排下去,那么就需要對已經生成的課程表進行人工調整。(2)采用自動排課算法,犧牲了過多的效率以換取資源的最大化利用。在現階段的職業教育過程中,由于資源的短缺,使得安排課程時的首要判斷是,能否將課程全部安排下,以確定是否要外聘教師。在這種情況下,只能舍棄一部分排課的合理性,以期望能夠將課程完全排下。如果資源充足的學校使用這一系統,可能會影響到效率的發揮。
[1](澳)Leszek A.Maciaszek著,金芝譯,需求分析與系統設計北京:機械工業出版社,2003年6月