周原 梁鵬
摘? 要:基于學(xué)生在自主學(xué)習(xí)中的個體化差異,文章提出在《數(shù)據(jù)結(jié)構(gòu)》教學(xué)中建立以學(xué)生為中心的教學(xué)模式改革實踐。文章首先分析了《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)中存在的諸多問題,通過對問題的全面分析后,提出了結(jié)合任務(wù)驅(qū)動型的教學(xué)方法。最后,通過對成績結(jié)果的分析表明,該課程教學(xué)改革措施有力地提升了學(xué)生的學(xué)習(xí)能力,并提高了學(xué)生的學(xué)習(xí)成績。
關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);教學(xué)改革;任務(wù)型驅(qū)動
中圖分類號:G642 文獻標(biāo)志碼:A 文章編號:2096-000X(2019)05-0142-03
Abstract: Based on the difference about the self-monitoring learning ability of the students , this paper introduces a teaching reform which centers on students on the course of Data Structure. This paper first describes some problems in the teaching of "Data Structure" and then points out that task-based teaching approach is a way out in improving students' learning as well as increasing their academic performance.
Keywords: data structure; teaching reform; task-based teaching approach
引言
《數(shù)據(jù)結(jié)構(gòu)》課程是計算機專業(yè)的一門核心基礎(chǔ)課程,它的前導(dǎo)課程是《C/C++程序設(shè)計》和《離散數(shù)學(xué)》,該課程與其它課程的獨立性不同,它有很強的承上啟下的作用?!稊?shù)據(jù)結(jié)構(gòu)》沒有學(xué)好,導(dǎo)致后面《算法分析與設(shè)計》等相關(guān)課程很難開展。目前國內(nèi)很多院校的《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)重點在于程序設(shè)計基礎(chǔ)方面,缺少個性化教學(xué)和主動任務(wù)驅(qū)動教學(xué),從而導(dǎo)致無法針對學(xué)生的學(xué)習(xí)能力差異進行區(qū)別性教學(xué)[1]。本文的主要研究內(nèi)容在于,面向具有不同程序設(shè)計基礎(chǔ)的學(xué)生群體,在存在差異化程序設(shè)計能力的前提下,以《數(shù)據(jù)結(jié)構(gòu)》課程為案例,研究任務(wù)驅(qū)動型教學(xué)方法,結(jié)合學(xué)科競賽和在線微課視頻,實現(xiàn)傳統(tǒng)學(xué)習(xí)方式的“被動性、依賴性、統(tǒng)一性、虛擬性、認同性”向現(xiàn)代學(xué)習(xí)方式的“主動性、獨立性、獨特性、體驗性與問題性”轉(zhuǎn)變過程。
一、《數(shù)據(jù)結(jié)構(gòu)》在教學(xué)中主要存在的問題
經(jīng)過多年教學(xué)一線的實踐經(jīng)驗發(fā)現(xiàn),學(xué)生學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)》課程主要存在以下問題:
1. 不同專業(yè)的學(xué)生程序設(shè)計思維存在差異。以計算機科學(xué)學(xué)院三個專業(yè)為例:軟件工程專業(yè)、物聯(lián)網(wǎng)工程專業(yè)、計算機應(yīng)用專業(yè)。這三個專業(yè)的學(xué)生在程序發(fā)散性思維方面存在明顯的差異,軟件工程專業(yè)學(xué)生表現(xiàn)出來在編程方面的邏輯思維最強,而在硬件方面的動手能力相對較弱。物聯(lián)網(wǎng)工程專業(yè)學(xué)生卻在硬件方面動作能力較強,而在編程能力相對較弱。
2. 學(xué)生編程實踐能力存在差異。由于不同的專業(yè)課程設(shè)置,軟件工程專業(yè)在學(xué)習(xí)完《C語言程序》,還有《程序設(shè)計訓(xùn)練》等課程后,編程能力得到強化。而數(shù)學(xué)師范專業(yè)或電子商務(wù)專業(yè)在學(xué)完《數(shù)據(jù)結(jié)構(gòu)與算法》后就沒有相應(yīng)的后繼算法編程課程,明顯對編程重視程度不同,由此也導(dǎo)致編程能力的差異非常大。
3. 課程內(nèi)容比較抽象,每種數(shù)據(jù)結(jié)構(gòu)都是由抽象數(shù)據(jù)類型描述,相對比較難以理解?!稊?shù)據(jù)結(jié)構(gòu)與算法》課程中順序表,棧,隊列,樹,圖等數(shù)據(jù)結(jié)構(gòu)都是高度抽象的數(shù)據(jù)描述,難以用現(xiàn)實事物進行案例說明,學(xué)生無法將知識點具體化、形象化,從而導(dǎo)致難以理解課程內(nèi)容。
二、任務(wù)驅(qū)動型教學(xué)方法的實施[2]
經(jīng)過多年一線教學(xué),清華大學(xué)出版社出版的李春葆教授主編的《數(shù)據(jù)結(jié)構(gòu)教程》非常適合本校學(xué)生。本文將以此教材作為基礎(chǔ),來做為實例進行任務(wù)驅(qū)動教學(xué)[3]。
在教學(xué)過程中,根據(jù)課堂的教學(xué)內(nèi)容來布置相應(yīng)的上機實踐任務(wù),由此來鞏固與加強學(xué)生對所授知識的理解。但不管布置什么類型的題目,都有學(xué)生會覺得該題容易(處于舒適區(qū)),同時也有另外一部分同學(xué)覺得很難(處于恐慌區(qū)),在這些題目的完成過程中,勢必影響到這部分同學(xué)學(xué)習(xí)的積極性。如果能創(chuàng)設(shè)難度適中的上機實踐任務(wù)(處于最佳區(qū)域?qū)W習(xí)區(qū)),就能驅(qū)使學(xué)生在能力范圍之內(nèi)通過努力學(xué)習(xí)解決此任務(wù),由此也能逐步擴大本人的舒適區(qū),意味著知識與能力的增強。通過課程的進度不斷創(chuàng)設(shè)任務(wù)集,使每一個學(xué)生都能找到與之匹配的學(xué)習(xí)區(qū)的任務(wù)。學(xué)生通過解決任務(wù)當(dāng)中的問題,因而產(chǎn)生的愉悅感能進一步激發(fā)學(xué)生的學(xué)習(xí)動力[4]。
(一)簡單編程到模塊化編程的任務(wù)
由于學(xué)生都是上個學(xué)期剛剛學(xué)完C語言,基本上還沒有模塊化編程的思想,所有代碼都喜歡寫在主函數(shù)里面。導(dǎo)致程序結(jié)構(gòu)紊亂,思路不清晰。通過一個實例,如:實現(xiàn)抽象數(shù)據(jù)類型復(fù)數(shù)的加減乘除等基本操作。將復(fù)數(shù)的每一個操作都用一個具體函數(shù)來實現(xiàn)。這樣通過一個代表性的任務(wù),讓學(xué)生建立模塊化編程的思想。
(二)改錯型任務(wù)驅(qū)動訓(xùn)練
學(xué)生在編程過程中一旦調(diào)試或編譯時遇到錯誤,這時最容易出現(xiàn)畏難情緒。調(diào)試能力得到不到提高,會嚴重打擊到學(xué)生學(xué)習(xí)《數(shù)據(jù)結(jié)構(gòu)與算法》的熱情。由于長年在教學(xué)一線,熟悉學(xué)生容易出現(xiàn)的問題,精準(zhǔn)設(shè)置了三類錯誤程序進行改錯。一類是選擇學(xué)生自己寫的作品,選擇比較具有代表性的。這種一般含有大量語法錯誤,格式錯誤,命名錯誤等。二類是針對學(xué)生常犯的錯誤,自己進行設(shè)置錯誤,一般通過編譯器的提示與對代碼的理解可以進行逐步的修改與完善。三類是設(shè)置編譯沒有任何語法錯誤,但是運行卻得不到正確結(jié)果的代碼。解決此類問題需要建立在學(xué)生對代碼進行全篇理解的基礎(chǔ)上才能通過調(diào)試解決問題。經(jīng)過改錯型任務(wù)驅(qū)動訓(xùn)練后,學(xué)生對語法更加熟悉,解決編譯與調(diào)試問題思路會更加清晰,明白怎么去解決問題,找到問題的卡殼之處。
(三)基礎(chǔ)型任務(wù)到拓展型任務(wù)驅(qū)動
在學(xué)習(xí)過程中,由于存在學(xué)生能力的差異,針對性的布置不同任務(wù)就顯得尤為重要。所以在每個章節(jié)的理論教學(xué)結(jié)束后,都會根據(jù)學(xué)生掌握情況進行差異化布置任務(wù),并對每名學(xué)生的完成情況進行記錄,為以后的學(xué)習(xí)制定合適的任務(wù)[5]。
通過設(shè)置豐富任務(wù)題集,對不同能力的同學(xué)進行針對性布置任務(wù),使任務(wù)處于學(xué)生能力范圍內(nèi)的學(xué)習(xí)區(qū)。學(xué)生通過完成任務(wù)后產(chǎn)生的成就感能進一步激發(fā)他挑戰(zhàn)更加難的任務(wù),從而使他的舒適區(qū)逐步擴大。
(四)競賽型題目任務(wù)驅(qū)動
為了提高學(xué)生綜合運用所學(xué)知識來解決實際問題的能力,收集了一些海外高校競賽題。例如管道通訊問題就可以利用數(shù)據(jù)結(jié)構(gòu)中最小生成樹普里姆(Prim)算法得到求解。這些問題的設(shè)置拓寬了學(xué)生的視野,也提高了學(xué)生查閱資料,解決實際問題的能力。
三、實施任務(wù)驅(qū)動型教方法的保障與激勵措施
《數(shù)據(jù)結(jié)構(gòu)與算法》課程中知識點多,而且量非常大。僅靠課堂上的講授時間不足以保證學(xué)生能完全弄懂弄明白,而對絕大部分學(xué)生來說,利用課后的時間通過自學(xué)來掌握教材上的知識點,往往要付出巨大的努力。為了讓學(xué)生聽得懂,掌握得住,用得上。通過將《數(shù)據(jù)結(jié)構(gòu)與算法》上的知識點分三類做成教學(xué)小視頻。分別是:知識點類,練習(xí)類,代碼類。視頻的好處是可以反復(fù)觀看,相當(dāng)于老師在反復(fù)講同一個知識點。這樣為學(xué)生掌握基礎(chǔ)知識點提供了非常有效的保障。
另外,對于學(xué)生提交的紙質(zhì)作業(yè),郵件提交的代碼作業(yè),上機實踐課提交實踐作業(yè)。每次都會根據(jù)完成質(zhì)量分等級進行詳細記錄,分批對部分同學(xué)作業(yè)進行詳細點評,指出其寫得好的地方和不足之處,以及努力的方向,最后再寫上鼓勵和期望的話語。讓學(xué)生感覺到老師對他的關(guān)心與期盼。并且在課堂上提出表揚,既為其他學(xué)生樹立了榜樣,同時是對該生付出的努力進行肯定。對于完成質(zhì)量不達標(biāo)的同學(xué)就作業(yè)內(nèi)容進行不點名批評,既保護了隱私照顧了自尊同時又對該生進行了鞭策。經(jīng)過以上措施的實施,能非常明顯的感覺到學(xué)生在聽課的互動投入程度,作業(yè)完成質(zhì)量上,實踐作品的用心程度,都有很大的進步。
四、實施效果分析
教改模式實施后,學(xué)生對作業(yè)的投入程序得到顯著提升,各班級學(xué)生完成作業(yè)的合格率優(yōu)秀率也得到了提高,例如:計算機應(yīng)用專業(yè)優(yōu)秀率由14級的15%提高到16級的23%。缺交作業(yè)的現(xiàn)象降低了不少,例如:計算機應(yīng)用專業(yè)的缺交作業(yè)或都不合格情況由14級的25%下降到16級的10%。各班級情況統(tǒng)計具體如圖1所示。
教改模式實施后,各個專業(yè)的學(xué)生對知識點的掌握更加扎實,在題目難易程序幾乎不變的基礎(chǔ)上,不同專業(yè)各級修完該課程后,期末考試成績得到了提升。例如:計算機應(yīng)用專業(yè)14級的期末考試平均分為78.23分,到16級時期末考試平均分提高到了83.33分。各班級成績具體如圖2所示。
教改模式實施后,學(xué)生的學(xué)習(xí)方法得到的豐富,學(xué)習(xí)主觀能動性得到提高,學(xué)習(xí)能力也得到了加強。這樣為后繼專業(yè)課程的學(xué)習(xí)打下更加扎實的基礎(chǔ),使教師的教學(xué)更加容易開展。學(xué)生的能力與自信心增加后,參加各類比賽的獲獎率大幅提升,如2016年“藍橋杯”省賽一等獎獲獎人數(shù)為5人到2018年一等獎獲獎人數(shù)增加到12人。國賽也有4人獲得了二等獎。報考軟件工程師的比例由2016年的5.4%增加到2017年16.2%。
五、結(jié)束語
通過以學(xué)生為中心的《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)的探索和實踐過程中,深刻感受到,老師不僅僅只是教授知識,而且還要在教授知識的方法上,手段上也要與時俱進,同時還要想辦法提供各種教學(xué)資源,同時激發(fā)學(xué)生學(xué)習(xí)動力,培養(yǎng)學(xué)生動手能力,使得以后的《數(shù)據(jù)結(jié)構(gòu)》課程的教學(xué)效果越來越好。
參考文獻:
[1]郝宗波.數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革探討[J].計算機教育,2011,02.
[2]黃博軍.任務(wù)驅(qū)動教學(xué)法在“C語言程序設(shè)計”課程中的應(yīng)用[J].襄樊職業(yè)技術(shù)學(xué)院學(xué)報,2007,03.
[3]李春葆.數(shù)據(jù)結(jié)構(gòu)教程(第5版)[M].清華大學(xué)出版社,2017,05.
[4]李華群,曾惠芳.提升獨立學(xué)院“算法與數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)質(zhì)量的探討[J].教育與職業(yè),2008,12.
[5]揭安全,李云清,楊慶紅,等.數(shù)據(jù)結(jié)構(gòu)實踐教學(xué)體系的設(shè)計與實施[J].計算機教育,2010,09.