摘 要:分析我校計算機組成與體系結構課程教學的現狀和存在問題,結合實際教學經驗,從教學內容設置、理論教學方法、實踐教學規劃、課程考核制度、師資隊伍建設和綜合教學平臺六方面,對建設計算機組成與體系結構核心課程提供創新思路和實踐經驗,為進一步提高計算機組成與體系結構課程的教學效果提供參考和經驗。
關鍵詞:計算機組成與體系結構;核心課程建設;教學創新
依據上海理工大學實施教育部“卓越工程師教育培養計劃”的要求,上海理工大學計算機科學與工程系確立了計算機科學與技術、計算機工程兩個本科專業定位為培養計算機工程領域需求的工程性人才。在參考ACM/IEEE-CS CC2005[1]對計算機工程(CE)學科課程體系設置的基礎上,我們將計算機組成原理和計算機體系結構的知識組織為一門統一的計算機組成與體系結構課程,并采用白中英教授主編的《計算機組織與體系結構》作為理論教學教材[2]。
計算機組成與體系結構課程涵蓋兩個方面:計算機組成的基本原理和計算機體系結構量化設計的基本方法。計算機組成原理是通用計算機系統結構的一般性邏輯實現方法;計算機體系結構揭示計算機系統的屬性,包括概念性結構和功能特性,確定計算機系統軟硬件的界面。二者既有區別,又有內在聯系,因此,適合于整合為一門綜合性專業基礎課程。但是,由于計算機組成原理是計算機相關專業全國研究生統一入學考試的專業基礎課,因此,我們確定本課程的教學內容側重于計算機組成原理的教學。
根據教育部高等學校計算機科學與技術教學指導委員會制定的《高等學校計算機科學與技術專業核心課程教學實施方案》中關于計算機組成原理課程的實施方案[3],我們確立了計算機組成與體系結構的教學目標是圍繞單CPU計算機硬件系統的基本組成和工作原理,系統講述計算機硬件系統及功能部件的內部結構、功能特征、工作原理、交互方式和基本設計方法,使學生理解計算機硬件系統的組織結構與工作原理,掌握計算機硬件系統的基本分析與設計方法,為計算機工程領域培養具有硬件設計和實施能力的工程性人才;主要教學任務是培養學生對計算機硬件結構的分析、應用、設計和開發能力,系統地理解計算機系統各部件的工作原理和運行機制。
1 教學現狀和存在的問題
多年來,計算機組成原理被認為是一門既難教又難學的課程。而計算機組成與體系結構則包括計算機組成和計算機體系結構,這使得教學內容更多、學習難度更大。因此,很多同行一直在通過各種方式提高這門課程的教學質量[4-7]。結合我校計算機相關專業的具體情況,我們分析發現造成這一問題的因素有三個。
第一,本課程需要有數字電路、數字邏輯知識為基礎。但是,由于大一大二兩學年我院采用工科通識教育的缺陷,使得計算機和網絡工程兩個專業的本科生在學習本課程前沒有學習過數字電路和模擬電路,也不了解數字邏輯設計的方法。因此,學生基礎差,難以跟上教學進度。
第二,本課程涉及的知識面廣、概念多,而且計算機內部芯片高度集成化,學生缺乏對計算機各部件的感性認識。因此,理解其物理結構和工作原理比較抽象,學生難以理解。而且,由于該課程講授的計算機最基本的原理和方法,課程教學內容的直接應用目標也不可能很明確,學生難以理解該課程的直接應用價值,對該課程的重視度不夠。
第三,在計算機軟件的學習過程中,學生通過編程技術可以獲得可見的結果。而對比計算機硬件課程的學習,學生難以把學到的硬件知識馬上應用起來,不容易獲得類似軟件編程的直觀感受,學生普遍的認識有偏差。這導致學生誤認為本課程學習內容的實用性不強或者誤認為軟硬件之間的聯系不大,以后自己只從事軟件編程工作,不需要掌握計算機硬件設計方面的知識。
基于以上對計算機組成與體系結構課程的定位,結合我校人才培養目標和教學現狀,下面,我們將從教學內容設置、理論教學方法、實踐教學規劃、課程考核制度、師資隊伍建設和綜合教學平臺建設六個方面具體提出本課程的建設方案。
2 核心課程創新建設的綜合方案
2.1 教學內容設置
教學內容設置方面的建設主要集中在三個方面:第一是補充本課程的基礎知識,包括數字電路中的TTL門、MOS管技術等和數字邏輯課程中的邏輯代數基礎及組合電路邏輯設計方法;第二是補充《計算機組織與體系結構》教材中缺失的內容,比如增加計算機體系結構中關于指令級并行軟硬件設計方法、Cache失效性分析、多處理機同步與通信機制等。在計算機組成原理的教學內容上,盡量補充計算機體系結構量化分析的方法和設計原理;第三是補充多核處理器技術的最新設計方法和工作機制,這部分內容主要提供給對計算機體系結構感興趣的、學有余力的學生自學之用。
為保證理論教學和實驗教學時間的充裕性,我們將理論教學和實驗教學單獨開課,實驗課的進度和理論課的進度相匹配,其中理論教學安排64學時,實驗教學16學時,使得理論教學和實驗教學的學時比為4:1。此外,對學有余力和參加競賽的同學另行再組織和指導創新實驗,使得理論教學和實驗教學環環相扣,逐步深化,并使得培養的學生具有一定的創新設計和實踐能力。理論教學計劃如表1所示。
這種教學計劃使得計算機組成與體系結構課程的教學內容更加豐富,既避免了本課程只講授計算機組成原理或者只講授計算機體系結構知識的弊端,又能保證學生將來參加研究生入學考試時對計算機組成原理知識的全面掌握。
2.2 理論教學方法
在講授基本原理的過程中,我們注意融入計算機硬件技術發展的新技術并作為學生課后自學的內容,注重基礎理論與最新技術的融合。由于計算機組成與體系結構知識比較抽象,理論學習比較枯燥,因此教學過程中我們要與學生交流互動,向學生提出啟發式和開放式的問題,引導學生深入思考。講課中注意觸類旁通,采用舉例、類比的方法,將深奧、難以理解的問題用學生最容易接受的方式和語言表達。理論課程全部采用課堂教學方式,以多媒體課件為主,適當使用一些板書。充分發揮多媒體教學采用動畫技術或Flash技術,充分展現基礎性方法和原理的動態執行過程。比如:SRAM讀寫周期的過程、Cache的訪問和替換策略、指令流水線的過程等。
然而,多媒體教學方法對運算方法和運算過程的教學效果卻不盡人意。經分析,我們發現問題主要是定點數、浮點數進行加減、乘除的計算過程沒有采用傳統板書教學并按步驟書寫,而是采用多媒體教學且放映速度較快,學生來不及仔細體會其中的設計技巧和驗證計算結果。
因此,后期涉及到計算相關的教學,我們都盡量采用傳統的板書教學方法;而對于簡單的控制流程、運行機制、狀態更新等內容主要采用多媒體教學方法,這既發揮了多媒體教學生動、信息量大的特點,又體現了傳統板書教學的細致和嚴謹。
此外,理論教學過程中建議采用引導式教學方法,而不能采用填鴨式灌輸教學。講授第二章運算方法和運算器前,先要介紹計算的基本功能就是進行算術邏輯運算,既然是算術邏輯運算,那就有二進制數參與運算,那么就會介紹各種數的機器表示形式;然后介紹數值數據的加減法和乘除法,包括原碼、補碼和移碼的計算,然后介紹計算過程的硬件邏輯實現過程;最后介紹浮點數的加減乘除運算過程和硬件設計框圖。
2.3 實踐教學規劃
在實踐教學方面,我們從實驗內容和實驗方式開展教學革新。在實驗內容上,分別針對基礎性原理、綜合性知識和創新實驗有針對性的開展實踐教學。針對基礎性原理設計了驗證性實驗,比如采用多功能運算部件74LS181設計16位運算器的實驗電路,驗證運算器的功能等;對于綜合知識,我們組織設計性實驗,比如給每組學生分配一張指令表,指令表中包含十余條不同的機器指令(主要包括設計H