胡珊


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