任芹樂 司冰 丁浩然 彭德坤 馬曉強

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