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