王洋
(吉林大學(xué) 公共計(jì)算機(jī)教學(xué)與研究中心,吉林 長春 130012)
摘要:選擇排序是高校《C語言程序設(shè)計(jì)》教學(xué)中的重點(diǎn),而傳統(tǒng)的教學(xué)方法在教學(xué)實(shí)踐中效果并不理想。學(xué)生易將排序算法的理論與程序代碼實(shí)踐割裂開來,無法建立其直接的聯(lián)系。探討使用一種基于Flash動畫與調(diào)試工具相結(jié)合的方法,建立算法自然語言描述與代碼描述的直接聯(lián)系,使學(xué)生能夠更好地掌握選擇排序算法的原理,培養(yǎng)學(xué)生的獨(dú)立思考能力和發(fā)散思維能力,取得了良好的教學(xué)效果。
關(guān)鍵詞:C語言程序設(shè)計(jì);選擇排序;教學(xué)方法
中圖分類號:G642.4 文獻(xiàn)標(biāo)志碼:A 文章編號:1674-9324(2017)26-0177-02
一、引言
選擇排序算法是程序設(shè)計(jì)語言中的一個很重要的內(nèi)容,算法復(fù)雜度適中,適合以此為例向?qū)W生講解算法設(shè)計(jì)涉及到的各種概念。在高校的《C語言程序設(shè)計(jì)》[1,2]教學(xué)過程中,以選擇排序法為例講解排序的原理。然而,在傳統(tǒng)的教學(xué)方法中,教師通常僅僅把選擇排序法的思想講述一遍,然后列出相關(guān)的程序代碼來解釋如何實(shí)現(xiàn)選擇排序。在教學(xué)實(shí)踐中發(fā)現(xiàn),使用此種方法會使學(xué)生覺得C語言晦澀難懂,從而產(chǎn)生畏學(xué)情緒,難以讓學(xué)生掌握到選擇排序的思想和精髓,達(dá)不到預(yù)期的教學(xué)效果。因此,要設(shè)計(jì)出一個合理、高效的教學(xué)過程,調(diào)動學(xué)生學(xué)習(xí)的積極性,拓展學(xué)生的自主思維能力,使學(xué)生掌握選擇排序算法的思想及其編程方法,并運(yùn)用到解決實(shí)際問題中。
二、基于Flash動畫與調(diào)試技術(shù)相對照的教學(xué)方法
1.使用Flash動畫幫助學(xué)生理解程序的執(zhí)行過程。根據(jù)Flash動畫直觀、形象,可以展示動態(tài)變化的特征,教師可以將教學(xué)中學(xué)生難以理解掌握的重點(diǎn)難點(diǎn)做成Flash動畫。利用Flash動畫能夠模擬不可能或很難看到的現(xiàn)象,能使抽象的理論形象化。在程序設(shè)計(jì)教學(xué)中借助于Flash動畫,可以模擬程序的執(zhí)行過程和各參數(shù)的變化,有利于激發(fā)學(xué)生學(xué)習(xí)C語言的興趣,而且Flash生成的swf文件可以直接嵌入PPT等常用多媒體課件中,以此展現(xiàn)控制語句的執(zhí)行流程以及函數(shù)、子程序調(diào)用過程中各參數(shù)的變化情況。針對選擇排序算法的講解,我們制作了Flash動畫,動態(tài)演示對數(shù)字選擇排序的過程。在這一階段,不涉及程序代碼的編寫和講解,著重講解原理。具體演示內(nèi)容如圖所示:
2.使用調(diào)試工具與Flash對照幫助學(xué)生理解程序的執(zhí)行過程。由于C語言程序設(shè)計(jì)中有些內(nèi)容比較抽象、比較底層、不易理解,在使用調(diào)試工具后,可以將底層的內(nèi)容以直觀的方式展現(xiàn)給學(xué)生,對學(xué)生理解課程內(nèi)容有很大幫助。我們將選擇排序算法關(guān)鍵代碼段的調(diào)試窗口與Flash動畫中的關(guān)鍵幀的內(nèi)容對比,向?qū)W生講解調(diào)試中觀察的變量與Flash動畫中演示的變量之間的對應(yīng)關(guān)系。對于選擇排序程序關(guān)鍵代碼段如圖2所示:
我們可以使用調(diào)試工具逐行運(yùn)行。通過觀察Watch中變量i,j,k,R[k],R[j],t的變化,可以動態(tài)地觀察選擇排序算法的執(zhí)行過程,并與Flash動畫中的關(guān)鍵幀內(nèi)容對照。如圖3所示,對應(yīng)Flash中的選擇排序算法的第三遍,5與6借助變量t交換位置的過程。這樣就可以將Flash中的算法自然語言描述與C語言程序代碼建立起直接的聯(lián)系。教師可以通過Flash動畫與程序代碼的互動,逐步地將選擇排序算法程序每一步操作,形象直觀的演示給學(xué)生。
三、結(jié)語
本文以選擇排序設(shè)計(jì)教學(xué)為例,利用Flash動畫與程序調(diào)試技術(shù)相對照的教學(xué)手段,引入了一種動態(tài)可視化的教學(xué)方法,著重向?qū)W生講解了選擇排序算法程序執(zhí)行過程中內(nèi)存的動態(tài)變化,形象生動地向?qū)W生展示了選擇排序算法的基本思想和變換過程。因此,這種合理的教學(xué)設(shè)計(jì)有效地提高了教學(xué)效果,對程序設(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.