應用微型電腦編製授課時間表
李芳樂

 

 

 

 

 

授課時間表編製是一件耗時而艱巨的工作. 如果可以由電腦來處理, 既可節省不少時間, 又減少了教師們的心力消耗, 同時亦避免了編製時產生的錯誤. 近年科技的進步已使微型電腦的價格大幅下降, 本港的各中小學都已經可以得到微型電腦的供應. 應用微型電腦編製授課時間表的硬件問題已經完全解決. 而軟件方面, 編製授課時間表軟件的供應也差不多有十年的歷史。 本文先討論理想的編製時間表軟件應有的功用,然後介紹在香港流行的編製時間表軟件的功能, 再以其中一套軟件為例, 略述使用電腦編製時間表的過程及限制。

 
 
 
應用微型電腦編製授課時間表
 

每年暑假, 部份中小學老師都被捲入一件繁重而耗時的工作, 就是編製學校下學年度的授課時間表. 這件工作通常動用三至七人, 需時三天至兩星期不等. 視負責者的經驗與授課編排所受限制多少而定。 由於香港的情況特殊, 時間表受了許多不同的限制, 包括浮動班、 輔導班、 文理商分流等, 時間表的編製實在非常的困難, 再加上需要考慮不同的人事因素, 老師們所耗的心力真的不少. 時間表編製完畢後, 更要加上校對, 抄寫或打字, 然後才能分發給老師及學生們。 開學之後, 更要經過一個星期或一個循環週的試用, 才可以肯定沒有出了甚麼錯誤。因此編製時間表所牽涉的人力及物力實在非常之大. 如果可以由電腦來做, 不但可以節省人力物力, 減輕教師的工作負擔, 更可以避免錯誤, 減少開課後更改時間表所引起的混亂。

但是即使用電腦來編製時間表也不是一件容易的事:由於香港的情況特殊, 許多外國的同類軟件都不能在此應用. 而香港的市埸太小, 吸引不到多少發展商為香港的情況而特別設計軟件. 而僅有的少數嘗試, 部份由於對香港教育狀況的不理解, 將問題過份簡化, 亦以失敗告終。 現在的狀況是, 除個別學校使用由老師編寫的軟件外, 比較多學校使用的軟件有兩套: 一為「智達時間表編製軟件」(TITAS), (以下簡稱「智達軟件」),另一為 HKASA (未附中文名稱, 見 Fung, 1991), 兩者均由香港人編製, 後者為一學校行政統整軟件, 除可編製時間表外, 還可處理其他學校事務 , 而前者則專為編製時間表而設. 但可配合一教師代堂系統使用. HKASA 使用學校目約有三十所 (Fung, 1991). 智達時間表編製軟件使用學校目比較多, 大約有一百四十所, 使用者更包括各類型的中小學及專上機構. 為現時香港最流行的時間表編製軟件。 本文先討論理想的電腦編製時間表軟件應有的功效,與及編製此類軟件可用的方法, 然後介紹「智達軟件」所用的方法及效果, 最後, 提出可以改善的地方。

 

 
理想的電腦編製時間表軟件

 
 

根據我們編製時間表的經驗及用戶的經驗, 我們覺得理想的電腦編製時間表軟件應有下列的功用:

 

電腦介面

作為程式編寫工作人員, 我們最害怕的是一些對電腦存有誤解的人仕。 他們總以為要電腦為他們工作應該是一件很簡單的事, 只要吩咐一聲, 電腦便自動完成工作。 實際上, 這當然是不可能的事。由於電腦不懂得閱讀人類的思想或甚至語言, 所有給電腦的工作, 都需要用電腦能明白的方式表達出來. 但由於電腦與人類的思考方法不同, 而使用電腦的工作者未必是懂得電腦語言的人, 因此一套理想的電腦編製時間軟件, 必須附有一個容易使用的人與電腦之間的介面(interface),

以便使用者可以向電腦輸入資料及從電腦讀取結果。
 

一個編製時間表的電腦介面,應該可以處理下面三項工作:

 

