葉俊民 喻 瑩 李 源 周 偉 張茂元 楊 艷
摘要:本文結合多年的教學經驗,從操作系統的教學方法、教學手段、實驗設計等方面探討了操作系統課程的理論與實踐教學。經過多屆學生的實踐推廣,證明這些措施能夠有效促進學生對“操作系統原理”的基礎理論學習和實踐動手能力提高,進而增強其分析問題及編程能力。
關鍵詞:計算機操作系統;實踐教學;教學改革
中圖分類號:G642 文獻標識碼:B
“操作系統原理”是一門理論性、實踐性并重的基礎核心課程,內容抽象、課程教學難度大。課程內容主要介紹系統原理、設計方法和實現技術,這是眾多操作系統的設計精髓。這些內容是人們在操作系統工程實踐方面的經驗總結,呈現更新速度快、系統性差、概念抽象、原理性強等主要特點,也是該課程的教學難點。為提高“操作系統原理”課程的教學質量,使其內容具有系統性,形成積極的、充滿生機活力的教學機制,課程組自2002年起就開始規劃和設計分層次內容和系列實驗,確立責任教師,2005年作為校精品課程立項建設。通過幾年來堅持不懈的教學改革和教學研究,通過“操作系統原理”這門課程,使得對學生能力培養更有效。
1教學方法研究
操作系統是計算機專業重要的核心課程,也是一門教師難教、學生難學的課程。該課程教學難點集中表現在:(1)教材內容十分龐雜,涉及面廣,與計算機軟、硬件及用戶都有著密切的交互;(2)教學實踐性強,與實際運行著的各類操作系統有著密切的聯系;(3)計算機技術發展迅速,更新快。
針對這些問題和難點,本課程組老師將自己所從事的科研工作與教學密切結合起來,不斷改革教學方法、手段和加深教學內容。首先,在OS的多用戶、多任務運行特征的主線下,有一條動態的進程活動線,有一個系統資源管理的截面,針對前者,課題組教師圍繞多進程運行所帶來的問題,以及所涉及的方法與機制展開討論;對后者,圍繞多用戶、多任務對系統資源的競爭,展開操作系統資源管理策略與方法的討論。其次,選取合適的操作系統實例,注重與實際運行的各類操作系統結合,選用Linux和Windows系統作為實例操作系統,讓學生了解實際操作系統的邏輯結構、核心實現技術、并分析部分內核代碼,潛移默化地培養了學生創新性的專業技能。接著,將操作系統實驗與課程設計的內容限制在操作系統的核心實現技術上;將實踐環境主要放在Linux系統和Windows系統上;在實踐方面,既強調學生自主編寫與調試程序,又強調多人按軟件工程方法合作解決大型問題。
2教學手段研究
在操作系統本科教學中本課程組采用并堅持了傳統教學和多媒體教學手段相結合的方式進行。傳統教學是教學相長、教學互動的最好的模式。傳統方法學互動性強,而采用現代教育技術手段,以多媒體方式進行教學,可以加大信息容量;以動畫生動表現動態過程;以擬人手段講解難點,提高學生學習興趣。在操作系統原理課教學中采用這種教學相長的啟發式教學方法,課堂上組織討論,使課堂氣氛活躍,學生的學習興趣、能動性大大提高。
此外,課程組采用了如下教學手段:(1)突出教學內容的系統性和完整性;(2)課堂充分調動學生的積極性和創造性;(3)注重實踐環節,強調能力培養,對學生的考核手段科學合理。
3實驗課程設計
遵循學生創新能力培養的整體規劃,基于系統設計和軟件模塊設計的思路,在靈活實施雙語教學的基礎上,課程組利用較好的實驗室條件,開設“實驗室課堂”,構建“操作系統案例庫”,并結合課程設計和綜合實驗加強學生系統編程與內核模塊設計。例如,系統內核調用、內核模塊替換,操作系統補丁等。這些案例既作為教學,也供學生自行設計或復現,優秀作品又進入案例庫循環,使學生能即學即用,及時發現和解決問題,對抽象概念通過實踐環節理解,拓展深層次思考。對學生的能力訓練收到很好的效果。
課程考試采用筆試+實驗方式,并要求學生完成課程設計,獲得應有學分。并根據綜合設計(實驗)的課題情況,拓展到學生畢業設計過程,讓學生體驗進行較大型課題和實際科研項目開發的工作,受到學生普遍歡迎。
3.1實驗課程設計的思想與課程目標
“操作系統原理”課程的實踐性要求很強,學生不僅需要掌握其原理,而且也要求培養其實際動手能力。“操作系統原理實驗”主要是根據所學課程中的原理,設計某些算法實驗并進行驗證;熟悉操作系統平臺的使用,以及能夠將某一操作系統的系統功能調用應用到實踐中。通過這些上機實驗,以加深對課程中的概念、原理、算法的理解,達到提高學生的程序設計能力的目標。
3.2實驗課程教學內容的設計
(1)作業調度算法實驗(4學時),具體要求:設計作業控制結構;完成作業隊列的創建;模擬作業調度算法,包括:先來先服務算法、最短作業優先算法和最高響應比優先算法等。(2)進程調度算法實驗(6學時),具體要求:設計進程PCB;完成進程隊列等的創建;模擬進程調度算法,包括:先來先服務算法、優先級算法和輪轉算法。(3)以分區策略為主的內存分配算法實驗(4學時),具體要求:建立模擬用的內存分區、分區表和空閑隊列等;實現最先適應算法;實現最佳適應算法;實現最壞適應算法;通過實例對上述算法進行對比。(4)存儲器命中率計算問題(2學時),具體要求:設計描述頁面的數據結構和管理內存頁面的鏈表;實現頁面的FIFO算法并研究其命中率;實現OPT算法并研究其命中率;實現LRU算法并研究其命中率;實現LFU算法并研究其命中率;比較各算法的命中率。(5)SPOOLING系統的模擬(4學時),具體要求:設計PCB、PCB隊列等數據結構;模擬實現SPOOLING算法;使用初始數據進行模擬,并分析模擬結果。(6)文件系統中操作命令的實現(6學時),具體要求:設計兩級目錄結構;設計文件的保護措施;實現如下文件操作命令:create、del、open、close、read和write;運行初始數據,分析運行結果。
3.3實驗課程組織形式與教師指導方法研究
實驗課程的組織形式和教師指導方法的實施具體如下:(1)課堂常規授課,教師進行理論講授,要求學生理解操作系統在計算機系統中的作用、地位和特點,熟練掌握和運用操作系統在進行計算機軟硬件資源管理和調度時常用的概念、方法、策略、算法、手段等。(2)教師在正常上機輔導時間在實驗室與學生就事先布置的問題進行討論;在考核時期,教師要求學生上機進行實驗驗收,要求學生能夠正確調試程序,運行程序并就輸入輸出數據進行解釋和分析;教師要求學生撰寫規范的實驗報告,從中選擇優秀者。(3)學生在教師的安排下進行課堂演示與答辯,教師要求上機驗收優秀者,在課堂上面對全班同學進行演示,并當堂回答同學提出的問題,最后由教師進行點評。(4)教師在課后答疑,通過網絡等媒介回答同學提出的各類問題。(5)教師上復習課和習題課,根據學生在平時課程學習中提出的問題,平時作業中出現的錯誤等,集中進行講解。
3.4實驗課程考核內容與方法研究
實驗課程的考核按照如下環節進行:(1)實驗報告及其檢查與評價,此環節可占實驗課程考核總分的30%。(2)要求學生回答如下設計性問題并進行評價:解釋算法原理、數據結構設計思路、測試用例設計及其含義,此環節可占總分的50%。(3)要求學生上機演示,隨時回答問題并進行評價,主要做法包括:源程序的上機編譯、調試;運行系統并顯示運行結果,在此基礎上對相關的輸入數據加以解釋,此環節可占總分的20%。
4結束語
本文在將理論教學與實踐教學相結合方面進行了探索,主要做法是在課堂上重視交互式教學,在課外實踐教學中以培養學生的自學能力、團隊合作能力、實踐動手能力為目標;改革考試方法;增加學生課堂演示和答辯內容,促使學生從被動學習角色向主動學習角色的轉換。
參考文獻:
[1] 陳向群. 探索操作系統實踐教學[J]. 計算機教育,2008(17):45-47.
[2] 王雷. 國外操作系統課程分析[J]. 計算機教育,2008(5):85-87.
[3] 羅宇,張穎蓓,葉常春. 本科操作系統課程設置及教學體會[J]. 計算機教育,2006(1):39-40.