張瑞霞,周 婭,唐 麟(桂林電子科技大學 計算機科學與工程學院,廣西 桂林 541004)
?
基于數據結構教輔系統的實驗課程改革
張瑞霞,周 婭,唐 麟
(桂林電子科技大學 計算機科學與工程學院,廣西 桂林 541004)
摘 要:基于自行開發的數據結構教輔系統,提出應以教師為主導、學生為主體、源碼學習為中心,綜合利用Flash、Java、Android手機游戲、開源Linux等方式,在教學中將理論性、實踐性與娛樂性有機結合起來,并分別從自主學習、個性化、興趣性、探索性等方面說明數據結構教輔系統的具體應用。
關鍵詞:數據結構;實驗教學;源碼;教輔系統
數據結構是計算機程序設計的重要基礎課,該課程具有較強的理論性和實踐性。實驗教學對培養學生的動手實踐能力和創新能力起著舉足輕重的作用。傳統教學存在的問題是教學手段單一、編程語言單一、實驗題目缺少前沿性和趣味性以及實用性[1-3]。筆者針對教學中存在的問題,結合多年的教學實踐開發了數據結構教輔系統平臺。該平臺不但能夠輔助學生課后自主學習,而且能夠輔助教師的課堂教學。
該系統以培養學生動手實踐為主要目的,系統地設計融入教學的理念和方法并應用在實驗教學改革探索實踐中,結合大學生喜歡新生事物的特點,綜合利用Flash、Java、視頻錄像、Android手機游戲、開源Linux等方式,將理論性、實踐性與娛樂性有機結合起來,逐步培養面向應用的創新人才。
數據結構教輔系統包括理論知識點、動手實驗環節等8個模塊,內容分別是源碼學習、教學資源、算法演示、開源Linux、實驗互動、實踐創新、Android游戲和作品展示,如圖1所示,我們在理論和實驗環節為學生構建了完整的自主學習資源。整個系統的核心模塊是源碼學習,在這個模塊中包含了其他各個模塊涉及的完整代碼。這些源碼可以輔助教師的課堂教學,更有助于學生課下的自主學習和探索性學習。

