關桂霞, 任魯魯, 王 晶
(首都師范大學 信息工程學院, 北京 100048)
未來5~10年是中國利用信息技術與裝備,提升國家創新能力的關鍵時期。要實現這一目標,需要大批具有計算思維和系統觀念,能夠進行系統級設計、實現和應用的計算機專業人才,加強計算機類專業學生的系統能力培養已成為教育界、學術界和工業界的共識。近年來,在計算機領域的科研方面,計算機系統方向的各種前沿性研究工作的數量和質量也在不斷地提升,同時產業界對于計算機系統方面人才的需求也在不斷增加。ACM/IEEE 最新公布的CS2013不僅對原有14個知識域進行適度調整,還增加了4個新的知識域,分別是系統基礎SF、并行和分布計算PD、基于平臺的開發PBD、信息保障和安全IAS,都涉及系統級內容。由此可見,ACM/IEEE CS2013 的重點是進一步強調系統知識和系統能力的培養。與此相呼應,目前國內外很多高校已經在學生系統能力培養方面進行了有益的嘗試,美國麻省理工學院、加州大學伯克利分校、斯坦福大學和卡耐基梅隆大學的計算機專業在教學體系、課程教學和實驗方面都增加了系統能力培養的內容,國內高校,如清華大學、北京大學、北京航空航天大學、南京大學、浙江大學、國防科技大學等也在進行系統能力培養有關課程體系和實踐環節的改革[1-12],系統能力培養已經進入到一個新的階段。
我校針對學生系統能力的培養,從2012年開始積極參加高等學校計算機系統類課程教學研討會以及相關培訓,學習清華大學、北京航空航天大學、浙江大學等兄弟院校的教改經驗,并結合普通高校生源特點,制定了適用于我校學生的課程體系以及課程改革方案,并積極落實。2015年12月獲批教育部高等學校計算機類專業教指委認定的側重于實踐教學體系改革的第一批“高等學校計算機系統能力培養”研究項目試點單位。2017年5月,教指委對第一批試點單位進行中期檢查,對我校的評價是:改革深入、特色明顯。
我校數字邏輯電路課程不屬于計算機系統課程群,學生對硬件描述語言不了解、對計算機功能部件的設計不熟悉,直接采用硬件描述語言設計功能部件及CPU是行不通的。區別于一流大學的改革方案,針對普通高校學生生源特點及本校學生的實際情況,提出了圖形化設計輔助硬件描述語言的對比實驗教學方案。對于功能部件,要求學生首先通過原理圖方式直觀的理解各部件的工作原理,然后采用硬件描述語言設計并在FPGA上運行驗證。原理圖和硬件描述相結合的方式極大地提高了實驗效果。同時設計階梯型的實驗,由功能部件的設計到單周期CPU設計、再到多周期CPU以及五級流水CPU的設計,學生通過循序漸進的實踐過程,逐步掌握了硬件描述語言以后,對于指令集比較豐富的多周期CPU、五級流水CPU的設計[13],再要求學生采用硬件描述語言設計并在FPGA上運行驗證,比較符合普通高校學生的認知規律。
針對教學內容陳舊的問題,提出以精簡型計算機系統設計為目標、軟硬件協同的教學改革方案。課程內容圍繞1個完整的計算機系統組織內容,使用圖形化+硬件描述語言編程2種方式,實現精簡指令集CPU的3大組成部件并支持匯編程序運行,涉及匯編語言、組成原理、操作系統和接口技術4門課程改革,并逐步將畢業設計和課外研學相結合,拓寬學生在專業學習中的思維深度和廣度,從系統設計能力、工程實踐能力和問題解決能力3個方面培養學生的綜合實踐能力。經過深層次的課程改革,學院完成CPU設計的學生比例從不足5%提高到70%。這一工作得到了教育部計算機專業分委會專家組的認可,我校獲批成為全國首批計算機系統能力培養試點單位,在全國普通高校中起到了示范作用。
針對課程只注重自身完整性,缺乏整體優化的問題,在學習“985工程”高校改革方案的基礎上,構建了符合普通高校生源的課程體系。建立以計算機組成原理為核心,包含前導課程匯編語言和后續課程操作系統的計算機系統課程群,將CPU設計的知識貫穿多門課程,通過匯編課程學習程序底層行為,建立對指令系統體系結構的直觀認識;通過計算機組成設計并實現基于MIPS的CPU,建立系統觀念;接口技術圍繞自己設計的CPU實現I/O訪問和中斷控制;操作系統在軟件層進行管理。同時,提出軟硬件協同的教學方案,注重對學生系統能力的培養,讓學生從“使用別人的計算機”到“設計自己的計算機”再到“使用自己的計算機”。通過系統性的學習,學生不但能夠解決局部的編程和應用問題,更能勝任對于復雜系統的設計和實現。這一貫通式的課程體系改革,獲得了北京市教改項目的支持。
針對傳統實驗缺乏設計、創新的問題,結合學生興趣和職業導向,區別于“985工程”高校的改革方案,提出了針對普通高校學生的圖形化設計輔助硬件描述語言的對比實驗教學方案,設計了一套加強學生軟硬件協同能力、問題解決能力的綜合實驗項目。
實驗方式上采用直觀性和抽象性相統一的原則,首先采用圖形化方式直觀理解原理,然后采用Verilog語言設計并在FPGA上運行。實驗內容上采用模塊化思想,首先設計功能部件運算器、寄存器文件、存儲器、控制器,然后由功能模塊組裝完整的CPU,通過循序漸進的實驗過程,使學生不僅掌握計算機各部件的具體實現方法,而且更深入地理解各部件相互協同的工作機制,建立整機的概念。實驗進度上分層展開,要求全體學生完成多周期CPU設計,暑假小學期課程讓部分感興趣的學生完成流水線CPU設計,通過學生科研項目和畢業設計讓部分優秀學生完成支持中斷和簡單I/O的CPU設計,以此拓寬學生在專業學習中的思維深度和廣度。
通過這種分層次的實踐活動,使學生不但能夠解決局部編程和應用問題,更能勝任對于復雜系統的設計和實現,這一方案被北京電子科技學院借鑒。
針對教學與實際工程脫節的問題,建立一支以實際工程能力培養為導向的教學科研相結合的教師團隊。 教師依托科研優勢自覺將研究的理念、思維、方法、手段、內容等貫穿到人才培養的全過程,并對學生開展高水平科研訓練進行指導,讓學生在參加科研活動的過程中增強實際工程能力。同時,通過課堂教學提高教師知識的系統性,實現教學與科研以及教與學相互促進的良性循環體系。
在構建的計算機系統課程體系中,計算機組成原理是核心課程,它的改革是重中之重。我校計算機組成原理課程改革之前,大部分學生只會使用試驗箱,通過搬動開關觀察CPU運行情況,只有3~4名有興趣的學生以圖形化方式完成簡單的乘法運算的硬件實現。
團隊自2012年開始著手改革計算機組成原理教學內容及實驗內容,2014年開設教改班,參加教改的38人全部獨立完成單周期CPU的設計;2015年深入改革,選修的112人全部獨立完成單周期CPU設計;2016年全面鋪開,選修的150人全部獨立完成單周期CPU設計,而且2015年開始開設小學期課程,獨立完成40多條指令多周期CPU設計和五級流水CPU設計的學生人數逐年增加。同時,2015年開始整合硬件系列課程,建立計算機系統課程小組。課程小組在改革核心課程計算機組成原理的基礎上,于2015年開始改革匯編語言課程,使其引入精簡指令計算機的代表——MIPS的指令格式及尋址方式。目前,匯編語言的實驗已完成3輪改革,通過匯編語言和組成原理2門課程的深度改革,學生的系統設計能力和實踐能力有了很大程度的提高,大部分學生都可以編寫MIPS匯編程序,并且能夠在自己設計的單周期CPU上進行驗證。這一工作得到了教育部計算機專業分委會專家組的認可,同時于2015年也獲批了全國高等學校計算機教育研究會研究項目。
在明確的培養目標下,全方位系統地構建相關課程的課堂教學和實驗教學方案,將匯編語言、組成原理、操作系統和接口技術相關的基礎內容有機貫穿起來,建立計算機系統課程體系,如圖1所示。
計算機系統課程體系以匯編語言為前導基礎、計算機組成為核心內容、構建系統為深入提高進行知識共享,組內各個課程內容有效的銜接。當前的匯編語言大多是講解8086的匯編,這和組成原理改革采用的RISC體系結構不一致。因此可以對匯編語言課程進行改革,一方面匯編語言課程可以根據組成原理課程改革的需求,對RISC匯編和CISC匯編對比講解,為后續組成原理實驗提供知識儲備;另一方面,可以增加匯編和鏈接過程的講解,讓學生建立完整的系統觀,能夠實現一套支持選定指令系統的工具鏈,包括編譯器、匯編器等,能夠支持指定測試程序的運行。為了提高學生的系統設計能力,計算機組成原理課程改革已將多周期、流水、中斷的概念引入教學內容。后續要結合計算機接口技術實現豐富的I/O接口,結合操作系統提供的軟硬件資源的管理技術,為用戶提供友好的交互方式。經過課程小組不斷的探索與改革,計算機系統課程群建設于2016年獲批北京市教改項目。

