王 凡 王 偉 張 鑫
(1.東北師范大學(xué) 信息科學(xué)與技術(shù)學(xué)院,吉林 長春 130117;2.沈陽市渾南區(qū)第一小學(xué),遼寧 沈陽 110623)
人工智能時(shí)代的到來,促使社會(huì)各領(lǐng)域向智能化轉(zhuǎn)變。計(jì)算思維作為人工智能時(shí)代處理、分析復(fù)雜問題的重要思維能力,得到了全世界的重視與關(guān)注。諸多學(xué)者對計(jì)算思維的內(nèi)涵展開了深入探究,然而迄今為止,對于計(jì)算思維的認(rèn)識并未達(dá)成共識。國內(nèi)對于計(jì)算思維概念最權(quán)威的認(rèn)定來源于2017年高中信息技術(shù)新課標(biāo)中對計(jì)算思維的定義。計(jì)算思維是指個(gè)人在計(jì)算機(jī)技術(shù)領(lǐng)域和形成問題解決方案過程中的一系列思維活動(dòng)[1],包括問題界定、抽象特征、建立模型、優(yōu)選問題解決方案、遷移應(yīng)用等內(nèi)容[2]。國際教育技術(shù)學(xué)會(huì)(ISTE)也曾指出:計(jì)算思維的核心能力是CPS(Computational Problem-solving)能力,也就是通過開發(fā)計(jì)算機(jī)程序來解決問題的一種能力[3]。綜合國內(nèi)外對計(jì)算思維的認(rèn)識,可將計(jì)算思維的培養(yǎng)要點(diǎn)歸結(jié)為兩方面:一是基礎(chǔ)算法程序知識的掌握;二是利用已有編程算法知識完成問題解決的過程,且在解決問題的過程中要經(jīng)歷抽象、分解、算法、評估、概括等計(jì)算思維發(fā)展的要點(diǎn)內(nèi)容。
近年來,培養(yǎng)中小學(xué)學(xué)生計(jì)算思維的方式日益增多,但多以算法程序設(shè)計(jì)、STEAM 和信息技術(shù)課程等為載體,其中程序設(shè)計(jì)及相關(guān)應(yīng)用的教學(xué)是計(jì)算思維培養(yǎng)的主要方式[4]。但對于中小學(xué)學(xué)生來說,復(fù)雜的程序設(shè)計(jì)晦澀難懂、枯燥無味,很難調(diào)動(dòng)學(xué)生的學(xué)習(xí)興趣,同時(shí)難以促使學(xué)生利用已知的計(jì)算知識展開問題解決的探索。圖形化編程語言的出現(xiàn),打破了傳統(tǒng)編程語言抽象、復(fù)雜、專業(yè)性高的局限,將復(fù)雜的編程語言封裝為簡易的圖形,通過豐富的色彩和形狀各異的積木塊表示不同的算法功能。學(xué)生可通過“卡合”積木的方式體驗(yàn)學(xué)習(xí)相關(guān)編程知識,在試誤中不斷探索,逐步解決問題。
雖然圖形化編程易入門、易掌握,但依然具備程序設(shè)計(jì)的算法屬性、抽象屬性、自動(dòng)化屬性,對學(xué)習(xí)者的邏輯和推理能力要求并不低[5]。同時(shí)圖形化編程中開放的編程環(huán)境為學(xué)生的自主探索、創(chuàng)意表達(dá)提供了資源與空間支持。因此,圖形化編程作為低齡兒童計(jì)算思維發(fā)展的關(guān)鍵工具,得到了廣泛關(guān)注,也逐漸成為當(dāng)前中小學(xué)計(jì)算思維培養(yǎng)的主流方式。然而如何科學(xué)地應(yīng)用圖形化編程助力學(xué)生計(jì)算思維的發(fā)展尚處于探索階段,需要廣大學(xué)者深入探討圖形化編程工具與計(jì)算思維的關(guān)系,思考設(shè)計(jì)指向?qū)W生計(jì)算思維培養(yǎng)的教學(xué)活動(dòng),以合理的利用圖形化編程促進(jìn)學(xué)生計(jì)算思維的進(jìn)步與發(fā)展。
計(jì)算思維作為人們運(yùn)用計(jì)算機(jī)科學(xué)領(lǐng)域思想方法解決問題的一系列思維活動(dòng),不僅包括算法、編程等概念和技能層面的知識內(nèi)容,還包括應(yīng)用計(jì)算機(jī)解決問題過程中的學(xué)習(xí)收獲[6]。美國MIT 媒體實(shí)驗(yàn)室雷斯尼克教授曾明確指出計(jì)算思維并不能單獨(dú)培養(yǎng),而是以依附于知識系統(tǒng)的形態(tài)存在于課程之中的[7],不同課程體系對計(jì)算思維的培養(yǎng)要求不同。圖形化編程作為兒童計(jì)算思維培養(yǎng)的重要載體,不僅具有基礎(chǔ)的算法邏輯,還能夠讓學(xué)生在拼接積木學(xué)習(xí)過程中掌握基礎(chǔ)的編程與算法知識。同時(shí)圖形化編程工具為學(xué)生提供了自由開放的編程環(huán)境,讓在試誤中不斷迭代完成編程作品的制作,其特殊的知識概念與可視化的編程界面對計(jì)算思維培養(yǎng)提出了新的要求,也豐富了計(jì)算思維的價(jià)值內(nèi)涵。因此,結(jié)合圖形化編程工具特點(diǎn)及對計(jì)算思維的理解,將圖形化編程中計(jì)算思維的價(jià)值內(nèi)涵歸結(jié)為以下4 點(diǎn):
圖形化編程中指向的計(jì)算思維并不是單一技能的進(jìn)步,它包括知識經(jīng)驗(yàn)、思路方法、情感認(rèn)知等多方面因素的綜合內(nèi)容,是在實(shí)踐過程中積極參與,不斷積累并動(dòng)態(tài)更新的思路與方法,是在具象基礎(chǔ)上抽象構(gòu)建思維模型的拓展與應(yīng)用,是問題分析能力、抽象化能力、概括能力、算法思維能力、結(jié)構(gòu)化問題分解能力等多種思維能力的有機(jī)統(tǒng)一。
真正的計(jì)算思維發(fā)展應(yīng)該以創(chuàng)造為導(dǎo)向[8]。圖形化編程中指向的計(jì)算思維核心是一種創(chuàng)造性解決問題的能力,學(xué)生能夠從教學(xué)情境中抽離出可計(jì)算問題,并將復(fù)雜問題分解、細(xì)化成問題解決方案,并能夠使用圖形化編程工具將方案程序化、自動(dòng)化,最終解決問題。這個(gè)過程學(xué)生不僅僅是生搬硬套原有的問題解決方法,而是在已有經(jīng)驗(yàn)上不斷創(chuàng)造完善的新思路與新方法。
圖形化編程中指向的計(jì)算思維并不是一蹴而就的,是學(xué)生在不斷調(diào)試、反思、優(yōu)化編程作品的過程中慢慢形成的一般思維能力。兒童在利用編程工具解決問題時(shí),往往需要多次調(diào)試與修改,在修補(bǔ)的過程中產(chǎn)生認(rèn)知沖突,進(jìn)而開始反思、嘗試優(yōu)化作品。在整個(gè)反思并優(yōu)化的過程中完成認(rèn)知層次的進(jìn)階,最終獲得思維上的進(jìn)步與發(fā)展。
圖形化編程中計(jì)算思維最終的外顯成果是以問題解決為背景的編程作品,但思維能力發(fā)展并不止步于問題解決,而是指向遷移應(yīng)用能力。學(xué)生在完成圖形化編程作品后能回顧解決問題的過程,形成算法經(jīng)驗(yàn),并且能在相似的編程問題中遷移應(yīng)用或改造升級算法從而解決更高難度問題,才是學(xué)生思維能力的真正進(jìn)步與發(fā)展。
圖形化編程是通過積木塊拼接進(jìn)行編程學(xué)習(xí)的代表,它可以讓學(xué)生創(chuàng)建互動(dòng)的故事和游戲。一般由積木代碼區(qū)、積木搭建區(qū)、舞臺、角色區(qū)組成,如圖1所示。學(xué)生可以在角色庫中選擇角色添加到作品中,之后在積木代碼區(qū)選擇相應(yīng)積木塊,拖拽到搭建區(qū)為該角色搭建相應(yīng)的代碼,并通過舞臺運(yùn)行查看是否能實(shí)現(xiàn)想要的效果。若演示效果與期待效果有偏差可以再次修改所搭建的積木代碼,直到實(shí)現(xiàn)期待效果為止。