在輸入方面, 可以令使用者很方便地輸入班級、 教師、 特別室等名稱,各種授課要求, 例如雙連堂, 特別室之使用等;使用者應該可以根據資料來源的方式, 選擇輸入的方法。

 

輸出方面, 應該可以印出各種授課時間表以供教師、 學生及行政使用。 輸出的形式, 應配合學校原來的使用形式。由於各校要求不同, 所以最好可由各校自由改動。

 

此外, 應該注意電腦與使用者間的交流。有需要時, 使用者應該可以隨時得到運行中的資料及作出改動,例如改變某班的中文教師等, 而當資料修改後, 電腦應該對時間表作出相應的改動。

編排工作 電腦應該可以根據輸入的資料及各項要求而自動編排出一個理想的時間表。在編排中段, 使用者應可以對各授課要求作出改動, 而當各種要求修改後, 電腦應該對時間表作出相應的改動。此外, 由於某些特殊的需要, 此程式應容許使用者預置一些課節在某些特定時間內。 而已編製好的時間表應容許使用者作出修改、調節, 然後重新印製。

輔助工具

  此系統應提供適當的輔助工具, 以令資料的輸入更為快捷, 例如容許多用戶輸入等。另外, 由於輸入的資料多及繁複, 容易產生錯誤, 電腦最好可以提供檢查錯誤的方法, 例如代為統計每班, 每教師的節數等, 令檢查更加方便。

 

此外, 最重要的是, 此系統必須容易操作。 最理想的是, 使用者只需經過短時間的練習, 便可以立即開始工作。

理想與現實
 

理想的時間表編製系統既如上述,但事實上, 由於香港的情況比較特殊, 教師每星期(或循環週) 的節數較多, 編排時比較容易產生相撞的情況(即一教師任教兩班), 加上例如輔導班, 浮動班等的行政措施 , 例如說, 輔導班需要二至三位老師共上一課, 令排課時易於與其他課相撞; 浮動班則由於沒有自己尃用的課室, 排課時要兼顧課室的使用,兩者均令班房, 教師的供應更為緊張; 再加上教師進修假期、教育電視課等, 在在均令排課時增加困難,因此由電腦全自動地排課差不多成為不可能的事。 按「智達軟件」的使用情況來說, 在眾多學校多年使用中, 雖然自動編課成功率差不多都達到百分之九十五以上, 最高的曾達到只餘下二課節未能放進時間表內, 且時間又只需約數分鐘 (見 Lee, 1987), 但可惜從沒有一次是完全由電腦自動編製出時間表的。HKASA 的使用情況亦差不多。這一方面當然是兩者均有未臻完善的地方。另?

@方面, 亦可見編課的困難。 編課困難有一個明顯的壞處, 就是編課者因精力有限, 而將所有的精力如果都用來找尋一個可行的答案 . 編出來的時間表的質素便因此不能顧及。 如此產生的後果可能也不少。

除了未能百分之一百自動編課外, 其他方面, 智達軟件及HKASA 亦未能完全達到上述的理想要求。 但由於兩者均為針對本港學校而設計, 而設計者當時又均任職本港中學, 熟悉學校情況, 所以設計出來的軟件均能切合使用者的需要。在輸入方面, 兩者均能使用者感到方便。在自動編課方面, 兩者均達到很高的成功率. 自動編課完畢後, 亦均能提供電腦輔助程序以幫助使用者完成編課工作或調動已完成的時間表。在輸出方面, 兩者均能輸出適合學校使用的各類時間表。此外, 由於兩者的操作, 與日常編製時間表的過程相似, 操作者應不需要太長時間的學習, 便可以開始使用。

 

智達軟件及HKASA 在設計上有甚多相似的地方。為了較詳細地說明電腦編製時間表的方法, 下面介紹智達系統的設計及工作過程作為例子:

 

智達系統所用的編課方法

製造時間表軟件的方法約可分為兩類: 一類是應用數學方法, 例如整數編序法 (integer programming)、操作研究 (operational research) (見 French, 1982)、圖形理論 (graph theory, 見 Floyd & Ford, 1991), 分枝及限制方法 (branch and bound method, 見 Tripathy, 1984), 另一類則是應用專家系統(expert system) 的方法 (Martinsons & Kwan, 1993; Monfroglio, 1988)。 大多數同類軟件都是應用於大學方面, 中小學方面的軟件則比較少有。

