田豐 來齊齊 王亮
摘 要 本文針對高等院校培養(yǎng)創(chuàng)新人才的過程中面臨的困難和挑戰(zhàn),深入分析數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)中存在的現(xiàn)實(shí)問題,通過對學(xué)生學(xué)習(xí)狀況的了解,以及課堂內(nèi)外的交流溝通,提出了以培養(yǎng)學(xué)生動(dòng)手能力為核心的教學(xué)方案,激發(fā)學(xué)生學(xué)習(xí)的主動(dòng)性,引導(dǎo)學(xué)生進(jìn)行研究性學(xué)習(xí)。
關(guān)鍵詞 數(shù)據(jù)結(jié)構(gòu) 創(chuàng)新人才 教學(xué)改革
中圖分類號:G642 文獻(xiàn)標(biāo)識(shí)碼: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 引言
數(shù)據(jù)結(jié)構(gòu)課程是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一門專業(yè)基礎(chǔ)課,也是程序設(shè)計(jì)的重要理論技術(shù)基礎(chǔ)。通過該課程的教學(xué),使學(xué)生學(xué)會(huì)分析研究計(jì)算機(jī)加工的數(shù)據(jù)結(jié)構(gòu)的特性,從而能夠根據(jù)所需解決問題的要求選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、物理結(jié)構(gòu)及其對應(yīng)的算法,并能夠初步掌握對算法的時(shí)間復(fù)雜度和空間復(fù)雜度進(jìn)行分析的方法。與程序設(shè)計(jì)語言課程的差別在于,程序設(shè)計(jì)語言課程注重語法結(jié)構(gòu),需要學(xué)生掌握該語言的核心用法,對解決的具體問題不做深入分析,數(shù)據(jù)結(jié)構(gòu)課程的學(xué)習(xí)過程則是復(fù)雜程序設(shè)計(jì)的訓(xùn)練過程,要求學(xué)生編寫的程序結(jié)構(gòu)清楚,易于理解,并符合軟件工程的規(guī)范,重點(diǎn)培養(yǎng)學(xué)生的數(shù)據(jù)抽象能力。本文從對數(shù)據(jù)結(jié)構(gòu)課程教學(xué)現(xiàn)狀的分析出發(fā),以提高學(xué)生的實(shí)踐創(chuàng)新能為重點(diǎn),對數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)改革模式進(jìn)行探索分析。[1][2]
1 數(shù)據(jù)結(jié)構(gòu)課程教學(xué)現(xiàn)狀分析
數(shù)據(jù)結(jié)構(gòu)是用程序解決實(shí)際問題的方法論,在實(shí)際的教學(xué)實(shí)踐中,也是一門既難教又難學(xué)的課程,目前,在大部分院校中,都是以課堂講授的方式對各種結(jié)構(gòu)的邏輯存儲(chǔ)、物理存儲(chǔ)、以及基于此的相關(guān)算法進(jìn)行介紹,再輔助少量的編程實(shí)踐,通過短短一個(gè)學(xué)期的學(xué)習(xí),大部分同學(xué)僅僅對數(shù)據(jù)結(jié)構(gòu)有一個(gè)大致的了解,能夠簡單分析不同結(jié)構(gòu)的特點(diǎn),但是對如何將學(xué)到的數(shù)據(jù)抽象能力應(yīng)用到實(shí)際生活中,解決具體的問題,設(shè)計(jì)相應(yīng)的物理結(jié)構(gòu)、處理算法,則還存在較大的差距。根據(jù)對數(shù)據(jù)結(jié)構(gòu)課程教學(xué)的分析調(diào)研,目前,該課程的教學(xué)存在的問題包括以下幾點(diǎn)。
(1)學(xué)生缺乏扎實(shí)的編程功底。程序設(shè)計(jì)語言是計(jì)算機(jī)專業(yè)學(xué)生的初始課程,但是由于大部分學(xué)生在入學(xué)時(shí)并沒有程序設(shè)計(jì)的基礎(chǔ),僅通過短短一個(gè)學(xué)期的學(xué)習(xí),很難掌握程序設(shè)計(jì)的精髓,大部分學(xué)生對于程序設(shè)計(jì)語言的學(xué)習(xí)僅僅停留在了對于概念的背誦和代碼的記憶上,并沒有深入理解程序設(shè)計(jì)的核心內(nèi)容,缺乏計(jì)算思維的訓(xùn)練。加之函數(shù)、指針、結(jié)構(gòu)體、聯(lián)合體等概念,以及循環(huán)、分支等程序結(jié)構(gòu)較難入門,學(xué)生很難迅速轉(zhuǎn)換到大學(xué)的學(xué)習(xí)模式,并且由于課時(shí)不足,學(xué)生很難和授課教師建立順暢的溝通,導(dǎo)致很多學(xué)生僅僅知道什么是程序設(shè)計(jì),但卻缺乏編程實(shí)現(xiàn)的基本能力,進(jìn)而使得學(xué)生在學(xué)習(xí)更高級的數(shù)據(jù)結(jié)構(gòu)課程時(shí)難度更大。
(2)教學(xué)過程缺乏溝通反饋。在進(jìn)行數(shù)據(jù)結(jié)構(gòu)課程的講授時(shí),教師由于課時(shí)和知識(shí)點(diǎn)的沖突,往往將大量的時(shí)間放在了基本概念等理論知識(shí)的講解上,而對于更加重要的動(dòng)手能力的培養(yǎng),則放在了相對次要的位置,由于學(xué)生無法在課堂消化數(shù)量眾多的知識(shí)點(diǎn),導(dǎo)致在實(shí)際編程上機(jī)時(shí),存在無從下手的情況,并且理論講授和實(shí)踐過程脫離后,學(xué)生會(huì)產(chǎn)生挫敗感,更難在課堂上進(jìn)入學(xué)習(xí)狀態(tài),進(jìn)而進(jìn)一步影響到編程上機(jī),形成惡性循環(huán),導(dǎo)致教學(xué)過程的效果較差。
(3)學(xué)生學(xué)習(xí)動(dòng)力不足。由于數(shù)據(jù)結(jié)構(gòu)課程偏基礎(chǔ),著重方法和思維能力的訓(xùn)練,而學(xué)生感興趣的課程則偏向于實(shí)際應(yīng)用,由于課時(shí)安排和知識(shí)點(diǎn)分布不合理,導(dǎo)致學(xué)生很難進(jìn)入到高效的學(xué)習(xí)狀態(tài)中,課堂上無法跟上講授的內(nèi)容,編程上機(jī)時(shí)更是難以熟練運(yùn)用。加之基于傳統(tǒng)的課程評價(jià)體系,該課程在進(jìn)行測試評價(jià)時(shí),通常采用平時(shí)成績和考試成績綜合的方式,且平時(shí)成績僅考慮學(xué)生的到課情況,并不能真實(shí)反應(yīng)學(xué)生的課堂表現(xiàn)或者編程實(shí)踐效果,而期末考試則主要以筆試答題的模式,無法準(zhǔn)確評測學(xué)生掌握知識(shí)的水平,且筆試模式使得學(xué)生只重視對于知識(shí)點(diǎn)、概念的記憶,而忽略了對知識(shí)的靈活運(yùn)用能力,這與創(chuàng)新人才培養(yǎng)的目標(biāo)是背道而馳的。改變課程的考核機(jī)制也是我們在進(jìn)行教學(xué)改革探索中的重要一環(huán)。
2 數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革探索
2.1 數(shù)據(jù)結(jié)構(gòu)課程教學(xué)內(nèi)容選擇
數(shù)據(jù)結(jié)構(gòu)課程涉及了大量的知識(shí)點(diǎn),包括線性表、棧、隊(duì)列、數(shù)組和廣義表、樹、圖、查找和排序等重點(diǎn)內(nèi)容。通常授課課時(shí)為72學(xué)時(shí),如何在有限的課時(shí)安排內(nèi)高效傳授數(shù)據(jù)結(jié)構(gòu)課程的精髓,訓(xùn)練學(xué)生的創(chuàng)新能力,培養(yǎng)他們的計(jì)算思維,值得深入探索。傳統(tǒng)的教學(xué)模式通常會(huì)覆蓋除了外部排序、存儲(chǔ)管理的所有知識(shí)點(diǎn),由此帶來的問題是,很難將其中任何一個(gè)知識(shí)點(diǎn)或者算法思想講深講透,只能淺嘗輒止,學(xué)生也難以產(chǎn)生學(xué)習(xí)的興趣,疲于應(yīng)付對知識(shí)點(diǎn)的覆蓋,產(chǎn)生厭煩情緒(見圖1)。[3][4]
因此,針對該問題,可以考慮選擇數(shù)據(jù)結(jié)構(gòu)課程中有代表性的內(nèi)容進(jìn)行深入剖析,將一類問題用一個(gè)實(shí)例講透徹,比全而不精的效果要好,學(xué)生也容易加深概念的理解,產(chǎn)生學(xué)習(xí)的興趣,并能夠自己動(dòng)手進(jìn)行實(shí)現(xiàn)。例如,對于線性表結(jié)構(gòu),我們可以嘗試不直接從概念、邏輯結(jié)構(gòu)、物理結(jié)構(gòu)、算法這樣的講授流程開始,而是從多項(xiàng)式的計(jì)算問題開始,先討論如何解決多項(xiàng)式的存儲(chǔ)問題,由此便可以引入線性表的動(dòng)態(tài)和靜態(tài)存儲(chǔ)方式,讓學(xué)生自己發(fā)現(xiàn)動(dòng)態(tài)和靜態(tài)存儲(chǔ)方式的優(yōu)缺點(diǎn),并能夠根據(jù)實(shí)際應(yīng)用的需要選擇合適的存儲(chǔ)結(jié)構(gòu),進(jìn)而設(shè)計(jì)針對該結(jié)構(gòu)的數(shù)據(jù)處理算法,實(shí)現(xiàn)對多項(xiàng)式的運(yùn)算。在數(shù)據(jù)結(jié)構(gòu)課程中,還有很多經(jīng)典的案例,例如迷宮求解、表達(dá)式計(jì)算、最短路徑生成等,通過問題導(dǎo)向的方式,以有趣問題出發(fā),引出解決該問題所需要涉及的概念、方法、技術(shù),進(jìn)而實(shí)現(xiàn)數(shù)據(jù)抽象、算法設(shè)計(jì)分析、編碼實(shí)現(xiàn)運(yùn)行,由此將繁雜的知識(shí)點(diǎn)進(jìn)行提取,將學(xué)生和教師從全覆蓋的模式中解放出來,集中精力吃透核心思想,培養(yǎng)動(dòng)手能力和計(jì)算思維,由此才能實(shí)現(xiàn)創(chuàng)新能力的培養(yǎng)。
2.2 數(shù)據(jù)結(jié)構(gòu)課程實(shí)驗(yàn)內(nèi)容的革新
在數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)過程中,還會(huì)配備一定課時(shí)的上機(jī)內(nèi)容,通常是4個(gè)課時(shí)的課堂內(nèi)容搭配2個(gè)課時(shí)的上機(jī)編程。但是在實(shí)際的上機(jī)的過程中,由于教學(xué)內(nèi)容覆蓋較廣,對本章節(jié)的精髓核心并沒有講深講透,并且在課堂也缺乏對于編程實(shí)踐的指導(dǎo),上機(jī)內(nèi)容多局限于數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容的簡單復(fù)制,且由于學(xué)生的編程基礎(chǔ)不足,出現(xiàn)無法實(shí)現(xiàn)基本算法的情況。[5]針對該現(xiàn)狀,需要在可能內(nèi)容更新的基礎(chǔ)上,對實(shí)驗(yàn)內(nèi)容進(jìn)行同步革新。改變傳統(tǒng)的教師布置上機(jī)作業(yè),學(xué)生上機(jī)完成簡單作業(yè)的模式,而是要用軟件工程的模式對學(xué)生的編程開發(fā)進(jìn)行管理,進(jìn)而避免學(xué)生互相復(fù)制抄襲的問題。
在具體的實(shí)驗(yàn)安排上,打破傳統(tǒng)的根據(jù)上機(jī)課時(shí)確定實(shí)驗(yàn)內(nèi)容的做法,把實(shí)驗(yàn)任務(wù)從項(xiàng)目的角度進(jìn)行分解,拆分成多個(gè)子系統(tǒng),讓學(xué)生自由組合,構(gòu)成項(xiàng)目組,每個(gè)同學(xué)進(jìn)行明確的任務(wù)分工,每次實(shí)驗(yàn)上機(jī),每個(gè)組的同學(xué)分別完成不同模塊的開發(fā)調(diào)試工作,直至到最后整個(gè)項(xiàng)目系統(tǒng)的整合完成。這樣的實(shí)驗(yàn)內(nèi)容符合現(xiàn)代軟件工程的開發(fā)理念,在實(shí)驗(yàn)過程中進(jìn)行的項(xiàng)目需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼實(shí)現(xiàn)、集成、測試、發(fā)布等工作,能夠?qū)W(xué)生的個(gè)人分析能力、動(dòng)手能力、團(tuán)隊(duì)協(xié)作能力進(jìn)行全方位的鍛煉,并且這個(gè)過程需要各個(gè)團(tuán)隊(duì)學(xué)生自己獨(dú)立開發(fā),由此避免了復(fù)制抄襲的問題,通過對學(xué)生在項(xiàng)目開發(fā)過程中所承擔(dān)任務(wù)大小進(jìn)行成績評定,可以有效激發(fā)學(xué)生的實(shí)驗(yàn)積極性,將被動(dòng)的編碼應(yīng)付變成主動(dòng)的學(xué)習(xí)提高,把對學(xué)生創(chuàng)新能力的培養(yǎng)落到實(shí)處。
3 結(jié)語
數(shù)據(jù)結(jié)構(gòu)課程是奠定計(jì)算機(jī)類學(xué)生編程基本功的重要課程。目前社會(huì)對創(chuàng)新性人才的需求使得數(shù)據(jù)結(jié)構(gòu)課程的教改刻不容緩,通過對課程的教學(xué)內(nèi)容、教學(xué)方式、以及實(shí)驗(yàn)過程進(jìn)行革新,能夠有效提高該課程的教學(xué)效果,提升學(xué)生的編程開發(fā)能力,并培養(yǎng)學(xué)生的計(jì)算思維和創(chuàng)新能力。在今后的工作中,我們將根據(jù)實(shí)際教學(xué)的情況,進(jìn)一步完善數(shù)據(jù)結(jié)構(gòu)課程教學(xué)的改革措施。
基金項(xiàng)目:陜西師范大學(xué)2017年度校級全英語教學(xué)示范課程項(xiàng)目“智能計(jì)算”課程
參考文獻(xiàn)
[1] 劉曉靜,王曉英,張玉安,黃建強(qiáng),劉志強(qiáng).以創(chuàng)新人才培養(yǎng)為目標(biāo)的數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)教學(xué)改革[J].實(shí)驗(yàn)技術(shù)與管理,2014.31(11):184-187.
[2] 鐘美.以培養(yǎng)應(yīng)用型人才為目標(biāo)的數(shù)據(jù)結(jié)構(gòu)教學(xué)改革[J].計(jì)算機(jī)教育,2014.14(4):26-29.
[3] 耿淼,包瑩瑩.數(shù)據(jù)結(jié)構(gòu)課程初步教改的探討[J].電腦與信息技術(shù),2017.25(1):72-74.
[4] 李婷,許鴻儒.《數(shù)據(jù)結(jié)構(gòu)與算法》的教改問題研究[J].教育教學(xué)論壇,2017(23):128-129.
[5] 孟凡榮,張斌,楊雷.數(shù)據(jù)結(jié)構(gòu)實(shí)踐課程的研究性學(xué)習(xí)及創(chuàng)新實(shí)踐能力的教改探索[J].教育教學(xué)論壇,2014(49):135-137.