李忠金,汪啟航
(杭州電子科技大學(xué) 計算機學(xué)院,浙江 杭州)
《計算機組成原理》課程是一門計算機專業(yè)學(xué)生必須掌握的核心基礎(chǔ)課程,并且是一門偏低層硬件的課程。不僅需要學(xué)生學(xué)習(xí)理論基礎(chǔ),還需要學(xué)會實踐操作,理解計算機的內(nèi)部結(jié)構(gòu)、各部件功能以及怎樣協(xié)調(diào)整體運作,這樣才能對計算機整體體系有充分的理解。本文針對目前《計算機組成原理》課程的一些教學(xué)問題進行了分析,提出了相應(yīng)的改進方案。使得老師可以更好地把握教學(xué)重難點,展開高效合理的教學(xué),也更能調(diào)動學(xué)生學(xué)習(xí)興趣,更好掌握課程內(nèi)容,增強實踐動手能力。
課程內(nèi)容展開介紹整個計算機系統(tǒng)的結(jié)構(gòu),并且不同結(jié)構(gòu)如運算器和存儲器的原理以及設(shè)計思路又完全不同,而且整個知識體系龐大,涉及知識范圍廣,這也讓老師和學(xué)生都難以把握教學(xué)的重點[1]。此外《計算機組成原理》以數(shù)字電路、模擬電路的偏硬件知識作為基礎(chǔ)[2],而這些前導(dǎo)課程難度也是比較大的,學(xué)生掌握程度往往也沒有那么理想,這也是讓學(xué)生畏懼該門課的原因之一。
該課程介紹的是計算機底層硬件的知識,比如指令系統(tǒng)、微程序控制、硬布線等知識都比較抽象。教師在授課時往往很難以形象生動地表達方式讓學(xué)生理解,加之其邏輯性、思維性要求高,有許多的知識點又需要識記。所以很容易讓學(xué)生覺得該課程枯燥無趣、晦澀難懂,從而產(chǎn)生畏懼心理[3-4]。
《計算機組成原理》除了理論知識的講解,實驗教學(xué)也是其必不可少的環(huán)節(jié)[5]。在該課程內(nèi)容紛繁復(fù)雜、抽象難懂的情況下,學(xué)生們通過自己實際動手實踐操作、驗證、設(shè)計流程和觀察結(jié)果,以此能激發(fā)自身學(xué)習(xí)興趣,與課堂上所學(xué)的理論基礎(chǔ)相結(jié)合,從而更好地掌握該課程的知識點[6-7]。但是當下教學(xué)由于課時緊張、實驗設(shè)備問題,老師通常只設(shè)計了幾個簡單的小實驗并且通常配有實驗指導(dǎo),讓學(xué)生照貓畫虎完成即可。這不僅使學(xué)生難以理解其中原理,而且弱化了學(xué)生動手實踐創(chuàng)新能力。
計算機是一門飛速發(fā)展的學(xué)科,其內(nèi)部結(jié)構(gòu)也在時代發(fā)展中與之前有所不同。然而,目前大多數(shù)高校所用的《計算機組成原理》課程教材還是多年以前所撰寫的,如果完全按照教材進行教學(xué),那可能在有些地方會與時代脫節(jié),給學(xué)生造成困惑。
由于《計算機組成原理》的內(nèi)容非常多,如果老師在教學(xué)過程中面面俱到,羅列知識點,那么不僅課時不允許,學(xué)生也把握不了重點,理解也不夠深刻,只能為了考試去死記硬背。然而對于像《計算機組成原理》這樣邏輯性強的工科課程,死記硬背是掌握不了的。
《計算機組成原理》課程的重點在于計算機的基本組成部件的構(gòu)成、組織方式以及工作原理。此外還應(yīng)注重讓學(xué)生理解部件單元設(shè)計思想以及如何構(gòu)成完整的整機的原理。難點也在于此,需要幫助學(xué)生理解如何以控制流和數(shù)據(jù)流為主線,將計算機的各大部件聯(lián)系起來,建立整機概念。如何將難點講清楚,讓學(xué)生理解可能是我們遇到最大的難題了。在平時的理論課堂上,不要光按照教材講原理,可以通過生活中的例子,比如在講尋址方式時,可以類比成生活中的找東西,直接尋址是你知道放在哪里、可以直接找到,間接尋址是你只知道某個人知道東西的位置,你得去找那個人獲取位置信息,再根據(jù)這個位置信息去找。再如數(shù)據(jù)通路越寬則數(shù)據(jù)傳輸率越高[8], 但成本也會越高,可類比為馬路寬度越寬,能通行的車輛也就越多,但是馬路造價也更高。這樣來啟發(fā)學(xué)生,可以加快學(xué)生理解,并且記憶也更加深刻。
對于《計算機組成原理》這門課只有實驗與理論教學(xué)相輔相成,共同實施才能有利于學(xué)生真正掌握。目前大多數(shù)高校對于《計算機組成原理》的實驗教學(xué)不夠重視,弱化實驗環(huán)節(jié),甚至將答案事先告訴學(xué)生,學(xué)生只需依樣畫瓢走個過程,實驗的分數(shù)就拿到了。然而這樣并不足以讓學(xué)生深入了解計算機組成原理的內(nèi)在邏輯,還會弱化學(xué)生動手實踐能力,慢慢地使學(xué)生不善于實踐,不善于思考,最后懶于去實踐思考。
實驗課程應(yīng)將計算機的基礎(chǔ)部件原理貫穿始終,遵循由易到難的實驗教學(xué)設(shè)置。在實驗教學(xué)中應(yīng)采用啟發(fā)式教學(xué)方式,而不應(yīng)該直接演示告知答案。目前的《計算機組成原理》教學(xué)實驗均是驗證性實驗,甚至很多老師直接將實驗指導(dǎo)書發(fā)給學(xué)生,只要設(shè)備沒問題,跟著步驟做,實驗基本都能完成,雖然實驗在一定程度上對理解計算機各功能部件的工作原理有所幫助。但是依葫蘆畫瓢是很難掌握這些硬件的設(shè)計及其原理的,尤其是有些實驗的硬件是固定設(shè)計好的,就像黑匣子一樣,光是按著指導(dǎo)步驟是很難掌握內(nèi)在結(jié)構(gòu)的。此外由于每次實驗時間緊張,導(dǎo)致稍微復(fù)雜一點的實驗少有學(xué)生能夠完成,比如:微程序控制器實驗和基本模型機設(shè)計與實現(xiàn)。這樣的實驗對培養(yǎng)學(xué)生了解計算機內(nèi)部件的原理以及分析問題、解決問題能力收效甚微[9]。所以老師應(yīng)在平時課堂上與學(xué)生們將實驗原理大致思路共同理清,并讓學(xué)生在實驗前先做好準備,自己寫下大致的實驗邏輯步驟,這樣在實踐教學(xué)中才能讓學(xué)生有所收獲。此外還應(yīng)根據(jù)學(xué)生掌握情況,改變傳統(tǒng)實驗教學(xué)模式,可設(shè)計一些綜合性、開放性的實驗,當然這類實驗難度通常較大,可以讓學(xué)生組隊完成,并且加以指導(dǎo)和幫助。
《計算機組成原理》是高校計算機專業(yè)課程中為數(shù)不多偏向硬件的課程,但這并不意味著它應(yīng)該與其他計算機課程相分離。為了幫助學(xué)生建立起完整的計算機學(xué)科體系架構(gòu),培養(yǎng)學(xué)生計算機綜合分析能力,在授課過程中應(yīng)將該課程與其他計算機課程相聯(lián)系,體現(xiàn)軟硬件協(xié)同思想[10]。
與程序語言相結(jié)合:學(xué)生在編寫高級程序語言時應(yīng)注意數(shù)據(jù)類型、存儲方式等等這些都是計算機組成原理的相關(guān)知識,兩者結(jié)合起來學(xué)習(xí),可以讓學(xué)生更好地理解,同時培養(yǎng)學(xué)生軟硬件結(jié)合能力。
與操作系統(tǒng)相結(jié)合:兩門課程都會介紹存儲系統(tǒng)的知識:Cache、TLB、地址轉(zhuǎn)換等等。此時這兩門課就不可能分離開,應(yīng)讓學(xué)生清楚哪些功能是由計算機硬件實現(xiàn)的,哪些功能是由操作系統(tǒng)實現(xiàn)的。
與編譯原理相結(jié)合:程序編譯是將高級的程序語言轉(zhuǎn)化為機器能夠執(zhí)行的代碼,稱為機器級代碼?!队嬎銠C組成原理》的課程就是涉及計算機底層硬部件,與如何處理機器級代碼有關(guān),而編譯原理所涉及的就是將高級程序性語言翻譯成機器語言,兩門課均與程序在計算機中如何執(zhí)行息息相關(guān),且呈上下對接關(guān)系,所以在課程中可以適當將兩門課結(jié)合起來,讓學(xué)生有整體的計算機系統(tǒng)概念。
如果一味地在平時課堂上老師講課、學(xué)生在下面聽課,這樣很多學(xué)生其實并不能夠理解消化課程知識,尤其是一些比較難懂的知識點。而《計算機組成原理》這門課程前后知識點連接緊密,前面的知識不理解就會影響后續(xù)課程的學(xué)習(xí),慢慢地很多學(xué)生就失去了上課的興趣,從而形成惡性循環(huán),那這門課自然也就學(xué)不好了。所以在當下的教學(xué)中我們還需要對課堂的教學(xué)模式進行改進。
在當今的信息時代下,網(wǎng)絡(luò)上也有許多教學(xué)資源,當然,老師需要對此進行篩選,或者自己錄制教學(xué)視頻保證網(wǎng)絡(luò)教學(xué)資源的質(zhì)量。我們可以利用這些教學(xué)資源,在課前給學(xué)生一到兩個有關(guān)下堂課的問題,讓學(xué)生先利用網(wǎng)絡(luò)教學(xué)資源去了解學(xué)習(xí)。這樣的導(dǎo)向性學(xué)習(xí)可以解決學(xué)生在課堂上只能迷茫聽課的問題,在課堂上學(xué)生可以根據(jù)自己課前所學(xué)對不懂的知識點向老師提問,這樣老師就能對癥下藥,知道哪些內(nèi)容是學(xué)生難以理解,需要在課上重點講解的。在課后,可以適當?shù)刈寣W(xué)生完成有關(guān)本節(jié)課核心知識點的一些習(xí)題,習(xí)題設(shè)置要帶有啟發(fā)性、思考性,針對理論課教學(xué)中一些比較抽象的或者容易混淆的基本概念和基本原理設(shè)計課后習(xí)題;或者根據(jù)由一些理論而延伸的應(yīng)用設(shè)計習(xí)題。如果學(xué)生在課上對某些知識點不理解,可以回看教學(xué)視頻進行鞏固。這樣的教學(xué)模式增加了課堂互動,使課堂以學(xué)生為主導(dǎo),增加了學(xué)生的學(xué)習(xí)積極性,相比以前的滿堂灌式的教學(xué)一定能取得更好的效果。
課程除了要注重以馮·諾依曼計算機模型為主線展開教學(xué),還要注意聯(lián)系實際應(yīng)用,融入當代的計算機體系結(jié)構(gòu)。雖然馮·諾依曼結(jié)構(gòu)是經(jīng)典模型,但計算機體系結(jié)構(gòu)的發(fā)展并不是一成不變的,現(xiàn)在許多計算機內(nèi)部功能部件都已經(jīng)做了改進,與教材有所不同了,所以教學(xué)要與時俱進,讓學(xué)生在將來的實際應(yīng)用中能真正運用所學(xué)知識。
目前高校該門課程的考核通常由三大部分組成:平時上課情況、實驗成績、期末考試成績。但是到了最后,學(xué)生成績高低主要還是來源于期末考試高低,而最后期末考試很多學(xué)生通常突擊復(fù)習(xí),背八股文來應(yīng)付考試。長此以往學(xué)生會忽視平時的學(xué)習(xí),這樣不利于該門課程的教學(xué)。在平時上課老師可以適當布置作業(yè)或者小測驗來檢測學(xué)生學(xué)習(xí)情況,讓學(xué)生在平時上課重視起來。此外可以適當降低期末考試成績占比,比如增加課程大作業(yè),讓學(xué)生完成一個綜合實驗,以此來考核學(xué)生,這樣可以促使學(xué)生在平時重視該門課程的學(xué)習(xí),更好地掌握好課程內(nèi)容,這樣也就自然而然能取得好成績了。表1給出了具體的考核方式。
表1 課程考核方式
教學(xué)改革的道路肯定是曲折前進的,所以在這過程中肯定還是存在很多問題的,如果只是教師不斷對教學(xué)進行改革探索,那必然是不夠的,這是需要學(xué)生參與進來的。我們可以在學(xué)期末,讓學(xué)生匿名填寫一份教學(xué)反饋評價,由學(xué)生來指出教學(xué)中值得肯定以及需要改進之處。這樣才能在一步步教學(xué)改革中做到取其精華,去其糟粕。
教學(xué)是老師與學(xué)生雙方的事情,老師不能只是一味按照教材講課,不管學(xué)生掌握情況,只有了解學(xué)生的學(xué)習(xí)情況,才能更好地展開教學(xué)。針對《計算機組成原理》這門課程,老師應(yīng)把握課程重難點,翻轉(zhuǎn)課堂,多與學(xué)生互動,了解學(xué)生掌握情況,對學(xué)生掌握不足之處重點講解。同時需要將理論與實踐教學(xué)相結(jié)合,與時俱進,與其它計算機專業(yè)課程相結(jié)合,培養(yǎng)學(xué)生計算機的動手能力以及綜合能力。