高廣銀,姜楓,丁勇
(南京理工大學(xué)泰州科技學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系,泰州 225300)
應(yīng)用型人才培養(yǎng)過程中《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)改革
高廣銀,姜楓,丁勇
(南京理工大學(xué)泰州科技學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系,泰州225300)
人們使用計(jì)算機(jī)求解實(shí)際問題,其核心是算法設(shè)計(jì),而算法設(shè)計(jì)又高度依賴于數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)的選擇則取決于問題本身的需求。隨著計(jì)算機(jī)科學(xué)的發(fā)展,數(shù)據(jù)結(jié)構(gòu)不斷完善,它作為一門重要的專業(yè)核心必修課程,既是對以往課程的深入和擴(kuò)展,也為深入地學(xué)習(xí)其他專業(yè)課程打下基礎(chǔ),成為研究與構(gòu)筑計(jì)算機(jī)求解問題過程的兩大基石之一[1]。然而在實(shí)際教學(xué)過程中,《數(shù)據(jù)結(jié)構(gòu)》課程面臨著諸多問題,在新的教育形勢下教學(xué)改革勢在必行。今年上半年教育部副部長魯昕透露,中國高等教育將發(fā)生革命性調(diào)整,將有600多所高校轉(zhuǎn)向職業(yè)教育,培養(yǎng)技能型人才[2],盡管改革的細(xì)節(jié)沒有披露,但社會(huì)輿論及市場調(diào)研顯示我國高等教育將調(diào)整研究型與應(yīng)用型的比例,即與企業(yè)對接加強(qiáng)應(yīng)用型人才的培養(yǎng)。在培養(yǎng)應(yīng)用型人才的過程中如何重新審視專業(yè)課程教學(xué),密切聯(lián)系實(shí)際,適應(yīng)人才培養(yǎng)的需求,值得共同研究,本文在學(xué)校立項(xiàng)支持下對《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)改革做一些探索。
1.1課程本身難度大
《數(shù)據(jù)結(jié)構(gòu)》課程作為專業(yè)核心課程不僅邏輯性強(qiáng),而且極抽象,很多內(nèi)容即使利用課件或動(dòng)畫也無法完全將理論知識(shí)很直觀地表現(xiàn)出來,不花足夠的時(shí)間揣摩很難理解。此外《數(shù)據(jù)結(jié)構(gòu)》課程內(nèi)容較多,知識(shí)結(jié)構(gòu)龐大,往往前面所學(xué)知識(shí)還沒有完全理解,新的知識(shí)就接踵而至,這使得問題不斷堆積,不少學(xué)生在心理上感到恐懼,難度非常大。
1.2先導(dǎo)課程不扎實(shí)
數(shù)據(jù)結(jié)構(gòu)與算法課程的先導(dǎo)課程有高等數(shù)學(xué)、高級程序設(shè)計(jì)和離散數(shù)學(xué)等。學(xué)生在學(xué)習(xí)該課程前必須能夠較好地掌握這幾門課程。例如,分析算法時(shí)需要一定的數(shù)學(xué)基礎(chǔ);理解和實(shí)現(xiàn)算法時(shí)需要熟練地運(yùn)用高級程序設(shè)計(jì)語言。由于數(shù)據(jù)結(jié)構(gòu)中的算法大多采用類C、C語言或C++描述,而學(xué)生對于預(yù)定義常量和預(yù)定義類型的作用與用法、函數(shù)返回執(zhí)行狀態(tài)的作用與用法、函數(shù)定義和調(diào)用的方法、使用類型定義(typedef)描述存儲(chǔ)結(jié)構(gòu)的方法、指針及動(dòng)態(tài)內(nèi)存分配與釋放的原理與方法普遍掌握不好,這些知識(shí)通常安排在C語言課程的最后,其重要性易被學(xué)生忽視,不少學(xué)生教條地去遵守語法規(guī)則應(yīng)付了考試,卻未真正搞懂這些知識(shí)的運(yùn)用,導(dǎo)致其在后續(xù)課程數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)中對新知識(shí)的理解消化與實(shí)踐應(yīng)用受到阻礙。在數(shù)據(jù)結(jié)構(gòu)課堂教學(xué)中,教師往往不得不花一部分時(shí)間在C語言的復(fù)習(xí)上。盡管如此,學(xué)生仍然模糊不清,教學(xué)效果不理想,久而久之,有些學(xué)生甚至失去了學(xué)習(xí)興趣。因此,先導(dǎo)課程掌握不扎實(shí),給《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)埋下了隱患。
1.3實(shí)踐動(dòng)手能力弱
《數(shù)據(jù)結(jié)構(gòu)》是一門理論與實(shí)踐并重的課程,其教學(xué)要求之一是培養(yǎng)學(xué)生進(jìn)行復(fù)雜程序設(shè)計(jì)的技能和養(yǎng)成良好程序設(shè)計(jì)的習(xí)慣。對提出的問題,要求學(xué)生能通過分析,正確選擇相應(yīng)的數(shù)據(jù)結(jié)構(gòu)和算法,編寫程序解決,從而提高分析和解決問題的能力,這是學(xué)以致用的檢驗(yàn),所以在整個(gè)教學(xué)過程中,完成上機(jī)實(shí)驗(yàn)是個(gè)至關(guān)重要的環(huán)節(jié)。但是在實(shí)際教學(xué)中,一方面課時(shí)有限,平均每兩周一次上機(jī)課,每次2學(xué)時(shí);另一方面學(xué)生沒有課前預(yù)習(xí)習(xí)慣,所有問題都在上機(jī)課時(shí)暴露,能當(dāng)場解決便解決,不能解決的課后多數(shù)不能獨(dú)立完成。由于實(shí)踐訓(xùn)練不足,理論課上的算法成了“紙上談兵”,學(xué)生學(xué)得較膚淺,聽課就更覺得枯燥乏味,從而惡性循環(huán),教師在授課時(shí)也覺困難重重。
針對以上存在的問題,整體教學(xué)改革思路是轉(zhuǎn)變思想,站在學(xué)生的角度思考,結(jié)合社會(huì)及用人單位的需求,重新整合教學(xué)內(nèi)容,充分調(diào)動(dòng)學(xué)生積極性,發(fā)揮學(xué)生主體性[3],否則再好、再科學(xué)的培養(yǎng)方案、教學(xué)計(jì)劃都無法落到實(shí)處。
2.1理清知識(shí)脈絡(luò)
從使用計(jì)算機(jī)解決現(xiàn)實(shí)具體問題出發(fā),理清數(shù)據(jù)結(jié)構(gòu)、算法及程序的概念及其關(guān)系[4],以及數(shù)據(jù)結(jié)構(gòu)的研究內(nèi)容包括數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)及數(shù)據(jù)的運(yùn)算,進(jìn)而引出線性結(jié)構(gòu)、樹形結(jié)構(gòu)、圖形結(jié)構(gòu)等,合理地展示知識(shí)的框架[5]。
如圖1所示,使用計(jì)算機(jī)解決實(shí)際問題,首先對實(shí)際問題進(jìn)行建模得到抽象模型,抽象模型包括了數(shù)據(jù)的邏輯結(jié)構(gòu);算法設(shè)計(jì)者通過設(shè)計(jì)算法來求解模型,表示數(shù)據(jù)的運(yùn)算,算法的設(shè)計(jì)將受到數(shù)據(jù)的邏輯結(jié)構(gòu)的影響;將抽象模型映射到計(jì)算機(jī)內(nèi)存儲(chǔ)器便是數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),它會(huì)影響程序員通過高級編程語言將算法實(shí)現(xiàn);程序再由編譯器翻譯成計(jì)算機(jī)可以直接識(shí)別的機(jī)器指令,計(jì)算機(jī)執(zhí)行指令完成對實(shí)際問題的求解。通過這一過程,學(xué)生可以更好地理解數(shù)據(jù)結(jié)構(gòu)研究的對象,把握學(xué)習(xí)的思路,明確實(shí)踐的要求。
2.2復(fù)習(xí)前導(dǎo)課程
前導(dǎo)課程知識(shí)是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)。C語言中的結(jié)構(gòu)體和指針是描述存儲(chǔ)結(jié)構(gòu)的手段,C語言本身也是將算法轉(zhuǎn)換成程序的高級編程語言之一[6]。那么在實(shí)施數(shù)據(jù)結(jié)構(gòu)教學(xué)時(shí),要給學(xué)生點(diǎn)明C語言中與數(shù)據(jù)結(jié)構(gòu)相關(guān)性大的知識(shí),適當(dāng)?shù)貜?fù)習(xí),結(jié)合學(xué)生掌握情況布置復(fù)習(xí)任務(wù),抓住兩門課程之間的銜接點(diǎn)組織教學(xué),學(xué)生往往會(huì)在復(fù)習(xí)知識(shí)時(shí)產(chǎn)生一種親切感,從而平滑地過渡到新課程中來。同時(shí),教師應(yīng)將復(fù)習(xí)重點(diǎn)從編程語言語法轉(zhuǎn)變?yōu)榫幊趟季S訓(xùn)練、能力培養(yǎng),安排好進(jìn)度,在第一次實(shí)驗(yàn)課時(shí)檢驗(yàn)學(xué)生們復(fù)習(xí)情況,為數(shù)據(jù)結(jié)構(gòu)課程的展開夯實(shí)基礎(chǔ)。
2.3改進(jìn)教學(xué)方法

