国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

“數(shù)據(jù)結構”課程中算法可視化教學的探索與思考

2019-09-10 07:31:45王晗
現(xiàn)代信息科技 2019年23期
關鍵詞:數(shù)據(jù)結構教學方法

摘? 要:“數(shù)據(jù)結構”是計算機類專業(yè)的核心課程,算法是“數(shù)據(jù)結構”課程中的重點和難點內容。由于“數(shù)據(jù)結構”課程一般在低年級開設,學生接觸計算機相關的知識量還不夠多,在教學過程中,普遍反映算法抽象,難以理解和應用。結合實際工作經驗,開發(fā)和利用算法可視化工具,將排序、著色、最短路徑等算法用可視化工具實時、動態(tài)展示出來,加深學生對算法的直觀認識,可讓學生更好地理解和使用算法,并提升了教學效果。

關鍵詞:數(shù)據(jù)結構;算法可視化;教學方法

中圖分類號:TP311.12-4? ? ? 文獻標識碼:A 文章編號:2096-4706(2019)23-0095-03

Exploration and Thinking of Algorithm Visualization

Teaching in “Data Structure” Course

WANG Han

(School of Mathematics and Computer Science,Guangdong Ocean University,Zhanjiang? 524088,China)

Abstract:“Data Structure” is the core course of computer major,and algorithm is the key and difficult content of “Data Structure” course. The course of “Data Structure” is generally offered in the junior grade,and the amount of knowledge related to computer is not enough. In the teaching process,it generally reflects the abstract algorithm,which is difficult to understand and apply. Combined with practical work experience,the algorithm visualization tools are developed and used to show the sorting,coloring,shortest path and other algorithms in real time and dynamically with the visualization tools,so as to improve students’intuitive understanding of the algorithm,make students better understand and use the algorithm,and improve the teaching effect.

Keywords:data structure;algorithm visualization;teaching methods

0? 引? 言

“數(shù)據(jù)結構”既是計算機類專業(yè)的專業(yè)基礎課程,又是核心課程。這門課程在計算機的學科中起到了承上啟下的作用,既會為后續(xù)學習操作系統(tǒng)、算法分析與設計和軟件工程等課程打下良好的基礎,同時也對培養(yǎng)學生抽象思維能力、創(chuàng)作力和解決實際問題的動手操作能力起到一定的指導作用。但是該課程概念繁多、信息量大、抽象性強,一般在低年級開設,學生剛開始接觸計算機,相關的知識量還很小,所以在教學過程中,學生普遍反映算法抽象,很難理解。

由于算法過于抽象并且實踐性較強,造成學生難以直觀地學習和理解算法,以至于在對算法的學習和理解的過程中耗費時間和精力過多,造成教學效率低、學生難以理解,以及理論和實際聯(lián)系不夠緊密,出現(xiàn)脫節(jié)等問題。為了解決這一問題,本文提出如何將復雜的事物轉化為直觀的圖像。利用可視化的方式,將算法所蘊含的精髓內容轉化成易于觀察的圖像進行呈現(xiàn),來幫助學生更好地理解和運用算法。

1? 算法可視化教學方法

1.1? 算法可視化的需求與設計

對算法進行可視化的原理是使用需要可視化的算法對輸入的數(shù)據(jù)進行處理分析,然后根據(jù)需要選擇性地將算法執(zhí)行前、算法執(zhí)行過程中和算法執(zhí)行完畢后這三個階段中數(shù)據(jù)的變化進行圖形化顯示,以供學生觀察、分析和理解算法。

算法可視化的架構設計依托于其要實現(xiàn)的功能,因此,在了解了算法可視化的原理后,首先需要對算法可視化的需求進行分析,確定所需要實現(xiàn)的內容,隨后再根據(jù)需求分析的結果,對算法可視化進行模塊劃分。

1.2? 算法可視化的結構設計

根據(jù)算法可視化的流程,在對任何一個算法進行可視化時,都可以采用MVP模式的結構將其設計分為三層,分別是模型層(Model)、視圖層(View)、和控制層(Controller)。如圖1所示。

(1)模型層,也稱作數(shù)據(jù)層,主要負責存儲和處理用戶輸入的數(shù)據(jù)以及算法運行過程中產生的中間數(shù)據(jù),并將處理后的數(shù)據(jù)發(fā)送給視圖層。

(2)視圖層,負責顯示相關的運行邏輯,主要負責將數(shù)據(jù)進行處理轉化為圖像,并將圖像輸出到客戶端。

(3)控制層,在這里需要同時控制數(shù)據(jù)層和視圖層,起到傳遞消息和處理業(yè)務邏輯的作用。

1.3? 算法可視化系統(tǒng)模塊設計

根據(jù)算法可視化的類型,本文將可視化系統(tǒng)的模塊分為2個,分別是過程可視化模塊和概念可視化模塊。模塊之間相互獨立,互不影響,每個模塊都存在著其所屬類別的算法可視化程序。對此,算法可視化系統(tǒng)的模塊設計如圖2所示。

1.4? 算法演示界面的實現(xiàn)

系統(tǒng)界面是系統(tǒng)離用戶最近的地方。在技術快速發(fā)展的當下,同一款產品,提供的功能差異不大時,哪一款產品界面設計得更友好,人們就會傾向于用哪一款。因此,界面設計得美觀與否,直接決定產品是否能夠得到用戶的認可;除此之外,若界面設計得好,不用過多地引導用戶操作,用戶都會自己主動去探索使用方法。

盡管根據(jù)算法的特點,本系統(tǒng)的界面可能會有所不同,但其原型都是一樣的。

