王洋



摘要:冒泡排序是高?!禖語言程序設(shè)計(jì)》教學(xué)中的重要難點(diǎn),而傳統(tǒng)的教學(xué)方法并不理想。學(xué)生易將課堂PPT演示的內(nèi)容與程序語言代碼割裂開來,無法建立其直接的聯(lián)系。探討使用一種基于調(diào)試工具的方法,觀察程序中變量值動(dòng)態(tài)變化,從而建立算法自然語言描述與代碼描述的直接聯(lián)系,使學(xué)生能夠更好地掌握冒泡排序算法的原理,培養(yǎng)學(xué)生的獨(dú)立思考能力和發(fā)散思維能力,取得了良好的教學(xué)效果。
關(guān)鍵詞:C語言程序設(shè)計(jì);冒泡排序;教學(xué)方法
中圖分類號(hào):G642.0 ? ? 文獻(xiàn)標(biāo)志碼:A ? ? 文章編號(hào):1674-9324(2016)41-0257-02
一、引言
在《C語言程序設(shè)計(jì)》[1,2]教學(xué)過程中,常以冒泡排序來講解排序的原理。冒泡排序原理簡單,但過程相對(duì)繁瑣。在傳統(tǒng)教學(xué)中,通常是教師先把冒泡排序思想講述一遍,然后列出程序,解釋程序執(zhí)行過程,這種方式很難激發(fā)學(xué)生的學(xué)習(xí)興趣。同時(shí),由于學(xué)生沒有很好地掌握冒泡排序的原理,自己很難獨(dú)立編寫出冒泡排序的程序。因此,合理設(shè)計(jì)教學(xué)過程,讓學(xué)生掌握冒泡排序的思想和編程方法,激發(fā)學(xué)生對(duì)編程課程的興趣是一個(gè)關(guān)鍵問題。
在計(jì)算機(jī)語言程序設(shè)計(jì)教學(xué)中根據(jù)需要正確運(yùn)用直觀性教學(xué)方法,將有助于學(xué)生去消化、理解抽象的算法和程序執(zhí)行流程,進(jìn)一步提高學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)積極性。程序設(shè)計(jì)的直觀性教學(xué)可以從基于動(dòng)態(tài)可視化的方法來實(shí)現(xiàn)。
二、基于動(dòng)態(tài)可視化的教學(xué)方法
(一)使用教學(xué)課件幫助學(xué)生理解程序的執(zhí)行過程
計(jì)算機(jī)程序的運(yùn)行是在計(jì)算機(jī)內(nèi)部進(jìn)行的,是看不到、摸不著的。各種控制語句的執(zhí)行流程、函數(shù)與子程序的調(diào)用和返回過程及參數(shù)間的傳遞,學(xué)生是無法直接感知的。即使實(shí)驗(yàn)課調(diào)試程序的過程中,學(xué)生也只能看到中間或最終的結(jié)果,是對(duì)程序正確性的驗(yàn)證,看不到程序的執(zhí)行過程。多媒體教學(xué)課件能夠模擬不可能或很難看到的現(xiàn)象,能使抽象的理論形象化。在程序設(shè)計(jì)教學(xué)中借助于課件,可以模擬程序的執(zhí)行過程和各參數(shù)的變化,讓學(xué)生理解控制語句的執(zhí)行流程以及函數(shù)、子程序調(diào)用過程中各參數(shù)的變化情況,一些算法的基本原理。因此,在教學(xué)中設(shè)計(jì)必要的課件,課堂教學(xué)效果遠(yuǎn)遠(yuǎn)超過詳細(xì)的語言講解。
針對(duì)冒泡排序算法的講解,我們?cè)赑PT中內(nèi)嵌了動(dòng)畫,動(dòng)態(tài)演示對(duì)數(shù)字冒泡排序的過程。在這一階段,不涉及程序代碼的編寫和講解,著重講解原理。具體演示內(nèi)容如圖所示:
(二)使用調(diào)試工具幫助學(xué)生理解程序的執(zhí)行過程
借助調(diào)試工具,我們可以深入地觀察變量的存儲(chǔ)、程序的流程控制、數(shù)組及函數(shù)的調(diào)用。并且當(dāng)學(xué)生掌握常用的調(diào)試技術(shù)后,學(xué)生可以自己獨(dú)立解決編程問題,也增強(qiáng)了編寫程序的信心,提高了編寫程序的興趣。并且,老師也不需要在實(shí)驗(yàn)課上疲于奔命地為學(xué)生排查錯(cuò)誤了。因此掌握程序調(diào)試技術(shù)對(duì)教學(xué)雙方都能起到事半功倍的效果。對(duì)于冒泡排序程序段:
總之,直觀性教學(xué)方法是激發(fā)學(xué)生學(xué)習(xí)興趣的有效方法,是促進(jìn)學(xué)生思維發(fā)展,幫助學(xué)生內(nèi)化知識(shí)的重要途徑。在計(jì)算機(jī)程序教學(xué)中正確使用直觀性教學(xué)方法,可以進(jìn)一步提高課堂教學(xué)效益,幫助學(xué)生掌握難以理解的抽象知識(shí),使抽象的知識(shí)形象化。對(duì)于冒泡排序程序代碼段如圖2所示:
我們可以使用調(diào)試工具逐行運(yùn)行。通過觀察Watch中變量i,j,a[i],a[j],a[j+1],t的變化,可以動(dòng)態(tài)地觀察排序算法的執(zhí)行過程。如圖3所示,對(duì)應(yīng)PPT中的冒泡排序算法的第二遍,42與16交換位置的過程。這樣就可以將PPT中的算法自然語言描述如第二遍與C語言程序代碼中的外層循環(huán)建立起直接的聯(lián)系。教師可以通過PPT與程序代碼的互動(dòng),逐步地將冒泡排序算法程序每一步的操作,形象直觀地演示給學(xué)生。
三、結(jié)語
本文以冒泡排序設(shè)計(jì)教學(xué)為例,利用PPT與程序調(diào)試技術(shù)為教學(xué)手段,引入了一種動(dòng)態(tài)可視化的教學(xué)方法,著重建立了冒泡排序算法自然語言與程序設(shè)計(jì)語言的聯(lián)系,形象生動(dòng)地向?qū)W生展示了冒泡排序的基本思想和變換過程。因此,這種合理的教學(xué)設(shè)計(jì)有效地提高了教學(xué)效果,對(duì)程序設(shè)計(jì)類課程的教學(xué)有一定的借鑒意義。
參考文獻(xiàn):
[1]張玉春,孫大元.C語言程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2013.
[2]孫大元,張玉春.C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題解析[M].北京:清華大學(xué)出版社,2013.
An Inquiry Teaching Method Based on Dynamic Visualization Analysis for Bubble Sorting
WANG Yang
(Jilin University Public Computer Teaching and Research Center,Changchun,Jilin 130012,China)
Abstract:Bubble sorting is important issue of the "C programming language" teaching in universities,but the traditional teaching method is not ideal. Student often separate the connection between PPT demo content and program code,and can not establish their direct contact. This paper explore a debugging based technique,observe dynamic change of the variable values,to establish the direct link between natural language description of the algorithm and code description,to make students better grasp the principle of bubble sort algorithm,develop students' independent thinking ability and divergent thinking ability,and good teaching effect has been obtained.
Key words:C programming language;bubble sorting;teaching method