羅先錄 譚德立 張永棠 陳桂宏
摘 要:系統(tǒng)能力是近期提出的計算機類專業(yè)的一個重要能力,應(yīng)用型本科需要重視本項能力的構(gòu)建,從而為工程實踐能力做好前期基礎(chǔ)準(zhǔn)備。通過研究國內(nèi)外對系統(tǒng)能力的教學(xué)設(shè)計實踐經(jīng)驗,參考相關(guān)高校專業(yè)的課程體系,提出了應(yīng)用型本科計算機類專業(yè)系統(tǒng)能力課程體系計劃。
關(guān)鍵詞:應(yīng)用型本科;系統(tǒng)能力;工程教育
中圖分類號:TP3-05 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
我們計算機專業(yè)學(xué)生比其他專業(yè)自學(xué)計算機課程的學(xué)生強在哪里?這是我們在計算機專業(yè)教學(xué)中經(jīng)常遇到的問題,也是計算機專業(yè)的學(xué)生畢業(yè)后會反思的問題。我們國家經(jīng)歷了這些年的計算機專業(yè)教育,但是很少有對這個問題令人滿意的回答。中國計算機學(xué)會計算機教育專業(yè)委員會在《2012中國計算機科學(xué)技術(shù)發(fā)展報告》中明確提出:相比較其他專業(yè)學(xué)生的計算機基礎(chǔ)和應(yīng)用能力,計算機專業(yè)學(xué)生更強調(diào)計算機系統(tǒng)能力的培養(yǎng)[1]。南京大學(xué)的袁春風(fēng)等認(rèn)為, 計算機專業(yè)學(xué)生的優(yōu)勢之一在于計算機系統(tǒng)能力,即具備計算機系統(tǒng)層面的認(rèn)知與設(shè)計能力、能從計算機系統(tǒng)的高度考慮和解決問題[2]。
國內(nèi)在計算機系教育領(lǐng)先的大學(xué),大都進(jìn)行了關(guān)于計算機專業(yè)學(xué)生系統(tǒng)知識、系統(tǒng)能力和系統(tǒng)課程的研討。這些大學(xué)都提出了自己的方案并進(jìn)行了探索和實踐。筆者參考了《2012中國計算機科學(xué)技術(shù)發(fā)展報告》中《計算機專業(yè)學(xué)生系統(tǒng)能力培養(yǎng)和系統(tǒng)課程設(shè)置的研究與進(jìn)展》,以及參加2014年清華大學(xué)出版社和南京大學(xué)組織的第三屆高校計算機類專業(yè)人才培養(yǎng)高峰論壇,看到和聽取了很多前沿的探索總結(jié),深受啟發(fā)。
作為一所新辦的本科院校,廣東東軟學(xué)院具備東北大學(xué)、國防科技大學(xué)、東軟集團(tuán)等校企背景,培養(yǎng)適應(yīng)計算機新技術(shù)、新問題、新領(lǐng)域發(fā)展的人才,我們必須要從易到難,從可以實現(xiàn)到較高目標(biāo)定位來逐步落實系統(tǒng)能力的培養(yǎng)。
2 國內(nèi)外借鑒(Domestic and international
reference)
(1)國際高校系統(tǒng)能力課程體系
麻省理工學(xué)院(MIT)。基礎(chǔ)課程6.004計算結(jié)構(gòu)(Computation Structures)[3]+6.033計算機系統(tǒng)工程(Computer System Engineering)[4]。6.004是一門貫穿整個計算機系統(tǒng)的課程。這門課包括硬件方面的門電路、功能部件、單周期和流水線CPU之間的所有基本內(nèi)容和軟件方面的C語言、匯編語言、機器指令之間的基本內(nèi)容,還涉及過程調(diào)用、系統(tǒng)調(diào)用、進(jìn)程、并行、性能評價等一些重要概念。6.033內(nèi)容涵蓋了計算機體系結(jié)構(gòu)、操作系統(tǒng)、網(wǎng)絡(luò)等多門課程中的重要概念。6.004目前還沒有教材,6.033中文版《計算機系統(tǒng)設(shè)計原理》由清華大學(xué)出版社出版。該課程于1968年開始講授,是MIT EECS兩位資深教授40多年教學(xué)和研究的總結(jié),經(jīng)過不斷修改和與時俱進(jìn),正式與2009年開始出版,堪稱計算機系統(tǒng)設(shè)計方面的經(jīng)典教材。
卡耐基梅隆大學(xué)(CMU)和斯坦福大學(xué)(Stanford University)。CMU的CS213[5]和斯坦福CS107[6],所用教材都是《深入理解計算機系統(tǒng)》(Computer Systems:A Programmer's Perspective,Randal E.Bryantand David R.O'Hallaron)。中文版由機械工業(yè)出版社出版。這門課從程序員的視角詳細(xì)闡述計算機系統(tǒng)的本質(zhì)概念,并展示這些概念如何實實在在地影響應(yīng)用程序的正確性、性能和實用性。主要內(nèi)容包括信息的表示和處理、程序的機器級表示、處理器體系結(jié)構(gòu)、優(yōu)化程序性能、存儲器層次結(jié)構(gòu)、鏈接、異??刂屏鳌⑻摂M存儲器、系統(tǒng)級I/O、網(wǎng)絡(luò)編程、并發(fā)編程等。華盛頓大學(xué)(University of Washington)在cousera上有一門課程The Hardware/Software Interface[7],采取了同樣內(nèi)容和教材。主要從程序員角度介紹計算機系統(tǒng),更偏向于系統(tǒng)軟件層面。本課程于1998年在CMU計算機學(xué)院開始開設(shè),經(jīng)過多年的教學(xué)總結(jié),2003年開始出版,得到了很多美國高校的采用,中文版在我們國家出現(xiàn)后,得到了IT業(yè)界的廣泛認(rèn)可。
(2)國內(nèi)高校系統(tǒng)能力課程體系
南京大學(xué)軟件學(xué)院。B111SE《計算系統(tǒng)基礎(chǔ)》采用了Yale N.Patt,Sanjay J.Patel,Introduction to Computing Systems:From bits & gates to C & beyond(Second Edition),機械工業(yè)出版社,2006(對照中譯本:梁阿磊譯,計算機系統(tǒng)概論,第2版,機械工業(yè)出版社,2006)。課程采取自底向上的教學(xué)模式,圍繞一個簡單的計算機(LC3)進(jìn)行從比特到高級語言(C語言)的全面、系統(tǒng)的介紹,為初學(xué)者建立一個完整的計算概念,包括:數(shù)據(jù)的機器級表示、數(shù)字邏輯、馮·諾伊曼模型、機器語言、匯編語言、輸入和輸出、Trap機制和子程序、結(jié)構(gòu)化程序設(shè)計與C語言。課程較好地解決了基礎(chǔ)知識與動手能力相結(jié)合、硬件與軟件相結(jié)合、系統(tǒng)軟件與程序設(shè)計相結(jié)合的問題,既注重學(xué)生對計算系統(tǒng)的宏觀理解,又加強學(xué)生實踐能力的培養(yǎng)[8]。本教材是起源于1995年密歇根大學(xué)開設(shè)的課程,于2000年開始出版,是計算機科學(xué)的經(jīng)典基礎(chǔ)教材,被國內(nèi)外大學(xué)廣泛采用為教材。
北京航空航天大學(xué)計算機學(xué)院。計算機組成+操作系
統(tǒng)+編譯技術(shù)組成三大必修課程,對應(yīng)三大系統(tǒng)級核心技術(shù):CPU、操作系統(tǒng)和編譯器,以期學(xué)生達(dá)到三大能力目標(biāo)(能夠開發(fā)一個功能型CPU,能夠開發(fā)一個操作系統(tǒng)核心,能夠開發(fā)一個編譯器)[9]。
浙江大學(xué)計算機學(xué)院??傮w設(shè)想是采用軟硬件課程貫通,以計算機系統(tǒng)(SOC)設(shè)計與實現(xiàn)的實踐過程為手段,深入理解計算機系統(tǒng)和高性能程序設(shè)計為目標(biāo),融會貫通數(shù)字邏輯設(shè)計、計算機組成、操作系統(tǒng)和編譯技術(shù)等課程知識體系;以系統(tǒng)能力培養(yǎng)為統(tǒng)一視圖,建立層次化、循序遞進(jìn)、開放式課程群的課程體系和實踐目標(biāo)。
具體分成了系統(tǒng)能力最小系統(tǒng)(《邏輯與計算機設(shè)計基礎(chǔ)(數(shù)字電路)》+《計算機組成原理》),系統(tǒng)能力基本系統(tǒng)(《邏輯與計算機設(shè)計基礎(chǔ)(數(shù)字電路)》+《計算機組成原理》+《編譯原理》+《操作系統(tǒng)》),以及系統(tǒng)能力最大系統(tǒng)(《計算機體系結(jié)構(gòu)》+《計算機接口與匯編》)[10]。
3 融合與提升(Integration and promotion)
通過對國內(nèi)外高校系統(tǒng)能力課程體系的借鑒,結(jié)合廣東東軟學(xué)院的實際情況,尋求計算機系統(tǒng)能力培養(yǎng)的融合與提升之道。我們認(rèn)為計算機教育改革的重點是以教育部教指委關(guān)于計算機系統(tǒng)能力培養(yǎng)為核心。以計算機思維的培養(yǎng)為核心,將計算思維能力培養(yǎng)貫穿整個課程體系,調(diào)整計算機應(yīng)用型人才的培養(yǎng)方案。計算機類專業(yè)系統(tǒng)能力要求如圖1所示。
為了達(dá)到更好的計算機系統(tǒng)能力培養(yǎng)的融合與提升效果,我們做了一下思考:
(1)作為應(yīng)用型大學(xué),提升系統(tǒng)能力,最終目標(biāo)是為了工程應(yīng)用。我們先設(shè)置第一門課程“計算機系統(tǒng)基礎(chǔ)(ICS)”?!芭c傳統(tǒng)課程體系設(shè)置相比,最大的不同在于,新的課程體系中有一門涉及計算機系統(tǒng)各個抽象層面的能夠貫穿整個計算機系統(tǒng)設(shè)計和實現(xiàn)的基礎(chǔ)課程:計算機系統(tǒng)基礎(chǔ)(ICS)。該課程講解如何從程序員角度來理解計算機系統(tǒng),可以使程序員進(jìn)一步明確程序設(shè)計語言中的語句、數(shù)據(jù)和程序是如何在計算機系統(tǒng)中實現(xiàn)和運行的,讓程序員了解不同的程序設(shè)計方法為什么會有不同的性能等[1]?!睆某绦騿T角度來理解計算機系統(tǒng),是培養(yǎng)以工程應(yīng)用人才為目標(biāo)的真正體現(xiàn)。我們設(shè)置本課程的內(nèi)容和教材可以采用和卡耐基梅隆大學(xué)和斯坦福大學(xué)的《深入理解計算機系統(tǒng)》(Com-puter Systems:A Programmer's Perspective,Randal E.Bryantand David R.O'Hallaron)的中文版。課程設(shè)計參考華盛頓大學(xué)(University of Washington)在cousera上的課程The Hardware/Software Interface。
(2)在數(shù)字邏輯設(shè)計、計算機組成、操作系統(tǒng)這三門課程采用前沿先進(jìn)的教材的基礎(chǔ)上,在數(shù)字邏輯設(shè)計中加入FPGA設(shè)計內(nèi)容,使得“數(shù)字邏輯電路”“計算機組成與設(shè)計”“嵌入式計算系統(tǒng)”中的實驗內(nèi)容之間能夠很好地銜接,讓學(xué)生在一個統(tǒng)一的實驗平臺上從門電路開始來設(shè)計基本功能部件, 然后再以功能部件為基礎(chǔ)來設(shè)計CPU、存儲器和外圍接口,最終將CPU、存儲器和I/O接口通過總線互聯(lián)為一個完整的計算機硬件系統(tǒng)[2]。
因為“計算機系統(tǒng)基礎(chǔ)”(《深入理解計算機系統(tǒng)》)以Intel x86為模型機進(jìn)行講解,所以它為“操作系統(tǒng)”(特別是Linux內(nèi)核分析)提供了很好的體系結(jié)構(gòu)基礎(chǔ)。我們計劃引入國產(chǎn)操作系統(tǒng),這樣學(xué)生會對操作系統(tǒng)和基于操作系統(tǒng)的應(yīng)用開發(fā)有更深入的理解。作為一所應(yīng)用型高校,考慮學(xué)生實際情況和培養(yǎng)目標(biāo),我們沒有設(shè)置“自動機理論”“編譯原理”等課程。
(3)以課程群為建設(shè)單位,建設(shè)重點課程、大課程,逐步減少關(guān)聯(lián)性少的課程在二年級、三年級一學(xué)期的數(shù)量,將這些課程移入高年級的選修課程組中,最終達(dá)到專業(yè)基礎(chǔ)課程群集中、強關(guān)聯(lián),專業(yè)課程組方向與技術(shù)發(fā)展緊密聯(lián)系的目標(biāo)。課程設(shè)計思路如圖2所示。
4 結(jié)論(Conclusion)
系統(tǒng)能力是近年計算機教育有深度的總結(jié)性認(rèn)識,各個高校都提出了一些探索性的方案,只有全面認(rèn)識已經(jīng)在實踐的學(xué)校方案(最好去參加培訓(xùn)),多比較他們的方案。我們同時也要認(rèn)清本校的定位和實際師資、學(xué)生和課程建設(shè)現(xiàn)狀,經(jīng)常思考怎樣落地,以及實現(xiàn)的步驟,長期堅持,才有可能得到實際的效果。
參考文獻(xiàn)(References)
[1] CCF計算機教育專業(yè)委員會.計算機專業(yè)學(xué)生系統(tǒng)能力培養(yǎng)
和系統(tǒng)課程設(shè)置的研究與進(jìn)展[R].2012中國計算機科學(xué)技
術(shù)發(fā)展報告,北京:機械工業(yè)出版社,2012,(B):122-150.
[2] 袁春風(fēng),王帥.系統(tǒng)能力培養(yǎng)初探[J].中國計算機學(xué)會通訊,
2013,9(9):48-55.
[3] MIT. Computation structures [EB/OL].Spring 2013.http://
6004.csail.mit.edu/.
[4] MIT. Computer Systems Engineering [EB/OL].Spring 2014.
http://web.mit.edu/6.33/www/index.shtml/.
[5] CMU.Introduction to computer systems[EB/OL].Fall 2014.
http:// www.cs.cmu.edu/~213/.
[6] Stanford University. Computer organization and systems[EB/
OL]. Spring 2012. http://www.stanford.edu/class/cs107/.
[7] The Hardware/Software Interface [EB/OL].https://www.
coursera.org/course/hwswinterface/.
[8] 南京大學(xué)教學(xué)體系[EB/OL].http://software.nju.edu.cn/index.
php?option=com_content&view=article&id=146&Itemid=4/.
[9] 北京航空航天大學(xué)計算機科學(xué)與技術(shù)專業(yè)培養(yǎng)方案(2014版)
[EB/OL].http://scse.buaa.edu.cn/buaa-css-web/articleDetail.
action?firstSelId=6e011b46-2c70-4f68-a633-ec51f42b4718
&secondSelId=NOTICE_PUBLICITY&articleId=2b011735-
57a8-44b3-ba05-5a3bc21fa308&type=NEWS&language=0/.
[10] 陳文智,陳越,莊約挺.面向系統(tǒng)設(shè)計能力培養(yǎng)的教學(xué)改革探
索[J].計算機教育,2013,20:70-76.
作者簡介:
羅先錄(1973-),男,碩士,副教授,系統(tǒng)分析師.研究領(lǐng)域:
軟件工程與網(wǎng)絡(luò)安全.
譚德立(1964-),男,碩士,副研究員.研究領(lǐng)域:計算機體系
結(jié)構(gòu)與FPGA應(yīng)用.
張永棠(1980-),男,碩士,副教授,系統(tǒng)分析師.研究領(lǐng)域:
光通信與傳感器網(wǎng)絡(luò)應(yīng)用.
陳桂宏(1983-),女,碩士,講師.研究領(lǐng)域:嵌入式系統(tǒng).