圖1 編程平臺頁面
學(xué)生通過不同類積木塊的拼搭,可以實(shí)現(xiàn)角色移動(dòng)、跳躍、舞蹈、唱歌等效果。孩子像搭建積木一樣就可以輕松完成動(dòng)畫、游戲等設(shè)計(jì)。在此過程中,學(xué)生不用考慮復(fù)雜的編程語言,而將更多的時(shí)間放在思考如何通過編程解決問題上。學(xué)生利用圖形化編程工具完成作品創(chuàng)作的過程即為實(shí)現(xiàn)問題解決的過程,在此過程中圖形化編程工具本身的特點(diǎn)也為學(xué)生解決問題提供思路方法支持,為計(jì)算思維的發(fā)展提供了基礎(chǔ)。
圖形化編程可視化的舞臺區(qū)設(shè)置,讓學(xué)生在完成創(chuàng)意作品的過程中,將復(fù)雜的故事內(nèi)容簡化為舞臺上的背景與角色設(shè)置,以可視化的背景、角色表征所要解決的核心問題,讓學(xué)生在不知不覺中養(yǎng)成抽象化思考與具象化表征的能力。
學(xué)生要完成圖形化編程創(chuàng)作時(shí)首先要確定主要的角色,根據(jù)每個(gè)角色所要完成的動(dòng)作內(nèi)容將整個(gè)作品還原。而這種分角色設(shè)置代碼的過程在無形中讓學(xué)生將復(fù)雜的問題分解為若干個(gè)小問題,鍛煉其結(jié)構(gòu)化的問題分解能力。
圖形化編程將復(fù)雜程序代碼內(nèi)容封裝為具有一定功能的積木塊,學(xué)生通過積木塊搭建即可實(shí)現(xiàn)角色相應(yīng)的動(dòng)作、效果變化。在此過程中,學(xué)生不需要考慮復(fù)雜的代碼編寫等問題,而將精力放在如何通過積木塊搭建實(shí)現(xiàn)問題解決,并通過積木塊的嵌套、順序卡合等方式展示問題解決方案。
在圖形化編程創(chuàng)作過程中,積木是否能夠自動(dòng)“卡合”為學(xué)生判斷其解決方案的有效性提供了直接反饋。同時(shí)舞臺區(qū)能夠?qū)W(xué)生所創(chuàng)作的內(nèi)容直觀展示出來,幫助學(xué)生在創(chuàng)作過程中不斷調(diào)試優(yōu)化其解決方案。學(xué)生在不斷優(yōu)化調(diào)整的過程中獲得知識、經(jīng)驗(yàn)、問題解決方法的感悟,為其思維進(jìn)階發(fā)展打下基礎(chǔ)。
圖形化數(shù)字創(chuàng)作是在學(xué)生掌握一定問題解決能力后的再度延伸與發(fā)展,圖形化編程色彩豐富、類型多樣的積木塊既能為學(xué)生創(chuàng)作提供底層支持,同時(shí)對學(xué)生復(fù)盤整個(gè)問題解決過程,如何通過圖形化編程(計(jì)算機(jī))自動(dòng)化實(shí)現(xiàn)問題解決提供了幫助。讓學(xué)生通過圖形化編程學(xué)習(xí)不斷地總結(jié)方法經(jīng)驗(yàn),得到解決新問題的能力。之后利用圖形化編程平臺角色庫、拓展模塊等資源內(nèi)容完成新案例搭建,實(shí)現(xiàn)問題解決能力的遷移應(yīng)用,促進(jìn)其計(jì)算思維的發(fā)展。
學(xué)生計(jì)算思維能力的培養(yǎng)并不是一蹴而就的,需要教師在相應(yīng)教學(xué)活動(dòng)的支持下不斷迭代循環(huán),經(jīng)歷計(jì)算思維培養(yǎng)的要點(diǎn),從而實(shí)現(xiàn)思維能力的進(jìn)步。結(jié)合圖形化編程工具的特點(diǎn)以及其對計(jì)算思維發(fā)展的作用,將圖形化編程中促進(jìn)學(xué)生計(jì)算思維發(fā)展的教學(xué)活動(dòng)歸結(jié)為激活基礎(chǔ)知識技能、情境問題抽取、分解復(fù)雜問題、設(shè)計(jì)問題解決方案、迭代問題求解算法、遷移與應(yīng)用、反思總結(jié)、復(fù)盤思維過程等7 個(gè)環(huán)節(jié)。學(xué)生在參與到教學(xué)活動(dòng)中的同時(shí)能在教師的幫助下經(jīng)歷計(jì)算思維的發(fā)展要點(diǎn),在循環(huán)迭代中培養(yǎng)發(fā)展其復(fù)合思維能力、創(chuàng)造性解決問題能力、反思優(yōu)化能力以及遷移應(yīng)用能力,為其計(jì)算思維的培養(yǎng)提供支持,具體如圖2所示。

