摘要:本文在分析操作系統(tǒng)課程現(xiàn)狀以及問題的基礎(chǔ)上,首先確立了教學(xué)目的和原則,然后從教材篩選、教學(xué)實(shí)施、實(shí)踐環(huán)節(jié)設(shè)計(jì)以及課程網(wǎng)站建設(shè)等幾個(gè)方面闡述了課程建設(shè)與教學(xué)改革方案,論文的最后指出了課程建設(shè)中的不足及有待改進(jìn)之處。
關(guān)鍵詞:課程建設(shè);實(shí)例分析;專題討論;實(shí)踐環(huán)節(jié);實(shí)際應(yīng)用能力
中圖分類號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1672-5913(2007)16-0022-03
筆者有幸獲得國(guó)家留學(xué)基金委資助,作為訪問學(xué)者參加了在美國(guó)伊利諾斯大學(xué)(UIUC)舉行的為期半年的雙語教學(xué)研討項(xiàng)目。在此期間參與了該大學(xué)的很多教研活動(dòng),也訪問了MIT、HARVARD、STANFORD、PRINCETON等著名學(xué)府,UIUC和這些大學(xué)在計(jì)算機(jī)科學(xué)領(lǐng)域的教學(xué)和研究享有很高的聲譽(yù),從而有機(jī)會(huì)了解這些世界一流大學(xué)計(jì)算機(jī)學(xué)科的課程設(shè)置[1][2]以及教學(xué)的理念,也感受到我們之間的差異和距離。在此過程中筆者從教學(xué)思路、教學(xué)內(nèi)容、實(shí)踐環(huán)節(jié)、相關(guān)的課程體系等各個(gè)方面,重點(diǎn)考察了筆者所主講的“操作系統(tǒng)”課程[3][4][5][6][7],感覺到收獲非淺。
“操作系統(tǒng)”課程被列入學(xué)校主干課建設(shè)項(xiàng)目后,使筆者有更好的機(jī)會(huì)把在美國(guó)進(jìn)修時(shí)的所思所想付諸實(shí)踐,在課程的教材篩選、教學(xué)實(shí)施、實(shí)踐環(huán)節(jié)設(shè)計(jì)以及課程網(wǎng)站建設(shè)等方面做了一些探索與嘗試,有所成效,有所心得,總結(jié)成文以供同行及相關(guān)人士探討。
1課程現(xiàn)狀以及存在的問題
“操作系統(tǒng)”是計(jì)算機(jī)專業(yè)的一門重要專業(yè)基礎(chǔ)課,傳統(tǒng)的課程教學(xué)著重講授計(jì)算機(jī)操作系統(tǒng)的基本概念和基本原理,課程內(nèi)容主要包括進(jìn)程管理、存儲(chǔ)管理、設(shè)備管理、文件系統(tǒng)四大部分。作為計(jì)算機(jī)專業(yè)的傳統(tǒng)必修課,“操作系統(tǒng)”課程的重要性是勿容置疑的,但目前該課程的傳統(tǒng)教學(xué)模式中有這樣幾個(gè)問題是值得注意的:
(一) 內(nèi)容枯燥難懂,充斥著大量的原理、概念。由于很多教材的內(nèi)容以及課堂的講解都很少與實(shí)際應(yīng)用相聯(lián)系,學(xué)生往往覺得課程中大量的概念、原理抽象而且苦澀難懂,由此對(duì)課程學(xué)習(xí)缺乏興趣,最后以死記硬背應(yīng)付了事。
(二) 課程的內(nèi)容陳舊,遠(yuǎn)落后于該領(lǐng)域最新的研究成果與技術(shù)應(yīng)用背景。筆者認(rèn)為操作系統(tǒng)的發(fā)展日新月異,課程內(nèi)容應(yīng)該反映當(dāng)前最新的研究熱點(diǎn),如計(jì)算機(jī)安全、多處理機(jī)操作系統(tǒng)、分布式系統(tǒng)、Linux系統(tǒng)研究與應(yīng)用、嵌入式系統(tǒng)等。
(三) 課程實(shí)踐環(huán)節(jié)與實(shí)際應(yīng)用現(xiàn)狀嚴(yán)重脫節(jié)。傳統(tǒng)的實(shí)驗(yàn)環(huán)節(jié)往往是一些操作系統(tǒng)原理和實(shí)現(xiàn)方法的模擬,主要考察學(xué)生對(duì)所學(xué)內(nèi)容的理解,而對(duì)操作系統(tǒng)本身沒有任何觸及,這樣學(xué)生在課程中所學(xué)的只是一些操作系統(tǒng)原理以及概念,對(duì)以后從事這方面研究或者應(yīng)用開發(fā)工作的幫助是十分有限的。
2教學(xué)目的和教學(xué)原則
課程建設(shè)的首要任務(wù)是要確定課程的教學(xué)目的和教學(xué)原則。筆者認(rèn)為通過本課程的教學(xué),不光要讓學(xué)生掌握計(jì)算機(jī)操作系統(tǒng)的基本概念和基本原理,還要了解現(xiàn)代操作系統(tǒng)的新思想、新技術(shù)和發(fā)展研究動(dòng)向;在此基礎(chǔ)上,使學(xué)生深入到操作系統(tǒng)內(nèi)部,具備分析、研究現(xiàn)行主流操作系統(tǒng)的初步能力,掌握操作系統(tǒng)的基本設(shè)計(jì)方法和實(shí)現(xiàn)技術(shù)。
從更高的層面上看,操作系統(tǒng)是目前最復(fù)雜、技術(shù)含量最高的軟件,操作系統(tǒng)中的許多設(shè)計(jì)思想、技術(shù)和算法可以推廣應(yīng)用到大型、復(fù)雜系統(tǒng)的系統(tǒng)設(shè)計(jì)以及其他領(lǐng)域。操作系統(tǒng)在其發(fā)展過程中,從系統(tǒng)的架構(gòu)設(shè)計(jì)到具體的一個(gè)算法實(shí)現(xiàn)都可能有很多設(shè)計(jì)思想和實(shí)現(xiàn)方法,從而會(huì)有這些技術(shù)方法的利弊分析,最終采用的一定是當(dāng)時(shí)軟硬件技術(shù)條件下的最佳解決方案,是綜合考慮了系統(tǒng)性能與使用的方便性、系統(tǒng)簡(jiǎn)單性、成本以及軟硬件開銷后的一種折衷權(quán)衡(Trade Off),這種分析和權(quán)衡應(yīng)該貫穿于課程的始終,這也是一種工程的觀點(diǎn),而這種分析能力的培養(yǎng)無論對(duì)于創(chuàng)造型人才或者工程型人才都是十分必要的,也是我們?cè)谑谡n過程中應(yīng)該特別注意的??偵纤?,課程的教學(xué)原則應(yīng)該注重對(duì)課程內(nèi)容的理解,培養(yǎng)學(xué)生綜合分析問題、解決問題的能力。
3教材的篩選
在教材的選用上,綜合考慮教材的內(nèi)容完整性、易用性以及對(duì)新概念、新技術(shù)的反映,經(jīng)過嚴(yán)格篩選,采用了“現(xiàn)代操作系統(tǒng)(第2版)”這一經(jīng)典國(guó)外教材。該書是操作系統(tǒng)領(lǐng)域的經(jīng)典之作,內(nèi)容新而全,涉及到操作系統(tǒng)研究的各個(gè)方面[8]。與第1版相比有較大的變化,書中集中討論了操作系統(tǒng)的基本原理,除了重點(diǎn)放在單處理機(jī)操作系統(tǒng)以外,還包含了有關(guān)多媒體操作系統(tǒng)、多處理機(jī)操作系統(tǒng)、計(jì)算機(jī)安全、典型系統(tǒng)實(shí)例研究以及操作系統(tǒng)設(shè)計(jì)等方面的內(nèi)容;書中大多數(shù)原理以及技術(shù)的論述都基于實(shí)例,言之有物,避免了大多數(shù)操作系統(tǒng)教材的枯燥乏味;教材中的講授內(nèi)容安排有層次,每章除了基本內(nèi)容以外,還有一些可供提高的閱讀資料,在許多章還安排了與該章主題相關(guān)的最新研究動(dòng)向的小節(jié),可以靈活地根據(jù)學(xué)生的基礎(chǔ)和學(xué)習(xí)狀況決定所要講授的章節(jié)以及內(nèi)容。
4教學(xué)的實(shí)施
在教學(xué)的環(huán)節(jié)上,實(shí)行理論課和實(shí)踐課分離,理論課學(xué)習(xí)在前,有利于培養(yǎng)學(xué)生綜合應(yīng)用所學(xué)知識(shí)解決實(shí)際問題的能力。在理論課教學(xué)過程中,充分利用了多媒體技術(shù)和網(wǎng)絡(luò)條件進(jìn)行課堂教學(xué)、發(fā)布課程信息、作業(yè)布置和討論答疑等。采用基于實(shí)例分析的教學(xué)手段,扭轉(zhuǎn)過去重概念、理論輕思想、實(shí)現(xiàn)的做法,注意揭示問題的背景來源、解決思路、所授內(nèi)容在整個(gè)操作系統(tǒng)體系中的作用以及和其他概念、技術(shù)之間的內(nèi)在聯(lián)系等。在教學(xué)中還要注重學(xué)生的參與性,采用啟發(fā)式教學(xué)方法,還可以組織一些專題討論。經(jīng)過教學(xué)實(shí)踐證明,所有這些措施都取得了良好的效果。
以第2章“進(jìn)程與線程”的教學(xué)為例,首先進(jìn)程概念的引入是個(gè)難點(diǎn),可以先解釋進(jìn)程與程序的關(guān)系,然后以多道程序設(shè)計(jì)(Multiprogramming)環(huán)境下程序運(yùn)行的間斷性和動(dòng)態(tài)性,以及一個(gè)程序的多個(gè)實(shí)例同時(shí)處理不同數(shù)據(jù)的例子,如同時(shí)打開多個(gè)瀏覽器窗口瀏覽不同的網(wǎng)頁(yè),作為切入點(diǎn)來探討在多道程序環(huán)境下引入進(jìn)程的必要性和進(jìn)程的實(shí)現(xiàn)思路;而線程也是一個(gè)比較難以講解的概念,首先要強(qiáng)調(diào)在支持多線程的環(huán)境中,進(jìn)程和線程分別是資源分配和調(diào)度的基本單位,然后以字處理程序和Web服務(wù)器為例,分別探討它們的多線程、多進(jìn)程以及單線程實(shí)現(xiàn)方案,著重在系統(tǒng)性能與可實(shí)現(xiàn)性上做相應(yīng)的比較分析,這樣就可以讓學(xué)生更容易地理解線程概念和多線程實(shí)現(xiàn)方案的優(yōu)越性;進(jìn)程互斥和進(jìn)程同步是本章的重點(diǎn)與難點(diǎn),從問題的提出到解決有一條完整的思路,在課堂中要注意引導(dǎo)學(xué)生思考,培養(yǎng)學(xué)生分析問題與解決問題的能力。首先討論的是忙等待進(jìn)程互斥解決方案,如禁止中斷、鎖變量、嚴(yán)格輪換法、Peterson解決方案、TSL指令等,這些方案在邏輯上具有關(guān)聯(lián)性,后面的方案往往是針對(duì)前面方案的問題給出的優(yōu)化結(jié)果,要注意引導(dǎo)學(xué)生自己去發(fā)現(xiàn)問題和探索解決方法。接著在分析所有忙等待解決方案的缺點(diǎn)后,給出基于信號(hào)量機(jī)制的進(jìn)程互斥和進(jìn)程同步解決方案,并做一些實(shí)例分析。最后為了加深對(duì)于信號(hào)量機(jī)制的理解和提高實(shí)際應(yīng)用能力,可以組織以學(xué)生為主體的專題討論,預(yù)先對(duì)學(xué)生進(jìn)行分組并指定各自的任務(wù),這些任務(wù)可以是對(duì)一些經(jīng)典同步問題解決方案做出分析或改進(jìn),也可以是對(duì)其他一些同步問題進(jìn)行同步機(jī)制設(shè)計(jì),專題討論可以由學(xué)生組織和主講,教師適當(dāng)?shù)剡M(jìn)行引導(dǎo)和總結(jié),有效地激發(fā)了學(xué)生的學(xué)習(xí)積極性,鍛煉了學(xué)生的組織和表達(dá)能力。
5實(shí)踐環(huán)節(jié)設(shè)計(jì)
操作系統(tǒng)是一門理論性和實(shí)踐性并重的課程,具有理論性強(qiáng)、抽象、概念多、內(nèi)容廣、難度大的特點(diǎn)。因此,操作系統(tǒng)課程教學(xué)要解決的一個(gè)難題是,如何才能將抽象的操作系統(tǒng)概念及原理,形象化地傳授給學(xué)生,并使學(xué)生具備分析理解典型操作系統(tǒng)的能力,掌握相應(yīng)的系統(tǒng)開發(fā)編程技術(shù),把課堂上所學(xué)的操作系統(tǒng)理論、概念與技術(shù)轉(zhuǎn)化成實(shí)實(shí)在在的動(dòng)手能力。要解決這個(gè)難題,光靠理論課教學(xué)是不行的,還要切實(shí)加強(qiáng)操作系統(tǒng)課程的實(shí)踐環(huán)節(jié),建立科學(xué)合理的理論課、實(shí)驗(yàn)課體系。操作系統(tǒng)實(shí)踐環(huán)節(jié)可幫助學(xué)生理論聯(lián)系實(shí)際,更好地理解深化所學(xué)過操作系統(tǒng)概念、原理與技術(shù),培養(yǎng)學(xué)生動(dòng)手能力與創(chuàng)新能力。
課程實(shí)踐環(huán)節(jié)包括兩大部分:課程實(shí)驗(yàn)和綜合應(yīng)用實(shí)驗(yàn)。課程實(shí)驗(yàn)隨理論課同步進(jìn)行,由學(xué)生在課外完成,主要是課程中所學(xué)相關(guān)算法的模擬實(shí)現(xiàn)與性能比較分析,實(shí)驗(yàn)?zāi)康氖鞘箤W(xué)生通過編程更深入地理解這些重要算法及相關(guān)的數(shù)據(jù)結(jié)構(gòu);而綜合應(yīng)用實(shí)驗(yàn)則是操作系統(tǒng)理論課的后繼課程,選擇一個(gè)實(shí)際流行的操作系統(tǒng)作為實(shí)驗(yàn)平臺(tái),培養(yǎng)學(xué)生分析系統(tǒng)、設(shè)計(jì)操作系統(tǒng)組成模塊的能力,掌握開發(fā)操作系統(tǒng)的技術(shù)。
在比較分析Unix、Microsoft Windows、Minix、Nachos等知名系統(tǒng)基礎(chǔ)上,綜合參考了國(guó)內(nèi)外各大名校的操作系統(tǒng)實(shí)踐方案,我們選擇了Linux作為操作系統(tǒng)綜合應(yīng)用實(shí)驗(yàn)環(huán)節(jié)的實(shí)驗(yàn)平臺(tái)。因?yàn)長(zhǎng)inux具有如下三大優(yōu)點(diǎn):(1)Linux不同于Windows,它的源代碼是公開的。學(xué)生可以通過分析Linux內(nèi)核的源代碼,鞏固和加深理解理論課中所學(xué)的操作系統(tǒng)原理、概念和技術(shù),更有利于學(xué)生以此為系統(tǒng)平臺(tái)進(jìn)行操作系統(tǒng)組成模塊的設(shè)計(jì)。(2)Linux不同于Minix,它實(shí)現(xiàn)了虛擬存儲(chǔ)管理,當(dāng)然也支持進(jìn)程、多處理器、多文件系統(tǒng)等現(xiàn)代操作系統(tǒng)特征。(3)Linux不同于Nachos等實(shí)驗(yàn)型操作系統(tǒng),它本身是極具生命力的實(shí)用操作系統(tǒng),并且呈現(xiàn)出越來越廣闊的應(yīng)用與開發(fā)前景。對(duì)于一些能力較強(qiáng)的學(xué)生,可以自主組隊(duì)合作開發(fā)基于Linux的實(shí)用系統(tǒng),如各種嵌入式Linux系統(tǒng),通過項(xiàng)目開發(fā)提高學(xué)生的綜合分析和解決實(shí)際問題能力,培養(yǎng)他們的創(chuàng)新設(shè)計(jì)意識(shí)以及團(tuán)隊(duì)協(xié)作能力。
6課程網(wǎng)站的建設(shè)
一個(gè)好的課程網(wǎng)站可以充分利用現(xiàn)代信息技術(shù),有效地整合各種教學(xué)資源并使之得到更廣泛的使用,提供一個(gè)快捷方便的課程學(xué)習(xí)以及技術(shù)探討的平臺(tái),能使學(xué)生更好地參與到我們的教學(xué)中來,形成教學(xué)雙邊互動(dòng),共促教學(xué)質(zhì)量的良好氛圍。課程網(wǎng)站包括課程基本信息、教輔資料和題庫(kù),集成了課程信息發(fā)布平臺(tái)、課程論壇、作業(yè)提交系統(tǒng)以及網(wǎng)上課堂實(shí)時(shí)生成與在線播放系統(tǒng)等。
課程基本信息包括課程簡(jiǎn)介、課程教學(xué)大綱、教學(xué)進(jìn)度安排、教材與參考文獻(xiàn)、任課教師簡(jiǎn)介等;教輔資料主要包括教學(xué)課件、Linux基礎(chǔ)、Linux系統(tǒng)編程、Linux內(nèi)核源代碼閱讀與分析輔導(dǎo)以及課外閱讀文章等方面的相關(guān)資料,可供學(xué)生閱讀或下載。
通過分析課程相關(guān)知識(shí)點(diǎn)和課程考核要求,我們開發(fā)了一套完整科學(xué)的題庫(kù)管理系統(tǒng),并把它集成于課程網(wǎng)站中,可供學(xué)生平時(shí)練習(xí)與自測(cè)。該題庫(kù)可以讓學(xué)生按章節(jié)、知識(shí)點(diǎn)、題型、難度自由地選擇組合題目,并提供相應(yīng)的參考答案,也能根據(jù)要求自動(dòng)生成試卷對(duì)學(xué)生進(jìn)行測(cè)驗(yàn)及評(píng)分。通過該題庫(kù)管理系統(tǒng),教師還可以方便地進(jìn)行添加和刪除題目、設(shè)置題目屬性等操作。
課程論壇提供了一個(gè)教師和學(xué)生進(jìn)行學(xué)術(shù)探討及交流的平臺(tái),在這里能進(jìn)行比課堂上更加自由和暢所欲言的討論,系統(tǒng)還可以自動(dòng)統(tǒng)計(jì)每位學(xué)生的參與情況(用參與的次數(shù)、時(shí)間、所發(fā)的帖子數(shù)等參數(shù)反映),并可以考慮把它計(jì)算入學(xué)生的平時(shí)成績(jī)。
教師通過課程信息發(fā)布平臺(tái)可以發(fā)布跟課程相關(guān)的公告、作業(yè)和課件。每次課程的課件以及相關(guān)參考資料可以提前一周或幾周發(fā)布到網(wǎng)站供學(xué)生在線閱讀或下載,這些發(fā)布內(nèi)容組織成一個(gè)課程信息表,每次發(fā)布對(duì)應(yīng)于表中一行,可提供PPT、PDF和PS文件格式的課件以方便在各種平臺(tái)環(huán)境上使用。課程的相關(guān)公告和作業(yè)都發(fā)布在網(wǎng)站的公告欄里,對(duì)于作業(yè)發(fā)布教師可指定最后的提交期限和作業(yè)說明文件,而學(xué)生則可以通過作業(yè)提交系統(tǒng)來提交未到最后期限的作業(yè)。
特別值得一提的是我們還專門開發(fā)了網(wǎng)上課堂實(shí)時(shí)生成與在線播放系統(tǒng),這個(gè)系統(tǒng)的最大特點(diǎn)是能夠自動(dòng)生成教師授課視頻和課件演示同步的網(wǎng)上課堂。網(wǎng)上課堂實(shí)時(shí)生成系統(tǒng)可以在教師授課錄像的同時(shí),實(shí)時(shí)地截取課件幻燈片或者計(jì)算機(jī)屏幕的顯示內(nèi)容并記錄顯示切換的時(shí)間點(diǎn),這些數(shù)據(jù)可上載到課程網(wǎng)站并自動(dòng)生成相應(yīng)的網(wǎng)上課堂點(diǎn)播鏈接。學(xué)生單擊相應(yīng)的網(wǎng)上課堂鏈接就可以通過在線播放系統(tǒng)再現(xiàn)教師授課實(shí)況,教師授課視頻與課件演示(或者是當(dāng)時(shí)的屏幕顯示)分別在兩個(gè)窗口同步播放。這樣的網(wǎng)上課堂對(duì)學(xué)生學(xué)習(xí)的幫助無疑是很大的,而使用這個(gè)系統(tǒng)則避免了手工生成類似的網(wǎng)上課堂所需的大工作量。
7思考與展望
通過課程建設(shè)與教學(xué)改革,我們?nèi)〉昧艘恍╊A(yù)期的成果,但還存在著許多不足之處有待進(jìn)一步改進(jìn)與提高,今后需重點(diǎn)解決以下兩個(gè)問題:
(一) 以操作系統(tǒng)原理為核心,構(gòu)建一個(gè)完整的課程體系。除現(xiàn)有的操作系統(tǒng)、操作系統(tǒng)實(shí)驗(yàn)和Linux系統(tǒng)編程以外,本科階段還可以開設(shè)嵌入式操作系統(tǒng)、實(shí)時(shí)操作系統(tǒng),研究生階段開設(shè)操作系統(tǒng)結(jié)構(gòu)、高級(jí)操作系統(tǒng)等課程,形成教學(xué)內(nèi)容前后呼應(yīng)、實(shí)驗(yàn)環(huán)節(jié)互相配套的一個(gè)操作系統(tǒng)領(lǐng)域的完整科學(xué)的課程體系,給一些有興趣有能力的學(xué)生一個(gè)繼續(xù)學(xué)習(xí)研究的機(jī)會(huì)。
(二) 加強(qiáng)課程教學(xué)與操作系統(tǒng)應(yīng)用研究的結(jié)合,以科研反哺教學(xué)。課題組要爭(zhēng)取在操作系統(tǒng)領(lǐng)域多做些研究工作,特別是應(yīng)用型的研究與項(xiàng)目開發(fā),并吸收一些優(yōu)秀學(xué)生參與研究開發(fā)工作,這是培養(yǎng)創(chuàng)新型人才的一個(gè)十分重要的環(huán)節(jié)。
參考文獻(xiàn)
[1] http://courses.uiuc.edu/cis/schedule/urbana/2006/Spring /CS/index.html: Spring Class Schedule 2006. UIUC
[2] http://www.cs.princeton.edu/academics/catalog:Course Catalog of Princeton University. 2007
[3] http://www.cs.uiuc.edu/class/sp06/cs423/:CS423:Operating System Design, Spring 2006
[4] http://www.cs.uiuc.edu/homes/yyzhou/cs491yyz.html: CS491: Recent Research Topics on Operating Systems, Spring 2004
[5] http://www.cs.uiuc.edu/graduate/courses.php? course=cs523: CS523: Advanced Operating Systems, Spring 07
[6] http://www.cs.uiuc.edu/undergraduate/courses.php? course= cs431: CS431:Embedded Systems Architecture and Software, Spring 2007
[7] http://www.cs.uiuc.edu/undergraduate/courses.php? course= cs424: CS424: Real-Time Systems, Spring 2007
[8] Andrew S. Tanenbaum. Modern Operating Systems (Second Edition)[M]. 北京:機(jī)械工業(yè)出版社,2002.
投稿日期:2007-5-9
作者簡(jiǎn)介:李東(1966 -),男,浙江寧波人,講師,主要從事計(jì)算機(jī)操作系統(tǒng)、計(jì)算機(jī)安全與地理信息系統(tǒng)教學(xué)與研究。
作者地址:上海市雙陽北路288弄39號(hào)701室,郵編:200433
電話:021-55068691(H)
E-mail:philiplee@vip.163.com
資助項(xiàng)目:國(guó)家留學(xué)基金委(CSC)雙語教學(xué)交流項(xiàng)目資助;華東師范大學(xué)主干課建設(shè)項(xiàng)目(項(xiàng)目編號(hào):521J0475)資助