摘要:“計(jì)算機(jī)組成原理”課程作為計(jì)算機(jī)大類(lèi)專(zhuān)業(yè)一門(mén)承上啟下的專(zhuān)業(yè)核心課程,具有理論性強(qiáng)、內(nèi)容和知識(shí)點(diǎn)多、同時(shí)需要強(qiáng)調(diào)實(shí)踐等特點(diǎn),對(duì)于學(xué)科完整性、學(xué)生升學(xué)和培養(yǎng)未來(lái)的計(jì)算芯片設(shè)計(jì)人員都有著非常重要的作用。隨著人工智能時(shí)代的到來(lái)以及摩爾定律走向終結(jié),F(xiàn)PGA將成為未來(lái)主流的計(jì)算芯片之一,具備軟硬件系統(tǒng)能力能勝任FPGA開(kāi)發(fā)的人才是未來(lái)緊缺人才。本文分析了目前“計(jì)算機(jī)組成原理”課程教學(xué)存在的問(wèn)題和不足,探索了本課程理論教學(xué)和實(shí)踐教學(xué)中教學(xué)條件、教學(xué)方法和教學(xué)手段的改進(jìn)。特別是在理論學(xué)習(xí)環(huán)節(jié)引入SPOC,實(shí)踐環(huán)節(jié)引入FPGA云的思想,讓學(xué)生可以輕松學(xué)習(xí),并快速地融入到行業(yè)中。
關(guān)鍵詞:計(jì)算機(jī)組成原理;SPOC翻轉(zhuǎn)課堂;啟發(fā)式教學(xué);教學(xué)方法探析
0、引言
數(shù)字邏輯、計(jì)算機(jī)組成原理、微機(jī)原理與接口技術(shù)等課程是計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程,是計(jì)算機(jī)、通信類(lèi)專(zhuān)業(yè)的核心基礎(chǔ)課程。這些課程通過(guò)從底層剖析數(shù)字電子計(jì)算機(jī)的基本組成和一般工作原理,讓學(xué)生掌握計(jì)算機(jī)系統(tǒng)的基本設(shè)計(jì)技術(shù),培養(yǎng)學(xué)生分析和解決數(shù)字系統(tǒng)實(shí)際問(wèn)題的能力,同時(shí)也是培養(yǎng)計(jì)算機(jī)系統(tǒng)分析、系統(tǒng)設(shè)計(jì)人員的一個(gè)必經(jīng)教育環(huán)節(jié)。
其中“計(jì)算機(jī)組成原理”課程作為一門(mén)承上啟下的中間課程(如圖1所示),在計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程中,所占的位置相當(dāng)突出,從2009年以來(lái),計(jì)算機(jī)研究生入學(xué)全國(guó)統(tǒng)一考試就把“計(jì)算機(jī)組成原理”課程作為必考的課程。
“計(jì)算機(jī)組成原理”課程的后續(xù)課程有單片機(jī)應(yīng)用編程、嵌入式應(yīng)用開(kāi)發(fā)、物聯(lián)網(wǎng)技術(shù)、智能控制技術(shù)等,這些課程所講授的技術(shù)在當(dāng)前社會(huì)生活中具有極其廣泛的應(yīng)用需求,具有這些課程堅(jiān)實(shí)基礎(chǔ)并具備工程能力的畢業(yè)生一直都有很大的缺口。
可見(jiàn),“計(jì)算機(jī)組成原理”課程對(duì)于強(qiáng)化學(xué)生基礎(chǔ)知識(shí)和基本技能、提高研究生入學(xué)考試成績(jī)、提升學(xué)生的就業(yè)競(jìng)爭(zhēng)力,為相關(guān)后續(xù)課程打下堅(jiān)實(shí)的基礎(chǔ),都有非常重要的作用。但是,傳統(tǒng)的教學(xué)方法已經(jīng)越來(lái)越不能滿足這門(mén)課程的教學(xué)要求了,因此,針對(duì)于本課程的新教學(xué)方法的探索亟需進(jìn)行?;诙嗄瓯菊n程的教學(xué)研究和體會(huì),兼顧學(xué)生基本技能、考研需求、就業(yè)需求,筆者在本文中對(duì)“計(jì)算機(jī)組成原理”課程的理論和實(shí)踐教學(xué)方法進(jìn)行探析。
1、現(xiàn)階段“計(jì)算機(jī)組成原理”課程教學(xué)存在問(wèn)題的分析
1.1課程難度大,教學(xué)時(shí)間緊
“計(jì)算機(jī)組成原理”課程是偏向硬件的一門(mén)專(zhuān)業(yè)課,其講授的內(nèi)容主要包括ALU、CU、Memery、Input、Output等硬件的基本組成和一般工作原理。很多部分都比較復(fù)雜,學(xué)生理解和掌握起來(lái)比較困難,特別是CPU,其內(nèi)部結(jié)構(gòu)非常復(fù)雜,也無(wú)法提供一個(gè)直觀的實(shí)物讓學(xué)生看,學(xué)生會(huì)覺(jué)得課程知識(shí)比較抽象,學(xué)習(xí)難度很大;另外計(jì)算機(jī)中的運(yùn)算方法,例如:原碼一位乘法,原碼兩位乘法,補(bǔ)碼一位乘法,補(bǔ)碼兩位乘法,并行乘法等,均為二進(jìn)制思想,與平時(shí)的十進(jìn)制數(shù)運(yùn)算方法有所不同,學(xué)生感覺(jué)非常不習(xí)慣。這些本課程特有的性質(zhì)和實(shí)際情況都可能導(dǎo)致學(xué)生學(xué)習(xí)興趣不高,學(xué)習(xí)效果達(dá)不到要求[1]。
目前,二本類(lèi)學(xué)校學(xué)生普遍在校學(xué)習(xí)時(shí)間只有三年,按照學(xué)校課程調(diào)整的整體要求,很多學(xué)校已經(jīng)將匯編語(yǔ)言、微機(jī)接口技術(shù)、嵌入式等課程直接去掉,不在培養(yǎng)計(jì)劃中作要求。而計(jì)算機(jī)組成原理課程的課時(shí)也有大大地縮減??梢?jiàn),在“計(jì)算機(jī)組成原理”課程講授的過(guò)程中,要添加必要的前期課程的內(nèi)容講解,時(shí)間也非常地緊張。
1.2師資短缺
“計(jì)算機(jī)組成原理”課程作為一門(mén)承上啟下的課程,對(duì)教師的要求也非常高。不僅要求授課教師講授好本課程的內(nèi)容,還要求教師對(duì)先導(dǎo)課程和后繼課程也要有相當(dāng)?shù)恼莆蘸桶芽?。授課教師最好是把硬件技術(shù)基礎(chǔ)課程群里的課都熟練掌握,并且能夠在嵌入式和物聯(lián)網(wǎng)方面有項(xiàng)目支撐。
現(xiàn)實(shí)情況是,能夠在硬件技術(shù)基礎(chǔ)課程群里一直上課的老師比較少,要老師有相應(yīng)的科研和項(xiàng)目支撐就更少了。
1.3“欺軟怕硬”現(xiàn)象愈演愈烈
現(xiàn)在的計(jì)算機(jī)專(zhuān)業(yè)學(xué)生普遍重視軟件類(lèi)課程,主觀地認(rèn)為計(jì)算機(jī)專(zhuān)業(yè)就是學(xué)習(xí)如何用各種編程語(yǔ)言來(lái)編寫(xiě)程序,覺(jué)得計(jì)算機(jī)硬件離他們很遙遠(yuǎn)、硬件知識(shí)很難理解,漸漸地出現(xiàn)了“欺軟怕硬”的現(xiàn)象。
同時(shí),現(xiàn)在很多同學(xué)的就業(yè)方向都定在以Android和IOS為代表的移動(dòng)互聯(lián)的應(yīng)用開(kāi)發(fā)上。并且這個(gè)領(lǐng)域每年吸納的學(xué)生非常多,很多學(xué)生不用掌握任何硬件知識(shí),也能夠就業(yè)。這在客觀上,讓學(xué)生覺(jué)得硬件類(lèi)知識(shí)學(xué)不學(xué)習(xí)無(wú)所謂,只要會(huì)寫(xiě)程序就可以就業(yè)了。因此,“欺軟怕硬”的現(xiàn)象是愈演愈烈。
1.4實(shí)踐環(huán)節(jié)落后
計(jì)算機(jī)組成原理實(shí)驗(yàn)課開(kāi)設(shè)的目的是使學(xué)生能夠深入理解所學(xué)的理論知識(shí),在此基礎(chǔ)上培養(yǎng)學(xué)生的硬件設(shè)計(jì)和開(kāi)發(fā)能力,并能夠結(jié)合當(dāng)前的熱門(mén)應(yīng)用有所創(chuàng)新。
目前,很多學(xué)校采用了基于FPGA芯片的現(xiàn)代計(jì)算機(jī)組成原理實(shí)驗(yàn)箱。實(shí)驗(yàn)項(xiàng)目主要按照實(shí)驗(yàn)箱配送的電子版實(shí)驗(yàn)指導(dǎo)書(shū)設(shè)置。實(shí)驗(yàn)課上,教師會(huì)給大家演示如何完成實(shí)驗(yàn)項(xiàng)目,以及實(shí)驗(yàn)操作步驟。學(xué)生按照老師的做法,依葫蘆畫(huà)瓢在實(shí)驗(yàn)箱上只要完成簡(jiǎn)單的硬件搭接,然后把實(shí)驗(yàn)教師給的代碼或設(shè)計(jì)圖運(yùn)行,就可以過(guò)關(guān)。實(shí)驗(yàn)教學(xué)的內(nèi)容沒(méi)有深入底層,學(xué)生對(duì)實(shí)驗(yàn)原理也沒(méi)有得到根本的理解,對(duì)理解相關(guān)的理論知識(shí)起到的作用也非常有限,脫離了理論聯(lián)系實(shí)際的原則。
按照目前的實(shí)驗(yàn)?zāi)J?,并不能夠很好地體現(xiàn)注重培養(yǎng)學(xué)生的創(chuàng)新精神,也不便于學(xué)生做自主型實(shí)驗(yàn)、綜合型實(shí)驗(yàn)和創(chuàng)新型實(shí)驗(yàn)。其次,基于大規(guī)模數(shù)據(jù)和創(chuàng)新應(yīng)用的FPGA云實(shí)驗(yàn)系統(tǒng)不僅價(jià)格高昂,而且不便于維護(hù)和更新,在已經(jīng)有實(shí)驗(yàn)箱的情況下,也不可能在短時(shí)間內(nèi)再次購(gòu)買(mǎi)。再次,學(xué)生做實(shí)驗(yàn)的整個(gè)過(guò)程,無(wú)法很好地跟蹤和記錄,不利于對(duì)學(xué)生的實(shí)驗(yàn)成績(jī)做出真實(shí)的評(píng)判[2]。
2、關(guān)于“計(jì)算機(jī)組成原理”課程更新教學(xué)方法的探索
針對(duì)以上在“計(jì)算機(jī)組成原理”課程中存在的問(wèn)題,結(jié)合教學(xué)實(shí)踐,筆者提出一些改進(jìn)當(dāng)前課程教學(xué)方法的討論與思考。
2.1引入SPOC和翻轉(zhuǎn)課堂
基于MOOC平臺(tái)的SPOC擁有人數(shù)少、在校注冊(cè)(收費(fèi))、除了在線視頻和習(xí)題等,還可以有其它輔助的線上或線下課堂、答疑。SPOC教學(xué)內(nèi)容可以是MOOC的超集,換句話說(shuō),教師可以開(kāi)著MOOC,同時(shí)對(duì)一小部分學(xué)生開(kāi)SPOC —— 要求后者選了MOOC的同時(shí),通過(guò)其他的渠道(線上的在線討論,或者線下的混合式教學(xué)(含翻轉(zhuǎn)課堂)實(shí)現(xiàn)SPOC,實(shí)現(xiàn)“SPOC = MOOC + 補(bǔ)充交流”的模式[3]。
目前開(kāi)設(shè)“計(jì)算機(jī)組成原理”課程SPOC比較好的學(xué)校有哈爾濱工業(yè)大學(xué)、華中科技大學(xué)等。一般的二本學(xué)校,可以申請(qǐng)這些學(xué)校的計(jì)算機(jī)組成原理課程的SPOC,除可以利用的公用MOOC資源外,還可以自己上傳私有講稿和作業(yè),供本學(xué)校學(xué)生使用。這樣學(xué)生可以在課前進(jìn)行線上預(yù)習(xí)、線下上課時(shí)教師可以與學(xué)生進(jìn)行討論式教學(xué)、課后師生間可以進(jìn)行有針對(duì)性的線上和線下多方位的互動(dòng)。
筆者相信通過(guò)SPOC和翻轉(zhuǎn)課堂思想,可以很好地解決“計(jì)算機(jī)組成原理”課程任務(wù)多,時(shí)間緊的問(wèn)題。
2.2組建穩(wěn)定的教師團(tuán)隊(duì)
計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程群包含了多門(mén)課程,“計(jì)算機(jī)組成原理”課程是其中的一門(mén),而要講授好這門(mén)課程,僅靠一個(gè)老師,肯定是不行的,所以組建一個(gè)教師團(tuán)隊(duì)非常必要。
為了讓這個(gè)教師團(tuán)隊(duì)能夠保持相對(duì)的穩(wěn)定,并且能夠有所發(fā)展??梢宰鋈缦乱恍┡Α?/p>
1)確定1~2名核心教師,然后發(fā)展和指導(dǎo)2~3名輔助教學(xué)教師。
2)團(tuán)隊(duì)內(nèi)部經(jīng)常組織一些教學(xué)活動(dòng)(聽(tīng)課、評(píng)課、說(shuō)課),讓每一名教師都得到成長(zhǎng)。
3)共同維護(hù)課程SPOC,為課程教學(xué)提供必要的教學(xué)資料。
4)外出參加與課程相關(guān)的論壇和學(xué)習(xí),讓團(tuán)隊(duì)的教學(xué)思想和理念始終都保持先進(jìn)性。
5)與企業(yè)合作,讓有能力的企業(yè)參與到實(shí)踐和課程設(shè)計(jì)中,同時(shí),教師可以到企業(yè)參與生產(chǎn)實(shí)踐,與企業(yè)共同申請(qǐng)項(xiàng)目。
6)針對(duì)考研的學(xué)生,可以開(kāi)展一些講座和答疑活動(dòng)。
2.3努力提高學(xué)生的學(xué)習(xí)積極性
學(xué)生出現(xiàn)害怕硬件類(lèi)課程的現(xiàn)象,究其原因還是沒(méi)有把學(xué)生的學(xué)習(xí)積極性調(diào)動(dòng)起來(lái)。而學(xué)生不想學(xué)的原因可能是因?yàn)槟骋粋€(gè)知識(shí)點(diǎn)沒(méi)聽(tīng)懂,導(dǎo)致后面的內(nèi)容連接不起來(lái),到逐漸放棄這門(mén)課程。
為了提高學(xué)生的積極性,授課教師可以做以下幾個(gè)方面的努力。
1)啟發(fā)式教學(xué)
計(jì)算機(jī)組成原理的知識(shí)相對(duì)來(lái)說(shuō)會(huì)比較抽象,所以學(xué)生在理解的時(shí)候會(huì)有些困難,因此可以在教學(xué)過(guò)程中,采用啟發(fā)式教學(xué)方法,用一些通熟易懂的例子來(lái)對(duì)知識(shí)進(jìn)行由淺入深的講解。
在講解Cache的地址映射方式的時(shí)候,學(xué)生對(duì)組相聯(lián)映射方式中的主存地址格式不太容易理解,對(duì)于計(jì)算某一個(gè)主存單元所對(duì)應(yīng)的Cache組號(hào)也犯糊涂。
例如:某計(jì)算機(jī)的Cache共有16塊,采用2路組相連映射方式,每個(gè)主存塊大小為32字節(jié),按字節(jié)編址。主存號(hào)129號(hào)單元所在主存塊應(yīng)裝入到cache的組號(hào)是多少?
解:主存地址格式如下
t(無(wú)法計(jì)算) u(3位) b(5位)
其中t是主存標(biāo)記,在本題中受限于條件,無(wú)法計(jì)算,但對(duì)計(jì)算結(jié)果沒(méi)有影響。u部分表示的就是所要求的組號(hào)。
可以先引導(dǎo)學(xué)生對(duì)十進(jìn)制數(shù)據(jù)X=12345,求這個(gè)數(shù)的百位和十位構(gòu)成的兩位數(shù)。那么學(xué)生在學(xué)習(xí)C語(yǔ)言的時(shí)候,就做過(guò)相應(yīng)的練習(xí)。直接用一個(gè)計(jì)算公式:(X/101)%102,就可以計(jì)算出結(jié)果。那么類(lèi)似的,在本題中也可以采用這種方法,只不過(guò)在本題中為二進(jìn)制計(jì)算。綜上就可以引導(dǎo)學(xué)生得到本題的計(jì)算:(129/25)%23=4。
2)重點(diǎn)講解和動(dòng)態(tài)演示
在講解CPU的時(shí)候,ALU和CU是核心。ALU可以結(jié)合組合邏輯電路,以及運(yùn)算方法講解;但CU只能通過(guò)指令的執(zhí)行來(lái)講解。而學(xué)生對(duì)于指令是如何在CPU中執(zhí)行的,以及分別由CPU中的那個(gè)部分執(zhí)行,都是比較難以理解的。這時(shí),可以借助模擬動(dòng)態(tài)演示,幫助學(xué)生更加形象地理解這個(gè)過(guò)程中,數(shù)據(jù)流向和內(nèi)部主要結(jié)構(gòu)組成。
3)與其他課程結(jié)合
課程之間的知識(shí)點(diǎn)絕對(duì)不是獨(dú)立的,所以可以結(jié)合其他課程的知識(shí)點(diǎn),輔助計(jì)算機(jī)組成原理的教學(xué)。
在講解IEEE754標(biāo)準(zhǔn)的時(shí)候,32位浮點(diǎn)數(shù)和64位浮點(diǎn)數(shù),實(shí)際上就分別是C語(yǔ)言中的單精度和雙精度型浮
圖2一段簡(jiǎn)單的C程序
點(diǎn)數(shù)。為了讓大家更好地理解IEEE754標(biāo)準(zhǔn),就用一個(gè)C語(yǔ)言程序來(lái)間接地講解。
C語(yǔ)言源程序如圖2所示,不運(yùn)行,直接分析程序的運(yùn)行結(jié)果??吹筋}目,學(xué)生肯定覺(jué)得非常難。但實(shí)際上就是一個(gè)IEEE754的實(shí)際應(yīng)用。
解題過(guò)程:數(shù)組a[0]=00H, a[1]=80H, a[2]=30H, a[3]=41H。
按照小端對(duì)齊方式的規(guī)定,IEEE754的32位浮點(diǎn)數(shù)是41308000H。把這個(gè)數(shù)再填入IEEE754標(biāo)準(zhǔn)的32位浮點(diǎn)數(shù)格式中,通過(guò)計(jì)算,得出結(jié)果為11.0313。最后運(yùn)行這個(gè)C語(yǔ)言程序,可得到相同的結(jié)果。通過(guò)這樣的方式,可以讓學(xué)生理解到知識(shí)的相通性,也能夠提高學(xué)習(xí)的積極性。
4)鼓勵(lì)學(xué)生參加競(jìng)賽
目前與計(jì)算機(jī)組成原理課程相關(guān)的競(jìng)賽有電子設(shè)計(jì)類(lèi)的FPGA和SOC比賽。
這類(lèi)競(jìng)賽作品的要求比較高,可以讓學(xué)生把數(shù)字邏輯、計(jì)算機(jī)組成原理、操作系統(tǒng)等課程學(xué)的知識(shí)串通起來(lái)。當(dāng)然,如果要求太高而沒(méi)有學(xué)生參賽,也可以鼓勵(lì)學(xué)生參加物聯(lián)網(wǎng)和電子設(shè)計(jì)等方面的競(jìng)賽,通過(guò)競(jìng)賽,可以讓學(xué)生更好地理解課程的意義。同時(shí),在競(jìng)賽中獲獎(jiǎng),也可以極大地提高學(xué)生的學(xué)習(xí)積極性。
2.4結(jié)合現(xiàn)代教育手段改進(jìn)實(shí)踐環(huán)節(jié)
“計(jì)算機(jī)組成原理”課程的實(shí)踐環(huán)節(jié)非常重要,對(duì)于理解理論知識(shí),拓展學(xué)生思維,引導(dǎo)學(xué)生進(jìn)入實(shí)際工程領(lǐng)域非常重要。
傳統(tǒng)實(shí)驗(yàn)箱的實(shí)踐教學(xué)手段,學(xué)生的實(shí)驗(yàn)以驗(yàn)證性實(shí)驗(yàn)為主,缺乏創(chuàng)新項(xiàng)目和真實(shí)的工程項(xiàng)目;同時(shí),受到到了場(chǎng)地和時(shí)間的限制,學(xué)生在實(shí)驗(yàn)課后,無(wú)法自己安排時(shí)間進(jìn)行實(shí)驗(yàn)。
目前, Baidu、IBM、Amazon、Microsoft、浪潮、騰訊、阿里等都發(fā)布了自己的FPGA云;2017年03月,Intel發(fā)布CPU+FPGA的機(jī)器人大腦。可見(jiàn),芯片即將進(jìn)入應(yīng)用驅(qū)動(dòng)時(shí)代,為算法定義硬件將是常態(tài),F(xiàn)PGA應(yīng)用開(kāi)發(fā)將成為主流。
面向未來(lái)的人工智能時(shí)代,學(xué)生需要一個(gè)隨時(shí)可用的FPGA開(kāi)發(fā)環(huán)境;老師需要一個(gè)基于學(xué)生數(shù)據(jù)的智能FPGA實(shí)驗(yàn)教學(xué)平臺(tái)。
基于“互聯(lián)網(wǎng)+FPGA”的未來(lái)計(jì)算實(shí)驗(yàn)室,只要有網(wǎng)絡(luò)和瀏覽器,學(xué)生就可以隨時(shí)隨地做實(shí)驗(yàn),同時(shí),可以將學(xué)生銜接到行業(yè)應(yīng)用需求上。
3、總結(jié)
“計(jì)算機(jī)組成原理”課程對(duì)于學(xué)生理解和掌握計(jì)算機(jī)一般組成和一般運(yùn)行原理有非常重要的作用,同時(shí)也可以引導(dǎo)學(xué)生進(jìn)入“互聯(lián)網(wǎng)+FPGA”的應(yīng)用領(lǐng)域。而本課程對(duì)教師和學(xué)生的要求都非常高,對(duì)課程教學(xué)的要求也非常高,高校需要積極探析課程教學(xué)方法,改進(jìn)教學(xué)手段,以適應(yīng)技術(shù)和行業(yè)的發(fā)展對(duì)從業(yè)人員的要求。通過(guò)探析,改進(jìn)教學(xué)手段和教學(xué)方法,可以有效減輕教師負(fù)擔(dān),提升教學(xué)效率,提高學(xué)生的學(xué)習(xí)興趣,為學(xué)生快速融入到行業(yè)提供幫助。
參考文獻(xiàn):
[1]彭雅琴,王萬(wàn)生.計(jì)算機(jī)組成原理教學(xué)方法探析[J].教育教學(xué)論壇,2017(10):205-206
[2]王小林,候漠,胡曉婷.計(jì)算機(jī)組成原理實(shí)驗(yàn)教學(xué)改革探討[J].科技資訊,2014(02):155-156.
[3]黃嵐等.基于SPOC理念的計(jì)算機(jī)組成原理課程互動(dòng)教學(xué)研究[J].計(jì)算機(jī)教育,2015(13):15-18
作者簡(jiǎn)介:鄧紹偉(1979-),男,助教,主要研究方向:FPGA、物聯(lián)網(wǎng)研究與應(yīng)用。