齊金山 郭立強(qiáng)
摘要:數(shù)據(jù)結(jié)構(gòu)是高校計(jì)算機(jī)專(zhuān)業(yè)學(xué)習(xí)的核心課程。文中分析了目前數(shù)據(jù)結(jié)構(gòu)教學(xué)中存在的教學(xué)方法僵化、實(shí)踐性環(huán)節(jié)實(shí)施不利、授課對(duì)象的差異性等問(wèn)題,結(jié)合實(shí)際提出了相應(yīng)的教學(xué)改革模式,以此極大的提升課程的教學(xué)質(zhì)量及學(xué)生的實(shí)踐能力。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);教學(xué)模式;教學(xué)手段;差異教學(xué);實(shí)踐教學(xué)
中圖分類(lèi)號(hào):G64 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)20-0094-02
數(shù)據(jù)結(jié)構(gòu)作為計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的核心課程,對(duì)學(xué)生的編程能力以及計(jì)算思維能力的培養(yǎng)起著非常重要的作用,并為學(xué)生學(xué)習(xí)后續(xù)課程打下堅(jiān)實(shí)的專(zhuān)業(yè)基礎(chǔ)。有關(guān)計(jì)算機(jī)專(zhuān)業(yè)的課程系統(tǒng)結(jié)構(gòu)如圖1所示,根據(jù)課程的學(xué)習(xí)順序,數(shù)據(jù)結(jié)構(gòu)起到承上啟下的強(qiáng)關(guān)鍵作用,后續(xù)諸多課程如編譯原理、操作系統(tǒng)、數(shù)據(jù)庫(kù)、人工智能、計(jì)算機(jī)圖形學(xué)等必須以此作為先修課程。宋等人[1]也進(jìn)一步強(qiáng)調(diào)了數(shù)據(jù)結(jié)構(gòu)的重要性,指出“通過(guò)本課程的學(xué)習(xí),學(xué)生可以分析計(jì)算機(jī)處理對(duì)象的特點(diǎn),選擇合適的存儲(chǔ)表示,并實(shí)現(xiàn)相應(yīng)的算法”。然而,筆者在實(shí)際的教學(xué)過(guò)程中,發(fā)現(xiàn)一系列的嚴(yán)重影響課程教學(xué)質(zhì)量的種種問(wèn)題。本文在探討這些問(wèn)題的基礎(chǔ)上,提出行之有效的教學(xué)模式以更好地服務(wù)于教學(xué),使學(xué)生真正地掌握核心點(diǎn)。
1數(shù)據(jù)結(jié)構(gòu)課程存在的問(wèn)題和特點(diǎn)
數(shù)據(jù)結(jié)構(gòu)作為一門(mén)理論性和實(shí)驗(yàn)性緊密相結(jié)合的課程,要求在教授理論與實(shí)驗(yàn)時(shí)必須分配相當(dāng)多的學(xué)時(shí)。根據(jù)筆者從幾所高校教學(xué)情況了解,課程一般均設(shè)置90個(gè)學(xué)時(shí),其中理論部分占54個(gè)學(xué)時(shí),實(shí)驗(yàn)部分占36個(gè)學(xué)時(shí),從而保證學(xué)生有足夠的時(shí)間掌握數(shù)據(jù)結(jié)構(gòu)中的各種知識(shí)要點(diǎn),如線性表、棧和隊(duì)列、二叉樹(shù)以及圖等,同時(shí)確保將所學(xué)的理論知識(shí)能夠熟練應(yīng)用于具體的實(shí)踐中并予以解決。然而在以往的教學(xué)過(guò)程中,發(fā)現(xiàn)存在諸多問(wèn)題,主要表現(xiàn)在以下幾個(gè)方面:
1.1 傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)教學(xué)方法僵化性
傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)在理論教學(xué)方法中主要依據(jù)教學(xué)大綱規(guī)定的教學(xué)內(nèi)容、章節(jié)教學(xué)時(shí)數(shù),按部就班的講解教材中的各知識(shí)點(diǎn),側(cè)重點(diǎn)不突出,導(dǎo)致學(xué)生一股腦兒地全盤(pán)接受,使得學(xué)生并沒(méi)有將所學(xué)知識(shí)有機(jī)地串聯(lián)起來(lái),割裂了知識(shí)點(diǎn)之間的相關(guān)性。在實(shí)驗(yàn)教學(xué)過(guò)程中,同樣采用此種教學(xué)模式,要求學(xué)生按照實(shí)驗(yàn)指導(dǎo)書(shū)中所標(biāo)注的實(shí)驗(yàn)?zāi)繕?biāo)、實(shí)驗(yàn)內(nèi)容以及實(shí)驗(yàn)步驟等展開(kāi)實(shí)驗(yàn),結(jié)果使得在培養(yǎng)學(xué)生創(chuàng)新性思維方面極度缺乏,導(dǎo)致學(xué)生在提出問(wèn)題、分析問(wèn)題、解決問(wèn)題的能力沒(méi)有得到進(jìn)一步的提高。李等人[2]指出在數(shù)據(jù)結(jié)構(gòu)教學(xué)過(guò)程中需要進(jìn)行的一系列改革措施,以此提高學(xué)生的實(shí)踐編程能力;沈等人[3]提出的以計(jì)算思維為中心的教學(xué)舉措,均值得借鑒。
1.2 數(shù)據(jù)結(jié)構(gòu)理論知識(shí)與實(shí)踐教學(xué)環(huán)節(jié)存在的偏差性
數(shù)據(jù)結(jié)構(gòu)理論知識(shí)與實(shí)踐教學(xué)環(huán)節(jié)存在偏差問(wèn)題。在真實(shí)教學(xué)當(dāng)中,數(shù)據(jù)結(jié)構(gòu)課程與編程語(yǔ)言課程往往緊密聯(lián)系在一起。然而這兩門(mén)課程由于都是獨(dú)立開(kāi)設(shè),在不同教學(xué)語(yǔ)境下,不同授課老師往往將其孤立起來(lái)授課,結(jié)果導(dǎo)致兩者之間缺乏必然的聯(lián)系,從而引起后續(xù)存在各種教學(xué)問(wèn)題。在制定教學(xué)大綱以及教學(xué)目標(biāo)時(shí)如果沒(méi)有特別考慮這兩門(mén)課程在編程語(yǔ)言選擇的一致性,將引起數(shù)據(jù)結(jié)構(gòu)的理論知識(shí)與實(shí)踐編程教學(xué)的脫節(jié),嚴(yán)重影響教學(xué)效果。同樣地,教授這些課程的老師之間也需要在知識(shí)銜接一致性上進(jìn)行密切溝通,不然就會(huì)在教學(xué)內(nèi)容上出現(xiàn)空白區(qū)域,使學(xué)生對(duì)兩門(mén)課程的內(nèi)在關(guān)聯(lián)缺乏局部到整體的認(rèn)識(shí),進(jìn)而導(dǎo)致不能深入系統(tǒng)地學(xué)習(xí)相關(guān)知識(shí)[4]。在培養(yǎng)學(xué)生計(jì)算思維方面,兩門(mén)課程也需要保持一致性,傳統(tǒng)教學(xué)方法往往注重編程語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識(shí)點(diǎn)的灌輸,缺乏對(duì)學(xué)生計(jì)算思維能力的鍛煉。由于數(shù)據(jù)結(jié)構(gòu)中的知識(shí)相對(duì)比較抽象,如果缺乏對(duì)應(yīng)的真實(shí)案例對(duì)抽象知識(shí)加以應(yīng)用,那么就會(huì)導(dǎo)致學(xué)生不知道怎樣將所學(xué)的知識(shí)應(yīng)用到實(shí)際中,缺乏具體問(wèn)題具體分析和解決的能力[5]。
1.3 授課對(duì)象存在的差異性
由于學(xué)生學(xué)習(xí)能力以及努力程度等方面存在的個(gè)體差異,導(dǎo)致掌握編程語(yǔ)言學(xué)習(xí)基礎(chǔ)就出現(xiàn)兩極分化,部分學(xué)生編程能力偏弱,間接影響后繼課程尤其是數(shù)據(jù)結(jié)構(gòu)的教學(xué)效果。如果對(duì)整個(gè)年級(jí)不加以區(qū)分,則嚴(yán)重影響數(shù)據(jù)結(jié)構(gòu)的整體進(jìn)度,同時(shí),深化知識(shí)也無(wú)從談起。教師的教學(xué)始終停留在一個(gè)相對(duì)膚淺的知識(shí)層面上,不利于培養(yǎng)學(xué)生的綜合能力,尤其對(duì)于那些優(yōu)等生來(lái)說(shuō),更不利于其創(chuàng)造性思維的培養(yǎng)。
鑒于以上真實(shí)教學(xué)中存在的種種問(wèn)題,結(jié)合本校的實(shí)際情況,將考慮進(jìn)行如下數(shù)據(jù)結(jié)構(gòu)課程教學(xué)模式改革,不僅旨在打破傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)按部就班教學(xué)模式,同時(shí)依據(jù)數(shù)據(jù)結(jié)構(gòu)和編程語(yǔ)言這兩門(mén)核心專(zhuān)業(yè)課程的教學(xué)內(nèi)容和計(jì)劃,做好相關(guān)知識(shí)的整合和內(nèi)容的銜接,另外注重不同對(duì)象的差異教學(xué)。課程教學(xué)不僅要關(guān)注知識(shí)的傳授,還要培養(yǎng)學(xué)生主動(dòng)獲取知識(shí)并綜合已有知識(shí)創(chuàng)造新知識(shí)的能力[6]。
2 數(shù)據(jù)結(jié)構(gòu)課程教學(xué)模式改革
為了使學(xué)生熟練掌握數(shù)據(jù)結(jié)構(gòu)相關(guān)知識(shí)以及具備編程技巧,以完成后續(xù)較困難的項(xiàng)目開(kāi)發(fā),為此制定了以下的數(shù)據(jù)結(jié)構(gòu)培養(yǎng)教學(xué)模式改革方案。
2.1 差異性教學(xué)模式
根據(jù)課程設(shè)置,在第一學(xué)期和第二學(xué)期中進(jìn)行C++編程語(yǔ)言訓(xùn)練。研究對(duì)象為大一學(xué)生,他們?cè)诘诙W(xué)期完成了C++編程語(yǔ)言的學(xué)習(xí)之后,將為第三學(xué)期的學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)奠定堅(jiān)實(shí)的基礎(chǔ)。同時(shí),在第二學(xué)期開(kāi)始,教師對(duì)學(xué)生進(jìn)行培訓(xùn)動(dòng)員,介紹對(duì)他們進(jìn)行培訓(xùn)的目的和實(shí)踐意義,所有參加者自愿參加培訓(xùn)活動(dòng)。教師依據(jù)培訓(xùn)者對(duì)C++編程語(yǔ)言掌握情況進(jìn)行差異化教學(xué),以有利于解決授課對(duì)象存在的差異性問(wèn)題,因此將培訓(xùn)者分為兩組:基礎(chǔ)組和提高組。在基礎(chǔ)組主要介紹C++編程語(yǔ)言的基本語(yǔ)法和編程訓(xùn)練,具體訓(xùn)練內(nèi)容包括數(shù)據(jù)類(lèi)型、變量、操作符、表達(dá)式、程序結(jié)構(gòu)和語(yǔ)句、模塊化編程技術(shù)、數(shù)組以及指針的使用。而提高組中引入C++編程語(yǔ)言的高級(jí)內(nèi)容,如類(lèi)與對(duì)象、文件的操作和使用技巧。兩組根據(jù)學(xué)生掌握的知識(shí)隨時(shí)調(diào)整。教師在培訓(xùn)過(guò)程中要求學(xué)生必須進(jìn)入實(shí)驗(yàn)室,并在計(jì)算機(jī)上進(jìn)行實(shí)際操作。在培訓(xùn)中,教師講解內(nèi)容的一部分,然后學(xué)生在老師的指導(dǎo)下編寫(xiě)程序。此外,為了激發(fā)學(xué)生的學(xué)習(xí)興趣,教師還將提供一些學(xué)生喜歡的小游戲,供學(xué)生在編程訓(xùn)練中使用。同樣地,在進(jìn)行數(shù)據(jù)結(jié)構(gòu)具體教學(xué)任務(wù)中,也實(shí)行差異化教學(xué),將整體學(xué)習(xí)對(duì)象也劃分如上兩組。其中基礎(chǔ)組主要介紹數(shù)據(jù)結(jié)構(gòu)的基本概念以及常規(guī)應(yīng)用,具體訓(xùn)練內(nèi)容包括線性表、棧和隊(duì)列、樹(shù)和圖等基礎(chǔ)知識(shí)的掌握。而提高組中引入高階知識(shí)的編程應(yīng)用,如圖像的壓縮存儲(chǔ)等等。進(jìn)一步增強(qiáng)那些學(xué)有余力的同學(xué)分析問(wèn)題、解決問(wèn)題的能力。
2.2 實(shí)踐性教學(xué)模式
針對(duì)數(shù)據(jù)結(jié)構(gòu)理論知識(shí)與實(shí)踐教學(xué)環(huán)節(jié)存在偏差問(wèn)題,首先,要確保數(shù)據(jù)結(jié)構(gòu)教材使用的編程語(yǔ)言與前驅(qū)課程C++保持一致,這樣更有利于數(shù)據(jù)結(jié)構(gòu)課程的實(shí)踐實(shí)現(xiàn)。其次,做好這兩門(mén)課程教學(xué)內(nèi)容的融合與銜接問(wèn)題,尤其針對(duì)兩門(mén)課程存在知識(shí)點(diǎn)的重合部分,教師間確切溝通、整合好有關(guān)教學(xué)內(nèi)容。如整合兩門(mén)課程的數(shù)組、排序等相關(guān)知識(shí)點(diǎn)。再次,構(gòu)建多層次實(shí)驗(yàn)教學(xué)模式,進(jìn)一步鞏固學(xué)生的數(shù)據(jù)結(jié)構(gòu)理論知識(shí)以及實(shí)驗(yàn)動(dòng)手能力。由于數(shù)據(jù)結(jié)構(gòu)是一門(mén)實(shí)驗(yàn)性很強(qiáng)的專(zhuān)業(yè)基礎(chǔ)課。實(shí)驗(yàn)教學(xué)是本課程教學(xué)的重要組成部分。為此,構(gòu)建多層次實(shí)驗(yàn)教學(xué)體系,所有的授課對(duì)象都需要接受如下的實(shí)驗(yàn)教學(xué)內(nèi)容:基礎(chǔ)實(shí)驗(yàn)、課程設(shè)計(jì)和課外科學(xué)活動(dòng)。在基礎(chǔ)實(shí)驗(yàn)上,學(xué)生在掌握數(shù)據(jù)結(jié)構(gòu)理論的基礎(chǔ)上,需要在C++編譯器中調(diào)試算法,以實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)和基本操作。根據(jù)理論教學(xué),可以精心設(shè)置八個(gè)基本實(shí)驗(yàn),主要內(nèi)容包括:線性列表的基本操作、序列堆棧和鏈接隊(duì)列的操作、遍歷二叉樹(shù)、創(chuàng)建和遍歷圖形、操作、二叉排序樹(shù)等。為了幫助學(xué)生形成正確的觀念,防止其編寫(xiě)不合理的程序,需要對(duì)每一個(gè)實(shí)驗(yàn)都制定嚴(yán)格的標(biāo)準(zhǔn),并給出了一個(gè)統(tǒng)一的格式,包括實(shí)驗(yàn)?zāi)康?、預(yù)備知識(shí)、實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)過(guò)程以及體會(huì)五個(gè)部分。學(xué)生在計(jì)算機(jī)上調(diào)試和測(cè)試程序,教師適時(shí)引導(dǎo)學(xué)生,使學(xué)生成為獨(dú)立、有效的學(xué)習(xí)者。這些措施不僅可以提高程序調(diào)試的成功幾率,而且可以增強(qiáng)學(xué)生學(xué)習(xí)的信心和興趣。在課程設(shè)計(jì)上,學(xué)生需要結(jié)合實(shí)際應(yīng)用來(lái)解決一些更大的問(wèn)題。為此教師可以提前預(yù)設(shè)一些較為困難和較強(qiáng)的應(yīng)用程序,供學(xué)生選擇,如稀疏矩陣計(jì)算器、停車(chē)管理系統(tǒng)、最小生成樹(shù)問(wèn)題等等。在這個(gè)過(guò)程中,若干名學(xué)生形成一組,隨機(jī)選擇一個(gè)項(xiàng)目,小組成員合作完成項(xiàng)目。通過(guò)分析、設(shè)計(jì)、編碼和調(diào)試,學(xué)生可以深刻理解和掌握邏輯特征和物理存儲(chǔ),以及算法設(shè)計(jì)和軟件實(shí)現(xiàn)。為了給學(xué)生提供嚴(yán)格而良好的程序設(shè)計(jì)的基礎(chǔ)訓(xùn)練,教師制定課程設(shè)計(jì)標(biāo)準(zhǔn)化的要求:首先,需求分析,在這個(gè)階段,主要工作是要求識(shí)別分析問(wèn)題。其次,總體設(shè)計(jì),主要工作是定義系統(tǒng)的數(shù)據(jù)類(lèi)型和基本功能模型。第三,詳細(xì)設(shè)計(jì),設(shè)計(jì)任務(wù)主要是細(xì)化數(shù)據(jù)結(jié)構(gòu)規(guī)范和基本操作,定義數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),確定算法的主要步驟。第四,設(shè)計(jì)實(shí)現(xiàn),其任務(wù)是通過(guò)編碼和調(diào)試,使學(xué)生掌握錯(cuò)誤檢測(cè)的基本技術(shù)。第五,完成課程設(shè)計(jì)報(bào)告是最后階段。在課外科學(xué)活動(dòng)上,為了拓寬學(xué)生的知識(shí)面,提高學(xué)生的綜合能力,教師鼓勵(lì)學(xué)生參加各種課外科學(xué)活動(dòng),如大學(xué)生創(chuàng)新基金項(xiàng)目、教師科研、數(shù)學(xué)建模競(jìng)賽等。在這些活動(dòng)涉及許多數(shù)據(jù)結(jié)構(gòu)的基本理論。通過(guò)解決這些問(wèn)題,可以激發(fā)學(xué)生的學(xué)習(xí)積極性,提高學(xué)生的編程技能,提高他們分析問(wèn)題和解決問(wèn)題的能力。
2.3 興趣驅(qū)動(dòng)模式
針對(duì)傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)教學(xué)主要以填鴨式教學(xué)為主,無(wú)法充分調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣,因此培養(yǎng)學(xué)生的興趣尤其重要。興趣是最好的老師,是學(xué)生學(xué)習(xí)新知識(shí)的動(dòng)力源泉[7]。教師在課堂上就理論知識(shí)部分應(yīng)該做到主次分明、重點(diǎn)突出、懂得取舍,尤其應(yīng)著重結(jié)合具體應(yīng)用實(shí)例吸引學(xué)生的注意力。通過(guò)這些實(shí)例,更好地調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣,使他們意識(shí)到數(shù)據(jù)結(jié)構(gòu)并不單純是學(xué)習(xí)各種數(shù)據(jù)如何在計(jì)算機(jī)中存儲(chǔ)以及表示,而是所學(xué)的知識(shí)將來(lái)如何解決工作和生活中的相關(guān)問(wèn)題。同時(shí)教師在講解基本內(nèi)容和思路后,留出部分時(shí)間在現(xiàn)場(chǎng)向?qū)W生提問(wèn)并討論和予以解決,以發(fā)揮學(xué)生的主觀能動(dòng)性。這種互動(dòng)的教學(xué)方式,使學(xué)生由被迫式學(xué)習(xí)轉(zhuǎn)化為主動(dòng)式學(xué)習(xí),從而使這個(gè)學(xué)習(xí)過(guò)程變得生動(dòng)有趣。學(xué)生在學(xué)習(xí)過(guò)程中收獲到極大的滿足感與參與感,進(jìn)而提高教學(xué)效果。
3總結(jié)
本文在分析數(shù)據(jù)結(jié)構(gòu)教學(xué)中存在的諸多問(wèn)題后,提出了相應(yīng)的教學(xué)改革模式,希望以此提高教師在日常教學(xué)中的教學(xué)效果和教學(xué)質(zhì)量,尤其提高學(xué)生的實(shí)踐能力和編程能力。然而在教學(xué)探索中依然存在不少問(wèn)題,需要我們?cè)谝院蟮慕虒W(xué)實(shí)踐中進(jìn)一步完善和修正。
參考文獻(xiàn):
[1] Song Y, Jin S, Xu F. Explorations on Strengthening of Students Programming Capabilities in Data Structure Teaching[J]. Lecture Notes in Electrical Engineering, 2014(269):2765-2770.
[2] 李群,趙玉霞,莊波.《數(shù)據(jù)結(jié)構(gòu)》實(shí)驗(yàn)課程設(shè)計(jì)與探討[J].中國(guó)現(xiàn)代教育裝備,2007(3):27-28.
[3]沈華,張明武.以計(jì)算思維為中心的數(shù)據(jù)結(jié)構(gòu)教學(xué)方法探討[J].計(jì)算機(jī)教育,2016(10):145-148.
[4]尹蘭,唐翠芳.計(jì)算機(jī)專(zhuān)業(yè)基礎(chǔ)課程中的遞歸教學(xué)[J].現(xiàn)代計(jì)算機(jī),2012(5):57-60.
[5]郭艷燕,童向榮,孫雪姣,等.程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)兩門(mén)課程的教學(xué)銜接[J].計(jì)算機(jī)教育,2014(10):47-50.
[6]陳越,何欽銘.計(jì)算機(jī)專(zhuān)業(yè)研究型課程教學(xué)模式與創(chuàng)新能力培養(yǎng)的探索[J].計(jì)算機(jī)教育,2009(24): 99-101.
[7] 薛小鋒,薛向紅.案例教學(xué)在非計(jì)算機(jī)專(zhuān)業(yè)“C語(yǔ)言程序設(shè)計(jì)”教學(xué)中的應(yīng)用[J].江蘇技術(shù)師范學(xué)院學(xué)報(bào),2010(4):80-82.