智達系統的設計, 基本上是一個專家系統。 系統中最重要的部份, 即自動編製部份, 便是收集了各時間表編製專家的編製策略, 加以整理, 然後編入系統內.

智達系統有別於其他專家系統的地方, 就是在編寫語言方面, 其他系統是使用一些高階語言或專家系統殼層(expert shell, 見 Martinsons & Kong, 1993; Monfroglio, 1988), 使用這些方法, 優點是比較容易, 壞處是比較緩慢或是價錢比較昂貴。 智達系統則使用匯編語言 (assembly language), 這種語言是一種低階語言, 比較接近硬件部份, 所以比較快, 但也比較難於使用。

智達系統的基本工作

基本上, 智達系統可以分為下列四大常序(routines) (見 Lee, 1993), 即輸入常序、 編課常序、 輸出常序及輔助常序, 其下再分為副常序(subroutines)及更下一層的次副常序(sub-subroutines)。 由於各常序、副常序的數目不少, 此處不能盡錄。下面只介紹其中較重要者, 其餘從略。

 

輸入常序 使用者輸入以供電腦編製時間表的資料,包括:
一些基本的數字, 例如班級數目、教師數目、 特別室數目等;

名稱: 輸入班級名稱、 老師姓名、 特別室名稱等;
 

課塊(Block): 智達系統將每節課的內容, 包括班級名稱、 科目名稱、 老師姓名、 特別室名稱(如需要),堂的種類 (是單堂、 連堂、 或是三連堂), 有沒有擺放的限制(例如不可以放在第一節), 稱為課塊(Block)。而時間表中每一個將要被填上的位置則稱為洞(Hole), 課塊填入洞後則稱為課節(Lesson)。 使用者需要輸入每一課塊的內容, 以便電腦可以將之放入洞內。 輸入時可按不同需要, 依班級次序、教師次序, 或特別室次序輸入。

編課常序

  此常序包括四個副常序, 即人手預編課節、自動編課、人手調動課節及調編班房。茲將每部份分述如下:

 

人手預編課節副常序可供使用者輸入任何需預放在時間表內的課節。使用者可以自由選擇按班級次序、教師次序, 或特別室次序輸入。

 

自動編課副常序是智達系統內最重要的部份, 可以自動將課塊放進時間表的洞內。將塊放進洞時的過程並不是隨意的, 電腦系統須經下列兩層限制的考慮: 第一層是要遵守一些必須的限制, 包括下列的條件:

 

不會產生同一教師任教多於一班 (特別指明者例外)

教師每日的節數不會過高 (此數字由系統預設, 但可由使用者修改)

每班每科的節數不會過高 (此數字亦由系統預設, 亦可由使用者修改)

不會產生任教多於一班於某一特別室上課 (特別指明者例外)

 

第二層要考慮的是一些令時間表質素較佳的條件, 包括二方面的困素:

 
班級因素: 每一班級的時間表內的科目分佈、 連堂的分佈、 科目組別的分佈, 都盡量平均;

教師因素: 每一教師的課節, 都盡量均勻分佈於每日每段時刻中。

 

第一層是一些必須遵守的條件, 每一課塊都不會被放進不適合的洞內。 第二層要考慮則是課塊與洞的配合性, 電腦系統為每一課塊找出所有適合的洞, 計算它們的配合程度, 從而找出最適合者, 再將課塊放進。 至於計算的辦法, 將於稍後討論。

 

人手調動課節副常序的作用是對自動編製好的時間表作出調節, 使之更能適合使用者的要求。 此部份可供使用者考慮個別情況。 通常需要使用此部份的情況包括:

 
自動編課不能全部完成, 須對餘下的課塊逐個作出個考慮, 是否需要暫時放寬某些課節的限制, 作出適當的調動, 以將餘下的課塊放進時間表內。

自動編課的成果不滿意, 須對時間表作出調動, 使之更適合要求。

學校人員有所變動, 須用原來教師的課節抽出, 填入新教師的課節。

 

