摘要
- 文章編號:20050303
- 投稿日期:2005/02/25
- 作者:董世尊、徐志祥、施志樹、何建良、吳志中
- 備註:
前言
排課作業一直是校園最為頭疼的問題,以往皆為人工作業的方式排課,對於正在編排的課表,一再地進行檢核、修正,盡可能滿足各種排課的限制條件,這種
作業方式相當的耗費時間與人力,同時也造成排課人員極大的精神負擔(附圖一)。更還有相關法規、學理與排課慣例、校內議定規則、行政上的配合與成本考量、
教師個人偏好等,也都構成排課時的限制條件。在種種的限制條件下,對於排課而言一直沒有最佳解答,而透過人工方式來求解,常常是費時費力又難有好結果。因
此希望能藉由電腦快速運算能力,來處理繁雜的排課問題,除了可以減少人力、物力上的浪費,並可提昇排課效率與正確性(附表一)。
人工排課 |
電腦排課 |
1.排課速度慢
2.容易出錯
3.調課困難
4.耗費資源 |
1.排課速度快
2.正確性高
3.調課容易
4.節省資源
5.查詢簡便 |
表一:人工排課與電腦排課之比較
為了處理人工排課繁複的作業問題,利用電腦程式來取代以往人工排課為努力的目標。排課程式化,除了可以使排課效率大幅提升,也提高了其正確性,在查詢資料
方面也會更簡便,在使用者介面方面也會更人性化,讓使用者更容易上手。在未來的擴充性方面,程式介面也可更改為Web介面,資料傳輸格式採取XML,如此
可提高與各種資料庫的相容性,更可符合網路化的需求。
文獻探討
早期已有許多學者研究過排課這個議題,利用各種方法來完成排課,以往的經驗中,有人利用簡單的經驗法則開始排課,也有人使用模組化的概念處理並引進
二維陣列的觀念,進而以模組化來切割問題,將整個排課系統分為四個模組部份,分別為輸入、指定、顯示、改進,依輸入資料的條件,以及指定課程的優先權來排
定課表,對於有問題的課程再進行人工調課。在這科技日新月異的時代,開始有人使用各式演算法來解決此問題,而每種方法都各有優缺。
新竹忠信中學尤弘志老師開發出一套由Visual Basic撰寫的排課系統,此系統之特色為同時顯示場地、班級、教師課表,並即時同步更新修改。教師個人條件設定、分組上課、全校的選修選課系統;自動排課、調課、代課等;列出各科、各專業教室、教師、班級之課表。
有鑒於Visual Basic功能始終有限,而Microsoft C#是微軟為.NET
Framework網路平台量身定做的程式語言,針對企業、開發者、使用者等不同角色,提供完整的解決方案,使其能在Web上容易的建構功能強大、易於操
作的工作環境。而且Microsoft C#是一種物件導向程式設計(Object-Oriented
Programming,OOP)的技術,利用此技術將程式模組化,可減少程式開發的時間。本研究專案將利用Microsoft
C#程式語言來改寫原有之系統,以深入探究排課系統的核心程式,改善未盡理想的功能,並且因應未來可能的需求。
表二為Visual Basic與Microsoft C# 兩者之比較:
|
Visual Basic |
Microsoft C# |
記憶體的管理 |
在記憶體的管理上,記憶體由VB自行分配,因為會重新分配記憶體,所以會造成VB演算效率降低,執行速度變慢,且不易控制硬體。 |
C#支援記憶體管理(Memory Management)及垃圾回收(Garbage Collection) 減少了記憶體配置錯誤的情況 |
物件導向 |
只是將一般程式常用的功能,包裝成物件讓使用者使用,但畢竟這些功能並沒有繼承的特性,當使用者要用到相似類型的Function時,依然得重新再寫一次相同的副程式 |
是一個物件導向的程式語言,包含了資料封裝、繼承、多型、抽象化等特性 |
跨平台 |
VB一定要在微軟的系統上才能夠執行 |
經過編譯後,可以在任何平台、任何機器上執行程式 |
支援 |
因開發時間較早,對於較新的技術並無支援 |
C#由於開發較其他程式語言晚,所以在技術上也相對的佔優勢。例如C#也包含了Exception(例外)處理 |
預期達成目標
現有關於排課作業的系統,多數屬於校內運作的封閉環境系統,幾無提供全校教師(非排課人)公開自主的參與和表達個人希望的管道,教師也沒有與系統自
由互動的機會,包括提供教師在 Internet上用 Web Browser
查閱課表、事先調代課處理等的額外服務。在資訊科技與網路環境發達的今日,系統除了原有的排課功能外,可再加入對XML的支援,以利未來Web化的所需,
及對各種資料庫的支援,不管所使用的資料庫是何種類型,皆可透過XML來取得資訊。
本研究專案的目標在於:透過以C#語言改寫排課系統程式後,我們希望能新增/改善以下幾點功能:
- 簡易的操作介面,讓使用者更容易上手
- 提供方便的資料查詢
- 支援XML,提供更強的資料連結功能
結語
排課問題是每所學校開學都會碰到的問題,以往人工作業效率差,而且費時費力。若是能交由現代功能強大的電腦做運算,搭配現在方便的網際網路,即可輕
易的大幅縮短所需花費的時間和金錢,並且提高排課的正確性及方便性。其次,利用C#與.NET
Framework,對於未來如果需要更改為Web介面,或者是跨平台時,將不需做大幅度的更動,即可完成。
|