羅先錄 譚德立 張永棠 陳桂宏


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