調編班房副常序則是自動編課最後的一個環節, 通常都是在所有編課完畢後方才使用。作用是為每一個課節自動找出適合的班房。做法是普通的課節都被編進每班原有的班房, 需用特別室的課節, 則被編進特別室; 其他如浮動班、輔導班等沒有原來課室或需要更多課室的都被順序編進空置的課室內。此外, 使用者更可對自動編配的課室作出修改。

  輸出常序

  此常序負責印出各種時間表, 包括總表、 教師時間表、 各班時間表、 各特別室及課室使用表、 空堂教師表和空置教室表等。

 

輔助常序

  此常序包括各種輔助工具, 例如統計副常序、異常狀況檢查、資料匯集等副常序。統計副常序 可提供各教師堂數、 班級堂數、 特別室堂數等的統計數字, 供使用者檢查輸入之資料是否有錯誤。異常狀況檢查副常序可供檢查在時間表內的課節是否有違背原先定下的限制。 例如會否令某教師每日的堂數太多, 會否令某個科目太集中於某一天上課等。資料匯集副常序則為容許多個使用者同時輸入檔案而設, 各分別輸入的檔案可匯集成為待編的資料, 從而加速輸入資料的工作。

 

智達系統的設計, 是針對著上述理想模式, 再收集各時間表編製專家的處理方法而製成的, 與上述理想系統比較, 已能大致達到要求。 在輸入方面, 使用者可自由選擇按班級次序; 教師次序; 特別室次序輸入課塊資料, 而當輸入時, 所有已輸入的資料亦同時顯現, 避免重複輸入; 在編課方面, 智達系統可提供三種編課方法, 分別為人手預編, 自動編課 及人手調動。 人手預編及人手調動兩部份, 雖然稱為人手, 但實際上, 在工作時電腦提供了大量的輔助。 下面兩個例子可以說明:

  例一, 在使用人手預編時, 使用者可以按班級、教師、或特別室預編時間表,而當輸入時, 所有已輸入者亦同時顯現. 以供參考。 例如說. 使用者可以按小一甲、小一久乙,... 的次序將要預編的課節輸入, 亦可表老師甲、老師乙、.. 的次序輸入。而當要輸入小一甲的課節時, 所有已輸入的小一甲的課節會同時顯現, 當要輸入老師甲的課節時, 所有已輸入的老師甲的課節亦會同時顯現。

將課節放進時間表時, 如有任何教師相撞或特別室相撞的發生, 電腦都會發出警告, 例如: 「老師甲並無空堂」、「音樂室並非空置」等. 用以提醒使用者。使用者可於此時選擇繼續或放棄。

 

例二, 在使用人手調動時, 如使用者想將小二乙班由甲先生教的中文科課節放在星期三第五節時, 電腦可能提示, 甲先生在星期三已經有七節課, 要不要再給他加上這一節課呢。 或是說,

小二乙班在星期三已經有了一節中文課, 要不要再加上這一課呢。 於是使用者便需要作出選出抉擇, 是否將這一課放進去。 如果決定是放進去的話, 只要按一下相對的號碼, 這一課便已放進時間表內; 如果決定是不放的話, 便可以選擇另一洞, 再作嘗試, 至找出最滿意的答案為止。

 

所以, 在這個階段, 電腦實在提供了大量的輔助, 減低了使用者的心力消耗。

 

自動編課更是全個系統最重要的部份。 如前述, 自動編課的作用是將課塊放進洞內。 放進時, 須經兩層限制的考慮, 第一層是必須遵守的, 而第二層是用來為每一課節選出最適合的洞的,兩層限制均有系統預設值 (default values)。在第一層中, 每位教師每日最高節數為七節, 每科每日最多只可有一組課 (即一單堂, 兩堂成一雙連堂, 或三堂成一三連堂)。在第二層中, 班級因素與教師因素的比例為八十比二十. 兩個因素之下再細分為幾個屬因, 其間的比例也有預設值。班級因素屬因之一的科目組別, 預設數為一, 即各科目均視為同一組, 可由使用者改為五 (意即將科目分五組, 而每日的課節, 盡量安排至分屬於五組), 其餘的所有預設值, 亦均可由使用者自行改動。 而當此等數值改變後, 系統即據新數值編課, 因此各校對編課的不同要求均可而達到.

