任芹樂 司冰 丁浩然 彭德坤 馬曉強(qiáng)
摘要:算法是解決特定問題求解決步驟的描述,在計(jì)算機(jī)中表現(xiàn)為指令的有限序列,并且每條指令表示一個(gè)或多個(gè)操作,像我們想要掌握深層次的計(jì)算機(jī)學(xué)習(xí),我們就必須要了解與學(xué)習(xí)算法,但是我們只是通過代碼的展示,并不能直觀形象的體現(xiàn)算法的作用與效果,因此開發(fā)設(shè)計(jì)一款算法可視化[1]的系統(tǒng)是相當(dāng)重要的?;谝陨系谋尘埃覀?cè)O(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于 Web 端的算法可視化系統(tǒng),該系統(tǒng)主要實(shí)現(xiàn)了算法的動(dòng)態(tài)可視化功能,其次為了提升用戶對(duì)算法的理解和掌握程度,設(shè)計(jì)并實(shí)現(xiàn)了算法自適應(yīng)測(cè)驗(yàn)功能以及算法圖譜的學(xué)習(xí)導(dǎo)航功能,以此來實(shí)現(xiàn)人們對(duì)算法學(xué)習(xí)的目的。
關(guān)鍵詞:計(jì)算機(jī)圖形學(xué)[2];可視化教程;輔助教學(xué)系統(tǒng)[3];算法
1 引言
在今天的社會(huì)越來越多的人接觸計(jì)算機(jī),特別是對(duì)于眾多的計(jì)算機(jī)專業(yè)的人員,大家都在學(xué)習(xí)算法,我們?yōu)槭裁匆W(xué)習(xí)算法,因?yàn)樗惴ㄊ俏覀儚牡讓诱莆沼?jì)算機(jī)的基本方法,但是算法是抽象的,是計(jì)算機(jī)與基本數(shù)學(xué)的結(jié)合,我們要不斷地去改進(jìn)算法學(xué)習(xí)算法,才能理解明白計(jì)算機(jī)地處理方式。具完全有效統(tǒng)計(jì),全世界計(jì)算機(jī)專業(yè)的人員超過了一億人,但是學(xué)好算法的人,卻不到十分之一,不是因?yàn)闆]人去學(xué)習(xí)算法,而是因?yàn)榇蠹矣X得學(xué)習(xí)算法太過于困難與抽象,所以設(shè)計(jì)一款可視化的算法學(xué)習(xí)系統(tǒng)是很重要的。
目前大家對(duì)算法的理解可能主要有兩類,一類是傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與算法,另一類是現(xiàn)在很熱門的機(jī)器學(xué)習(xí)算法。對(duì)于數(shù)據(jù)結(jié)構(gòu)和算法,套用計(jì)算機(jī)里面一句話:程序=數(shù)據(jù)結(jié)構(gòu)+算法。寫程序就像開一輛車,當(dāng)你不懂太多數(shù)據(jù)結(jié)構(gòu)跟算法的時(shí)候,憑借豐富的實(shí)踐經(jīng)驗(yàn)?zāi)阋部梢詫⑦@輛車開好;但是,當(dāng)有一天這輛車出問題跑不起來的時(shí)候呢?你不懂它內(nèi)部的運(yùn)行機(jī)制,你要怎么排除和解決問題?這些都是在告訴我們學(xué)習(xí)算法的重要性。
對(duì)于機(jī)器學(xué)習(xí)算法,機(jī)器學(xué)習(xí)的作用相信很多人都有了解一些,比如你經(jīng)常用的淘寶購物猜你喜歡,網(wǎng)易云音樂推薦你感興趣的歌曲,今日頭條推送你感興趣的新聞,人臉識(shí)別,語音識(shí)別,阿爾法狗與人下棋等等。還有現(xiàn)在火熱的人工智能算法,這些無一不是對(duì)算法學(xué)習(xí)的結(jié)果,足以說明算法學(xué)習(xí)的重要性。
2 系統(tǒng)設(shè)計(jì)
2.1 需求分析
算法可視化系統(tǒng)主要針對(duì)算法學(xué)習(xí)中常見的算法進(jìn)行輔助學(xué)習(xí),讓學(xué)生更加明白與理解如何去學(xué)習(xí)算法,系統(tǒng)主要包括算法的動(dòng)態(tài)可視化教學(xué)模塊,算法自適應(yīng)測(cè)驗(yàn)?zāi)K以及算法圖譜學(xué)習(xí)導(dǎo)航模塊三大功能模塊。
Data Visualization即數(shù)據(jù)可視化,屬于對(duì)數(shù)據(jù)的視覺表達(dá)方式的一種科學(xué)技術(shù)的研究。其中提到的數(shù)據(jù)的視覺表現(xiàn)形式指的是,一種由與之相對(duì)應(yīng)的不同信息單位的屬性與變量構(gòu)成的信息,其主要是經(jīng)由概要的方式提取獲得的。而三維可視化技術(shù)方向的研究經(jīng)過長(zhǎng)時(shí)間的研究、積累,已經(jīng)開發(fā)了許多豐富的、有實(shí)用價(jià)值的可視化的工具。因?yàn)榭梢暬髷?shù)據(jù)在圖形的硬件驅(qū)動(dòng)程序和應(yīng)用程序之間進(jìn)行交互,所以第一個(gè)需要想到的是它們其中的中間件,也就是用戶需要通過一個(gè)中介實(shí)現(xiàn)向底層驅(qū)動(dòng)程序發(fā)送指令,同時(shí)回饋數(shù)據(jù)的操作,這樣通過相對(duì)簡(jiǎn)單的API就可以實(shí)現(xiàn)不同參數(shù)的定義,進(jìn)而使用戶和中介進(jìn)行交互。目前存在兩個(gè)流行的技術(shù)標(biāo)準(zhǔn),一個(gè)是表現(xiàn)十分優(yōu)異,便于操作并且功能齊全的GL,也就是三維圖形庫,由SGI公司提出。大量專業(yè)的技術(shù)人員偏愛GL,由GL進(jìn)行研制的三維應(yīng)用軟件,涵蓋包括流體力學(xué)、產(chǎn)品設(shè)計(jì)、地球科學(xué)等眾多重要領(lǐng)域。OpenGL是由GL演變而來,現(xiàn)在主流公司圖形采用的標(biāo)準(zhǔn)都是OpenGL,它成為一種交互模式的視景處理與高性能圖形的行業(yè)標(biāo)桿。
2.2系統(tǒng)功能及模塊設(shè)計(jì)
該系統(tǒng)主要由算法可視化教學(xué)、自適應(yīng)測(cè)試、算法圖譜學(xué)習(xí)組成,該系統(tǒng)采用以數(shù)學(xué)物理學(xué)習(xí)為主的動(dòng)態(tài)可視化繪圖,根據(jù)學(xué)習(xí)者的自適應(yīng)程度,推薦不同等級(jí)的算法學(xué)習(xí)模型,用精美的圖形將算法的過程呈現(xiàn)出來,以供學(xué)習(xí)理解。系統(tǒng)功能模塊圖如圖2-1。
3 系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)
算法動(dòng)態(tài)可視化教學(xué)模塊目的在于實(shí)現(xiàn)算法原理的動(dòng)態(tài)可視化展示,作為可視化教學(xué)系統(tǒng),想要實(shí)現(xiàn)可視化模型,我們必須要解決算法的執(zhí)行過程的可視化問題,系統(tǒng)的交互性,以及必要的代碼演示及理論的講解性。
當(dāng)用戶完成算法可視化教學(xué)模塊中的算法學(xué)習(xí)后,此時(shí)用戶尚未對(duì)已學(xué)習(xí)的知識(shí)形成深刻的記憶。所以我們推出給用戶的一整套的代碼練習(xí),結(jié)合圖像來鞏固用戶的學(xué)習(xí)。因此設(shè)計(jì)自適應(yīng)測(cè)驗(yàn)?zāi)K,可以讓用戶通過自適應(yīng)測(cè)驗(yàn)?zāi)K來進(jìn)行算法測(cè)驗(yàn),以此來加深對(duì)算法的理解。
新型領(lǐng)域龐大,涉及的算法知識(shí)繁雜,用戶在學(xué)習(xí)知識(shí)體系過程中往往會(huì)因此產(chǎn)生畏懼、厭學(xué)心理,從根本上去排斥該算法的學(xué)習(xí),從而失去學(xué)習(xí)動(dòng)力。為了建立用戶對(duì)新型領(lǐng)域常見算法的整體認(rèn)識(shí)并理解算法與算法之間的關(guān)系,我們必須去建立算法知識(shí)圖譜,并將圖譜可視化的展示給用戶,通過直觀的方式,呈現(xiàn)給用戶。另外我們可以根據(jù)之前用戶的學(xué)習(xí),實(shí)現(xiàn)基于算法知識(shí)圖譜的學(xué)習(xí)資源推薦導(dǎo)航功能。
4 結(jié)語
算法可視化學(xué)習(xí)系統(tǒng)從算法可視化教學(xué)、自適應(yīng)測(cè)驗(yàn)以及算法圖譜學(xué)習(xí)推薦導(dǎo)航三個(gè)方面來實(shí)現(xiàn)算法學(xué)習(xí)的功能。系統(tǒng)針對(duì)算法傳統(tǒng)教學(xué)中面臨的困難,用算法可視化的方式來進(jìn)行對(duì)算法的學(xué)習(xí),從根本上降低了算法的學(xué)習(xí)難度,自適應(yīng)測(cè)驗(yàn)?zāi)K可以根據(jù)用戶的學(xué)習(xí)情況進(jìn)行有目的性地學(xué)習(xí)來提升自己的算法認(rèn)識(shí)能力,知識(shí)圖譜學(xué)習(xí)模塊以可視化的方式直觀幫助用戶建立對(duì)新型領(lǐng)域算法的整體認(rèn)識(shí),并且算法圖譜可以對(duì)用戶進(jìn)行學(xué)習(xí)資源推薦和導(dǎo)航。系統(tǒng)還具有可擴(kuò)展性,可以根據(jù)實(shí)際教學(xué)要求設(shè)計(jì)其他的算法進(jìn)行可視化教學(xué)。
參考文獻(xiàn)
[1].https://blog.csdn.net/booirror/article/details/50834915
[2].王宏.大數(shù)據(jù)經(jīng)典算法可視化研究.西安石油大學(xué),2021.
[3].武照云.算法可視化輔助教學(xué)系統(tǒng)研究及其應(yīng)用.河南工業(yè)大學(xué),2013.
基金項(xiàng)目:西北民族大學(xué)中央高?;究蒲袠I(yè)務(wù)費(fèi)資助本科生科研能力項(xiàng)目訓(xùn)練項(xiàng)目(項(xiàng)目編號(hào):XBMU21197)
作者簡(jiǎn)介:任芹樂(1999— ),男,西北民族大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院本科生,研究方向:軟件工程。