姜 玥,談文蓉
(西南民族大學 計算機科學與技術學院,四川 成都,610041)
民族院校的“匯編語言”課程教學改革探究
姜 玥,談文蓉
(西南民族大學 計算機科學與技術學院,四川 成都,610041)
針對民族院校的“匯編語言”課程的教學現狀和存在的問題,提出了“匯編語言”教學改革的必要性,對改革的方向做了探討,提出適用于民族院校教學實際的教學思路和方法,取得了良好的教學效果。
匯編語言;教學改革;教學理念
“匯編語言”課程是高等院校計算機、自動化、電子、通信等專業的一門專業基礎課程,尤其是對計算機專業來說,它是一門體現軟硬件結合的基礎課程[1]。匯編語言是學習計算機技術的重要基礎。不但能使學生更好地理解計算機的組成及工作原理,深刻理解計算機內部運行機制,而且還能為程序設計打下良好的基礎。“匯編語言”課程與許多課程聯系緊密,是“計算機組成原理”、“微機原理”和“嵌入式系統”等課程的先修課如圖1。匯編語言更是在開發嵌入式系統時必不可少的語言。

圖1 匯編語言與相關課程的關系
民族院校學生的學習基礎差別很大。很多漢族學生在進入大學之前,就已經接觸或熟悉過計算機,有些甚至已具備較高的水平。然而,從少數民族地區考入內地高校的少數民族學生,其高考成績大大低于漢族學生的考分。由于環境因素,使得他們學習基礎普遍較差,甚至很多學生的漢語基礎就很低,英語基礎就更差了,而匯編語言的諸多指令助記符是取自英語的[2]。他們在進入大學前幾乎沒有接觸過計算機,連最基本的計算機操作知識都欠缺。這種巨大的知識構成懸殊使得民族學生學習“匯編語言”這門涉及軟硬件知識的課程時,感到非常吃力。同時,老師在教學上的難度也倍增,既要保證基礎好的同學能學到足夠的專業知識,又要保證基礎差的同學能跟上進度。民族院校的“匯編語言”課程教學主要存在以下幾個問題。
1.1 切入難度大
匯編語言和硬件結合緊密,學生學習中感覺其抽象難懂。傳統的匯編教學模式通常是直接介紹存儲器,尋址方式,指令系統。但存儲器,寄存器等基礎硬件知識的理解程度極大地影響到指令系統的學習。學生對計算機內部結構認識不夠,對計算機內部工作過程更是理不清頭緒。相關硬件知識的不清晰導致指令系統的學習混亂。教學內容知識點過多,概念性過于抽象。學習指令系統時,介紹大量的指令,量多而不精,同時,與硬件內容分離脫節。匯編語言課程在前兩章會出現大批新名詞、新概念,如果每一個名詞、概念都要理解透徹是非常困難的,從而得不償失,引起學生的厭倦情緒。
1.2 理論和實驗不同步
在傳統教學模式中,理論教學與實驗教學是孤立進行的。理論教學為實驗教學做鋪墊,實驗教學輔助理論教學,學生通過實驗來“驗證”理論教學的內容。理論教學通常講述完所有的基本理論知識,包括所有指令和偽指令后,再開始學習編寫和調試程序。但實驗的開展滯后,在匯編語言的理論教學后,未能及時通過實驗強化。掌握匯編語言的上機及調試過程卻是一個熟能生巧的過程,需要大量的上機操作。因此,很難在短時間內同步完成實驗,導致實驗效果不佳,學生產生“學無所用,純粹理論”的感覺;反過來影響理論教學的進一步進行。最終,實驗和教學脫節,嚴重地影響了課程的教學。
針對以上問題,具體采取了以下教學改革方法,形成匯編語言課程教學的新模式,促進教學的深入改革。一方面,調整教學內容來適應計算機技術的發展;另一方面,改進教學方式來降低課程的學習難度,提高學生的學習興趣,提高整體教學效果。
2.1 教學理念的改革
以往的匯編語言課程講授重在程序設計,針對匯編語言課程與計算機技術的發展嚴重脫離的事實,理清匯編語言課程與其他課程的關系,充分利用匯編語言最能發揮和利用計算機硬件特性的特征,明確課程的培養目標,將匯編語言課程講授的目標定位于借助匯編語言來體會底層編程和深刻理解機器運行程序的機理。無論計算機硬件如何日新月異地發展,計算機最底層的硬件機制是沒有變化的。
2.2 明確學習目的
寫程序雖然不是匯編語言的強項,但卻是理解計算機硬件工作原理與計算機程序執行的重要途徑之一。通過學習和使用匯編語言,能夠感知、體會、理解機器的邏輯功能,向上可以理解各種軟件系統,向下能夠感知硬件;充分獲取計算機底層的編程經驗,深刻理解計算機程序的運行機制。學習匯編語言就是要緊密接觸底層,保持它的“原汁原味”。教與學是相輔相成的。因此,為了優化學生的知識結構,提高學生的認知水平,教師應強調新形勢下學習匯編的目的,激發學生的學習熱情,發揮其主觀能動性。
匯編語言是學習后續專業課程的工具。通過學習匯編語言,深入地理解計算機硬件,掌握計算機硬件、操作系統和應用程序之間的交互工作。匯編語言操作直接面向硬件,指令操作更直接,通過一條一條直接控制計算機的指令,清晰地看到計算機的工作,理解計算機的內部工作方式,清晰感性地認識計算機軟件和硬件之間的聯系和交互,形成一個軟、硬兼備的編程知識體系。學習匯編語言幫助加深對高級語言的理解。雖然現在有許多的高級語言可以用來編程,但是要真地理解代碼執行的實際過程,從本質上理解機器的行為,需要理解匯編指令的執行。
2.3 教學內容改革
2.3.1 優化教學內容
匯編語言是一種硬件編程語言,是連接軟硬件的橋梁。從不同處理器架構在體系結構、指令系統、應用領域上的不同切入,講明白系統結構和指令系統結構之間的關系,再選擇某種典型芯片的匯編語言為實例,來驅動匯編基礎知識的教學,使學生學會如何學習、思考和分析。以此類推,以后遇到其它的芯片,思維模式是相通的,也就可以舉一反三,觸類旁通。同時幫助學生建立對匯編語言底層屬性的感性認識。并且,引導學生自行通過多種方式查閱相關資料,了解多種主流體系結構及對應的指令系統,幫助學生理解硬件與指令系統之間的關系,增強學生認知結構的可遷移能力。
在以往的教學中,完全按部就班地介紹完指令系統,學生理解困難。授課內容的選擇上,注重教學內容的基礎性和系統性,并結合國內教學的實際特點和學生的實際情況,對授課內容進行了調整和整合。精選深入學習的指令,而并非將指令系統全盤介紹。在教學中,注重軟硬結合,結合相應的硬件知識,動態觀察指令的運行過程,讓學生即時看到指令的具體執行狀況,適時深入到機器內部,觀察到CPU和存儲單元的情況,將抽象的硬件具體化。這樣降低了教學難度,而且指令學了馬上能用,即“即學即用”,學生也不容易混淆,而更加利于學生接受。
同時,為了把抽象、難懂的知識簡單、直觀地表現出來,使課堂教學生動、直觀、形象,通過動畫來模擬和觀察CPU的內部結構,指令的執行過程和匯編語言的運行過程[3]。
2.3.2 教材建設
教材是學生學習的主要信息來源。目前的匯編語言教材主要側重程序設計,而部分民族學生匯編語言的基礎知識的把握都是個大問題。這也是導致教師難教,學生難學的兩難困境的直接原因。于是,后續的計算機組成原理等課程的學習和理解,存在著連鎖反應,即“一門不通,門門不通”。傳統的匯編語言教材里在介紹知識點時,存在目前不用,在以后再用到,這會使得用到的時候,之前學到的知識點存在遺忘,并且知識點之間的連接度不高。盡管傳統的匯編語言教材在知識的系統性方面較好,但學生的基礎原因,特別是民族學生的思維方式,使得采用這類教材對于匯編語言知識的掌握效果并不好。
改革教材,針對學生基礎差,底子薄的現狀,重在抓基礎。目標是通過匯編語言,軟硬兼施地接觸到硬件,將硬件感性化,為后續的硬件課程奠定良好的基礎。將基礎知識講通、做通。
因此,遵循以上思路,合理組織教學內容,編寫相應的教材。在教材的編撰上,打破常規,考慮匯編語言與其他課程之間的關系,考慮匯編語言知識點的連接,重新布局講授內容的順序,遵循講到即用到,也就是講到的知識點,立刻就能上機操作。
2.4 教學方式改革
以往,對于本科院校教學方式借鑒的比較多。但是,針對具體情況,要突破常規教學的格局,選擇適合民族院校學生的教學方式。
2.4.1 理論和實驗融合
通過對教學內容改革,學生可以從整體上了解計算機結構及工作原理,理解清楚指令、操作數的尋址方式以及指令運行的最基本概念和理論。在講述每類最基本的指令時,就可以編寫程序段,上機調試。使學生逐步接觸指令,感性認識計算機的硬件。傳統的匯編語言教學立足于用匯編指令來編寫源程序。進行匯編指令教學時,側重于借助指令,利用變量、標號等透視到計算機內部的表現。學生在整個學習過程的每一步都目標明確,主題清晰,基礎扎實,同步消化和演練教學內容,達到循序漸進的效果,并且還會不斷獲得成就感。
匯編語言教學必須強調與實際機器結合,特別強調動手訓練。將“把實驗環節與理論教學相融合,抓實驗教學促進學科理論知識學習”的教學方法貫穿始終,有效地提高了學生的學習興趣。枯燥的理論教學與繁雜的實驗教學緊密結合,同步進行,采用邊學習邊實踐邊理解的方式,每部分的理論知識都對應相應的實驗,所介紹的示例程序的分析都深入到機器內部,讓學生看到機器具體的操作和運行,使學生有樣板可學,有結果可見。在教學中,盡早實驗,從硬件知識的學習開始,就真實地去看計算機內部,學生有了感性認識,學生理解起來當然就要容易些;學習了尋址方式就可以調試程序,再經過指令系統部分的調試實驗,到完整程序的時候,對調試手段已經非常熟悉了。同時,專門編寫的教材本身也融理論和實驗為一體,將以往理論教材和實驗教材合二為一。學生一書在手,掌握了基本理論知識直接上機,快速掌握技能,學習難度降低。從而,學習效率和效果大大地提高了,為下一步學習微機原理和接口技術課程、單片機原理和應用、嵌入式課程和計算機組成原理等課程打下良好的基礎,培養了計算機系統能力。
2.4.2 實驗平臺
目前,X86架構的處理器占據了超過90%的個人電腦市場,以ARM架構為代表的RISC產品則同樣占據了超過90%的移動計算市場,并且X86架構的指令系統大都可以訪問存儲器,因而,我們選擇X86架構的指令系統來觀察硬件及數據流動。
純粹的8086 PC機已經不存在了。但是現在任何一臺和Intel兼容的計算機,都能以8086的方式進行工作。所以,8086匯編語言是最佳的入門語言。8086 CPU的匯編語言,結構簡潔,方便教與學。從8086匯編語言指令入手,通過相對簡單的8086匯編語言指令深入地切入到機器內部,降低匯編語言入門學習的門檻難度,使觀察硬件的方式盡可能的簡單化;避免繁雜的80X86等匯編語言指令集增加學習的難度,妨礙觀察硬件的興趣。
2.5 考試方式改革
“匯編語言”課程的突出特點是借助匯編語言來熟悉存儲器、CPU的各個寄存器,以及計算機的工作機理。“匯編語言”如果僅僅是通過傳統的閉卷筆試的方式來對學生進行考核,容易造成學生以筆試考試為目標進行學習,忽略了實踐環節,造成學生動手能力差,達不到預期的教學效果。匯編語言是面向機器的語言,在一個半小時的考試時間內也無法考察出實際動手能力。因此,本課程的考試改革思路是:堅持以學生為本,以培養學生的實踐能力為目標,以激發學生的學習興趣為動力,提高學生的學習效果。考試方式改革后,把原來在教室里考試改為在實驗室里考試,可以使用計算機,避免了知識的死記硬背。
“匯編語言”課程具有實踐性強、內容抽象、需要記憶的東西多等特點,這無疑會給教學帶來相當大的困難。但是,在教學改革中打破傳統的匯編語言教學模式,從系統結構入手,明確匯編語言的作用,合理安排教學內容、把握難點、軟硬教學融合,注重理論教學后的即時實驗,化繁為簡,使得理論和實驗相得益彰,相互促進。學生學習的自覺性和興趣大增, 教學改革的成效顯著,給教學工作增添了活力。
教學改革不是一蹴而就的,是一個長期過程,因此加強“匯編語言”課程的教學研究在今后仍然是一項有意義的工作。
[1] 張洪業,宋人杰,周欣欣. “匯編語言”教學改革與實踐[J]. 計算機教育,2009(21):60-61.
[2] 單博煒,陳曉飛,郭蘭英. 包含少數民族學生的計算機專業的教學思路探討[J]. 教育教學論壇,2012(4):249.
[3] 婁國煥,吳亞峰,郝勝男. “匯編語言”雙語教學課程改革與實踐[J]. 中國電力教育,2010(22):108.
(責任編輯 王楠楠)
Teaching Reform and Exploration of Assembly Language in Minority Universities
JIANG Yue, TAN Wen-rong
(School of Computer Science and Technology, Southwest Minzu University, Chengdu Sichuan 610041, China)
Analyzing the current situation and problems in teaching of assembly language in universities for nationalities, this paper points out the necessity of teaching reform of assembly language, discusses the direction of the reform and presents the teaching ideas and methods adapting to the reality of minority universities. The effect is good.
assembly language; teaching reform; teaching idea
2017-03-07;最后
2017-03-29
四川省計算機科學與技術專業綜合改革項目。
姜玥(1978-),女,南湖邵東人,副教授,博士,主要從事數據挖掘研究。
2096-1383(2017)03-0274-04
G642
A