劉 丹
(長春理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,長春 130022)
《數(shù)據(jù)結(jié)構(gòu)與算法》是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)最重要的一門專業(yè)基礎(chǔ)課,數(shù)據(jù)的組織結(jié)構(gòu)以及對這些結(jié)構(gòu)化數(shù)據(jù)操作的實(shí)現(xiàn)是這門學(xué)科所關(guān)心的核心問題。通過對《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程的學(xué)習(xí),學(xué)生們能夠理解各種數(shù)據(jù)對象的特點(diǎn),增強(qiáng)邏輯思維和分析問題、解決問題的能力,進(jìn)一步提高程序設(shè)計(jì)和軟件開發(fā)的能力,同時(shí)也將為計(jì)算機(jī)專業(yè)后續(xù)課程打下堅(jiān)實(shí)的基礎(chǔ)。因此,數(shù)據(jù)結(jié)構(gòu)課程在本專業(yè)學(xué)生的培養(yǎng)過程中具有舉足輕重的作用[1-3]。
《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程不僅僅是計(jì)算機(jī)專業(yè)基礎(chǔ)課,也是部分非計(jì)算機(jī)專業(yè)的必修或選修課程,本門課程的開課主要目的是為培養(yǎng)學(xué)生們?nèi)绾芜\(yùn)用計(jì)算機(jī)解決實(shí)際問題,提供出堅(jiān)實(shí)的理論基礎(chǔ)。這門課程具有邏輯性較強(qiáng)、抽象性較高的特點(diǎn),正是由于這些特點(diǎn)常常會造成學(xué)生難于理解、運(yùn)用[4-5]。如何完成教學(xué)任務(wù)、達(dá)到教學(xué)目的、實(shí)現(xiàn)教學(xué)目標(biāo)、提高教學(xué)質(zhì)量,一直是一個嚴(yán)峻的問題!在實(shí)際教學(xué)過程中,時(shí)常會發(fā)現(xiàn)學(xué)生們感覺到這門課程枯燥、不容易掌握;學(xué)習(xí)起來較吃力,解決實(shí)際問題能力差;在從事軟件開發(fā)時(shí),靈活應(yīng)用能力弱等問題。
在《數(shù)據(jù)結(jié)構(gòu)與算法》這門計(jì)算機(jī)專業(yè)基礎(chǔ)課程中,涉及到多種計(jì)算機(jī)程序設(shè)計(jì)中經(jīng)常用到的線性表、棧、隊(duì)列、串、數(shù)組、廣義表、樹、二叉樹、圖等數(shù)據(jù)結(jié)構(gòu),知識點(diǎn)多,運(yùn)用靈活。在學(xué)習(xí)過程中,對于老師們的授課內(nèi)容,多數(shù)學(xué)生不能及時(shí)有效地復(fù)習(xí)鞏固,就勢必會造成前面的知識還沒有完全理解掌握、靈活運(yùn)用實(shí)踐,新的知識又接踵而至,造成問題堆積。在這樣的情況下,經(jīng)常會出現(xiàn)“聽課不易,實(shí)踐更難”的情況。
《數(shù)據(jù)結(jié)構(gòu)與算法》是一門實(shí)踐性很強(qiáng)的計(jì)算機(jī)專業(yè)基礎(chǔ)課程,在這門課程中涉及的主要算法,都基本上要在先修課程的基礎(chǔ)上理解完成。這也就要求學(xué)生應(yīng)具備一定的編程能力基礎(chǔ),要求學(xué)生能夠駕馭某種程序設(shè)計(jì)語言來實(shí)現(xiàn)課程中涉及到的算法。學(xué)生們具備一定的動手能力,對算法的理解是十分有幫助。只有通過實(shí)踐過程,學(xué)生們才能更好理解和掌握所學(xué)的理論知識。在實(shí)驗(yàn)課上,經(jīng)常會出現(xiàn)這樣的情況,很多學(xué)生能夠設(shè)計(jì)出實(shí)驗(yàn)題目所要求的算法,但是卻無法用程序設(shè)計(jì)語言順利表現(xiàn)出來;即使能編寫出相應(yīng)程序段,在編譯調(diào)試階段,往往也會錯誤百出,造成學(xué)生們失去信心、喪失學(xué)習(xí)樂趣。
由于《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程章節(jié)內(nèi)容之間有著相互關(guān)聯(lián)遞進(jìn)關(guān)系,所以在每章實(shí)驗(yàn)題目內(nèi)容上同樣的有著遞進(jìn)關(guān)系。前面章節(jié)的實(shí)驗(yàn)內(nèi)容,如果學(xué)生們完成得不好,新的實(shí)驗(yàn)任務(wù)又布置下來,這樣很容易造成舊的問題沒解決,新的問題又來了,日積月累會造成學(xué)生“無從下手,不想下手”的局面。
在平時(shí)布置實(shí)驗(yàn)題目任務(wù)的時(shí)候,由于受到課程理論授課內(nèi)容的限制,所以同一章節(jié)的實(shí)驗(yàn)題目內(nèi)容對于每個學(xué)生都是相同的。這就為有些學(xué)生提供“方便條件”,使他們找到了完成實(shí)驗(yàn)任務(wù)的“捷徑”,自己不用動腦思考問題、解決問題,而直接修改他人編寫設(shè)計(jì)的程序,更有甚者則直接復(fù)制他人設(shè)計(jì)的程序。這樣的做法,雖然學(xué)生們能“輕松”順利地通過實(shí)驗(yàn)程序驗(yàn)收,得到相應(yīng)的成績,但是卻無法真正使學(xué)生們提高解決實(shí)際問題的能力。
針對學(xué)生們無法及時(shí)消化教師授課內(nèi)容,無法將所學(xué)到的理論知識運(yùn)用到解決實(shí)際問題當(dāng)中去的情況,在階段授課之后,增加階段測試和知識回顧兩個學(xué)習(xí)環(huán)節(jié)。階段測試,主要目的是為了能夠及時(shí)了解到學(xué)生們學(xué)習(xí)的“薄弱環(huán)節(jié)”,將學(xué)生們學(xué)習(xí)過程中遇到的問題顯現(xiàn)出來,并對這些問題進(jìn)行總結(jié)劃分。針對總結(jié)得到的問題,再進(jìn)行知識回顧。知識回顧不僅僅是簡單的陳述,而是針對測驗(yàn)階段反應(yīng)的問題,有針對性地給學(xué)生們進(jìn)行詳細(xì)講解。這樣不僅能夠掃清課堂授課中的“教學(xué)盲點(diǎn)”,還能幫助學(xué)生們及時(shí)復(fù)習(xí)鞏固所學(xué)習(xí)過的理論知識,同時(shí)為提高學(xué)生們的實(shí)踐動手能力,做好了準(zhǔn)備工作,打下了堅(jiān)實(shí)的基礎(chǔ)。
針對學(xué)生們的編程能力普遍不強(qiáng)的情況,在本課程的理論課堂已開始而實(shí)驗(yàn)課堂還沒有開始的時(shí)候,布置適量的選修實(shí)驗(yàn)題目。這些題目主要為了喚醒學(xué)生以往的編程記憶,提早進(jìn)入狀態(tài),達(dá)到能夠熟練掌握調(diào)試程序技巧的目的。在教學(xué)過程中,發(fā)現(xiàn)有部分學(xué)生沒有計(jì)算機(jī),這樣勢必會造成這些學(xué)生只能在上實(shí)驗(yàn)課時(shí)才能接觸計(jì)算機(jī),實(shí)踐機(jī)會過少,難以實(shí)現(xiàn)理論知識應(yīng)用化的過程。針對這樣的情況,計(jì)算機(jī)實(shí)驗(yàn)室采取開放式管理,不僅使學(xué)生獲得更多的實(shí)踐機(jī)會,提高了個人的動手及解決實(shí)際問題的能力,而且還能使得教學(xué)資源利用率大大提高。
為了避免發(fā)生程序抄襲的問題,任課教師在設(shè)計(jì)實(shí)驗(yàn)題目的時(shí)候,打破以往“一課一題”的傳統(tǒng)模式,針對同一知識點(diǎn),設(shè)計(jì)出多組實(shí)驗(yàn)題目;并且在程序檢查的過程中,教師們改變以往的驗(yàn)收方式,不再像從前評定成績的優(yōu)劣主要以程序運(yùn)行結(jié)果為依據(jù),而更看重的是算法設(shè)計(jì)思路以及實(shí)現(xiàn)過程,并要求學(xué)生們在實(shí)驗(yàn)報(bào)告中清楚、準(zhǔn)確地表現(xiàn)出來。這兩種做法,有效地遏制了程序抄襲問題,使學(xué)生們逐漸養(yǎng)成了相互探討問題、共同攻破難題的良好的學(xué)習(xí)風(fēng)氣。
在一定的階段學(xué)習(xí)之后,任課教師會根據(jù)學(xué)生們的平時(shí)完成實(shí)驗(yàn)情況,統(tǒng)計(jì)學(xué)生們中多數(shù)人所集中體現(xiàn)出的問題,有針對性地、有目的地為大家講解及演示,消除學(xué)生們心中疑惑;并針對這些問題,再擬定一些稍難的選做實(shí)驗(yàn)題目,供學(xué)生們鞏固理論知識、加強(qiáng)動手能力。因?yàn)閷?shí)驗(yàn)課的學(xué)時(shí)分配十分有限,所以任課教師不能再將后期布置的選做實(shí)驗(yàn)題目,再一一檢查、講解。但這并不意味著,學(xué)生們對于這些選做題目的完成情況就無從評價(jià)及驗(yàn)證,因?yàn)槿握n教師會在一定時(shí)間后將參考的程序設(shè)計(jì)方案提供給同學(xué)們。這樣,會更加有利于培養(yǎng)學(xué)生們養(yǎng)成獨(dú)立思考問題、獨(dú)立解決問題的能力。
通過以上一系列的教學(xué)改革,《數(shù)據(jù)結(jié)構(gòu)與算法》這門課程的教學(xué)工作取得了較好的教學(xué)效果。學(xué)生們對數(shù)據(jù)結(jié)構(gòu)中涉及的各種數(shù)據(jù)對象能夠做到掌握、理解和運(yùn)用,并且對實(shí)際問題的分析能力、解決能力以及實(shí)踐能力都有很大的提高。另外,從課堂互動、課后同學(xué)之間或同老師之間的討論中,都能感受到學(xué)生們對學(xué)習(xí)產(chǎn)生了濃厚的興趣。在實(shí)驗(yàn)檢查過程中,能夠感覺到抄襲情況大大減少,基本上能夠達(dá)到杜絕。90%左右的學(xué)生能夠做到獨(dú)立完成實(shí)驗(yàn)任務(wù)。在解決實(shí)際問題過程中,同學(xué)們更是能夠有自己獨(dú)立的解決思路,勇于創(chuàng)新。
[1]嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu):C語言版[M].北京:清華大學(xué)出版社,2007.
[2]周蘇,柳俊,孟學(xué)多.“數(shù)據(jù)結(jié)構(gòu)與算法”的教學(xué)改革和實(shí)驗(yàn)創(chuàng)新[J].計(jì)算機(jī)教育,2007(8S):78-80.
[3]彭波.數(shù)據(jù)結(jié)構(gòu)與算法[M].北京:機(jī)械工業(yè)出版社,2008.
[4]徐孝凱.數(shù)據(jù)結(jié)構(gòu)實(shí)用教程[M].北京:清華大學(xué)出版社,2007.
[5]馬彥.數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)教學(xué)改革探索[J].洛陽師范學(xué)院學(xué)報(bào),2011(11):65-67.