陳慧
摘? ?要:本文針對計算機專業(yè)知識的動態(tài)性和抽象性難以在傳統(tǒng)教學中進行較好的展現(xiàn)問題,引入“可視化教學”概念。以《C程序設計語言》和《數(shù)據(jù)結(jié)構(gòu)》課程為例,根據(jù)課程教學大綱將知識點進行梳理分類后,把教學內(nèi)容分別從基礎知識可視化、程序結(jié)構(gòu)可視化和算法可視化三方面進行可視化設計,幫助學生增強對知識點的理解,提高教學效果。
關鍵詞:可視化教學? 知識點? 教學效果
中圖分類號:TP391.6? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ?文章編號:1674-098X(2019)06(c)-0183-02
可視化技術(shù)是指將數(shù)據(jù)轉(zhuǎn)換成圖形或圖像,進而能夠?qū)崿F(xiàn)交互處理的理論、方法和技術(shù)??梢暬夹g(shù)的實現(xiàn)能夠促進形象思維、直覺思維、發(fā)散思維、邏輯思維和辨證思維的發(fā)揮。
可視化技術(shù)應用于教學時,可以利用計算機圖形學和圖像處理技術(shù),對顯示出來的圖形或文字進行交互處理,可視化技術(shù)將復雜事物的描述簡單化,針對教與學過程中的理解、對話、探索和交流進行有效改善,增強思考的效能和創(chuàng)新性。
計算機專業(yè)課程的教師在教學過程中雖然也會引入一些可視化內(nèi)容,但對于課程中的教學內(nèi)容沒有進行系統(tǒng)的完善的可視化設計。一套完善的教學可視化系統(tǒng)可以幫助學生從學習興趣、學習自主性、理解能力、學習效率和學習成績方面進行提升,降低教師教學過程中對抽象概念和算法等知識點講解的難度,提高教師在教學管理工作方面的效率,增強課程的整體教學效果。本文以《C程序設計語言》和《數(shù)據(jù)結(jié)構(gòu)》課程為例,根據(jù)課程教學大綱將知識點進行梳理分類,把教學內(nèi)容分為基礎知識可視化、程序結(jié)構(gòu)可視化和算法可視化三部分,針對這三部分進行詳細設計。最后利用Flash動畫和Javascript等技術(shù)對基礎知識、程序結(jié)構(gòu)和算法的可視化設計側(cè)重點和關鍵因素分析后進行設計并實現(xiàn)。
1? 基礎知識可視化教學設計
1.1 設計概述
基礎知識主要包括程序的入門知識和關鍵特點、抽象概念等內(nèi)容,通過動畫技術(shù)對課程的基礎知識進行可視化呈現(xiàn)。
(1)前期需求分析階段,對程序設計課程的基礎知識可視化需求和內(nèi)容進行梳理,確定可視化建設的目標和終點。
(2)明確程序設計課程中基礎知識主題,分析程序設計語言的知識特點,進行重點設計。
(3)文本設計是可視化動畫設計的前提,通過將需要教學的內(nèi)容按照動畫繪制平臺的繪畫步驟進行呈現(xiàn)。在文本與動畫轉(zhuǎn)換的過程中,需要考慮學生的心理特征,采用口語化的描述方式將知識要點轉(zhuǎn)換為動畫畫板不同的控件。在動畫呈現(xiàn)形式方面,為不同的程序基礎知識實體確定不同的控件顯示方式,比如不同的控件、不同的形狀、不同的字體屬性、不同的色彩等。
(4)基礎知識展示過程中,需要旁白講解功能,針對動畫當前頁面的內(nèi)容以直白風趣的方式進行闡述,提升學生的理解能力。
1.2 基礎知識可視化分析與設計
基礎知識可視化設計時,首先將知識點進行整理,分析各知識點設計時應側(cè)重的目標。如表1所示。
然后,針對以上列表中每個知識點的特點,具體實現(xiàn)時考慮有哪些關鍵因素,如有無人物設計、有無情景設計、交互性強度、是否需要設計一個模擬游戲來增強理解。
最后,根據(jù)分析結(jié)果去實現(xiàn)。將動畫頁面比例設置為 16∶9,更符合人眼的視覺特點??紤]到學生的學習習慣和視覺疲勞程度,每個動畫時間控制在10min,不僅能夠激發(fā)學習者的主動性,而且可以減少學生心理負擔。
例如,“簡單的C程序”知識點動畫設計時要展示一個C程序從寫好代碼到運行并輸出的過程。首先有配音提示按下鼠標鍵,當用戶按下鼠標鍵后會顯示一段程序代碼,這時,語音提示請按下鍵盤上的回車鍵,當用戶操作后顯示輸出結(jié)果,然后配音講解程序代碼,講解時對應代碼會高亮顯示,最后仍顯示程序代碼,用戶鼠標移動到某一個位置就會顯示對應代碼的說明。
2? 程序結(jié)構(gòu)可視化教學設計
2.1 設計概述
程序結(jié)構(gòu)主要對不同程序的基本順序結(jié)構(gòu)、判斷結(jié)構(gòu)和循環(huán)結(jié)構(gòu)進行描述。
(1)首先對目前不同程序結(jié)構(gòu)類型進行梳理,包括順序結(jié)構(gòu)、判斷結(jié)構(gòu)和循環(huán)結(jié)構(gòu),對不同的結(jié)構(gòu)特點和主要內(nèi)容進行說明。
(2)明確程序結(jié)構(gòu)的展現(xiàn)方式。利用實例對不同結(jié)構(gòu)的用途及變量變化過程進行呈現(xiàn),列舉不同結(jié)果的講解提綱和風格。
(3)將不同程序結(jié)構(gòu)的內(nèi)容和講解流程進行整理,形成文本,同時設計旁白講解,對程序結(jié)構(gòu)進行講解。
2.2 程序結(jié)構(gòu)可視化分析與設計
在程序結(jié)構(gòu)可視化設計時,同樣先進行側(cè)重點分析,對順序結(jié)構(gòu)、if語句、swtich語句、while語句、do-while語句、for語句、循環(huán)嵌套和break與continue等知識點具體側(cè)重興趣、理解力和編程思維方面進行分析。
針對上述每個知識點的特點,同樣要考慮有無人物設計、有無情景設計、交互性強度等關鍵因素。
以循環(huán)控制為例,解決“猴子吃桃”的問題,求解猴子摘桃的天數(shù)。具體題目是:猴子去摘桃,共摘了127個桃,它每天吃掉一半多一個,問猴子摘了幾天桃?具體實現(xiàn)時首先展現(xiàn)一個猴子每天重復摘桃并吃桃的場景,然后提出問題并顯示程序結(jié)構(gòu)流程圖,此頁面上顯示三種語句包括while語句、do-while語句、for 語句的鏈接,最后根據(jù)用戶的點擊,分別顯示對應語句的編程代碼。
3? 算法可視化教學設計
算法主要針對數(shù)據(jù)結(jié)構(gòu)課程進行展開,對各類排序算法(如冒泡排序、堆排序等)、鏈表、哈希樹等結(jié)構(gòu)的原理和流程進行可視化呈現(xiàn),設計動畫后以更直觀的方式讓學生用戶掌握算法知識。
算法可視化呈現(xiàn)需要與實際的應用場景結(jié)合,將算法中的變量通過動畫控件的方式呈現(xiàn),展示其值的變化,對變量在算法運行過程中的關系進行呈現(xiàn),具體動畫設計流程與程序結(jié)構(gòu)類似。
數(shù)據(jù)結(jié)構(gòu)中的算法眾多,根據(jù)教學大綱,依據(jù)數(shù)據(jù)結(jié)構(gòu)類型進行整理,常見的數(shù)據(jù)結(jié)構(gòu)類型有:數(shù)組,棧,鏈表、隊列、樹、圖、堆、散列表等。挑選順序棧、棧與遞歸、二叉樹遍歷、逆轉(zhuǎn)線性鏈表、拆半查找、冒泡排序、選擇排序、插入排序、堆排序等內(nèi)容進行設計。
以“冒泡排序”為例,可以設計為:首先等待用戶輸入要進行排序的數(shù)據(jù),中間以逗號分隔,然后點擊“開始”按鈕后演示第一趟排序的動態(tài)變化過程,當?shù)谝惶伺判蚪Y(jié)束時需要等待用戶點擊鼠標后再顯示第二趟排序的動態(tài)變化過程,以此類推。
4? 結(jié)語
可視化教學是教育領域的發(fā)展趨勢,研究開發(fā)可視化教學內(nèi)容設計,既可以直接改革計算機專業(yè)課程的教學方法和手段,提高教學效率和質(zhì)量,又符合教學改革的方向,是隨著教育技術(shù)不斷發(fā)展而完善的教學方式。
參考文獻
[1] 張思,全婕,涂英.JAVA零基礎數(shù)據(jù)可視化教學研究[J].中國教育信息化,2017(10):21-23.
[2] 張仁津,鄧靜.可視化計算機教學的研究[J].貴州師范大學學報:自然科學版,2004(1):120-122.
[3] 史瑞芳.計算機圖像學算法可視化教學系統(tǒng)設計與實現(xiàn)分析[J].中國管理信息化,2008(16):201-202.