汪赫瑜
摘要:《數(shù)據(jù)結(jié)構(gòu)》是計(jì)算機(jī)專業(yè)的核心基礎(chǔ)課程,也是一門實(shí)踐性很強(qiáng)的課程。在《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)中,結(jié)合實(shí)際項(xiàng)目對(duì)教學(xué)方法進(jìn)行了改革,讓學(xué)生在教師的組織引導(dǎo)下,通過完成項(xiàng)目,更好地掌握所學(xué)知識(shí),把理論知識(shí)更好地應(yīng)用于實(shí)踐,取得了良好的教學(xué)效果。
關(guān)鍵詞:項(xiàng)目;教學(xué)方法;教學(xué)效果
中圖分類號(hào):G642.41 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1674-9324(2016)19-0147-02
一、引言
數(shù)據(jù)結(jié)構(gòu)是一門學(xué)科,主要針對(duì)非數(shù)值計(jì)算(如表、樹、圖等)的程序設(shè)計(jì)問題,研究計(jì)算機(jī)的操作對(duì)象以及它們之間的關(guān)系和操作等[1]。同樣的數(shù)據(jù)對(duì)象,用不同的數(shù)據(jù)結(jié)構(gòu)來表示,運(yùn)算效率可能有明顯的差異。好的程序設(shè)計(jì)必須要采用好的算法,同時(shí)還要有好的數(shù)據(jù)結(jié)構(gòu)?!稊?shù)據(jù)結(jié)構(gòu)》這門課程在計(jì)算機(jī)及相關(guān)專業(yè)本科生的教學(xué)計(jì)劃中起著承上啟下的重要作用,同時(shí)學(xué)好本門課程可以為其他專業(yè)課的學(xué)習(xí)打好堅(jiān)實(shí)的基礎(chǔ)。
二、傳統(tǒng)教學(xué)存在的主要問題
在以往的教學(xué)中,老師一般都偏重概念,忽視思想,脫離應(yīng)用,照本宣科,沒有從思想和過程上將算法闡述清楚;對(duì)利用數(shù)據(jù)結(jié)構(gòu)和算法解決實(shí)際問題講解太少,使得許多學(xué)生認(rèn)為《數(shù)據(jù)結(jié)構(gòu)》是純理論課程,只重視理論學(xué)習(xí)而輕視實(shí)踐。
數(shù)據(jù)結(jié)構(gòu)這門課程相對(duì)而言抽象內(nèi)容比較多,算法理解相對(duì)困難。特別是一些理論知識(shí)比較抽象,在教學(xué)過程中無法將其直觀地表現(xiàn)出來。比如樹和圖的抽象數(shù)據(jù)類型的定義中,數(shù)據(jù)關(guān)系的描述;再如圖的關(guān)鍵路徑算法、最短路徑算法,要理解這些思想都比較困難,給教學(xué)帶來了一定的難度[2]。
“C語言程序設(shè)計(jì)”是“數(shù)據(jù)結(jié)構(gòu)”的前導(dǎo)課程。但很多學(xué)生對(duì)多維數(shù)組、結(jié)構(gòu)體、指針這三種數(shù)據(jù)類型的認(rèn)識(shí)和理解不深,尤其是缺乏對(duì)函數(shù)的遞歸調(diào)用及遞歸過程的理解。這些內(nèi)容是數(shù)據(jù)結(jié)構(gòu)課程的重要基礎(chǔ)和必備知識(shí),在數(shù)據(jù)結(jié)構(gòu)課程中使用頻度相當(dāng)高。很多同學(xué)編程能力差,這都導(dǎo)致了數(shù)據(jù)結(jié)構(gòu)課程的教學(xué)效果不理想,部分學(xué)生信心受挫,對(duì)數(shù)據(jù)結(jié)構(gòu)這門課產(chǎn)生抵觸情緒。
課程考核方式單一。當(dāng)前數(shù)據(jù)結(jié)構(gòu)考核主要就是期末筆試考試,造成許多學(xué)生為考試過關(guān)而學(xué),并不注重自身能力的提高,造成大部分學(xué)生在學(xué)完課程后連簡(jiǎn)單的程序設(shè)計(jì)都無法完成。這種背離教學(xué)培養(yǎng)目標(biāo)的現(xiàn)象已嚴(yán)重阻礙了數(shù)據(jù)結(jié)構(gòu)課程的良性發(fā)展。
綜上所述,許多高校在講授數(shù)據(jù)結(jié)構(gòu)這門課程時(shí),遇到的一系列問題,我們應(yīng)該尋找行之有效的方法加以解決。
三、項(xiàng)目驅(qū)動(dòng)教學(xué)模式[3]
為了解決數(shù)據(jù)結(jié)構(gòu)教學(xué)過程中存在的主要問題,提出了一種基于“項(xiàng)目驅(qū)動(dòng)”的教學(xué)法,該方法是實(shí)施探究性教學(xué)模式的一種教學(xué)方法。它是將所學(xué)知識(shí)隱含在一個(gè)或幾個(gè)項(xiàng)目當(dāng)中,在學(xué)科學(xué)習(xí)中,“項(xiàng)目驅(qū)動(dòng)”教學(xué)法以問題作為載體,創(chuàng)設(shè)一種類似科學(xué)探究的情景或途徑,引導(dǎo)學(xué)生學(xué)習(xí)新的知識(shí),并讓學(xué)生自主通過已學(xué)的知識(shí),分析問題、完成項(xiàng)目,并通過項(xiàng)目再更好地理解所學(xué)知識(shí),做到融會(huì)貫通,既培養(yǎng)了學(xué)生的實(shí)踐能力又鞏固了已學(xué)的知識(shí)。
(一)教學(xué)方法
采用“基于項(xiàng)目驅(qū)動(dòng)”的教學(xué)模式,主要就是通過“項(xiàng)目”的提出,將學(xué)生帶入思考環(huán)境中,從而引出需要解決“項(xiàng)目”中問題的方法——新的知識(shí)點(diǎn),通過新知識(shí)點(diǎn)基本功能的講述,實(shí)現(xiàn)所提出的“項(xiàng)目”的基本功能,接著引導(dǎo)學(xué)生思考如何去完善這個(gè)“項(xiàng)目”,從而引出新知識(shí)點(diǎn)的全部功能或各種用法,使學(xué)生在主動(dòng)思考中自覺地接受知識(shí)這樣一種教學(xué)模式;將傳統(tǒng)模式中以教師為中心、學(xué)生被動(dòng)地聽,以講述知識(shí)點(diǎn)為主、理論與實(shí)際嚴(yán)重脫節(jié)的教學(xué)方式,改變?yōu)橐詫W(xué)生為中心、通過學(xué)生主動(dòng)思考,來引導(dǎo)學(xué)生探索新知識(shí),設(shè)計(jì)項(xiàng)目從而使理論與實(shí)際相結(jié)合,來激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生解決實(shí)際問題的能力。學(xué)習(xí)、思考、動(dòng)手相結(jié)合,相輔相成,老師引導(dǎo)學(xué)生邊學(xué)邊做,小組成員協(xié)作完成相應(yīng)的學(xué)習(xí)任務(wù),實(shí)現(xiàn)“學(xué)中做”、“做中學(xué)”,使學(xué)生不會(huì)覺得所學(xué)知識(shí)枯燥無味,還能更好地理解一些復(fù)雜的問題。讓學(xué)生真正掌握知識(shí)和相應(yīng)技能。
(二)教學(xué)組織過程
在教學(xué)手段上重點(diǎn)知識(shí)主要以多媒體技術(shù)為依托,制作高質(zhì)量的多媒體課件,突出教學(xué)內(nèi)容的重點(diǎn),對(duì)難理解的算法采用圖形設(shè)計(jì)和動(dòng)態(tài)演示的方式形象地表示出來,加強(qiáng)學(xué)生對(duì)抽象問題的理解,用以擴(kuò)大學(xué)生的編程思維能力。
在教學(xué)過程中除了對(duì)重點(diǎn)知識(shí)進(jìn)行講授之外,還對(duì)實(shí)際項(xiàng)目進(jìn)行系統(tǒng)分析,定期安排小組進(jìn)行研討,每個(gè)小組分階段給出項(xiàng)目需使用的主要理論知識(shí),需完成的主要功能,以及在實(shí)現(xiàn)時(shí)遇到的主要困難,整個(gè)過程中以學(xué)生為主,教師為輔,引導(dǎo)學(xué)生完成項(xiàng)目。
(三)考核方式
數(shù)據(jù)結(jié)構(gòu)是一門理論與實(shí)踐結(jié)合非常緊密的學(xué)科,針對(duì)這一特點(diǎn),我們采取的考核方式從傳統(tǒng)的筆試,改為以監(jiān)督學(xué)生的學(xué)習(xí)過程為主的方法,主要從三方面進(jìn)行考核。
1.平時(shí)成績(jī)。平時(shí)成績(jī)主要包括平時(shí)課堂表現(xiàn),上機(jī)實(shí)驗(yàn)的完成情況,作業(yè)完成情況,小組研討時(shí)的表現(xiàn)進(jìn)行評(píng)價(jià),平時(shí)成績(jī)占總成績(jī)的25%。
2.綜合項(xiàng)目成績(jī)。綜合項(xiàng)目中設(shè)置了3個(gè)項(xiàng)目,內(nèi)容涵蓋線性表、棧和隊(duì)列、樹、圖、查找和排序等知識(shí)。根據(jù)學(xué)生撰寫的文檔質(zhì)量、學(xué)生設(shè)計(jì)的軟件的功能完善情況、演示及答辯,明確每個(gè)學(xué)生所做的工作,綜合評(píng)價(jià)每個(gè)小組成員對(duì)所做項(xiàng)目的貢獻(xiàn)度。綜合訓(xùn)練成績(jī)占總成績(jī)的45%。
3.期末考試成績(jī)。期末閉卷考試考核學(xué)生對(duì)本課程的綜合理解與掌握的情況,采用選擇、填空、綜合應(yīng)用等多種題型進(jìn)行考核,內(nèi)容涵蓋數(shù)據(jù)結(jié)構(gòu)主要知識(shí)點(diǎn):算法時(shí)間復(fù)雜性、空間復(fù)雜性分析、線性表、棧和隊(duì)列、串、數(shù)組和廣義表、樹、圖、查找和排序等內(nèi)容。期末閉卷考試成績(jī)占總成績(jī)30%。
四、綜合項(xiàng)目的設(shè)計(jì)與實(shí)施
《數(shù)據(jù)結(jié)構(gòu)》這門課程主要講授線性結(jié)構(gòu)、樹形結(jié)構(gòu)和圖形結(jié)構(gòu)三種結(jié)構(gòu),所以針對(duì)重點(diǎn)內(nèi)容主要設(shè)計(jì)三個(gè)項(xiàng)目進(jìn)行訓(xùn)練。每個(gè)項(xiàng)目只給出基本功能,要求學(xué)生查閱資料,分析需求,盡可能多地完成功能。
(一)項(xiàng)目設(shè)計(jì)
1.線性結(jié)構(gòu)綜合項(xiàng)目。線性結(jié)構(gòu)是最基礎(chǔ),也是最重要的一種結(jié)構(gòu),通過此項(xiàng)訓(xùn)練讓學(xué)生掌握線性結(jié)構(gòu)的知識(shí);要求編程實(shí)現(xiàn)XXX管理系統(tǒng),使學(xué)生掌握線性結(jié)構(gòu)的存儲(chǔ)(順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ))及相關(guān)算法設(shè)計(jì)(錄入、修改添加、刪除、查找、排序、統(tǒng)計(jì)等)。充分運(yùn)用所學(xué)知識(shí),以及對(duì)所設(shè)計(jì)項(xiàng)目需求的充分理解,設(shè)計(jì)功能完善的系統(tǒng)。
2.樹形結(jié)構(gòu)綜合項(xiàng)目。樹形結(jié)構(gòu)是一種非常重要的非線性結(jié)構(gòu),它用于描述數(shù)據(jù)元素之間的層次關(guān)系,通過此項(xiàng)訓(xùn)練讓學(xué)生掌握樹形結(jié)構(gòu)的知識(shí),使學(xué)生重點(diǎn)掌握樹與二叉樹的建立、轉(zhuǎn)換,二叉樹的存儲(chǔ)和遍歷,和二叉樹相關(guān)的一些運(yùn)算。
3.圖形結(jié)構(gòu)綜合項(xiàng)目。圖形結(jié)構(gòu)是一種比樹結(jié)構(gòu)還復(fù)雜的非線性結(jié)構(gòu),該結(jié)構(gòu)的應(yīng)用極其廣泛。通過此項(xiàng)訓(xùn)練讓學(xué)生掌握?qǐng)D結(jié)構(gòu)的知識(shí);使學(xué)生重點(diǎn)掌握?qǐng)D的存儲(chǔ)和遍歷及圖的各種應(yīng)用實(shí)現(xiàn);重點(diǎn)是關(guān)鍵路徑、最短路徑、最小生成樹的實(shí)現(xiàn)。
(二)項(xiàng)目實(shí)施
把學(xué)生按每小組5人進(jìn)行分組,組內(nèi)同學(xué)共同設(shè)計(jì)完成訓(xùn)練項(xiàng)目。根據(jù)教學(xué)的進(jìn)度,每個(gè)項(xiàng)目大約設(shè)計(jì)5~6周,每周安排答疑和上機(jī)時(shí)間,并在設(shè)計(jì)過程中根據(jù)需要在上課時(shí)安排小組研討。每個(gè)項(xiàng)目完成后,每小組要提交書面文檔(主要包括問題定義、問題分析、設(shè)計(jì)思路、主要的數(shù)據(jù)結(jié)構(gòu)、功能模塊圖及函數(shù)的定義及功能等);實(shí)現(xiàn)的軟件設(shè)計(jì)提交電子文檔;最后通過答辯檢驗(yàn)學(xué)生的綜合知識(shí)掌握的程度,明確在項(xiàng)目完成過程中每個(gè)學(xué)生所做的工作,同時(shí)組內(nèi)成員要互相講解自己完成的部分,使得每個(gè)學(xué)生都能完整地掌握項(xiàng)目設(shè)計(jì)的全部?jī)?nèi)容。
(三)效果評(píng)價(jià)
采用“基于項(xiàng)目驅(qū)動(dòng)”的教學(xué)模式進(jìn)行教學(xué),教學(xué)效果的評(píng)價(jià)主要通過驗(yàn)收綜合訓(xùn)練的結(jié)果。主要有三部分組成,一是學(xué)生書寫的文檔,包括問題定義、問題分析、設(shè)計(jì)思路、功能模塊圖、功能描述、運(yùn)行結(jié)果以及分析組成;二是學(xué)生設(shè)計(jì)的軟件,通過演示了解完成的具體功能,尤其是了解除了給出的基本功能之外又完成了哪些附加功能;三是通過答辯了解每個(gè)學(xué)生所做的工作,以及對(duì)小組其他成員所做工作的學(xué)習(xí)情況;最后通過分析學(xué)生每個(gè)綜合訓(xùn)練的最終成績(jī)來評(píng)價(jià)此教學(xué)方法的效果。
對(duì)于每一個(gè)項(xiàng)目來說,每個(gè)小組的文檔部分完成情況良好,內(nèi)容完整,描述清楚。軟件實(shí)現(xiàn)從正確性、完整性、可讀性、可理解性、可修改性、靈活性及操作方便性等方面綜合評(píng)價(jià)。學(xué)生們針對(duì)報(bào)告的設(shè)計(jì)思路能夠做到很好的實(shí)現(xiàn),但都存在功能考慮不全的問題,主要原因是需求分析做的不夠好,很多功能學(xué)生們都想不到,但通過訓(xùn)練使學(xué)生們得到充分的鍛煉,編程能力有很大地提高。答辯部分主要看學(xué)生們回答問題的準(zhǔn)確性和完整性,通過學(xué)生們回答問題及講解主要算法,反映學(xué)生對(duì)算法的理解和掌握情況良好,解決具體問題的能力都有很大提高,同時(shí)還提高了學(xué)生們的語言表達(dá)能力。
總體來說,采用基于項(xiàng)目的教學(xué)方法改革取得了一定的效果,學(xué)生們都能充分重視和認(rèn)真對(duì)待每個(gè)項(xiàng)目,培養(yǎng)了學(xué)生們的團(tuán)隊(duì)精神,從而合作完成設(shè)計(jì)及實(shí)現(xiàn)。
五、結(jié)語
將實(shí)際項(xiàng)目應(yīng)用到數(shù)據(jù)結(jié)構(gòu)的教學(xué)中,激發(fā)學(xué)生的求知欲和自主學(xué)習(xí)的積極性。讓學(xué)生將課堂上學(xué)到的知識(shí)直接應(yīng)用于具體項(xiàng)目,能夠使學(xué)生更好地理解理論知識(shí),并能提高學(xué)生的實(shí)際動(dòng)手能力。為后續(xù)課程的學(xué)習(xí)和科研工作的參與打下良好的基礎(chǔ)。經(jīng)過此教學(xué)方法的改革達(dá)到了很好的教學(xué)效果,學(xué)生們掌握本課程的知識(shí)情況比往屆學(xué)生要好,得到了廣大同學(xué)的認(rèn)可。
參考文獻(xiàn):
[1]嚴(yán)蔚敏,吳偉民,等.數(shù)據(jù)結(jié)構(gòu)C語言版[M].北京:清華大學(xué)出版社,2007:22-23.
[2]游靜,李寧,徐守坤.數(shù)據(jù)結(jié)構(gòu)教學(xué)問題的思考[J].時(shí)代教育,2008,(10):147-146.
[3]徐雅斌,周維真,施運(yùn)梅,劉旭紅,凌濤.項(xiàng)目驅(qū)動(dòng)教學(xué)模式的研究與實(shí)踐[J].遼寧工業(yè)大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2011,(13):125-127.