圖2 面向計(jì)算思維發(fā)展的圖形化編程教學(xué)活動(dòng)框架
基礎(chǔ)知識技能掌握是學(xué)生展開圖形化編程學(xué)習(xí)的基礎(chǔ),包括序列、循環(huán)、事件、并行、條件、運(yùn)算符以及數(shù)據(jù)等基礎(chǔ)編程概念的掌握,也包括13 大類積木塊的用法。此時(shí)學(xué)生對知識概念或積木塊的認(rèn)知多停留在記憶或理解層面,需要教師進(jìn)一步給予相關(guān)學(xué)習(xí)策略支持,幫助學(xué)生更深層次地掌握相關(guān)知識技能。
學(xué)生應(yīng)用知識技能解決問題的過程是計(jì)算思維養(yǎng)成的關(guān)鍵。從復(fù)雜任務(wù)中抽象表征出具體真實(shí)的問題是進(jìn)行問題解決的第一步,在此過程中教師要為學(xué)生提供合適的資源與情境,通過言語、行為以及情感上的支持幫助學(xué)生從情境中抽離出真實(shí)可解決的問題。
圖形化編程教學(xué)中的問題均為教師精心設(shè)計(jì)準(zhǔn)備的問題,學(xué)生無法直接實(shí)現(xiàn)問題解決,因此進(jìn)一步細(xì)化分解復(fù)雜問題使學(xué)生完成項(xiàng)目作品制作的基礎(chǔ)。在此過程中,教師要給學(xué)生提供相應(yīng)的分解支架或任務(wù)單,學(xué)生在這些學(xué)習(xí)資源的支持下能夠自主或通過尋求教師幫助實(shí)現(xiàn)整體復(fù)雜問題的化簡分解。
問題解決方案設(shè)計(jì)是學(xué)生利用可視化工具將其問題解決思路表現(xiàn)出來的過程,學(xué)生可以利用紙筆,也可通過思維導(dǎo)圖等可視化小工具實(shí)現(xiàn)解決方案的設(shè)計(jì)。在此過程中,學(xué)生要在掌握知識技能的基礎(chǔ)上,應(yīng)用知識技能實(shí)現(xiàn)算法方案設(shè)計(jì),檢驗(yàn)其對知識理解與掌握程度。同時(shí),教師要注意觀察學(xué)生表現(xiàn),在其遇到問題時(shí)及時(shí)給予支持,幫助學(xué)生形成正確的算法經(jīng)驗(yàn)。
評估問題解決方案的過程與學(xué)生展開編程測試與調(diào)試的關(guān)系十分密切,學(xué)生根據(jù)已設(shè)計(jì)好的方案內(nèi)容,通過編程積木塊搭建實(shí)現(xiàn)自動(dòng)化方案,不僅是檢驗(yàn)方案效果的最佳方式,也是學(xué)生不斷試誤迭代完成知識概念新認(rèn)識的重要部分。在此過程中要注意溝通交流的作用,學(xué)生可通過測試修補(bǔ)或與同伴交流分享實(shí)現(xiàn)方案的迭代升級優(yōu)化,促進(jìn)認(rèn)知與思維觀念的發(fā)展。
問題解決強(qiáng)調(diào)實(shí)現(xiàn)一個(gè)問題解決后,要能把相關(guān)的經(jīng)驗(yàn)與想法遷移應(yīng)用至其他領(lǐng)域,這就要求學(xué)生不能僅僅掌握了問題解決的內(nèi)容,而是要更進(jìn)一步掌握問題解決的方法。圖形化編程教學(xué)在完成相關(guān)基礎(chǔ)案例后,也會(huì)提供對應(yīng)的拓展案例,這就需要學(xué)生總結(jié)所學(xué)過的知識、概念、技能、經(jīng)驗(yàn)等內(nèi)容,融合遷移至新問題解決過程中。此過程多為學(xué)生自主建構(gòu),但是也需要教師給予學(xué)生知識概念、技能等言語與情感上的支持。
問題成功解決并不是計(jì)算思維培養(yǎng)的最后一步,思維是個(gè)體內(nèi)部知識、思想、經(jīng)驗(yàn)、方法的綜合表征,因此若想促進(jìn)學(xué)生思維發(fā)展,必須引導(dǎo)學(xué)生展開自我與自我的交互,即自我意識的交互,通過復(fù)盤整個(gè)問題解決過程,內(nèi)化所獲得的認(rèn)知、經(jīng)驗(yàn)、情感等內(nèi)容,融合成具體的思維能力,生成更高位的觀念,并為下一次思維經(jīng)驗(yàn)迭代打下基礎(chǔ)。
計(jì)算思維作為21世紀(jì)數(shù)字原住民應(yīng)對新時(shí)代競爭與挑戰(zhàn)必不可少的技能之一,從小培養(yǎng)學(xué)生的計(jì)算思維,將為學(xué)生掌握計(jì)算機(jī)運(yùn)行原理,適應(yīng)以計(jì)算機(jī)為基礎(chǔ)的智能生活以及養(yǎng)成科學(xué)思維方式打下基礎(chǔ)。本研究在探究圖形化編程與計(jì)算思維關(guān)系的基礎(chǔ)上,結(jié)合圖形化編程中計(jì)算思維的價(jià)值內(nèi)涵以及圖形化編程對計(jì)算思維的支持,確定了面向計(jì)算思維發(fā)展的圖形化編程教學(xué)活動(dòng)實(shí)施流程,以期為教師合理地利用圖形化編程促進(jìn)學(xué)生計(jì)算思維的發(fā)展做出貢獻(xiàn)。