


[摘 要] 結合近年來在計算機組成和體系結構類課程方面的教學實踐,對該類課程的教學方法進行了研究,提出建立計算機組成與體系結構課程群的課改思路,并對相關課程進行了教學改革實踐。建立了一種在課程群的教學過程中引導學生進行創新性主動學習的教學思路。
[關鍵詞] 課程群;主動學習;計算機組成與結構
[中圖分類號] G642.0 [文獻標識碼] A [文章編號] 1005-4634(2013)02-0064-04
0 引言
在計算機硬件教學課程體系中,“計算機組成原理”是基礎課,它主要以順序執行為主要特征,從部件到整機介紹馮諾依曼結構計算機的基本組成。而“計算機體系結構”則是一門專業基礎課,它把當前主流的、先進的計算機設計和實現過程中的一些較為典型的思想和方法提取出來作為教學內容講授。因此在實際教學過程中,無論是對于計算機組成還是對于計算機體系結構,一般都普遍認為理論和概念多、教學抽象、教師授課時教學內容部分有重復,因而學生聽起來感覺單調、乏味,也比較困難。因此,如何提高學生的學習興趣,使學生系統而全面地掌握計算機組成和系統結構的基本理論、方法,提高該類課程的教學效率和教學效果,近年來引起人們的廣泛關注,很多老師根據自己的實踐經驗,對該類課程的教學進行了有益的探討和研究[1-9]。
圖1是美國UC Berkeley 大學2009年關于計算機組成及其體系結構的課程設置情況[1]。從圖1中可以看出,在這一類課程的教學設置中,UC Berkeley大學在保留了傳統課程內容的同時,也加強了基于FPGA 的硬件設計能力的培養。此外,還在本科教學中加深了并行體系結構方面的教學內容。
圖2給出了中國科技大學2010年關于計算機組成及體系結構的課程設置情況[2]。由圖2可見,中國科技大學在保留傳統課程內容的同時,在本科教學中加強了CPU設計能力的培養。
論文還對Stanford[3]、MIT[4]等其他多個美國著名大學和南京大學[5]、國防科技大學[6]等國內著名高校在相關課程方面的教學情況進行了分析。分析發現,這些大學在計算機組成與體系結構等相關課程教學理念、教學思路,甚至教學內容方面都有很多相似之處,如都以典型的流水線CPU設計技術和存儲器層次化結構為核心內容,都是站在計算機系統的高度闡述計算機組成原理及硬件系統的結構和設計思想,強調學生對并行體系結構、并行程序設計等技術的掌握。
通過對國內外一些著名高校的相關課程教學方法進行分析總結,本文結合筆者近年來在該類課程方面的教學實踐,對該類課程的教學方法進行了研究,提出建立計算機組成與體系結構課程群及在教學過程中主動引導學生進行創新性學習的教學思路,并在相關課程教學中進行了探索和實踐。
1 計算機組成與結構課程群的建設
在對國內外著名高校計算機組成與體系結構相關課程設置情況深入研究分析的基礎上,論文對筆者所在的西安理工大學計算機科學與工程學院的計算機科學與技術及相關專業開設的所有課程的教學內容進行了梳理,發現由于課程間缺乏統一規劃和協調,教學存在內容大量重復或缺失、課程之間內容脫節等問題。針對該問題,結合西安理工大學計算機專業相關課程教學內容特點及要求,并借鑒國內外有關院校的經驗[5-9],對原有專業課程設置進行了調整。將原先模擬電子技術部分內容合并到數字邏輯電路設計中,形成數字邏輯與數字系統課程;將原先的計算機組成原理和計算機系統結構內容合并,形成計算機組織與結構課程;同時開設了一門新課——高級計算機體系結構。通過對相關課程的調整,構建了以“計算機組織與結構”為核心的課程群(如圖3所示),對相關課程的教學體系進行了統一規劃。
其中,計算機技術導論主要從宏觀上介紹計算機系統涉及到的各個層次的內容,讓學生從整體上了解計算機系統的全貌和相關知識體系;數字邏輯與數字系統圍繞組合邏輯設計和時序邏輯設計兩大核心內容,在邏輯門到功能部件這兩個層次展開;計算機組織與結構從寄存器傳送級以上層次介紹單處理器計算機系統設計的基本原理;微機原理與接口及嵌入式系統分別定位為計算機組織與結構的基本原理在PC 及嵌入式系統方面的實例化;高級計算機體系結構則主要在更高層次上介紹多核CPU、多處理機系統、集群系統等不同粒度和規模的多處理器并行計算機系統的工作原理、實現方式及其應用領域。上述課程中,計算機技術導論、數字邏輯與數字系統、計算機組織與結構為必修課,微機原理與接口、嵌入式系統、高級計算機系統結構為選修課。
針對不同課程在教學體系上的關聯知識點,采用了如下的處理思路。
1)關于進位計數制及相互之間的轉換、ASCII 碼表示、邏輯數據表示、漢字編碼、無符號數表示、帶符號數表示,在計算機技術導論課程中進行詳細講解,而在后繼課程中作為“回顧”內容,不再詳細介紹;補碼特性和浮點數的表示則在計算機組織與系統結構中詳細介紹。
2)邏輯門電路、半加器、全加器、加法器、比較器、編碼器、譯碼器、觸發器、寄存器、移位器、內存儲器的實現技術及相關電路設計內容在數字邏輯與數字系統中詳細介紹;計算機組織與系統結構課程則直接使用這些基本電路來構建更大的功能部件。
3)關于存儲器的相關方法、原理主要在計算機組織與系統結構中詳細介紹;計算機系統概論課程僅作概要說明;微機原理和接口技術中不再講。
4)關于I/O接口,計算機技術導論課程從計算機硬件系統組成的角度簡單提一下常用的外部設備的功能及接口;計算機組織與結構主要介紹各種外設抽象出來的一個通用結構,以及外設控制器的通用結構;微機原理與接口技術則具體介紹PC機所用的一些接口電路、I/O 總線及其互連。
2 引導學生進行創新性主動學習的實踐
為了進一步提高計算機組成及體系結構等相關課程的教學效果,在積極建設計算機組成與結構課程群的同時,還在相關課程的教學過程中,從以下三個方面對引導學生進行創新性主動學習的教學方法進行了探索和實踐。
2.1 積極探索新的教學技巧,提高學生對相關課 程的學習興趣
計算機現在非常普及,各種部件學生也都熟知,只不過對各部件的工作原理以及相互之間的通信方式還不是太了解,所以有些無所適從。因此,在開始講授這門課時,首先從培養學生的學習興趣入手,引導學生運用自己以前所學的知識和了解到的一些市場行情,去寫出一臺計算機的配置,看看都需要哪些部件,怎樣配置才是最優最合理的。這樣可以使學生更直觀、更全面、更深入地理解本課程的教學目的,然后再結合教學輔助軟件將計算機的硬件進行分割、拆卸,如硬盤、軟驅、光驅、主機、打印機、顯示器等,將其內部結構展現出來,使學生能夠更好地了解計算機功能部件的內部結構及其相互之間的聯系。另外,利用適當的機會向學生介紹本學科發展的新動向、新技術,指出現在的整個技術發展大趨勢是什么,這樣有助于引導學生牢固樹立為探求技術發展而努力學習的信心和決心。通過這種方式,學生們普遍感到計算機的組成結構原來離自己是很近的,消除了畏懼心理,從主觀上開始重視該課程,并帶著問題和興趣去學習,這樣就為講好、學好該課程打下了基礎。
為促使學生對課程學習產生更為持久的興趣,還進行了如下探索和實踐。
在教學內容的選擇上,優化教學內容,突出重點,講清難點。學生重點掌握的是計算機的運算器、存儲器、控制器及I/O設備的基本組成和工作原理。因此在講授運算器的運算原理及組成機制、各種存儲器的構成及存儲原理、CPU中微程序控制器的機理等內容時,分配了很多課時和精力,目的是讓學生重點理解并掌握這些知識。其他部分內容可視課時的多少或讓學生自學,或略講,或討論。
在授課過程中,將重點放在基本原理上,如對計算機的各個功能部件,應著重掌握它在整機中的作用,以及由此而分配給各部件所要完成的任務, 從而正確選用或設計硬件,而不致被眾多風格各異的計算機結構及組成所迷惑;以計算機五大部件內容為主線,重點講述基本內容,如對計算機硬件結構的發展,只是重點講述計算機系統的層次結構; 計算機指令系統不是本課程的重點,只介紹指令的尋址方式及一些典型指令;CPU部分只注重分析微程序控制器、微程序設計技術及流水CPU, 其他部分內容可引導學生自學;對于需要重點掌握、但教材上沒有詳細介紹的基本內容應根據具體情況增加介紹,如教材介紹存儲器擴展技術的字位同時擴展時,教材上只有不到60字的內容,而這部分內容又是重點,課后習題占了將近一半,故需增加課時,詳細講解。另外,對微程序控制計算機的基本工作原理和程序設計技術要求重點掌握,而教材中此部分內容介紹較少,如何寫指令的微程序,如何確定微指令的結構,學生感到困惑,故需對微程序控制器進行詳細的講解。
在教學過程中盡量采用“形象教學法”,對適合課堂演示的動態模擬內容,比如像講解“存儲器的讀寫操作”時就采用直觀的多媒體形式;而對于概念性和推理性很強的內容,比如像講解“補碼的加減法”時,則采用板書結合教師的手勢和形體語言的方式,以吸引學生的注意力;對于難以理解的內容,用生活中的一些生動形象的具體實例加以解釋說明。比如,中央處理器一章中的流水技術原理,初學者理解起來也比較困難,就舉了一個“三人合作洗衣服”的例子:三個人分別承擔洗衣、烘干、疊衣任務,合作完成洗衣服的任務,這樣三個過程連續進行就可以完成洗衣服任務。這樣學生就很容易理解,而且與流水線相關的概念比如吞吐率、流水效率、數據相關等也就可以迎刃而解了。
2.2 加強教學互動,以問促學,積極引導學生進 行主動創新性學習
為了使學生能夠帶著問題對課程進行主動學習,培養學生的創新性學習能力,并實現教學互動,在授課過程中,故意設置一些問題“陷阱”,引導學生主動思考。例如,在存儲系統一章中,講述主存儲器是由半導體讀寫存儲器RAM 和半導體只讀存儲器ROM 組成,RAM 是易失性存儲器,ROM 是非易失性存儲器,RAM 又分為靜態和動態兩種。為什么靜態RAM 不需要刷新,而動態RAM 需要刷新?為什么放大器讀出的信息不會送到數據線上?將這樣一系列的問題留給學生討論,調動學生的積極性,讓他們各抒己見,最后得出正確的答案。這樣,不僅活躍了課堂氣氛,提高了學習的趣味性,還便于教師及時發現學生存在的問題,達到教學相長的目的。
對一些簡單的教學內容,一般要求學生自學,教師只針對自學內容提出幾個具體問題,由學生討論,自己解決。例如在講授中央處理器一章中的傳統CPU 一節時,考慮到學生前面已學習過CPU的基本組成和功能原理,這一節內容可要求學生自學,并且布置習題要求學生課下完成。
對教學中一些尚未透徹理解、容易混淆的概念以及學生自學中沒有解決的問題,組織學生在課堂進行專題討論。例如,存儲系統一章中的存儲器的字位擴展是一個非常重要的問題,學生在解題時很容易把字擴展和位擴展中的地址線畫錯。針對這個問題進行舉一反三,通過仔細分析,加深學生對基本概念和基本理論的理解,達到觸類旁通的效果,有助于學生解題能力的提高。
2.3 加強實踐環節,培養學生解決問題的能力
計算機組成原理主要以單個計算機的基本組成和工作原理作為教學內容,概念多,特別是教學過程中的實踐性比較強,因此課程教學與實驗教學相結合非常必要。筆者共安排了32學時的實驗,實驗內容以驗證性實驗為主。通過這些實驗,學生對計算機的內部結構有了更明確的了解,同時對計算機的硬件特性也有了比較全面的認識并鞏固掌握了所學的理論知識。
計算機體系結構主要以現代并行計算機結構的設計和實現所涉及到的一些思想和方法為教學內容,課程的技術性更強。針對該教學特點,在課程的實驗教學設置上強化了設計性實驗內容。圍繞相關實驗內容,將所有學生分組,每4~6個學生安排為一組,進行專題設計性實驗,實驗題目在第一次開始上課時即作為任務布置給學生,讓學生以小組為單位,通過各種信息渠道合作解決,收到了較好的教學效果。
3 結束語
經過幾年來計算機組成與結構課程群的教學改革實踐,相關課程教學內容的設置減少了重復,彌補了缺失,銜接更加合理。通過在教學過程中引導學生進行創新性主動學習的探索與實踐,提高了學生對計算機組成與結構課程的學習興趣與學習主動性,促進了學生對計算機組織與結構基本理論、方法的理解和掌握,提高了該類課程的教學效率和教學效果。
參考文獻
[1]UC Berkeley.Computer Architecture and Engineering[EB/OL].(2009-05-07)[2012-11-15].http://inst.eecs.berkeley.edu/-cs152/sp09/.
[2]中國科技大學.2010年關于計算機組成及體系結構的課程設置情況[EB/OL].(2010-03-09)[2012-11-15].http://cs.ustc.edu.cn/jypy/bksjy/201006/t20100626_22938.html.
[3]Stanford University.Computer Organization Systems[EB/OL].(2009-06-15)[2012-11-15].http://www.stanford.edu/class/cs107/.
[4]MIT.Computation Structures[EB/OL].(2009-05-08)[2012-11-15]. http://6004.csail.mit.edu.
[5]袁春風,黃宜華,武港山,俞建新,吳海軍.“計算機組成與體系結構”課程群建設實踐[J].計算機教育,2010,(13):80-83.
[6]張晨曦,王志英,劉依,沈立.“計算機系統結構”課程內容體系的研究[J].計算機教育,2009,(20):57-60.
[7]夏戰國,葛欣,王凱.“計算機組織與體系結構”教學方法探討[J].計算機教育,2008,(6):94-95.
[8]王華,徐潔,王雁東,吳曉華.“計算機系統結構”課程改革與探索[J].計算機教育,2009,(10):15-17.
[9]楊軍,蔣慕蓉,武浩.面向創新實踐的“計算機系統結構”教學改革探索[J].計算機教育,2009,(8):32-34.