張 磊,鄭 榕,田軍峰
(北京科技大學 計算機與通信工程學院,北京 100083)
《計算機組成原理》是計算機科學與技術專業(yè)本科生的核心課程之一,是必修的專業(yè)基礎課,本課程在計算機學科中處于承上啟下的地位[1],涉及的內容在整個計算機學科和計算機系統(tǒng)中處于非常重要的位置。該課程的主要教學目標是讓學生掌握計算機中各部件的工作原理,建立整機概念,通過實踐環(huán)節(jié),設計、實驗、調試出一臺簡單的模型機(CPU)[2]。如何把握課程的主線和重點,改革教學實驗內容和模式,為學生今后的專業(yè)學習打下堅實基礎,使學生具備一定的硬件設計和開發(fā)能力,與高素質人才培養(yǎng)相適應[3],是該課程教學改革必須解決的問題。經過5年的實踐,摸索出一套新型的《計算機組成原理》實驗教學方法,即:緊密結合理論教學,增加隨堂實踐,配套獨立實驗,并加入課程設計環(huán)節(jié)。該方法已應用于實踐,取得良好的教學效果。
以往這門課程由于課時緊張,一些重要的知識點的講授只能匆匆?guī)н^,或有所選擇地作為自學內容,這樣安排的結果是學生在學習的時候囫圇吞棗,從而導致基礎不扎實,影響了后面知識的學習。改革前這門課程共需54學時,其中理論講授占44學時、實驗課程占8學時;改革后,總學時增加為64學時,其中理論講授占48學時、實驗課程增加至16學時,同時增加小學期的計算機組成課程設計16學時。學生實踐的學時較以前增加了3倍。通過學時的增加與調整,不僅增加了理論教學的授課時間,便于教師更加細致地講解重要知識點,而且還考慮理論與實踐應用相結合的重要性,進而調整了理論教學與實驗教學的學時比例,增加了學生動手實踐的機會。
改革前,這門課程的理論與實驗課存在嚴重的脫節(jié)問題,安排的實驗內容多為驗證性實驗,僅僅是利用實驗箱完成簡單的硬件搭電路就可以過關,限制了學生主觀能動性的發(fā)揮。學生在完成實驗時也大多是按照實驗講義的步驟機械式地完成實驗,照貓畫虎、懶于思考。實驗完成后的學習收獲有限,缺乏對理論知識的再加工學習。改革后引入了EDA(電子設計自動化)技術,采用先進的虛擬設計及仿真軟件工具QuartusII,并自主研發(fā)了FPGA擴展板平臺,結合過去的CM3P實驗箱,幫助學生對理論知識進行實踐驗證,便于學生加深對理論知識的理解。此外,為了指導學生的實踐操作,還根據理論知識的講授重點,開發(fā)了相應的實驗項目,重新編寫了配套實驗指導書和實驗箱介紹PPT。對于實驗中一些有代表性的操作配備了相應的講解視頻,方便學生課下自學,減少了學生因工具操作不熟而耗費的時間與精力,使學生的學習重心集中在理論知識的實踐運用。
1.3.1 隨堂實踐
由于《計算機組成原理》是以學生動手實踐為主的課程,要盡量多地給學生提供動手的機會。考慮到以往對于理論知識點加深認識的方式是給學生留課后練習題,學生通過抄寫書上的原理要點或手繪設計圖的方式完成作業(yè)。對于所設計原理圖是否正確、是否合理無法驗證,因此完成作業(yè)的興趣不大,從而導致大面積的抄襲現象,對教師批改后的作業(yè)不再進一步思考或改正,因而對學生鞏固所學作用不大。于是引入了QuartusII和現場可編程門陣列(FPGA)擴展實驗平臺作為學習的輔助工具,教師完成理論教學后,要求學生通過電路原理圖或者VHDL語言編程的形式對課后練習題進行設計,并自行驗證設計結果的正確性。在設計過程中,學生需要反復學習理解理論知識要點,否則無法順利完成設計任務。通過這種方式提升學生的學習興趣,鼓勵學生自主思考,完成設計任務,并對優(yōu)秀的設計作業(yè)進行點評,激發(fā)學生的設計激情。為了實現這一目的,需要選擇難易適度的題目作為隨堂實踐的練習任務,過難容易降低學生的設計熱情,過易則無法激發(fā)學生的思考激情[4]。例如,老師課上講完數據校驗碼后,學生立馬把電路在FPGA上實現,對于有效位、校驗位的理解更加深刻。隨堂實踐既能在內容上對獨立實驗進行補充,同時也能使學生平時加以練習熟練掌握EDA工具,有利于獨立實驗中開展復雜設計實驗。
1.3.2 獨立實驗
由于理論課是以X86處理器為模型機貫穿整個教學過程,講解順序如圖1所示。
圖1 理論課講解順序
因此,在獨立實驗的內容設置上,也基本遵循以上順序,選擇核心部件,編制相應的實驗內容。但以往的獨立實驗,在實驗內容的設置上基本為驗證性實驗,學生基本上是按照實驗步驟對理論知識的直觀驗證,缺乏舉一反三的能力。改革過程中借助QuartusII和FPGA擴展實驗平臺,開發(fā)了設計性的實驗內容,要求學生在驗證性實驗完成的基礎上,觸類旁通,完成設計要求,并將自己的設計在FPGA擴展實驗平臺上進行下載驗證。獨立實驗內容安排見表1。其中,前6個實驗為部件實驗,后3個實驗為整機實驗。總實驗為16學時,但是學生需要花在實驗上的時間遠遠不止16學時。因為完成設計任務的基礎是對理論知識的理解和掌握,所以學生需要在課下根據設計要求反復閱讀理論要點,在設計過程中還需要對出現的故障問題逐一分析回溯。整個實驗內容做完后,學生對功能部件及整機的概念和實現會有比較深刻的了解,并對自己在學習過程中對知識的掌握程度有一定的認識。
1.3.3 課程設計
以往獨立實驗完成后,這門課程就結束了,學生缺少對于計算機整機系統(tǒng)的設計實踐,對所學知識要點間的關聯關系缺乏認識,對知識點的記憶時間短,很快就不記得這門課程所學的內容了。因此,在改革中,考慮對知識點的整合,對理論知識落實到實踐應用的必要性,引入課程設計這一環(huán)節(jié)有著極其重要的意義。改革后,將這門課的課程設計安排在緊隨課程開設學期的暑假小學期中,既給學生一定的時間將所學知識理解吸收,又不至于因間隔時間太長而遺忘現象嚴重。在課設中,要求學生設計仿真實現一臺模型機,允許學生根據學習過的理論知識及理解的深度自由發(fā)揮,鼓勵學生采用RISC指令系統(tǒng)設計模型機,學有余力的同學還可以采用流水線設計。學生從指令系統(tǒng)設計、數據通路設計、指令流程設計到控制部分的實現完全由自己獨立完成[5],在設計過程中對理論知識反芻。通過仿真驗證,真正理解計算機單機系統(tǒng)的概念及構成。為此,學生需要投入大量的精力和時間用于設計一套可行的模型機系統(tǒng),往往小學期一個月的時間對于學生而言都感覺緊張,有些學生甚至連暑假都利用上,最終完成了模型機設計調試運行。
實驗教學的重要目標是培養(yǎng)學生實踐和創(chuàng)新能力。根據該課程實驗的特點,實驗室實行半開放制度,即在實驗時間外的規(guī)定時間向學生全部開放,供學生做實驗、熟悉實驗箱、調試程序等。實驗室承擔的是隨堂實踐、獨立實驗和小學期的課程設計任務。
隨堂實踐一般是在FPGA擴展板上完成,采用驗收制度,只要學生完成即為該項考核通過;獨立實驗采用CM3P實驗箱和FPGA擴展板結合,百分制的考核模式。
表1 獨立實驗內容
小學期組成課設置為獨立的課程設計,采用百分制,占1學分。
獨立實驗分為課前預習報告、實驗講述、實驗總結報告。每次設計性實驗總結報告都要求是一篇完整的總結性文章,包括實驗原理圖、仿真波形圖、實驗中遇到的問題,如何解決,有何新發(fā)現、新思考等。最終按照百分制的評判標準如下:
每次實驗所占成績比例見表2,獨立實驗最終成績?yōu)?
表2 各實驗分數所占比例
表2 各實驗分數所占比例
實驗序號 實驗1 實驗2 實驗3 實驗4 實驗5 實驗6 實驗7 實驗8 實驗9比例Pi 5 15 5 15 15 10 15 15 5
期末成績?yōu)?
課程設計評分標準見表3,要求必須實現的內容占70分,其中根據各項的難易度配以相應的分數,自由發(fā)揮的部分占30分。
該方案實施2年,學生理論課成績大幅度提高,而且普遍反映計算機對于他們不再那么神秘了,而是“徹頭徹尾地讀懂了它”,“對于后續(xù)課程的學習幫助很大”等。隨堂實踐的加入使學生課上的積極性大大提高了,學生由被動接收變?yōu)橹鲃铀伎?。對于獨立實驗更是信心百倍地參與其中,始終以一名模型機設計師的標準要求自己。學生在小學期的時候能夠獨立設計出模型機的比例達80,另外20的學生對模型機設計流程有了深刻的理解,但是在規(guī)定的時間內尚未完成設計。我們對這些學生做了相應的延時,讓他們盡量完成設計要求。學生提交的系統(tǒng)采用硬布線控制器設計的占30,其余學生采用微程序控制器。35的學生設計指令系統(tǒng)采用精簡指令集(RISC),其中15加入流水線以提高性能。最后的小學期的實踐報告總結中,學生說這門課是他們投入最多的一門課,很充實,學到了很多知識,同時也提高了他們分析問題,解決問題的能力??傊?,學生感覺這門課收獲很大,設計模型機是他們進大學后做過的“最痛苦”“最耗時”“最快樂”“最難忘”的實驗。
表3 課程設計評分標準
經過多年的教學改革,摸索出一套完整的計算機組成原理實驗教學具體實施方案,緊密結合理論教學,增加隨堂實踐,配套獨立實驗,并加入課程設計環(huán)節(jié)。這一改革已經應用到實際教學中,收到良好的效果。該方法具有普適性和易操作性,使這門課程由原來的枯燥無趣變?yōu)槿缃竦幕顫娚鷦?,實驗教學改革是一個不斷深入和發(fā)展的過程[7],理論與實驗是相輔相成的,絕對不能相互獨立起來。因此,需要相關老師進行有效的交流合作,從學生的接受能力和實驗效果出發(fā),互相補充才能達到良好的教學目的。
[1]方愷晴,石琳,林亞平.EDA技術在計算機組成原理實驗中的應用[J].實驗技術與管理,2001,18(3):45-47.
[2]方愷晴,張洪杰.計算機組成原理實驗課程教學新方法的探討[J].計算機教育,2007(2):52-59.
[3]王興菊.深化實驗教學改革,培養(yǎng)綜合素質人才[J].實驗技術與管理,2002,19(4):79-81.
[4]姜暉.加強實踐環(huán)節(jié)培養(yǎng)創(chuàng)新人才[J].實驗室研究與探索,2006,25(11):1329-1331.
[5]方愷晴.基于EDA技術的教學型CPU的設計與實現[J].實驗技術與管理,2005,22(9):41-43.
[6]秦磊華,王小蘭,張園.計算機組成原理設計性實踐教學模式研究[J].電氣電子教學學報,2009,31(2):68-70.
[7]張亮.應用EDA技術改革“計算機組成原理”課程設計[J].計算機教育,2009(19):40-42.