田豐 來齊齊 王亮
摘 要 本文針對高等院校培養創新人才的過程中面臨的困難和挑戰,深入分析數據結構課程的教學中存在的現實問題,通過對學生學習狀況的了解,以及課堂內外的交流溝通,提出了以培養學生動手能力為核心的教學方案,激發學生學習的主動性,引導學生進行研究性學習。
關鍵詞 數據結構 創新人才 教學改革
中圖分類號:G642 文獻標識碼:A DOI:10.16400/j.cnki.kjdks.2018.01.023
Exploration of Data Structure Reform for Innovative Talents Cultivation
TIAN Feng, LAI Qiqi, WANG Liang
(School of Computer Science, Shaanxi Normal University, Xian, Shaanxi 710119)
Abstract In order to solve the challenges and difficulties in the cultivation of the innovative talents, this paper analyzes the problems in the teaching process of data structure curriculum in-depth. We comprehend the learning status of students and communicate with students in the classroom and after the class, then propose the teaching program to cultivate the coding ability of students. This program is also able to stimulate the students learning initiatives and guide them to do some research work.
Keywords data structure; innovative talents; educational reform
0 引言
數據結構課程是計算機科學與技術專業的一門專業基礎課,也是程序設計的重要理論技術基礎。通過該課程的教學,使學生學會分析研究計算機加工的數據結構的特性,從而能夠根據所需解決問題的要求選擇適當的邏輯結構、物理結構及其對應的算法,并能夠初步掌握對算法的時間復雜度和空間復雜度進行分析的方法。與程序設計語言課程的差別在于,程序設計語言課程注重語法結構,需要學生掌握該語言的核心用法,對解決的具體問題不做深入分析,數據結構課程的學習過程則是復雜程序設計的訓練過程,要求學生編寫的程序結構清楚,易于理解,并符合軟件工程的規范,重點培養學生的數據抽象能力。本文從對數據結構課程教學現狀的分析出發,以提高學生的實踐創新能為重點,對數據結構課程的教學改革模式進行探索分析。[1][2]
1 數據結構課程教學現狀分析
數據結構是用程序解決實際問題的方法論,在實際的教學實踐中,也是一門既難教又難學的課程,目前,在大部分院校中,都是以課堂講授的方式對各種結構的邏輯存儲、物理存儲、以及基于此的相關算法進行介紹,再輔助少量的編程實踐,通過短短一個學期的學習,大部分同學僅僅對數據結構有一個大致的了解,能夠簡單分析不同結構的特點,但是對如何將學到的數據抽象能力應用到實際生活中,解決具體的問題,設計相應的物理結構、處理算法,則還存在較大的差距。根據對數據結構課程教學的分析調研,目前,該課程的教學存在的問題包括以下幾點。
(1)學生缺乏扎實的編程功底。程序設計語言是計算機專業學生的初始課程,但是由于大部分學生在入學時并沒有程序設計的基礎,僅通過短短一個學期的學習,很難掌握程序設計的精髓,大部分學生對于程序設計語言的學習僅僅停留在了對于概念的背誦和代碼的記憶上,并沒有深入理解程序設計的核心內容,缺乏計算思維的訓練。加之函數、指針、結構體、聯合體等概念,以及循環、分支等程序結構較難入門,學生很難迅速轉換到大學的學習模式,并且由于課時不足,學生很難和授課教師建立順暢的溝通,導致很多學生僅僅知道什么是程序設計,但卻缺乏編程實現的基本能力,進而使得學生在學習更高級的數據結構課程時難度更大。
(2)教學過程缺乏溝通反饋。在進行數據結構課程的講授時,教師由于課時和知識點的沖突,往往將大量的時間放在了基本概念等理論知識的講解上,而對于更加重要的動手能力的培養,則放在了相對次要的位置,由于學生無法在課堂消化數量眾多的知識點,導致在實際編程上機時,存在無從下手的情況,并且理論講授和實踐過程脫離后,學生會產生挫敗感,更難在課堂上進入學習狀態,進而進一步影響到編程上機,形成惡性循環,導致教學過程的效果較差。
(3)學生學習動力不足。由于數據結構課程偏基礎,著重方法和思維能力的訓練,而學生感興趣的課程則偏向于實際應用,由于課時安排和知識點分布不合理,導致學生很難進入到高效的學習狀態中,課堂上無法跟上講授的內容,編程上機時更是難以熟練運用。加之基于傳統的課程評價體系,該課程在進行測試評價時,通常采用平時成績和考試成績綜合的方式,且平時成績僅考慮學生的到課情況,并不能真實反應學生的課堂表現或者編程實踐效果,而期末考試則主要以筆試答題的模式,無法準確評測學生掌握知識的水平,且筆試模式使得學生只重視對于知識點、概念的記憶,而忽略了對知識的靈活運用能力,這與創新人才培養的目標是背道而馳的。改變課程的考核機制也是我們在進行教學改革探索中的重要一環。
2 數據結構課程教學改革探索
2.1 數據結構課程教學內容選擇
數據結構課程涉及了大量的知識點,包括線性表、棧、隊列、數組和廣義表、樹、圖、查找和排序等重點內容。通常授課課時為72學時,如何在有限的課時安排內高效傳授數據結構課程的精髓,訓練學生的創新能力,培養他們的計算思維,值得深入探索。傳統的教學模式通常會覆蓋除了外部排序、存儲管理的所有知識點,由此帶來的問題是,很難將其中任何一個知識點或者算法思想講深講透,只能淺嘗輒止,學生也難以產生學習的興趣,疲于應付對知識點的覆蓋,產生厭煩情緒(見圖1)。[3][4]
因此,針對該問題,可以考慮選擇數據結構課程中有代表性的內容進行深入剖析,將一類問題用一個實例講透徹,比全而不精的效果要好,學生也容易加深概念的理解,產生學習的興趣,并能夠自己動手進行實現。例如,對于線性表結構,我們可以嘗試不直接從概念、邏輯結構、物理結構、算法這樣的講授流程開始,而是從多項式的計算問題開始,先討論如何解決多項式的存儲問題,由此便可以引入線性表的動態和靜態存儲方式,讓學生自己發現動態和靜態存儲方式的優缺點,并能夠根據實際應用的需要選擇合適的存儲結構,進而設計針對該結構的數據處理算法,實現對多項式的運算。在數據結構課程中,還有很多經典的案例,例如迷宮求解、表達式計算、最短路徑生成等,通過問題導向的方式,以有趣問題出發,引出解決該問題所需要涉及的概念、方法、技術,進而實現數據抽象、算法設計分析、編碼實現運行,由此將繁雜的知識點進行提取,將學生和教師從全覆蓋的模式中解放出來,集中精力吃透核心思想,培養動手能力和計算思維,由此才能實現創新能力的培養。
2.2 數據結構課程實驗內容的革新
在數據結構課程的教學過程中,還會配備一定課時的上機內容,通常是4個課時的課堂內容搭配2個課時的上機編程。但是在實際的上機的過程中,由于教學內容覆蓋較廣,對本章節的精髓核心并沒有講深講透,并且在課堂也缺乏對于編程實踐的指導,上機內容多局限于數據結構課程內容的簡單復制,且由于學生的編程基礎不足,出現無法實現基本算法的情況。[5]針對該現狀,需要在可能內容更新的基礎上,對實驗內容進行同步革新。改變傳統的教師布置上機作業,學生上機完成簡單作業的模式,而是要用軟件工程的模式對學生的編程開發進行管理,進而避免學生互相復制抄襲的問題。
在具體的實驗安排上,打破傳統的根據上機課時確定實驗內容的做法,把實驗任務從項目的角度進行分解,拆分成多個子系統,讓學生自由組合,構成項目組,每個同學進行明確的任務分工,每次實驗上機,每個組的同學分別完成不同模塊的開發調試工作,直至到最后整個項目系統的整合完成。這樣的實驗內容符合現代軟件工程的開發理念,在實驗過程中進行的項目需求分析、概要設計、詳細設計、編碼實現、集成、測試、發布等工作,能夠對學生的個人分析能力、動手能力、團隊協作能力進行全方位的鍛煉,并且這個過程需要各個團隊學生自己獨立開發,由此避免了復制抄襲的問題,通過對學生在項目開發過程中所承擔任務大小進行成績評定,可以有效激發學生的實驗積極性,將被動的編碼應付變成主動的學習提高,把對學生創新能力的培養落到實處。
3 結語
數據結構課程是奠定計算機類學生編程基本功的重要課程。目前社會對創新性人才的需求使得數據結構課程的教改刻不容緩,通過對課程的教學內容、教學方式、以及實驗過程進行革新,能夠有效提高該課程的教學效果,提升學生的編程開發能力,并培養學生的計算思維和創新能力。在今后的工作中,我們將根據實際教學的情況,進一步完善數據結構課程教學的改革措施。
基金項目:陜西師范大學2017年度校級全英語教學示范課程項目“智能計算”課程
參考文獻
[1] 劉曉靜,王曉英,張玉安,黃建強,劉志強.以創新人才培養為目標的數據結構實驗教學改革[J].實驗技術與管理,2014.31(11):184-187.
[2] 鐘美.以培養應用型人才為目標的數據結構教學改革[J].計算機教育,2014.14(4):26-29.
[3] 耿淼,包瑩瑩.數據結構課程初步教改的探討[J].電腦與信息技術,2017.25(1):72-74.
[4] 李婷,許鴻儒.《數據結構與算法》的教改問題研究[J].教育教學論壇,2017(23):128-129.
[5] 孟凡榮,張斌,楊雷.數據結構實踐課程的研究性學習及創新實踐能力的教改探索[J].教育教學論壇,2014(49):135-137.