王家亮
摘要:匯編語言雖為低級語言,但其是最接近計算機硬件的語言,因此學習匯編可以更加深入的了解計算機硬件的本質,所以匯編語言是計算機硬件類的核心。工程教育專業認證已在許多國家得到了實施,其對工程教育的發展起到了積極的促進作用,工程教育專業認證已成為各大高校諸多專業首要完成的任務。本文以專業認證需求為前提,從積極發揮主動性預習、課后互助討論的學習氛圍、科研成果轉化為教學、開拓學習視野、重在了解知識點內涵、教學內容精心設計等角度對匯編語言程序設計課程的教學方法進行研究。
關鍵詞:匯編語言;專業認證;教學方法
中圖分類號:TP313 文獻標識碼:A
文章編號:1009-3044(2019)12-0144-03
Teaching Method Research on Assemble Language Programming Design Oriented by Professional Certification
WANG Jia-liang
(College of Computer Science and Technology, Civil Aviation University of China, Tianjin 300300, China)
Abstract: Assemble language is low level language, which is close to computer hardware, so studying assemble language can learn the nature of computer hardware to the largest extent, thus the assemble language is the core course of computer hardware. Professional certification of engineering education has been executed in many countries, which plays positive role on the development of engineering education, so the professional certification of engineering education has become the primary task for many majors in colleges and universities. This paper considers the the premise of requirements about professional certification, and aims to research the learning method of assemble language programming design course, in terms of giving play to active preview, study atmosphere of mutual help and discuss after class, converting the research to the teaching resources, widen study sight, learning the nature of knowledge point, well-designed teaching contents and so on.
Key words: Assembly Language; Professional Certification; Educational reform;
隨著嵌入式系統和物聯網的發展,匯編語言在行業中的地位不斷提升。2017年1月,在TIOBE排行榜上匯編語言再次進入前十。它是理解計算機系統核心知識的橋梁,在人才培養中亦起著關鍵作用。在當今“工業4.0”和“中國制造2025”大背景下,它可以為國家智能化制造發展戰略提供技術上的重要支撐[1]。
《匯編語言程序設計》課程,作為計算機科學與技術學院計算機硬件課程組的一門核心課程,從知識體系結構來說,其作為《計算機組成原理》、《接口技術與應用》及《計算機病毒》、《物聯網感知技術》、《物聯網工程設計與實踐》等課程的前序課程,可見其重要的地位。在一些高校,《匯編語言程序設計》不僅是計算機專業的必修課,同時也是自動化專業的必修課[2,3]。
工程教育專業認證的核心就是要確認工科專業畢業生達到行業認可的既定質量標準要求,是一種以培養目標和畢業出口要求為導向的合格性評價[4]。認證不是評優、評先進,而是看所有畢業學生是否均達到要求,成績最后一名的學生是否達到畢業要求,因此課程教學必須緊扣這一思想,做出實質性的改革。
1 滿足專業認證的教學內容設計
計算機發展日新月異,處理器更是,課程以80x86處理器平臺為例進行講解。從中央處理器、寄存器組、存儲器、外部設備等角度,結合指令系統,及指令的尋址方式等,深入解析順序程序、分支程序、循環程序、中斷調用、子程序等的實現機理。對于學生以后了解AVR,ARM等高級處理器平臺的匯編語言會很快熟悉[5,6]。既然專業認證的核心是使所有學生都滿足要求,因此課程的教學內容設計時,必須做到清晰、層次感強,如圖1所示。
在課程的教學中,本人同時作為物聯網實驗室擴建的項目負責人,而實驗室的擴建過程對《匯編語言程序設計》課程有很好的促進作用。物聯網所涉及的嵌入式技術、WIFI和3G移動通信技術、傳感技術、短距離無線通信技術、RFID技術、ZigBee 無線傳感網絡、Android開發技術、藍牙通訊、遠程GPRS 無線通信等技術大多需要對底層硬件進行編程控制,因此可以說《匯編語言程序設計》是保證物聯網教學質量、培養高素質人才的關鍵基礎。本人申請獲批的2017年校級教育教學改革與研究項目--“物聯網工程設計與實踐”案例設計與開發,其中涉及的硬件底層設計與實現,對匯編語言的教學有很好的促進作用。而且,為了適應社會經濟快速發展對人才的需求,我們須不斷深化教學內容改革,讓教學內容更接近社會應用需求。
如在講解如何利用段地址和偏移地址來計算邏輯地址時,為便于理解,可以將示例設計成學校的建筑位置距離計算,將距離為46666H英寸的地址(五位數據)表示為4000H和6666H(兩個四位數據),這樣就可以較深刻的理解20位的邏輯地址是如何通過兩個16位的段地址和偏移地址來表示。這樣,在講解邏輯地址的計算時,就比較容易理解12345H的邏輯地址是如何表示成1234H的段地址加上0005H的偏移地址。
2 以專業認證為導向的教學方法探索
2.1發揮主動性預習的功效
課程講授順序程序、分支程序、循環程序、子程序等時,將一些程序實現(大約20行以上的程序)作為課后作業讓學生了解,并在下節課中預留幾分鐘讓某同學進行講解。這種方式雖然不能覆蓋絕大多數的同學,但是在同學現場講解之后可以提問幾名學生進行討論,這種方式不僅在一定程度上激發學生的學習興趣,大家也可以在互相的講和聽中發現彼此的問題、提升自己。
2.2課后互助討論的學習氛圍
在每一門課的講授中,我總習慣將這門課的學生建立個QQ群,一方面便于我在里面發布通知,更主要的是同學們有了一個課程的交流平臺。在這里,每一個學生都可以圍繞自己遇到的問題隨時隨地的提問,更主要的是還可以很方便的發布問題截圖及上傳有問題的程序代碼,這樣我和所有的同學都可以隨時的進行解答,并進行討論交流,這種方式可以充分發揮自由討論的優勢,將學習中遇到的問題第一時間進行解決,體現團結互助的同時,也便于老師了解到經常幫助別人的同學。
2.3教學與科研的有機結合,提升吸引力
教學與科研盡管作為高校教師的兩大任務,但是談及科研對教學的影響和作用時,其不再是獨立的兩個任務,而是科研可以為教學提升檔次、增加效果、帶來更多的潤色與生動感,為課堂教學帶來吸引力。其實,博士的研究課題,主持及參與的科研項目,都可以挖掘出很多本門課的知識點,這樣在課程的講授時,就不再是單單對知識點的講授,而是多了些其在項目中的具體實現,對于學生來說,不僅可以學到課程知識點,同時可以很生動地了解到其在工程項目中的哪些場合有應用,這樣會更好地進行學以致用。
2.4每堂課都有新鮮事兒
在平時的課堂教學中,在適當的時候,為學生們帶來一些新鮮事,不僅可以吸引更多的學生的注意力,還可以開拓學生的視野。平時的課程中,我也經常準備一些新鮮事,比如我讀博期間的兩年公派留學美國普渡大學的科研經歷,以及到香港理工大學一個月的科研經歷,在分享自己經歷的同時,可讓學生了解外面的世界,同時也為學生自己的未來規劃多了一份選擇,2018年我指導的一名本科畢設學生,成功申請到了香港城市大學繼續攻讀碩士學位。
2.5知其所以然
匯編語言程序設計,同其他語言一樣,實驗非常重要。上機實驗使用的DEBUG軟件,對于學生學習80x86處理器平臺的匯編語言程序設計來說非常便利,其可以很方便地對程序進行masm,link,debug以及執行等操作,不僅可以看到每條指令對應的機器碼,同時可以看到指令對數據總線、地址總線的訪問,以及對寄存器,存儲器,IO端口的訪問操作,這一點是C++語言,JAVA語言等其他高級語言所不能相比的。通過DEBUG軟件,學生們知其然的同時,可以更好地知其所以然。
2.6精心設計
例如在講解時內存數據的取數過程時,比如對于直接尋址這個尋址方式知識點,精心的設計動畫效果,會很大程度增強教學效果,比如對于例子:假定DS為2000H,偏移地址為0006H。執行MOV AX,[0006H]指令時,分析其執行過程。這個示例,設計成動畫效果,可非常直觀地觀察到根據段地址和偏移地址形成物理地址的過程、運算器的執行分析、數據在地址總線上的傳送過程、內存地址單元的數據讀取過程,數據在數據總線上的傳送過程,寄存器的存取過程等。
3 評價體系
3.1 課程成績分布評價
課程本身《匯編語言程序設計》課程的考核方式為閉卷筆試,試卷覆蓋知識面廣,題型靈活,要求同學對匯編語言各個知識點的全面掌握。以下本人講授的《匯編語言程序設計》2016-2017年第二學期和2015-2016年第二學期的成績對比分析:
從試卷得分的統計結果來看。與2015-2016學年度相比,2016-2017學年度的平均分提升了5.31分。分數段為90-100的學生數所占百分比,由6.82%增加到了12.40%,分數段為80-89的學生數所占百分比,由15.91%增加到了22.48%,可見,成績為優秀和良好的學生比重有了較大的提升。
3.2 教評成績
本人于2015-2016第二學期、2016-2017第二學期講授《匯編語言程序設計》課程。在2016年和2017年計算機科學與技術學院的教評成績排名中,本人都位于第一檔(前10%)。可見,課程教學方法的改革取得了一定的成效,得到了學生們較大的認可。
3.3 調查問卷、座談會的形式
為了及時有效地得到學生們對所講課程的評價及反饋,可采用調查問卷、座談會的形式了解學生對課程的反饋,可具體到某一頁PPT,有針對地在下次課的時候進行有針對性的講解以鞏固。
4 結束語
本文從積極發揮主動性預習、課后互助討論的學習氛圍、科研成果轉化為教學、開拓學習視野、重在了解知識點內涵、教學內容精心設計等角度對匯編語言程序設計課程的教學方法進行研究,重在體現工程教育專業認證的以學生為中心、成果導向、反向設計、正向實施、周期性評價、持續改進、實質等效的理念。最后,對近兩年的學生成績進行對比分析,以驗證匯編語言程序設計課程教學方法研究的效果。
參考文獻:
[1] https://www.icourse163.org/course/UESTC-1002047009
[2] 肖剛強, 張曉艷, 王艷娟. 匯編語言程序設計[M], 清華大學出版社, 2011.
[3] 陳璨, 李林, 任旭虎. 匯編語言在大學生能力培養中的研究與探索[J]. 實驗科學與技術, 2017, 15(6):172-174.
[4] 劉向榮; 吳曉潔. 專業認證導向下我國高校工科專業培養目標設定研究——以我國高水平大學為例[J]. 河北工業大學學報(社會科學版), 2018, 10(01):84-89.
[5] 熊書明, 王良民, 曾宇,等. 基于程序設計的“匯編語言”課程教學方法[J]. 電氣電子教學學報, 2013, 35(6):66-68.
[6] 解志堅, 張引瓊, 陳剛. 匯編語言程序設計教學方法的探討[J]. 電腦知識與技術, 2015, 11(32):89-91.
【通聯編輯:王力】