摘要: 本文探討了普通高校《匯編語言》課程教學(xué)的現(xiàn)狀和存在的問題,對(duì)教學(xué)和實(shí)踐環(huán)節(jié)進(jìn)行了探討,同時(shí)就該課程的教學(xué)理念、關(guān)鍵問題和環(huán)節(jié)、教學(xué)方法和手段等進(jìn)行了分析論述,對(duì)如何提高教學(xué)質(zhì)量,培養(yǎng)學(xué)生的學(xué)習(xí)興趣和能力提出了具體的意見與建議。
關(guān)鍵字:匯編語言;教學(xué);探討
中圖分類號(hào):TP3-4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 21-0000-02
1 《匯編語言》課程概要及教學(xué)現(xiàn)狀
《匯編語言》是普通高校計(jì)算機(jī)科學(xué)與技術(shù)及其它信息類相關(guān)專業(yè)的主要課程,絕大部分高校的計(jì)算機(jī)專業(yè)都把它列入專業(yè)核心課或主干課中。本課程一般開設(shè)在大二,前導(dǎo)課為《C語言程序設(shè)計(jì)》(或其它高級(jí)語言),《數(shù)字電子技術(shù)》等,相關(guān)或后續(xù)課程有《計(jì)算機(jī)組成原理》、《接口技術(shù)》、《操作系統(tǒng)》、《編譯原理》等。匯編語言是一種低級(jí)語言,它涉及到機(jī)器的底層,與硬件密切相關(guān),因此,其應(yīng)用主要集中在涉及硬件或系統(tǒng)的核心層面,應(yīng)用面相對(duì)較窄,而且在涉及硬件的某些開發(fā)中,高級(jí)語言因其易于使用目前部分替代了匯編語言,面對(duì)蓬勃發(fā)展的高級(jí)語言應(yīng)用特別是Web應(yīng)用等,匯編語言顯得有些黯然失色,因此,從實(shí)用性考慮,匯編語言的教學(xué)遇到了一定阻力,學(xué)生學(xué)習(xí)積極性不高,目的不明確,這種情況是《匯編語言》教學(xué)中普遍存在的現(xiàn)象。這種問題的解決需要有兩方面的努力,一是教師要發(fā)揮主導(dǎo)作用,端正學(xué)生的認(rèn)識(shí),二是要在教學(xué)內(nèi)容和手段上進(jìn)行改革。
2 《匯編語言》的作用和意義
在色彩紛呈的計(jì)算機(jī)軟件開發(fā)中,匯編語言的應(yīng)用比較狹窄,很多早期的應(yīng)用場合逐漸被高級(jí)語言取代,所以很多同學(xué)會(huì)認(rèn)為匯編語言用處不大,主觀上不重視,再加上匯編語言編程和調(diào)試都比較繁瑣,所以很多同學(xué)在匯編語言學(xué)習(xí)中感到無所適從,嚴(yán)重影響學(xué)習(xí)成效。作為教師,一定要在課堂上正確引導(dǎo)學(xué)生,使學(xué)生對(duì)匯編語言有正確的認(rèn)識(shí)。這種引導(dǎo)集中體現(xiàn)在第一次課的緒論部分要上好,同時(shí)要貫穿于后續(xù)課程中。
匯編語言的應(yīng)用雖然減弱,但是其作用不可替代。隨著芯片及硬件技術(shù)的提高,計(jì)算機(jī)整體速度和性能大幅提升,過去很多要考慮硬件開銷的場合現(xiàn)在已不復(fù)存在,所以匯編語言的應(yīng)用減弱甚至被取代是很自然的事情,是技術(shù)進(jìn)步的集中體現(xiàn),但這并不意味著匯編語言沒有作用了,相反在匯編語言主要的應(yīng)用場合其仍然發(fā)揮重要作用,就像是教科書中告訴學(xué)生的,匯編語言是最直接有效控制計(jì)算機(jī)硬件的,代碼效率最高的編程語言,就應(yīng)用來說匯編語言是偏重于系統(tǒng)底層和硬件的,如果學(xué)生以后從事系統(tǒng)開發(fā)及硬件應(yīng)用、實(shí)時(shí)控制等方面的工作匯編語言應(yīng)用是必不可少的,所以單從應(yīng)用來說,匯編語言的學(xué)習(xí)也是很有意義的,而且匯編語言是低級(jí)語言,其應(yīng)用卻是“高端”和“專業(yè)”的。非計(jì)算機(jī)專業(yè)的同學(xué)通過學(xué)習(xí)高級(jí)語言也可以成為程序員,也可以進(jìn)行應(yīng)用開發(fā),計(jì)算機(jī)專業(yè)的同學(xué)和他們的差別就在于類似《匯編語言》等這樣的專業(yè)核心課程是否學(xué)習(xí)掌握,是否有專業(yè)的功底去做核心的、大規(guī)模的、創(chuàng)新的應(yīng)用開發(fā)。
誠然,隨著擴(kuò)招而來的各種效應(yīng),學(xué)生的學(xué)習(xí)也變得相當(dāng)務(wù)實(shí),有些學(xué)生會(huì)覺得匯編語言固然有用,但自己不打算從事這方面工作,Web及數(shù)據(jù)庫應(yīng)用等比較熱,學(xué)學(xué)這些就可以了。針對(duì)這些錯(cuò)誤認(rèn)識(shí),教師應(yīng)站在課程體系設(shè)置及課程的內(nèi)在聯(lián)系的高度,在不同的時(shí)段從不同的角度告訴學(xué)生匯編語言能從哪些方面幫助自己獲得知識(shí)和能力,在程序設(shè)計(jì)能力培養(yǎng)、對(duì)計(jì)算機(jī)的認(rèn)識(shí)理解包括對(duì)其它課程的理解,匯編語言都是大有益處的,確實(shí)是本專業(yè)的一門核心課程,應(yīng)當(dāng)下工夫?qū)W好。
除了教師自己在課堂上對(duì)學(xué)生的宣講和引導(dǎo)外,還應(yīng)充分發(fā)揮和利用媒體及其它專業(yè)人士的影響,切身說法,互聯(lián)網(wǎng)給了我們這種極大的可能性,所以給學(xué)生介紹一些網(wǎng)上學(xué)長或?qū)I(yè)人士的學(xué)習(xí)體會(huì)、應(yīng)用經(jīng)驗(yàn),無疑會(huì)對(duì)學(xué)生的學(xué)習(xí)產(chǎn)生影響,因?yàn)榇蠹业目捶ㄊ且恢碌?,那就是匯編語言很重要,應(yīng)該學(xué)好。
3 《匯編語言》課程定位及教學(xué)
《匯編語言》教學(xué)中的問題來自兩方面,一方面是學(xué)生,一方面在教師自身,很多講授《匯編語言》的教師自己在認(rèn)識(shí)上也存在偏差,所以這門課程的定位必須要清晰,否則它的價(jià)值和合理性就會(huì)遭到懷疑。匯編語言是一種低級(jí)語言,是面向系統(tǒng)底層的,我們不能功利地把它和高級(jí)語言類比,像高級(jí)語言那樣相對(duì)簡單輕松地學(xué)習(xí)僅僅是一種愿望。Randall Hyde在他的名著《The Art of Assembly Language》(《匯編語言編程藝術(shù)》)中寫到:“To write good assembly language programs requires a strong knowledge of the underlying hardware(編寫好的匯編語言程序需要有強(qiáng)大的底層硬件認(rèn)知)”,所以,匯編語言的底層定位非常重要,不能試圖用高級(jí)語言的內(nèi)容和方法影響匯編語言教學(xué),要從匯編語言自身的應(yīng)用和特點(diǎn)出發(fā),這樣才能教好這門課,讓學(xué)生把握住這門課的精髓。
明確了底層的定位,很多事情就會(huì)清晰,要掌握什么內(nèi)容,需要什么樣的教學(xué)過程就不再有疑問,教師要做的事情就是要把這些內(nèi)容清晰合理地講授給學(xué)生。
比如說,《匯編語言》教學(xué)中的程序設(shè)計(jì)例子,有些來源于高級(jí)語言,這樣的例子作為熟悉指令或說明某些算法等學(xué)生易于接受,但是主要的例題和作業(yè)我們要突出匯編語言的特色,盡量去面向底層,這樣有意識(shí)地引導(dǎo),學(xué)生就會(huì)逐漸理解和掌握匯編語言。比如計(jì)算類的編程,多精度的計(jì)算怎么實(shí)現(xiàn),如何用加法和位操作實(shí)現(xiàn)乘法等等,這樣的例子就能突出底層特點(diǎn),也會(huì)激發(fā)學(xué)生對(duì)《匯編語言》的學(xué)習(xí)興趣。再比如,匯編語言的調(diào)試要用到Debug等調(diào)試工具,這是作為計(jì)算機(jī)專業(yè)的學(xué)生應(yīng)當(dāng)學(xué)習(xí)掌握的,不應(yīng)該有什么疑問。所以,課程的定位和教師的引導(dǎo)明確了,學(xué)生學(xué)習(xí)的態(tài)度就端正了,盡管匯編語言的編程、調(diào)試過程相對(duì)復(fù)雜,步驟較多,但低級(jí)語言有它自己的特點(diǎn),圍繞自身特點(diǎn)和應(yīng)用組織教學(xué),學(xué)生的學(xué)習(xí)興趣不會(huì)亞于學(xué)習(xí)高級(jí)語言。
通過匯編語言這種底層編程的學(xué)習(xí)和訓(xùn)練,可以加深學(xué)生對(duì)高級(jí)語言及相關(guān)計(jì)算機(jī)知識(shí)和理論的學(xué)習(xí)理解。比如高級(jí)語言中的變量,通過匯編語言的學(xué)習(xí)就會(huì)深刻理解,包括數(shù)據(jù)類型及存儲(chǔ)的概念特別是對(duì)指針的理解等等;再比如對(duì)ASCII碼的認(rèn)識(shí),很多同學(xué)就是學(xué)習(xí)了匯編語言才明白為什么會(huì)有ASCII碼,數(shù)據(jù)文件和文本文件究竟有什么不同。教師在教學(xué)中應(yīng)把這些作為知識(shí)點(diǎn)進(jìn)行類比、說明,讓學(xué)生把知識(shí)融會(huì)貫通起來。
4 《匯編語言》教學(xué)中應(yīng)注意的問題
4.1 課程安排
《匯編語言》這門課程前導(dǎo)課除了《高級(jí)語言》外,《數(shù)字電子技術(shù)》等也應(yīng)該作為前導(dǎo)課程,否則學(xué)生沒有2進(jìn)制或16進(jìn)制及數(shù)字邏輯的基本訓(xùn)練,學(xué)習(xí)《匯編語言》會(huì)很吃力?,F(xiàn)在《匯編語言》的課時(shí)都不會(huì)太多,這2門課是學(xué)習(xí)的基礎(chǔ),課堂上不可能去額外講其它內(nèi)容。據(jù)了解,部分高?!秴R編語言》開設(shè)得較早,講了《高級(jí)語言》后緊接著就是《匯編語言》,這樣安排會(huì)造成學(xué)生學(xué)習(xí)障礙,影響《匯編語言》的正常教學(xué),應(yīng)該進(jìn)行必要的調(diào)整。
4.2 盡快入門的問題
高級(jí)語言編程入門很容易,往往第一次課就可以寫出類似輸出“Hello World”這樣的程序,而匯編語言寫出第一個(gè)較完整的程序要學(xué)習(xí)掌握大量的內(nèi)容,包括尋址方式、指令系統(tǒng)及大量的語言規(guī)定,學(xué)生很容易遺忘或混淆,如何讓學(xué)生盡快入門,盡快培養(yǎng)興趣就很關(guān)鍵。有些教科書在內(nèi)容組織上往往相對(duì)集中,教師應(yīng)當(dāng)合理規(guī)劃安排教學(xué)內(nèi)容,比如指令系統(tǒng),應(yīng)先有針對(duì)性地進(jìn)行選擇,不宜在剛開始一次講授大量指令,這會(huì)讓初學(xué)者望而卻步,產(chǎn)生畏難情緒,作為教師就是要讓學(xué)生有選擇地掌握重點(diǎn)內(nèi)容,迅速入門,這樣才能調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性。在講授了常用指令后,結(jié)合尋址方式盡早安排上機(jī)練習(xí),盡快入門,這樣后續(xù)的內(nèi)容再做補(bǔ)充,學(xué)生的學(xué)習(xí)就比較順利。
匯編語言的編程關(guān)鍵一是要熟練掌握并靈活運(yùn)用各種尋址方式,初學(xué)者覺得匯編語言程序無從著手主要原因就是不知道如何運(yùn)用尋址方式,教師要把解決這一問題當(dāng)成迅速入門的重點(diǎn),通過各種用法舉一反三讓學(xué)生盡快領(lǐng)悟;二是熟練使用Debug等調(diào)試工具查看程序和數(shù)據(jù)。這兩方面的問題解決了,學(xué)生一旦入門就有了自覺學(xué)習(xí)的前提。
4.3 設(shè)定目標(biāo),加強(qiáng)督促
《匯編語言》教學(xué)中應(yīng)不斷進(jìn)行復(fù)習(xí)、總結(jié),也要督促學(xué)生進(jìn)行復(fù)習(xí)總結(jié),特別是現(xiàn)在學(xué)生選課很多,課余時(shí)間其它活動(dòng)也多,僅靠課堂時(shí)間很難消化理解所學(xué)內(nèi)容,所以一定要養(yǎng)成復(fù)習(xí)、總結(jié)的習(xí)慣。為此,教師應(yīng)根據(jù)教學(xué)內(nèi)容劃分多個(gè)教學(xué)階段,分階段設(shè)定教學(xué)目標(biāo),讓學(xué)生明確這些階段目標(biāo),適時(shí)安排進(jìn)行階段復(fù)習(xí)和測驗(yàn),檢查督促學(xué)生的學(xué)習(xí),只有教師加強(qiáng)督促,學(xué)生才會(huì)有一定的緊迫感。根據(jù)本校的教學(xué)實(shí)踐和統(tǒng)計(jì)數(shù)字,教師的督促作用加強(qiáng)了、有意識(shí)有規(guī)劃地開展復(fù)習(xí)、測驗(yàn)、課堂提問等,學(xué)生的學(xué)習(xí)成效、考試成績就會(huì)顯著提高。其實(shí),所謂匯編語言難學(xué)是因?yàn)閮?nèi)容較瑣碎,編程、調(diào)試過程復(fù)雜,對(duì)學(xué)生來講需要一定的毅力和付出,再加上現(xiàn)在社會(huì)普遍的浮躁情緒也影響到學(xué)生,對(duì)學(xué)生放任自由的話到后期會(huì)有很多學(xué)生跟不上進(jìn)度個(gè)別的甚至放棄學(xué)習(xí),所以,《匯編語言》課程的講授教師一定要主動(dòng)承擔(dān)起自己的責(zé)任,用各種手段影響、督促學(xué)生,促進(jìn)他們的學(xué)習(xí)。
4.4 教學(xué)手段方法的改革
隨著教學(xué)條件的不斷改善,計(jì)算機(jī)教學(xué)在許多高校已完全采用多媒體等手段,力求取得最好的教學(xué)效果。采用多媒體教學(xué)對(duì)教師的教案及課件組織提出了較高要求,該展示的部分要大信息量,做到完整充分,重點(diǎn)的地方又要做到條理清晰,把握時(shí)間,方便學(xué)生記筆記。這些都需要教師在教學(xué)過程中把握精準(zhǔn)。匯編語言程序中數(shù)據(jù)的輸入、輸出都不是很直接,除了利用調(diào)試工具演示、講解外,多媒體直觀演示是很好的手段,所以充分利用多媒體手段,做好課件,體現(xiàn)細(xì)節(jié)是重要的改革內(nèi)容。
在教學(xué)方法上,要強(qiáng)調(diào)理論和實(shí)踐的結(jié)合,理論課講清基本概念和方法,實(shí)驗(yàn)課加強(qiáng)實(shí)踐。對(duì)匯編語言來說,實(shí)驗(yàn)課尤其重要,匯編語言的調(diào)試過程比較繁雜,總有部分同學(xué)會(huì)遇到困難,教師要精心安排實(shí)驗(yàn)內(nèi)容,幫助學(xué)生盡快獨(dú)立完成實(shí)驗(yàn),只有實(shí)驗(yàn)做好了才能真正學(xué)懂匯編語言。
在教學(xué)內(nèi)容上,經(jīng)典的8086(8088)匯編一直是學(xué)習(xí)的核心內(nèi)容,因?yàn)樗?0X86系統(tǒng)的一個(gè)完整子集,在此基礎(chǔ)上可以進(jìn)行擴(kuò)展,目前有些高校已引入了Win32匯編的教學(xué),作為內(nèi)容的改革和升級(jí),應(yīng)當(dāng)進(jìn)行必要的介紹,可根據(jù)課時(shí)的多少合理進(jìn)行安排。
除了課堂教學(xué)外,要充分利用互聯(lián)網(wǎng)帶來的便利,進(jìn)行線上線下多方位的教學(xué)輔導(dǎo),及時(shí)解決學(xué)生學(xué)習(xí)中遇到的問題,幫助學(xué)生學(xué)好這門課程。
4 結(jié)束語
《匯編語言》無論對(duì)教師和學(xué)生來說都是一門需要付出的課程,作為一門重要的專業(yè)基礎(chǔ)課,教師要正確面對(duì)存在的問題,明確其面向系統(tǒng)底層的低級(jí)語言定位,正確引導(dǎo)學(xué)生,不斷督促學(xué)生的學(xué)習(xí),明確學(xué)習(xí)目的,增強(qiáng)學(xué)習(xí)興趣,在學(xué)習(xí)的過程中不斷提高自己的編程能力和水平,增進(jìn)對(duì)計(jì)算機(jī)硬件及其工作原理的認(rèn)識(shí),為整個(gè)計(jì)算機(jī)專業(yè)其它課程的學(xué)習(xí)打下穩(wěn)固的基礎(chǔ)。
參考文獻(xiàn):
[1]劉旭明,齊燦,鄭利華.基才建構(gòu)主義的《匯編語言》課堂教學(xué)改革探索與實(shí)踐[J].桂林航天工業(yè)高等??茖W(xué)校學(xué)報(bào),2007,02.
計(jì)算機(jī)光盤軟件與應(yīng)用2012年21期