侯琳 梁琨 孫迪
【摘 要】本文從目前高校的教育實際入手,分析了“匯編語言程序設計”這門課程存在的問題,并分別從理論教學和實踐教學兩方面出發,提出了幾點切實有效的措施改善課程教學,有利于完善教學體系,提高教學效果。
【關鍵詞】匯編語言;教學效果;教學方法
【基金項目】本文系天津科技大學項目“基于CDIO的教學模式在物聯網專業教學中的應用探索”(編號:2014JXC09)的研究成果。
中圖分類號:G642.0 文獻標識碼:A 文章編號:1671-0568(2016)14-0064-02
匯編語言作為一種面向機器的低級語言,有著運行速度快,占用內存少,能直接訪問計算機硬件和端口,指令簡單以及操作直接等得天獨厚的優勢。“匯編語言程序設計”課程是“操作系統”“計算機組成原理”“微機原理與接口技術”等計算機專業核心課的前修課程,對學生認識計算機硬件組成和工作過程,理解應用程序如何調配計算機硬件協同工作有很大幫助,同時也可以鍛煉學生的編程思維能力。通過該課程的學習,學生既可以掌握軟件系統的原理,也可以理解硬件系統的運作過程,兼備軟、硬件的編程知識體系結構。因此,“匯編語言程序設計”課程是計算機專業知識體系中不可或缺的一部分。
一、目前匯編語言課程存在的問題
1. 學生學習的積極性不高
(1)因為匯編語言是一門面向機器的語言,在使用時必須要結合計算機硬件體系結構,所以要想掌握好這門語言,就要熟練掌握計算機的硬件控制和指令執行過程,學生會覺得這部分內容比較生澀難懂。
(2)匯編語言相比高級語言來說,指令系統較復雜,有較多的語法規則,語法描述不如高級語言直接有效,程序難調試,可讀性較差,這也是造成學生學習熱情較低的主要原因之一。
2. 教學內容落后
目前,大多數高校匯編語言課程的教學內容還是基于8086和8088的16位指令操作系統,使用DOS系統對程序進行編譯和調試,不符合計算機發展的實際需求,與當前市場現狀嚴重脫節。
3. 教學方法一成不變
當前課堂大多還是采用常規的灌輸式教學,只給學生講解語法規則和指令系統,導致學生不能靈活運用匯編語言進行程序設計,因而不具備編寫軟件的能力。因此,在教學方法上要有所創新和改變,努力提高學生的學習興趣。
4. 課程設置的上機實踐時間不夠,缺少綜合性實驗
目前的課程實驗內容主要針對課堂內容設置,每個實驗之間沒有相關性。同時,由于課時有限,教師很少設置綜合練習,這就導致學生不能將所學知識融會貫通,綜合解決問題的能力較差。
上述諸多問題是目前高校匯編語言課程普遍存在的現象,導致學生先入為主地認為匯編語言難學,對課程產生了畏懼心理。另外,由于受自身知識面的限制,認為學完匯編語言對于將來就業沒有太大用處,不如多學習高級語言更加實際。因此,針對教學現狀,糾正學生對該課程的認識,改善教學情況,提高教學效果已經刻不容緩。
二、匯編語言課程的教學改革
針對上述匯編語言課程的教學現狀,為了提高課程的教學質量,可以做如下改進:
1. 提高學生的學習興趣
(1)重視第一堂課的作用。在學習課程內容之前,先跟學生講清楚該課程的學習目標和主要學習內容,然后通過實例介紹匯編語言在當前計算機應用中的角色地位。例如,如果要使用殺毒軟件進行病毒掃描或者啟動UNIX操作系統,都必須要使用匯編語言;如果將來要深入從事計算機工作,也必須要熟練掌握匯編語言。同時,匯編語言與高級語言相比,具有運行速度快、與機器硬件貼合度高的優點。讓學生明白匯編語言并沒有過時,在當前的軟件開發市場中仍然占據重要的一席之地。
(2)在教學過程中,多向學生展示匯編語言的具體實際應用,也可以向學生展現往屆學生做過的大作業或者網上用匯編語言編寫的一些小程序,告訴學生經過一個學期的學習,他們也可以做出這樣的程序。通過這些方法,可以有效地調動學生的學習積極性,讓他們對匯編語言有一個感性認識,克服畏懼心理,最大限度地激發學生對這門課程的學習興趣。
2. 更新教學內容
將以往以8086和8088為基礎的16位指令操作系統更新為以教授Win32為主要內容的32位指令操作系統。通過教學內容的改變,以適應當前計算機的迅猛發展。
Win32匯編語言是在Windows操作系統環境下運行的一種編程語言,以處理器的工作方式和結構組成為基礎。16位指令系統的程序需要在DOS環境下進行編譯鏈接,而Win32匯編語言可以像高級語言一樣使用Windows提供的API函數庫,實現圖形界面化編程,通過Windows操作系統控制程序運行細節。
Win32匯編語言的教學內容主要有:80386體系的微處理器內容部結構和寄存器組成;80386微處理器的尋址方式和指令系統;80386在保護模式下的管理方法以及Windows操作系統;Masm下的Win32匯編程序結構,掌握程序的調試方法;使用Win32匯編語言開發應用程序。
3. 使用多種教學手段,提高學生的學習興趣
(1)啟發式教學。在課堂上要充分體現“學生為主體,教師為主導”,讓學生有學習主觀能動性,尤其匯編語言是一門指令多、語法復雜的課程,因此在講解知識點時,啟發學生主動進行思考、理解所學知識就顯得尤為重要了。例如,在講解“物理地址尋址”一節時,可以先跟學生舉兩個生活中常見例子,然后對學生進行提問,讓學生將講解的例子套用到知識點中,這就將被動吸收變為主動獲取。同時要給學生適當的鼓勵,對主動回答問題的學生進行表揚,讓學生掌握學習的主動權。
(2)靈活運用多媒體。多媒體可以通過聲音、文本、圖像、動畫等多種方式將授課內容靈活生動地表現出來,增添了課堂趣味性,也可以活躍學生的思維和課堂氛圍。比如,在講“堆?!边@部分內容時,以一個箱子放3本書為例,用動畫的形式將3本書先放入箱子中,然后3本書再依次被取出,通過這種形式,讓學生能夠直觀了解堆?!跋冗M后出”的存儲方式,提高了課堂教學效果,這也是傳統黑板教學不能比擬的。
(3)類比式教學。匯編語言生澀難懂,很多學生都不能完全理解掌握所學內容,因此,可以用學生之前學習熟知的C語言進行類比教學。通過將C語言與匯編語言的編程方式進行對比,讓學生從C語言的角度去理解匯編語言,這樣既可以讓學生更容易接收和理解匯編語言,降低學生學習匯編語言的難度,同時也能讓學生更深入地掌握高級語言程序設計方法,做到課程之間的相輔相成。
(4)以程序設計為核心的探究式教學。在講授匯編語言時,可以事先給出一個程序框架,通過這個程序框架,讓學生理解一個程序的整體結構概念,在后續的學習中不斷補充框架內容,通過反復大量的練習,達到掌握匯編語言程序的目的。這種教學方式區別于以往按部就班地講解指令的教學方法,而是將匯編語言的大量指令融入程序設計中,通過程序設計學習語言知識,讓學生帶著任務去學習。教師作為引導者,需要根據教學內容和教學目標精心安排程序設計內容,學生可以自行解決教師提出的問題或者組成小組討論,探究的方向始終由教師掌握。在這種教學模式中,教師的主要任務是啟發引導,學生的主要任務是通過自己的思考和研究,掌握新知識。這樣有利于提高學生的解決問題能力、獨立思考能力以及團隊合作能力。
4. 改變課程考核方式,注重學生綜合能力的培養
改變以最后一次考試作為學生最終成績的考核模式,將學生平時學習情況和能力測評也納入成績的考核體系中。可以將學生的評分標準分為3部分:平時表現占30%,綜合作業占40%,期末考試占30%。在教學過程中,多讓學生以小組合作的形式,通過網上或者圖書館查找資料的方式完成作業。學期結束,讓學生用自己所學內容編寫一個綜合匯編語言程序,把所學知識融會貫通。學生最終的課程評價是學習成績和綜合能力的評定,這樣可以考查學生的綜合能力素養。
三、匯編語言課程的實踐教學改革
1. 與高級語言結合起來進行混合編程
利用學生對高級語言較為熟悉的特點,采用將匯編語言和高級語言混合編程的方法,做到兩種語言互相取長補短。現在有一些程序開發軟件,既可以使用匯編語言,也可使用諸如C/C++對程序進行編程,當然一些運算量很大的關鍵代碼,最好還是采用匯編語言。通過這種方式,可以讓學生深刻理解兩種語言的不同之處和各自的特點,也能讓學生更好地從高級語言的角度理解匯編語言,同時通過匯編語言更好地掌握高級語言,做到課程之間的融會貫通。
2. 采用集成開發調試工具
可以利用現有的軟件資源,在MASM6.0的基礎上,使用Elipse 搭建可視化集成開發系統,該調試工具的特點是調試簡單,學生可以在掌握匯編語言調試步驟的基礎上,在熟悉的Windows界面完成所有操作。這樣就解決了以往使用學生不熟悉的DOS系統對匯編程序進行編譯的問題,進一步提高了學生學習匯編語言的積極性。
3. 開發綜合實驗實訓項目
改變以往只是針對單獨知識點設計實驗內容的方法,聯合多個知識點設計綜合性實驗,讓學生做到知識的融會貫通??稍趯W期末設置課程實訓環節,結合學生學到的知識,通過一個完整的實訓項目貫穿起來。設計實訓項目時應注重與實際應用相結合,如屏幕顯示、端口讀寫等。做到少而精,讓學生通過綜合實訓項目梳理所學知識,提高對匯編語言的認識。
綜上所述,針對目前在匯編語言教學中存在的種種問題,從課堂教學和實驗實踐對匯編語言課程進行了改革,充分發揮教師的主導作用和學生的主觀能動性,采取多種教學方法,更新教學內容,將理論教學與實踐教學相結合,教學與考核緊密結合,構建一個完整豐富的課程體系,從而提高教學效果。
參考文獻:
[1] 武偉,汪璇,劉曉燕.“匯編語言程序設計”課程教學改革探討[J].西南師范大學學報(自然科學版),2009,34(2):201-204.
[2] 馮建文,包健,嚴義.“匯編語言程序設計”課程的教學改革與探討[J].吉林大學學報(信息科學版),2005,(S2):22-24.
(編輯:秦俊嫄)