1.5? 過程可視化模塊的實現(xiàn)

過程可視化模塊主要實現(xiàn)對算法程序的執(zhí)行流程,以及中間數(shù)據(jù)的變化用動態(tài)圖像配合文字表現(xiàn)出來。過程可視化模塊中實現(xiàn)了過程可視化的算法分別是:冒泡排序、歸并排序、m著色問題、Kruskal算法求最小生成樹和Dijkstra求最短路徑算法。

1.5.1? 冒泡排序法

冒泡排序算法是排序算法中最容易被理解的算法,其思路簡單易懂,執(zhí)行過程中沒有太大的變化,因此可以直接采用動畫的方式對冒泡排序的過程進行可視化。

圖3為冒泡排序可視化過程中的一個關鍵幀,圖中黑色柱子是已排序好的數(shù)字,兩個框中的兩個柱體是正在相互比較的兩個數(shù)字,灰色則為未排序的數(shù)字。右側是交互按鈕和可視化程序執(zhí)行過程中數(shù)據(jù)的變化細節(jié)。

1.5.2? 歸并排序法

歸并排序使用了分而治之的設計理念,如圖4所示是插入排序的過程可視化示例圖,灰色柱狀圖是正在進行歸并排序的動畫,黑色柱狀圖則是由關鍵幀組成的靜態(tài)圖??蛑械脑貫檎谂判虻脑?,其余為待排序的元素。

1.5.3? m著色問題

m著色問題算法的實現(xiàn)思路大致為:

(1)把一個圖中的頂點按其角度大小依次減小的次序進行排列;

(2)然后用第一種顏色對第一個點進行上色,并且按照排列好的順序,將與之前的著色點不相鄰的每一點涂上同樣的顏色;

(3)把第二種顏色對尚未著色的點重復步驟2,用第三種顏色繼續(xù),直到所有點全部上色為止。

m著色問題的可視化同樣以動畫的方式實現(xiàn),不同的是,需要由用戶繪制圖的節(jié)點,然后連接成圖,之后再由對應的程序對m著色的算法進行可視化。圖5為m著色問題算法演示動畫過程中的其中一幀。

1.5.4? 最小生成樹(Kruskal算法)

Kruskal生成最小生成樹算法的可視化,以動畫的方式實現(xiàn)。需要用戶手動繪制一個圖,之后再由系統(tǒng)程序使用Kruskal算法生成最小生成樹。圖6為Kruskal算法在演示動畫過程中的其中一幀。

1.5.5? 最短路徑(Dijkstra算法)

最短路徑Dijkstra算法的可視化,以動畫的形式實現(xiàn)。需要用戶手動繪制一個圖,之后再由系統(tǒng)程序使用Dijkstra算法生成求出最短路徑的演示動畫。圖7為Dijkstra算法在可視化過程中的其中一幀。

2? 結? 論

本文針對當前“數(shù)據(jù)結構”教學過程中存在的問題,結合多年的理論教學經驗,進行教學改革與探索,開發(fā)和利用算法可視化工具,針對不同算法將其實時、動態(tài)地展示出來,以加深學生對算法的直觀認識,讓學生能夠更好地理解和運用算法,為教師進一步提高課堂教學效率和教學水平提供了參考。

參考文獻:

[1] 郭伊.《數(shù)據(jù)結構》課程教學動態(tài)演示系統(tǒng)的設計與實現(xiàn) [D].楊凌:西北農林科技大學,2015.

[2] 劉叢.針對數(shù)據(jù)結構的命令式算法可視化系統(tǒng)設計與開發(fā) [D].長沙:湖南大學,2015.

[3] 熊慧.jQuery技術在網(wǎng)頁美工中的應用 [J].中國新通信,2018,20(6):100.

[4] MCCORMICK H B. Visualization in scientific computing [J].ACM SIGBIO Newsletter,1988,10(1):15-21.

作者簡介:王晗(1976.04-),女,漢族,陜西西安人,中級職稱,本科,研究方向:計算機及其應用。

猜你喜歡
數(shù)據(jù)結構教學方法
數(shù)據(jù)結構線上線下混合教學模式探討
初中英語寫作教學方法初探
甘肅教育(2020年2期)2020-09-11 08:01:42
教學方法與知識類型的適宜
數(shù)據(jù)結構課程教學網(wǎng)站的設計與實現(xiàn)
電子測試(2018年15期)2018-09-26 06:01:42
“翻轉課堂”教學模式的探討——以《數(shù)據(jù)結構》課程教學為例
高職高專數(shù)據(jù)結構教學改革探討
中國市場(2016年45期)2016-05-17 05:15:48
實用型中醫(yī)人才培養(yǎng)中慕課教學方法的探討
文言文教學方法實踐初探
中學語文(2015年21期)2015-03-01 03:52:15
初中數(shù)學教師不可忽視的幾種教學方法
散文百家(2014年11期)2014-08-21 07:17:18
TRIZ理論在“數(shù)據(jù)結構”多媒體教學中的應用
湟源县| 三台县| 鄯善县| 班玛县| 砚山县| 来安县| 海口市| 读书| 会同县| 临安市| 廉江市| 称多县| 汽车| 漳平市| 长葛市| 星子县| 菏泽市| 黄平县| 陆河县| 蚌埠市| 大城县| 华池县| 冕宁县| 湛江市| 黄梅县| 天长市| 酒泉市| 邵东县| 安阳县| 江源县| 连州市| 扎赉特旗| 沙洋县| 高平市| 石台县| 宣武区| 南漳县| 镇平县| 广德县| 白城市| 东丽区|