張金芳
摘要 數據結構是計算機類專業的一門專業核心課,本文通過了解該門課程的教學現狀,結合實際教學經驗,總結了目前教學當中存在的問題,提出了一些教學改革建議,以改進后續的教學工作。
關鍵詞:數據結構;教學改革;應用導向
中圖分類號:G642? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)24-0181-02
開放科學(資源服務)標識碼(OSID):
數據結構是軟件工程、計算機科學與技術、數據科學與大數據技術等專業的一門專業核心課程,是培養學生軟件開發能力的基礎[1],同時是數據庫原理、操作系統等課程的先修課,因此,該課程在相關專業課程建設中非常重要。但由于該課程抽象性、邏輯性較強,教學與實際應用開發存在一定的脫節,導致學生掌握困難或者應用困難,因此,有必要針對該課程進行教學改革研究,以期提高教學質量水平,幫助學生更好地掌握該門課程知識,提高實際軟件開發能力,體現教學以學生為中心的理念。
1 教學現狀與存在的問題
2018年9月17日,教育部印發《關于加快建設高水平本科教育全面提高人才培養能力的意見》,對本科教育提出了“推動課堂教學改革”“加強學習過程管理”“提升教學能力”“充分發揮教材育人功能”等要求,因此,傳統的教學模式需要改革。
目前,數據結構課程教學多使用教師講解、提問、討論等教學方法,提高學生參與度與積極性,對于教學效果有一定的提高作用,但由于該門課程本身難度較高,教學效果依然不甚理想。本文以應用型本科院校學生為例,結合以往的教學經驗展開研究,發現在目前的教學中,存在以下問題。
1.1 教學內容脫節
數據結構算法需要高級程序設計語言描述,因此,高級程序設計語言作為該門課程的先修課,夯實學生編程能力的重要性不言而喻。以C語言為例,在C語言程序設計這門課程中,受學生學習能力、掌握情況、課時等條件限制,大多數教師對于結構體和指針部分的教學強度不足,或者學生因臨近期末考試,對此練習較少、掌握不牢,而數據結構這門課程幾乎全程需要數組、指針、結構體等知識進行算法描述,兩門課程的教學銜接性不足,這就導致了教學內容脫節[2],學生即使能聽懂數據結構的理論,也難以將其應用于實踐開發,掌握不牢,長此以往,學習難度增大,積極性下降。
1.2 重要性認識不足導致積極性不高
在以往的教學過程中,不乏學生提問:“學習數據結構有什么用?”,而教師一味強調數據結構的重要性,往往是強調數據結構是考研課,或者數據結構在專業課程體系中的承前啟后作用,這些都是站在教師立場上的重要性,而對于學生來講,其更關心的往往是這門課的內容應用在什么地方、該怎么用。這種認知的偏差導致學生對于該課程的看法偏頗,認識不足,長此以往,學生逐漸認為其在工作中沒什么用處,降低了該課程的學習積極性,對于日常學習就應付了事。
1.3 理論掌握與動手實踐脫節
在數據結構課程設計等實驗教學當中,學生面對應用型或者實際的問題,往往沒有解題思路,學生跟老師反饋最多的問題就是:“我理解數據結構的理論,但是我不知道如何應用的這個問題當中”,這證明,在日常教學過程中,學生更習慣于接受,不習慣獨立思考,因此,應強調培養學生運用所學理論解決實際問題的能力。
1.4 教學內容受考試影響,重點偏移
數據結構這門課程考核方式往往是日常教學加期末考試的形式,但是,一旦涉及考試,就會出現偏計算性、理論性的知識點考核比例過高、對于實際應用的考核幾乎沒有的現象,這嚴重影響了數據結構的實踐性教學。以二叉樹為例,試卷中,二叉樹部分內容的考試往往大量出現二叉樹的各種性質,而忽略或者避開了用代碼實現某些二叉樹功能的考核,而二叉樹的性質掌握與否,其實并不影響學生是否能用二叉樹的知識解決實際問題,而能否實現創建二叉樹、結點的增刪改查等知識點,才是應用型本科學生必須掌握的內容。因此,考核內容的偏頗,影響了學生學習的重心。
1.5? 教材內容脫離實際,內容抽象無法理解
數據結構可能內容本身就較為抽象、不易理解,而目前的教材大多都照本宣科,講解理論,對于理論內容和算法解釋,甚至例題,都是就題論題,無應用場景,知識點不連貫,內容枯燥。
2 教學改進建議
數據結構的教學包括教學內容、方法、教材、考核等,這幾方面缺一不可,合理改革以上環節,就能達到改善教學效果的目的。
2.1 改革教學內容
2.1.1 集體備課,加強教學研討
根據已制定的學生培養方案,研究培養目標,綜合考慮難度、廣度、應用性,編制適合應用型本科的數據結構課程教學大綱,與先修課即高級程序設計語言課任課教師、后續課程任課教師集體研究教學內容,加強溝通,避免前后課程教學內容脫節,比如程序設計課程教師需重點講解、練習數組、指針、結構體及其綜合應用,從而避免在數據結構課程中,因為動手能力不足造成的學習困難。
2.1.2 明確學習目標,案例教學提高學生積極性
正確為學生說明數據結構在專業課程中的地位,同時強調其于軟件開發當中的重要性,結合實際,應用案例引導[3,4],消除“數據結構課程無應用”的看法。例如,在課程初始或者線性表部分,通過一個實際的案例進行展示,如學生考勤信息管理系統,強調數據結構思想于該項目中的應用;在圖論中,可以用幾個城市間計算最小路徑或者最省路費等問題進行導入式教學,可激發學習數據結構的興趣。
2.1.3 突出應用性,改革教學重點
教學大綱結合學校、學生實際特點,強調基礎性、應用性,同時考慮時代特性和專業特性[5],即時刻考慮當前環境下,于項目開發當中的應用情況,調整教學重點,考慮不同專業的學生,對于知識點的需要情況,調整教學重點。例如,普通軟件開發中,外排序部分應用較少,同時教學又過于抽象,可以刪除這樣的章節;例如二叉樹的性質部分,在開發中實際應用性差,可以略講。同時,在講解知識點過程中,通過實際案例,說明該知識點的應用環境。