程 輝,王正山,李元金
作為應(yīng)用型本科院校,人才培養(yǎng)目標(biāo)是培養(yǎng)為地方經(jīng)濟(jì)和社會(huì)發(fā)展服務(wù)的應(yīng)用型人才[1]。計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的培養(yǎng)目標(biāo)已不再是理論性的研究型人才,而是掌握計(jì)算機(jī)科學(xué)的基本思維方法和基本研究方法,具備對(duì)計(jì)算機(jī)系統(tǒng)的認(rèn)知能力和實(shí)踐能力,以及將基礎(chǔ)知識(shí)與科學(xué)方法應(yīng)用于系統(tǒng)開(kāi)發(fā)能力的高素質(zhì)應(yīng)用型專(zhuān)門(mén)人才。數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)科學(xué)與技術(shù)專(zhuān)業(yè)的核心基礎(chǔ)課[2],培養(yǎng)學(xué)生問(wèn)題建模能力,算法設(shè)計(jì)能力,算法分析能力,算法實(shí)現(xiàn)能力,為學(xué)習(xí)后續(xù)面向?qū)ο蟪绦蛟O(shè)計(jì)、操作系統(tǒng)、編譯原理、軟件工程和算法設(shè)計(jì)與分析等課程奠定堅(jiān)實(shí)的基礎(chǔ),在專(zhuān)業(yè)課程體系中具有承前啟后的作用,同時(shí)對(duì)應(yīng)用型人才培養(yǎng)目標(biāo)的實(shí)現(xiàn)具有關(guān)鍵性作用。在實(shí)際教學(xué)過(guò)程中,難教難學(xué)成為多數(shù)師生的心聲,教學(xué)效果并不理想,很難培養(yǎng)學(xué)生的應(yīng)用能力。為了改變這一教學(xué)現(xiàn)狀,許多教學(xué)工作者針對(duì)該課程教學(xué)模式和課程內(nèi)容組織等方面提出了一系列的改革措施,并取得一定的教學(xué)效果[3-5]。由于院校和學(xué)生層次差異的存在,因此,在借鑒他人教學(xué)經(jīng)驗(yàn)的同時(shí),針對(duì)本校教學(xué)現(xiàn)狀開(kāi)展必要的課程教學(xué)改革才能有助于應(yīng)用型人才的培養(yǎng)。
由于數(shù)據(jù)結(jié)構(gòu)在課程體系和考研科目中的重要性,學(xué)生會(huì)認(rèn)真對(duì)待本課程,也愿意花時(shí)間和精力來(lái)學(xué)好本課程。但在實(shí)際教學(xué)過(guò)程中,課堂氣氛沉悶,學(xué)生參與度不高,實(shí)驗(yàn)教學(xué)開(kāi)展困難,只會(huì)些基本知識(shí)點(diǎn)應(yīng)付考試,而不能應(yīng)用已學(xué)知識(shí)解決生活中的實(shí)際問(wèn)題。產(chǎn)生這種現(xiàn)狀的原因有很多,主要有以下幾個(gè)方面。
現(xiàn)有數(shù)據(jù)結(jié)構(gòu)教材中的算法是以類(lèi)C語(yǔ)言描述,通過(guò)C語(yǔ)言編程實(shí)現(xiàn)算法是比較直接的方法,因此C語(yǔ)言是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)課程的重要基礎(chǔ)。一方面不少學(xué)生編程能力不足,同時(shí)對(duì)大規(guī)模程序的模塊化思想理解不到位,習(xí)慣性地在主函數(shù)中解決所有問(wèn)題;另一方面,在該課程中,結(jié)構(gòu)體和內(nèi)存動(dòng)態(tài)分配等知識(shí)的應(yīng)用非常廣泛,但由于進(jìn)度等原因,這些內(nèi)容不會(huì)作為C語(yǔ)言重點(diǎn)內(nèi)容來(lái)講解,從而造成重要基礎(chǔ)知識(shí)點(diǎn)的缺失;再者,程序設(shè)計(jì)基礎(chǔ)課程開(kāi)設(shè)在第一學(xué)期,數(shù)據(jù)結(jié)構(gòu)開(kāi)設(shè)在第三學(xué)期,時(shí)間跨度大,中間缺少編程練習(xí),會(huì)出現(xiàn)編程基礎(chǔ)知識(shí)的遺忘。
目前,教學(xué)形式基本上是以教師在課堂“填鴨式”講授為主,只注重理論知識(shí)的灌輸,學(xué)生多是被動(dòng)接受知識(shí),對(duì)知識(shí)的掌握基本上是依靠記憶的方式,缺乏獨(dú)立思考的主動(dòng)性,對(duì)所學(xué)內(nèi)容的理解非常膚淺,從而導(dǎo)致學(xué)生學(xué)習(xí)的知識(shí)很多,知道線性表、棧、隊(duì)列、二叉樹(shù)和圖等基本概念及其基本操作方法,但遇到實(shí)際問(wèn)題卻不知道如何利用所學(xué)知識(shí)去解決。
上機(jī)實(shí)驗(yàn)不僅可以加深對(duì)數(shù)據(jù)結(jié)構(gòu)各種概念的理解,還可以提升運(yùn)用所學(xué)知識(shí)解決實(shí)際問(wèn)題的能力。但教學(xué)安排中的實(shí)驗(yàn)課時(shí)相對(duì)較少,課堂上可開(kāi)展的實(shí)驗(yàn)項(xiàng)目較少,達(dá)到的訓(xùn)練效果有限。另外,現(xiàn)有的實(shí)驗(yàn)項(xiàng)目多側(cè)重于單一知識(shí)點(diǎn)的訓(xùn)練,參照課本現(xiàn)成代碼即可實(shí)現(xiàn),而不是結(jié)合實(shí)際問(wèn)題由學(xué)生自行分析和設(shè)計(jì)解決方案,未能有效培養(yǎng)學(xué)生分析問(wèn)題和解決問(wèn)題的應(yīng)用能力。
目前本課程的考核方式主要采用閉卷考試,多考查記憶性的知識(shí)點(diǎn),而對(duì)設(shè)計(jì)類(lèi)的知識(shí)點(diǎn)考查較少,未能完全達(dá)到對(duì)學(xué)生分析問(wèn)題和解決問(wèn)題能力的考查。另外,卷面成績(jī)?cè)谄谀┛偝煽?jī)中占比達(dá)到60%或更高,而對(duì)學(xué)生平時(shí)表現(xiàn)缺乏佐證性材料,過(guò)程性考核較少。
針對(duì)以上問(wèn)題及原因,從2016級(jí)學(xué)生開(kāi)始通過(guò)以下幾個(gè)措施來(lái)改進(jìn)數(shù)據(jù)結(jié)構(gòu)課程教學(xué)。
為了解決課程間的銜接問(wèn)題,在2016版人才培養(yǎng)方案中將課程《程序設(shè)計(jì)基礎(chǔ)Ⅰ》和《程序設(shè)計(jì)基礎(chǔ)Ⅱ》合并為《程序設(shè)計(jì)基礎(chǔ)》,調(diào)整課程《數(shù)據(jù)結(jié)構(gòu)》的開(kāi)課學(xué)期,同時(shí)增加實(shí)踐課程《程序設(shè)計(jì)實(shí)訓(xùn)》。在第一學(xué)期開(kāi)設(shè)課程《程序設(shè)計(jì)基礎(chǔ)》,第二學(xué)期前4周開(kāi)設(shè)實(shí)踐課程《程序設(shè)計(jì)實(shí)訓(xùn)》專(zhuān)門(mén)進(jìn)行綜合型模塊化程序設(shè)計(jì),涉及基本結(jié)構(gòu)、數(shù)組、指針、結(jié)構(gòu)體和文件等,第二學(xué)期后12周開(kāi)設(shè)課程《數(shù)據(jù)結(jié)構(gòu)》。另外,修訂《程序設(shè)計(jì)基礎(chǔ)》教學(xué)大綱,增加指針、結(jié)構(gòu)體和動(dòng)態(tài)內(nèi)存分配等知識(shí)點(diǎn)課時(shí),可有效保證課程間知識(shí)點(diǎn)的連貫性。針對(duì)《數(shù)據(jù)結(jié)構(gòu)》,為了服務(wù)于應(yīng)用型人才培養(yǎng)方案,精心設(shè)計(jì)教學(xué)內(nèi)容,刪減或精簡(jiǎn)陳舊過(guò)時(shí)的內(nèi)容,如廣義表、多重鏈表和多維數(shù)組等,將線索樹(shù)、平衡二叉樹(shù)和關(guān)鍵路徑等復(fù)雜內(nèi)容作為選學(xué)內(nèi)容。同時(shí),通過(guò)對(duì)數(shù)據(jù)結(jié)構(gòu)知識(shí)脈絡(luò)的梳理,教學(xué)內(nèi)容可概括為線性結(jié)構(gòu)、樹(shù)形結(jié)構(gòu)及圖形結(jié)構(gòu)3種基本數(shù)據(jù)結(jié)構(gòu),查找及排序2種算法,其中3種基本數(shù)據(jù)結(jié)構(gòu)可通過(guò)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)2個(gè)層次描述,數(shù)據(jù)結(jié)構(gòu)所對(duì)應(yīng)的運(yùn)算操作以物理結(jié)構(gòu)(包括順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ))為基礎(chǔ)展開(kāi)。通過(guò)建立完善的知識(shí)脈絡(luò)圖,使學(xué)生抓住教學(xué)內(nèi)容主線,有助于理解各種抽象概念及其之間的關(guān)系。
在教學(xué)手段方面,采用黑板與多媒體相結(jié)合,對(duì)于算法講述,教師可一邊講解,一邊通過(guò)板書(shū)描述算法核心思想,教師可根據(jù)學(xué)生的掌握程度靈活調(diào)控教學(xué)速度,具有良好的交互性;而對(duì)于不易理解的抽象問(wèn)題可通過(guò)多媒體動(dòng)畫(huà)等方式進(jìn)行展現(xiàn),實(shí)現(xiàn)問(wèn)題的簡(jiǎn)單化和形象化,從而有助于學(xué)生對(duì)問(wèn)題的理解。例如,對(duì)于二叉樹(shù)的遍歷,可先用Flash設(shè)計(jì)出三種遍歷方式的工作過(guò)程小動(dòng)畫(huà),通過(guò)該動(dòng)畫(huà),學(xué)生可以形象直觀地看到三種遍歷方式的特征和區(qū)別,再通過(guò)板書(shū)方式描述三種遍歷算法。
為了提升學(xué)生的學(xué)習(xí)積極性,在教學(xué)過(guò)程中綜合運(yùn)用問(wèn)題導(dǎo)向、任務(wù)驅(qū)動(dòng)及案例教學(xué)等教學(xué)方法,從現(xiàn)實(shí)生活中的實(shí)際問(wèn)題入手,引導(dǎo)學(xué)生主動(dòng)探求答案,培養(yǎng)學(xué)生動(dòng)手解決實(shí)際問(wèn)題的應(yīng)用能力,讓學(xué)生變被動(dòng)學(xué)習(xí)為主動(dòng)探究。以教學(xué)內(nèi)容“圖”為例,設(shè)計(jì)以下案例進(jìn)行案例式教學(xué),如表1所示。
表1 關(guān)于圖的教學(xué)案例
通過(guò)這些教學(xué)案例,可以有效地將數(shù)據(jù)結(jié)構(gòu)理論知識(shí)形象化并與實(shí)際問(wèn)題結(jié)合起來(lái),讓學(xué)生明白數(shù)據(jù)結(jié)構(gòu)不是純理論,可以運(yùn)用數(shù)據(jù)結(jié)構(gòu)解決生活中的很多問(wèn)題,從而進(jìn)一步提升學(xué)生的學(xué)習(xí)興趣。
由于數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)課時(shí)有限,無(wú)法完全通過(guò)上機(jī)課完成所需要的課程練習(xí),因此,將課程實(shí)驗(yàn)分成基礎(chǔ)型和設(shè)計(jì)型兩種不同的層次。對(duì)于基礎(chǔ)型實(shí)驗(yàn),主要完成基礎(chǔ)知識(shí)的訓(xùn)練,使得學(xué)生能更好的理解各種數(shù)據(jù)結(jié)構(gòu)基本理論知識(shí)和操作,并能夠完整的寫(xiě)出可運(yùn)行的算法,作為課下訓(xùn)練由學(xué)生自行完成,并搭建在線評(píng)測(cè)平臺(tái)用于學(xué)生作業(yè)的評(píng)判。而對(duì)于設(shè)計(jì)型實(shí)驗(yàn),是在基礎(chǔ)型實(shí)驗(yàn)的基礎(chǔ)上,以生活中的實(shí)際問(wèn)題作為背景來(lái)設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目,鼓勵(lì)學(xué)生獨(dú)立思考,設(shè)計(jì)并完成整個(gè)算法。要求學(xué)生課下初步完成程序的設(shè)計(jì),上機(jī)時(shí)間主要用于調(diào)試程序或與教師討論問(wèn)題解決方案,而不是空對(duì)著屏幕碼代碼。以教學(xué)內(nèi)容“棧和隊(duì)列”為例,設(shè)計(jì)以下基礎(chǔ)型和設(shè)計(jì)型實(shí)驗(yàn)項(xiàng)目,如表2所示。
表2 關(guān)于棧和隊(duì)列的實(shí)驗(yàn)項(xiàng)目
實(shí)驗(yàn)結(jié)束后,要求學(xué)生提交實(shí)驗(yàn)報(bào)告,主要包括結(jié)構(gòu)設(shè)計(jì)、算法思想和測(cè)試分析等,代碼可通過(guò)在線測(cè)試平臺(tái)提交。
對(duì)現(xiàn)有泛雅教學(xué)平臺(tái)和程序在線評(píng)測(cè)平臺(tái)進(jìn)行資源整合,發(fā)揮其各自的優(yōu)勢(shì),加強(qiáng)本課程過(guò)程性考核信息的收集,如圖1所示。
圖1 平臺(tái)整合示意圖
針對(duì)泛雅教學(xué)平臺(tái),教師及時(shí)更新課件和視頻等學(xué)習(xí)資料,再發(fā)布學(xué)習(xí)任務(wù),然后學(xué)生必須在規(guī)定的時(shí)間內(nèi)登錄學(xué)習(xí)平臺(tái)開(kāi)展自主學(xué)習(xí),并完成相應(yīng)的知識(shí)點(diǎn)測(cè)試。另外,教師可通過(guò)此平臺(tái)獲取學(xué)生學(xué)習(xí)狀態(tài)數(shù)據(jù),從而進(jìn)一步調(diào)整理論和實(shí)驗(yàn)教學(xué)的內(nèi)容和進(jìn)度。泛雅平臺(tái)主要完成客觀題形式的知識(shí)點(diǎn)測(cè)試,而程序在線評(píng)測(cè)平臺(tái)則是完成編程能力練習(xí)和測(cè)試。通過(guò)程序在線評(píng)測(cè)平臺(tái),學(xué)生在課下可以對(duì)題庫(kù)中的題目開(kāi)展自由練習(xí),由系統(tǒng)自動(dòng)完成題目的評(píng)判,并根據(jù)學(xué)生正確提交的題目數(shù)量及正確提交率給出總排名,在學(xué)生之間營(yíng)造你追我趕的學(xué)習(xí)氛圍,有助于提升學(xué)生算法設(shè)計(jì)與程序編寫(xiě)能力。教師通過(guò)此平臺(tái)可以發(fā)布課后作業(yè)、實(shí)驗(yàn)項(xiàng)目以及章節(jié)測(cè)試,并設(shè)定完成時(shí)限。平臺(tái)會(huì)實(shí)時(shí)記錄每個(gè)學(xué)生的任務(wù)完成情況,為課程過(guò)程性考核提供了有效的依據(jù)。
基于以上過(guò)程性考核,加大過(guò)程性考核指標(biāo)在課程成績(jī)?cè)u(píng)價(jià)體系中的比例,如實(shí)驗(yàn)完成情況,作業(yè),章節(jié)測(cè)試和知識(shí)點(diǎn)測(cè)試,優(yōu)化后的考核評(píng)價(jià)體系如表3所示。
表3 優(yōu)化后的考核評(píng)價(jià)體系
另外,在期末考核中降低記憶性知識(shí)點(diǎn)的比例,提升針對(duì)實(shí)際問(wèn)題進(jìn)行算法設(shè)計(jì)題型的比例,從而加大對(duì)學(xué)生算法設(shè)計(jì)以及程序編寫(xiě)能力的考查。
針對(duì)數(shù)據(jù)結(jié)構(gòu)教學(xué)中所存在的問(wèn)題,在近年來(lái)的教學(xué)中開(kāi)展了以上四個(gè)方面的改革。實(shí)踐表明,學(xué)生學(xué)習(xí)興趣有了明顯提高,對(duì)本課程的教學(xué)測(cè)評(píng)滿(mǎn)意度有所提升,根據(jù)實(shí)際需求進(jìn)行問(wèn)題分析和算法設(shè)計(jì)能力有較大提升,為后續(xù)專(zhuān)業(yè)課的學(xué)習(xí)打下扎實(shí)基礎(chǔ),從而滿(mǎn)足應(yīng)用型人才培養(yǎng)的需求。