王洋



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