孫麗云++宋麗輝+朱世英
摘要:針對目前數(shù)據(jù)結構課程中“重理論,輕實踐”的現(xiàn)狀,以“數(shù)據(jù)結構”課程體系建設為契機,以應用型教材建設為主線,將“數(shù)據(jù)結構”課程與“運籌學”課程教學相結合,開辟一條通過交叉學科建設將不同課程內容融會貫通,增強學生解決多領域問題綜合能力的教學改革新思路。
關鍵詞: 數(shù)據(jù)結構;課程體系;運籌學;應用型;多學科
中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2016)04-0123-02
Multidisciplinary Applied“Data Structures” Course System Construction
SUN Li-yun,SONG Li-hui, ZHU Shi-ying
(Yanqing Institute of Technology, Sanhe 065201, China)
Abstract: Base on the reality of “academy taking precedence over practice” in data structures course, a novel teaching revolution of multidisciplinary combination to improve the students trouble shooting capability in complex fields was proposed, based on the combination of “data structures” and “planning and management” teaching. This innovation was initiated form “data structures” course system construction, and focused on the applied textbooks application.
Key words: data structures; course system; planning and management; applied;multidisciplinary
本文介紹了河北省高等學校社科研究年度基金項目——“基于多學科的應用型‘數(shù)據(jù)結構課程體系建設綜合研究”的研究過程及各項研究成果。
1 教材建設
1)《數(shù)據(jù)結構從應用到實現(xiàn)(C語言版)》是在深入研究國內外數(shù)據(jù)結構優(yōu)秀教材和大量文獻的基礎上,結合各位作者多年的教學經(jīng)驗和科研實踐編寫而成。
① 本書注重理論與實踐相結合,每章導讀中利用生活實例引出相關的知識點,這些案例都是編者根據(jù)生活實例原創(chuàng)的。
如第3章棧和隊列的導讀部分為:小王搬新家,他找來了搬家公司,搬家公司的員工將家里的床、沙發(fā)、衣柜等依次裝入搬家用的貨車中;到了新家后,貨車中貨物只能按和裝車相反的順序往外搬,因為對于搬家的貨車,它裝貨物的車廂只有一個進出口,裝貨、卸貨都在車門處進行,所以先放進去的貨物需要最后搬出來,這與本節(jié)要介紹的棧的操作特點相似;
小王搬完家后要去銀行取錢,來到銀行已經(jīng)有很多人了,他在門口的自動叫號機上拿到一個號碼等待工作人員呼叫其辦理業(yè)務,并顯示他前面還有5人在等待。叫號機維護的功能是:先到的人先辦理業(yè)務,后到的人后辦理業(yè)務,這與本節(jié)要介紹的隊列的操作特點相似。
② 在每種數(shù)據(jù)結構介紹完都會舉一個應用案例,讀者在學習知識點的基礎上能夠與實際結合,學有所用。
如隊列的應用舉例為:一次華爾茲舞會,有男女若干人參加,男女各排一隊,跳舞開始時,依次從男女隊伍的隊頭出一人配成舞伴。若兩隊初始人數(shù)不同,則較長一隊中未配對者等待下一輪舞曲。請寫出算法模擬舞伴配對問題,顯示出每對舞者的信息。
③ 本書中所有算法都采用C語言函數(shù)的形式描述,這些函數(shù)中都在關鍵語句做了詳細注釋,并已在Visual C++6.0運行環(huán)境下調試運行,書中給出了程序運行結果的截圖,便于讀者理解算法,并方便讀者對基本運算進行驗證,在此基礎上學會應用。
如隊列應用舉例給出的程序運行結果截圖1所示。
圖1 隊列應用舉例程序運行結果截圖
利用圖1的截圖,學生在學習的過程中,能夠看到程序運行的結果,直觀了解題目原意,從而更好的理解代碼。
2)很多學生在學習數(shù)據(jù)結構的時候存在“理論強,實現(xiàn)弱”的現(xiàn)象。即課堂上所講算法都明白,但自己卻無法實現(xiàn)這些算法。對此《數(shù)據(jù)結構實驗指導與習題解析》一書提出了有針對性的舉措:
①《數(shù)據(jù)結構實驗指導與習題解析》的實驗指導部分,在“基本實驗練習”中給出了一個問題的完整實現(xiàn)算法,學生可以先通過讀代碼,來理解算法;在“自己動手做練習”中給出了一個相似的問題,學生可以借助解決相似問題,進一步理解算法,并且在本部分只給出了程序運行的界面圖,即給出了具體要求,但沒有給出代碼,學生可模仿“基本實驗練習”中的代碼來實現(xiàn),進行自我練習;在“綜合應用實例”中給出了一個綜合應用的例子,并給出了具體的實現(xiàn)代碼,學生可以將本部分知識進行綜合應用。
在實驗指導的最后部分給出了2個綜合的課程實驗,分別對線性結構和樹型結構進行了綜合考量,學生可以在學完每部分知識后進行綜合練習。
②習題解析部分是對課本課后習題進行了詳細的解析,選擇題和填空題不是僅給出答案,而是給出了結果的分析過程;編程題每道都給出了代碼及詳細的注釋。
在習題解析的最后增加了一份自測練習題,這份自測練習題完全按照期末試卷的形式,標識出了每部分的分數(shù),學生在學習了全部的知識點之后,在進行期末考試之前可以通過這份自測練習題來檢驗自己的學習情況。
在實驗指導部分沒有再羅列習題,因為主教材的課后習題部分是經(jīng)過嚴格篩選,包含相關章節(jié)的全部知識點,并給出了詳細的解析,學生通過這部分習題能夠掌握全面知識,不用重復練習相同的知識點。課題研究過程中,將題庫放在了教學網(wǎng)站中建設。
2 教學網(wǎng)站的建設
由北京化工大學夏濤老師建設的教學網(wǎng)站www.5ic.net.cn中,新建了關于《數(shù)據(jù)結構》課程的應用,網(wǎng)站中包括:定義考試、成績管理、學生作業(yè)、評分規(guī)則、教學組考題、考題維護、考題審核等模塊。里面共包含單選題、多選題、填空題、判斷題、問答題等多種題型的600多道題目,學生平時可以在線做練習,可以在自己不理解的題目下面進行討論,教師或者其他同學都可以回答同學的提問,答疑不再局限于在教室或者辦公室,教師在家也可以完成答疑,并且其他同學也可幫助老師來答疑。
教師也可以利用教學網(wǎng)站進行平時測驗,期中考試、期末考試等,客觀題可以自動判卷,目前在燕京理工學院和北京郵電大學世紀學院等高校使用。
可以挑選教材中任何章節(jié)的題目,每章題目分3個難度,分別以1,2,3表示,根據(jù)考試的層次來挑選試題的難度組合,進行組卷考試。
也可以自動組卷,即教師只定義試卷結構,如試卷只包含10道選擇題,其中第1章2道題目,難度為2;第2章2道題目,1道難度為1,1道難度為3;第3章4道題目,難度為3;第6章1道題目,難度為1;第8章1道題目,難度為2。系統(tǒng)會自動在題庫中所有題目里挑選符合要求的題目,自動組成一份試卷。
3 相關論文發(fā)表
在開展課題研究的過程中,我們注重將課題研究的成果整理成論文發(fā)表,其中發(fā)表于《電腦知識與技術》期刊中的文章,重點介紹了分層次教學改革的過程;發(fā)表于《課程教育研究》期刊中的文章,則系統(tǒng)介紹了數(shù)據(jù)結構課程體系建設過程,論文經(jīng)該期刊專家評審,榮獲優(yōu)秀論文一等獎。
4 其他應用
在進行數(shù)據(jù)結構課程講解時,我們利用案例教學法、分組教學法、分層次教學方法等等展開教學改革。其中在上機時,我們根據(jù)同學的不同層次給出了不同的要求,如對基礎好,能力強的同學,要求其針對給出的案例充分利用各種數(shù)據(jù)結構完成實例編程。其中計科的某位同學在上機過程中,完成了運動會計分系統(tǒng)和學生績點計算系統(tǒng)等幾個可以在平時的學習生活中使用的系統(tǒng)。學生績點系統(tǒng)里他根據(jù)燕京理工學院的實際情況,按照績點換算要求,每位同學只要輸入自己成績,就能得出最終的績點。在完成系統(tǒng)的過程中,他遇到了一個問題,學生的成績有百分制與五分制,學生成績該用什么數(shù)據(jù)類型存儲,因為他是大二學生,學期初只有C語言的基礎,教師引導他用共用體數(shù)據(jù)類型實現(xiàn),等到了期末,他發(fā)現(xiàn)在Java語言里實現(xiàn)起來很方便,這表示他能夠自動將各科知識聯(lián)系起來進行綜合運用。對于這部分同學只要給予適當引導,不用花費大量時間指導。
對基礎差,能力弱的同學要求其完成課本上的基本算法實現(xiàn),并適當引導鼓勵,激發(fā)這部分同學的學習興趣,并需要花費大量的時間來進行單獨的輔導;對于基礎尚可,但上課注意力不夠集中的同學,我們采取上課指定座位的方法督促其認真學習。
在進行課程設計時,我們提供了至少50道題目,要求每個班級里不能有題目重復的同學,每個同學綜合利用所學數(shù)據(jù)結構知識來完成實際案例的實現(xiàn),且做完后通過答辯的形式檢查,最后老師根據(jù)學生代碼實現(xiàn)、答辯情況及報告等給出綜合分數(shù)。
《運籌學》教師提供了20道運籌學的常見題目,我們發(fā)現(xiàn)這些題目的知識點其實就是數(shù)據(jù)結構中的關鍵路徑、最短路徑、最小生成樹等基本算法,而這些算法學生在做課程設計時都已經(jīng)實現(xiàn),并進行了更實際的應用,如將圖里的“最短路徑”算法實現(xiàn)并用于校園導航中;將“關鍵路徑”算法實現(xiàn)并用于實際工程應用中等等。將學生實現(xiàn)的這些代碼提供給運籌學教師,老師在課堂上講解知識點時,將計科學生演示給其他專業(yè)的學生看,這些學生覺得知識點更直觀、明了,得到了較好的教學效果。
5 結論
通過《數(shù)據(jù)結構》課程體系建設,學生的實際應用能力得到了加強,同時學生在《數(shù)據(jù)結構》課程設計中編寫的代碼幫助學習《運籌學》的非計算機專業(yè)的學生更好地理解了相關知識點,學習成果得到了充分的利用,講授《運籌學》的老師的教學也輕松。學生的成就感加強,更有助于其進行相關的研究學習。
參考文獻:
[1] 馬睿,孫麗云.數(shù)據(jù)結構(C語言版)[M].北京:北京郵電出版社,2009.
[2] 孫麗云,劉淑艷,李珊. 大學計算機課程教學改革實踐[J].電腦知識與技術,2015,11(17):121-122.
[3] 孫麗云,劉淑艷,李珊. 基于多學科的應用型“數(shù)據(jù)結構”課程教學改革探討[J].課程教育研究,2015(33):28-29.