吳 玲,趙 鵬,孫麗娜
(1.黑龍江大學(xué)計算機(jī)科學(xué)技術(shù)學(xué)院,黑龍江哈爾濱150080)
(2.黑龍江大學(xué)團(tuán)委,黑龍江哈爾濱150080)
程序設(shè)計類課程的主要教學(xué)任務(wù)是學(xué)習(xí)使用一種或多種程序設(shè)計語言,通過介紹用計算機(jī)解題的詳細(xì)過程,訓(xùn)練學(xué)生編寫和調(diào)試程序的基本技能,為其他后續(xù)課程的學(xué)習(xí)打下基礎(chǔ),是計算機(jī)及其相關(guān)專業(yè)學(xué)生最早接觸的專業(yè)基礎(chǔ)課程,也是計算機(jī)及其相關(guān)專業(yè)的核心課程。
但通過課題組多年來教育教學(xué)的實際經(jīng)驗顯示,目前大部分學(xué)生對程序設(shè)計類課程存在普遍的認(rèn)知誤區(qū):①語法規(guī)則復(fù)雜瑣碎、易忘難記,學(xué)習(xí)難度較大;②課程內(nèi)容枯燥乏味,不容易激發(fā)學(xué)生的學(xué)習(xí)熱情;③程序編寫難上加難,久而久之會產(chǎn)生畏難情緒。如何培養(yǎng)學(xué)生正確的程序設(shè)計思維習(xí)慣,提高學(xué)生的計算思維能力,探索有效的實踐教學(xué)模式,是從事程序設(shè)計類課程實踐教學(xué)的老師亟待解決的問題。
什么是計算思維?計算思維有怎樣的作用?計算思維對未來社會將會有怎樣的影響?
計算思維在2006年,由周以真教授在《Computational Thinking》一文中提出。其本質(zhì)概念,最早可以追溯到中國古代的算籌計算,周教授在此基礎(chǔ)上對其進(jìn)行了清晰化和系統(tǒng)化的總結(jié)和整理。
計算思維涵蓋了包括計算機(jī)科學(xué)在內(nèi)的一系列思維活動,使運用計算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計和人類行為的理解,周教授提出以此來探索計算機(jī)學(xué)習(xí)的教育價值。[1]它強(qiáng)調(diào)的是如何求解問題和如何用計算機(jī)實現(xiàn)這個問題,其本質(zhì)是抽象和自動化,其特征是可行和構(gòu)造。2011年,ISTE和CSTA對計算思維進(jìn)行了“操作性定義”,將其闡釋為6個步驟的問題解決過程。
2010年5月,中國高等學(xué)校計算機(jī)基礎(chǔ)教學(xué)指導(dǎo)委員會提出“要將計算思維融入到計算機(jī)基礎(chǔ)課程中傳授,以此培養(yǎng)高素質(zhì)的研究性人才”,而在7月的C9會議上發(fā)表的《九校聯(lián)盟計算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》的核心要點則提出將“培養(yǎng)學(xué)生的‘計算思維’能力”作為計算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)。
計算思維與理論思維、實驗思維儀器并稱為推動人類社會文明進(jìn)步和科技發(fā)展的三大科學(xué)思維,它由計算學(xué)科抽象而來,所以,計算科學(xué)的基礎(chǔ)概念自然也就是計算思維的最好體現(xiàn)。
在CC1991中,將核心概念定義為具有普遍性和持久性的重要思想、原則和方法。按照CC1991的定義,它必須是在數(shù)學(xué)、科學(xué)和工程中定義的概念,在學(xué)科中多次出現(xiàn),在技術(shù)上有高度獨立,在各分支領(lǐng)域及抽象、理論和設(shè)計的各個層面上都有很多應(yīng)用。結(jié)合CC1991概括的12個核心概念,并根據(jù)課題組多年的教育教學(xué)實踐經(jīng)驗,將程序設(shè)計類課程中計算思維的標(biāo)志性概念概括如下:

