鄭緯民
摘 要:計算機(jī)專業(yè)的大學(xué)生應(yīng)該能夠運(yùn)用數(shù)學(xué)和物理原理,設(shè)計和開發(fā)計算機(jī)運(yùn)行系統(tǒng),包括中央處理器(CPU)、操作系統(tǒng)、編譯系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)等;能夠運(yùn)用計算機(jī)基礎(chǔ)系統(tǒng)原理,設(shè)計和開發(fā)計算機(jī)領(lǐng)域的專門系統(tǒng),包括軟件開發(fā)系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、嵌入式系統(tǒng)等;能夠運(yùn)用計算機(jī)專業(yè)系統(tǒng)原理,設(shè)計和開發(fā)各種應(yīng)用系統(tǒng)。本文主要內(nèi)容包括三個方面:首先分析什么是計算機(jī)系統(tǒng)能力,它的內(nèi)涵是什么;其次從計算機(jī)創(chuàng)新人才培養(yǎng)需求和計算機(jī)產(chǎn)業(yè)戰(zhàn)略發(fā)展的需求兩個方面說明為什么要強(qiáng)調(diào)系統(tǒng)能力培養(yǎng);最后從計算機(jī)專業(yè)課程體系建設(shè)環(huán)節(jié)需加強(qiáng)系統(tǒng)能力培養(yǎng)和計算機(jī)專業(yè)核心課程實驗室系統(tǒng)能力培養(yǎng)的關(guān)鍵兩個方面說明如何加強(qiáng)系統(tǒng)能力培養(yǎng)。
關(guān)鍵詞:計算機(jī)系統(tǒng);系統(tǒng)能力培養(yǎng);課程體系;培養(yǎng)方案、實驗教學(xué)
一、計算機(jī)系統(tǒng)能力的定義與內(nèi)涵
計算機(jī)系統(tǒng)能力是指能自覺運(yùn)用系統(tǒng)觀,理解計算機(jī)系統(tǒng)的整體性、關(guān)聯(lián)性、層次性、動態(tài)性和開放性,并用系統(tǒng)化方法,掌握計算機(jī)硬軟件協(xié)同工作及相互作用的機(jī)制的能力。通過掌握軟硬件接口和運(yùn)行協(xié)同機(jī)理、軟硬件邏輯關(guān)系和體系結(jié)構(gòu)、功能設(shè)計和交互模式等知識內(nèi)容,培養(yǎng)學(xué)生解決復(fù)雜工程問題的基本能力,最終實現(xiàn)計算機(jī)應(yīng)用和創(chuàng)新的價值。
計算機(jī)系統(tǒng)能力的內(nèi)涵主要包括三個方面。一是計算機(jī)基礎(chǔ)系統(tǒng)能力。即學(xué)生可以運(yùn)用數(shù)學(xué)和物理原理,設(shè)計和開發(fā)計算機(jī)運(yùn)行系統(tǒng),包括中央處理器(CPU)、操作系統(tǒng)、編譯系統(tǒng)和網(wǎng)絡(luò)系統(tǒng),這是計算機(jī)最基本的系統(tǒng),稱為計算機(jī)基礎(chǔ)系統(tǒng)。二是計算機(jī)領(lǐng)域系統(tǒng)能力。即學(xué)會運(yùn)用計算機(jī)基礎(chǔ)系統(tǒng)原理,設(shè)計和開發(fā)計算機(jī)領(lǐng)域的專門系統(tǒng),例如軟件開發(fā)系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、嵌入式系統(tǒng)等,稱為計算機(jī)領(lǐng)域系統(tǒng)。三是計算機(jī)應(yīng)用系統(tǒng)能力。即可以運(yùn)用計算機(jī)專業(yè)系統(tǒng)原理,設(shè)計和開發(fā)各種應(yīng)用系統(tǒng),稱為計算機(jī)應(yīng)用系統(tǒng)。
二、為什么要強(qiáng)調(diào)系統(tǒng)能力培養(yǎng)
強(qiáng)調(diào)培養(yǎng)學(xué)生的系統(tǒng)能力,是計算機(jī)創(chuàng)新人才培養(yǎng)的需求,同樣也是計算機(jī)產(chǎn)業(yè)戰(zhàn)略發(fā)展的需求。
1.計算機(jī)創(chuàng)新人才需要具備系統(tǒng)能力
隨著大規(guī)模數(shù)據(jù)中心的建立和個人移動設(shè)備的普及,我們可以清楚地看到,計算機(jī)人才培養(yǎng)強(qiáng)調(diào)的“程序性開發(fā)能力”正在轉(zhuǎn)化為更重要的“系統(tǒng)性設(shè)計能力”。為了應(yīng)對各種復(fù)雜應(yīng)用,編寫出高效程序,應(yīng)用開發(fā)人員必須了解系統(tǒng)平臺的底層結(jié)構(gòu),并熟練掌握其中的技術(shù)和工具。同時,要求在整體的系統(tǒng)層面綜合設(shè)計,通過軟硬件協(xié)同實現(xiàn)開發(fā)方案的最優(yōu)化,以強(qiáng)大的底層技術(shù)來保證各項復(fù)雜功能的高效實現(xiàn)。正如圖靈獎得主David Patterson指出:“在異構(gòu)計算的時代程序員必須對于算法和硬件模型融會貫通,才能寫出高質(zhì)量的代碼。因此,未來的程序員還必須懂硬件!”
2.計算機(jī)產(chǎn)業(yè)戰(zhàn)略發(fā)展的需求
隨著我國計算機(jī)產(chǎn)業(yè)的快速發(fā)展,崛起一大批高水平的IT企業(yè),計算機(jī)產(chǎn)業(yè)也已成為國家創(chuàng)新的龍頭,為我國經(jīng)濟(jì)發(fā)展發(fā)揮了重要支撐作用,但仍存在缺乏核心技術(shù)、發(fā)展頻受扼制的問題,這對計算機(jī)專業(yè)人才的能力提出了新要求。與此同時,我國高校在世界上的排名大幅度躍升,我國高校的計算機(jī)專業(yè)直接和世界一流大學(xué)相關(guān)專業(yè)合作交流與競爭越來越緊密。高等學(xué)校尤其是計算機(jī)專業(yè)對人才培養(yǎng)的定位有了提升,迫切需要培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力,培養(yǎng)具備推動計算機(jī)學(xué)科發(fā)展的優(yōu)秀人才。學(xué)生個人的成長空間也將大幅擴(kuò)展,成為各行各業(yè)的領(lǐng)軍人才、領(lǐng)袖人物。
系統(tǒng)能力是支撐計算產(chǎn)業(yè)發(fā)展的基石。從20世紀(jì)60年代的大型機(jī)時代、80年代的微型機(jī)時代,到90年代的互聯(lián)網(wǎng)時代,再到進(jìn)入21世紀(jì)的云計算時代,正是計算機(jī)系統(tǒng)的不斷迭代,推動了計算機(jī)產(chǎn)業(yè)的蓬勃發(fā)展。計算機(jī)產(chǎn)業(yè)復(fù)雜性的提高與網(wǎng)絡(luò)化發(fā)展,對系統(tǒng)能力的培養(yǎng)提出了更高的要求。
系統(tǒng)能力是大數(shù)據(jù)產(chǎn)業(yè)發(fā)展的基礎(chǔ)。大數(shù)據(jù)蘊(yùn)含的巨大應(yīng)用價值和潛力已被廣泛認(rèn)知,數(shù)據(jù)的分析、數(shù)據(jù)價值的發(fā)掘與應(yīng)用、算法的時效性等均依賴于數(shù)據(jù)計算系統(tǒng),數(shù)據(jù)的存儲和訪問依賴于數(shù)據(jù)存儲系統(tǒng)。因此,高效能、高可擴(kuò)展、高可用的大數(shù)據(jù)依賴于計算和存儲系統(tǒng),是大數(shù)據(jù)產(chǎn)業(yè)發(fā)展的基礎(chǔ)。
系統(tǒng)能力是人工智能發(fā)展的核心實力。人工智能作為深刻改變社會生產(chǎn)力和生產(chǎn)關(guān)系的顛覆性技術(shù),正引領(lǐng)著新一輪科技革命和產(chǎn)業(yè)革命向縱深推進(jìn),重構(gòu)著人類的生產(chǎn)、生活方式以及思維模式。人工智能的發(fā)展作為一門學(xué)科獨(dú)立存在,到今天已經(jīng)有60余年的歷史了。1956年達(dá)特茅斯會議首次提出了“Artificial Intelligence”(人工智能,AI)這個術(shù)語,1959年Arthur Samuel 又提出了“機(jī)器學(xué)習(xí)”這一定義,推翻了以往“機(jī)器無法超越人類,不能像人一樣寫代碼和學(xué)習(xí)”這一傳統(tǒng)認(rèn)識。但到了20世紀(jì)70年代,由于機(jī)器翻譯等項目失敗以及一些學(xué)術(shù)報告的負(fù)面影響,導(dǎo)致人工智能發(fā)展陷入低谷。1985年,又出現(xiàn)了更強(qiáng)可視化效果的決策樹模型,1997年人工智能Deep Blue戰(zhàn)勝了世界國際象棋冠軍,近年來深度學(xué)習(xí)廣受關(guān)注、大數(shù)據(jù)時代的到來,以及AlphaGo圍棋人機(jī)大戰(zhàn),人工智能真正成為世界各國贏得全球科技競爭主動權(quán)的重要戰(zhàn)略抓手。縱觀人工智能的發(fā)展歷史可以發(fā)現(xiàn),人工智能設(shè)計的核心技術(shù)主要包括算法(深度學(xué)習(xí))、算力(以GPU、TPU等為代表的AI芯片及超級計算機(jī))、數(shù)據(jù)(大量訓(xùn)練數(shù)據(jù)集),而這些都需要計算機(jī)系統(tǒng)的支撐,都是建立在系統(tǒng)能力之上。
系統(tǒng)能力是解決卡脖子技術(shù)的關(guān)鍵能力。2018年,《科技日報》相繼報道35項“卡脖子”技術(shù),包括芯片、操作系統(tǒng)、核心工業(yè)軟件、核心算法、航空設(shè)計軟件、數(shù)據(jù)庫管理系統(tǒng)等。習(xí)近平總書記在網(wǎng)絡(luò)安全和信息化工作座談會上的講話中指示,沒有網(wǎng)絡(luò)安全就沒有國家安全。解決這些“卡脖子”難題,需要我們聚焦核心技術(shù),加大科研投入,培養(yǎng)計算機(jī)人才的系統(tǒng)能力。
系統(tǒng)能力是進(jìn)行高端工程的關(guān)鍵能力。高端工程研發(fā)有別于大學(xué)中常見的基礎(chǔ)研究工作,既要有先進(jìn)的技術(shù)和理念,又要產(chǎn)出實際可用的系統(tǒng)特別是產(chǎn)出基礎(chǔ)性平臺?;A(chǔ)性平臺的影響是非常深遠(yuǎn)的,以加州大學(xué)伯克利分校為例,他們研制的BSD操作系統(tǒng)、PostgreSQL數(shù)據(jù)庫,以及最近的軟件定義網(wǎng)絡(luò)SDN,都對學(xué)術(shù)界和產(chǎn)業(yè)界產(chǎn)生了極大的影響。系統(tǒng)能力關(guān)注交叉性、基礎(chǔ)性和工程性,是進(jìn)行高端工程的關(guān)鍵能力。
三、如何加強(qiáng)系統(tǒng)能力培養(yǎng)
1.課程體系建設(shè)環(huán)節(jié)需加強(qiáng)系統(tǒng)能力培養(yǎng)
加強(qiáng)系統(tǒng)能力培養(yǎng),有必要對計算機(jī)專業(yè)課程體系進(jìn)行改革。這方面一些國內(nèi)外著名高校計算機(jī)專業(yè)的系統(tǒng)類課程設(shè)置做了一些很好的示范。以麻省理工學(xué)院(MIT)培養(yǎng)方案為例,該校開設(shè)了Introduction to EECS via Robotics,Introduction to EECS via Communicatio n Networks,Computation structure,Microelectronic Devices and Circuits,Electronics Project Laboratory,Computer System Engineering等基礎(chǔ)課程,課程體系縱向貫穿,系統(tǒng)能力培養(yǎng)課程占培養(yǎng)方案較大比例,系統(tǒng)能力培養(yǎng)貫穿本科幾乎所有學(xué)期。如系統(tǒng)類基礎(chǔ)課6.01 Introduction to EECS 1,課程內(nèi)容縱向貫穿Programming,Python,Control systems,Inference,Probability,Sensons and effectors,Circuits and transducers等多個知識點(diǎn),系統(tǒng)能力自底向上培養(yǎng)綜合貫穿,實踐性強(qiáng)。再如卡內(nèi)基·梅隆大學(xué)(CMU),該校計算機(jī)專業(yè)同樣注重在課程體系中貫穿系統(tǒng)能力培養(yǎng),以15213 Introduction to Computer System為例,該門課程包括Machine level code and its generation by optimizing compilers,Performance evaluation and optimization,Computer arithmetic,Memory organization and management,Networking technology and protocols,Supporting concurrent computation等內(nèi)容,從編程者角度理解計算機(jī)系統(tǒng)的運(yùn)行,課程體系縱向貫穿。
但是,我們必須清楚地認(rèn)識到,目前我國系統(tǒng)能力培養(yǎng)仍然面臨著諸多問題。一是教學(xué)理念落后。專業(yè)人才培養(yǎng)重知識、輕能力,尤其是對全面的系統(tǒng)能力培養(yǎng)認(rèn)識不足。二是教學(xué)目標(biāo)單一。高校普遍采用統(tǒng)一的教學(xué)目標(biāo)和考核標(biāo)準(zhǔn),無法進(jìn)行個性化培養(yǎng)和因材施教。三是教學(xué)手段陳舊。各門課程獨(dú)立規(guī)劃、獨(dú)立教學(xué),造成了知識體系中知識點(diǎn)冗余和銜接關(guān)系脫節(jié)。從教學(xué)方法上看,各門課程采取“橫向”分析式教學(xué)方法較多,但很少采用“縱向”視角,系統(tǒng)性實驗手段缺乏。
因此,我們系提出了系統(tǒng)能力培養(yǎng)課程體系建設(shè)的新思路:分層、雙向。計算機(jī)科學(xué)內(nèi)涵豐富,從底層到頂層,涵蓋CPU、操作系統(tǒng)/編譯系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、數(shù)據(jù)庫/軟件設(shè)計/嵌入式系統(tǒng)、應(yīng)用等多個層級?;诰幊桃暯?,課程體系自頂向下,深入貫通;基于系統(tǒng)視角,課程體系自底向上、綜合貫穿。
清華大學(xué)計算機(jī)科學(xué)與技術(shù)專業(yè)貫徹統(tǒng)一的系統(tǒng)能力培養(yǎng)教學(xué)理念,以縱向視角組織教學(xué)內(nèi)容與方法,采用基于工業(yè)標(biāo)準(zhǔn)的統(tǒng)一教學(xué)實驗平臺,先后開設(shè)了數(shù)字邏輯電路、匯編語言程序設(shè)計、計算機(jī)組成原理、操作系統(tǒng)、編譯原理、網(wǎng)絡(luò)原理6門課程,實現(xiàn)了課程體系的縱向貫通。讓學(xué)生具備自主設(shè)計和實現(xiàn)一臺簡單完整計算機(jī)的能力,培養(yǎng)學(xué)生系統(tǒng)觀點(diǎn),掌握系統(tǒng)方法,增長系統(tǒng)能力。系統(tǒng)能力培養(yǎng)課程橫縱向梳理知識體系,以明確各課程教學(xué)內(nèi)容,建立計算機(jī)系統(tǒng)層次間的聯(lián)系。通過明確系統(tǒng)培養(yǎng)概念,統(tǒng)一知識體系,確??v橫向知識點(diǎn)完備。橫向角度確定各課程的主要知識點(diǎn),避免冗余,并確保同層次內(nèi)容的完整性;貫徹“縱向”視角,明確層次之間的銜接點(diǎn),從各個課程的相互關(guān)系(也是計算機(jī)系統(tǒng)各個層次的相互關(guān)系)入手,對完整的計算機(jī)系統(tǒng)進(jìn)行全面說明(見圖1)。
2.實驗是計算機(jī)系統(tǒng)能力培養(yǎng)的關(guān)鍵
系統(tǒng)能力培養(yǎng)的關(guān)鍵在于實驗教學(xué)。對于系統(tǒng)能力培養(yǎng)而言,理論知識的應(yīng)用、系統(tǒng)概念的建立、動手能力的訓(xùn)練、創(chuàng)新素養(yǎng)的習(xí)得,都與實驗教學(xué)密不可分。實驗體系的建立作為課程體系的重要組成,要銜接課程知識,面向系統(tǒng)整體。
目前國外高校的系統(tǒng)類課程實驗體系較為典型的有麻省理工學(xué)院電氣工程與計算機(jī)科學(xué)系(MIT EECS)。比如,其課程方向Course 6-3: Computer Science and Engineering就包括從系統(tǒng)入門到專業(yè)課程,再到系統(tǒng)綜合的4個層次的完整實驗體系。其中,第一個層次一般實驗包括電機(jī)控制等簡單入門課程(簡單實驗,例如電機(jī)控制等),第二個層次是專業(yè)課程(課內(nèi)實驗,例如ALU設(shè)計、時序邏輯等專業(yè)課程實驗),第三個層次是獨(dú)立的實驗課程(獨(dú)立設(shè)課,主要包括是機(jī)械臂控制等系統(tǒng)應(yīng)用),第四個層次包括多核處理器設(shè)計等項目實驗課程(選修實驗,例如多核處理器設(shè)計)。比如系統(tǒng)類課程實驗6.004 Computation Structures,涵蓋RISC-V架構(gòu)、模擬器進(jìn)行實驗、單周期處理器、運(yùn)行排序程序等內(nèi)容。再如斯坦福大學(xué)計算機(jī)科學(xué)系(Stanford CS),其課程分為System,Theory,Track和Electives四類。其中一般實驗包括理論課程(編程實驗,如CS 140中包含5個操作系統(tǒng)小實驗)、實驗課程(獨(dú)立設(shè)課,大實驗,例如 CS 140E中需要完成一個操作系統(tǒng)),系統(tǒng)實驗包括系列課程CS 107,CS 107A,CS107E,其中CS 107實驗主要是C語言編程,觀察底層硬件如何支持程序運(yùn)行的;CS 107E實驗是大實驗,學(xué)生組隊在樹莓派上進(jìn)行一個軟硬件結(jié)合的應(yīng)用。加州大學(xué)伯克利分校電氣工程與計算機(jī)科學(xué)系(UC Berkeley EECS)課程分為Lower Division (必修)和Upper Division(20學(xué)分)兩大部分。一般實驗包括理論課程(簡單實驗,如CS 61中的部件實驗)、實驗課程(獨(dú)立設(shè)課,綜合實驗,如 CS61CL中使用C語言設(shè)計處理器);系統(tǒng)實驗EECS151LA/B要求設(shè)計RISC V的3級流水線處理器,帶Cache和圖形加速,還要實現(xiàn)一些應(yīng)用,無操作系統(tǒng),A為模擬器上實現(xiàn),B為FPGA上實現(xiàn)。
縱觀國外系統(tǒng)類課程實驗體系,我們不難發(fā)現(xiàn),國外系統(tǒng)類課程實驗體系一般都有專門的實驗課,課程實驗工作量大,設(shè)計型實驗居多,大部分綜合實驗是以團(tuán)隊形式完成的,要求本科期間完成一個綜合的系統(tǒng)層次實驗,這些特點(diǎn)有助于培養(yǎng)學(xué)生的系統(tǒng)能力。但是也存在一些問題,比如較少全面結(jié)合操作系統(tǒng)、編譯等課程,課程內(nèi)縱向貫通較少,課程間聯(lián)系較少,以虛擬仿真為主,等等。
清華大學(xué)在參考國外系統(tǒng)類課程實驗體系的基礎(chǔ)上,基于自身特色,構(gòu)建了多目標(biāo)、遞進(jìn)式、迭代化的實驗體系。為滿足不同學(xué)生個性化培養(yǎng)目標(biāo)要求,科學(xué)構(gòu)建了初、中、高三級實驗,逐步遞進(jìn)、迭代培養(yǎng)學(xué)生的興趣與能力。實驗體系逐步增加難度,減輕了學(xué)生的學(xué)習(xí)壓力,緩解了畏難情緒。在該實驗體系中,能運(yùn)行程序的計算機(jī)系統(tǒng)是關(guān)鍵。學(xué)生在完成程序設(shè)計、數(shù)字邏輯設(shè)計等課程學(xué)習(xí)后,即可參與初級實驗,設(shè)計可以運(yùn)行監(jiān)控程序、具備基本輸入/輸出功能的計算機(jī),運(yùn)行交叉編譯的應(yīng)用程序;開展中級實驗時,需要設(shè)計能夠運(yùn)行教學(xué)操作系統(tǒng)的計算機(jī),并運(yùn)行編譯后的應(yīng)用程序;高級實驗中則需要設(shè)計運(yùn)行支持網(wǎng)絡(luò)協(xié)議的系統(tǒng),搭建路由器。學(xué)有余力的同學(xué)可以開展進(jìn)一步的實驗,要求設(shè)計的實驗計算機(jī)系統(tǒng)可運(yùn)行Linux等開源操作系統(tǒng),開發(fā)路由器連接多臺教學(xué)計算機(jī),并能構(gòu)建網(wǎng)絡(luò)系統(tǒng)。
清華大學(xué)基于上述要求,搭建了統(tǒng)一、規(guī)范、標(biāo)準(zhǔn)的實驗平臺——THinPad實驗平臺(如圖2所示)。該平臺能夠?qū)崿F(xiàn)課程間統(tǒng)一實驗環(huán)境、統(tǒng)一規(guī)劃課程實驗、統(tǒng)一實驗平臺和工具,目前能夠支持?jǐn)?shù)字電路實驗、處理器設(shè)計實驗、操作系統(tǒng)實驗、路由器實驗等實驗內(nèi)容。我們系基于FPGA自主研發(fā)了硬件平臺(ThinPAD I型和ThinPAD II型),軟件平臺也覆蓋了模擬器、匯編器、仿真終端、數(shù)據(jù)通信程序、監(jiān)控程序、GCC編譯器、匯編與鏈接工具等,持續(xù)迭代和優(yōu)化完善了實驗環(huán)境。
但是,在實驗中實體主板往往存在以下問題。一是實驗板在學(xué)生手中容易損壞,維護(hù)成本高;二是實驗時接線復(fù)雜,使用不方便;三是無法滿足MOOC等線上課程要求。我們系依托信息化技術(shù),進(jìn)一步開發(fā)了Thinpad Cloud在線實驗平臺。該平臺采用純網(wǎng)頁在線實驗環(huán)境,隨時隨地可用,不需要額外設(shè)備,為學(xué)生的學(xué)習(xí)帶來極大便利;后臺依托真實硬件支撐,確保實驗結(jié)果準(zhǔn)確可復(fù)現(xiàn);對實驗者透明,學(xué)生不用修改設(shè)計來適應(yīng)在線環(huán)境;面向MOOC需求設(shè)計,支持批量部署,適合大范圍推廣與應(yīng)用。
[責(zé)任編輯:余大品]