胡珊
摘要:針對(duì)當(dāng)前高校中程序設(shè)計(jì)教學(xué)方法陳舊枯燥,部分學(xué)生在學(xué)習(xí)程序設(shè)計(jì)課程中存在困難的現(xiàn)狀,提出利用程序可視化的方法來(lái)解決學(xué)生對(duì)程序設(shè)計(jì)課程難以理解的難點(diǎn)。通過(guò)程序可視化方法可以避免煩冗的程序設(shè)計(jì)語(yǔ)言的語(yǔ)法限制,讓學(xué)生能生動(dòng)直觀地看到和理解程序設(shè)計(jì)算法的執(zhí)行過(guò)程和算法的核心思想。
關(guān)鍵詞:課程教學(xué);程序可視化;流程圖;RAPTOR ;VisuAlgo
中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)07-0104-02
1引言
當(dāng)今時(shí)代是信息時(shí)代,在信息時(shí)代中計(jì)算機(jī)承擔(dān)著構(gòu)建信息社會(huì)的重要角色。要讓計(jì)算機(jī)能真正地為人們服務(wù)就必須掌握控制計(jì)算機(jī)的編程語(yǔ)言。在當(dāng)前的高等教育中,計(jì)算機(jī)程序設(shè)計(jì)是每一個(gè)工科大學(xué)生必修的基礎(chǔ)課程。在以往的計(jì)算機(jī)程序設(shè)計(jì)教學(xué)中,由于每個(gè)學(xué)生基礎(chǔ)差異和興趣愛(ài)好的不同,計(jì)算機(jī)程序設(shè)計(jì)教學(xué)效果不是很理想。部分學(xué)生認(rèn)為計(jì)算機(jī)程序設(shè)計(jì)課程講授的內(nèi)容太抽象了,難以理解,把計(jì)算機(jī)程序設(shè)計(jì)列為最難學(xué)的課程。如何讓學(xué)生能掌握好一門計(jì)算機(jī)編程語(yǔ)言,如何開(kāi)展以計(jì)算機(jī)程序設(shè)計(jì)思維為主導(dǎo)的大學(xué)計(jì)算機(jī)程序設(shè)計(jì)教學(xué)改革成為擺在高校計(jì)算機(jī)教師面前的難題。
2問(wèn)題分析
現(xiàn)在的學(xué)生在學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)課程中主要面臨著兩個(gè)方面的問(wèn)題:1)在計(jì)算機(jī)程序設(shè)計(jì)課程的初期,每個(gè)學(xué)生必須記住計(jì)算機(jī)編程語(yǔ)言所規(guī)定的規(guī)范和編程語(yǔ)言的語(yǔ)法,一旦他們不能記住這些枯燥乏味的規(guī)范和語(yǔ)法時(shí),他們編程出來(lái)的程序就無(wú)法編譯和執(zhí)行(例如關(guān)鍵字寫錯(cuò),缺少某個(gè)符合等),學(xué)習(xí)的興趣將受到嚴(yán)重的打擊。2)在計(jì)算機(jī)程序設(shè)計(jì)課程的后期,都要學(xué)習(xí)一些比較復(fù)雜的算法,例如排序算法,由于老師一般只是講解算法的核心思想然后給出相應(yīng)的代碼進(jìn)行講解,對(duì)于這些復(fù)雜而抽象的算法通常都涉及多重循環(huán),基礎(chǔ)較差的學(xué)生往往陷入這些循環(huán)中而不能自拔。
3程序可視化方法實(shí)施
為了解決以上兩個(gè)問(wèn)題,針對(duì)計(jì)算機(jī)程序設(shè)計(jì)課程的不同時(shí)期應(yīng)用了兩種程序可視化方法進(jìn)行程序設(shè)計(jì)課程教學(xué)方法。
3.1利用可執(zhí)行的流程圖來(lái)實(shí)現(xiàn)程序可視化
在剛開(kāi)始學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)的時(shí)候,學(xué)生應(yīng)該學(xué)習(xí)的是利用程序流程的思想來(lái)解決問(wèn)題,學(xué)生要學(xué)習(xí)的重點(diǎn)是把實(shí)際問(wèn)題化為程序流程,而不是把重點(diǎn)放在枯燥乏味的編程語(yǔ)法之中[1][2]。
RAPTOR(the Rapid Algorithmic Prototyping Tool for Ordered Reasoning)是一個(gè)基于流程圖的編程環(huán)境,專門用來(lái)幫助編程初學(xué)者利用流程圖來(lái)可視化他們的算法,避免在編程學(xué)習(xí)的初期學(xué)習(xí)編程語(yǔ)言語(yǔ)法負(fù)擔(dān),運(yùn)行界面如圖1。在RAPTOR中,計(jì)算機(jī)程序的算法用流程圖來(lái)表示。RAPTOR為用戶提供了創(chuàng)建可執(zhí)行流程圖的界面,而不是編寫可能導(dǎo)致語(yǔ)法錯(cuò)誤的程序代碼[3]。
Raptor中包含六種不同的圖形符號(hào),他們分別代表一種不同的程序設(shè)計(jì)語(yǔ)句類型。圖形符號(hào)代表的程序設(shè)計(jì)語(yǔ)句類型如下:①賦值語(yǔ)句:使用某些運(yùn)算來(lái)更改變量的值;②過(guò)程調(diào)用:調(diào)用系統(tǒng)自帶的子程序或用戶定義的子圖等程序塊;③輸入語(yǔ)句:輸入數(shù)據(jù)給一個(gè)變量;④輸出語(yǔ)句:用于顯示變量的值。⑤選擇語(yǔ)句:用于從條件判斷中選擇流程的走向。⑥循環(huán)語(yǔ)句:允許重復(fù)執(zhí)行一個(gè)或多個(gè)語(yǔ)句構(gòu)成的語(yǔ)句體。
利用這些圖形符號(hào)可以實(shí)現(xiàn)計(jì)算機(jī)程序的全部控制結(jié)構(gòu),例如:順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。用戶要編寫程序只需將流程圖符號(hào)拖動(dòng)到編輯區(qū),箭頭將自動(dòng)鏈接圖形符號(hào)形成一個(gè)程序算法的流程圖。這些編輯完成的流程圖可以直接運(yùn)行。用戶可以利用工具欄的按鈕來(lái)控制流程圖的運(yùn)行,包含執(zhí)行,暫停和單步執(zhí)行等。在程序的運(yùn)行過(guò)程中可以在變量觀察區(qū)看到流程圖中定義變量的值的變化。
3.2利用算法動(dòng)畫進(jìn)行程序可視化分析
程序設(shè)計(jì)課程都會(huì)要求學(xué)生掌握一些稍微復(fù)雜一些的算法,例如排序算法是每種程序設(shè)計(jì)課程都必須掌握的重要知識(shí)點(diǎn)。這些復(fù)雜的算法通常都要求用多重循環(huán)結(jié)構(gòu)來(lái)實(shí)現(xiàn),對(duì)于基礎(chǔ)較差的同學(xué)而言,如果按照常規(guī)的教學(xué)方法經(jīng)常很難聽(tīng)懂老師的講解。算法學(xué)習(xí)最大的難點(diǎn)之一就是如何在腦中形象化其抽象的邏輯步驟。而圖像在很多時(shí)候能夠幫助我們理解其對(duì)應(yīng)的抽象化的東西,而如果用圖像把相應(yīng)的程序執(zhí)行步驟的結(jié)果一點(diǎn)點(diǎn)畫出來(lái)的,那么無(wú)疑對(duì)理解算法核心思想是非常有幫助的。
為了方便程序設(shè)計(jì)初學(xué)者理解復(fù)雜的算法,把復(fù)雜的算法能形象地展現(xiàn)出來(lái),有很多的算法可視化工具用動(dòng)畫的形式把算法中程序的執(zhí)行步驟及算法執(zhí)行時(shí)內(nèi)存中的數(shù)據(jù)的變化都形象的繪制出來(lái)。其中,VisuAlgo就是一個(gè)功能非常完善的算法可視化的網(wǎng)站,運(yùn)行界面如圖2。VisuAlgo對(duì)每個(gè)算法不僅提供動(dòng)畫的演示功能,還對(duì)每個(gè)算法核心思想進(jìn)行了大量的文字講解。在學(xué)習(xí)了算法背后的理論之后,就可以通過(guò)觀看動(dòng)畫示例來(lái)了解算法的工作原理[4]。
當(dāng)播放算法的執(zhí)行過(guò)程動(dòng)畫時(shí),在右下角會(huì)顯示對(duì)算法正在執(zhí)行的語(yǔ)句的解釋,以及當(dāng)前執(zhí)行的偽代碼。左下角的動(dòng)畫演示控制工具欄還可以選擇倒退、快進(jìn)、播放/暫停以及更改動(dòng)畫的播放速度。
4 結(jié)論
利用程序可視化的方法可以幫助程序設(shè)計(jì)的初學(xué)者形象生動(dòng)的理解程序的執(zhí)行過(guò)程和程序算法的核心思想。通過(guò)程序可視化的方法在程序設(shè)計(jì)課程的應(yīng)用將提供一種更加方便學(xué)生學(xué)習(xí)和掌握程序設(shè)計(jì)課程的途徑。
參考文獻(xiàn):
[1]郁曉華. 基于可視化編程的計(jì)算思維培養(yǎng)模式研究[J].遠(yuǎn)程教育雜志, 2017(6):12-20.
[2]黃勝,可視化程序設(shè)計(jì)課程教改研究[J].計(jì)算機(jī)時(shí)代, 2016(2):86-87.
[3] 程向前.基于流程圖的可視化程序設(shè)計(jì)環(huán)境對(duì)大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)的影響[J]. 計(jì)算機(jī)教育, 2012(14):56-59.
[4] Aji Prasetya Wibawa,Utilization Visualgo.net as a Data Structure Learning Media based on CDIO[J].Journal of Physics: Conference Series,2018,1028(1).
【通聯(lián)編輯:王力】