首頁‎ > ‎電子期刊‎ > ‎2005 年 第 6 期‎ > ‎

排課系統解析(一)-C


摘要

  • 文章編號: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#語言改寫排課系統程式後,我們希望能新增/改善以下幾點功能:

  1. 簡易的操作介面,讓使用者更容易上手
  2. 提供方便的資料查詢
  3. 支援XML,提供更強的資料連結功能

結語

排課問題是每所學校開學都會碰到的問題,以往人工作業效率差,而且費時費力。若是能交由現代功能強大的電腦做運算,搭配現在方便的網際網路,即可輕 易的大幅縮短所需花費的時間和金錢,並且提高排課的正確性及方便性。其次,利用C#與.NET Framework,對於未來如果需要更改為Web介面,或者是跨平台時,將不需做大幅度的更動,即可完成。

Comments