圖1 程序設(shè)計類課程中計算思維的標(biāo)志性概念
如上圖所示,可知,程序設(shè)計類課程是對學(xué)生進(jìn)行思維訓(xùn)練的一個最直接、最具操作性的平臺。
計算機(jī)科學(xué)體系龐雜,本身并非僅僅是編程那么簡單,其能力分為計算機(jī)使用能力、計算機(jī)系統(tǒng)認(rèn)知能力和計算思維能力。最低要求層面的計算機(jī)使用能力,就是利用計算機(jī)進(jìn)行各種操作以獲取信息或者計算結(jié)果的能力;中層的計算機(jī)系統(tǒng)認(rèn)知能力,是對計算機(jī)系統(tǒng)的理解和應(yīng)用能力,建立在底層使用能力的基礎(chǔ)上,是對計算機(jī)系統(tǒng)全面理解的較高要求;最頂層的計算思維能力,是計算機(jī)科學(xué)與數(shù)學(xué)思維、邏輯思維和工程思維的交集,并不是單獨的、與其他思維方法毫無關(guān)聯(lián)的獨立思維方法。
通過對計算思維特征的分析,我們可以清晰地看到,要想在程序設(shè)計類課程中對學(xué)生進(jìn)行計算思維能力的培養(yǎng),就需要解決任務(wù)抽象和分解、啟發(fā)式推理、知識體系重構(gòu)、思維能力訓(xùn)練等基本問題[2]。
按照ACM/ICPC的解釋,編程解題的思維過程一般可以分解為三個階段,即一觀察、二聯(lián)想、三變換。在這個過程中編程者先通過觀察,對問題進(jìn)行深入的認(rèn)識和理解;再進(jìn)行聯(lián)想,尋找一個切入點將該問題同編程者已有的知識和經(jīng)驗進(jìn)行聯(lián)結(jié);最后通過變換,將一個問題轉(zhuǎn)化為另一個或分解成另幾個容易解決的新問題,以達(dá)到解決原問題的目的。基于此,課題組嘗試對目前程序設(shè)計類實驗課程所采用的問題驅(qū)動、項目分解、啟發(fā)式教學(xué)等方法進(jìn)行完善,對學(xué)生在程序設(shè)計過程中通過“觀察——聯(lián)想——變換”培養(yǎng)和引導(dǎo)其計算思維方法,潛移默化地培養(yǎng)學(xué)生的計算思維能力。
以“C語言程序設(shè)計”課程為例,課程中的許多知識點都為計算思維的培養(yǎng)提供了生動的案例。第一堂實驗課上,實驗教師主要以展示經(jīng)典案例為主,提出一些經(jīng)典問題,結(jié)合生活中的實際應(yīng)用過程,形象直觀地向?qū)W生們展現(xiàn)C語言程序設(shè)計的魅力所在。從分析問題,到抽象成數(shù)學(xué)模型,再進(jìn)行算法設(shè)計,然后變成與調(diào)試,最后生成可應(yīng)用于實際的程序,這個過程是對計算思維最好的詮釋。例如,實驗教師可以從“猜數(shù)游戲”入手,在課堂上用游戲的方式激發(fā)學(xué)生對語法、語義、算法、設(shè)計的學(xué)習(xí)興趣,從游戲引入知識點,用知識點帶動學(xué)生對語法的掌握、對算法的理解、對設(shè)計的熟悉,是學(xué)生加深對計算思維的理解。這種傳授知識、技能和計算思維的一體化教學(xué)模式,摒棄了原有的“重語法、輕方法、不談思維”的錯誤教學(xué)方法,而是使教學(xué)目標(biāo)從“知識和技能”的傳授上升到“思維”的教學(xué),即指導(dǎo)學(xué)生提煉出知識和技能背后所包含的具有普適性的本質(zhì)思想——計算思維。
課題組還嘗試著將“輕游戲”,也就是教育游戲引入到程序設(shè)計類實驗課程中,將枯燥乏味的語法規(guī)則,利用電腦游戲的形式展現(xiàn)在學(xué)生面前,將游戲娛樂融合進(jìn)程序設(shè)計類實驗課程的教學(xué)實踐中,在激發(fā)學(xué)生學(xué)習(xí)興趣和學(xué)習(xí)動機(jī)的同時,使其形成自主學(xué)習(xí)的心理,主動進(jìn)入到知識學(xué)習(xí)的情境當(dāng)中,提高學(xué)習(xí)者對程序設(shè)計語言語法規(guī)則的熟練度,幫助學(xué)習(xí)者內(nèi)化計算思維方法,從而達(dá)到培養(yǎng)學(xué)習(xí)者計算思維能力的目的。
計算思維的形成是一個長期的過程,僅通過一門或幾門課程的學(xué)習(xí)就構(gòu)建起成熟的計算思維方式是不可能的。但“不積跬步,無以成千里”,只要我們能夠在教育理念、教學(xué)方法、實驗教學(xué)模式等方面進(jìn)行相應(yīng)的改革,并對學(xué)生進(jìn)行耐心指導(dǎo)并擔(dān)負(fù)起應(yīng)有的引導(dǎo)職責(zé),就會為他們今后的“計算思維”成長打下堅實的基礎(chǔ)、提供必要的條件。
[1]Wing J M. Computational Thinking [J]. Communication of the ACM,2006,49(3):33-35.
[2]何欽銘,陸漢權(quán),馮博琴.計算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計算思維能力的培養(yǎng)[J].中國大學(xué)教學(xué),2010(9):5-9.