建構(gòu)式教育理論在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的應(yīng)用論文
論文關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu) 建構(gòu)式教育理論 理論教學(xué) 實(shí)踐教學(xué)
論文摘要:在建構(gòu)式教育理論的指導(dǎo)下,以就業(yè)需求為目標(biāo),針對數(shù)據(jù)結(jié)構(gòu)教學(xué)中教與學(xué)目標(biāo)不明、學(xué)習(xí)信心和動力不足、編程基礎(chǔ)薄弱等問題,提出建構(gòu)式的數(shù)據(jù)結(jié)構(gòu)教學(xué)方法,在實(shí)際教學(xué)中取得較好的教學(xué)效果,這些措施也可作為其他計(jì)算機(jī)專業(yè)課程教學(xué)的參考。
近年來,在產(chǎn)業(yè)界急需大量軟件開發(fā)人員的情況下,普通本科院校計(jì)算機(jī)專業(yè)學(xué)生的就業(yè)率持續(xù)走低。網(wǎng)絡(luò)、報(bào)紙等媒體對計(jì)算機(jī)本科教育現(xiàn)狀多有批評,甚至出現(xiàn)了大學(xué)不如培訓(xùn)公司的極端觀點(diǎn),嚴(yán)重影響了學(xué)生對專業(yè)課程的學(xué)習(xí)興趣、動力和信心。數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)專業(yè)的核心基礎(chǔ)課程,上承程序設(shè)計(jì)語言、離散數(shù)學(xué),下啟操作系統(tǒng)、編譯原理等課程,其重要性不言而喻。一方面,數(shù)據(jù)結(jié)構(gòu)學(xué)科具有難度大、抽象層次高、概念繁雜等特點(diǎn),學(xué)生很難掌握,更不要說將抽象理論與就業(yè)實(shí)踐需求相結(jié)合。另一方面,國內(nèi)主流數(shù)據(jù)結(jié)構(gòu)教材和相應(yīng)的傳統(tǒng)教學(xué)模式側(cè)重于培養(yǎng)學(xué)生的計(jì)算機(jī)學(xué)科基礎(chǔ)理論素養(yǎng),而將如何通過組織數(shù)據(jù)結(jié)構(gòu)教學(xué)活動積極推動就業(yè)的問題留給了任課教師[1]。這造成了學(xué)生學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的目標(biāo)不明、信心和動力不足。筆者面向就業(yè)需要明確了數(shù)據(jù)結(jié)構(gòu)的兩大主要教學(xué)目標(biāo),并在實(shí)際教學(xué)過程中實(shí)踐建構(gòu)式教育理論,嘗試解決學(xué)生對專業(yè)認(rèn)識不清、學(xué)習(xí)興趣不足、編程基礎(chǔ)薄弱等問題。一些做法得到了學(xué)生的認(rèn)可和配合,成功地激發(fā)了學(xué)生的學(xué)習(xí)主動性、在一定程度上培育了學(xué)生的創(chuàng)新精神。
1面向就業(yè)需求的數(shù)據(jù)結(jié)構(gòu)教學(xué)目標(biāo)
教育要服務(wù)于社會生產(chǎn)需求。數(shù)據(jù)結(jié)構(gòu)教學(xué)也必須緊扣這一根本目標(biāo)。本節(jié)從滿足就業(yè)需要的角度闡明了數(shù)據(jù)結(jié)構(gòu)教學(xué)的兩個主要目標(biāo):
1) 培養(yǎng)超越具體程序設(shè)計(jì)語言技巧的編程技術(shù)。
現(xiàn)階段是一個傳統(tǒng)的生產(chǎn)生活方式迅速向電子化、信息化轉(zhuǎn)變的時期。人們需要開發(fā)和維護(hù)更多、規(guī)模更大的計(jì)算機(jī)系統(tǒng)來滿足生產(chǎn)和生活的需要[2]。這就決定了具有熟練編程技術(shù)的程序員在很長時期內(nèi)都將受到產(chǎn)業(yè)界的青睞。大學(xué)對學(xué)生編程技術(shù)的培養(yǎng)始于程序設(shè)計(jì)語言的教學(xué),如C語言,Java語言等。但是現(xiàn)今編程語言繁多,各種新概念層出不窮,常常出現(xiàn)學(xué)生無所適從或者質(zhì)疑某門語言課程已經(jīng)過時無用的現(xiàn)象。甚至很多教師也在爭論講授何種編程語言。筆者看來掌握編程技術(shù)(而不僅僅是語言),回歸編程的本質(zhì)問題更加重要,無謂地追趕時髦不可取。作為編程語言課程的后續(xù),數(shù)據(jù)結(jié)構(gòu)教學(xué)的重要目標(biāo)就是幫助學(xué)生理解編程的本質(zhì)、鍛煉編程技術(shù)以及學(xué)習(xí)提高編程技術(shù)的方法。
2) 培養(yǎng)圍繞復(fù)用的軟件開發(fā)方式。
隨著軟件規(guī)模的日益增大,軟件開發(fā)模式逐漸從“從無到有”的模式過渡到“從有到有”的模式,即復(fù)用現(xiàn)有的豐富的軟件資產(chǎn),開發(fā)新的應(yīng)用系統(tǒng)。事實(shí)上,復(fù)用的思想已經(jīng)被廣泛的用于軟件開發(fā)實(shí)踐之中,從各種各樣的程序庫、軟件開發(fā)包、軟件構(gòu)件、Web服務(wù)等各種可復(fù)用資產(chǎn)已經(jīng)簡化了軟件開發(fā)的難度、提高了軟件開發(fā)的效率也極大地改變了軟件開發(fā)的模式。數(shù)據(jù)結(jié)構(gòu)學(xué)科本身就是對軟件復(fù)用思想的一種實(shí)踐,它通過總結(jié)大量軟件系統(tǒng)中反復(fù)出現(xiàn)的數(shù)據(jù)結(jié)構(gòu)(如表、樹、圖、集合等),定義和實(shí)現(xiàn)處理這些數(shù)據(jù)結(jié)構(gòu)的基本操作,最終達(dá)到能夠在不同項(xiàng)目開發(fā)中反復(fù)應(yīng)用的目的。這些基本數(shù)據(jù)結(jié)構(gòu)和算法已經(jīng)被實(shí)現(xiàn)為可復(fù)用的產(chǎn)品隨著程序設(shè)計(jì)語言發(fā)布,如C++ STL、C# collections, Java collections等,并得到了廣泛的使用。因此,數(shù)據(jù)結(jié)構(gòu)教學(xué)的另一個重要目標(biāo)就是引導(dǎo)學(xué)生習(xí)慣圍繞復(fù)用的軟件開發(fā)方式,能夠使用和定制已有的數(shù)據(jù)結(jié)構(gòu)和算法庫。
其他傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)教學(xué)目標(biāo),如培養(yǎng)學(xué)生面向?qū)嶋H問題進(jìn)行算法設(shè)計(jì)和分析的能力,培養(yǎng)學(xué)生計(jì)算機(jī)學(xué)科的基本理論素養(yǎng)和思維方式等也非常重要。但普通本科院校學(xué)生對理論內(nèi)容的接受能力以及將理論和現(xiàn)實(shí)就業(yè)需求相聯(lián)系的能力相對較弱且教學(xué)時間有限[3],筆者認(rèn)為重點(diǎn)突破本節(jié)給出的兩個更具體、更可達(dá)的教學(xué)目標(biāo),并在實(shí)現(xiàn)這種具體教學(xué)目標(biāo)的過程中潛移默化地培育學(xué)生的計(jì)算思維和理論素質(zhì),將會取得更佳的效果。
2建構(gòu)式數(shù)據(jù)結(jié)構(gòu)教學(xué)
教學(xué)理論研究以及教學(xué)實(shí)踐反饋均表明,學(xué)生主動學(xué)習(xí)的`效果遠(yuǎn)較被動地接受老師灌輸?shù)男Ч玫亩。因此,為?shí)現(xiàn)上述教學(xué)目標(biāo),在建構(gòu)式教育理論的指導(dǎo)下,筆者探索并采用了一系列建構(gòu)式教學(xué)措施,激發(fā)學(xué)生的主動性和興趣,取得了較好效果。
建構(gòu)主義認(rèn)為,學(xué)習(xí)并非學(xué)習(xí)者對教師所授知識的被動接受,而是學(xué)習(xí)者以自身已有知識和經(jīng)驗(yàn)為基礎(chǔ)的主動建構(gòu)過程[4]。知識不僅是通過教師傳授而得到,更是學(xué)習(xí)者在一定的情境中,利用必要的學(xué)習(xí)資料,通過同化新知識、順化自身知識結(jié)構(gòu)的方式而獲得。建構(gòu)主義提倡在教師指導(dǎo)下的、以學(xué)習(xí)者為中心的學(xué)習(xí),也就是說,既強(qiáng)調(diào)學(xué)習(xí)者的認(rèn)知主體作用,又不忽視教師的指導(dǎo)作用,教師是意義建構(gòu)的幫助者、促進(jìn)者,而不僅僅是知識的傳授者與灌輸者。學(xué)生是信息加工的主體、是意義的主動建構(gòu)者,而不僅僅是外部刺激的被動接受者和被灌輸?shù)膶ο。下面從理論教學(xué)和實(shí)踐教學(xué)兩個方面介紹我們采用的一些教學(xué)措施。
2.1理論教學(xué)措施
課堂教學(xué)是數(shù)據(jù)結(jié)構(gòu)教學(xué)活動的主要部分,充分利用課堂教學(xué)時間,激發(fā)學(xué)生學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的興趣和信心,幫助學(xué)生建立學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的環(huán)節(jié)非常重要。我們采用了如下措施:
1) 組織小型討論。
好的開始是成功的一半,好的課堂教學(xué)須在上課之初就抓住學(xué)生的注意力,讓學(xué)生帶著輕松、愉快的心情聽課。我的做法是在課堂的前5分鐘,提出一個學(xué)生感興趣的話題,組織若干個有3~5位同學(xué)參與的小型討論。到一個學(xué)期結(jié)束時,每位同學(xué)都有至少一次的發(fā)言機(jī)會。討論的主題可以靈活設(shè)置,如時事、技術(shù)、社會熱點(diǎn)等。有時,課堂中間學(xué)生比較疲憊、注意力下降的時候,也可以穿插一點(diǎn)討論,改善課堂環(huán)境。大多數(shù)學(xué)生非常喜歡這種討論活動,積極參與其中,成為課堂的一部分,從被動上課轉(zhuǎn)變?yōu)橄矚g上課。
2) 重建理論知識所針對的問題。
國內(nèi)的經(jīng)典數(shù)據(jù)結(jié)構(gòu)教材側(cè)重嚴(yán)謹(jǐn)?shù)睦碚,較少討論各種概念、算法出現(xiàn)的背景以及探討的問題是否仍然具有現(xiàn)實(shí)價值。而回答這些問題能夠幫助學(xué)生重建理論知識所針對的問題原型,重現(xiàn)解決方案的提出、發(fā)展乃至最終成熟的整個過程,更有助于培養(yǎng)學(xué)生解決實(shí)際問題的能力,養(yǎng)成批判性、創(chuàng)新性思考的習(xí)慣。眾所周知,關(guān)于樹的存儲方法很多,有雙親表示法,孩子表示法和二叉鏈表表示法[5],其中以樹的二叉鏈表表示法使用最廣,但其他存儲方法也有其適合的應(yīng)用。例如,在利用樹表示各個集合,求集合中的等價類時,雙親表示法更為合適。每一個集合都用樹的雙親表示法存儲時,并設(shè)樹的根結(jié)點(diǎn)的值為集合名,集合中的每個成員都對應(yīng)一個結(jié)點(diǎn),這樣很容易找到一個元素所屬的子集(順著雙親指針找樹的根結(jié)點(diǎn))。
3) 組織“我來講”活動。
數(shù)據(jù)結(jié)構(gòu)涉及很多抽象的概念和算法,初學(xué)者很難理解。而教師則對理論內(nèi)容比較精熟,常常傾向于從理論的角度逐步遞進(jìn)、展開講解,這就增加了學(xué)生的學(xué)習(xí)難度。教師和學(xué)生在教學(xué)語言上的鴻溝是影響教學(xué)效果的一個重要障礙。教師當(dāng)然可將抽象的理論概念與生活中更形象的概念進(jìn)行類比,幫助學(xué)生理解,也可以將復(fù)雜的算法過程用多媒體動畫模擬出來,直觀地展示給學(xué)生,幫助學(xué)生掌握。但一方面,根據(jù)建構(gòu)主義理論,教師和學(xué)生的知識背景不同,由教師設(shè)計(jì)概念類比語境和算法模擬動畫實(shí)際上仍然是基于教師的知識結(jié)構(gòu)對知識點(diǎn)進(jìn)行的同化和順化,而不是對學(xué)生知識體系的直接建構(gòu)。另一方面,教師的經(jīng)驗(yàn)和智慧有其局限性,未必總能夠找到最適合的類比語境和動畫模擬。為此,筆者采用了充分發(fā)揮學(xué)生智慧的方法,組織“我來講”活動,要求學(xué)生通過設(shè)計(jì)算法的動畫模擬,創(chuàng)建概念的類比語境等方式進(jìn)行學(xué)習(xí),并隨機(jī)選擇學(xué)生走上講臺對抽象理論概念和復(fù)雜算法進(jìn)行說明。這樣不但能夠調(diào)動學(xué)生思考問題,還能幫助那些無法完成自我知識體系建構(gòu)的同學(xué)從學(xué)生的視角去理解同一個問題。例如,對于n維數(shù)組是元素為n-1維數(shù)組構(gòu)成的線性表這一遞歸的類型定義,可采用符號推理的方式,培養(yǎng)學(xué)生的理論素養(yǎng),而同時可鼓勵學(xué)生根據(jù)自己的理解將抽象理論具體化,建立幫助理解和記憶的現(xiàn)實(shí)語境。
2.2實(shí)踐教學(xué)措施
數(shù)據(jù)結(jié)構(gòu)是幫助具有基本編程語言基礎(chǔ)的學(xué)生錘煉編程技術(shù)的關(guān)鍵課程。它揭示了程序設(shè)計(jì)的基本面,即如何處理相互之間存在一種或多種數(shù)據(jù)關(guān)系的數(shù)據(jù)元素所構(gòu)成的集合、如何設(shè)計(jì)算法并分析算法的優(yōu)劣。若沒有相應(yīng)的配套實(shí)驗(yàn)指導(dǎo)學(xué)生如何將理論應(yīng)用于實(shí)際問題,只是泛泛而談、紙上談兵,學(xué)生容易迷失在數(shù)據(jù)結(jié)構(gòu)的一連串復(fù)雜概念和算法之中,而不知道學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的意義何在。為實(shí)現(xiàn)教學(xué)目標(biāo),筆者鎖定實(shí)驗(yàn)內(nèi)容設(shè)置和實(shí)驗(yàn)考核等兩個關(guān)鍵環(huán)節(jié),實(shí)踐了如下措施,取得了較好效果。
2.2.1實(shí)驗(yàn)內(nèi)容設(shè)置
實(shí)驗(yàn)內(nèi)容設(shè)置是進(jìn)行實(shí)踐教學(xué)的最重要部分。從覆蓋知識點(diǎn)的角度看,實(shí)驗(yàn)內(nèi)容須面向數(shù)據(jù)結(jié)構(gòu)教學(xué)目標(biāo),即實(shí)驗(yàn)內(nèi)容須能夠鍛煉學(xué)生的編程技巧,如算法設(shè)計(jì)、調(diào)試、測試以及調(diào)優(yōu)等能力,還能夠讓學(xué)生體會到圍繞復(fù)用開展軟件開發(fā)的威力以及思路。從覆蓋教育對象的角度來看,實(shí)驗(yàn)內(nèi)容須面向大多數(shù)同學(xué)并充分考慮優(yōu)秀同學(xué),即實(shí)驗(yàn)內(nèi)容須劃分不同的層次,讓大多數(shù)學(xué)生能夠很容易入手,并讓有能力、有余力的學(xué)生能夠不斷地深入,直至形成綜合型課程設(shè)計(jì)。
基于以上考慮,并借鑒同行經(jīng)驗(yàn),筆者開展三個層次的實(shí)驗(yàn)教學(xué)活動,一是要求所有學(xué)生都完成的實(shí)驗(yàn)內(nèi)容,要求學(xué)生采用不同的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)同一個問題并進(jìn)行對比分析,例如,分別使用靜態(tài)數(shù)組和動態(tài)分配的連續(xù)內(nèi)存區(qū)實(shí)現(xiàn)順序表,使用整型、字符型數(shù)組或者鏈表實(shí)現(xiàn)長整數(shù)的乘法,使用帶頭結(jié)點(diǎn)或不帶頭結(jié)點(diǎn)的循環(huán)鏈表模擬約瑟夫環(huán)等;二是組織程序設(shè)計(jì)競賽,讓部分學(xué)有余力的同學(xué)能夠在算法設(shè)計(jì)、程序?qū)崿F(xiàn)和調(diào)試、優(yōu)化等方面得到鍛煉和提高;三是設(shè)計(jì)綜合型課程設(shè)計(jì)鍛煉學(xué)生解決問題的綜合能力,并通過適當(dāng)分組,培養(yǎng)學(xué)生團(tuán)隊(duì)協(xié)作精神和能力,鍛煉學(xué)生解決問題的綜合能力的目標(biāo),最終達(dá)到以點(diǎn)帶面全面提高學(xué)生能力的目的。
2.2.2實(shí)驗(yàn)考核手段
考核手段在教學(xué)環(huán)節(jié)中至關(guān)重要?己耸侄问菍W(xué)生學(xué)習(xí)和鍛煉自身能力的風(fēng)向標(biāo)。為保證每位同學(xué)都能積極完成實(shí)驗(yàn)并有所收獲,避免抄襲和敷衍的現(xiàn)象,筆者采取了綜合型的考核手段。其一,提交實(shí)驗(yàn)成果,即程序及其運(yùn)行結(jié)果;其二,記錄實(shí)驗(yàn)過程、分析實(shí)驗(yàn)結(jié)果以及總結(jié)實(shí)驗(yàn)得失的實(shí)驗(yàn)報(bào)告,對實(shí)驗(yàn)報(bào)告進(jìn)行選優(yōu)講評,培養(yǎng)學(xué)生撰寫科學(xué)實(shí)驗(yàn)報(bào)告的能力;其三,每位同學(xué)必須面向教師講解自己編寫的程序,包括主要思路和細(xì)節(jié)性語法,優(yōu)秀的同學(xué)可走上講臺宣講自己的實(shí)驗(yàn)方案和程序設(shè)計(jì)技巧。這就基本杜絕了學(xué)生相互之間抄襲程序和實(shí)驗(yàn)報(bào)告的現(xiàn)象,使得學(xué)生真正能夠思考問題,并盡力動手完成實(shí)驗(yàn)。綜合上述三種手段的綜合型考核方法既能夠達(dá)到督促大部分同學(xué)完成實(shí)驗(yàn)、鍛煉動手能力目的,又能夠達(dá)到培養(yǎng)優(yōu)秀同學(xué)的目的。特別地,優(yōu)秀同學(xué)宣講活動能夠使學(xué)生觀摩到如何從學(xué)生的視角從無到有的解決問題的過程,這能夠培養(yǎng)學(xué)生解決實(shí)際問題的信心并激發(fā)其學(xué)習(xí)積極性。
3應(yīng)用中遇到的問題
建構(gòu)式教學(xué)模式在應(yīng)用和推廣過程中遇到的主要問題來自三個方面。其一,目前學(xué)生的課業(yè)負(fù)擔(dān)較重,習(xí)慣于被動“填鴨”而不習(xí)慣于主動“求索”,這是推動和開展建構(gòu)式教學(xué)模式的主要障礙。其二,建構(gòu)式教學(xué)活動,需要師生的密切交流,但現(xiàn)有師資不足難以滿足實(shí)際需求。一個可能的解決方法是綜合多門課程和多個老師,建構(gòu)整體的知識框架和學(xué)習(xí)體系,避免課程教學(xué)中的重復(fù)勞動,提高師資的利用率。另一個可能的解決方法是利用互聯(lián)網(wǎng)技術(shù),建立在線教學(xué)園地。其三,建構(gòu)式教學(xué)模式仍然處于探索階段,各學(xué)科缺乏建構(gòu)式教學(xué)素材。從筆者在實(shí)踐教學(xué)的體驗(yàn)來看,應(yīng)盡量從學(xué)生的學(xué)習(xí)背景和能力成長規(guī)律出發(fā)而不僅僅是從學(xué)科背景出發(fā),為學(xué)生建構(gòu)知識體系設(shè)計(jì)更平滑的路線。
4結(jié)語
筆者提出將“培養(yǎng)超越具體程序設(shè)計(jì)語言技巧的編程技術(shù)”和“培養(yǎng)圍繞復(fù)用的軟件開發(fā)方式”作為普通本科院校的數(shù)據(jù)結(jié)構(gòu)教學(xué)目標(biāo),在建構(gòu)式教育理論的指導(dǎo)下,設(shè)計(jì)并實(shí)踐了一系列建構(gòu)式教學(xué)措施,分析了應(yīng)用建構(gòu)式教學(xué)模式所遇到的一些問題。
未來將開展兩個方面的工作。一是通過問卷調(diào)查、統(tǒng)計(jì)分析等手段定量地分析建構(gòu)式教學(xué)方法的實(shí)際效果;二是創(chuàng)造和積累建構(gòu)式教學(xué)素材,如研究數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)過程中不同類型學(xué)生的知識建構(gòu)路線,挖掘并推廣其中優(yōu)秀的知識建構(gòu)方法。
參考文獻(xiàn):
[1] 教育部高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會. 高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)發(fā)展戰(zhàn)略研究報(bào)告暨專業(yè)規(guī)范(試行)[M]. 北京:高等教育出版社,2006:8-101.
[2] 蔡敏,鄭尚志,梁寶華.“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)改革之我見[J]. 計(jì)算機(jī)教育,2009(4):50-51.
[3] 揭安全,李云清,楊慶紅,等. 項(xiàng)目教學(xué)模式指導(dǎo)的“數(shù)據(jù)結(jié)構(gòu)與算法”教學(xué)改革[J]. 計(jì)算機(jī)教育,2008(22):21-23.
[4] 郝長勝,賈茹. 運(yùn)用建構(gòu)主義理論構(gòu)建程序設(shè)計(jì)基礎(chǔ)的新型教學(xué)結(jié)構(gòu)[J]. 計(jì)算機(jī)教育,2007(1):24-25.
[5] 嚴(yán)蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]. 北京:清華大學(xué)出版社,2008:135-136.
【建構(gòu)式教育理論在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的應(yīng)用論文】相關(guān)文章:
探討教育理論在課堂教學(xué)中應(yīng)用的教育理論論文07-03
論建構(gòu)主義學(xué)習(xí)理論在秘書學(xué)教學(xué)中的應(yīng)用教育論文01-03
激勵式教育在高校體育教學(xué)中的應(yīng)用論文11-13
分析心理學(xué)健康教育的理論建構(gòu)與實(shí)踐應(yīng)用論文09-14
建構(gòu)主義理論在高職心理學(xué)教學(xué)中的應(yīng)用論文09-14
互動式教學(xué)在體育教學(xué)中的應(yīng)用初探教育論文07-06
任職教育教學(xué)中互動式教學(xué)的應(yīng)用論文07-04