劉向舉
(安徽理工大學(xué) 計算機科學(xué)與工程學(xué)院,安徽 淮南 232001)
計算機核心專業(yè)課程包括計算機組成原理、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)、計算機網(wǎng)絡(luò)等,這些課程是計算機專業(yè)學(xué)生學(xué)習(xí)其他專業(yè)課程的基礎(chǔ),對于后續(xù)其他課程或其他專業(yè)知識的學(xué)習(xí)起著至關(guān)重要的作用。以計算機組成原理為例,計算機組成原理是計算機科學(xué)與技術(shù)專業(yè)、網(wǎng)絡(luò)與信息安全專業(yè)、軟件工程專業(yè)、數(shù)字媒體專業(yè)、物聯(lián)網(wǎng)工程等專業(yè)的專業(yè)基礎(chǔ)課程、核心課程,課程系統(tǒng)闡述計算機硬件系統(tǒng)及其各部件的內(nèi)部結(jié)構(gòu)、功能特征、工作原理、交互方式和分析設(shè)計方法。課程的學(xué)習(xí)意在使學(xué)生系統(tǒng)地理解計算機硬件系統(tǒng)的組織結(jié)構(gòu)和工作原理,掌握計算機系統(tǒng)的基本分析與設(shè)計方法,全面培養(yǎng)學(xué)生對計算機軟硬件系統(tǒng)的認知、設(shè)計與創(chuàng)新能力,使學(xué)生對計算機的整機系統(tǒng)架構(gòu)有清晰的認識,并為計算機系統(tǒng)結(jié)構(gòu)、操作系統(tǒng)等后續(xù)課程的學(xué)習(xí)奠定良好的基礎(chǔ),但是當(dāng)前計算機組成原理課程的教學(xué)現(xiàn)狀并不樂觀,根本無法達到所設(shè)定的教學(xué)目標(biāo),因此需要探索新的教學(xué)模式,提高教學(xué)效果。
雖然教師課下已經(jīng)對課程內(nèi)容做了精心準(zhǔn)備,但是在課堂教學(xué)過程中,并沒有使學(xué)生產(chǎn)生很大的學(xué)習(xí)興趣,學(xué)生的積極性并不高,學(xué)習(xí)效果不理想,造成教師感覺課程難教、學(xué)生感覺課程難學(xué)的局面。導(dǎo)致這種局面的主要原因包括以下幾個方面[1-2]:①課程知識點零散,內(nèi)容難而抽象,教學(xué)方法靈活性差,教學(xué)手段單一;②學(xué)生對這門課程興趣不足并有一種重軟輕硬的認識,感覺學(xué)習(xí)這門課沒有什么用,不如學(xué)一些流行的應(yīng)用技術(shù);③學(xué)生的硬件基礎(chǔ)知識比較薄弱,先導(dǎo)課程學(xué)習(xí)得不扎實(如數(shù)字邏輯課程),學(xué)習(xí)這門課程的難度加大;④實驗環(huán)節(jié)薄弱,實驗內(nèi)容固定,實驗方法單一,許多學(xué)生不對實驗內(nèi)容進行拓展延伸并與實際相聯(lián)系,并沒有真正理解實驗的目的,達不到理論聯(lián)系實際的教學(xué)要求。
探究式教學(xué)法是一種以提出問題、分析問題、解決問題為基本特征的教學(xué)活動形式,源自杜威“從做中學(xué)”的教學(xué)方法,通過自主研究、分析和解決問題,激發(fā)學(xué)生的好奇心和探索愿望,培養(yǎng)創(chuàng)新潛能與自我創(chuàng)造力[3]。類比教學(xué)法就是通過聯(lián)系與教學(xué)內(nèi)容相似或相通并且為學(xué)生較熟悉的自然現(xiàn)象或生活實際,使抽象的內(nèi)容形象化、復(fù)雜的內(nèi)容簡單化、枯燥的內(nèi)容趣味化,從而減少學(xué)生對新知識的陌生感,喚起學(xué)生的注意力,激發(fā)學(xué)生對知識的濃厚興趣[4-5]。
問題探究式教學(xué)法在計算機組成原理的教學(xué)實施過程中分為3步:①創(chuàng)設(shè)情境、引入問題;②自主探究與協(xié)作交流;③問題解析與引導(dǎo)。
1)教學(xué)案例1:馮?諾依曼體系結(jié)構(gòu)計算機的相關(guān)問題。
當(dāng)前計算機組成原理的教學(xué)內(nèi)容主要是按照馮?諾依曼體系結(jié)構(gòu)講解計算機的組成及其每部分的工作原理[6]。馮?諾依曼的主要設(shè)計思想:計算機采用二進制數(shù),硬件系統(tǒng)由運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備5個部分組成,提出“存儲程序”原理,使用同一個存儲器,指令和數(shù)據(jù)統(tǒng)一存儲同時在程序控制下自動工作。對此,可以由淺入深地依次列出問題:①計算機為什么采用二進制?②指令和數(shù)據(jù)都采用二進制數(shù),計算機是怎么區(qū)分從存儲器中取來的是指令還是數(shù)據(jù)?③指令和數(shù)據(jù)統(tǒng)一存儲,會不會影響程序的執(zhí)行效率?如何改進?④馮?諾依曼體系結(jié)構(gòu)的計算機和現(xiàn)代計算機相比,有何局限性?如何改進?
2)教學(xué)案例2:補碼加減法運算的相關(guān)問題。
補碼的加減法運算是計算機組成原理課程中的教學(xué)重點,教材中都會指出,在計算機中一般采用補碼進行加減法運算,因為補碼運算可以把減法運算轉(zhuǎn)換為加法運算,也就是說采用補碼可以把加減法運算統(tǒng)一為加法運算;而且采用補碼進行加減法運算不需要單獨處理符號位,符號位和數(shù)值位同等處理。此處可探究兩個問題:①為什么采用補碼可以將減法運算轉(zhuǎn)換為加法運算?②為什么補碼運算符號位可以直接參與運算,不需要單獨處理,而原碼在進行加減運算時,就需要單獨處理符號位?
問題提出以后,教師要讓學(xué)生明確問題的起因,對所提出的問題積極思考,查閱資料,自主探究。當(dāng)學(xué)生對問題有了一定的認識和理解之后,開始交流討論,這既是思路、觀點的碰撞時刻,也是思維拓展的時刻,又是成果分享的時刻。交流討論可以分組的方式進行,在這個過程中教師進行組織、協(xié)調(diào)和啟發(fā)式的引導(dǎo)。
1)案例1的解析與引導(dǎo)。
案例1是圍繞著馮?諾依曼思想的計算機體系結(jié)構(gòu)特征而提出的一系列問題。教師在對這些問題進行解析引導(dǎo)的時候,一定要注意有些知識需要以前序課程為基礎(chǔ),有些知識涉及后面的教學(xué)內(nèi)容,因此要做好對已學(xué)過知識的復(fù)習(xí)工作和未學(xué)知識的引導(dǎo)工作。對案例1的解釋要點參考如下。
①計算機為什么采用二進制數(shù)?計算機中之所以采用二進制數(shù),主要原因是二進制數(shù)在物理技術(shù)上實現(xiàn)簡單、可靠性高;二進制數(shù)算術(shù)運算規(guī)則簡單并便于邏輯運算[6-7]。②指令和數(shù)據(jù)都采用二進制數(shù),計算機是怎么區(qū)分從存儲器中取來的是指令還是數(shù)據(jù)?這個問題會涉及后面指令周期的知識,一條指令的執(zhí)行主要包括取指周期和執(zhí)行周期,有些指令可能還包含間址周期和中斷中期,在取指周期取出來的肯定是指令并送往控制器,而執(zhí)行周期取出來的是數(shù)據(jù)并送往運算器。③指令和數(shù)據(jù)統(tǒng)一存儲會不會影響程序的執(zhí)行效率?如何改進?這個問題的要點是指令和數(shù)據(jù)統(tǒng)一存儲肯定會影響程序的執(zhí)行速度,因為指令和數(shù)據(jù)的存取要分開進行。改進的方案可以采用并行存儲器(雙端口存儲器、多模塊交叉存儲器等)提高讀寫效率,還可以將指令和數(shù)據(jù)分開存儲,也就是哈佛結(jié)構(gòu)的存儲器。④馮?諾依曼體系結(jié)構(gòu)的計算機和現(xiàn)代計算機相比,有何局限性?如何改進?隨著對計算機處理速度要求的提高和對需要處理數(shù)據(jù)的種類、量級的增大,馮?諾依曼體系結(jié)構(gòu)計算機的局限性主要體現(xiàn)在程序指令的執(zhí)行是串行的,由程序計數(shù)器控制,使得即使有關(guān)數(shù)據(jù)已經(jīng)準(zhǔn)備好,也必須遵循逐條執(zhí)行指令序列,影響系統(tǒng)運行的速度;馮?諾依曼體系結(jié)構(gòu)計算機是以運算器為中心,CPU的負擔(dān)非常重,效率低?,F(xiàn)代計算機的特點是改變傳統(tǒng)計算機控制流驅(qū)動的工作方式,設(shè)計數(shù)據(jù)流驅(qū)動的工作方式,只要數(shù)據(jù)準(zhǔn)備好,就可以并行執(zhí)行相關(guān)指令。將運算器為中心改為存儲器為中心,可以減輕CPU的負擔(dān)。近幾年,為了提高計算機的速度,非馮?諾依曼體系結(jié)構(gòu)的計算機相繼出現(xiàn),將信息載體由光子、量子或生物分子等替代電子,如光子計算機、量子計算機、神經(jīng)計算機、DNA計算機等。
2)案例2的解析與引導(dǎo)。
案例2圍繞補碼加減法運算提出兩道問題,重點是要對補碼的概念有一個深刻的理解,因此教師對補碼的概念要做好引導(dǎo)工作,解析要點參考如下。
①為什么采用補碼可以將減法運算轉(zhuǎn)換為加法運算?這與補碼的概念有關(guān),補碼的求得是以模為基礎(chǔ)的,因為在有模運算中,減去一個數(shù)等于加上這個負數(shù)的補碼,另外如果運算結(jié)果超過計算機所能表示的數(shù)值范圍,則只保留它的小于模的低n位的數(shù)值,超過n位的高位部分自動舍棄。②為什么補碼運算符號位可以直接參與運算,不需要單獨處理,而原碼在進行加減運算時就需要單獨處理符號位?通過原碼和補碼的公式可以看出,原碼實際分為兩部分,最高位是符號位,符號位以后部分為真值的絕對值,這個符號位是孤立的、強加上去的,不是數(shù)值的一部分,因此必須單獨處理,不能參與運算;而補碼則不一樣,補碼中的符號位并不是強加上去的,是經(jīng)過運算得到的,是數(shù)據(jù)本身的自然組成部分,因此可以正常地參與運算。
1)教學(xué)案例1:存儲器容量的擴充。
存儲器容量的擴充一直是計算機組成原理課程教學(xué)的難點和重點,講解的主要內(nèi)容包括位擴展、字擴展、字位同時擴展、芯片的譯碼方案等知識,純粹從理論上講授這些內(nèi)容,學(xué)生不太容易理解,因此可以用生活中的例子對抽象的問題進行直觀、形象的講授。以教學(xué)樓走廊鋪設(shè)地磚的過程為例說明這個問題,一塊地磚相當(dāng)于一個存儲器芯片,如果要想把走廊的橫向一行鋪滿,需要用多塊地磚,橫向鋪設(shè)的這一行相當(dāng)于存儲器容量的位擴展,那么如果要把整個走廊鋪滿,還要一行一行地進行縱向鋪設(shè),這個縱向鋪設(shè)就相當(dāng)于字擴展,鋪滿后的整個走廊地面就相當(dāng)于擴展后的整個存儲器的存儲空間,在鋪設(shè)地磚的過程中要求地磚與地磚之間要緊湊,但又不能重疊,這恰好與存儲器地址空間的連續(xù)性和不可重疊性概念相吻合。在直觀例子的基礎(chǔ)上,再進一步講解如何從技術(shù)上實現(xiàn)存儲器位擴展、字擴展、字位同時擴展、地址空間的不可重疊性等問題,學(xué)生就比較容易理解。
2)教學(xué)案例2:中斷。
中斷理論的講解會涉及中斷請求、響應(yīng)中斷、保護斷點、進入中斷服務(wù)程序、中斷返回等技術(shù),如果直接講解這些概念及技術(shù)的實現(xiàn)過程,學(xué)生會感覺枯燥、晦澀難懂,對此可以用日常的敲門事件和中斷聯(lián)系起來。例如,某單位領(lǐng)導(dǎo)正在辦公室辦公,突然有人敲門,敲門事件就相當(dāng)于中斷請求,敲門的人相當(dāng)于中斷源,辦公室里的人一般也不會知道什么時候會有人敲門,因此這個敲門的事件也是隨機的,正好和中斷的隨機性相吻合;外面有人敲門,如果里面的人可以讓外面的人進來,這就是響應(yīng)中斷請求;在和外面的人會面之前,里面的人要記錄一下當(dāng)前的工作情況,這就是保護斷點;然后里面的人和外面的人進行會面交流,這就與進入中斷服務(wù)程序相吻合;會面結(jié)束后,里面的人繼續(xù)辦公,就是中斷返回;如果里面的人對外面的敲門人不理睬,這就是拒絕中斷;如果辦公室外面設(shè)有秘書,里面的人可以吩咐秘書接待哪些人,不接待哪些人,這就是中斷屏蔽技術(shù)。通過一個簡單的日常生活事件,學(xué)生便可了解計算機的中斷過程,也比較容易接受和理解中斷的每一個過程的技術(shù)實現(xiàn)。
對于其他的問題,如溢出的概念可以用量杯盛水進行形象類比,補碼減法運算轉(zhuǎn)換為加法運算的原理可以用時鐘調(diào)整時間進行類比,管理外設(shè)的幾種信息交換方式可以用車間任務(wù)分配作為類比等。類比的教學(xué)方法能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,令課堂氣氛輕松愉快,深受學(xué)生歡迎。
表1 問卷調(diào)查表
為了檢驗教學(xué)效果,以筆者任課的兩個教學(xué)班進行實踐,兩個教學(xué)班分別命名為A教學(xué)班和B教學(xué)班,其中A教學(xué)班采用正常的講授方式,B教學(xué)班采用改革后的教學(xué)模式。無記名方式的問卷調(diào)查結(jié)果顯示,教學(xué)效果有明顯的提高,問卷的內(nèi)容及調(diào)查結(jié)果見表1。
計算機組成原理是計算機及其相關(guān)專業(yè)必修的一門專業(yè)核心基礎(chǔ)課程,在課程體系中占有重要的地位。為了提高教學(xué)效果,筆者將問題探究式教學(xué)方法和形象的類比教學(xué)方法運用到計算機組成原理的課程教學(xué)中,用學(xué)生主動參與、樂于探究、交流合作的教學(xué)模式改變被動接受、死記硬背、機械訓(xùn)練的傳統(tǒng)教學(xué)模式。從實際教學(xué)效果看,該教學(xué)方法激發(fā)了學(xué)生學(xué)習(xí)的積極性和主動性,活躍了課堂氣氛,加深了學(xué)生對知識的理解,培養(yǎng)了學(xué)生的自主學(xué)習(xí)能力和解決問題能力,使得教學(xué)效果得到改善。該教學(xué)方法可以在計算機專業(yè)其他核心專業(yè)課程中進行推廣應(yīng)用。