賀清碧
摘要: 培養(yǎng)學(xué)生計算思維能力是計算機(jī)基礎(chǔ)課程教學(xué)中的核心任務(wù)之一,而計算機(jī)程序設(shè)計課程在計算機(jī)能力培養(yǎng)方面發(fā)揮著極其重要的作用。本文就針對于如何培養(yǎng)學(xué)生計算思維能力的問題,在計算機(jī)程序設(shè)計課程的教學(xué)中,從轉(zhuǎn)變教學(xué)觀念、因類施教、任務(wù)驅(qū)動教學(xué)模式和實踐環(huán)節(jié)等方面提出了具體的策略。
Abstract: The cultivation of students' computational thinking ability is one of the core tasks of the teaching of basic computer courses, and computer programming courses in computer skills training play an extremely important role. In this paper for how to cultivate the students' computational thinking ability in the teaching of computer program design course, put forward the concrete strategies from the transformation of teaching idea, class teaching, task driven teaching mode and practice etc.
關(guān)鍵詞: 計算思維;創(chuàng)新思維;任務(wù)驅(qū)動
Key words: computational thinking;creative thinking;task driven
中圖分類號:TP311.1;G642.3 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-4311(2017)02-0249-02
0 引言
計算思維實質(zhì)上就是一種人們對于一個問題的描述、建立模型以及問題的最后求解這一過程的科學(xué)思維能力[1],它已經(jīng)成為人們本質(zhì)的、必須具備的一種最基礎(chǔ)、最普遍、最適用和不可缺少的基礎(chǔ)思維方式和能力,就如同人們閱讀、寫字、做算術(shù)一樣,它將是現(xiàn)代社會中每個公民必需的生存技能和工具。計算機(jī)思維是一種現(xiàn)代科學(xué)思維能力,該思維強(qiáng)調(diào)的是計算過程的具體實現(xiàn)以及如何利用程序語言控制機(jī)器來解決實際問題[2]。周以真教授提出的觀點是:“計算思維是人類實現(xiàn)問題求解的一種途徑,但決非要使人類像計算機(jī)那樣思考。與計算機(jī)相比,人類富于創(chuàng)造力和想象力,使用計算設(shè)備,人們可以運用自己的智慧去解決那些在計算時代之前不敢嘗試的問題”[3]。
因此,可以認(rèn)為計算思維具有抽象和自動化的本質(zhì),是人們必須具備的一種最基礎(chǔ)、最基本的思維方式和能力,在現(xiàn)代信息化社會中起到重大作用。所以在計算機(jī)程序設(shè)計課程體系中,如何引入計算思維理念,如何培養(yǎng)計算思維,有助于提高教育教學(xué)水平,同時促進(jìn)計算思維在國內(nèi)的進(jìn)一步研究與傳播,為計算機(jī)基礎(chǔ)課程教學(xué)改革提供新的思路與視角。
1 計算思維
計算思維是運用計算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計以及人類行為理解等涵蓋計算機(jī)科學(xué)之廣度的一系列思維活動[4]。早在2006年3月,在美國計算機(jī)權(quán)威雜志ACM上,卡內(nèi)基·梅隆大學(xué)計算機(jī)科學(xué)系周以真(Jeannette M.Wing)教授就率先提出了這一概念,隨后在國內(nèi)外掀起了有關(guān)計算思維的廣泛研究與探討。比如,在2007年3月,“微軟-卡內(nèi)基梅隆計算思維中心”成立,是由微軟公司和卡內(nèi)基·梅隆大學(xué)聯(lián)合組建。同時,美國計算機(jī)協(xié)會(ACM)也隨后提出在“計算機(jī)導(dǎo)論”課程中融入“計算思維”的理念[5]。
計算思維常用抽象與分解的方法來處理復(fù)雜的問題或系統(tǒng),通過對問題進(jìn)行合適的表達(dá)以及對問題建模來使問題變得容易解決,其本質(zhì)是抽象和自動化,如同每個人都應(yīng)該具備“讀、寫、算”能力一樣,它是人類改造世界的最基本的思維模式[6]。然而計算思維的抽象是用符號來代替現(xiàn)實問題中的各種變量,它的自動化體現(xiàn)在程序的機(jī)械式執(zhí)行方面。
2 程序設(shè)計課程中培養(yǎng)計算思維能力的策略
2.1 轉(zhuǎn)變教師的教學(xué)觀念
當(dāng)今科學(xué)技術(shù)和社會的加速發(fā)展,給教育不斷提出了很多新的需求,迫使教育工作者們教育觀念必須與時俱進(jìn)。遵照計算機(jī)學(xué)科的“構(gòu)造性”和“能行性”特征,就需要強(qiáng)化基于計算思維能力的計算機(jī)基礎(chǔ)課理論教育。在計算機(jī)程序設(shè)計課程的教學(xué)中,在學(xué)時壓縮和社會高需求下,培養(yǎng)學(xué)生抽象的歸納力和理解力等計算思維能力,比如,如何喚醒學(xué)生潛在的力量,提起他們的興趣、鼓勵其積極性,訓(xùn)練其自我性和主動性,成為我們教學(xué)研究的重點。所以我們必須在教學(xué)觀念上研究如何做到以人為本,針對在較大程度上又是以思維方式的數(shù)學(xué)化為支撐的計算思維能力,如何在教學(xué)的每一個環(huán)節(jié)去思考計算思維能力的培養(yǎng)。比如,在計算機(jī)程序設(shè)計課程的教學(xué)過程中強(qiáng)化計算思維訓(xùn)練的時候,計算思維就其嚴(yán)謹(jǐn)[7]性的特點,要求在描述問題時,必須采用確定的、形式化的、不能有二義性的語言,當(dāng)學(xué)生在編寫程序時使用了錯誤的符號或者語法,這個時候就要耐心引導(dǎo)學(xué)生一起幫助他們?nèi)シ治霭l(fā)現(xiàn)問題存在的錯誤,找出原因并加以修正,這樣可以培養(yǎng)學(xué)生良好的編程習(xí)慣和嚴(yán)謹(jǐn)?shù)目茖W(xué)態(tài)度,強(qiáng)化計算思維的嚴(yán)謹(jǐn)性。計算思維有一個非常明確的目標(biāo)即解決問題。所以在計算機(jī)程序設(shè)計課程的教學(xué)過程中,引導(dǎo)學(xué)生在現(xiàn)有的知識體系上,大膽地提出問題,用抽象化和程序化的形式將問題描述出來,然后用計算機(jī)程序語言來解決,通過這種方式可以培養(yǎng)學(xué)生自己提出問題和解決問題的能力。同時計算思維又是機(jī)械化的[8],在訓(xùn)練學(xué)生所用計算思維的算法來描述問題、解決問題時,要充分利用現(xiàn)代計算機(jī),從而培養(yǎng)學(xué)生掌握使用機(jī)械化思維進(jìn)行信息處理的能力。
2.2 因類施教
大類教學(xué)現(xiàn)在是我國各個高校課程體系改革的發(fā)展方向,根據(jù)各個大類(例如,理學(xué)類、藝體類、工程類和文史類)中學(xué)生的特點和各個專業(yè)的需要,在計算機(jī)程序設(shè)計教學(xué)中,首先在教學(xué)內(nèi)容的選取上加以區(qū)別對待,在各個學(xué)科大類中,都利用計算機(jī)語言編寫程序,用計算機(jī)這個先進(jìn)的智力工具來解決各種問題,突出各個專業(yè)特色和各個學(xué)科與計算機(jī)通用理論體系的交叉性。
其次,對計算機(jī)程序設(shè)計的實驗教學(xué)內(nèi)容,結(jié)合各個學(xué)科特點,設(shè)計一些跨學(xué)科的綜合性實驗。在師資隊伍方面,組成一個跨專業(yè)背景的教學(xué)團(tuán)隊。為了使學(xué)生熟悉理解計算機(jī)學(xué)科的普適思維方式[9],課堂上采用本學(xué)科的案例教學(xué)來培養(yǎng)學(xué)生計算思維的方式,包括對問題進(jìn)行邏輯和科學(xué)的分析,基本概念、基本方法、問題解決的方法(抽象到數(shù)學(xué)層次上去解決)以及編程的思路等。這樣讓學(xué)生感知計算機(jī)在本學(xué)科領(lǐng)域的強(qiáng)大應(yīng)用,加深對本專業(yè)領(lǐng)域中計算機(jī)應(yīng)用的感性認(rèn)識和理解,同時掌握問題解決是所用到的計算方法與思想。
2.3 任務(wù)驅(qū)動教學(xué)模式
在計算機(jī)程序設(shè)計教學(xué)中,采用任務(wù)驅(qū)動教學(xué)模式培養(yǎng)學(xué)生計算思維,就是在提出任務(wù)、實施任務(wù)、完成任務(wù)等各個環(huán)節(jié)中,注重培養(yǎng)學(xué)生如何用計算思維的方法去分析問題、解決問題。其中精心設(shè)計提出任務(wù)是實施任務(wù)驅(qū)動教學(xué)模式的關(guān)鍵。設(shè)計任務(wù)時注意選擇貼近生活和能讓學(xué)生感興趣的內(nèi)容,給學(xué)生提供計算思維的創(chuàng)新空間。注意任務(wù)的典型性,同時兼顧知識的覆蓋面,學(xué)生利用現(xiàn)有的能力能夠?qū)崿F(xiàn),同時要具有一定的代表性,對解決其它相似問題具有指導(dǎo)意義。在任務(wù)的實施過程中,為提高學(xué)生的計算思維能力,教師要起好引導(dǎo)作用,引導(dǎo)學(xué)生利用所學(xué)知識,一步步分析任務(wù),提出問題,充分調(diào)動學(xué)生的好奇心和求知欲,發(fā)揮個人潛能去分析并尋找解決問題的方法,提高自主思維的能力,引導(dǎo)學(xué)生用計算機(jī)編程在計算機(jī)上加以調(diào)試實現(xiàn)。學(xué)生完成一項任務(wù)后,要分組交流、討論一下任務(wù)的情況,作好總結(jié),指導(dǎo)教師及時對完成情況做出正確評價。通過這種任務(wù)驅(qū)動教學(xué)一方面使學(xué)生進(jìn)一步鞏固和提高了所掌握的知識與技能,同時又給學(xué)生創(chuàng)造了一個集思廣益、開拓思路的寬松的學(xué)習(xí)氛圍。通過這種基于計算思維的任務(wù)驅(qū)動教學(xué)模式,可培養(yǎng)學(xué)生發(fā)現(xiàn)問題并解決問題的計算思維能力。
2.4 強(qiáng)化實踐環(huán)節(jié)
計算思維突出的特點是借用計算機(jī)這一強(qiáng)大優(yōu)勢的計算工具來解決問題。因此,面對要求解的問題,人們常常將分析后的問題最后抽象成一個數(shù)學(xué)模型,即抽象到數(shù)學(xué)層次上,想出該問題的計算步驟,用計算機(jī)語言編程,最后在機(jī)器上驗證其可行與否,正確與否。計算機(jī)程序設(shè)計課程中的編程能力又綜合體現(xiàn)出學(xué)生所具有的計算思維和技能化知識,其計算思維的正確性還要通過反復(fù)的上機(jī)實踐加以證明,所以在計算機(jī)程序設(shè)計課程中必須大力強(qiáng)化實踐環(huán)節(jié)。
在實踐環(huán)節(jié)中,為了培養(yǎng)學(xué)生個體思維和操作能力,實驗內(nèi)容分為三種,即驗證性實驗,設(shè)計性實驗和調(diào)試性實驗,另外在配有課后強(qiáng)化計算思維訓(xùn)練的實驗思考。在每次實驗中,教師引導(dǎo)學(xué)生養(yǎng)成良好的計算思維和編程的好習(xí)慣,有意識地訓(xùn)練學(xué)生仔細(xì)閱讀題目,找出問題的關(guān)鍵并抽象為數(shù)學(xué)模型,思考數(shù)學(xué)模型求解的步驟,用所學(xué)的計算機(jī)編程語言將算法編寫一個源程序在計算機(jī)上調(diào)試運行,并能對每個程序的結(jié)果加以分析,引導(dǎo)學(xué)生對已有算法的優(yōu)缺點進(jìn)行思考和分析,并如何進(jìn)行簡化和優(yōu)化,最好能給出一些能優(yōu)化改進(jìn)的算法。鼓勵學(xué)生要有發(fā)散性思維,提倡算法的多樣化。通過以上方法強(qiáng)化實踐教學(xué)環(huán)節(jié),從而培養(yǎng)學(xué)生在問題求解和機(jī)器實現(xiàn)方面的計算思維能力。
3 結(jié)束語
在計算機(jī)程序設(shè)計課程教學(xué)中融入計算思維的理念,在教學(xué)過程中將教學(xué)重心從計算機(jī)語言、語法和規(guī)則等的講解轉(zhuǎn)移到培養(yǎng)計算思維的各個學(xué)科案例和實踐任務(wù)中;以培養(yǎng)計算思維能力為核心,從思維方法的高度培養(yǎng)學(xué)生,培養(yǎng)學(xué)生在考慮問題時,能主動地、自主地、習(xí)慣地采用計算思維來解決各個領(lǐng)域的實際問題,以滿足國家對培養(yǎng)創(chuàng)新型人才的需要。
參考文獻(xiàn):
[1]牟琴,譚良.計算思維的研究及其進(jìn)展[J].計算機(jī)科學(xué),2011(3):10-15.
[2]Wing J M,譚良.Computational Thinking[J].Communication of the ACM,2006,49(3):33-35.
[3]王移芝,魯凌云,周圍.以計算思維為航標(biāo),拓展計算機(jī)基礎(chǔ)課程改革的新思路[J].中國大學(xué)教學(xué),2012(6):39-41.
[4]Jeannette M W. Computational Thinking[J]. Communications of ACM. 2006,49(3):33-35.
[5]陳國良,董榮勝.計算思維與大學(xué)計算機(jī)基礎(chǔ)教育[J].中國大學(xué)教學(xué),2011(1):9.
[6]牟琴,譚良.計算思維的研究及其進(jìn)展[J].計算機(jī)科學(xué),2011(3):10-15.
[7]董榮勝.計算機(jī)科學(xué)導(dǎo)論:思想與方法[M].北京:高等教育出版社,2007:101-102.
[8]陳杰華.程序設(shè)計課程中強(qiáng)化計算思維訓(xùn)練的實踐探索[J]. 電化教育研究,2009(10):84-85.
[9]朱鳴華,趙銘偉,趙晶,等.計算機(jī)基礎(chǔ)教學(xué)中計算思維能力培養(yǎng)的探討[J].中國大學(xué)教學(xué),2012(3):33-35.