文章編號:1672-5913(2008)12-0120-02
摘要:“操作系統(tǒng)”是必修的專業(yè)基礎(chǔ)課,實驗課設(shè)計的好壞對于學(xué)生能否真正掌握這門理論性很強的課程非常重要。本文結(jié)合筆者多年的實驗課程設(shè)計的經(jīng)驗,探討了如何提高師生的積極性,讓學(xué)生真正掌握這門課程的方法。
關(guān)鍵詞:操作系統(tǒng);實驗設(shè)計;課程設(shè)計
中圖分類號:G642
文獻標識碼:B
“操作系統(tǒng)”課程是公認難教難學(xué)的課程,難教的原因是其理論性強且比較抽象,內(nèi)容多且比較散雜。難學(xué)的原因是理論與實踐脫節(jié)、看不見摸不到,較難理解和掌握。因此,傳統(tǒng)的“重理論,輕實踐”的教學(xué)模式已不滿足師生的要求。合理的設(shè)計實驗課將對教學(xué)起到事半功倍的作用。本文結(jié)合多年的實驗教學(xué)經(jīng)驗探討如何才能更合理的設(shè)計操作系統(tǒng)的實驗課程,提高實驗教學(xué)的質(zhì)量,培養(yǎng)學(xué)生的實踐能力和創(chuàng)新能力。
1用Windows和Linux做相同實驗
考慮到學(xué)生對Windows操作系統(tǒng)比較熟悉,因此為了讓學(xué)生能習(xí)慣Linux平臺,在設(shè)計實驗時可用Windows系統(tǒng)作為引子拋磚引玉,這樣即能同時熟悉兩個系統(tǒng)的操作又能加深對操作系統(tǒng)的理解。例如在第一次實驗課、先要求學(xué)生啟動Windows 2000命令解釋器Cmd.exe,并在這個命令模式下進行相關(guān)命令操作如dir、del、cd、date、telnet、ftp等,并在圖形界面上觀察操作結(jié)果。然后再讓學(xué)生進入Linux平臺作相同功能的命令操作。這樣在不同操作系統(tǒng)做相同的操作,在不斷相互比較中掌握不同操作系統(tǒng)的基本操作,使得認識學(xué)生更能認識操作系統(tǒng)能做什么不能做什么。
在一些實驗環(huán)節(jié)中加上有趣的東西,可引起學(xué)生對這門課的學(xué)習(xí)熱情。例如在實驗命令時,設(shè)計一個簡單的C語言調(diào)用外部程序shutdown.exe關(guān)機程序,實現(xiàn)簡單的注銷和關(guān)機的程序,然后用shutdown.exe -a取消關(guān)機。再給出shutdown的參數(shù)說明讓學(xué)生自行實驗。
程序如下:
main()
{
system(\"shutdown -s -t 3600\");
}
這個實驗雖然程序簡單但因運行結(jié)果會彈出一個顯示離關(guān)機時間還有多少秒的窗口,這和前幾年系統(tǒng)中了沖擊波產(chǎn)生的對話框一樣。學(xué)生在通過對這個簡單程序的運行調(diào)試,一下子覺得學(xué)習(xí)操作系統(tǒng)是很有趣和很有用的。與此同時老師可以提出一些問題讓學(xué)生在課后思考,例如病毒和木馬是如何攻擊操作系統(tǒng)使之癱瘓的?如何終止正常的進程?為什么病毒進程無法被終止?因為提的問題切合實際應(yīng)用,所以學(xué)生在上完實驗后很樂意去思考和查找以上問題的答案。有的同學(xué)還選這些題作為畢業(yè)設(shè)計的內(nèi)容。實踐證明,如果在實驗中設(shè)計1/4貼近實際應(yīng)用的知識,會很大程度提高學(xué)生做實驗的興趣,學(xué)生會更樂于去動手找出解決的方法。以上對實驗的安排,相對于讓學(xué)生死板地按部就班學(xué)習(xí)Linux系統(tǒng)要容易接受得多。
2總體把握操作系統(tǒng)的內(nèi)容,實驗課程自成體系
教師在設(shè)計實驗時應(yīng)先做一個總體規(guī)劃,以實際實驗環(huán)境設(shè)計為基礎(chǔ)來設(shè)計實驗內(nèi)容,而不是單純依附于理論課。首先要確定學(xué)生應(yīng)將這門課程學(xué)習(xí)到什么層次、做幾次實驗,先把每個重要知識點作為階段性的實驗?zāi)康?,然后將分散的相關(guān)知識點組織成線,再到面。實驗也要貼進課本使教學(xué)雙方隨時知道實驗針對的理論知識點,并能找到它在整門課程知識體系中的準確位置,及與其他知識點的清晰聯(lián)系。點線面的教學(xué)方法遵循了教學(xué)的基本規(guī)律。
在實驗設(shè)計中為了能讓學(xué)生更進一步的理解理論知識。實驗課的設(shè)計不應(yīng)只停留在檢驗理論知識的基礎(chǔ)上,而應(yīng)該在每個階段的實驗中分級分層,從基礎(chǔ)到綜合,再到設(shè)計與創(chuàng)新。所以必須做3個層次的實驗。
(1) 觀察性實驗或驗證性實驗。這是一個實驗開始的基礎(chǔ)部分,也是和理論課聯(lián)系較大的,是對理論課或新操作系統(tǒng)的初級使用,所以不應(yīng)在上完理論課后再去做實驗,而應(yīng)先做實驗后上理論課,這樣理論課的授課才不會顯得太空。這種實驗看情況而定,一般安排在每一階段實驗開始的第一、二次實驗中,這樣能讓學(xué)生盡快熟悉新操作系統(tǒng)的操作。只有在學(xué)生掌握了相關(guān)的基礎(chǔ)操作后,才能為后面的設(shè)計性實驗做好鋪墊。例如,學(xué)生必須先學(xué)習(xí)如何在Linux的vi編輯器中用GCC編譯程序,才能進行C語言的編程。這些都是這門課的實驗基礎(chǔ),所以必須安排一次課讓學(xué)生熟悉它。
(2) 設(shè)計性實驗。這是實驗中最重要的內(nèi)容,用以培養(yǎng)學(xué)生的設(shè)計能力和獨立思考的能力。如果設(shè)計過多的觀察性和驗證性實驗,勢必造成學(xué)生誤認為本課程沒有什么深度難度,因此不深入思考,造成實驗報告內(nèi)容雷同。所以實驗課中必須至少有一個設(shè)計性實驗,難度也要設(shè)計合理,既要留給學(xué)生思考的空間,也要讓學(xué)生有能力完成。例如在進程創(chuàng)建、撤消、同步、互斥、通信實驗中,要求學(xué)生用C語言調(diào)用相關(guān)的函數(shù)設(shè)計其中一種狀態(tài)。
(3) 綜合性實驗或研究性實驗。不僅能驗證學(xué)生掌握知識的程度,而且能培養(yǎng)學(xué)生的自學(xué)能力和創(chuàng)新能力。盡管這種實驗的難度較大,但在實驗設(shè)計中必須包括這種實驗。因為只有讓學(xué)生帶著問題,做實驗才有效果。教師可以在學(xué)期開始先給出幾個這樣的實驗問題并分組自選,然后在后來涉及到的時候就提醒學(xué)生注意,讓學(xué)生帶著問題不斷探索、不斷總結(jié),最后自行完成。例如在做進程管理實驗前,讓學(xué)生思考如何編制一個程序來模擬一個簡單的進程管理系統(tǒng),或者讓學(xué)生思考關(guān)于病毒進程是如何隱藏于OS中并能讓用戶無法終止的。又例如在內(nèi)存管理實驗階段,讓學(xué)生思考為什么系統(tǒng)有時出現(xiàn)內(nèi)存不能讀的現(xiàn)象,以及如何合理設(shè)置虛擬內(nèi)存的問題。在學(xué)生通過對進程和內(nèi)存管理的學(xué)習(xí)后還是無法完成的情況下,教師應(yīng)可以引導(dǎo)他們?nèi)⒖枷嚓P(guān)的書籍,這樣學(xué)生會更樂于思考。
3師生共同挖掘教學(xué)資源
設(shè)計一些更具體的實驗內(nèi)容,為后面的教學(xué)工作能不斷發(fā)展打下基礎(chǔ),同時提高教師的教學(xué)和實驗水平。例如,可以將上一級學(xué)生完成或未完成的實驗放到下一級學(xué)生手里,讓其進行改進或修改完成。例如在設(shè)備管理實驗中,書中大多是觀察性實驗,這樣只按書本要求做實驗學(xué)生會很沒有耐心。有一組同學(xué)對USB驅(qū)動很感興趣,因此我就給他提供相關(guān)的書目和網(wǎng)絡(luò)資料。后來這組學(xué)生通過相關(guān)知識的學(xué)習(xí),嘗試用WDM(Window Driver Model)開發(fā)了一個簡單的USB驅(qū)動,雖然因時間關(guān)系未能完成。但在此過程中他對操作系統(tǒng)設(shè)計思想有了新的認識,同時也給老師提供了很多這方面的相關(guān)信息,也從中受益匪淺。
4結(jié)束語
以上是本人在操作系統(tǒng)實驗教學(xué)中的一點體會,但筆者總體感覺想真正上好這門課對教師本身也是一個挑戰(zhàn),如何培養(yǎng)出理論知識扎實,動手能力強的人才,還有待進一步的探索。
參考文獻
[1] 宋廣華等. 邊學(xué)邊干:操作系統(tǒng)課程教學(xué)改革的探索與實踐[J]. 計算機教育,2007,(7).
[2] 高寶立. 論大學(xué)生創(chuàng)新精神和創(chuàng)新能力的培養(yǎng)[J]. 江蘇高教,2003,(4).
[3] 劉乃琦等. 電子科技大學(xué)計算機操品課程建設(shè)[J]. 計算機教育,2006,(7):17.
[4] 孟靜. 操作系統(tǒng)教程——原理和實例分析[M]. 北京:高等教育出版社,2001.