圖1 計算機系統課程體系
課程小組把“全面考核”“過程考查”等先進理念貫徹到考試活動中,逐步建立了教學內容隨堂考、課下習題實踐考、學生自主學習能力考和期末閉卷整體知識的考核相結合的比較科學的評價體系。對于計算機組成原理實驗課程,采用面試的方式,每次的實驗都面對面、一對一地檢查,每次檢查首先讓學生運行實驗結果,然后隨機針對實驗中使用到的關鍵原理部分進行提問,避免了抄襲和照貓畫虎的應付現象。通過嚴格的考核,學生普遍反饋對數字邏輯的內容有了更深入的理解,同時也顛覆了對計算機組成原理課程的認識,由原來的了解各部件工作原理到設計并實現基于MIPS的CPU,并能運行自己編寫的匯編程序。圖2是學院近年來學生設計CPU的統計情況。

圖2 學生完成CPU設計的情況
由統計圖可以看出,能夠設計并實現基于MIPS CPU的學生人數在逐年增加。
自從2012年課程組教師將系統觀的教學理念滲透到各門課程,這一教學理念將學生系統設計能力的培養推向了更深、更廣的層面,由此吸引了越來越多的學生參加與計算機系統設計相關的大學生創新實驗項目和實驗室開放基金項目。通過參加項目,學生的實踐能力和系統設計能力得到了很大程度的提高,經過幾年的積累,2015年開始在畢業設計、學生競賽、發表論文方面取得了突破,首次有本科生在計算機系統方向發表科研論文。
教師素質的高低直接關系到教育教學質量的高低,為了更好地服務于教學,課程組教師一方面同美國弗羅里達大學、休斯敦大學和北京微電子技術研究所等展開密切合作,站在學科前沿開展研究工作;一方面到清華和北航等高校全程參加日常教學工作,積極參加全國高等學校計算機系統類課程教學研討會以及相關的培訓,并與多所高等院校(清華大學、北京航空航天大學、浙江大學、東南大學、南京航空航天大學)教師共同探討教改模式,提高教師教學水平。經過幾年的團隊建設,團隊教師的科研水平與教學能力取得了長足的進步,課程組獲得了多項教改、科研項目的支持,課程組教師也多次獲評優秀主講教師。
以“提高學生對計算機系統的全面認識和系統設計能力”為導向,將自主設計“一臺功能計算機、一個操作系統核心”為最終的教學目標,并據此重構計算機系統類課程,形成了匯編語言、計算機組成原理、操作系統以及接口技術為代表的核心課程群。目前已初步完成計算機組成原理和匯編語言的教學改革,學生
可以在自己設計的CPU上運行自己編寫的匯編程序,后期會逐步進行操作系統、接口技術等課程的改革,將相關內容進一步整合,形成一個從硬件→系統軟件→應用軟件的“軟硬件貫通”的計算機系統課程群,培養符合北京市教育需要的高素質人才,滿足產業界對于計算機系統方面人才的需求。