淺談建構式教育理論在數(shù)據(jù)結構教學中的應用
時間:
孫連山 趙曉1由 分享
論文關鍵詞:數(shù)據(jù)結構 建構式教育理論 理論教學 實踐教學
論文摘要:在建構式教育理論的指導下,以就業(yè)需求為目標,針對數(shù)據(jù)結構教學中教與學目標不明、學習信心和動力不足、編程基礎薄弱等問題,提出建構式的數(shù)據(jù)結構教學方法,在實際教學中取得較好的教學效果,這些措施也可作為其他計算機專業(yè)課程教學的參考。
近年來,在產業(yè)界急需大量軟件開發(fā)人員的情況下,普通本科院校計算機專業(yè)學生的就業(yè)率持續(xù)走低。網絡、報紙等媒體對計算機本科教育現(xiàn)狀多有批評,甚至出現(xiàn)了大學不如培訓公司的極端觀點,嚴重影響了學生對專業(yè)課程的學習興趣、動力和信心。數(shù)據(jù)結構是計算機專業(yè)的核心基礎課程,上承程序設計語言、離散數(shù)學,下啟操作系統(tǒng)、編譯原理等課程,其重要性不言而喻。一方面,數(shù)據(jù)結構學科具有難度大、抽象層次高、概念繁雜等特點,學生很難掌握,更不要說將抽象理論與就業(yè)實踐需求相結合。另一方面,國內主流數(shù)據(jù)結構教材和相應的傳統(tǒng)教學模式側重于培養(yǎng)學生的計算機學科基礎理論素養(yǎng),而將如何通過組織數(shù)據(jù)結構教學活動積極推動就業(yè)的問題留給了任課教師[1]。這造成了學生學習數(shù)據(jù)結構的目標不明、信心和動力不足。筆者面向就業(yè)需要明確了數(shù)據(jù)結構的兩大主要教學目標,并在實際教學過程中實踐建構式教育理論,嘗試解決學生對專業(yè)認識不清、學習興趣不足、編程基礎薄弱等問題。一些做法得到了學生的認可和配合,成功地激發(fā)了學生的學習主動性、在一定程度上培育了學生的創(chuàng)新精神。
1面向就業(yè)需求的數(shù)據(jù)結構教學目標
教育要服務于社會生產需求。數(shù)據(jù)結構教學也必須緊扣這一根本目標。本節(jié)從滿足就業(yè)需要的角度闡明了數(shù)據(jù)結構教學的兩個主要目標:
1) 培養(yǎng)超越具體程序設計語言技巧的編程技術。
現(xiàn)階段是一個傳統(tǒng)的生產生活方式迅速向電子化、信息化轉變的時期。人們需要開發(fā)和維護更多、規(guī)模更大的計算機系統(tǒng)來滿足生產和生活的需要[2]。這就決定了具有熟練編程技術的程序員在很長時期內都將受到產業(yè)界的青睞。大學對學生編程技術的培養(yǎng)始于程序設計語言的教學,如C語言,Java語言等。但是現(xiàn)今編程語言繁多,各種新概念層出不窮,常常出現(xiàn)學生無所適從或者質疑某門語言課程已經過時無用的現(xiàn)象。甚至很多教師也在爭論講授何種編程語言。筆者看來掌握編程技術(而不僅僅是語言),回歸編程的本質問題更加重要,無謂地追趕時髦不可取。作為編程語言課程的后續(xù),數(shù)據(jù)結構教學的重要目標就是幫助學生理解編程的本質、鍛煉編程技術以及學習提高編程技術的方法。
2) 培養(yǎng)圍繞復用的軟件開發(fā)方式。
隨著軟件規(guī)模的日益增大,軟件開發(fā)模式逐漸從“從無到有”的模式過渡到“從有到有”的模式,即復用現(xiàn)有的豐富的軟件資產,開發(fā)新的應用系統(tǒng)。事實上,復用的思想已經被廣泛的用于軟件開發(fā)實踐之中,從各種各樣的程序庫、軟件開發(fā)包、軟件構件、Web服務等各種可復用資產已經簡化了軟件開發(fā)的難度、提高了軟件開發(fā)的效率也極大地改變了軟件開發(fā)的模式。數(shù)據(jù)結構學科本身就是對軟件復用思想的一種實踐,它通過總結大量軟件系統(tǒng)中反復出現(xiàn)的數(shù)據(jù)結構(如表、樹、圖、集合等),定義和實現(xiàn)處理這些數(shù)據(jù)結構的基本操作,最終達到能夠在不同項目開發(fā)中反復應用的目的。這些基本數(shù)據(jù)結構和算法已經被實現(xiàn)為可復用的產品隨著程序設計語言發(fā)布,如C++ STL、C# collections, Java collections等,并得到了廣泛的使用。因此,數(shù)據(jù)結構教學的另一個重要目標就是引導學生習慣圍繞復用的軟件開發(fā)方式,能夠使用和定制已有的數(shù)據(jù)結構和算法庫。
其他傳統(tǒng)的數(shù)據(jù)結構教學目標,如培養(yǎng)學生面向實際問題進行算法設計和分析的能力,培養(yǎng)學生計算機學科的基本理論素養(yǎng)和思維方式等也非常重要。但普通本科院校學生對理論內容的接受能力以及將理論和現(xiàn)實就業(yè)需求相聯(lián)系的能力相對較弱且教學時間有限[3],筆者認為重點突破本節(jié)給出的兩個更具體、更可達的教學目標,并在實現(xiàn)這種具體教學目標的過程中潛移默化地培育學生的計算思維和理論素質,將會取得更佳的效果。
論文摘要:在建構式教育理論的指導下,以就業(yè)需求為目標,針對數(shù)據(jù)結構教學中教與學目標不明、學習信心和動力不足、編程基礎薄弱等問題,提出建構式的數(shù)據(jù)結構教學方法,在實際教學中取得較好的教學效果,這些措施也可作為其他計算機專業(yè)課程教學的參考。
近年來,在產業(yè)界急需大量軟件開發(fā)人員的情況下,普通本科院校計算機專業(yè)學生的就業(yè)率持續(xù)走低。網絡、報紙等媒體對計算機本科教育現(xiàn)狀多有批評,甚至出現(xiàn)了大學不如培訓公司的極端觀點,嚴重影響了學生對專業(yè)課程的學習興趣、動力和信心。數(shù)據(jù)結構是計算機專業(yè)的核心基礎課程,上承程序設計語言、離散數(shù)學,下啟操作系統(tǒng)、編譯原理等課程,其重要性不言而喻。一方面,數(shù)據(jù)結構學科具有難度大、抽象層次高、概念繁雜等特點,學生很難掌握,更不要說將抽象理論與就業(yè)實踐需求相結合。另一方面,國內主流數(shù)據(jù)結構教材和相應的傳統(tǒng)教學模式側重于培養(yǎng)學生的計算機學科基礎理論素養(yǎng),而將如何通過組織數(shù)據(jù)結構教學活動積極推動就業(yè)的問題留給了任課教師[1]。這造成了學生學習數(shù)據(jù)結構的目標不明、信心和動力不足。筆者面向就業(yè)需要明確了數(shù)據(jù)結構的兩大主要教學目標,并在實際教學過程中實踐建構式教育理論,嘗試解決學生對專業(yè)認識不清、學習興趣不足、編程基礎薄弱等問題。一些做法得到了學生的認可和配合,成功地激發(fā)了學生的學習主動性、在一定程度上培育了學生的創(chuàng)新精神。
1面向就業(yè)需求的數(shù)據(jù)結構教學目標
教育要服務于社會生產需求。數(shù)據(jù)結構教學也必須緊扣這一根本目標。本節(jié)從滿足就業(yè)需要的角度闡明了數(shù)據(jù)結構教學的兩個主要目標:
1) 培養(yǎng)超越具體程序設計語言技巧的編程技術。
現(xiàn)階段是一個傳統(tǒng)的生產生活方式迅速向電子化、信息化轉變的時期。人們需要開發(fā)和維護更多、規(guī)模更大的計算機系統(tǒng)來滿足生產和生活的需要[2]。這就決定了具有熟練編程技術的程序員在很長時期內都將受到產業(yè)界的青睞。大學對學生編程技術的培養(yǎng)始于程序設計語言的教學,如C語言,Java語言等。但是現(xiàn)今編程語言繁多,各種新概念層出不窮,常常出現(xiàn)學生無所適從或者質疑某門語言課程已經過時無用的現(xiàn)象。甚至很多教師也在爭論講授何種編程語言。筆者看來掌握編程技術(而不僅僅是語言),回歸編程的本質問題更加重要,無謂地追趕時髦不可取。作為編程語言課程的后續(xù),數(shù)據(jù)結構教學的重要目標就是幫助學生理解編程的本質、鍛煉編程技術以及學習提高編程技術的方法。
2) 培養(yǎng)圍繞復用的軟件開發(fā)方式。
隨著軟件規(guī)模的日益增大,軟件開發(fā)模式逐漸從“從無到有”的模式過渡到“從有到有”的模式,即復用現(xiàn)有的豐富的軟件資產,開發(fā)新的應用系統(tǒng)。事實上,復用的思想已經被廣泛的用于軟件開發(fā)實踐之中,從各種各樣的程序庫、軟件開發(fā)包、軟件構件、Web服務等各種可復用資產已經簡化了軟件開發(fā)的難度、提高了軟件開發(fā)的效率也極大地改變了軟件開發(fā)的模式。數(shù)據(jù)結構學科本身就是對軟件復用思想的一種實踐,它通過總結大量軟件系統(tǒng)中反復出現(xiàn)的數(shù)據(jù)結構(如表、樹、圖、集合等),定義和實現(xiàn)處理這些數(shù)據(jù)結構的基本操作,最終達到能夠在不同項目開發(fā)中反復應用的目的。這些基本數(shù)據(jù)結構和算法已經被實現(xiàn)為可復用的產品隨著程序設計語言發(fā)布,如C++ STL、C# collections, Java collections等,并得到了廣泛的使用。因此,數(shù)據(jù)結構教學的另一個重要目標就是引導學生習慣圍繞復用的軟件開發(fā)方式,能夠使用和定制已有的數(shù)據(jù)結構和算法庫。
其他傳統(tǒng)的數(shù)據(jù)結構教學目標,如培養(yǎng)學生面向實際問題進行算法設計和分析的能力,培養(yǎng)學生計算機學科的基本理論素養(yǎng)和思維方式等也非常重要。但普通本科院校學生對理論內容的接受能力以及將理論和現(xiàn)實就業(yè)需求相聯(lián)系的能力相對較弱且教學時間有限[3],筆者認為重點突破本節(jié)給出的兩個更具體、更可達的教學目標,并在實現(xiàn)這種具體教學目標的過程中潛移默化地培育學生的計算思維和理論素質,將會取得更佳的效果。