楊力



摘要:數據結構是電子信息類專業的核心課程,傳統的教學與最新的技術發展脫節,難以激發學生的學習興趣。將數據結構教學與目前廣泛使用的智能終端應用相結合,在新的軟件開發平臺上開展數據結構的創新教學改革,對提高學生的算法設計、編程能力等方面起到了很好的效果。
關鍵詞:數據結構;Android編程;項目驅動教學
中圖分類號:G642.0 ? ? 文獻標志碼:A ? ? 文章編號:1674-9324(2015)44-0108-02
移動互聯網和智能終端設備深刻地改變著人們的生產和生活方式。近幾年,智能手機出貨量已經數倍于傳統微型計算機,并成為人們訪問互聯網的最常用設備。移動智能終端包括手機、平板電腦、智能手表等,幫助人們完成了絕大多數過去依賴電腦才能進行的任務。
數據結構是電子信息專業的軟件類核心課程,注重理論和編程實踐相結合[1]。傳統的教學實踐以C/C++作為編程描述語言,以Windows或Linux系統作為算法編程實踐平臺[2]。這種教學方式的好處是能專注于培養學生的算法設計和編程等基本能力,但缺點也很明顯,學生很難將課堂所學與實際應用聯系起來。數據結構課程有一定的難度,內容略顯枯燥,如果課堂教學不能與實際應用和軟件技術發展趨勢緊密結合,則很難激發學生的學習興趣,教學效果不理想。
軟件開發類課程需要引導學生接觸新的軟件開發技術和項目實踐,讓學生體會到學有所用,增強學習興趣和信心。目前國內已有很多研究者開展了以工程項目實踐為導向的數據結構教學[3],使學生將算法設計與工程實踐結合起來。但在實際教學實踐中,還有很多難點。一方面,工程實踐要求學生具備較好的編程基礎,而學生在先修的編程語言課程中基礎參差不齊[4];另一方面,在有限的學時內,學生很難兼顧工程實踐和算法設計的學習。
本文基于新的實踐開發平臺,以解決上述問題為出發點,進行了數據結構課程的創新改革實驗。
一、數據結構編程實踐平臺
在當前移動互聯網帶來深刻變革、智能終端普及、個人電腦產業萎縮的背景下,傳統的基于PC編程開發環境的數據結構教學已經與實際應用脫節。數據結構是一門注重編程實踐的課程,基于目前廣泛使用的智能手機、平板電腦、智能手表等智能終端進行教學,不僅可以激發學習興趣,而且非常容易地為學生的后續深入學習和接觸產業打下基礎。
我們選擇Android作為教學實驗編程平臺。Android是目前各種智能終端中使用最廣泛的操作系統,主要支持Java/C++編程語言。基于新的教學實驗平臺,以Java/C++作為編程描述語言,設計新的實踐教學方案。
二、實踐教學設計特點
我們針對智能終端平臺,對實踐教學環節進行了重新設計,遵循以下特點:首先,始終以數據結構基本算法的理解和實現為重點,在此基礎上,讓學生根據自身興趣,對應用開發有不同程度的了解;其次,實踐教學的設計既適合課堂講授,也適合實驗教學,便于不斷加深學生的理解;最后,以完成實際項目作為學習任務,注重項目功能模塊細分,使學生容易跟隨教學進度。
采用實際項目進行教學會導致知識點龐雜,學生學習難以抓住重點。因此,對教學知識點的取舍和重難點劃分至關重要。在教學知識點方面,我們采取的原則是,以基本算法設計和面向對象的編程思想的應用為重點,以智能手機為主要的應用平臺進行教學,把編程語法和平臺相關的知識點放在次要位置。
三、實踐教學項目案例
(一)基于Android的學生信息管理程序
項目涉及線性表、查找、排序等知識點。具體要求為,輸入學生姓名、學號、分數等信息,按照不同的關鍵字對學生信息進行排序,并顯示結果。教案設計采取循序漸進、分模塊講解的原則,引導學生把重點放在算法的理解與實現上。項目分為三個可獨立運行的模塊,可在不同章節講授,敘述如下。
1.信息的輸入和顯示,涉及線性表的創建、添加、刪除。要求采用順序表或鏈表實現,輸入學生信息,點擊添加,將信息逐個插入到線性表并顯示。Android控件相關知識,僅作簡單介紹,提供參考代碼。
2.信息的查找,涉及線性表的查找。要求按某個關鍵字查找,列出符合條件的學生。
3.信息的排序,涉及內部排序。要求學生采用指定算法實現基于任意關鍵字的排序。作為選做題,要求學生用Java中的泛型編程實現基于任意指定關鍵字的排序,以及用comparable接口實現學生對象的比較。
(二)圖的應用(拯救007)
項目改編自浙江大學計算機學院數據結構公開課中的一道例題,通過基于Android的可視化編程,使項目變成游戲開發任務,讓學生獲得更加直觀的理解和感受,大大提高了學習興趣。項目具體要求為,“007”被困在湖中心一個正方形的小島上,湖上有很多鱷魚在游動,請幫助“007”來判斷,在某個時刻,能否通過鱷魚背,連續跳躍到湖岸上。
項目引導學生在經典的深度優先搜索算法基礎上編程求解。湖的寬度、鱷魚的數目、“007”一次可以跳躍的最大距離等作為參數輸入,鱷魚的初始狀態可隨機產生。對應用程序涉及到的Android繪圖知識僅作簡單講解,并提供參考代碼。
(三)最優二叉樹的應用
最優二叉樹是二叉樹的經典應用。項目要求根據輸入的權值,創建最優二叉樹,并將二叉樹繪制到屏幕上。項目可分為兩個模塊,分階段講授。
1.二叉樹的建立和繪制。要求學生按指定的順序建立二叉樹,并繪制在屏幕上。
2.最優二叉樹的建立。要求學生根據輸入權值建立最優二叉樹。
通過本項目,使學生對二叉樹章節的算法有全面的理解。應用程序中涉及的Android繪圖知識,僅作簡單講解。
(四)五子棋游戲的應用
項目要求學生設計一個基于Android的簡單的五子棋游戲,提供基本的參考代碼,引導學生完成棋局的判定勝負等算法。項目涉及二維數組的基本操作。
四、教學實踐分析
通過對連續兩年教學對比實驗結果分析,統計了學生的實驗到課率、實驗完成率(獨立完成實驗的學生比例)和實驗平均分,結果如表1所示。從表1可以看出,在實驗難度略有增加的情況下,2015年的三項統計結果均比2014年有所提高。
五、結語
本文開展了以手機等智能終端為實驗平臺的數據結構教學改革探索,通過對實踐教學環節的重新設計,以基本算法為教學重點,注重功能模塊劃分。教學實踐表明,新的教學方案容易激發學生的興趣,提高教學效果,能夠引導學生了解實際工程項目。
參考文獻:
[1]嚴蔚敏,吳偉民.數據結構(C語言版)[M].北京:清華大學出版社,2011.
[2]孔兵,陳紅梅,袁國武.數據結構實驗中指針相關問題[J].教育教學論壇,2014,(04):110-112.
[3]趙立雙,王麗君,孫蕾.以“工程實踐”能力培養為導向的《數據結構》課程實踐教學體系的構建[J].電子設計工程,2013,(02):7-9.
[4]王作為,鄒曉健.分類培養目標下的數據結構教學方法的研究探索[J].中國電力教育,2013,(4):58-59.