智達系統中, 除可自由改動系統預設值外, 事實上, 人手預編課節及人手調動兩常序都是為了令系統使用更加方便及更有彈性而設。如有自動編課處理的情況, 一般都能透過使用此兩副常序而解決。

配合了自動編課、人手預編、人手調節的編課常序, 基本上可以差不多解決全部的編課問題, 當然, 有些問題需要人手比較少, 有些需要比較多的人手協助下才能得到較理想的答案。 智達系統當然尚有很多需要改進的地方, 但事實上, 部份不理想的編課並不應算在智達系統頭上: 如前所述, 香港學校的特殊情況, 令編製時間表特別困難, 使用者定下的標準可能根本不能達到。 有些使用者可能辯稱,他們在用人手編製時是可以達到這個標準的。 這可能是實情, 負責者可能是編製時間表的特級高手, 但亦可能是在用人手編製時間表時, 編製者不自覺間逐步將標準下降。但在使用電腦編製時, 電腦並不懂得如此降低標準,於是所有找不到合標準的洞的課塊便集中到最後處理, 感覺上便有些不如人手處理, 而事實上,只是使用者要求太高及電腦不如人懂得變通的關係。

 
 

智達系統的特色, 除了方便及有彈性外, 還加入為香港特殊情況而設的常序, 例如說香港的教師們需要部份時間空堂, 以方便進修或參加會議, 系統可代為安排, 香港的學校開設輔導班及浮動班, 系統可安排多一位教師共同教授, 為輔導班及浮動班安排班房。 基本上, 智達系統是一個為香港學校而設計的系統, 雖然事實上已有外國的學校開始使用。
 

結語

利用電腦來編製授課時間表的好處是快捷而且準確,節省了大量人力物力, 更避免了因時間表錯誤而帶來的混亂。雖然暫時來說, 電腦系統未必達到一個真正專家的水準, 亦未能考慮個別學校的情況而作出特殊處理, 但對比一些經驗稍遜的時間表編製者來說, 智達系統的表現實在不遑多讓, 甚至稍為優勝。而且無論人類怎樣優勝, 犯錯的機會始終較機器為高, 所以暫時來說, 理想的做法應該是人機配合, 利用機器來產生一個時間表的初稿, 如果效果不大滿意, 則用人手配合電腦來修正, 既可以省時及避免錯誤, 又可以編出切合個別需要的時間表。

現存的兩種電腦系統, 即智達系統及HKASA, 基本上是專為香港而設計的專家系統, 經過多年在學校的實際使用, 吸收各使用者的意見,不斷改進, 已發展成為甚為成熟的電腦軟件,優點是用戶介面友善(user friendly), 自動編課快捷且成功率高. 更加上各種為方便駛用及查錯的常序, 令使用者更覺容易。另一方面, 兩系統亦有未完善的地方, 希望這些問題都可以在將來解決。

 

參考資料

 
Floyd, S.A., & Ford, D.R. (1991). Knowledge-based dynamic scheduling and decision support. International Journal of Computer Applications in Technology, Vol. 4, No. 3, pp. 166-174.

French, S., (1982). Sequencing and Scheduling: An introduction to the mathematics of the job shop. NY: Wiley.

Fung, C.W.A. (1991). Computer assisted school administration in Hong Kong. Journal of Research on Computing in Education. Fall 1991. Vol. 24, No. 1, pp. 41-61.

Lee, F.L. (1987). A survey of the use of TITAS. Unpublished report. Hong Kong: Titas Software.

Lee, F.L. (1993). User Manual of Titas Ver. 4.5. Hong Kong: Titas Software.

Martinsons, M.G., & Kwan, K.C. (1993). Intelligent Timetabling using a microcomputer. International Journal of Educational Management, Vol. 7, No. 5, 1993, pp. 9-17.

Monfroglio, A. (1988). Timetabling through a deductive database: A case study. Higher educational management. Vol. 2, pp.334-342.