圖1 系統模塊
2.1算法演示與代碼動態同步關聯
對抽象算法的理解是學好數據結構的第一步,因此教學過程中我們采用Flash演示幫助學生更好地理解知識點。不過,傳統的Flash脫離代碼,學生在學習過程中雖然理解了算法,但在具體實現代碼時卻存在障礙。在算法演示模塊中,我們利用Java和Flash技術,將算法演示與算法代碼有機結合,實現了算法演示與當前代碼的同步關聯[4-5]。在二叉排序樹的插入算法中,插入的數據既可以隨機產生,也可以手工輸入,具有良好的互動性。代碼執行到哪里,Flash演示到哪里,這樣就將數據結構的算法具體化,在算法理解和算法實現之間搭起一座橋梁。這種多媒體動態演示程序提高了實驗教學效果,受到越來越多的教學者和學習者的歡迎。我們自行開發了30多個類似演示,包含數據結構的重難點部分,有助于學生的自主學習。
2.2動態調試方法幫助學生理解抽象的概念
在源碼學習模塊,共有70多個工程文件包含其他模塊中所有案例的完整源代碼,在軟件安裝時分類安裝到系統目錄中,可以方便學生的自主學習和教師的輔助教學。在課堂上,教師可以利用源碼輔助教學。例如,在關于鏈表的學習過程中,為了使學生更好地理解指針和鏈表算法,教師在創建鏈表、插入算法、刪除算法、設置斷點時,通過單步調試幫助學生理解抽象的算法。教師將調試的過程放慢節奏并結合板書,給學生分析自動窗口和局部窗口指針的變化,通過單步調試方式幫助學生理解代碼。調試技術有助于學生自行分析尋找自己在程序設計中的邏輯錯誤。鍛煉學生的調試能力,是培養其動手實踐能力的關鍵起步點。另外,項目組成員將每章中的重點算法調試過程制作成了微課,方便學生課下復習。
2.3實施個性化教學,支持多語言實驗和課程設計
“適合教育是面向每一個學生的個性化發展教育,是因材施教的最高境界,是對每一個學生高度負責的教育”[6]。學生的個性品質是社會、家庭、學校共同作用的結果,學生個性特征、興趣愛好的差異和學生學習多樣化的需求,決定了高校的創新教育必然是一種因材施教、個性化的教育,因此應在一個大框架基礎上將學生進行分類,讓學生有一定的學習選擇權,有屬于自己支配的時間和空間,充分發展學生良好的個性品質,使學生個性張揚的同時產生創造性。我們制定了切實可行的、彰顯學生個性和能力的方案,并應用到作業、實驗以及課程設計中。
我們以C語言版本的數據結構為教材[7],但是更關注學生的個性,鼓勵學生根據自身的興趣愛好以及能力用其他語言(如C++或Java)實現。除了開發語言,學生也可以自由選擇開發環境。筆者在學校信息安全專業2009、2010和2011級試點后,得到了學生的認可。從學生提交的作品看,這種形式真正發揮了學生的主觀能動性。從2010級信息安全專業的58個學生來看,8個學生選擇Java語言,10個選擇C++,40個選擇C語言。從平臺來看,6個學生在Android平臺上開發,8個選擇Linux環境,44個選擇Windows環境。其中15個優秀的作品中,使用Java語言的2個,使用Android的3個,使用Linux環境的2個。從中可以看出,這種靈活的方式更能調動學生的積極性和主動性。
2.4Android手機游戲培養學生興趣
興趣是最好的老師。結合大學生喜歡新鮮事物的特點,我們開發了3款原創Android手機游戲[8-9],幫助學生理解抽象的概念,激發學生學習的興趣。“小球排序游戲”有助于學生理解二叉排序樹的概念,游戲說明給出了涉及的數據結構知識點和玩法,左邊的小球一直往上移動,上面的數字是隨機出現的,玩家根據二叉排序樹的性質放到合適的位置,在小球到達頂端之前沒有完成插入,即游戲失敗,正確完成7次排序后則進入下一關。“荊軻游戲”共設兩關,分別包含了隊列和棧的概念,主人公荊軻首先在3個商人那里購買狼、羊和白菜,如果按照安全的方式運到南岸,則進入下一關走迷宮;一旦走錯,比如狼和羊單獨在一起,則游戲失敗重新再來。“師傅選掌門游戲”包含了循環鏈表的概念。這些游戲的實現都會用到某種數據結構,使學生切實感受到數據結構與算法無處不在的魅力,并有意識地應用到編程實踐中。
2.5更新綜合性和設計性實驗題目和課設題目
如果不及時更新傳統陳舊的實驗題目,一方面不能調動學生的積極性和熱情,另一方面,學生能夠從各種渠道找到成熟的方案,留給學生自行設計的空間太少,不能達到設計性要求[10]。因此,應該緊跟時代發展,不斷更新實驗內容。題目可以由學生自擬,也可以由指導教師選擇一些創意題目,如“基于Android平臺的校園導航”能考查學生對圖的最短路徑的理解。這個題目貼合生活實際,符合時代趨勢,激發了學生的興趣。“基于紅黑樹的堆內存泄漏檢測”能夠跟蹤由new和delete引起的內存泄漏問題,是在學生理解了復雜的紅黑樹后開發的較為實用的作品。“化學輔助工具”是學生為高中化學教師做的小工具,是學生對鏈表的靈活應用,該工具能夠輔助化學教師構建復雜的化學符號和化學公式。“單詞拼寫檢查器”是學生自學Trie樹后設計實現的課設作品,具有高效訪問、自動提示、錯誤檢查等功能。優秀的實驗和課設作品在作品展示模塊展示,包括完整的設計文檔、可執行程序和工程源代碼,激發了更多學生的興趣性和探索性。
2.6學以致用,不斷創新,激勵學生探索性學習
培養學生的實踐能力并使其能夠學以致用是教學的重要目標。為了培養學生這方面的能力,我們將Linux中的數據結構剝離,并引導學生學以致用,融匯在作業、課程設計以及創新實踐中,這樣學生對數據結構的認識向實用性邁出了一步。例如,課本上對鏈表的描述與Linux中真實使用的循環鏈表是有差別的。Linux中使用的鏈表為了實現通用性,其定義形式和課本上是不同的。學習通用鏈表能為后續學習操作系統課程打下基礎,有助于學生深入理解和研究Linux操作系統中的某些模塊(如文件監控模塊、網絡模塊)。系統提供了多個案例,教師在課堂上抽取部分重點講解。這些案例包含了對Linux中數據結構的講解、使用工程及說明文檔,從教學效果看,極大增加了學生對Linux的研究興趣,學生由原來的好奇和畏懼,到一步一步深入探索性學習,加深了對學生探究能力的培養。
筆者指導的學生獲得國家級創新項目1項、廣西區級創新項目2項。我們應以創新項目為契機,引領基礎扎實的學生進行創新開發。比如,“基于Android 平臺的手機安全防護系統”是國家級大學生創新項目,“基于Linux的多媒體網絡教學系統”是在Linux下利用開源庫開發的廣西區級大學生創新項目。
數據結構教輔系統在實現過程中吸納了一批動手實踐能力較強的學生參與完成,并且包含了大量的學生優秀實驗作業、課程設計和創新項目。整個系統整合為一個安裝包,學生能方便地安裝在自己的機器上進行自主學習。該系統經過2009、2010、2011級3屆學生的應用實踐,教學效果明顯,并獲得第12屆全國多媒體課件大賽工科組一等獎,并在進行不斷的完善改進中。
參考文獻:
[1] 陶影, 張斌. 數據結構教學應重視算法設計與分析能力的培養[J]. 實驗室研究與探索, 2008(12): 120-121.
[2] 沈奇, 劉鈺, 張燕.“數據結構”課程雙語教學的研究與實踐[J]. 實驗技術與管理, 2012(12): 154-155.
[3] 楊程, 劉濤,范勇. 基于虛擬顯示的數據結構三維動態教學系統[J]. 實驗技術與管理, 2012(1): 74-75.
[4] 安博教育集團. Java核心技術[M]. 北京:電子工業出版社, 2012: 2.
[5] Rober L.Java數據結構與算法[M]. 許曉云, 趙研, 曾希, 譯. 北京: 中國電力出版社, 2004: 2.
[6] 曾憲波. 適合學生的教育才是優質教育[J].湖北教育, 2012(9): 32-33.
[7] 張乃孝. 算法與數據結構: C語言描述[M]. 北京: 高等教育出版社, 2006: 12.
[8] 吳亞峰, 蘇亞光. Android游戲開發大全[M]. 北京: 人民郵電出版社, 2012.
[9] 詹建飛. 想到做到: Android開發關鍵技術與精彩案例[M]. 北京: 電子工業出版社, 2012.
[10] 王慧琴, 吳慶豐, 梁曉軍. 以應用為導向的大學物理實驗改革的探討[J]. 實驗技術與管理, 2012(9): 148-149.
(編輯:孫怡銘)
第一作者簡介:張瑞霞,女,高級實驗師,研究方向為數據結構與信息安全,rxzhang@guet.edu.cn。
基金項目:廣西區級重點項目(2014JGZ117);廣西精品課程數據結構項目;桂林電子科技大學國家級計算機實驗示范中心項目(教高廳函2015[2]號)。
中圖分類號:G642
文章編號:1672-5913(2016)04-0068-03