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