張佳佳, 張廣智, 宗兆云, 張軍華
(中國石油大學(xué)(華東) 地球科學(xué)與技術(shù)學(xué)院, 山東 青島 266580)
基于計(jì)算思維的匯編語言教學(xué)實(shí)驗(yàn)設(shè)計(jì)
張佳佳, 張廣智, 宗兆云, 張軍華
(中國石油大學(xué)(華東) 地球科學(xué)與技術(shù)學(xué)院, 山東 青島 266580)
結(jié)合地球物理學(xué)專業(yè)人才培養(yǎng)目標(biāo)及學(xué)生自身特點(diǎn),探討了匯編語言實(shí)驗(yàn)課程教學(xué)存在的問題,將計(jì)算思維引入到匯編語言實(shí)驗(yàn)教學(xué)中,利用具體實(shí)例闡述了基于計(jì)算思維的匯編語言實(shí)驗(yàn)教學(xué)設(shè)計(jì)方法和具體實(shí)施過程。實(shí)踐結(jié)果表明,通過對學(xué)生計(jì)算思維的訓(xùn)練,有助于學(xué)生掌握應(yīng)用計(jì)算機(jī)技術(shù)解決實(shí)際專業(yè)問題的思路和方法,鍛煉學(xué)生的科學(xué)思維和創(chuàng)新能力。
計(jì)算思維; 匯編語言; 實(shí)驗(yàn)教學(xué); 問題抽象; 關(guān)注點(diǎn)分離
計(jì)算思維是與理論思維、實(shí)驗(yàn)思維互為補(bǔ)充的三大基本科學(xué)思維之一[1],其含義是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動[2]。計(jì)算思維的概念已經(jīng)引起了國內(nèi)外科學(xué)界和教育界的廣泛關(guān)注,對學(xué)生計(jì)算思維能力的培養(yǎng)是目前計(jì)算機(jī)教育研究的重要課題[3- 4]。匯編語言實(shí)驗(yàn)是地球物理學(xué)專業(yè)“計(jì)算機(jī)原理與操作系統(tǒng)”課程的重要實(shí)踐環(huán)節(jié),旨在培養(yǎng)學(xué)生良好的程序設(shè)計(jì)思維和熟練的編程技能。隨著勘探技術(shù)和計(jì)算機(jī)技術(shù)的迅速發(fā)展,地球物理學(xué)科對計(jì)算機(jī)的需求越來越高。通常非計(jì)算機(jī)專業(yè)的匯編語言實(shí)驗(yàn)比較注重編程能力的培養(yǎng),而對計(jì)算思維的培養(yǎng)比較欠缺[5- 6]。因此,在匯編語言實(shí)驗(yàn)教學(xué)過程中引入計(jì)算思維、探索計(jì)算思維在匯編語言實(shí)驗(yàn)中的訓(xùn)練和構(gòu)建、幫助學(xué)生理解和掌握匯編語言編程方法、鍛煉學(xué)生運(yùn)用計(jì)算思維解決實(shí)際問題的能力,為匯編語言實(shí)驗(yàn)課程教學(xué)提供新的思路。
(1) 課程內(nèi)容抽象,編程繁瑣難學(xué)。匯編語言是一種面向機(jī)器的低級程序設(shè)計(jì)語言,需要軟件與硬件相結(jié)合,編程與具體的處理器相聯(lián)系,所以匯編語言具有很強(qiáng)的理論抽象性以及與硬件的相關(guān)性[7]。學(xué)生在編寫匯編程序過程中不僅需要考慮程序的邏輯性和算法的可實(shí)現(xiàn)性,還要考慮內(nèi)存分配、尋址和訪問等硬件相關(guān)內(nèi)容,因此匯編語言比高級語言繁瑣,程序結(jié)構(gòu)也比高級語言冗長。另外匯編語言多采用MASM命令行編譯工具和DEBUG調(diào)試工具,不如高級語言的可視化集成開發(fā)環(huán)境簡單方便[8]。學(xué)生普遍反映課程概念抽象難懂,語法指令繁瑣,編程調(diào)試?yán)щy。
(2) 教學(xué)偏重理論,輕視實(shí)踐環(huán)節(jié)。由于匯編語言理論抽象,所以大多數(shù)授課教師都把教學(xué)重心放在理論教學(xué)上,對實(shí)踐環(huán)節(jié)比較輕視,教學(xué)方法也都是以講授法為主[9]。但是匯編語言知識點(diǎn)比較零散和抽象,單一的講授方法很容易讓學(xué)生覺得枯燥乏味。此外編語言程序設(shè)計(jì)是實(shí)踐性很強(qiáng)的課程,學(xué)生只有在程序設(shè)計(jì)的實(shí)踐中才能理論聯(lián)系實(shí)際,真正掌握知識點(diǎn)[10]。如果只側(cè)重理論教學(xué)而輕視實(shí)踐環(huán)節(jié),就不能很好地激發(fā)學(xué)生的學(xué)習(xí)主動性。
(3) 實(shí)驗(yàn)偏重技能,思維培養(yǎng)欠缺。目前大多數(shù)高校非計(jì)算機(jī)專業(yè)的匯編語言實(shí)驗(yàn)課程在計(jì)算思維能力培養(yǎng)方面是比較欠缺的,通常把教學(xué)重心放在培養(yǎng)學(xué)生的計(jì)算機(jī)應(yīng)用技能和編程能力上,沒有真正培養(yǎng)學(xué)生對計(jì)算機(jī)的認(rèn)知能力和應(yīng)用計(jì)算機(jī)的問題求解能力[11]。教學(xué)中教師也沒有啟發(fā)學(xué)生去思考和領(lǐng)會計(jì)算機(jī)科學(xué)的思想,沒有重視學(xué)生計(jì)算思維的培養(yǎng)[12]。
2.1 總體目標(biāo)
針對目前地球物理學(xué)專業(yè)的匯編語言實(shí)驗(yàn)教學(xué)偏重技能培養(yǎng)的問題,將計(jì)算思維引入到匯編語言實(shí)驗(yàn)教學(xué)中。教學(xué)始終圍繞計(jì)算思維的思想進(jìn)行,充分運(yùn)用抽象、約簡、關(guān)注點(diǎn)分離、自動化和啟發(fā)式等一系列計(jì)算思維的基本概念和方法[13],引導(dǎo)學(xué)生學(xué)習(xí)和領(lǐng)會計(jì)算思維的本質(zhì),深入掌握利用計(jì)算機(jī)技術(shù)求解問題的思路,培養(yǎng)學(xué)生初步的計(jì)算思維能力,同時(shí)也為更好地利用計(jì)算機(jī)解決地球物理學(xué)科領(lǐng)域的實(shí)際應(yīng)用問題奠定基礎(chǔ)。
2.2 設(shè)計(jì)思路
教學(xué)過程中要將匯編語言編程技能的訓(xùn)練和計(jì)算思維能力的培養(yǎng)有機(jī)地結(jié)合起來,將計(jì)算思維融入技能訓(xùn)練中,在學(xué)生掌握編程技能的基礎(chǔ)上,逐步地培養(yǎng)學(xué)生的計(jì)算思維能力。具體過程就是,首先教師要運(yùn)用計(jì)算思維的方法去設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目,要對實(shí)驗(yàn)項(xiàng)目設(shè)置好計(jì)算思維訓(xùn)練點(diǎn),也就是在實(shí)驗(yàn)項(xiàng)目中需要學(xué)生掌握哪些計(jì)算思維方法或者哪些地方需要用到計(jì)算思維方法;其次是在教學(xué)實(shí)施過程中,教師要引導(dǎo)學(xué)生利用計(jì)算思維的方法去分析問題的本質(zhì)、探索解決問題的方法,使得學(xué)生的思維隨著知識的貫通而形成,能力隨著思維的形成而提高。
匯編語言課程知識體系完整,不僅有嚴(yán)格的理論知識基礎(chǔ),而且有豐富的編程實(shí)例,很多知識點(diǎn)都能夠?yàn)橛?jì)算思維提供很好的案例。下面就以一個(gè)具體的實(shí)驗(yàn)項(xiàng)目為例,探討在匯編語言實(shí)驗(yàn)教學(xué)過程中融入計(jì)算思維的思路和方法。
3.1 實(shí)驗(yàn)任務(wù)和目的
實(shí)驗(yàn)任務(wù):要求學(xué)生用匯編語言編程實(shí)現(xiàn)從鍵盤輸入4門功課的成績,計(jì)算4門功課的總成績并顯示在屏幕上,注意要按照程序模塊的方法來編寫。
實(shí)驗(yàn)?zāi)康?要求學(xué)生掌握模塊化程序(子程序)設(shè)計(jì)的方法,掌握模塊之間的參數(shù)傳遞方法和連接方式。
3.2 實(shí)驗(yàn)設(shè)計(jì)和實(shí)施
明確實(shí)驗(yàn)任務(wù)之后,教師應(yīng)該按照計(jì)算思維的方法去設(shè)計(jì)和呈現(xiàn)實(shí)驗(yàn)內(nèi)容,設(shè)置計(jì)算思維訓(xùn)練點(diǎn)。學(xué)生在教師的引導(dǎo)下利用計(jì)算思維去分析實(shí)驗(yàn)任務(wù)、明確實(shí)驗(yàn)?zāi)繕?biāo),通過任務(wù)驅(qū)動的教學(xué)模式將計(jì)算思維的訓(xùn)練滲透在整個(gè)實(shí)驗(yàn)教學(xué)過程中。
3.2.1 問題抽象——構(gòu)建模型
抽象是計(jì)算思維的一個(gè)重要本質(zhì),含義是通過簡化、轉(zhuǎn)換、遞歸、嵌入等方法將一個(gè)復(fù)雜問題轉(zhuǎn)換成許多簡單的子問題并進(jìn)行求解的過程,簡單地講,抽象就是一種對問題進(jìn)行表達(dá)或建模的方法[14]。在教學(xué)過程中可以引導(dǎo)學(xué)生利用抽象的方法對實(shí)驗(yàn)任務(wù)或者問題進(jìn)行建模,首先要求學(xué)生從用戶的角度出發(fā)對任務(wù)或者問題進(jìn)行抽象,建立一個(gè)現(xiàn)實(shí)世界的概念模型;然后引導(dǎo)學(xué)生從程序員的角度進(jìn)行抽象,建立一個(gè)信息世界的邏輯模型;最后要求學(xué)生從計(jì)算機(jī)實(shí)現(xiàn)的角度進(jìn)行抽象,建立一個(gè)機(jī)器世界的物理模型。這樣,通過分層逐步抽象的過程,就可以幫助學(xué)生實(shí)現(xiàn)對任務(wù)或者問題的建模。
本次實(shí)驗(yàn)任務(wù),首先抽象得到的概念模型是4門功課成績的求和;其次抽象得到的邏輯模型是4個(gè)變量的累加運(yùn)算;最后抽象得到的物理模型是變量的輸入、存儲、計(jì)算和輸出。圖1是具體的問題抽象過程。
圖1 實(shí)驗(yàn)任務(wù)的問題抽象過程
3.2.2 關(guān)注點(diǎn)分離——設(shè)計(jì)算法
計(jì)算思維的關(guān)注點(diǎn)分離方法是先將復(fù)雜的問題或任務(wù)進(jìn)行合理的分解,再分別研究問題或任務(wù)的不同側(cè)面(即關(guān)注點(diǎn)),最后綜合各方面的結(jié)果形成整體的解決方案[15]。在教學(xué)過程中,可以引導(dǎo)學(xué)生運(yùn)用計(jì)算思維的關(guān)注點(diǎn)分離方法,將實(shí)驗(yàn)任務(wù)分解成主程序和子程序若干個(gè)子任務(wù),然后再將各個(gè)子任務(wù)進(jìn)一步分解成一系列單獨(dú)實(shí)現(xiàn)某一功能的更小的子任務(wù),這樣分解后的子任務(wù)就能與匯編語言的某個(gè)知識點(diǎn)相對應(yīng)。學(xué)生運(yùn)用理論課堂學(xué)習(xí)的知識就可以實(shí)現(xiàn)。一系列的子任務(wù)完成之后,就可以整合成為一個(gè)完整的任務(wù)。
本次實(shí)驗(yàn)任務(wù)經(jīng)過第一次關(guān)注點(diǎn)分離,可以將程序劃分為1個(gè)主程序模塊和和2個(gè)子程序模塊,其中1個(gè)子程序模塊完成4門功課成績的輸入,另外1個(gè)子程序模塊完成4門功課成績的求和;然后經(jīng)過第二次關(guān)注點(diǎn)分離,主程序模塊又可以細(xì)分為提示字符顯示、調(diào)用子程序模塊和計(jì)算結(jié)果顯示等子任務(wù),子程序模塊又可細(xì)分為數(shù)據(jù)輸入、數(shù)據(jù)運(yùn)算和參數(shù)傳遞等子任務(wù)等。圖2是具體的關(guān)注點(diǎn)分離過程。
圖2 實(shí)驗(yàn)任務(wù)的關(guān)注點(diǎn)分離過程
3.2.3 自動化——編程實(shí)現(xiàn)
自動化是計(jì)算思維的另一個(gè)本質(zhì),由抽象構(gòu)建的模型,以及基于關(guān)注點(diǎn)分離設(shè)計(jì)的算法,最終都要通過計(jì)算機(jī)來實(shí)現(xiàn),自動化是計(jì)算思維抽象結(jié)果的實(shí)現(xiàn)過程,是運(yùn)用計(jì)算機(jī)強(qiáng)大的運(yùn)算能力來實(shí)現(xiàn)問題的求解,按照機(jī)器程序指令逐步執(zhí)行算法。在匯編語言實(shí)驗(yàn)過程中,通過編寫程序指令語句,然后再進(jìn)行編譯、鏈接和執(zhí)行等,就可以實(shí)現(xiàn)計(jì)算機(jī)的自動化功能。
本次實(shí)驗(yàn)任務(wù)中,各個(gè)程序模塊之間的地址分配都是由計(jì)算機(jī)自動完成的,不需要人為干預(yù)和設(shè)定,如圖3所示,這就充分體現(xiàn)了計(jì)算機(jī)的自動化功能。同時(shí)實(shí)驗(yàn)過程中要求學(xué)生利用EDIT編輯好源程序后,再利用MASM匯編以及LINK連接成功后,就會生成可執(zhí)行程序,運(yùn)行可執(zhí)行程序EXE文件就會完成實(shí)驗(yàn)要求。程序功能的實(shí)現(xiàn)也是計(jì)算機(jī)自動化的一個(gè)重要體現(xiàn),圖4為程序的運(yùn)行結(jié)果。
圖3 程序模塊之間的地址分配
圖4 程序的運(yùn)行結(jié)果
3.2.4 啟發(fā)式思考——算法或代碼優(yōu)化
啟發(fā)式思考是對已經(jīng)實(shí)現(xiàn)的任務(wù)或者解決的問題進(jìn)行進(jìn)一步思考,判斷現(xiàn)有結(jié)果是否最優(yōu)或者是否有改進(jìn)之處等[16]。計(jì)算思維的啟發(fā)式思考就是對算法進(jìn)行優(yōu)化,考慮算法的穩(wěn)健性、時(shí)間復(fù)雜度與空間復(fù)雜度等特征,或者對程序代碼進(jìn)行優(yōu)化,考慮代碼的執(zhí)行效率、可讀性或可移植性等。通過引導(dǎo)學(xué)生對這些問題進(jìn)行思考,培養(yǎng)學(xué)生的計(jì)算思維能力。
在本次實(shí)驗(yàn)中可以引導(dǎo)學(xué)生對程序代碼進(jìn)行優(yōu)化,對反復(fù)使用的指令語句可以使用宏指令和重復(fù)匯編偽指令簡化程序代碼的書寫,程序代碼如下:
DISPLY MACRO STR;定義DISPLAY宏指令 LEA DX,STR MOV AH,9 INT 21H ENDM IRPC X,1234;重復(fù)匯編偽指令,每次用字符串1234中的一個(gè)代替X
通過以上的教學(xué)設(shè)計(jì)和實(shí)施,教師精心設(shè)計(jì)實(shí)驗(yàn)任務(wù)和環(huán)節(jié),并指導(dǎo)學(xué)生利用計(jì)算思維方法完成實(shí)驗(yàn)任務(wù),還可以讓學(xué)生進(jìn)行小組討論,闡述自己對知識點(diǎn)的理解以及求解問題的思路,最后教師再分析、歸納和總結(jié),進(jìn)一步深化學(xué)生對計(jì)算思維的理解,提高運(yùn)用計(jì)算機(jī)解決實(shí)際問題的能力。
培養(yǎng)學(xué)生的計(jì)算思維能力已經(jīng)成為計(jì)算機(jī)教學(xué)的核心任務(wù)之一,作為基礎(chǔ)實(shí)踐課程的匯編語言實(shí)驗(yàn)更應(yīng)該將計(jì)算思維的培養(yǎng)作為重要教學(xué)目標(biāo)。針對地球物理學(xué)專業(yè)匯編語言實(shí)驗(yàn)課程存在的問題,將計(jì)算思維的思想融入到教學(xué)過程中,對計(jì)算思維訓(xùn)練點(diǎn)的精心設(shè)計(jì)以及引導(dǎo)學(xué)生運(yùn)用計(jì)算思維的方法去分析和解決問題,有助于培養(yǎng)學(xué)生對計(jì)算機(jī)的認(rèn)知能力和應(yīng)用計(jì)算機(jī)求解問題的能力。例如在基于計(jì)算思維的匯編語言實(shí)驗(yàn)的實(shí)施和支持下,地球物理學(xué)專業(yè)很多學(xué)生在美國數(shù)學(xué)建模大賽、大學(xué)生創(chuàng)新訓(xùn)練計(jì)劃項(xiàng)目以及程序設(shè)計(jì)競賽中取得了非常優(yōu)異的成績。
References)
[1] 戰(zhàn)德臣,聶蘭順.大學(xué)計(jì)算機(jī): 計(jì)算思維導(dǎo)論[M].北京:電子工業(yè)出版社, 2013: 1-5.
[2] Wing J M. Computational Thinking[J].Communications of ACM,2006,49(3):33-35.
[3] 何欽銘,陸漢權(quán),馮博琴.計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計(jì)算思維能力的培養(yǎng):《九校聯(lián)盟(C9)計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》解讀[J].中國大學(xué)教學(xué),2010(9):5-9.
[4] 陳國良,董榮勝.計(jì)算思維與大學(xué)計(jì)算機(jī)基礎(chǔ)教育[J].中國大學(xué)教學(xué), 2011(1): 7-11,32.
[5] 徐靜,王玨,金莉,等.匯編語言程序設(shè)計(jì)教學(xué)改革探討[J].農(nóng)業(yè)網(wǎng)絡(luò)信息, 2013(7): 164-166.
[6] 于慶梅,毛镠,馮國富,等.匯編語言程序設(shè)計(jì)課程微實(shí)驗(yàn)教學(xué)模式探討[J].計(jì)算機(jī)教育,2014(22):111-114.
[7] 阮忠.匯編語言程序設(shè)計(jì)課程改革與探索[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2013(7):167-169.
[8] 刁紅軍,楊季文.匯編語言實(shí)驗(yàn)教學(xué)與實(shí)踐[J].計(jì)算機(jī)教育,2015(15):97-99.
[9] 王小林,侯漠.匯編語言程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)改革探討[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013 (24):202-203.
[10] 安楊,趙波.“匯編語言程序設(shè)計(jì)”課程教學(xué)改革的研究[J].電氣電子教學(xué)學(xué)報(bào),2007,29(6): 7-9.
[11] 劉道文.高校非計(jì)算機(jī)專業(yè)計(jì)算思維能力培養(yǎng)策略研究與實(shí)踐[J].計(jì)算機(jī)教育, 2013(13):39-43.
[12] 劉光蓉.以計(jì)算思維能力培養(yǎng)為導(dǎo)向的C程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)[J].實(shí)驗(yàn)技術(shù)與管理, 2013,30(1):154-156.
[13] 董榮勝,古天龍.計(jì)算思維與計(jì)算機(jī)方法論[J].計(jì)算機(jī)科學(xué),2009(1):1-4,42.
[14] 丁海燕.計(jì)算機(jī)程序設(shè)計(jì)課程中計(jì)算思維的培養(yǎng)[J].實(shí)驗(yàn)技術(shù)與管理,2015,32(12): 16-18.
[15] 何明昕.關(guān)注點(diǎn)分離在計(jì)算思維和軟件工程中的方法論意義[J].計(jì)算機(jī)科學(xué), 2009(4):60-63.
[16] 程春玲,張少嫻,陳蕾,等.基于計(jì)算思維能力培養(yǎng)的數(shù)據(jù)庫課程教學(xué)研究[J].中國電力教育,2012(8):81-82, 87.
Design of assembly language experimental teaching based on computational thinking
Zhang Jiajia, Zhang Guangzhi, Zong Zhaoyun, Zhang Junhua
(School of Geosciences, China University of Petroleum(Huadong)Qingdao 266580, China)
Computational thinking is the thinking method of a wide range of computer science, and the cultivation of student’s computing thinking ability is an important goal of current computer education. Combining the training target and students’ characteristics of geophysics major, this paper firstly discusses the problems in teaching process of assembly language experiment. By introducing computational thinking, this paper illustrates the application and implementation method of assembly language experiment based on specific examples. Practice has proved that training students’ computational thinking can help them to master the thought and method of the application of computer technology to solve practical problems and train their scientific thinking and innovation abilities.
computational thinking; assembly language; experimental teaching; problem abstraction; separation of concerns
10.16791/j.cnki.sjg.2016.12.051
2016-06-29
國家自然科學(xué)
(41404088);山東省本科高校教學(xué)改革研究項(xiàng)目(2015M015);中國石油大學(xué)(華東)人才培養(yǎng)模式改革重大項(xiàng)目(JY-A201401)
張佳佳(1986—),男,湖北隨州,博士,講師,從事計(jì)算機(jī)匯編語言的教學(xué)與研究工作.
E-mail:zhangjj@upc.edu.cn
P313.1;G642.0
: B
: 1002-4956(2016)12-0200-04