圖1 數(shù)據(jù)結(jié)構(gòu)概念導(dǎo)入圖
鑒于數(shù)據(jù)結(jié)構(gòu)是使用計(jì)算機(jī)解決實(shí)際問題的基石之一以及其內(nèi)容的抽象性,教師在第一次課作課程介紹時(shí),應(yīng)通過介紹數(shù)據(jù)結(jié)構(gòu)的實(shí)際應(yīng)用激發(fā)學(xué)生的學(xué)習(xí)興趣。例如,走迷宮問題,如何記住走過的路;學(xué)校的圖書管理系統(tǒng),如何快速地查找圖書信息;出門旅行,如何選擇線路節(jié)省開支;一個(gè)工程,如何科學(xué)管理才能實(shí)現(xiàn)最短工期;以及八皇后問題、背包問題等。這些問題或者有一定實(shí)用性,或者有一定趣味性,能激發(fā)學(xué)生一探究竟的愿望和學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)知識(shí)的興趣,有興趣便是好的開始。
在接下來的課程中,同樣應(yīng)注意通過實(shí)例導(dǎo)入課程知識(shí),例如講解棧結(jié)構(gòu)時(shí),可以用彈匣的例子,裝彈時(shí)子彈一個(gè)個(gè)地壓進(jìn)彈匣,發(fā)射時(shí)子彈從彈匣頂部依次射出,這是先進(jìn)后出原則,而且只在一端操作。講解隊(duì)列時(shí),可以舉學(xué)生食堂排隊(duì)打飯的例子,排隊(duì)總是排到隊(duì)尾,總是隊(duì)伍最前面的人打完飯后離開隊(duì)伍,這是隊(duì)列結(jié)構(gòu),先進(jìn)先出,而且一端插入、另一端刪除操作。通過例子過渡到知識(shí)點(diǎn),學(xué)生易于理解,不覺得枯燥。
數(shù)據(jù)結(jié)構(gòu)中很多內(nèi)容較抽象,僅通過課件表達(dá)不夠形象,可以制作動(dòng)畫呈現(xiàn)。特別地,可以列舉出一些難度適中的算法,讓學(xué)生自主選擇、不限技術(shù)做成動(dòng)畫展示,進(jìn)行評講和評比,并計(jì)入平時(shí)成績加分,充分調(diào)動(dòng)學(xué)生積極性。筆者在教改過程中發(fā)現(xiàn),學(xué)生會(huì)借此機(jī)會(huì)組織了一場“課程動(dòng)畫制作大賽”,通過網(wǎng)頁、Flash、幻燈片等多種形式將數(shù)據(jù)結(jié)構(gòu)中算法、C語言中指針運(yùn)算等以動(dòng)畫形式描述,并通過評比擇優(yōu)進(jìn)行再創(chuàng)作,與教師討論,制作成優(yōu)秀的作品,當(dāng)學(xué)生署上自己的姓名時(shí),自豪感油然而生。而且通過這樣的活動(dòng),學(xué)生們其他方面的技能也得到了鍛煉和提高。
《數(shù)據(jù)結(jié)構(gòu)》是一門實(shí)踐性很強(qiáng)的課程[7],基本概念的理解、原理方法的掌握通過算法的實(shí)現(xiàn)體現(xiàn),針對學(xué)生動(dòng)手能力弱的問題對實(shí)驗(yàn)教學(xué)進(jìn)行改進(jìn),首先要保證上機(jī)課的數(shù)量。傳統(tǒng)的主理論輔上機(jī)的教學(xué)方式,對于培養(yǎng)科學(xué)型、工程型人才固然受用,這些學(xué)生基礎(chǔ)扎實(shí)、主動(dòng)性強(qiáng),但是對于培養(yǎng)應(yīng)用型人才不太合適,他們在抽象能力、舉一反三方面都稍遜,那么需要規(guī)劃理論課與上機(jī)課的比例,調(diào)整部分理論課為上機(jī)教學(xué)課,邊講邊練,將復(fù)雜問題分割,逐個(gè)突破。再結(jié)合自主上機(jī),學(xué)生達(dá)到一定基礎(chǔ)訓(xùn)練量后,就能夠融會(huì)貫通,綜合運(yùn)用相關(guān)知識(shí)解決復(fù)雜問題,逐步減少依賴,獨(dú)立分析和思考。
其次應(yīng)保證上機(jī)課的質(zhì)量,精心設(shè)計(jì)上機(jī)實(shí)驗(yàn)題。針對應(yīng)用型人才的培養(yǎng),應(yīng)緊扣所學(xué)知識(shí)點(diǎn)選擇有代表性的、難度適中的典型算法及具有應(yīng)用性的實(shí)例作為實(shí)驗(yàn)題。上機(jī)實(shí)驗(yàn)題應(yīng)設(shè)置不同的難度,包括基礎(chǔ)型、驗(yàn)證型、綜合型及設(shè)計(jì)型,并且分為必做題和選做題。基礎(chǔ)型、驗(yàn)證型的題目為必做題,主要鞏固數(shù)據(jù)結(jié)構(gòu)的概念和算法;綜合型、設(shè)計(jì)型的題目為選做題,訓(xùn)練學(xué)生綜合運(yùn)用知識(shí)、分析實(shí)際問題及解決問題的能力,對于這部分題目教師可以允許學(xué)生分組完成,并根據(jù)實(shí)際教學(xué)情況適當(dāng)提供一些輔助源代碼,引導(dǎo)學(xué)生完成復(fù)雜問題求解。此外,可以允許學(xué)生自選綜合型、設(shè)計(jì)型實(shí)驗(yàn)題,教師負(fù)責(zé)把關(guān),學(xué)生對自選題往往更有責(zé)任心;可以允許學(xué)生就某些數(shù)據(jù)結(jié)構(gòu)或算法深入研究,而不必求其全,靈活把握考核尺度。這樣,學(xué)生通過自身努力在不太長的時(shí)間里可以看到結(jié)果,會(huì)有種成就感,增強(qiáng)了自信心,提高了學(xué)習(xí)興趣。
加大應(yīng)用型人才培養(yǎng)力度是高等教育調(diào)整趨勢,如何培養(yǎng)應(yīng)用型人才是新的教育命題,在歸納總結(jié)了數(shù)據(jù)結(jié)構(gòu)課程教學(xué)的現(xiàn)狀,分析了問題產(chǎn)生原因的基礎(chǔ)上,提出以調(diào)動(dòng)學(xué)生積極性,發(fā)揮學(xué)生主體性為根本出發(fā)點(diǎn),結(jié)合數(shù)據(jù)結(jié)構(gòu)課程特點(diǎn),從理論教學(xué)和實(shí)踐教學(xué)兩方面進(jìn)行改進(jìn),理論教學(xué)注重知識(shí)講解的趣味性、實(shí)用性,實(shí)踐教學(xué)探索實(shí)驗(yàn)的自主性、階梯性,合力為學(xué)生帶來學(xué)習(xí)的成就感,提升實(shí)踐動(dòng)手能力,符合應(yīng)用型人才培養(yǎng)需求。
[1]張銘,耿國華,陳衛(wèi)衛(wèi),胡學(xué)鋼.數(shù)據(jù)結(jié)構(gòu)與算法課程教學(xué)實(shí)施方案[J].中國大學(xué)教學(xué),2011(3):56-60.
[2]儲(chǔ)召生.地方本科高校轉(zhuǎn)型應(yīng)走出身份困惑[N].中國教育報(bào),2015-6-17.
[3]劉廣斌.內(nèi)生主體性訴求:中國高等教育的雙重轉(zhuǎn)型[J].湖南社會(huì)科學(xué),2013(2):234-237.
[4]沈華.數(shù)據(jù)結(jié)構(gòu)、算法和程序之間關(guān)系的探討[J].計(jì)算機(jī)教育,2013(4):58-61.
[5]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].清華大學(xué)出版社,2012.
[6]張乃孝.《數(shù)據(jù)結(jié)構(gòu)》教學(xué)與教材研究[J].中國大學(xué)教育,2013(2):86-90.
[7]余艷,劉燕麗,李琳娜.數(shù)據(jù)結(jié)構(gòu)實(shí)踐教學(xué)內(nèi)容設(shè)置的分析與思考[J].實(shí)驗(yàn)技術(shù)與管理,2014(4):170-173.
Data Structure;Self-Study;Teaching Method
Data Structure Course Reformation in the Process of Application-Type Talent Cultivation
GAO Guang-yin,JIANG Feng,DING Yong
Department of Computer Science&Technology,Taizhou Institute of Science&Technology,NUST,Taizhou 225300
1007-1423(2015)33-0009-04
10.3969/j.issn.1007-1423.2015.33.003
高廣銀(1982-),男,江蘇姜堰人,講師,碩士,研究方向?yàn)閿?shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、圖像處理
姜楓(1980-),男,江蘇泰州人,副教授,博士,研究方向?yàn)橛?jì)算機(jī)視覺、機(jī)器學(xué)習(xí)
丁勇(1980-),男,江蘇姜堰人,副教授,碩士,研究方向?yàn)閿?shù)據(jù)庫理論、數(shù)據(jù)挖掘
2015-10-29
2015-11-20
在加強(qiáng)應(yīng)用型人才培養(yǎng)的教育調(diào)整形勢下,分析《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)的現(xiàn)狀,針對存在的問題,探討以調(diào)動(dòng)學(xué)生積極性與發(fā)揮學(xué)生主體性為目標(biāo),對理論教學(xué)與實(shí)踐教學(xué)兩方面進(jìn)行改進(jìn)的教學(xué)改革方法。
數(shù)據(jù)結(jié)構(gòu);主體性;教學(xué)方法
南京理工大學(xué)泰州科技學(xué)院教改項(xiàng)目(No.YJG2013B14)
In order to strengthen the education of application-type talent training,analyzes the present situation of the teaching of Data Structure course.According to the current problems,inquires into method of teaching reformation with respect to two aspects,theory teaching and experiment teaching,which is aimed to stimulate the activity of the students and develop their self-studying ability.