摘要:本文以解決“計(jì)算問題”作為計(jì)算思維的核心,結(jié)合計(jì)算機(jī)科學(xué)等相關(guān)學(xué)科的教學(xué)實(shí)踐,提出了一個(gè)解決計(jì)算問題的過程框架,總結(jié)了人們?cè)诮鉀Q計(jì)算問題的過程中經(jīng)歷的重要思維階段和行動(dòng)環(huán)節(jié)。該過程框架有助于推動(dòng)對(duì)計(jì)算思維內(nèi)涵的深入研究,并可以成為教師開展計(jì)算思維教學(xué)的教學(xué)模型。
關(guān)鍵詞:計(jì)算思維;問題解決;計(jì)算問題
中圖分類號(hào):G434 文獻(xiàn)標(biāo)識(shí)碼:A 論文編號(hào):1674-2117(2024)18-0090-05
計(jì)算機(jī)科學(xué)和信息技術(shù)的發(fā)展影響了人們對(duì)計(jì)算思維的理解,以及對(duì)計(jì)算思維的教育理念和教學(xué)方式的理解。本文基于“計(jì)算思維的核心是解決計(jì)算問題”這一本質(zhì)性認(rèn)識(shí),從計(jì)算理論和思維理論出發(fā),在對(duì)與計(jì)算思維緊密相關(guān)的若干概念的辨析的基礎(chǔ)上,結(jié)合相關(guān)教學(xué)實(shí)踐,提出了計(jì)算問題解決的過程模型,討論了該過程中影響實(shí)踐的重要因素,以期為計(jì)算思維教育實(shí)踐者和課程設(shè)計(jì)者提供實(shí)踐思路。
計(jì)算思維概念提出的意義和價(jià)值
盡管計(jì)算思維的概念是由周以真(Jeannette Wing)教授于2006年正式提出,但是周教授也指出這個(gè)概念的首創(chuàng)者是MIT的認(rèn)知科學(xué)家西摩爾·派普特(Seymour Papert)[1],西摩爾·派普特于20世紀(jì)60年代發(fā)現(xiàn)LOGO語(yǔ)言編程中的問題解決思維對(duì)中小學(xué)生認(rèn)知發(fā)展的影響。周教授的貢獻(xiàn)在于用“計(jì)算思維”概念標(biāo)識(shí)出計(jì)算機(jī)時(shí)代一種獨(dú)特的思維過程,闡述了這種思維過程的普遍存在性,論證了在計(jì)算機(jī)無(wú)處不在的時(shí)代各行各業(yè)與計(jì)算機(jī)打交道的人都需要具備這種思維。
1.計(jì)算機(jī)學(xué)科的教育歷程回顧
早期,學(xué)生對(duì)計(jì)算機(jī)學(xué)科的學(xué)習(xí)是從接受各種“計(jì)算知識(shí)”開始的[2],其中編程語(yǔ)言作為人與計(jì)算機(jī)“交流”的工具,順理成章地占據(jù)了主要地位。由于算法設(shè)計(jì)是編程的核心,所以算法研究一直是計(jì)算機(jī)科學(xué)領(lǐng)域的重中之重,有關(guān)算法的知識(shí)也自然而然成為教學(xué)的重點(diǎn)。將學(xué)習(xí)計(jì)算思維等同為掌握“算法思維”,這種認(rèn)識(shí)對(duì)現(xiàn)在的計(jì)算思維培養(yǎng)和計(jì)算機(jī)科學(xué)教學(xué)仍存在深刻的影響。[3]
自20世紀(jì)80年代起,隨著計(jì)算機(jī)軟件的崛起和普及,人們關(guān)注的焦點(diǎn)轉(zhuǎn)向了計(jì)算機(jī)軟件的應(yīng)用領(lǐng)域,對(duì)信息時(shí)代人才的計(jì)算機(jī)素養(yǎng)的教育轉(zhuǎn)變?yōu)閷?duì)計(jì)算工具尤其是計(jì)算機(jī)軟件的學(xué)習(xí)。受此影響,我國(guó)的中小學(xué)計(jì)算機(jī)教育的主體內(nèi)容也由編程語(yǔ)言學(xué)習(xí)(指揮計(jì)算機(jī))轉(zhuǎn)向了應(yīng)用軟件(以計(jì)算機(jī)為工具)的學(xué)習(xí),典型的學(xué)習(xí)內(nèi)容包括文字處理軟件、幻燈片制作軟件、畫圖修圖軟件等。[4]英、澳等國(guó)也將“運(yùn)用技術(shù)工具處理信息資源”等內(nèi)容寫入信息與通信技術(shù)的課程標(biāo)準(zhǔn)。[5]然而這一“唯工具論”的教學(xué)理念很快就遇到了問題。由于計(jì)算機(jī)軟件的飛速發(fā)展和頻繁更新,教學(xué)內(nèi)容迭代的速度明顯跟不上軟件產(chǎn)品更新?lián)Q代的速度,這種“職業(yè)技能培訓(xùn)”式的教學(xué)目標(biāo)設(shè)定,非但不能增進(jìn)學(xué)生對(duì)計(jì)算機(jī)技術(shù)發(fā)展的認(rèn)識(shí),反而會(huì)讓學(xué)生陷入“為學(xué)工具而學(xué)工具”的誤區(qū)。[6]但是從計(jì)算機(jī)科學(xué)的角度講,正是由于計(jì)算機(jī)軟件的大力發(fā)展,系統(tǒng)化思維才逐漸受到重視,系統(tǒng)、模型、架構(gòu)等概念成了學(xué)科發(fā)展的基石,這對(duì)此后計(jì)算機(jī)科學(xué)的發(fā)展產(chǎn)生了深遠(yuǎn)的影響,也為人們對(duì)計(jì)算思維的理解帶來(lái)了新的啟發(fā)。
2.計(jì)算思維的“問題解決”特性
在歷經(jīng)了“計(jì)算知識(shí)接受”和“認(rèn)知工具應(yīng)用”兩個(gè)階段后[7],人們逐漸發(fā)現(xiàn)計(jì)算思維的本質(zhì)是利用計(jì)算機(jī)這個(gè)工具最大化地解決問題。從思維理論上看,這一趨勢(shì)也逐漸與思維的“解決問題”這一根本特性相吻合。[8]因此,了解與掌握計(jì)算機(jī)系統(tǒng)的工作原理,并利用計(jì)算機(jī)科學(xué)和信息技術(shù)領(lǐng)域的思想方法解決問題,成為計(jì)算思維教育的重要特征和價(jià)值導(dǎo)向[9],計(jì)算思維的教育也步入了“普世價(jià)值推廣”階段。[10]2011年,美國(guó)國(guó)際教育技術(shù)協(xié)會(huì)(ISTE)和計(jì)算機(jī)科學(xué)教師協(xié)會(huì)(CSTA)將計(jì)算思維定義為借助計(jì)算機(jī)或相關(guān)工具解決問題的過程,并強(qiáng)調(diào)要將這種思維方式應(yīng)用于寬泛的問題解決中。[11]在我國(guó)《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)》中,計(jì)算思維被定義為:個(gè)體在運(yùn)用計(jì)算機(jī)科學(xué)領(lǐng)域的思想方法形成問題解決方案的過程中產(chǎn)生的一系列思維活動(dòng)。
問題解決能力與計(jì)算思維的掛鉤,已成為研究領(lǐng)域和教學(xué)實(shí)踐領(lǐng)域的共識(shí),圍繞“如何培養(yǎng)問題解決能力”的新一輪探索已然展開。計(jì)算機(jī)科學(xué)家威廉·沃爾夫(William Allan Wulf)認(rèn)為利用計(jì)算思維解決問題主要依賴于過程的處理[12],因此算法的學(xué)習(xí)是培養(yǎng)計(jì)算思維的關(guān)鍵途徑。美國(guó)數(shù)學(xué)家、計(jì)算機(jī)科學(xué)家和教育家戴維·穆爾桑德(David Moursund)等人談到程序思維和計(jì)算思維密切相關(guān),因此開發(fā)、表征、測(cè)試、調(diào)試,以及各自程序性的指令都是問題解決的重要方法。[13]哥倫比亞大學(xué)教授阿霍提出,構(gòu)造問題解決方案的關(guān)鍵在于其所依賴的計(jì)算模型,因此尋找適當(dāng)?shù)挠?jì)算模型用以界定問題并得出解決方案是培養(yǎng)計(jì)算思維的重要途徑之一。[14]計(jì)算思維的提出者周以真指出“抽象與自動(dòng)化”是計(jì)算思維的核心,并建議在計(jì)算思維的培養(yǎng)過程中應(yīng)注重與工程學(xué)之間的聯(lián)系。[15-16]計(jì)算機(jī)科學(xué)家羅伯特·康斯特勃(Robert Constable)則認(rèn)為,計(jì)算思維不是一套靜態(tài)的、有限的技能和思維過程,而是一個(gè)開放的、不斷增長(zhǎng)的“概念清單(Growing List of Concepts)”[17],這也說(shuō)明了計(jì)算思維的內(nèi)涵以及培養(yǎng)方式會(huì)隨著科學(xué)技術(shù)的發(fā)展而不斷地更新。
從上面的綜述中可以看出,人們對(duì)計(jì)算思維以及利用計(jì)算思維解決問題的方式有著各種各樣的理解,計(jì)算思維的培養(yǎng)理念和方式也不盡相同。本文嘗試將相關(guān)的零散觀點(diǎn)進(jìn)行組織整合,形成一個(gè)相對(duì)完整的計(jì)算問題解決過程框架,以便更好地理解和進(jìn)一步研究計(jì)算思維及其內(nèi)涵。
計(jì)算問題解決過程
在計(jì)算理論中,“計(jì)算問題”指的是能夠在計(jì)算機(jī)上以合適的數(shù)學(xué)表達(dá)方式表示,并存在有效的解決算法的問題。[18]因此,從問題解決的角度來(lái)看,具備計(jì)算思維的學(xué)生,在遇到生活實(shí)際問題時(shí),首先要基于對(duì)問題的理解與分析,判斷其是不是一個(gè)計(jì)算問題,或者能否轉(zhuǎn)化為一個(gè)計(jì)算問題。在解決計(jì)算問題時(shí),學(xué)生會(huì)經(jīng)歷生成計(jì)算策略、構(gòu)建計(jì)算模型、設(shè)計(jì)算法,以及借助相應(yīng)計(jì)算系統(tǒng)實(shí)現(xiàn)計(jì)算作品等過程。
當(dāng)學(xué)生對(duì)計(jì)算問題有了充分的理解后,就需要先概括描述問題解決的思路和步驟,包括嘗試將其分解為易于控制和實(shí)現(xiàn)的子問題,這種有一定的抽象度的解題步驟稱之為“計(jì)算策略”。[19]計(jì)算策略是學(xué)生面對(duì)計(jì)算問題時(shí)產(chǎn)生的初步解決思路,有時(shí)還需要借助其他學(xué)科理論知識(shí)、生活常識(shí)或經(jīng)驗(yàn),以及相關(guān)數(shù)據(jù)分析結(jié)果,為問題的定義和分解提供思路。計(jì)算策略的選擇反映了學(xué)生對(duì)計(jì)算問題的認(rèn)識(shí)與理解程度,更影響著后續(xù)計(jì)算模型的構(gòu)建與算法的設(shè)計(jì)。
抽象是計(jì)算思維的本質(zhì)之一,形式化又是計(jì)算思維的重要表達(dá)方式[20],而“模型”正是對(duì)某一類別問題特定的形式化表達(dá)。因此,在確定了問題解決目標(biāo)并形成了初步的計(jì)算策略后,學(xué)生就應(yīng)當(dāng)基于對(duì)問題的理解構(gòu)建相應(yīng)的計(jì)算模型?!坝?jì)算模型”指的是能夠?qū)λ惴ɑ虺绦蜻M(jìn)行規(guī)約和分析的框架,包含四個(gè)功能,即描述各功能模塊如何相互連接、判定有效的算法和程序、定義給定輸入的有效執(zhí)行序列,以及能夠計(jì)算每一模塊的執(zhí)行成本。[21]
概括能力是學(xué)科能力和思維能力的基礎(chǔ)。[22]構(gòu)建計(jì)算模型的過程正是學(xué)生抽象與概括計(jì)算問題特征的必要過程,也是對(duì)計(jì)算策略實(shí)施的模塊化、形式化表達(dá)的過程。由于計(jì)算模型是一個(gè)由相互聯(lián)系、相互作用的元素組成的集合,學(xué)生在抽象建模的過程中應(yīng)以系統(tǒng)化的方式對(duì)其進(jìn)行思考和設(shè)計(jì)。按照從整體到局部的邏輯,學(xué)生應(yīng)先忽略底層交互細(xì)節(jié),從整體上理解模型的行為和特征,識(shí)別模型的構(gòu)成元素、行為、層次關(guān)系等,而后進(jìn)行模塊化或?qū)哟位O(shè)計(jì)。按照從內(nèi)到外的角度,在計(jì)算模型的構(gòu)建過程中,應(yīng)先定義其邊界、范圍和大小,并控制復(fù)雜度,然后理解模型與外部環(huán)境的相互作用,識(shí)別模型外的關(guān)鍵影響因素,調(diào)整和優(yōu)化模型的設(shè)計(jì)。[23]
自動(dòng)化是計(jì)算思維的另一個(gè)本質(zhì)。自動(dòng)化是計(jì)算機(jī)最根本的特性,它離不開算法的支持。因此,在完成模型的建構(gòu)之后,學(xué)生就要針對(duì)模型中的每個(gè)模塊進(jìn)行算法設(shè)計(jì),而計(jì)算概念是算法設(shè)計(jì)的基礎(chǔ),在Brennan和Resnick提出的計(jì)算思維三維框架中,列舉了七個(gè)廣泛使用的計(jì)算概念,即序列、循環(huán)、事件、并行、條件、運(yùn)算和數(shù)據(jù)。[24]在學(xué)習(xí)和實(shí)踐的過程中,學(xué)生還會(huì)遇到更多專業(yè)、復(fù)雜的計(jì)算概念。學(xué)生在充分理解了算法的應(yīng)用情境后,便可結(jié)合適用的計(jì)算概念,使用合適的方式(如流程圖、偽代碼等)對(duì)算法進(jìn)行設(shè)計(jì)和表達(dá),并且能夠基于經(jīng)驗(yàn)或數(shù)學(xué)理論分析效率,對(duì)算法本身及計(jì)算模型進(jìn)行優(yōu)化。
思維具有生產(chǎn)性,人們會(huì)為解決問題制作思想產(chǎn)品。[25]學(xué)生在完成算法設(shè)計(jì)后,就需要借助計(jì)算系統(tǒng)加以驗(yàn)證,以迭代的方式實(shí)現(xiàn)并完善解決方案,創(chuàng)造計(jì)算作品。計(jì)算系統(tǒng)在廣義上指的是任何可以進(jìn)行計(jì)算和信息處理的設(shè)備,在這里筆者將計(jì)算系統(tǒng)定義為解決計(jì)算問題所需要的平臺(tái),它可以是某種編程環(huán)境,也可以是某個(gè)應(yīng)用程序,甚至可以是一臺(tái)具體的計(jì)算機(jī)。而在創(chuàng)造計(jì)算作品的過程中,學(xué)生還需從功能性、可靠性、易用性等角度對(duì)計(jì)算作品進(jìn)行分析和評(píng)估,并歷經(jīng)多次的測(cè)試調(diào)試和性能優(yōu)化,甚至還需收集他人(用戶)對(duì)作品的評(píng)價(jià)與反饋,才能保證計(jì)算問題被全面、有效地解決。[26]
圖1所示反映了計(jì)算問題解決過程中學(xué)生可能經(jīng)歷的重要實(shí)踐活動(dòng)。[27]如果說(shuō)在生成計(jì)算策略時(shí)需要的是問題界定與問題分解能力,那么在構(gòu)建計(jì)算模型的過程中,需要的則是抽象、概括和系統(tǒng)化思維能力。在算法設(shè)計(jì)與實(shí)現(xiàn)階段需要對(duì)計(jì)算概念有充分的了解以便規(guī)劃自動(dòng)化過程。軟件的調(diào)試、測(cè)試、迭代開發(fā)則體現(xiàn)了工程思維和系統(tǒng)化思維。
案例分析
下面,筆者結(jié)合實(shí)際的教學(xué)案例,詳細(xì)描述如何引導(dǎo)學(xué)生在遇到具體問題時(shí),有意識(shí)地思考與實(shí)施上述計(jì)算問題解決過程框架的每一步驟,在最終完成問題解決的同時(shí),習(xí)得并強(qiáng)化相關(guān)的計(jì)算思維能力。本課使用某圖形化編程平臺(tái)作為教學(xué)工具,面向?qū)ο鬄樾W(xué)三至四年級(jí)的學(xué)生。
在本課中,學(xué)生的任務(wù)是制作一個(gè)抽獎(jiǎng)大轉(zhuǎn)盤程序。在觀看教師對(duì)已完成轉(zhuǎn)盤游戲的效果演示后,學(xué)生很容易發(fā)現(xiàn)該程序的大致運(yùn)行機(jī)制,即在有抽獎(jiǎng)權(quán)限的玩家點(diǎn)擊按鈕后,轉(zhuǎn)盤開始轉(zhuǎn)動(dòng),一段時(shí)間后轉(zhuǎn)盤停下,根據(jù)指針位置提示所得獎(jiǎng)勵(lì)。這樣,學(xué)生在腦海中便可產(chǎn)生初步的計(jì)算策略,這時(shí)教師要求學(xué)生把初步的計(jì)算策略畫在紙上,幫助學(xué)生明確任務(wù)完成步驟的第一級(jí)抽象,如圖2(a)所示。
然后教師引導(dǎo)學(xué)生依序?qū)Τ绦蛑械拿恳粋€(gè)角色的行為進(jìn)行完整分析。“按鈕”是啟動(dòng)轉(zhuǎn)盤的開關(guān),當(dāng)它被點(diǎn)擊后,便會(huì)有一個(gè)被按下的動(dòng)畫效果,之后觸發(fā)“轉(zhuǎn)盤”轉(zhuǎn)動(dòng),“轉(zhuǎn)盤”在持續(xù)轉(zhuǎn)動(dòng)一段時(shí)間后,會(huì)在隨機(jī)位置停下,最后根據(jù)“指針”所指位置,提示玩家所中獎(jiǎng)品。根據(jù)上面對(duì)“按鈕”“轉(zhuǎn)盤”和“指針”三個(gè)角色功能和交互關(guān)系的梳理,學(xué)生便可構(gòu)建出如圖2(b)所示的計(jì)算模型。
接著,教師便可引導(dǎo)學(xué)生圍繞計(jì)算模型涉及的相關(guān)計(jì)算概念,復(fù)習(xí)已知計(jì)算概念,學(xué)習(xí)新的計(jì)算概念。在掌握了必要的計(jì)算概念后,學(xué)生就能以角色為對(duì)象,在編程平臺(tái)上進(jìn)行編程,進(jìn)行細(xì)節(jié)化的算法設(shè)計(jì)和實(shí)現(xiàn),具體如圖2(c)和圖2(d)所示。
總結(jié)
本文圍繞“計(jì)算思維的核心是解決計(jì)算問題”這一中心思想,并使用計(jì)算理論中的部分概念,構(gòu)建了“界定計(jì)算問題—形成計(jì)算策略—構(gòu)建計(jì)算模型—設(shè)計(jì)算法—借助計(jì)算系統(tǒng)實(shí)現(xiàn)計(jì)算作品—解決計(jì)算問題”的計(jì)算問題解決過程框架。
對(duì)于該框架在教學(xué)實(shí)踐中的落地,教師和學(xué)者可以從單元設(shè)計(jì)、教學(xué)設(shè)計(jì)和教學(xué)評(píng)價(jià)方面深入探索。在單元設(shè)計(jì)方面,教師可以設(shè)置各單元的重點(diǎn)計(jì)算思維實(shí)踐,梳理實(shí)踐能力之間的進(jìn)階關(guān)聯(lián),并將它與計(jì)算思維概念結(jié)合編寫進(jìn)階的能力目標(biāo)。在教學(xué)設(shè)計(jì)方面,教師可以圍繞圖1中不同階段可能經(jīng)歷的重要計(jì)算實(shí)踐設(shè)計(jì)教學(xué)活動(dòng),構(gòu)建思維發(fā)生發(fā)展的空間。在教學(xué)評(píng)價(jià)方面,該框架可以作為計(jì)算思維表現(xiàn)性評(píng)價(jià)的參考依據(jù)。但該框架目前僅圍繞計(jì)算理論及計(jì)算機(jī)科學(xué)等方面展開,如何將其應(yīng)用于數(shù)學(xué)、物理等自然科學(xué)的教學(xué)與研究,甚至向社會(huì)科學(xué)方向推廣,仍有待進(jìn)一步研究。
參考文獻(xiàn):
[1]Wing,J.Computational Thinking[J].Communications of the ACM.2006,49(03):33-36.
[2][6][7][10]李鋒,王吉慶.計(jì)算思維教育:從“為計(jì)算”到“用計(jì)算”[J].中國(guó)電化教育,2015(10):6-10+21.
[3]張進(jìn)寶.計(jì)算思維教育:概念演變與面臨的挑戰(zhàn)[J].現(xiàn)代遠(yuǎn)程教育研究,2019,31(06):89-101.
[4][20]王榮良.中小學(xué)計(jì)算思維教育實(shí)踐[M].上海:上海科技教育出版社,2019.
[5]劉敏娜,張倩葦.國(guó)外計(jì)算思維教育研究進(jìn)展[J].開放教育研究,2018,24(01):41-53.
[8][25]林崇德.我的心理學(xué)觀——聚焦思維結(jié)構(gòu)的智力理論[M].北京:商務(wù)印書館,2008.
[9]李鋒.中小學(xué)計(jì)算思維教育:STEM課程的視角[J].中國(guó)遠(yuǎn)程教育,2018(02):44-49.
[11]ISTE,CSTA.Operational Definition of Computational Thinking for K-12 Education[DB/OL].[2012-04-15].https://cdn.iste.org/www-root/Computational_Thinking_Operational_Definition_ISTE.pdf.
[12][13][15][17]National Research Council.Report of a Workshop on the Scope and Nature of Computational Thinking[R].Washing(D.C.):The National Academies Press,2010.
[14]Aho,V.Computation and Computational Thinking[J].The Computer Journal,2012,55(07):832-835.
[16]Wing,J.Computational Thinking and Thinking about Computing [J].Philosophical Transactions of the Royal Society,2008,366(1881):3717-3725.
[18]Sipser,M. Introduction to the Theory of Computation (3rd ed.)[M].Boston, MA: Cengage Learning,2013.
[19][21]Bilardi,G., & Pietracaprina,A. Models of Computation, Theoretical[M].Boston, MA: Springer,2011.
[22]林崇德.從智力到學(xué)科能力[J].課程·教材·教法,2015,35(01):9-20.
[23][26][27]李澤,李偉,毛頓,等.計(jì)算思維實(shí)踐框架研究[J].中小學(xué)信息技術(shù)教育,2021(09):7-10.
[24]Brennan K.,Resnick M.New frameworks for studying and assessing the development of computational thinking[J].American educational research association,2012(01):25.
作者簡(jiǎn)介:李澤,深圳點(diǎn)貓科技有限公司高級(jí)工程師;毛頓,深圳點(diǎn)貓科技有限公司高級(jí)工程師;夏立,深圳職業(yè)技術(shù)大學(xué)商務(wù)外語(yǔ)學(xué)院講師。
本文為廣東省教育教學(xué)成果特等獎(jiǎng)“八微驅(qū)動(dòng)、集群推進(jìn):愛加(AI+)篤行創(chuàng)客教育探索與實(shí)踐”的階段性研究成果;受深圳職業(yè)技術(shù)學(xué)院校級(jí)科研啟動(dòng)項(xiàng)目(6022312003S)資助。