

摘要:4C/ID是提高復(fù)雜認(rèn)知技能的方法。文章闡述了如何運(yùn)用4C/ID對(duì)“算法設(shè)計(jì)與分析”課程進(jìn)行教學(xué)改革,實(shí)踐證明,該方法有效地提高了學(xué)生算法設(shè)計(jì)與分析的能力并且增加了考證通過(guò)率。
關(guān)鍵詞:算法;復(fù)雜認(rèn)知技能;4C/ID
尼克勞斯#8226;威茨,結(jié)構(gòu)化程序設(shè)計(jì)的首創(chuàng)者和圖靈獎(jiǎng)獲得者,提出了一個(gè)著名論斷:程序=算法+數(shù)據(jù)結(jié)構(gòu)。這說(shuō)明了算法的重要地位。什么是算法?算法和程序設(shè)計(jì)技術(shù)的先驅(qū)者高德納把算法比喻成菜譜。他認(rèn)為“算法是一組有窮的規(guī)則,這些規(guī)則給出求解特定類型問(wèn)題的運(yùn)算序列”,他強(qiáng)調(diào)“我們不僅要算法,而且還要在某種不明確定義的意義下的好算法”[1]——算法分析?!陡叩葘W(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)實(shí)踐教學(xué)體系與規(guī)范》把算法設(shè)計(jì)與分析能力界定為計(jì)算機(jī)專業(yè)高級(jí)人才的基本學(xué)科能力之一[2]。可見(jiàn),“算法設(shè)計(jì)與分析”課程的重要性。然而,學(xué)生普遍覺(jué)得該課程難學(xué)。為了解決這個(gè)問(wèn)題,應(yīng)用四要素教學(xué)設(shè)計(jì)模型(以下簡(jiǎn)稱4C/ID)進(jìn)行教學(xué)改革。4C/ID是提高復(fù)雜認(rèn)知技能的方法,在國(guó)外,4C/ID的研究已有30年的歷史,曾經(jīng)成功地將4C/ID應(yīng)用與計(jì)算機(jī)編程。在國(guó)內(nèi),4C/ID的研究還處于起步階段。本文主要研究了4C/ID在“算法設(shè)計(jì)與分析”課程教學(xué)中的實(shí)踐。
1課程教學(xué)中存在的問(wèn)題
1.1學(xué)生學(xué)習(xí)有畏難情緒
算法是問(wèn)題的程序化解決方案[3]。首先,要理解問(wèn)題,確定問(wèn)題的條件和應(yīng)用范圍。然后,建立數(shù)學(xué)模型。最后,證明算法的正確性和分析算法的效率。這需要微積分、線性代數(shù)、離散數(shù)學(xué)等數(shù)學(xué)知識(shí)。所以,對(duì)于這門(mén)復(fù)雜、抽象的課程,學(xué)生自然感到難學(xué)。
1.2算法實(shí)現(xiàn)有難度
算法實(shí)現(xiàn)指編制與調(diào)試算法。算法實(shí)現(xiàn)有助于加深對(duì)算法的理解,是不可缺少的環(huán)節(jié)。算法的實(shí)現(xiàn)取決于:(1)豐富的程序設(shè)計(jì)語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)實(shí)踐經(jīng)驗(yàn)。如學(xué)生在程序調(diào)試時(shí)經(jīng)常出的錯(cuò)是缺少函數(shù)聲明;在進(jìn)行“分支限界”實(shí)訓(xùn)時(shí),很多學(xué)生由于沒(méi)有掌握隊(duì)列而無(wú)法實(shí)現(xiàn)裝載問(wèn)題算法。這是程序設(shè)計(jì)語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)不扎實(shí)造成的。過(guò)多的出錯(cuò)會(huì)嚴(yán)重影響上機(jī)實(shí)踐的質(zhì)量,造成學(xué)生不愿動(dòng)手。(2)對(duì)算法的理解。算法通常是由偽代碼來(lái)描述的,如果不理解算法,很難準(zhǔn)確地將算法轉(zhuǎn)換成可以運(yùn)行的程序。如果這兩個(gè)問(wèn)題不能很好地解決,算法設(shè)計(jì)與分析能力的培養(yǎng)就成為一句空話。
2 “4C/ID”是解決問(wèn)題的途徑
算法設(shè)計(jì)與分析是復(fù)雜的認(rèn)知技能,其構(gòu)成見(jiàn)圖1。復(fù)雜的認(rèn)知技能是由一系列的技能所構(gòu)成,其中一部分構(gòu)成技能體現(xiàn)為自動(dòng)的處理過(guò)程,其它多數(shù)的構(gòu)成技能涉及認(rèn)知的領(lǐng)域[4]。從圖1可以看出,這是一個(gè)復(fù)雜的學(xué)習(xí)過(guò)程。如果從頭到尾地講解給學(xué)生聽(tīng),然后再讓學(xué)生上機(jī)實(shí)踐,這就不能了解學(xué)生哪些技能掌握了,哪些沒(méi)有掌握,從而影響了上機(jī)實(shí)踐的質(zhì)量。而且,直線式講解不符合問(wèn)題求解的規(guī)律,有些過(guò)程需要反復(fù)實(shí)踐,有些過(guò)程需要思考和補(bǔ)充相關(guān)信息。4C/ID是面向復(fù)雜認(rèn)知技能培訓(xùn)的教學(xué)設(shè)計(jì)模型,由約倫#8226;范麥里恩伯爾基于學(xué)習(xí)和信息加工的認(rèn)知心理學(xué)理論創(chuàng)造。該模型之所以能提高復(fù)雜認(rèn)知技能的原因是它將復(fù)雜認(rèn)知技能分成再用性構(gòu)成技能和非再用性構(gòu)成技能,并對(duì)它們分別進(jìn)行實(shí)際練習(xí)設(shè)計(jì)和信息呈現(xiàn)設(shè)計(jì)。再用性構(gòu)成技能是指在不同問(wèn)題情境中以極為類似的方式而操作的技能,非再用性構(gòu)成技能是指在不同的問(wèn)題情境中進(jìn)行不同操作的技能[5]。再用性構(gòu)成技能的熟練掌握可以解決問(wèn)題中熟悉的方面,非再用性構(gòu)成技能通過(guò)圖式建構(gòu)可以運(yùn)用于問(wèn)題情境中新的、不熟悉的方面。兩者相互促進(jìn),能提高解決問(wèn)題的整體水平。所以,將4C/ID應(yīng)用于“算法設(shè)計(jì)與分析”教學(xué)中會(huì)比傳統(tǒng)的教學(xué)方法更能提高算法設(shè)計(jì)與分析的能力。
3 “4C/ID”的教學(xué)實(shí)踐
4C/ID分成教學(xué)分析和教學(xué)設(shè)計(jì)兩個(gè)部分。這兩個(gè)部分又各分成兩層,共4層。它們是:(1)原理性技能的分解;(2)構(gòu)成技能及相關(guān)知識(shí)的分析;(3)教學(xué)方法的選擇;(4)訓(xùn)練策略的合成。
3.1原理性技能的分解
4C/ID的第一步是將復(fù)雜認(rèn)知技能分成不同類型的構(gòu)成技能。分解的過(guò)程依據(jù)一定的原則,因此稱為“原理性”分解。原理性技能的分解遵循以下的原則:(1)識(shí)別。識(shí)別組成復(fù)雜認(rèn)知技能的構(gòu)成技能,產(chǎn)生一個(gè)技能分層結(jié)構(gòu)。這個(gè)分層結(jié)構(gòu)包含了確定的構(gòu)成技能及它們之間的關(guān)系。(2)描述。清晰描述每個(gè)構(gòu)成技能。(3)分類。將構(gòu)成技能分成用于培訓(xùn)和不用于培訓(xùn)的技能。對(duì)于用于培訓(xùn)的構(gòu)成技能將進(jìn)一步分成再用性構(gòu)成技能和非再用性構(gòu)成技能。(4)排序。將被選擇用于培訓(xùn)的構(gòu)成技能排序。這里重點(diǎn)講一下如何區(qū)別再用性構(gòu)成技能和非再用性構(gòu)成技能。它們的區(qū)別主要反映在執(zhí)行時(shí)表現(xiàn)不同。再用性構(gòu)成技能的表現(xiàn)特征為:(1)執(zhí)行很快;(2)顯示錯(cuò)誤很少或沒(méi)有;(3)能和其他構(gòu)成技能同時(shí)執(zhí)行;(4)只能在特定的問(wèn)題情境中產(chǎn)生上述特點(diǎn),不易遷移到新的、不熟悉的情境中。再用性構(gòu)成技能的執(zhí)行過(guò)程可以被制定成一套執(zhí)行程序,只要配以必備的知識(shí),總能成功的執(zhí)行。非再用性構(gòu)成技能的表現(xiàn)特點(diǎn):(1)執(zhí)行緩慢;(2)執(zhí)行過(guò)程容易出錯(cuò);(3)不適合與其他的非再用性構(gòu)成技能同時(shí)執(zhí)行。如,深度優(yōu)先搜索算法就是再用性構(gòu)成技能,在求解動(dòng)態(tài)規(guī)劃問(wèn)題時(shí)分析最優(yōu)子結(jié)構(gòu)是非再用性構(gòu)成技能。
3.2構(gòu)成技能及相關(guān)知識(shí)的分析
構(gòu)成技能的分析方法有程序分析法和基于規(guī)則的分析法。程序分析法用于可以觀察的、具有先后執(zhí)行順序的再用性構(gòu)成技能,基于規(guī)則的分析法用于不可觀察的、不具有明顯先后執(zhí)行順序的非再用性構(gòu)成技能。
3.2.1再用性構(gòu)成技能
深度優(yōu)先搜索可以表示成固定的“算法”,如圖2。再用性構(gòu)成技能的成功執(zhí)行往往需要必備知識(shí)。必備知識(shí)包括事實(shí)、概念、原則等,見(jiàn)圖2中的注釋。
3.2.2非再用性構(gòu)成技能
非再用性構(gòu)成技能的執(zhí)行過(guò)程不能表示成固定的“程序”,它的執(zhí)行依賴于支撐性知識(shí)和策略性知識(shí)。其實(shí),非再用性構(gòu)成技能的分析就是對(duì)支撐性知識(shí)和策略性知識(shí)的分析。支撐性知識(shí)的分析涉及到復(fù)雜的認(rèn)知圖式。復(fù)雜的認(rèn)知圖式由不同的、有相互關(guān)系的認(rèn)知單元所組成,這些認(rèn)知單元可以是陳述、概念、原理等。支撐性知識(shí)的分析是建立在對(duì)關(guān)系分析的基礎(chǔ)上,再?gòu)南嚓P(guān)的關(guān)系中找出所有有用的認(rèn)知單元。主要的關(guān)系包括種類關(guān)系、部分關(guān)系、方位關(guān)系、原因—結(jié)果關(guān)系、相似關(guān)系。確定關(guān)系和認(rèn)知單元后,用概念模型、目標(biāo)—方案層次結(jié)構(gòu)、原理功能模型、心智模型組織和顯示認(rèn)知單元及它們之間的關(guān)系。策略性知識(shí)的分析主要采用解決問(wèn)題的系統(tǒng)方法。該方法的目的是要建立一個(gè)描述解決問(wèn)題的模型。為了建立這個(gè)模型,讓專家和教師解決他們領(lǐng)域內(nèi)和該問(wèn)題相似的經(jīng)典問(wèn)題,并且要求他們?cè)谒伎紗?wèn)題的同時(shí)把思路講出來(lái),這些話便被整理成描述解決問(wèn)題的模型。如,在求解動(dòng)態(tài)規(guī)劃問(wèn)題時(shí)可以選擇矩陣鏈相乘、求最長(zhǎng)公共子序列、最優(yōu)二叉搜索樹(shù)、裝配線調(diào)度等例子,通過(guò)分析經(jīng)典教材來(lái)建立描述解決問(wèn)題的模型。
3.3教學(xué)方法選擇和訓(xùn)練策略合成
教學(xué)方法通過(guò)現(xiàn)則支持再用性、非再用性構(gòu)成技能獲得的實(shí)際練習(xí)設(shè)計(jì)和信息呈現(xiàn)設(shè)計(jì)。學(xué)習(xí)者通過(guò)反復(fù)訓(xùn)練都能掌握再用性構(gòu)成技能,相應(yīng)的信息呈現(xiàn)可以采用分割、示范和搭建腳手架的方法。分割的作用是避免認(rèn)知負(fù)荷,在同一時(shí)間內(nèi)僅提供直接的、可利用的信息。專家示范可以形象地說(shuō)明規(guī)則和程序的運(yùn)作。搭建腳手架就像幫助系統(tǒng)一樣,能因人而異地
提供及時(shí)的、直接有效的信息。非再用性構(gòu)成技能的獲得取決于圖式建構(gòu)。圖式建構(gòu)是指把低水平的圖式整合到高水平圖式中,逐漸形成更加復(fù)雜的圖式。復(fù)雜的圖式有助于非再用性構(gòu)成技能的獲得。圖式建構(gòu)取決于歸納的程度。歸納的作用為:(1)創(chuàng)建新的圖式;(2)調(diào)整已有圖式,使之適合更廣泛的事件。相應(yīng)的信息呈現(xiàn)方式必須能為歸納所用。因此,必須要對(duì)知識(shí)精制化。精制化是指將新的知識(shí)整合到記憶中已有的認(rèn)知結(jié)構(gòu)。這個(gè)過(guò)程通過(guò)類比來(lái)實(shí)現(xiàn)。
復(fù)雜認(rèn)知技能的獲得是建立在整體任務(wù)實(shí)踐的基礎(chǔ)上。因此,訓(xùn)練策略的合成是形成復(fù)雜認(rèn)知技能的關(guān)鍵。這個(gè)過(guò)程必須遵循以下原則:(1)在實(shí)踐開(kāi)始階段,為再用性和非再用性構(gòu)成技能提供需要的必備知識(shí)和支撐知識(shí);(2)隨著專長(zhǎng)的提高,相應(yīng)地減少知識(shí)的呈現(xiàn),直至學(xué)習(xí)者能夠獨(dú)立地、在不需要幫助的情況下面對(duì)真實(shí)的問(wèn)題。這時(shí),學(xué)習(xí)者獲得了復(fù)雜認(rèn)知技能。
4結(jié)論
經(jīng)過(guò)實(shí)踐檢驗(yàn),4C/ID能有效提高復(fù)雜認(rèn)知技能。應(yīng)用4C/ID于“算法設(shè)計(jì)與分析”課程,效果體現(xiàn)在兩方面:(1)解決問(wèn)題的能力提高了。以前,答題是把算法從頭到尾背過(guò)來(lái)的,算法常有缺漏或搞亂算法語(yǔ)句順序?,F(xiàn)在,答題內(nèi)容以實(shí)踐的經(jīng)驗(yàn)體會(huì)居多,答對(duì)率提高了16%。(2)考證通過(guò)率提高了。“算法設(shè)計(jì)與分析”是一門(mén)綜合性的課程,算法設(shè)計(jì)與分析能力的提高深化了學(xué)生對(duì)“程序設(shè)計(jì)語(yǔ)言”、“數(shù)據(jù)結(jié)構(gòu)”等課程的學(xué)習(xí),考證通過(guò)率也增加了。4C/ID不盡人意之處在于要費(fèi)很多時(shí)間去分析。所以,4C/ID一般和教學(xué)設(shè)計(jì)系統(tǒng)一起使用。
參考文獻(xiàn):
[1] DONALD E.KNUTH. 計(jì)算機(jī)程序設(shè)計(jì)藝術(shù):基本算法[M]. 蘇運(yùn)霖,譯.北京:國(guó)防工業(yè)出版社,2007.
[2] 教育部高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會(huì). 高等學(xué)校計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)實(shí)踐教學(xué)體系與規(guī)范[M]. 北京:清華大學(xué)出版社,2008.
[3] Anany Levitin. 算法設(shè)計(jì)與分析基礎(chǔ)[M]. 潘彥,譯. 北京:清華大學(xué)出版社,2007.
[4] Jeroen J.G.Van Merrienboer,Paul A. Kirschner.Ten Steps to Complex Learning:A Systematic Approach to Four-component Instructional Design[M]. New Jersey:LAWRENCE ERLBAUM ASSOCIATES,2007.
[5] 羅伯特D.坦尼森,弗蘭茲#8226;肖特,諾伯特M.西爾,等. 教學(xué)設(shè)計(jì)的國(guó)際觀:理論#8226;研究#8226;模型[M]. 任友群,裴新寧,譯. 北京:教育科學(xué)出版社,2007.
Improve Complex Cognitive Skills on \"Algorithms Design and Analysis\" Course
LUO Yi-sheng
(Department of Technology Education, Guangdong Polytechnic Normal University, Guangzhou 510630,China)
Abstract: 4C/ID is the method that improves complex cognitive skills. How to go on teaching reform on “Algorithms Design and Analysis” course by 4C/ID is described in this paper. In fact, the method enhances students’ capability of algorithms design and analysis effectively and increases the pass ratios.
Key words: algorithm; complex cognitive skills; 4C/ID
(編輯:彭遠(yuǎn)紅)