常瑞 何紅旗 黃浩煒 丁文博
摘要:從系統(tǒng)觀角度出發(fā),根據(jù)近年來計算機系統(tǒng)結(jié)構(gòu)和計算機操作系統(tǒng)以及相關(guān)課程的教學(xué)經(jīng)歷與思考,對比國內(nèi)外名校計算機系統(tǒng)結(jié)構(gòu)課程的教學(xué)內(nèi)容劃分與學(xué)時安排,從加強系統(tǒng)能力、構(gòu)建知識體系、教學(xué)內(nèi)容設(shè)計等方面提出一些思路,強調(diào)該課程教學(xué)中系統(tǒng)能力的培養(yǎng)。
關(guān)鍵詞:系統(tǒng)結(jié)構(gòu);系統(tǒng)能力;教學(xué)內(nèi)容
0、引言
計算機系統(tǒng)結(jié)構(gòu)課程是高等院校計算機科學(xué)與技術(shù)專業(yè)的一門重要專業(yè)核心課,在已具備基本的計算機軟、硬件知識基礎(chǔ)上,從軟、硬的總體設(shè)計角度出發(fā),研究如何改善計算機系統(tǒng)組織結(jié)構(gòu)以提高系統(tǒng)性能特別是應(yīng)用程序性能的方法,組織性價比高的計算機系統(tǒng),著重討論軟、硬件功能的分配以及如何最佳、最合理地實現(xiàn)分配給硬件的功能。該課程對于學(xué)生全面理解計算機系統(tǒng)的層次結(jié)構(gòu)、建立計算機整機的概念、了解軟硬件之間的關(guān)系、培養(yǎng)計算機系統(tǒng)分析設(shè)計及開發(fā)能力都起到非常重要的作用。
1、加強系統(tǒng)能力培養(yǎng)
2013-2017年教育部高等學(xué)校計算機專業(yè)教學(xué)指導(dǎo)委員會制定的教學(xué)指導(dǎo)計劃中指出,計算機專業(yè)應(yīng)該培養(yǎng)的四大基本能力包括計算思維能力、算法設(shè)計與分析能力、程序設(shè)計與實現(xiàn)能力和系統(tǒng)能力。計算機系統(tǒng)結(jié)構(gòu)課程應(yīng)從全局和系統(tǒng)的角度介紹進行計算機系統(tǒng)設(shè)計所必須了解與掌握的專業(yè)知識,培養(yǎng)學(xué)生的系統(tǒng)認知、系統(tǒng)設(shè)計、系統(tǒng)開發(fā)和系統(tǒng)應(yīng)用能力,這4方面就構(gòu)成了系統(tǒng)能力。四大基本能力及能力點分配見表1,每種基本能力都有相應(yīng)能力點的分配,其中系統(tǒng)能力占到75%。
當(dāng)前計算機專業(yè)學(xué)生最重要的是必須加強系統(tǒng)能力培養(yǎng)。相比其他專業(yè)學(xué)生的計算機基礎(chǔ)和應(yīng)用能力,計算機專業(yè)學(xué)生的核心特點和需求是更強調(diào)計算機系統(tǒng)能力。其他工科專業(yè)(如通信工程、電子工程、自動化專業(yè)等)也都開設(shè)了一些與計算機相關(guān)的課程,如C++程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)、計算機組成原理、匯編語言等。如果把這些課程比作列車車廂,計算機系統(tǒng)結(jié)構(gòu)就是連接這些車廂的掛鉤和軌道。沒有掛鉤,車廂之間就孤立無聯(lián)系;沒有軌道,列車無以依托便無法馳騁。計算機專業(yè)的學(xué)生區(qū)別于其他專業(yè)學(xué)生最重要的能力就是能否將這些課程所學(xué)內(nèi)容系統(tǒng)地聯(lián)系起來,能否從總體結(jié)構(gòu)、系統(tǒng)分析這一角度研究計算機系統(tǒng)。
2、從系統(tǒng)層面構(gòu)建知識體系
ACM和IEEE/CS聯(lián)合工作組于2012年11月提交了具有指導(dǎo)意義的計算機科學(xué)課程教學(xué)參考計劃Computing Science Curricula 2013,其中明確指出計算機組織與體系結(jié)構(gòu)應(yīng)當(dāng)建立在深入理解計算機系統(tǒng)硬件環(huán)境與更高級的軟件層基礎(chǔ)上,要求學(xué)生理解計算機系統(tǒng)基本組成、特征、性能及其之間的關(guān)系,特別是現(xiàn)在和未來利用并行性所帶來的計算機系統(tǒng)性能的改進。
通常計算機系統(tǒng)結(jié)構(gòu)課程面向高年級本科生開設(shè),其原因是該課程涉及與計算機軟、硬件相關(guān)的方方面面知識,因此孤立學(xué)習(xí)這門課程不可取,必須從系統(tǒng)層面建立知識體系。課程體系既是一個整體,又應(yīng)當(dāng)連貫而有繼承性,能夠滿足本科以及更高層次的教學(xué)需求。
計算機系統(tǒng)結(jié)構(gòu)課程與相關(guān)課程共同構(gòu)成的教學(xué)體系如圖l所示。該體系所包含的知識應(yīng)當(dāng)涵蓋于計算機專業(yè)學(xué)生應(yīng)具備的知識體系中,其中虛線以下部分是針對本科2-4年級學(xué)生開設(shè)的課程,虛線以上部分是針對本科以上層次開設(shè)的相關(guān)課程,其中灰色部分課程是與計算機系統(tǒng)結(jié)構(gòu)課程聯(lián)系最為緊密的課程群。
從系統(tǒng)層面構(gòu)建知識體系有利于高年級學(xué)生將所學(xué)知識立體化,形成科學(xué)完整的知識體系;注重課程之間的融合與銜接能促使學(xué)生真正做到融會貫通,領(lǐng)略到計算機專業(yè)最核心、最本質(zhì)的內(nèi)涵。
3、教學(xué)內(nèi)容劃分與學(xué)時安排
以課堂教學(xué)為主導(dǎo)的教學(xué)活動中,教學(xué)內(nèi)容對學(xué)生學(xué)習(xí)興趣的培養(yǎng)至關(guān)重要,因此有必要對教學(xué)內(nèi)容進行精心合理的設(shè)計。
目前解放軍信息工程大學(xué)計算機系統(tǒng)結(jié)構(gòu)課程的教學(xué)分為3個不同層次:一是計算機專業(yè)本科必修課程;二是針對研究生階段的高性能計算機體系結(jié)構(gòu);三是面向非計算機專業(yè)(電子工程專業(yè)、芯片專業(yè)等)開設(shè)的計算機系統(tǒng)結(jié)構(gòu)選修課程。教師應(yīng)當(dāng)針對不同授課對象適當(dāng)調(diào)整教學(xué)內(nèi)容的學(xué)時安排,通過查閱網(wǎng)上公開資源,將解放軍信息工程大學(xué)針對計算機專業(yè)本科開設(shè)的計算機系統(tǒng)結(jié)構(gòu)教學(xué)學(xué)時安排與美國加利福尼亞大學(xué)伯克利分校(UC Berkeley)、美國威斯康星大學(xué)(WISC)、國防科技大學(xué)等進行對比,對比情況見表2。
從表2可以看出,我們對教學(xué)內(nèi)容的劃分與各大名校相比較為一致,結(jié)構(gòu)較為合理。其中國防科技大學(xué)和解放軍信息工程大學(xué)的高級專題主要是介紹多處理機系統(tǒng)、機群系統(tǒng)的基本工作原理,為研究生階段的后續(xù)課程學(xué)習(xí)打下基礎(chǔ)。美國加利福尼亞大學(xué)伯克利分校針對本科生開設(shè)的高級專題部分占到總學(xué)時數(shù)(60學(xué)時)的20%且內(nèi)容豐富,主要講授GPU體系結(jié)構(gòu)中的數(shù)據(jù)級并行、多核結(jié)構(gòu)下的線程級并行及相關(guān)內(nèi)容,對專題的拓展程度較為深入。美國威斯康星大學(xué)對計算機系統(tǒng)結(jié)構(gòu)課程僅就本科生階段分為3個層次,總學(xué)時70學(xué)時,隨著課程不斷進階,教師對講授內(nèi)容的延展程度和深入程度不斷加強,高級專題涉及計算機系統(tǒng)的保護與安全、并行算法、并行檢測的原則、矢量化編譯器、互連網(wǎng)絡(luò)、陣列處理機、多處理器的同步、數(shù)據(jù)一致性、數(shù)據(jù)流計算機和其他特殊用途的處理器結(jié)構(gòu)等一系列知識。
解放軍信息工程大學(xué)自2012年針對計算機系統(tǒng)結(jié)構(gòu)課程實施教學(xué)改革以來,把該課程的實驗部分集中在寒暑假實踐周進行,將課堂講授部分學(xué)時壓縮為36學(xué)時。與國防科技大學(xué)相比,尤其是與國外名校相比,我們更注重基礎(chǔ)知識的教學(xué),高級專題部分所占比重較少,計算機專業(yè)的其他課程中也存在類似情況。
4、面向系統(tǒng)能力的教學(xué)內(nèi)容設(shè)計
計算機系統(tǒng)結(jié)構(gòu)課程由于涉及多門計算機專業(yè)的軟、硬件課程,知識體系龐大,各門課程的教學(xué)內(nèi)容交叉多,對講授該門課程的教師要求很高,不僅要熟悉該課程內(nèi)容,還要準(zhǔn)確把握相關(guān)課程尤其是課程間的教學(xué)融合點。endprint
計算機系統(tǒng)結(jié)構(gòu)介紹了計算機系統(tǒng)的內(nèi)部工作原理以及軟硬件分界面的權(quán)衡策略,對計算機的整體性能進行評價和改進,從而建立計算機軟硬件整機的概念。美國普渡大學(xué)fPurdueUniversity)計算機科學(xué)系資深教授科默fDouglasE,Comer)博士曾經(jīng)在他的著作中指出:計算機系統(tǒng)結(jié)構(gòu)課程將計算機軟硬件知識統(tǒng)一起來,在許多計算機科學(xué)(Computer Science)的教學(xué)計劃中,計算機系統(tǒng)結(jié)構(gòu)是惟一一門能讓學(xué)生接觸到與編程相關(guān)的計算機結(jié)構(gòu)方面的課程。
表3列出了計算機組成原理、計算機系統(tǒng)結(jié)構(gòu)、計算機操作系統(tǒng)等課程的教學(xué)融合點,同時將不同課程的授課內(nèi)容進行橫向?qū)Ρ?,旨在找到核心課程之間教學(xué)融合點的區(qū)別與聯(lián)系,使得課程銜接更加順暢,教學(xué)重點更加突出。
由表3可以看出,計算機組成原理(CP)強調(diào)基本運行原理,計算機系統(tǒng)結(jié)構(gòu)(CA)強調(diào)性能優(yōu)化方法,而操作系統(tǒng)(0s)則側(cè)重從系統(tǒng)軟件角度管理計算機軟硬件資源;Os多用軟件的方法解決問題,CP則從硬件的角度思考問題,cA在軟件和硬件之間權(quán)衡考慮后取一個折衷,討論具有最佳性價比的軟硬件資源分配方法以及軟硬件界面的劃分。
比如,教師在cP中講三大部件連接結(jié)構(gòu)時應(yīng)該在細化部件講授的基礎(chǔ)上講清楚最根本的全局通路,在CA中講結(jié)構(gòu)時應(yīng)該屏蔽硬件細節(jié),重點討論系統(tǒng)全局結(jié)構(gòu)和優(yōu)化方法。如果忽視全局概念,就容易陷入模塊化講授的誤區(qū),導(dǎo)致銜接出現(xiàn)斷層。
再比如,CP中在匯編級講清指令集接口,講清CA中匯編級的描述與cP的關(guān)系,而在cA中則要講清高級語言、編譯、操作系統(tǒng)和硬件結(jié)構(gòu)的關(guān)系以及性能分析中各方面帶來的影響,否則容易令學(xué)生對系統(tǒng)軟件層面產(chǎn)生誤解,弄不清流水線硬件結(jié)構(gòu)與指令集的關(guān)系。
教師在講授時應(yīng)采取不同的策略,從而達到不同的教學(xué)目的,面向系統(tǒng)能力的授課對教師本身就是一種挑戰(zhàn)。學(xué)生在教師指導(dǎo)下將新的教學(xué)內(nèi)容與之前所學(xué)課程的教學(xué)內(nèi)容聯(lián)系起來,從而更容易把握關(guān)鍵點,在已經(jīng)熟知或略有了解的知識領(lǐng)域換一種角度和思路展開分析和研究,提高學(xué)習(xí)興趣。
面向系統(tǒng)能力進行教學(xué)內(nèi)容設(shè)計可以讓學(xué)生更多地了解學(xué)習(xí)該課程的意義。計算機系統(tǒng)結(jié)構(gòu)課程中的內(nèi)容有利于學(xué)生理解程序設(shè)計中不同選擇和取舍帶來的影響,從而提高程序的效率。學(xué)生通過學(xué)習(xí)硬件工作原理可以改善編程的過程,能夠更迅速地查明故障來源,從而減少程序中的錯誤,而理解計算機的工作原理與系統(tǒng)結(jié)構(gòu)則有助于學(xué)生今后從事系統(tǒng)級的程序開發(fā)或參與設(shè)計一個真實的計算機系統(tǒng)。
5、結(jié)語
教師總結(jié)教學(xué)中的問題并加以思考,有助于全面了解教學(xué)過程。高校中的教與學(xué)可以看作是一種學(xué)術(shù)活動,教師需要不斷地對學(xué)生以及學(xué)生的學(xué)習(xí)情況進行研究,不斷做新的嘗試,與學(xué)生共同完成教與學(xué)的全過程。在教與學(xué)的互動過程中,教學(xué)內(nèi)容對學(xué)生學(xué)習(xí)興趣的培養(yǎng)、學(xué)習(xí)熱情的激發(fā)、學(xué)習(xí)效果的正向影響都起到至關(guān)重要的作用,如何設(shè)計科學(xué)合理且有吸引力的教學(xué)內(nèi)容,值得我們思考并不斷探索。筆者從系統(tǒng)觀角度出發(fā)研究計算機系統(tǒng)結(jié)構(gòu)課程教學(xué)內(nèi)容的設(shè)計,在教學(xué)內(nèi)容的完整性及與前沿領(lǐng)域的結(jié)合方面尚有不盡完善之處,希望能夠與同行分享并共同探討。endprint