摘 要: 高校計(jì)算機(jī)程序設(shè)計(jì)類(lèi)課程內(nèi)容具有層次化特點(diǎn),教學(xué)內(nèi)容可作算法、方法學(xué)、語(yǔ)法和集成開(kāi)發(fā)環(huán)境四個(gè)層次的劃分,忽視了該特點(diǎn)往往會(huì)使學(xué)生的學(xué)習(xí)目標(biāo)不明確。根據(jù)認(rèn)知心理學(xué)和學(xué)習(xí)理論,提出了程序設(shè)計(jì)類(lèi)課程的層次化教學(xué)法,使之無(wú)論從行為主義、認(rèn)知學(xué)派,還是建構(gòu)主義的觀點(diǎn)出發(fā),都能構(gòu)建一個(gè)全新的教育傳播模式,提高了教學(xué)效果。此外,以C語(yǔ)言為例,給出了一個(gè)具體的實(shí)施步驟。
關(guān)鍵詞: 程序設(shè)計(jì); 教學(xué)法; 層次化; 教育傳播; 學(xué)習(xí)理論
中圖分類(lèi)號(hào):G642.4 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2013)03-58-04
0 引言
《國(guó)家中長(zhǎng)期教育改革和發(fā)展規(guī)劃綱要(2010-2020年)》指出,信息技術(shù)對(duì)社會(huì)發(fā)展具有革命性影響,應(yīng)把信息化能力納入學(xué)生的培養(yǎng)目標(biāo),作為一項(xiàng)基本技能。對(duì)高校學(xué)生來(lái)講,程序設(shè)計(jì)類(lèi)課程是信息化能力培養(yǎng)的一個(gè)重要組成部分,在高校的人才培養(yǎng)方案中具有舉足輕重的地位,學(xué)生程序設(shè)計(jì)能力是信息化時(shí)代的一個(gè)必要素質(zhì)。
目前我國(guó)高校的計(jì)算機(jī)公共基礎(chǔ)課,以及部分計(jì)算機(jī)專業(yè)課,程序設(shè)計(jì)類(lèi)課程的開(kāi)設(shè)內(nèi)容和教學(xué)方法大都是“一條龍”式的,即從問(wèn)題描述、算法的設(shè)計(jì)、程序流程圖到最后的編譯連接、運(yùn)行調(diào)試,其具體操作是作為一個(gè)完整的解決方案介紹給學(xué)生的,這種方式對(duì)大部分學(xué)生未必合適。我們?cè)诜治隽顺绦蛟O(shè)計(jì)類(lèi)課程內(nèi)容的層次化特點(diǎn)之后,將教學(xué)內(nèi)容作了橫向的層次劃分,向?qū)W生傳遞歸屬層次明確的知識(shí)。通過(guò)這種內(nèi)容上的層次化重組和定位,使之無(wú)論從行為主義、認(rèn)知學(xué)派還是建構(gòu)主義的觀點(diǎn)出發(fā),都能構(gòu)建一個(gè)具有全新視角和明顯高效的教育傳播模式,為學(xué)習(xí)興趣的培養(yǎng)和教學(xué)效果的提高奠定了基礎(chǔ)。
1 國(guó)內(nèi)外研究現(xiàn)狀
國(guó)內(nèi)外教育研究專家和計(jì)算機(jī)教育實(shí)踐者做了不少的研究和實(shí)踐,試圖提高程序設(shè)計(jì)課程的教學(xué)質(zhì)量,探索程序設(shè)計(jì)課程教學(xué)的新路子。Wulf(2005)從建構(gòu)主義出發(fā)提出計(jì)算機(jī)程序設(shè)計(jì)的新教學(xué)法,如主動(dòng)學(xué)習(xí)、學(xué)徒制、團(tuán)隊(duì)合作,并針對(duì)24人以下的小班設(shè)計(jì)了課前閱讀與評(píng)分、課內(nèi)評(píng)論、教師指導(dǎo)下的自主實(shí)踐、個(gè)體作業(yè)和團(tuán)隊(duì)作業(yè)等具體教學(xué)措施[1]。Caspersen和Bennedsen(2007)根據(jù)認(rèn)知科學(xué)和教育心理學(xué)中的認(rèn)知載荷理論、認(rèn)知學(xué)徒制和精加工實(shí)例的原理,提出一種模型驅(qū)動(dòng)的面向技能教學(xué)的程序設(shè)計(jì)教學(xué)法,其中將程序設(shè)計(jì)課程涉及的模型分成類(lèi)間模型、類(lèi)內(nèi)模型和算法模型三種[2]。Lui和Kwan等(2004)專門(mén)針對(duì)弱基礎(chǔ)學(xué)生提出一個(gè)建構(gòu)主義的Perform教學(xué)方法,該方法在主觀上以達(dá)到“全民編程”為設(shè)計(jì)原則,首先分析了弱基礎(chǔ)學(xué)生感情上和認(rèn)知上的5個(gè)弱點(diǎn),然后提出有針對(duì)性的C語(yǔ)言課件開(kāi)發(fā)指導(dǎo)原則[3]。Zhu和Zhou(2003)提出了方法學(xué)優(yōu)先的教學(xué)策略,認(rèn)為像C++這樣的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的教學(xué)應(yīng)該先教方法學(xué)再教語(yǔ)言本身,同時(shí)給出了方法學(xué)的6步驟教學(xué)法[4]。莫永華和寇冬泉(2005)以認(rèn)知心理學(xué)為基礎(chǔ),秉承OSI七層參考模型的分層思想,對(duì)學(xué)習(xí)和記憶的信息加工模型加以改進(jìn),提出了一個(gè)更加有效的、全景式的人類(lèi)分層傳播模型,并結(jié)合該模式探討相關(guān)學(xué)習(xí)理論[5]。張曉競(jìng)和陳元琰(2004)做了面向?qū)ο蟪绦蛟O(shè)計(jì)課程的感性化教學(xué)探索,提出了橫向列表比較法、縱向特征點(diǎn)延伸法等具體措施[6]。高枚和楊志強(qiáng)等(2005)從教材建設(shè)、教學(xué)內(nèi)容的組織以及教學(xué)方法等幾方面總結(jié)了“C/C++程序設(shè)計(jì)”課程教學(xué)的一些新思路和體會(huì)[7]。劉璟(2003)指出,對(duì)于程序設(shè)計(jì)的研究,可以分為四個(gè)層次:算法、方法學(xué)、語(yǔ)言和工具,其中算法設(shè)計(jì)與分析的研究在最高層次上[8]。
在與層次化有關(guān)的教學(xué)理論或?qū)嵺`方面,文獻(xiàn)[4]雖涉及了方法學(xué)和語(yǔ)言的教學(xué)層次關(guān)系,但實(shí)際的層次不限于這兩個(gè),其中的6個(gè)教學(xué)步驟也僅限于C++。文獻(xiàn)[5]的人類(lèi)分層傳播模式雖然提到分層,但并不是教學(xué)內(nèi)容的分層問(wèn)題,而是教育傳播的分層問(wèn)題。文獻(xiàn)[8]把算法看成是程序設(shè)計(jì)的最高的、終極的層次,但在實(shí)際的科學(xué)研究中,一方面算法最終離不開(kāi)實(shí)現(xiàn)工具的支持,另一方面工具的運(yùn)用(如軟件包、GPU)也能使許多課題的研究獲得進(jìn)展和創(chuàng)新,在工程技術(shù)領(lǐng)域更不能忽略工具的重要性。包括工具和集成開(kāi)發(fā)環(huán)境在內(nèi)的較低層次內(nèi)容無(wú)疑是程序設(shè)計(jì)的重要教學(xué)內(nèi)容。
2 層次化教學(xué)的思想
2.1 程序設(shè)計(jì)類(lèi)課程內(nèi)容的四個(gè)層次劃分
計(jì)算機(jī)科學(xué)家沃思(N. Wirth)提出過(guò)一個(gè)著名的公式:
數(shù)據(jù)結(jié)構(gòu)+算法=程序
我國(guó)的計(jì)算機(jī)教育家譚浩強(qiáng)教授改進(jìn)了這個(gè)公式[9],提出:
程序=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)方法+語(yǔ)言工具和環(huán)境
他們都是運(yùn)用層次化的思想觀察程序的本質(zhì)。我們根據(jù)多年來(lái)的教學(xué)實(shí)踐和總結(jié),程序設(shè)計(jì)語(yǔ)言課程內(nèi)容也有一個(gè)清晰的層次劃分,它可以分成四個(gè)層次:算法、方法學(xué)、語(yǔ)法和集成開(kāi)發(fā)環(huán)境。這四個(gè)層次從窄到寬,從抽象到具體,構(gòu)成一個(gè)金字塔,如圖1所示。
算法(Algorithm)是計(jì)算機(jī)科學(xué)的核心,是指解決問(wèn)題的結(jié)構(gòu)化流程,是編排計(jì)算機(jī)指令的策略性步驟。按照D. E. Knuth的定義,算法是一個(gè)有窮規(guī)則的集合,其中之規(guī)則規(guī)定了一個(gè)解決某一特定類(lèi)型的問(wèn)題的運(yùn)算序列,算法應(yīng)具有如下五個(gè)重要特性:有窮性、確定性、輸入、輸出和可運(yùn)行性[10]。算法是方法學(xué)無(wú)關(guān)的,也是語(yǔ)言無(wú)關(guān)的,即算法的設(shè)計(jì)不依賴于用什么樣的程序設(shè)計(jì)方法,更不依賴于具體的編程語(yǔ)言。
方法學(xué)(Methodology)是計(jì)算機(jī)語(yǔ)言的設(shè)計(jì)方法,比如簡(jiǎn)單過(guò)程式的程序設(shè)計(jì)、面向?qū)ο蟮某绦蛟O(shè)計(jì)、并行程序設(shè)計(jì)和網(wǎng)格計(jì)算[11]。以前的Fortran語(yǔ)言和C語(yǔ)言是按照簡(jiǎn)單過(guò)程式語(yǔ)言設(shè)計(jì)方法設(shè)計(jì)出來(lái)的語(yǔ)言產(chǎn)品。而現(xiàn)在流行的Java和C++是按照面向?qū)ο蠓椒ㄔO(shè)計(jì)出來(lái)的語(yǔ)言產(chǎn)品。
語(yǔ)法(Grammar)描述了組成一個(gè)有效程序的符號(hào)的順序,語(yǔ)法為理解一個(gè)程序提供了重要的信息,同樣也為將它翻譯成目標(biāo)程序提供了必要的信息[12]。語(yǔ)法包括詞法和句法,語(yǔ)法是學(xué)習(xí)計(jì)算機(jī)語(yǔ)言的最基本、學(xué)生最直接感知到的內(nèi)容。程序設(shè)計(jì)語(yǔ)言不同,直觀地看,就是語(yǔ)法不同。
集成開(kāi)發(fā)環(huán)境(Integrated Development Environment, IDE)是為了讓某一種語(yǔ)言的程序代碼能方便地錄入、編輯、存儲(chǔ)、編譯、運(yùn)行和調(diào)試,以及為函數(shù)庫(kù)調(diào)用、類(lèi)庫(kù)導(dǎo)入、命名約定、硬件相關(guān)的優(yōu)化、編譯選項(xiàng)等提供接口的應(yīng)用軟件[13]。
這四個(gè)層次從上到下構(gòu)成一個(gè)從抽象到具體的概念范疇。上一層次與下一層次都存在一對(duì)多的關(guān)系。一個(gè)算法可以用過(guò)程式的語(yǔ)言實(shí)現(xiàn),也可以用面向?qū)ο蟮某绦驅(qū)崿F(xiàn);在同一種方法學(xué)(如面向?qū)ο螅┲笇?dǎo)下設(shè)計(jì)的語(yǔ)言有多種(如C++、Java),它們的語(yǔ)法不同;同一種語(yǔ)言(即語(yǔ)法相同)可以有不同的集成開(kāi)發(fā)環(huán)境,比如C++的IDE有C++ Free,VC++6.0,VC++.net等。
層次越高,越具長(zhǎng)期性,層次越低,越容易被更替和淘汰。優(yōu)秀算法的生命力很強(qiáng),能生存幾十年、幾百年甚至幾千年;方法學(xué)具有計(jì)算機(jī)發(fā)展的時(shí)代特征,一般有幾十年的生存期;計(jì)算機(jī)語(yǔ)言則不斷推陳出新,有的能用幾十年,有的則幾年后就被人遺忘;而集成開(kāi)發(fā)環(huán)境更加短命,IDE的新產(chǎn)品不斷出現(xiàn),版本幾年一更新,程序員需要不斷去做升級(jí),跟上變化。
2.2 層次化教學(xué)的心理學(xué)和教育學(xué)基礎(chǔ)
層次化教學(xué)的思想雖然源自教學(xué)實(shí)踐,從學(xué)習(xí)理論的觀點(diǎn)來(lái)看也是具有它的理論基礎(chǔ)的。
關(guān)于學(xué)習(xí)理論,經(jīng)歷了一個(gè)從行為主義,到認(rèn)知學(xué)派,再到建構(gòu)主義的發(fā)展歷程。最早的行為主義學(xué)習(xí)理論以華生(Watson)為代表,將巴甫洛夫的條件反射理論應(yīng)用到教育傳播和學(xué)習(xí)理論的研究中去。但是行為主義的學(xué)習(xí)理論過(guò)于強(qiáng)調(diào)環(huán)境對(duì)學(xué)習(xí)的決定作用,認(rèn)知主義的學(xué)習(xí)理論則以學(xué)習(xí)者主體為主要決定因素,指出學(xué)習(xí)過(guò)程是一個(gè)學(xué)習(xí)者根據(jù)個(gè)體的已有知識(shí)和外部環(huán)境加工形成新知識(shí)的過(guò)程。建構(gòu)主義更加強(qiáng)調(diào)學(xué)習(xí)者的主觀能動(dòng)性,提出學(xué)習(xí)是一個(gè)發(fā)現(xiàn)過(guò)程,而不是一個(gè)接受過(guò)程,更不是信息傳送過(guò)程[14]。
如果單純從行為主義出發(fā),知識(shí)的分層至少能夠提高刺激-反應(yīng)(S-R)聯(lián)系的形成效率。
在學(xué)習(xí)理論的認(rèn)知學(xué)派中,奧蘇伯爾(Ausubel)提出的先進(jìn)組織者(Advanced Organizers)理論指出,教師的角色是教學(xué)內(nèi)容的組織者,教師的責(zé)任是將教學(xué)內(nèi)容進(jìn)行有意義的組織,使得它成為學(xué)生長(zhǎng)時(shí)記憶的骨架(umbrella),起到提綱挈領(lǐng)的作用,具體的知識(shí)將由學(xué)生自己填充。教學(xué)內(nèi)容層次化結(jié)果就是一種長(zhǎng)時(shí)記憶的骨架或教學(xué)內(nèi)容的先進(jìn)組織,這種層次化模式還具有如下優(yōu)點(diǎn)。
⑴ 有利于注意(Attention)的參與。注意是感知的重要特征和學(xué)習(xí)效率的基本保證,在學(xué)習(xí)過(guò)程中,感知到的內(nèi)容包括知識(shí)點(diǎn)本身、知識(shí)點(diǎn)所處的層次、教學(xué)環(huán)境、教師的態(tài)度以及干擾信息等,層次作為其中一種特意安排的新感知內(nèi)容引導(dǎo)了注意的方向,強(qiáng)化了知識(shí)點(diǎn)本身,使學(xué)習(xí)者盡早拋棄非相關(guān)內(nèi)容,避免了許多混亂的感知內(nèi)容進(jìn)入后續(xù)的加工過(guò)程。
⑵ 它是概念形成的良好框架。能激活原有的知識(shí)(長(zhǎng)時(shí)記憶),與感知到的新知識(shí)經(jīng)重新編碼成為新的長(zhǎng)時(shí)記憶,從而使新概念以及該新概念所屬的層次存儲(chǔ)在長(zhǎng)時(shí)記憶中,由于這些概念在存儲(chǔ)時(shí)增加了“所屬層次”的編碼,使以后的檢索和理解更加快速和準(zhǔn)確。
⑶ 有利工作記憶中塊(Chunk)的信息量提高和加工的效率。工作記憶是一種短時(shí)記憶,其中的內(nèi)容以塊為單位,是學(xué)習(xí)過(guò)程的加工對(duì)象,米勒(Miller)認(rèn)為工作記憶中塊的個(gè)數(shù)是相對(duì)固定的(約7±2),與塊的信息量(比特?cái)?shù))無(wú)關(guān)。層次化處理很容易將同層的知識(shí)同塊化,從而提高塊的信息量和學(xué)習(xí)和記憶加工的效率。
⑷ 一定程度上迫使教師的隱性知識(shí)(Tacit Knowledge)轉(zhuǎn)換為顯性的可分解的步驟,降低學(xué)生的學(xué)習(xí)難度。例如,C++的#include命令不僅是一條簡(jiǎn)單的語(yǔ)句,而且會(huì)涉及到后續(xù)的文件和存儲(chǔ)目錄,含有語(yǔ)法和IDE兩層知識(shí),分層次的教學(xué)就自然使教師講解#include命令時(shí)分解到位,兩層均及,使學(xué)生能充分建立該語(yǔ)句的概念和機(jī)制。
建構(gòu)主義是上世紀(jì)末興起的學(xué)習(xí)理論,重新從學(xué)習(xí)者的角度分析了認(rèn)知活動(dòng)的規(guī)律。基于建構(gòu)主義觀點(diǎn)提出的教學(xué)法層出不窮,關(guān)鍵思想是認(rèn)知的主動(dòng)性、教師角色從“教導(dǎo)者”轉(zhuǎn)為“推動(dòng)者”、教學(xué)內(nèi)容的結(jié)構(gòu)化等等。程序設(shè)計(jì)類(lèi)課程的層次化有利于提高認(rèn)知的主動(dòng)性,順應(yīng)學(xué)生的偏好和個(gè)性,教學(xué)內(nèi)容的結(jié)構(gòu)化程度自然上升,同時(shí)從課程內(nèi)容的四個(gè)層次來(lái)看,教師客觀上成為四個(gè)層次知識(shí)傳授的推動(dòng)者,在算法和IDE兩端層次尤其如此。
3 層次化的教學(xué)方案和實(shí)例
3.1 層次化的教學(xué)方案
基于上述分層次思想,我們提出的總體教學(xué)方案是:對(duì)計(jì)算機(jī)程序設(shè)計(jì)類(lèi)課程的教學(xué)內(nèi)容做算法、方法學(xué)、語(yǔ)法和集成編程環(huán)境四個(gè)層次的劃分。以計(jì)算機(jī)語(yǔ)言課程的四個(gè)層次為框架,重新梳理教學(xué)內(nèi)容,分層定位知識(shí)點(diǎn),將各章節(jié)各知識(shí)點(diǎn)歸到各個(gè)層次。這個(gè)分層過(guò)程對(duì)理論課、實(shí)驗(yàn)課和課程設(shè)計(jì)同步進(jìn)行。
以教學(xué)內(nèi)容的層次化為導(dǎo)引,將層次化的思想貫徹到各個(gè)教學(xué)環(huán)節(jié),包括教學(xué)大綱修訂、教學(xué)進(jìn)度安排、教學(xué)手段創(chuàng)新、學(xué)生學(xué)習(xí)引導(dǎo)、考試、課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)等。
值得注意的是,四個(gè)層次之間的關(guān)系并不是簡(jiǎn)單的相加關(guān)系,而是抽象與具體、調(diào)用與支持的關(guān)系。層次化的教學(xué)方案并不是說(shuō)按照算法到IDE或相反方向的順序重新安排教學(xué)過(guò)程,而是教學(xué)過(guò)程仍然按照原來(lái)的章節(jié)順序,只是在每個(gè)章節(jié)、每堂課將所講授內(nèi)容明確指出所屬的層次,以方便學(xué)生的領(lǐng)會(huì)、掌握和主動(dòng)學(xué)習(xí)。
此外,傳統(tǒng)的以問(wèn)題為中心的教學(xué)方法是以“問(wèn)題”為格式塔(Gestalt)進(jìn)行問(wèn)題的求解,本方案并不是以“概念”或“操作”為新的格式塔,而是仍以“問(wèn)題”為初始格式塔,只不過(guò)特別強(qiáng)調(diào)問(wèn)題求解過(guò)程中學(xué)生頓悟(insight)到的各種子格式塔,這些子格式塔對(duì)應(yīng)于它所屬的各個(gè)層次,由于有了四個(gè)層次的劃分,這里的頓悟已退化為平凡的獲取,需要頓悟的僅為子格式塔內(nèi)部的頓誤了。
3.2 實(shí)例
以C/C++語(yǔ)言為例,給出一個(gè)具體可操作的教學(xué)實(shí)施步驟如下。
第一,劃分計(jì)算機(jī)語(yǔ)言類(lèi)課程的四個(gè)層次:算法、方法學(xué)、語(yǔ)法和集成開(kāi)發(fā)環(huán)境。分析四個(gè)層次在C/C++教學(xué)內(nèi)容中的分布情況。
⑴ 算法在本課程中涉及較少,它主要在數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計(jì)與分析等課程中講授,但不是不能涉及,比如線性搜索的二分法在本課程要講到。
⑵ 方法學(xué)在本課程中重要且較難接受的內(nèi)容,它主要包括模塊化的編程思想,面向?qū)ο蟪绦蛟O(shè)計(jì)思想,如封裝、抽象、繼承、多態(tài)等。
⑶ 語(yǔ)法內(nèi)容是本課程的主要內(nèi)容,包括函數(shù)的定義、聲明和調(diào)用,對(duì)象和類(lèi)的定義、類(lèi)的派生等,占授課內(nèi)容的70%左右。
⑷ 集成開(kāi)發(fā)環(huán)境在本課程的理論部分占得比較少,但在實(shí)驗(yàn)部分占得比較多,具體就是C編譯環(huán)境、VC的使用方法,Windows應(yīng)用程序框架的構(gòu)建方法。
第二,在C++程序設(shè)計(jì)的知識(shí)點(diǎn)的分層梳理和歸類(lèi)的基礎(chǔ)上,編排和修訂理論教學(xué)內(nèi)容、實(shí)驗(yàn)教學(xué)內(nèi)容和課程設(shè)計(jì)教學(xué)內(nèi)容,以所屬層次和學(xué)習(xí)要求的二維坐標(biāo)來(lái)標(biāo)注各個(gè)知識(shí)點(diǎn)。在教學(xué)大綱中記錄教學(xué)內(nèi)容及其所屬層次和學(xué)習(xí)要求。教學(xué)大綱的“基本要求”按照?qǐng)D2例子的格式記錄。
第三,以層次化思想指導(dǎo)教學(xué)活動(dòng)的各個(gè)環(huán)節(jié)。從教學(xué)內(nèi)容上看,第三層次的內(nèi)容都是教師講授、學(xué)生學(xué)習(xí)的主要內(nèi)容,但從教學(xué)主體和客體的細(xì)分角度看,對(duì)動(dòng)手能力強(qiáng)、有志于創(chuàng)業(yè)的學(xué)生宜偏重于第四層次的知識(shí),對(duì)理論興趣濃厚、科研型的學(xué)生宜偏重于第一、第二層次的知識(shí)。從課件的制作看,宜在開(kāi)篇第一課就向?qū)W生展示四個(gè)層次的“金字塔”圖。從上機(jī)實(shí)踐看,對(duì)IDE的操作知識(shí)要及時(shí)向?qū)W生明確指出,以正確構(gòu)建認(rèn)知模式。
第四,實(shí)施一些配套工程,如編寫(xiě)相應(yīng)教材、實(shí)驗(yàn)教材和課程設(shè)計(jì)指導(dǎo)書(shū),制作全套課件,開(kāi)發(fā)網(wǎng)絡(luò)教學(xué)資源,在每一環(huán)節(jié)都強(qiáng)調(diào)層次化意識(shí)。
4 結(jié)束語(yǔ)
作者通過(guò)在溫州大學(xué)五年來(lái)C語(yǔ)言、C++語(yǔ)言、Java語(yǔ)言等課程的層次化教學(xué)實(shí)踐,教學(xué)年級(jí)覆蓋大一、大二、大三,對(duì)象程度覆蓋二本、三本和???,發(fā)現(xiàn)層次化的教學(xué)法能夠明顯提高教學(xué)效果。具體包括:①學(xué)生的動(dòng)手實(shí)踐能力明顯提高,學(xué)習(xí)興趣增大,對(duì)參加畢業(yè)設(shè)計(jì)、專業(yè)實(shí)習(xí)更有信心,專業(yè)技能更符合社會(huì)需求,更受用人單位的歡迎,就業(yè)更具競(jìng)爭(zhēng)力;②算法和程序設(shè)計(jì)方法的理論更加扎實(shí),參加程序設(shè)計(jì)競(jìng)賽、考研、考軟件設(shè)計(jì)師更加積極,參加人數(shù)逐年遞增,為他們?cè)趯?lái)的研究工作中打下更堅(jiān)固的基礎(chǔ);③后續(xù)課程的學(xué)習(xí)更加輕松,合理引導(dǎo)了繼續(xù)學(xué)習(xí)方向,培育了主動(dòng)學(xué)習(xí)的動(dòng)力。
層次化的思想具有一定的推廣價(jià)值,對(duì)程序設(shè)計(jì)類(lèi)課程如C/C++、Java、VB、Python、Delphi、PHP等教學(xué)改革都有指導(dǎo)意義。
參考文獻(xiàn):
[1] Wulf T.: Constructivist approaches for teaching computer
programming. In: Proceedings of the 6th conference on Information Technology Education,2005:245-248
[2] Caspersen M E, Bennedsen J.: Instructional design of a
programming course: a learning theoretic approach. In: Proceedings of the third international workshop on Computing Education Research,2007:111-122
[3] Lui Andrew K, Kwan Reggie, Poon Maria, Cheung Yannie H Y.:
Saving weak programming students-applying constructivism in a first programming course. ACM SIGCSE Bulletin,2004.36(2):72-76
[4] Zhu Haibin, Zhou MengChu: Methodology first and language
second: a way to teach object-oriented programming. In: Conference on Object Oriented Programming Systems Languages and Applications,2003: 140-147
[5] 莫永華,寇冬泉.基于認(rèn)知心理學(xué)的人類(lèi)分層傳播模式[J].電化教育
研究,2005.11:38-41
[6] 張曉競(jìng),陳元琰.面向?qū)ο蟪绦蛟O(shè)計(jì)課程的感性化教學(xué)與創(chuàng)新應(yīng)用
[J].計(jì)算機(jī)教育,2004.10:73-75
[7] 高枚,楊志強(qiáng),許蘭蘭,龔沛曾.C/C++教學(xué)改革的探索與實(shí)踐[J].計(jì)算
機(jī)時(shí)代,2005.11:8-10
[8] 劉璟.計(jì)算機(jī)算法引論——設(shè)計(jì)與分析技術(shù)[M].科學(xué)出版社,2003.
[9] 譚浩強(qiáng).C程序設(shè)計(jì)(第二版)[M].清華大學(xué)出版社,1999.
[10] Knuth D E. The Art of Computer Programming(Third Edition)
Vol. 1: Fundamental Algorithm[M]. MA,USA: Addison-Wesley,1997.
[11] 胡正國(guó),吳健,鄧正宏.程序設(shè)計(jì)方法學(xué)[M].國(guó)防工業(yè)出版社,2003.
[12] Pratt T W, Zelkowitz M V.著,傅育熙等譯.程序設(shè)計(jì)語(yǔ)言設(shè)計(jì)與實(shí)
現(xiàn)(第3版)[M].電子工業(yè)出版社,1998.
[13] Wikipedia: Integrated development environment. http://en.
wikipedia.org/wiki/Integrated_development_environment,2012-8-3.
[14] Gredler M E. Learning and Instruction: Theory into Practice(Fifth
Edition), Prentice Hall, Pearson Education Inc., 2004:27-47,74-92,196-262