570 likes | 735 Views
第二十一章 教務處排課專題製作 - 使用 ADO. 21-1 編班 21-2 排課 21-3 跨班選修作業 21-4 重補修作業 21-5 本章回顧. 什麼是學年學分制?. 學年學分制已從八十九年八月於全國高中職同步實施,此學制的重大改變為改用學年學分制取代傳統學年制、實施跨班跨年級或跨校選修、不及格科目的重補修教學及未能如期畢業的延修等新措施。其次,並取消留級制,學生於規定年限內修畢一定學分數,即可領取畢業證書。其排課方式也接近大學,可跨班與跨校選修,亦有跨年級、跨校的重補修制,當然也有延修生的隨班附讀,所以教務處的電腦化作業系統勢必全面換新。.
E N D
第二十一章 教務處排課專題製作-使用ADO • 21-1 編班 • 21-2 排課 • 21-3 跨班選修作業 • 21-4 重補修作業 • 21-5 本章回顧
什麼是學年學分制? • 學年學分制已從八十九年八月於全國高中職同步實施,此學制的重大改變為改用學年學分制取代傳統學年制、實施跨班跨年級或跨校選修、不及格科目的重補修教學及未能如期畢業的延修等新措施。其次,並取消留級制,學生於規定年限內修畢一定學分數,即可領取畢業證書。其排課方式也接近大學,可跨班與跨校選修,亦有跨年級、跨校的重補修制,當然也有延修生的隨班附讀,所以教務處的電腦化作業系統勢必全面換新。
程式外包還是自行開發? • 程式換新的方式有兩種,其一是外包,另一為本校自行開發。外包的優點為省事,但其缺點是程式有問題時,必須苦等程式設計師的光臨,且往往各校的繁忙時刻都相同,程式設計師當然分身乏術,只好一再延遲公佈成績的時間,並影響後續的重補修教學。此外教育局常要求各式統計報表,或各大學推甄報名時常要求個別學生的特殊統計資料,外包的程式通常程式與資料庫均加密,使用者完全無法對資料庫進行任何簡單查詢。目前由於資料庫及資料庫語言功能日益強大,資訊教育日益普及,學校教職員資訊素養亦日益提升,所以各校一定有能力自行開發屬於各校需求的應用程式。 深入探索本章範例,讀者將會發現,只要使用簡單的步驟即可完成驚人效果。此外,自行開發的另一優點為程式量身定作,而不是該校的作業程序去配合制式化的規格。
本章的研讀對象為何? • 其次,除了教務處的行政人員可研讀本書撰寫自己的程式外,目前的實習老師及有心從事教育工作的教育學程學生亦應研讀本章。因為教育制度的變革及社會環境的變遷,使得原本是肥缺的行政兼職日漸成為燙手山芋,欲兼任行政工作的老師漸趨凋零,或兼任年數日益縮短,在大家意願不是很高的情況,遇有教師缺額待聘,即以有行政經驗或有行政工作意願者優先錄取,其考題亦已加入行政電腦化的題目。 所以有志從事教育工作者若能對行政電腦化工作有進一步了解,一定比別人更容易錄取,並快速進入狀況。
21-1 編班 • 要去教務處兼任組長工作,如果沒有先對教務處的作業程序有些了解,保證天天滿頭包回家,8月1日新組長就任,5日左右領到新生名單,10日要完成編班,月底就要完成全校師生課表。所以對任何新手而言,與其說是夢魘,亦可稱為跳火坑,其挑戰性一定不輸甫接任行政院長即要面對的總質詢。 以下即是編班的作業程序。 • 一、規劃學生年班別基本資料 新生報到第一件事就是編班,所以應先規劃學生年班別資料表如下,請參考school.mdb的stgrade資料表,本例的school.mdb係使用Access 2000所建置,所以資料庫的提供者應點選或輸入OLEDB.4.0。
二、匯入或填入資料表 • 聯招會或本校召生委員會除了提供每一位新生一份書面資料外,通常也會提供一張磁片,此一磁片含有新生的姓名、性別、錄取科別及入學總成績等資料,所以可使用資料庫的“匯入/匯出”功能將已有的學生資料匯入,若沒有現成磁片檔,也可參考範例21-1a (與範例20-1a相同)鍵入以上資料 待會所要進行的編班、填入學號、填入座號及列印各班名條等工作,也都會使用stgrade資料表
範例 21-1a • 請設計一個程式可以新增、修改及刪除school.mdb 的 stgrade資料表。
三、編班 編班為求公允,通常學生的分配原則如下: • 1. 男女生平均分配各班。 • 2. 不同的入學方式,如聯招、申請入學或推薦入學的學生平均分配各班。 • 3. 每種入學方式依入學成績採 “之”字方式平均分配到各班。 以上原則,若要以ADO模式完成,可以利用Sort屬性協助完成,先將全部資料以性別、入學方式及入學成績排序,再將此資料集以“之” 字順序填入班別。綜合高中或職業學校則應先分科再編班,分科的方法可使用Filter屬性依序搜尋各科名單,再依次填入班別。
四、填入座號 • 為了方便任課教師快速的於名條找到學生,填入座號的原則通常是先分男女,再依姓氏筆劃由小而大排列。
五、填入學號 • 學號的第一碼通常是代表入學學年度,依次的流水號才是每位學生的編號。學號的填入可依班級、座號將全部學生排序,再填入學號即可。
範例 21-1b • 如何編班,填入座號及填入學號。
六、列印班級名條 • 學生年班別基本資料表(stgrade)大部份的欄位都是代碼,例如性別、科別、班別及入學考試別等都是代碼,代碼的優點為符合資料庫正規化的原則,可節省資料庫空間、便於維護資料庫及保持資料的一致性。但若將這些欄位以代碼方式列印,則其可讀性較低,解決的方式為運用資料庫關聯的特性,製作這些欄位的對照表,如此即可印出可讀性高的名條,其操作步驟如下: • 1. 於stgrade中將欲製作關聯欄位製作索引。 本例使用Access 2000,將學號(id)、性別(sex)、科別(depart)、年級(grade)、班級(class)、入學考試別(exam)及校碼(schid)製作索引,其中只有學號為不可重複,其餘皆可重複。
2. 製作性別關聯資料表(sext)欄位名稱及型態如下: 資料記錄如下:
3. 製作班級關聯資料表classt 資料記錄如下:
21-2 排課 排課的程序為: • 一、基本資料之建立 (1) 建立科目資料表。 (2) 建立教師資料表。 (3) 建立設備(教室、工場及實驗室)資料表。 (4) 建立課程資料表。 (5) 建立課程時間資料表。 • 二、排課 排定課程資料表的程序為: (1)排定各班的科目。 (2)排定各班科目任課教師。 (3) 排定各班科目使用設備。 (4) 排定各班科目的上課時間。 • 三、 列印 (1) 列印各班課程表。 (2) 列印各設備課程表。 (3) 列印各教師課程表。
一、 建立資料表(1) 建立科目資料表(course)科目資料表欄位名稱及型態如下:一、 建立資料表(1) 建立科目資料表(course)科目資料表欄位名稱及型態如下:
(2) 建立教師資料表(teacher)教師資料表欄位名稱及型態如下:(2) 建立教師資料表(teacher)教師資料表欄位名稱及型態如下:
建立設備資料表(room)設備資料表欄位名稱及型態如下:建立設備資料表(room)設備資料表欄位名稱及型態如下:
(4) 建立各班級課程資料表(clco)建立各班級課程資料表欄位名稱及型態如下:(4) 建立各班級課程資料表(clco)建立各班級課程資料表欄位名稱及型態如下:
製卷與考試建立各班級課程時間資料表 每一課程的上課次數不同,所以應另建立一個班級課程與時間資料表如下:
二、 排課(1) 排定各班所要開設科目。 本例共有四班,分別是普通一真、電子一真、資訊一真及資訊一善,普通一真所要開設的科目如下,其中跨班選修是指將同年級學生打散,由學生自由選修
將各課程填入使用設備及任課教師 • 每一位任課老師均有其基本授課時數規定,此時數與此位老師所兼的職務有關。排課應先能滿足其基本授課時數,兼課是指每位老師除了基本授課時數外,還可合法兼任的時數,此時數則公私立學校有別,公立學校上限為4小時,私立學校則希望每一老師多兼一些課,以降低人事成本;代課是指有人請長假,例如服兵役,進修或育嬰假等,原則上這些請長假的人也要排基本時數給他,若有請專人代課,則那位代課老師即要完成那位請假的人全部課程。 • 若沒有專任代課教師則應將這些課平均分給其它人,公立學校規定每位老師至多可代5小時的課,兼、代課時數的上限當然是保障每一教師的授課品質。茲將上表普通一真的班級課表填入任課教師及使用設備、增加課程編號與班級編號,並使用Access輸入
範例 21-2a • 請設計一個程式,提供clco資料表的輸入與修改 • 與範例20-1a相同,可於此新增、刪除及修改記錄。
範例 21-2b • 請寫一程式可以 1.瀏覽每一任課教師的授課班級。 2.瀏覽每一班級的所有科目及任課教師。 3.瀏覽每一教室的課表。 • 以上三項功能都是“主副明細” 的應用,以下僅以“瀏覽每一任課教師的授課班級”為例,說明“主副明細”製作,其餘請自行發揮。
(3) 將各班課程填入時間 • 將各班課程填入時間是教學組長最有挑戰性的工作,所有課程填入時間的原則如下: • 先填入全校共同的時段,例如週會,班會及共同跨班選修課。 • 其次填入需要使用特殊設備的科目,例如電腦教室、工場、實驗室及視聽教室等科目。 • 再其次填入教學時數長的科目,一般除了實習課外,超過3小時的課都要折開,以免上課效果不佳,所以若有一門課為3小時,若折成21方式上課,則應先填入2小時的時段,再填1小時的時段。所以若是專門上1學分課的老師,他的課也就會像天女散花一樣零零落落。 • 比較刁鑽蠻橫的同事先排,除非你的角很硬,否則日以繼夜辛苦的公平排課,換來的是少數蠻橫者的咆哮,任誰也不願意如此辛勤的付出。
同一門課,不要排在同一天,例如早上已有二節數學,同一門課,不要排在同一天,例如早上已有二節數學, 下午當然不要再排數學。 • 目前雖然有些排課軟體,可以將已完成的班級課程資料表自動填入時間,且可以輸入每個老師那些時段不排課,但若限制條件太多,根本電腦無法求得結果,往往還是要先將限制 條件一一解開,待求得解答時,再以人工調整。一個教學組長面對眾多老師的要求,應先列一清單先與長官討論,尋求一個合理的模式,例如有些老師要求,每天四、五節不排課,每天一二節或第七節不排課,面對這樣的設定、往往電腦和人腦均是較難接受的條件。合理的要求應是那一天、或那兩個半天不排課。最後等到時間定案了,難免會有些人抗議他的第四、五節課較多,或有些老師喜歡課程集中,有些老師喜歡分散較能休息,這些因素難免較難控制,有時只好先做記錄,待明年再審慎優先處理。 • 電腦排課因牽涉較複雜的演算法,要能寫出這種程式,要有排課實務的人才能勝任,其次也要具有堆疊理論基礎。關於堆疊程式的撰寫,可參考老鼠走迷宮的程式(請看筆者Visual Basic 5.0專業版範例入門,松崗)。本書先以人工的方式植入每一門課的時間,其步驟請看以下範例。
範例 21-2c • 試說明人工排課的步驟
範例 21-2d • 請設計一個程式,可以供使用者鍵入班級課程時間表,並可協助使用者發現排課的小錯誤,如上課時數錯誤、漏排某科目等。
範例 21-2e • 請寫一個程式,可以於螢幕及列表機列印每一班級的課表。
自我練習: • 請寫一個副程式,可以一次列印所有老師的課表。
範例 21-2f • 請寫一個程式,可以於螢幕及列表機列印所有任課教師課表。 補充說明: • 1. 本例與範例21-2e均相同,唯SQL陳述式與轉換資料集至物件不同。 • 2. 資料集的時間欄位與物件對照如下:
以上k與i、j關係以數學式表示為: k=7*(i-1)+j-1
自我練習: • 1. 同上範例,但增加一個副程式, 可一次列印所有任課教師課表。 • 2. 請寫一程式,可列印所有特殊教室的課表。
21-3 跨班選修作業 • 跨班選修以往只有大學才有,現在則延伸至高中職。但為了保障每位老師均有課上及適當的教學品質,所以應訂定每一班級人數的上下限。十年前若干大學採用先登記先上課的方法,導致男同學需徹夜為女朋友排隊的奇特景觀,現在由於大學生電腦非常普及,所以跨班選修是使用電腦作業,只要該班人數滿了就無法再選,高中職由於電腦教室沒有大學普及,且若採用現場登記制,恐怕場面會失控,互相推擠,並不是好方法。 • 本例雖也是採用現場登記,但是若登記人數超過上限,則現場馬上抽籤,未抽中者繼續游走各攤位,約十分鐘後抽第二次籤,每十分鐘重複抽籤可能費事又費時,此時可以叫學生排成一列,每人出一支或零支手指頭,再點手指頭的數量,即可完成人數的確定,例如50人要抽40人,若共有25支手指頭,則從第25號循環點40人,此40人即為中籤,即可完成抽籤動作。
範例 21-3a • 說明跨班選修的作業程序。
範例 21-3b 請寫一個程式 • 1. 可以將跨班選修登記表的課程編號自動依各班登記人數填入。 • 2. 可由使用者輸入每個選修班級的學生學號。 • 3. 由電腦自動填入座號。
21-4 重補修作業 • 重補修報名的編班作業與跨班選修非常類似,其不同點為報名登記作業不同而已,其編班與列印名單可說是完全相同,本節僅將作業程序寫出,程式部份請讀者參考範例21-3自由發揮。
範例 21-4a • 試寫出重修作業程序。 作業程序 • 1. 統計各科目不及格人數。
2.依各科不及格人數開設重補修課程,本例假設4班如下,並將以下資料使用Access輸入clco資料表2.依各科不及格人數開設重補修課程,本例假設4班如下,並將以下資料使用Access輸入clco資料表
4. 設計重補修登記繳費三聯單, 此三聯內容均相同,第一聯由學生收執,第二聯由主辦單位作為輸入資料 的依據,第三聯由總務處存查。 • 5.接受報名。
6.輸入資料 假設第一張報名表如下: 使用Access輸入如下,其中coid為課程編號, stid為學號。
7. 統計各班人數。 選修資料表elect中各課程的修課人數,本例的重補修資料表repair的各班人數,請自行發揮。 • 8. 列印各班名單。 請完成重修編班作業,印製重修點名條、缺曠課統計表及成績單回條。
自我練習: • 請完成重修編班作業,印製重修點名條、缺曠課統計表及成績單回條。
21-5 本章回顧 • 為了使讀者閱讀本章範例時,能更方便查閱關聯的設定方式,茲將本章資料表整理如下: