王志英 周興社 袁春風等
摘要:計算機專業(yè)學生需要更多地關心計算系統(tǒng)的整體特性,培養(yǎng)自身計算機系統(tǒng)能力,這也是工程教育的特征。文章分析計算機技術發(fā)展的特點,介紹系統(tǒng)能力的主要內涵及培養(yǎng)需求,闡述系統(tǒng)能力培養(yǎng)和課程體系設置的總體思路。
關鍵詞:計算機專業(yè);工程教育;系統(tǒng)能力;系統(tǒng)課程
1.計算技術發(fā)展特點分析
計算技術在20世紀個人機普及和Internet快速發(fā)展的基礎上,從初期的科學計算與信息處理進人21世紀的以移動互聯(lián)、物聯(lián)網(wǎng)、云計算和大數(shù)據(jù)計算為主要特征的新型網(wǎng)絡時代。在這一過程中,計算技術的發(fā)展特點呈現(xiàn)出“四類新型計算系統(tǒng)”和“四化主要特征”,這對計算機專業(yè)人才的知識結構與創(chuàng)新能力提出更高的要求。
1.1四類新型計算系統(tǒng)
1)嵌入式計算系統(tǒng)。
在移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、智能家電、三網(wǎng)融合等行業(yè)技術與產(chǎn)業(yè)發(fā)展中,以嵌入式計算為主要形態(tài)的計算系統(tǒng)——嵌入式計算系統(tǒng)有著舉足輕重和廣泛的作用,并日益呈現(xiàn)網(wǎng)絡化的開放特點。
2)移動計算系統(tǒng)。
在移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、智能家電以及新型裝備中,均以移動通信網(wǎng)絡為基礎,移動計算成為關鍵技術,它將使計算機或其他信息智能終端設備在無線環(huán)境下實現(xiàn)數(shù)據(jù)傳輸及資源共享,其作用是將有用、準確、及時的信息提供給任何時間、任何地點的任何客戶,這將極大地改變人們的生活方式和工作方式。
3)并行計算系統(tǒng)。
隨著半導體工藝技術的飛速進步和體系結構的不斷發(fā)展,多核/眾核處理機硬件日趨普及,這使得昔日高端的并行計算呈現(xiàn)出普適化的發(fā)展趨勢;多核技術對計算系統(tǒng)微體系結構、系統(tǒng)軟件與編程環(huán)境均有很大影響;同時,云計算也是建立在由廉價服務器組成的大規(guī)模集群并行計算的基礎之上,因此,并行計算將成為各類計算系統(tǒng)的基礎技術。
4)基于服務的計算系統(tǒng)。
無論是云計算,還是其他現(xiàn)代網(wǎng)絡化應用軟件系統(tǒng),均以服務計算為核心技術。服務計算是指面向服務的體系結構(Service,orientedArchitecture,SOA)和面向服務的計算(Service oriented Computing,SOC)技術,是標識分布式系統(tǒng)和軟件集成領域技術進步的里程碑。服務作為一種自治、開放以及與平臺無關的網(wǎng)絡化構件,可使分布式應用具有更好的復用性、靈活性和可增長性。Web服務技術是當前SOA的主流實現(xiàn)方式,已經(jīng)形成規(guī)范的服務定義、服務組合以及服務訪問。
1.2“四化”主要特征
1)網(wǎng)絡化。
當今的計算系統(tǒng)必然與網(wǎng)絡相關。盡管各種有線網(wǎng)絡、無線網(wǎng)絡所具有的通信方式、通信能力與通信品質有較大區(qū)別,但它使得與其相聯(lián)的計算系統(tǒng)能力得以充分延伸,更能滿足應用需求。網(wǎng)絡化對計算系統(tǒng)的開放適應能力、協(xié)同工作能力等也提出了更高的要求。
2)多媒體化。
多媒體具有計算機綜合處理多種媒體信息的集成性、實時性與交互性特點。計算機通過多媒體技術可以處理人類生活中最直接、最普遍的信息,從而使計算機應用領域及功能得到極大的擴展,使計算機系統(tǒng)的人機交互界面和手段更加友好和方便,非專業(yè)人員也可以方便地使用和操作計算機。
3)大數(shù)據(jù)化。
從各種類型的數(shù)據(jù)中快速獲得有價值信息的能力稱為大數(shù)據(jù)技術。大數(shù)據(jù)具有體量巨大、類型繁多、價值密度低、處理速度快等特點。大數(shù)據(jù)時代的來臨給各行各業(yè)的數(shù)據(jù)處理與業(yè)務發(fā)展等帶來重要變革,也對計算系統(tǒng)的新型計算模型、大規(guī)模并行處理、分布式數(shù)據(jù)存貯、高效數(shù)據(jù)處理機制等提出新的挑戰(zhàn)。
4)智能化。
智能化將影響計算系統(tǒng)的體系結構、軟件形態(tài)、處理算法以及應用界面等。例如,智能手機的智能搜索引擎是結合了人工智能技術的新一代搜索引擎,不僅具有傳統(tǒng)的快速檢索、相關度排序等功能,還具有用戶角色登記、用戶興趣自動識別、內容的語義理解、智能信息化過濾和推送等功能,其追求的目標是根據(jù)用戶的請求,從可以獲得的網(wǎng)絡資源中檢索出對用戶最有價值的信息。
2.系統(tǒng)能力的主要內涵及培養(yǎng)需求
2.1主要內涵
計算機專業(yè)學生的系統(tǒng)能力核心是在掌握計算系統(tǒng)基本原理基礎上,熟悉如何進一步開發(fā)構建以計算技術為核心的應用系統(tǒng)。這需要學生更多地掌握計算系統(tǒng)內部各軟件/硬件部分的關聯(lián)關系與邏輯層次,了解計算系統(tǒng)呈現(xiàn)的外部特性以及與人和物理世界的交互模式。系統(tǒng)觀的教育體現(xiàn)出工程教育特征,相比較其他專業(yè)學生的計算機基礎和應用能力,計算機專業(yè)更強調對學生計算機系統(tǒng)能力的培養(yǎng)。因此,計算機專業(yè)學生的知識體系不僅需要更新與擴展,而且其系統(tǒng)設計創(chuàng)新能力必須得到強化與提升。
2.2培養(yǎng)需求
隨著計算機科學與技術的不斷進步,信息產(chǎn)業(yè)形態(tài)發(fā)生重要變化,新型計算系統(tǒng)應用日益深化,計算機專業(yè)人才培養(yǎng)也必須“與時俱進”,體現(xiàn)計算技術與信息產(chǎn)業(yè)發(fā)展對學生系統(tǒng)能力培養(yǎng)的需求。教育思想要突顯系統(tǒng)觀教育理念,教學內容要體現(xiàn)新型計算系統(tǒng)原理,在實踐環(huán)節(jié)中展現(xiàn)計算系統(tǒng)平臺技術。
我們要深刻理解系統(tǒng)化專業(yè)教育思想對計算機專業(yè)高等教育的影響。系統(tǒng)化教育和系統(tǒng)能力培養(yǎng)要采取系統(tǒng)科學的方法,不但要夯實系統(tǒng)理論基礎,使學生構建出準確描述真實系統(tǒng)的模型,并能夠用模型預測系統(tǒng)行為;而且要強化系統(tǒng)實踐,培養(yǎng)學生有效地構造正確系統(tǒng)的能力。從系統(tǒng)觀出發(fā),計算機專業(yè)的教學應該注意教學生怎樣從系統(tǒng)層面思考(如設計過程、工具、用戶和物理環(huán)境的交互),應該講透原理(基本原則、架構、協(xié)議、編譯以及仿真等),強化系統(tǒng)性的實踐教學培養(yǎng)過程和內容。
3.相關研究
3.1ACM/IEEE CS2013重視系統(tǒng)能力培養(yǎng)
ACM/IEEE最新公布的CS2013是在組織眾多計算機教育專家深入調研分析、開展專題研究的基礎上,給出的新的教學調整方案。它不僅對原有14個知識域進行適度調整,還增加了4個新的知識域,分別是系統(tǒng)基礎SF、并行和分布計算PD、基于平臺的開發(fā)PBD、信息保障和安全IAS。這些都涉及系統(tǒng)級內容,由此可見,ACM/IEEE CS2013的重點是進一步強調系統(tǒng)知識和系統(tǒng)能力的培養(yǎng)。
3.2專業(yè)教指委已開展相關研究
教育部計算機專業(yè)教學指導分委員會已經(jīng)組織了對計算機專業(yè)學生能力培養(yǎng)和實踐教學體系的研究,重點是如何使學生增強系統(tǒng)能力,全局地掌控一定規(guī)模系統(tǒng)。研究提出:①教學必須樹立系統(tǒng)觀,培養(yǎng)學生的系統(tǒng)眼光。學生學會站在不同層面上去把握不同層次上的系統(tǒng),并全面考慮系統(tǒng)各部分及其與外界的邏輯與聯(lián)系,完成一定規(guī)模的系統(tǒng)設計。②明確了計算思維能力、算法設計與分析能力、程序設計與實現(xiàn)能力以及系統(tǒng)能力為4大專業(yè)基本能力。其中系統(tǒng)能力占總能力的75%,包括系統(tǒng)認知、系統(tǒng)設計、系統(tǒng)開發(fā)和系統(tǒng)應用能力。
目前國內少數(shù)高等學校,如南京大學、復旦大學、北京大學、北京航空航天大學、浙江大學、西北工業(yè)大學、國防科技大學等,正在不同程度上積極進行這些方面的探索和實踐。
4.系統(tǒng)能力培養(yǎng)中存在的問題
在PC時代背景下所設置的課程體系、教學及其實驗內容,對學生的系統(tǒng)能力培養(yǎng)存在以下問題。
(1)課程體系中缺乏一門獨立的能夠貫穿整個計算機系統(tǒng)的基礎課程。有些學校雖然有計算機系統(tǒng)概論課程,但是,課程內容太散太多,沒有系統(tǒng)性,并沒有圍繞一個完整計算機系統(tǒng)框架組織內容。
(2)課程之間的銜接和關聯(lián)考慮不夠。目前課程設置大多按照計算機系統(tǒng)不同層次上的內容獨立開設課程,相應的教材內容和課堂教學內容中很少體現(xiàn)本層次的內容與其他層次內容之間的關聯(lián),學生難以形成對計算機系統(tǒng)的全面認識。
(3)教學內容比較陳舊,較少涉及近年來出現(xiàn)的多核/眾核處理器、分布式和并行計算模式等實際工作中遇到的內容,特別是對于后PC時代的學生所需的關于嵌入式系統(tǒng)、移動終端系統(tǒng)、大型數(shù)據(jù)中心云計算系統(tǒng)等的系統(tǒng)知識體系的教學還很薄弱。
(4)課程體系缺乏對系統(tǒng)設計和應用能力培養(yǎng)的整體考慮,如公共的計算機系統(tǒng)基礎課程及內容的設置,計算機系統(tǒng)核心課程及內容的設置,對于不同應用系統(tǒng)和相關平臺所需的設計和應用人才的培養(yǎng)應設置哪些課程(包括課程實驗)等。
由于教學中對系統(tǒng)能力培養(yǎng)重視不夠,所以學生在系統(tǒng)能力方面存在以下問題:
(1)大部分學生不能很好地建立計算機系統(tǒng)完整概念,缺乏系統(tǒng)觀,只能解決局部的編程和應用問題,對于系統(tǒng)層面問題的解決無法勝任。
(2)大部分學生對于計算機系統(tǒng)的核心內容掌握不夠,難以勝任復雜的涉及軟/硬件協(xié)同設計的任務。
(3)由于沒有很好地建立課程之間內容的關聯(lián),學生對于很多核心內容通常只知其然不知其所以然,所以其綜合分析、設計和應用能力也較差,對于需要綜合運用多個跨課程的概念才能解決的問題一籌莫展。
(4)教學缺乏系統(tǒng)性的綜合實踐環(huán)節(jié),這使學生理論上一知半解,實踐動手能力較差。
5.系統(tǒng)能力培養(yǎng)課程體系設置總體思路
為了更好地培養(yǎng)適應新技術發(fā)展的、具有系統(tǒng)設計和系統(tǒng)應用能力的計算機專門人才,我們需要建立新的計算機專業(yè)本科教學課程體系,特別是設立有關系統(tǒng)級綜合性課程,并重新規(guī)劃計算機系統(tǒng)核心課程的內容,使這些核心課程之間的內容聯(lián)系更緊密、銜接更順暢。
為此,我們調查了若干國外高校的本科生教學在計算機系統(tǒng)能力培養(yǎng)方面的一些做法和思路,借鑒國外大學的經(jīng)驗,結合我國高校計算機人才培養(yǎng)的特點,提出了適合于我國高等教育計算機專業(yè)系統(tǒng)能力培養(yǎng)的課程體系總體設置思路,并對相關的主要課程內容及其實驗內容進行了規(guī)劃。課程體系改革的思路如圖1所示。
我們建議把課程分成3個層次:計算機系統(tǒng)基礎課程、重組內容的核心課程和側重不同計算系統(tǒng)的若干相關平臺應用課程。
第1層次核心課程包括:程序設計基礎(PF)、數(shù)字邏輯電路(DD)和計算機系統(tǒng)基礎(ICS)。
第2層次核心課程包括:計算機組成與設計(COD)、操作系統(tǒng)(OS)、編譯技術(CT)和計算機系統(tǒng)結構(CA)。
第3層次核心課程包括:嵌入式計算系統(tǒng)(ECS)、計算機網(wǎng)絡(CN)、移動計算(MC)、并行計算(Pc)和大數(shù)據(jù)并行處理技術(BD)。
基于這3個層次的課程體系中相關課程設置方案如圖2所示。
圖2中左邊部分是計算機系統(tǒng)的各個抽象層,右邊的矩形框表示課程,其上下兩條邊的位置標示了課程內容在系統(tǒng)抽象層中的涵蓋范圍,矩形的左右兩條邊的位置標示了課程大約在哪個年級開設。虛線框、實線框和粗線框分別表示第1、第2和第3層次核心課程。
從圖2中可以看出,該課程體系的基本思路是:先講頂層比較抽象的編程方面的內容;再講底層系統(tǒng)具體實現(xiàn)的基礎內容;然后再從兩頭到中間,把頂層程序設計內容和底層電路內容按照程序員視角全部串起來;在此基礎上,按順序分別介紹計算機系統(tǒng)硬件、操作系統(tǒng)和編譯器的實現(xiàn)細節(jié)。至此的所有課程內容主要介紹單處理器系統(tǒng)的相關內容,而計算機體系結構主要介紹不同并行粒度的體系結構及其相關的操作系統(tǒng)實現(xiàn)技術和編譯器實現(xiàn)技術。第3層次的課程沒有先后順序,可以是選修課,課程內容應體現(xiàn)第1和第2層次課程內容的螺旋式上升趨勢,即第3層次課程內容涉及的系統(tǒng)抽象層與第1和第2層次課程涉及的系統(tǒng)抽象層是重疊的,但內容并不是簡單重復,而是講授在特定計算系統(tǒng)中的相應教學內容。例如,對于嵌入式計算系統(tǒng)(ECS)課程,雖然它所涉及的系統(tǒng)抽象層與計算機系統(tǒng)基礎(ICS)課程涉及的系統(tǒng)抽象層完全一樣,但這兩門課程的教學內容基本上不重疊,前者著重介紹與嵌入式計算系統(tǒng)相關的ISA設計、操作系統(tǒng)實現(xiàn)和底層硬件設計等內容,后者著重介紹如何從程序員的角度來理解計算機系統(tǒng)設計與實現(xiàn)中涉及的基礎內容。
與傳統(tǒng)課程體系設置相比,最大的不同在于,新的課程體系中有一門涉及計算機系統(tǒng)各個抽象層面的能夠貫穿整個計算機系統(tǒng)設計和實現(xiàn)的基礎課程——計算機系統(tǒng)基礎(ICS)。該課程講解如何從程序員角度來理解計算機系統(tǒng),可以使程序員進一步明確程序設計語言中的語句、數(shù)據(jù)和程序是如何在計算機系統(tǒng)中實現(xiàn)和運行的,讓程序員了解不同的程序設計方法為什么會有不同的性能等。
此外,新的課程體系強調課程之間的銜接和連貫,主要體現(xiàn)在以下幾個方面。
(1)計算機系統(tǒng)基礎課程可以把程序設計基礎、數(shù)字邏輯電路2門課程之間存在的計算機系統(tǒng)抽象層中的“中間間隔”填補上去并很好地銜接起來。這樣,到2年級上學期結束時,學生就可以通過這3門課程清晰地建立單處理器計算機系統(tǒng)的整機概念,構造出完整的計算機系統(tǒng)的基本框架,而具體的計算機系統(tǒng)各個部分的實現(xiàn)細節(jié)再通過后續(xù)相關課程來細化充實。
(2)數(shù)字邏輯電路、計算機組成與設計和嵌入式計算系統(tǒng)3門課程中的實驗內容能夠很好地銜接,可以規(guī)劃一套承上啟下的基于FPGA開發(fā)板的綜合實驗平臺,讓學生在一個統(tǒng)一的實驗平臺上從門電路開始設計基本功能部件,然后再以功能部件為基礎設計CPU、存儲器和外圍接口,最終將CPU、存儲器和I/O接口通過總線互連為一個完整的計算機硬件系統(tǒng)。
(3)計算機系統(tǒng)基礎、計算機組成與設計、操作系統(tǒng)和編譯技術4門之間能夠很好地銜接,構成了一組計算機系統(tǒng)能力培養(yǎng)最基本的核心課程。新課程體系中計算機系統(tǒng)基礎和計算機組成與設計2門課程對原來的計算機系統(tǒng)概論和計算機組成原理課程內容進行重新調整和統(tǒng)籌規(guī)劃。計算機系統(tǒng)基礎、計算機組成與設計、操作系統(tǒng)和編譯技術的關系體現(xiàn)為:
①計算機系統(tǒng)基礎課程以Intel x86為模型機進行講解,它為操作系統(tǒng)課程(特別是Linux內核分析)提供了很好的體系結構基礎。同時,在計算機系統(tǒng)基礎課程中為了清楚地解釋程序中的文件訪問和設備訪問等問題,會從程序員角度簡單引入一些操作系統(tǒng)中的相關基礎知識。
②計算機系統(tǒng)基礎課程會講解高級語言程序如何進行轉換、鏈接以生成可執(zhí)行代碼的問題。
③計算機組成與設計中的流水線處理等也與編譯優(yōu)化相關,而且以MIPS為模型機進行講解,而MIPS模擬器可以為編譯技術的實驗提供可驗證實驗環(huán)境。
從計算機系統(tǒng)基礎課程的內容和教學目標以及開設時間來看,位于較高抽象層的先行課(如程序設計基礎、數(shù)據(jù)結構等課程)可以按照原來的內容和方式開設和教學,而作為新的計算機系統(tǒng)基礎和計算機組成與設計的先導課數(shù)字邏輯電路,則需要對傳統(tǒng)的教學內容,特別是實驗內容和實驗手段進行修改和完善。
有了計算機系統(tǒng)基礎和計算機組成與設計課程的基礎,學生將更容易從計算機系統(tǒng)整體的角度理解操作系統(tǒng)、編譯原理等后續(xù)課程。這些后續(xù)課程在內容方面不需要大的改動,但是操作系統(tǒng)和編譯器的實驗要以先行課程實現(xiàn)的計算機硬件系統(tǒng)為基礎,這樣才能形成一致的、完整的計算機系統(tǒng)整體概念。
6.結語
系統(tǒng)觀教育對于計算機專業(yè)的所有培養(yǎng)方向均適用,它對專業(yè)核心課程任課教師提出了更高要求,因此必須強化計算機專業(yè)的教師培訓工作,特別是重視以系統(tǒng)觀為核心的新教材的編寫工作,以便使計算機專業(yè)人才培養(yǎng)和教育跟上學科、技術和產(chǎn)業(yè)的發(fā)展步伐。
本系統(tǒng)研究組由國防科學技術大學、西北工業(yè)大學、南京大學、南開大學、天津大學、武漢大學、北京大學有關教授組成,他們共同進行了關于計算機專業(yè)學生系統(tǒng)知識、系統(tǒng)能力和系統(tǒng)課程的研討。本研究得到機械工業(yè)出版社華章公司的大力支持。
參考文獻:
[1]The Joint Task Force on Computing Curricula of ACM/IEEE,Computer Science Curricula 2013 Ironman Draft(Version 0.8)[EB/OL].[2013-03-26].http://ai.stanford.edu/users/sahami/CS2013/.
[2]教育部高等學校計算機科學與技術專業(yè)教學指導委員會,高等學校計算機科學與技術專業(yè)發(fā)展戰(zhàn)略研究報告及規(guī)范[M].北京:清華大學出版社,2006.
[3]教育部高等學校計算機科學與技術專業(yè)教學指導委員會。高等學校計算機科學與技術專業(yè)人才專業(yè)能力構成與培養(yǎng)[M],北京:機械工業(yè)出版社,2010.
(編輯:彭遠紅)