程序設計類課程的層次化教學模式研究與實踐
計算機教育
作者:胡明曉 劉海霞 勵龍昌
摘 要: 高校計算機程序設計類課程內容具有層次化特點,教學內容可作算法、方法學、語法和集成開發環境四個層次的劃分,忽視了該特點往往會使學生的學習目標不明確。根據認知心理學和學習理論,提出了程序設計類課程的層次化教學法,使之無論從行為主義、認知學派,還是建構主義的觀點出發,都能構建一個全新的教育傳播模式,提高了教學效果。此外,以C語言為例,給出了一個具體的實施步驟。
關鍵詞: 程序設計; 教學法; 層次化; 教育傳播; 學習理論
中圖分類號:G642.4 文獻標誌碼:A 文章編號:1006-8228(2013)03-58-04
0 引言
《國家中長期教育改革和發展規劃綱要(2010-2020年)》指出,信息技術對社會發展具有革命性影響,應把信息化能力納入學生的培養目標,作為一項基本技能。對高校學生來講,程序設計類課程是信息化能力培養的一個重要組成部分,在高校的人才培養方案中具有舉足輕重的地位,學生程序設計能力是信息化時代的一個必要素質。
目前我國高校的計算機公共基礎課,以及部分計算機專業課,程序設計類課程的開設內容和教學方法大都是“一條龍”式的,即從問題描述、算法的設計、程序流程圖到最後的編譯連接、運行調試,其具體操作是作為一個完整的解決方案介紹給學生的,這種方式對大部分學生未必合適。我們在分析了程序設計類課程內容的層次化特點之後,將教學內容作了橫向的層次劃分,向學生傳遞歸屬層次明確的知識。通過這種內容上的層次化重組和定位,使之無論從行為主義、認知學派還是建構主義的觀點出發,都能構建一個具有全新視角和明顯高效的教育傳播模式,為學習興趣的培養和教學效果的提高奠定了基礎。
1 國內外研究現狀
國內外教育研究專家和計算機教育實踐者做了不少的研究和實踐,試圖提高程序設計課程的教學質量,探索程序設計課程教學的新路子。Wulf(2005)從建構主義出發提出計算機程序設計的新教學法,如主動學習、學徒製、團隊合作,並針對24人以下的小班設計了課前閱讀與評分、課內評論、教師指導下的自主實踐、個體作業和團隊作業等具體教學措施[1]。Caspersen和Bennedsen(2007)根據認知科學和教育心理學中的認知載荷理論、認知學徒製和精加工實例的原理,提出一種模型驅動的麵向技能教學的程序設計教學法,其中將程序設計課程涉及的模型分成類間模型、類內模型和算法模型三種[2]。Lui和Kwan等(2004)專門針對弱基礎學生提出一個建構主義的Perform教學方法,該方法在主觀上以達到“全民編程”為設計原則,首先分析了弱基礎學生感情上和認知上的5個弱點,然後提出有針對性的C語言課件開發指導原則[3]。Zhu和Zhou(2003)提出了方法學優先的教學策略,認為像C++這樣的麵向對象程序設計語言的教學應該先教方法學再教語言本身,同時給出了方法學的6步驟教學法[4]。莫永華和寇冬泉(2005)以認知心理學為基礎,秉承OSI七層參考模型的分層思想,對學習和記憶的信息加工模型加以改進,提出了一個更加有效的、全景式的人類分層傳播模型,並結合該模式探討相關學習理論[5]。張曉競和陳元琰(2004)做了麵向對象程序設計課程的感性化教學探索,提出了橫向列表比較法、縱向特征點延伸法等具體措施[6]。高枚和楊誌強等(2005)從教材建設、教學內容的組織以及教學方法等幾方麵總結了“C/C++程序設計”課程教學的一些新思路和體會[7]。劉璟(2003)指出,對於程序設計的研究,可以分為四個層次:算法、方法學、語言和工具,其中算法設計與分析的研究在最高層次上[8]。
在與層次化有關的教學理論或實踐方麵,文獻[4]雖涉及了方法學和語言的教學層次關係,但實際的層次不限於這兩個,其中的6個教學步驟也僅限於C++。文獻[5]的人類分層傳播模式雖然提到分層,但並不是教學內容的分層問題,而是教育傳播的分層問題。文獻[8]把算法看成是程序設計的最高的、終極的層次,但在實際的科學研究中,一方麵算法最終離不開實現工具的支持,另一方麵工具的運用(如軟件包、GPU)也能使許多課題的研究獲得進展和創新,在工程技術領域更不能忽略工具的重要性。包括工具和集成開發環境在內的較低層次內容無疑是程序設計的重要教學內容。
2 層次化教學的思想
2.1 程序設計類課程內容的四個層次劃分
計算機科學家沃思(N. Wirth)提出過一個著名的公式:
數據結構+算法=程序
我國的計算機教育家譚浩強教授改進了這個公式[9],提出:
程序=算法+數據結構+程序設計方法+語言工具和環境
他們都是運用層次化的思想觀察程序的本質。我們根據多年來的教學實踐和總結,程序設計語言課程內容也有一個清晰的層次劃分,它可以分成四個層次:算法、方法學、語法和集成開發環境。這四個層次從窄到寬,從抽象到具體,構成一個金字塔。