周顯春 劉東山
摘要:當(dāng)今社會(huì)人才的競(jìng)爭(zhēng),其本質(zhì)是知識(shí)的競(jìng)爭(zhēng),更重要的是能力的競(jìng)爭(zhēng)。該文從程序設(shè)計(jì)理論和實(shí)踐教學(xué)入手,探討對(duì)學(xué)生計(jì)算思維能力的培養(yǎng)?;谟?jì)算思維能力培養(yǎng)的程序設(shè)計(jì)課程教學(xué)對(duì)培養(yǎng)學(xué)生學(xué)習(xí)興趣和提高其程序設(shè)計(jì)及編程實(shí)踐能力,尤其是培養(yǎng)學(xué)生的創(chuàng)新能力能夠起到重大的作用。
關(guān)鍵詞:教學(xué);程序設(shè)計(jì);計(jì)算思維;能力培養(yǎng)
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2012)35-8475-03
程序設(shè)計(jì)課程已成為國(guó)內(nèi)外高校計(jì)算機(jī)及相關(guān)專業(yè)必修的核心專業(yè)基礎(chǔ)課程。在該課程的教學(xué)中,不僅應(yīng)讓學(xué)生學(xué)會(huì)程序設(shè)計(jì)的相關(guān)知識(shí),使學(xué)生能夠掌握程序設(shè)計(jì)的編程技巧,更應(yīng)激發(fā)學(xué)生對(duì)它的興趣,在此基礎(chǔ)上培養(yǎng)學(xué)生自主探求新知識(shí)、解決問(wèn)題的新方法的能力,從而提高學(xué)生的實(shí)踐與創(chuàng)新能力,培養(yǎng)與社會(huì)發(fā)展相適應(yīng)的應(yīng)用型人才。計(jì)算思維具有強(qiáng)大的創(chuàng)新能力[1]ACM和IEEE-CS在修訂后的計(jì)算機(jī)科學(xué)教程2008(ComputerScienceCurriculum2008)中明確指出應(yīng)該將計(jì)算思維作為計(jì)算機(jī)科學(xué)教學(xué)的重要組成部分[2]。中國(guó)科學(xué)院院士、中國(guó)科學(xué)技術(shù)大學(xué)陳國(guó)良教授指出[3]:在大學(xué)中,計(jì)算思維不僅能振興大學(xué)計(jì)算教育,而且會(huì)令科學(xué)與工程領(lǐng)域創(chuàng)造出革命性的研究成果。把計(jì)算思維理念引入程序設(shè)計(jì)課程的教學(xué)過(guò)程中,探索以培養(yǎng)計(jì)算思維能力為核心的新教學(xué)模式,在教學(xué)過(guò)程中以程序設(shè)計(jì)知識(shí)為載體,融合計(jì)算思維能力和素質(zhì)的培養(yǎng),著重強(qiáng)調(diào)創(chuàng)造能力和適應(yīng)能力的培養(yǎng),為程序設(shè)計(jì)的課程教學(xué)提供新思路。
1計(jì)算思維
當(dāng)前,計(jì)算思維是一個(gè)非常受關(guān)注的涉及計(jì)算機(jī)科學(xué)本質(zhì)問(wèn)題和未來(lái)教育走向的基礎(chǔ)性概念。這一概念最早是由麻省理工學(xué)院(MIT)的SeymourPapert教授在1996年提出的[4],但是把這一個(gè)概念提到前臺(tái)來(lái),成為現(xiàn)在受到廣泛關(guān)注的代表人物是美國(guó)卡內(nèi)基梅隆大學(xué)(CMU)的周以真教授(JeannetteM.Wing)[5]。計(jì)算思維提出了一系列解決問(wèn)題的觀點(diǎn)和方法,這些觀點(diǎn)和方法有助于人們更加深刻地理解計(jì)算的本質(zhì)和計(jì)算機(jī)求解問(wèn)題的核心思想。
根據(jù)JeannetteM.Wing等人的設(shè)想[6],一個(gè)已經(jīng)具備計(jì)算思維能力的人,如果他遇到了一個(gè)問(wèn)題,他能夠理解其哪些方面是可以計(jì)算的;能夠使用相應(yīng)的計(jì)算工具或技術(shù)進(jìn)行評(píng)估,能夠理解計(jì)算工具和技術(shù)所具有優(yōu)點(diǎn)和缺點(diǎn);能夠用它去解決新的問(wèn)題;能夠抓住使用新的計(jì)算方式的機(jī)會(huì);能夠在任何領(lǐng)域應(yīng)用采用相應(yīng)計(jì)算方法。而對(duì)于已經(jīng)具備計(jì)算思維能力的科學(xué)家、工程師以及其他專業(yè)人士來(lái)說(shuō),應(yīng)該能夠創(chuàng)新的計(jì)算方法來(lái)解決具體的專業(yè)問(wèn)題,能夠通過(guò)對(duì)海量數(shù)據(jù)分析而得到新的科學(xué)發(fā)現(xiàn),能夠提出之前沒(méi)有想過(guò)或者由于問(wèn)題的規(guī)模不敢提出但能夠用計(jì)算思維進(jìn)行處理的問(wèn)題,能夠使用專業(yè)的術(shù)語(yǔ)對(duì)問(wèn)題及其解決方案進(jìn)行解釋等等。
由以上可知,抽象和自動(dòng)化是為了培養(yǎng)學(xué)生的計(jì)算思維能力的核心內(nèi)容,最能夠體現(xiàn)計(jì)算思維的本質(zhì);因此,在教學(xué)過(guò)程中應(yīng)該有意識(shí)地強(qiáng)化學(xué)生對(duì)計(jì)算思維的基本概念和思維方法的理解和掌握。其實(shí),國(guó)內(nèi)外教育者很早就已經(jīng)開(kāi)始重視計(jì)算思維的基本概念和思維方法;在ACM和IEEE-CS聯(lián)合攻關(guān)組制訂的計(jì)算教程CC1991(ComputingCurricula1991)中已經(jīng)提取出了計(jì)算機(jī)學(xué)科的12個(gè)核心概念[7],包括:概念化和形式化模型、大問(wèn)題的復(fù)雜性、抽象層次、折中和結(jié)論、一致性和完備性、效率、演化、按空間排序、按時(shí)間排序、重用、安全性、以及綁定等。這些思想、方法和原則是計(jì)算思維中最核心的內(nèi)容,不斷強(qiáng)化學(xué)生對(duì)這些概念的理解和掌握是我們今后教學(xué)的全部任務(wù)。
2基于計(jì)算思維的程序設(shè)計(jì)課程教學(xué)
2.1課程的引入
在講授這門(mén)課程之前,首先要告訴學(xué)生,學(xué)會(huì)基本的編程不是本課程教學(xué)的重點(diǎn),對(duì)他們的計(jì)算思維能力和創(chuàng)新能力的培養(yǎng)和訓(xùn)練才是核心;他們?cè)诮?jīng)過(guò)半年多的系統(tǒng)學(xué)習(xí)后,不僅要掌握程序設(shè)計(jì)的基本知識(shí)結(jié)構(gòu),更為重要的是系統(tǒng)的計(jì)算思維能力和創(chuàng)新能力的訓(xùn)練能夠?yàn)楹罄m(xù)的專業(yè)課程的學(xué)習(xí)打下良好地基礎(chǔ)。對(duì)本專業(yè)學(xué)生而言,不僅要掌握程序設(shè)計(jì)的相關(guān)知識(shí),更為重要的是在具體的專業(yè)應(yīng)用中能夠使用這些知識(shí)構(gòu)建出與具體環(huán)境相適應(yīng)的的計(jì)算方法能力;從而為后續(xù)計(jì)算機(jī)的專業(yè)知識(shí)的學(xué)習(xí)做鋪墊;對(duì)非計(jì)算機(jī)專業(yè)學(xué)生而言,學(xué)習(xí)程序設(shè)計(jì)的目的不是成為一名優(yōu)秀的程序員,而是學(xué)習(xí)對(duì)于現(xiàn)實(shí)生活中的問(wèn)題能夠進(jìn)行抽象、理論和設(shè)計(jì),即能夠分析、解決問(wèn)題,這種能力的訓(xùn)練我們可以通過(guò)算法和計(jì)算機(jī)語(yǔ)言來(lái)實(shí)踐計(jì)算思維的訓(xùn)練過(guò)程,從而達(dá)到對(duì)學(xué)生們的理性思維和邏輯思維的培養(yǎng),促使他們養(yǎng)成一個(gè)良性的縝密思維習(xí)慣。程序設(shè)計(jì)是對(duì)學(xué)生進(jìn)行思維訓(xùn)練的最直接、最具有操作性的平臺(tái)??偠灾瑥挠?jì)算思維角度出發(fā)進(jìn)行程序設(shè)計(jì)課程教學(xué)可以較好地達(dá)到以下目的。首先,能夠告訴學(xué)生該課程的重要性,讓學(xué)生能夠從宏觀上了解該課程在他們專業(yè)課程體系中所處的位置。其次,能夠讓學(xué)生知道學(xué)習(xí)該課程的最終目的,即培養(yǎng)通過(guò)對(duì)日常問(wèn)題的構(gòu)建抽象模型并在其基礎(chǔ)上構(gòu)造算法和解決問(wèn)題的能力。最后,能夠糾正學(xué)生普遍存在的認(rèn)為程序設(shè)計(jì)就是培養(yǎng)學(xué)生的編程能力的錯(cuò)誤認(rèn)識(shí),其實(shí)是通過(guò)程序設(shè)計(jì)培養(yǎng)他們的計(jì)算思維能力才是本課程的最終目的,這種能力才是大家應(yīng)該具備的核心競(jìng)爭(zhēng)力,從而激發(fā)他們對(duì)該課程的學(xué)習(xí)興趣。
2.2教學(xué)過(guò)程
將計(jì)算思維與程序設(shè)計(jì)課程教學(xué)的結(jié)合主要體現(xiàn)在兩個(gè)方面:首先要保證抽象和自動(dòng)化兩個(gè)核心思想貫穿于整個(gè)教學(xué)過(guò)程,其次還要根據(jù)講授的具體知識(shí)點(diǎn)恰當(dāng)?shù)匾胗?jì)算思維中所有的其他基本概念和思維方法。下面從理論教學(xué)和實(shí)踐教學(xué)中分別挑選一個(gè)教學(xué)實(shí)例進(jìn)行闡述。
2.2.1理論教學(xué)
在結(jié)構(gòu)化程序設(shè)計(jì)中,常常要求程序根據(jù)對(duì)某個(gè)特定條件的判斷來(lái)決定下一步要進(jìn)行的操作,這種結(jié)構(gòu)稱為選擇結(jié)構(gòu),即在兩條或多條可能的路徑中選擇其中的一條。傳統(tǒng)教學(xué)一般是先給出選擇結(jié)構(gòu)的基本結(jié)構(gòu),接著講解具體的例子,最后總結(jié)、布置作業(yè)的過(guò)程;但是,從計(jì)算思維的角度出發(fā),科學(xué)的方法應(yīng)該從觀察開(kāi)始,應(yīng)該帶著問(wèn)題觀察,教學(xué)可以從日常生活中一個(gè)簡(jiǎn)單的例子開(kāi)始引入,例如:雙周的周四一二節(jié)有計(jì)算機(jī)課而單周周四一二節(jié)則沒(méi)有課,使整個(gè)教學(xué)顯得過(guò)渡自然,給同學(xué)們展示了現(xiàn)在所學(xué)的知識(shí)已經(jīng)實(shí)實(shí)在在存在于我們的日常生活中,不僅可以拉近與他們的距離,更重要是讓他們覺(jué)得所講授的內(nèi)容比較簡(jiǎn)單,為后續(xù)教學(xué)活動(dòng)的開(kāi)展埋下了伏筆,這一點(diǎn)對(duì)非理工的學(xué)生尤其重要,可以說(shuō)事關(guān)教學(xué)的成敗。在此基礎(chǔ)上,采用抽象的方法,提煉出選擇結(jié)構(gòu)的基本結(jié)構(gòu),水到渠道,然后再引入高中所學(xué)的分段函數(shù),這個(gè)也是很多學(xué)生熟悉的內(nèi)容,可以說(shuō)是初中已經(jīng)接觸的內(nèi)容;接著把分段函數(shù)轉(zhuǎn)換成對(duì)應(yīng)的選擇結(jié)構(gòu),這樣不露聲色把數(shù)學(xué)的思想灌輸給學(xué)生,尤其克服了文科生普遍怕數(shù)學(xué)的心理。學(xué)生已經(jīng)基本掌握的基礎(chǔ)上,再給學(xué)生一次實(shí)踐的機(jī)會(huì),給出現(xiàn)實(shí)生活中一個(gè)例子:如求郵費(fèi)問(wèn)題;鼓勵(lì)學(xué)生積極思考,同時(shí)引入計(jì)算思維的約簡(jiǎn)、嵌入、轉(zhuǎn)化等方法,把復(fù)雜的問(wèn)題轉(zhuǎn)分解易于解決的問(wèn)題并加以實(shí)現(xiàn);做完這一步后,再進(jìn)一步拓展,從問(wèn)題入手,例如:考試成績(jī)的評(píng)級(jí),引入多分支選擇結(jié)構(gòu),著重分析基本結(jié)構(gòu)與多分支結(jié)構(gòu)的差異和適用的范圍,使整個(gè)知識(shí)點(diǎn)鏈自然形成。在教學(xué)過(guò)程中,運(yùn)用問(wèn)題誘發(fā)學(xué)生使用抽象的思想和方法,學(xué)習(xí)用抽象方法去表達(dá)自己的想法并建模,能夠透過(guò)現(xiàn)象看本質(zhì),通過(guò)持續(xù)的訓(xùn)練達(dá)到完全掌握抽象這個(gè)工具。
2.2.2實(shí)踐教學(xué)
理論教學(xué)完成后,學(xué)生能夠聽(tīng)的懂,只能說(shuō)明跟得上教學(xué)進(jìn)度,還不一定用得上,更不要說(shuō)帶的走。要完全地掌握一種思維方法,僅靠課堂理論教學(xué)是遠(yuǎn)遠(yuǎn)不夠的。實(shí)踐教學(xué)是鞏固理論知識(shí)、積累實(shí)踐操作經(jīng)驗(yàn)、完全掌握計(jì)算思維方法的必由之路。在實(shí)踐教學(xué)中,重點(diǎn)訓(xùn)練學(xué)生對(duì)計(jì)算思維方法的運(yùn)用、探索解決實(shí)際問(wèn)題的能力;它是對(duì)課堂教學(xué)強(qiáng)有力的補(bǔ)充,也是對(duì)計(jì)算思維方法更好地吸收和鞏固。為了實(shí)踐效果更好,可以將實(shí)踐過(guò)程細(xì)分為驗(yàn)證實(shí)驗(yàn)、探索性實(shí)驗(yàn)等形式,激化學(xué)生積極參加探索、探索的欲望。在實(shí)踐之前,要布置精心設(shè)計(jì)好的有梯度的實(shí)驗(yàn)題目給學(xué)生作為課后作業(yè),,先讓學(xué)生利用課余時(shí)間獨(dú)立運(yùn)用所學(xué)計(jì)算思維方法完成;然后,帶著獨(dú)有的見(jiàn)解和疑問(wèn)去進(jìn)行實(shí)踐操作,讓計(jì)算機(jī)對(duì)他們的見(jiàn)解進(jìn)行驗(yàn)證和對(duì)疑問(wèn)進(jìn)行解答;最后,教師對(duì)各種情況進(jìn)行以分析、總結(jié),進(jìn)一步深化學(xué)生對(duì)計(jì)算思維思想方法的理解。例如:函數(shù)參數(shù)的調(diào)用的問(wèn)題對(duì)學(xué)生來(lái)說(shuō)不好理解,地址傳遞和值傳遞,給學(xué)生一種直觀感受,還不能形成一套能夠解決此類問(wèn)題的方法,即還沒(méi)有達(dá)到計(jì)算機(jī)思維自動(dòng)化的要求。這時(shí),結(jié)合計(jì)算思維的關(guān)注點(diǎn)分離的方法,可以在實(shí)驗(yàn)教學(xué)時(shí),設(shè)計(jì)不同的實(shí)驗(yàn),既有地址的,又有值傳遞的,還有綜合的,還可以結(jié)合由淺入深的方法,將實(shí)驗(yàn)分為驗(yàn)證型、綜合型和研究型三種類型的實(shí)驗(yàn)。驗(yàn)證型實(shí)驗(yàn)要求學(xué)生能夠使用老師所教的思維方法完成實(shí)驗(yàn)內(nèi)容;設(shè)計(jì)型實(shí)驗(yàn)綜合運(yùn)用多種計(jì)算思維方法來(lái)分析問(wèn)題和解決問(wèn)題;研究型實(shí)驗(yàn)則結(jié)合具體本專業(yè)的特點(diǎn)布置小型項(xiàng)目的課程設(shè)計(jì)題目,由學(xué)生自組小組分工合作,不僅培養(yǎng)了學(xué)生靈活運(yùn)用所學(xué)知識(shí)的能力和團(tuán)隊(duì)合作精神,更能夠培養(yǎng)學(xué)生自主發(fā)現(xiàn)、解決問(wèn)題的能力和積極探索、創(chuàng)新能力,是計(jì)算思維方法進(jìn)一步升華。
3結(jié)束語(yǔ)
將計(jì)算思維培養(yǎng)貫穿到程序設(shè)計(jì)教學(xué)之后,可以更好的對(duì)學(xué)生計(jì)算思維能力的培養(yǎng),培養(yǎng)學(xué)生用計(jì)算思維來(lái)思考、解決問(wèn)題的能力。量變到質(zhì)變需要一個(gè)過(guò)程,這就需要授業(yè)者能夠高瞻遠(yuǎn)矚,能夠從培養(yǎng)學(xué)生計(jì)算思維能力的角度來(lái)看待所教講授的課程,能夠?qū)⒂?jì)算機(jī)思維的方法貫穿于程序設(shè)計(jì)相關(guān)的知識(shí)點(diǎn)的講解中。
總而言之,,計(jì)算思維對(duì)新時(shí)代人才培養(yǎng)提出了新的培養(yǎng)要求,我們需要從更深層次重新認(rèn)識(shí)并審視程序設(shè)計(jì)對(duì)于學(xué)生計(jì)算機(jī)思維培養(yǎng)的重要性,積極建立與之相稱的計(jì)算機(jī)教學(xué)課程體系;另一方面,教師要不斷提高自身業(yè)務(wù)素質(zhì),以計(jì)算思維能力的培養(yǎng)對(duì)學(xué)生素質(zhì)培養(yǎng)的重要性為契機(jī),加強(qiáng)對(duì)計(jì)算思維能力教學(xué)方法的研究。
參考文獻(xiàn):
[1]牟琴,譚良.計(jì)算思維的研究及其進(jìn)展[J].計(jì)算機(jī)科學(xué),2011(3):10-15.
[2]常亮,徐周波,古天龍,等.離散數(shù)學(xué)教學(xué)中的計(jì)算思維培養(yǎng)[J].計(jì)算機(jī)教育,2011(14):90-94.
[3]陳國(guó)良,董榮勝.計(jì)算思維與大學(xué)計(jì)算機(jī)基礎(chǔ)教育[J].中國(guó)大學(xué)教學(xué),2011(1):7-11,32.
[4]SeymourPapert.AnExplorationintheSpaceofMathematicsEducations[J].InternationalJournalofComputersforMathematicalLearning,1996,1(1):95-123.
[5]WingJM.ComputationalThinking[J].CommunicationsofACM,2006(3):33-35.
[6]JeannetteM.Wing.ComputationalThinking:WhatandWhy?[EB/OL].[2010-11-17].http://www.cs.cmu.edu/~CompThink/resources/TheLinkWing.pdf.
[7]董榮勝.計(jì)算機(jī)科學(xué)導(dǎo)論:思想與方法[M].北京:高等教育出版社,2007:114-116.