淺談建構(gòu)式教育理論在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的應(yīng)用
時(shí)間:
孫連山 趙曉1由 分享
論文關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu) 建構(gòu)式教育理論 理論教學(xué) 實(shí)踐教學(xué)
論文摘要:在建構(gòu)式教育理論的指導(dǎo)下,以就業(yè)需求為目標(biāo),針對(duì)數(shù)據(jù)結(jié)構(gòu)教學(xué)中教與學(xué)目標(biāo)不明、學(xué)習(xí)信心和動(dòng)力不足、編程基礎(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)紙等媒體對(duì)計(jì)算機(jī)本科教育現(xiàn)狀多有批評(píng),甚至出現(xiàn)了大學(xué)不如培訓(xùn)公司的極端觀點(diǎn),嚴(yán)重影響了學(xué)生對(duì)專業(yè)課程的學(xué)習(xí)興趣、動(dòng)力和信心。數(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é)合。另一方面,國(guó)內(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é)活動(dòng)積極推動(dòng)就業(yè)的問題留給了任課教師[1]。這造成了學(xué)生學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的目標(biāo)不明、信心和動(dòng)力不足。筆者面向就業(yè)需要明確了數(shù)據(jù)結(jié)構(gòu)的兩大主要教學(xué)目標(biāo),并在實(shí)際教學(xué)過程中實(shí)踐建構(gòu)式教育理論,嘗試解決學(xué)生對(duì)專業(yè)認(rèn)識(shí)不清、學(xué)習(xí)興趣不足、編程基礎(chǔ)薄弱等問題。一些做法得到了學(xué)生的認(rèn)可和配合,成功地激發(fā)了學(xué)生的學(xué)習(xí)主動(dòng)性、在一定程度上培育了學(xué)生的創(chuàng)新精神。
1面向就業(yè)需求的數(shù)據(jù)結(jié)構(gòu)教學(xué)目標(biāo)
教育要服務(wù)于社會(huì)生產(chǎn)需求。數(shù)據(jù)結(jié)構(gòu)教學(xué)也必須緊扣這一根本目標(biāo)。本節(jié)從滿足就業(yè)需要的角度闡明了數(shù)據(jù)結(jié)構(gòu)教學(xué)的兩個(gè)主要目標(biāo):
1) 培養(yǎng)超越具體程序設(shè)計(jì)語言技巧的編程技術(shù)。
現(xiàn)階段是一個(gè)傳統(tǒng)的生產(chǎn)生活方式迅速向電子化、信息化轉(zhuǎn)變的時(shí)期。人們需要開發(fā)和維護(hù)更多、規(guī)模更大的計(jì)算機(jī)系統(tǒng)來滿足生產(chǎn)和生活的需要[2]。這就決定了具有熟練編程技術(shù)的程序員在很長(zhǎng)時(shí)期內(nèi)都將受到產(chǎn)業(yè)界的青睞。大學(xué)對(duì)學(xué)生編程技術(shù)的培養(yǎng)始于程序設(shè)計(jì)語言的教學(xué),如C語言,Java語言等。但是現(xiàn)今編程語言繁多,各種新概念層出不窮,常常出現(xiàn)學(xué)生無所適從或者質(zhì)疑某門語言課程已經(jīng)過時(shí)無用的現(xiàn)象。甚至很多教師也在爭(zhēng)論講授何種編程語言。筆者看來掌握編程技術(shù)(而不僅僅是語言),回歸編程的本質(zhì)問題更加重要,無謂地追趕時(shí)髦不可取。作為編程語言課程的后續(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í)踐之中,從各種各樣的程序庫(kù)、軟件開發(fā)包、軟件構(gòu)件、Web服務(wù)等各種可復(fù)用資產(chǎn)已經(jīng)簡(jiǎn)化了軟件開發(fā)的難度、提高了軟件開發(fā)的效率也極大地改變了軟件開發(fā)的模式。數(shù)據(jù)結(jié)構(gòu)學(xué)科本身就是對(duì)軟件復(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é)的另一個(gè)重要目標(biāo)就是引導(dǎo)學(xué)生習(xí)慣圍繞復(fù)用的軟件開發(fā)方式,能夠使用和定制已有的數(shù)據(jù)結(jié)構(gòu)和算法庫(kù)。
其他傳統(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é)生對(duì)理論內(nèi)容的接受能力以及將理論和現(xiàn)實(shí)就業(yè)需求相聯(lián)系的能力相對(duì)較弱且教學(xué)時(shí)間有限[3],筆者認(rèn)為重點(diǎn)突破本節(jié)給出的兩個(gè)更具體、更可達(dá)的教學(xué)目標(biāo),并在實(shí)現(xiàn)這種具體教學(xué)目標(biāo)的過程中潛移默化地培育學(xué)生的計(jì)算思維和理論素質(zhì),將會(huì)取得更佳的效果。
論文摘要:在建構(gòu)式教育理論的指導(dǎo)下,以就業(yè)需求為目標(biāo),針對(duì)數(shù)據(jù)結(jié)構(gòu)教學(xué)中教與學(xué)目標(biāo)不明、學(xué)習(xí)信心和動(dòng)力不足、編程基礎(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)紙等媒體對(duì)計(jì)算機(jī)本科教育現(xiàn)狀多有批評(píng),甚至出現(xiàn)了大學(xué)不如培訓(xùn)公司的極端觀點(diǎn),嚴(yán)重影響了學(xué)生對(duì)專業(yè)課程的學(xué)習(xí)興趣、動(dòng)力和信心。數(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é)合。另一方面,國(guó)內(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é)活動(dòng)積極推動(dòng)就業(yè)的問題留給了任課教師[1]。這造成了學(xué)生學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的目標(biāo)不明、信心和動(dòng)力不足。筆者面向就業(yè)需要明確了數(shù)據(jù)結(jié)構(gòu)的兩大主要教學(xué)目標(biāo),并在實(shí)際教學(xué)過程中實(shí)踐建構(gòu)式教育理論,嘗試解決學(xué)生對(duì)專業(yè)認(rèn)識(shí)不清、學(xué)習(xí)興趣不足、編程基礎(chǔ)薄弱等問題。一些做法得到了學(xué)生的認(rèn)可和配合,成功地激發(fā)了學(xué)生的學(xué)習(xí)主動(dòng)性、在一定程度上培育了學(xué)生的創(chuàng)新精神。
1面向就業(yè)需求的數(shù)據(jù)結(jié)構(gòu)教學(xué)目標(biāo)
教育要服務(wù)于社會(huì)生產(chǎn)需求。數(shù)據(jù)結(jié)構(gòu)教學(xué)也必須緊扣這一根本目標(biāo)。本節(jié)從滿足就業(yè)需要的角度闡明了數(shù)據(jù)結(jié)構(gòu)教學(xué)的兩個(gè)主要目標(biāo):
1) 培養(yǎng)超越具體程序設(shè)計(jì)語言技巧的編程技術(shù)。
現(xiàn)階段是一個(gè)傳統(tǒng)的生產(chǎn)生活方式迅速向電子化、信息化轉(zhuǎn)變的時(shí)期。人們需要開發(fā)和維護(hù)更多、規(guī)模更大的計(jì)算機(jī)系統(tǒng)來滿足生產(chǎn)和生活的需要[2]。這就決定了具有熟練編程技術(shù)的程序員在很長(zhǎng)時(shí)期內(nèi)都將受到產(chǎn)業(yè)界的青睞。大學(xué)對(duì)學(xué)生編程技術(shù)的培養(yǎng)始于程序設(shè)計(jì)語言的教學(xué),如C語言,Java語言等。但是現(xiàn)今編程語言繁多,各種新概念層出不窮,常常出現(xiàn)學(xué)生無所適從或者質(zhì)疑某門語言課程已經(jīng)過時(shí)無用的現(xiàn)象。甚至很多教師也在爭(zhēng)論講授何種編程語言。筆者看來掌握編程技術(shù)(而不僅僅是語言),回歸編程的本質(zhì)問題更加重要,無謂地追趕時(shí)髦不可取。作為編程語言課程的后續(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í)踐之中,從各種各樣的程序庫(kù)、軟件開發(fā)包、軟件構(gòu)件、Web服務(wù)等各種可復(fù)用資產(chǎn)已經(jīng)簡(jiǎn)化了軟件開發(fā)的難度、提高了軟件開發(fā)的效率也極大地改變了軟件開發(fā)的模式。數(shù)據(jù)結(jié)構(gòu)學(xué)科本身就是對(duì)軟件復(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é)的另一個(gè)重要目標(biāo)就是引導(dǎo)學(xué)生習(xí)慣圍繞復(fù)用的軟件開發(fā)方式,能夠使用和定制已有的數(shù)據(jù)結(jié)構(gòu)和算法庫(kù)。
其他傳統(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é)生對(duì)理論內(nèi)容的接受能力以及將理論和現(xiàn)實(shí)就業(yè)需求相聯(lián)系的能力相對(duì)較弱且教學(xué)時(shí)間有限[3],筆者認(rèn)為重點(diǎn)突破本節(jié)給出的兩個(gè)更具體、更可達(dá)的教學(xué)目標(biāo),并在實(shí)現(xiàn)這種具體教學(xué)目標(biāo)的過程中潛移默化地培育學(xué)生的計(jì)算思維和理論素質(zhì),將會(huì)取得更佳的效果。