多召軍 劉巖松 任永功
[摘? ?要] 編程教育是培養(yǎng)兒童計算思維的主要方式,分析兒童編程促進(jìn)計算思維發(fā)展的內(nèi)在機理,有助于更加高效、精準(zhǔn)地開展兒童編程教育。文章將編程問題解決活動作為計算思維的載體,分析了問題探索、問題表征、方案生成、計劃執(zhí)行、反思評價五個問題解決活動與分解思維、抽象思維、程序化思維、迭代思維、概括評估思維五種計算思維之間的聯(lián)系;構(gòu)建了分階段、結(jié)構(gòu)化設(shè)計兒童編程學(xué)習(xí)活動的框架,以及支持結(jié)構(gòu)化表征、程序化表征、圖形化表征的技術(shù)環(huán)境,以小學(xué)信息技術(shù)課程“算法與程序設(shè)計模塊”為例開展實證研究。研究結(jié)果顯示:學(xué)生計算思維水平顯著提升,且分解思維、抽象思維、程序化思維與迭代思維的提升具有相關(guān)性,說明基于問題解決過程模型結(jié)構(gòu)化設(shè)計編程學(xué)習(xí)活動與技術(shù)環(huán)境,能夠促進(jìn)兒童計算思維要素同步發(fā)展。
[關(guān)鍵詞] 計算思維; 兒童編程; 問題解決; 學(xué)習(xí)活動; 技術(shù)環(huán)境
[中圖分類號] G434? ? ? ? ? ? [文獻(xiàn)標(biāo)志碼] A
[作者簡介] 多召軍(1988—),男,內(nèi)蒙古阿拉善人。講師,博士研究生,主要從事兒童編程教育、在線個性化學(xué)習(xí)研究。E-mail:476790465@qq.com。任永功為通訊作者,E-mail:ygren@lnnu.com。
一、引? ?言
計算思維(Computational Thinking,CT)起源于20世紀(jì)80年代,當(dāng)時派珀特試圖提倡和推動兒童學(xué)習(xí)編程。2006年,Wing將CT定義為“利用計算機科學(xué)的基本概念,解決問題、設(shè)計系統(tǒng)和理解人類行為”的過程,認(rèn)為是信息化社會人人必備的重要能力之一[1]??梢姡珻T自誕生以來始終與編程教育密切聯(lián)系在一起,編程教育也被認(rèn)為是培養(yǎng)計算思維的主要方式。計算思維培養(yǎng)導(dǎo)向的編程教學(xué)仍處在探索階段,存在培養(yǎng)內(nèi)容不夠全面、編程工具使用效果參差不齊等問題[2-3]。圖形化編程是小學(xué)乃至學(xué)前兒童階段編程教育開展的主要形式,可以把程序設(shè)計思想通過拼接代碼塊加以實現(xiàn)[4],進(jìn)行直觀操作,降低編程的難度。然而,如果程序設(shè)計的整個過程都依賴于圖形化編程工具,學(xué)生則傾向試錯式的程序編寫[5],容易忽視問題分解、模式識別、算法設(shè)計等計算思維的參與。因此,本研究從學(xué)生思維參與的視角,將編程問題解決活動作為計算思維的載體,分析編程過程與計算思維發(fā)展的關(guān)系,進(jìn)一步結(jié)構(gòu)化設(shè)計編程學(xué)習(xí)活動與支持環(huán)境,旨在實現(xiàn)計算思維要素同步發(fā)展。
二、內(nèi)在機理:編程問題解決活動對
CT核心要素的承載關(guān)系
(一)編程問題解決過程模型
編程問題屬于設(shè)計類的問題,是一類源于現(xiàn)實生活場景、復(fù)雜度較高的非良構(gòu)問題?;谡J(rèn)知心理學(xué)構(gòu)建的劣構(gòu)問題解決框架得到廣為引用,例如:Sinnott提出,劣構(gòu)問題解決過程包括建構(gòu)問題空間、選擇和生成解決方案及監(jiān)控階段[6];Jonassen提出,劣構(gòu)問題解決模型包括闡明問題空間及情境限制,識別和厘清各種可選擇的觀點及立場,生成可能的問題解決方案,通過建構(gòu)論點和個人信念評價各種方案的有效性,監(jiān)控問題空間和各種解決方案選項,實施與監(jiān)控解決方法及調(diào)整解決方法[7];OECD(2013)問題解決框架涉及探索與理解、表征與系統(tǒng)化闡述、計劃與執(zhí)行、控制與反思四個過程。基于上述觀點,本研究認(rèn)為,編程問題解決是一個動態(tài)的過程,以生成完善的計算機程序為目的,個體需要在與問題情境交互的過程中,探索與理解對象(角色)的相關(guān)信息與事件,表征各對象(角色)的狀態(tài)及相互之間的關(guān)系,生成可能的編程方案,制定計劃,編寫程序,迭代優(yōu)化,直到形成完善的、可執(zhí)行的計算機程序,最后對問題解決過程進(jìn)行總結(jié)與評價。問題解決過程包含問題探索、問題表征、方案生成、計劃執(zhí)行、反思評價等認(rèn)知活動。
(二)CT核心要素
國內(nèi)外學(xué)者從不同的角度闡述計算思維所涵蓋的內(nèi)容,例如:Barr與Stephenson的模型在不同的學(xué)科背景下呈現(xiàn)了CT的能力,包含抽象、問題分解、算法與程序化、測試與驗證[8];Brennan與Resnick的框架包括抽象與模塊化、計算概念(對應(yīng)于Scratch編程塊)、測試與調(diào)試等[9];Selby描述了CT的思維過程,包括算法思維、評估、分解、抽象、概括這五個核心要素[10];在Selby 等人的研究基礎(chǔ)上,傅騫等人從抽象思維、分解思維、算法思維、評估思維和泛化思維五個層面進(jìn)行研究[11];朱珂等人結(jié)合STEM教育的教學(xué)過程,將計算思維能力分為分解能力、概括能力、算法思維、評估能力以及抽象化五個要素[12]; Shute等人開發(fā)了可用于CT能力評估的模型,涉及抽象(數(shù)據(jù)收集與分析、模式識別、模型化)、分解、算法(算法設(shè)計、類比、效率、自動化)、調(diào)試、概括及迭代[13]。綜上所述,計算思維模型或框架的定義主要包括兩個方面:一是描述思維過程,二是描述構(gòu)成計算思維能力的要素。從思維過程出發(fā),計算思維是問題邏輯分析、問題分解、給出詳細(xì)的解決方案、設(shè)計相應(yīng)的算法進(jìn)行實施以及反思與優(yōu)化的思維過程,涉及分解思維、抽象思維、程序化思維、迭代思維及概括評估思維五個核心要素。分解思維是按照問題的功能要素把復(fù)雜問題分解為易操作問題的思維過程;抽象思維是從問題情境中推理分析解決問題關(guān)鍵信息以及用結(jié)構(gòu)化邏輯表示信息的思維過程;程序化思維是按有序的步驟去解決問題的思維過程;迭代思維是一種不斷用變量的舊值遞推新值的思維過程;概括評估思維是總結(jié)與評價問題的解決辦法,并擴展給定問題中的現(xiàn)有解決方案以覆蓋更多的問題。
(三)編程問題解決活動對CT核心要素的承載關(guān)系
綜上所述,編程問題解決過程包含問題探索、問題表征、方案生成、計劃執(zhí)行、反思評價五個環(huán)節(jié)。從思維過程的視角解釋計算思維,包括分解思維、抽象思維、程序化思維、迭代思維與概括評估思維五個核心要素,進(jìn)而建立編程問題解決活動對CT核心要素的承載關(guān)系模型,如圖1所示。
1. 問題探索與分解思維
面對復(fù)雜的編程問題,如果將其作為一個整體而尋找解決方案時,學(xué)生可能會產(chǎn)生畏懼心理;如果能夠按照功能要素、角色或其他邏輯將其分解為易于操作的問題,這將使得編程問題解決的流程更簡單。當(dāng)學(xué)生通過實踐工作形成自己的問題時,學(xué)習(xí)將變得更有意義[14]。因此,問題探索的目的在于學(xué)生與問題情境交互的過程中,運用分解思維尋找問題拆分的邏輯,將客觀世界的問題轉(zhuǎn)化為學(xué)生能夠理解的問題;運用已掌握的知識與經(jīng)驗,發(fā)現(xiàn)自己能夠解決的問題或通過努力能夠解決的問題。
2. 問題表征與抽象思維
在明確可能解決問題的基礎(chǔ)上,需要繼續(xù)從問題情境中獲取與每個問題相關(guān)的所有信息,提取或補充與這些問題相關(guān)的領(lǐng)域知識,形成問題空間中所有信息的語義網(wǎng)絡(luò)。其中,構(gòu)建語義網(wǎng)絡(luò)需要識別信息結(jié)構(gòu)背后的模式與規(guī)則,用模型表示各要素的關(guān)系與運作過程。可以發(fā)現(xiàn),問題表征活動與Shute等人提出的抽象思維三要素相吻合,即數(shù)據(jù)收集與分析、模式識別及模型化[13]。
3. 方案生成與程序化思維
編程問題解決方案中明確定義的問題解決步驟是學(xué)生自主開發(fā)的一組指令或規(guī)則,不論是人還是計算機,只要準(zhǔn)確執(zhí)行,就會得出問題答案。因此,問題解決方案是學(xué)生程序化思維的體現(xiàn),問題解決方案的形成過程能夠促進(jìn)學(xué)生程序化思維的發(fā)展。
4. 計劃執(zhí)行與迭代思維
計劃執(zhí)行活動是以問題解決方案為依據(jù),設(shè)計與開發(fā)程序原型;測試程序,明確程序的錯誤與漏洞;優(yōu)化程序,根據(jù)反饋結(jié)果返回原型進(jìn)行修改。這是一個不斷迭代與持續(xù)優(yōu)化的過程,學(xué)生運用迭代思維反復(fù)測試與優(yōu)化原型,直至達(dá)到理想狀態(tài)。
5. 反思評價與概括評估思維
反思評價活動是對問題解決結(jié)果和過程的自我反思、評價與歸因,是對編程問題解決方法與策略的概括與總結(jié),并能夠?qū)⑵溥w移應(yīng)用到更廣泛的問題解決中。因此,反思與評價活動促進(jìn)了概括評估思維的應(yīng)用與發(fā)展。
三、框架設(shè)計:“五環(huán)節(jié)”編程學(xué)習(xí)活動
設(shè)計模型
問題解決取向的計算思維培養(yǎng)側(cè)重于“做”,但并不是盲目地“做”,學(xué)習(xí)者要對習(xí)得的方法進(jìn)行抽象化并遷移到新情境中加以應(yīng)用、 創(chuàng)造,需要主動的思維參與才能實現(xiàn)[15]。本研究基于編程問題解決活動對CT核心要素的承載關(guān)系,從問題探索、問題表征、方案生成、計劃執(zhí)行、反思評價五個環(huán)節(jié),分段梳理兒童編程學(xué)習(xí)活動的目標(biāo),制定適合的編程學(xué)習(xí)活動策略,構(gòu)建兒童編程學(xué)習(xí)活動結(jié)構(gòu)化設(shè)計模型,如圖2所示,旨在引導(dǎo)學(xué)習(xí)者主動的思維參與。
(一)“五環(huán)節(jié)”編程學(xué)習(xí)活動目標(biāo)分析
問題探索環(huán)節(jié)的編程學(xué)習(xí)活動目標(biāo)是學(xué)生在與情境交互的過程中識別編程要素或角色,明確針對每個角色的編程問題;問題表征環(huán)節(jié)需要學(xué)生圍繞每個要素廣泛收集數(shù)據(jù),抽象出各要素狀態(tài)變化的模式;方案生成環(huán)節(jié)是學(xué)生建立問題解決思路,形成可能的問題解決方案,通過循證與分析,確定最終的問題解決方案;計劃執(zhí)行環(huán)節(jié)旨在設(shè)計與開發(fā)程序原型,測試、評價及迭代優(yōu)化原型程序;反思評價環(huán)節(jié)是對編程問題解決過程的反思與歸因。
(二)“五環(huán)節(jié)”編程學(xué)習(xí)活動設(shè)計策略
基于皮亞杰的兒童認(rèn)識發(fā)展心理學(xué),游戲化學(xué)習(xí)與認(rèn)知沖突教學(xué)法是支持編程學(xué)習(xí)活動設(shè)計的重要策略,游戲化學(xué)習(xí)能夠激發(fā)學(xué)生對編程的興趣與動機,進(jìn)而激勵行動、促進(jìn)學(xué)習(xí)和解決問題[16];認(rèn)知沖突是學(xué)生持續(xù)編程的動力源泉,基于“情境創(chuàng)設(shè)—誘發(fā)認(rèn)知沖突—產(chǎn)生新平衡”的策略,能夠推動學(xué)生完成編程任務(wù)。以下從“五環(huán)節(jié)”分別闡述編程學(xué)習(xí)活動設(shè)計策略。
1. 問題探索環(huán)節(jié)的編程學(xué)習(xí)活動設(shè)計策略
“分而治之”是解決復(fù)雜問題最有效的方法,在學(xué)生與問題情境的交互過程中,可通過角色扮演等游戲化活動,激勵學(xué)生探索與理解編程要素或角色,據(jù)此將問題分解和轉(zhuǎn)化為多個易于操作的子問題。在問題情境創(chuàng)設(shè)時,基于最近發(fā)展區(qū)理論,盡可能誘發(fā)學(xué)生產(chǎn)生已有知識經(jīng)驗與問題情境之間的不平衡狀態(tài),激發(fā)學(xué)生進(jìn)行有效的問題分解與轉(zhuǎn)化。
2. 問題表征環(huán)節(jié)的編程學(xué)習(xí)活動設(shè)計策略
小組協(xié)作頭腦風(fēng)暴法是促進(jìn)問題表征的重要策略,在可視化技術(shù)的支持下,對各個問題的語義關(guān)系網(wǎng)絡(luò)進(jìn)行自由發(fā)散的討論,進(jìn)行結(jié)構(gòu)化的歸納與整理。策劃頭腦風(fēng)暴活動時,需要進(jìn)一步誘發(fā)學(xué)生的認(rèn)知沖突,進(jìn)而抽象出有創(chuàng)意的模式。
3. 方案生成環(huán)節(jié)的編程學(xué)習(xí)活動策略
算法與自動化是該環(huán)節(jié)編程學(xué)習(xí)活動設(shè)計應(yīng)關(guān)注的焦點。流程圖或決策樹是用來表示自動化決策過程的一種方式,既可以用來可視化機器使用算法時可能采取的步驟,也可以使決策的結(jié)果更容易理解。因此,該環(huán)節(jié)應(yīng)充分使用流程圖、決策樹等可視化技術(shù),設(shè)計“學(xué)生扮演機器,流程圖填空、拼接、連線”等活動,引導(dǎo)學(xué)生形成有效解決當(dāng)前問題的算法,深入理解機器執(zhí)行算法的過程。同時,成功的方案能夠消解學(xué)生的認(rèn)知沖突,提升學(xué)生開發(fā)程序原型的信心。
4. 計劃執(zhí)行環(huán)節(jié)的編程學(xué)習(xí)活動策略
計劃執(zhí)行是重復(fù)反饋的過程,對于檢查錯誤、調(diào)試程序、迭代算法等一系列操作,學(xué)生會有抵觸心理,一次改變一個變量的策略(Vary-One-Thing-At-At-Time,VOTAT)可以幫助學(xué)生逐步思考與檢測程序的合理性,逐個擊破程序異常與漏洞,將模糊的問題清晰化。Greiff等人通過分析PISA(2012)測試過程中產(chǎn)生的計算機日志數(shù)據(jù)發(fā)現(xiàn),VOTAT策略應(yīng)用情況與問題解決績效之間呈強顯著關(guān)系[17]。因此,該環(huán)節(jié)應(yīng)圍繞VOTAT理念和“結(jié)對編程”的協(xié)作學(xué)習(xí)策略設(shè)計編程學(xué)習(xí)活動。
5. 反思評價環(huán)節(jié)的編程學(xué)習(xí)活動策略
交流、共享、組內(nèi)評價、組間評價是促進(jìn)學(xué)生反思的有效方法。準(zhǔn)備作品分享的過程是學(xué)生對編程問題解決過程與結(jié)果進(jìn)行總結(jié)、概括的過程;與他人交流、評價他人作品的過程,也會激勵學(xué)生反思自己開發(fā)的程序以及編程過程中遇到的問題與解決方法。
四、環(huán)境支持:“三種表征”支持技術(shù)框架
問題探索與問題表征環(huán)節(jié)需要結(jié)構(gòu)化表示問題信息,方案生成環(huán)節(jié)需要按照執(zhí)行順序流程化表示問題信息,計劃執(zhí)行與反思評價環(huán)節(jié)需要基于圖形要素系統(tǒng)化表示問題信息。三種表征方式差異較大,可能出現(xiàn)兩次思維跳躍,且前兩次的不充分表征可能導(dǎo)致不完善的編程結(jié)果。因此,本研究提出融合思維可視化工具與圖形化編程工具的編程學(xué)習(xí)環(huán)境,如圖3所示,包括結(jié)構(gòu)化表征支持工具、流程化表征支持工具及圖形化編程工具,一方面使隱性的思維過程與思維結(jié)果顯性化,另一方面增加學(xué)生程序設(shè)計過程的連續(xù)性。
(一)結(jié)構(gòu)化表征支持工具
編程問題探索與編程問題表征環(huán)節(jié)需要探索問題情境中的所有相關(guān)信息,梳理問題信息之間的關(guān)系,當(dāng)缺少必要的支持時,學(xué)生提取的問題信息可能是片面的、零散的,只能從事表面工作。在編程學(xué)習(xí)中借助思維可視化工具,可以將分散的知識進(jìn)行系統(tǒng)化的處理,幫助學(xué)生厘清元素之間的關(guān)系;也可以將比較復(fù)雜的編程任務(wù)細(xì)化分解,用結(jié)構(gòu)化的邏輯從整體到部分分層思考[18-19]。例如:思維導(dǎo)圖作為思維可視化工具實現(xiàn)了學(xué)習(xí)者所學(xué)知識之間的連接,促進(jìn)了有意義學(xué)習(xí)的發(fā)生[20];括號圖可以把問題從多個方面進(jìn)行合理拆分,對每一種拆分方式給出合理的解釋[21]。
(二)流程化表征支持工具
流程圖等流程化表征工具作為“思維發(fā)聲”支架,聚焦于學(xué)習(xí)者的思維加工過程和方法習(xí)得[22],使學(xué)生明確程序的執(zhí)行過程,能夠有效助力程序化思維發(fā)展。此外,學(xué)生在問題分解、要素信息分析的基礎(chǔ)上,借助流程圖設(shè)計解決編程問題的一系列步驟,將問題解決的過程進(jìn)行可視化表達(dá),降低對編程語言的關(guān)注度,有助于學(xué)生理解程序的實現(xiàn)過程。
(三)圖形化編程工具
借助圖形化編程工具的編程是學(xué)生依據(jù)問題情境,凝練問題信息,并轉(zhuǎn)化為圖形化要素表示的信息[5]。相較于文本編程語言晦澀的語法與關(guān)鍵字拼寫,圖形化編程工具可以有效降低復(fù)雜代碼編寫所帶來的認(rèn)知難度,使學(xué)生將注意力集中于問題解決本身,更有助于提升學(xué)生的計算思維能力,以及更容易完成復(fù)雜的創(chuàng)意作品[11]。
五、實證研究:以小學(xué)信息技術(shù)課程
“算法與程序設(shè)計模塊”為例
(一)教學(xué)設(shè)計
1. 基本情況
本研究以沈陽市某小學(xué)五年級的30名學(xué)生為教學(xué)對象,以信息技術(shù)課程中的“算法與程序設(shè)計模塊”為教學(xué)內(nèi)容開展為期五周的準(zhǔn)實驗研究?;谖迥昙墝W(xué)生思維發(fā)展特征和教學(xué)內(nèi)容特征,設(shè)計了四個連續(xù)的協(xié)作學(xué)習(xí)任務(wù)。其中,第四個“奇妙的海底世界”為綜合性的學(xué)習(xí)任務(wù),需要學(xué)生對Scratch多個模塊的命令按照實際需求綜合應(yīng)用,下文將對該任務(wù)的學(xué)習(xí)活動進(jìn)行詳細(xì)闡述。
2. 結(jié)構(gòu)化編程學(xué)習(xí)活動設(shè)計
本案例設(shè)計了“情境觀察、信息探索”“分解問題、厘清思路”“明確流程、生成方案”“程序設(shè)計、迭代優(yōu)化”及“歸納總結(jié)、交流分享”五個活動。采用不插電編程與圖形化編程相融合的方式,前三個活動在紙質(zhì)任務(wù)單的支持下開展不插電編程,后兩個活動基于Scratch工具與紙質(zhì)任務(wù)單相結(jié)合的方式,主要學(xué)習(xí)活動見表1。
(二)數(shù)據(jù)收集與分析
1. 數(shù)據(jù)收集
本研究通過計算思維量表與學(xué)習(xí)任務(wù)單相結(jié)合的方式采集數(shù)據(jù)。計算思維量表參照Korkmaz 等人的CTS量表設(shè)計,包括抽象思維、分解思維、程序化思維、迭代思維、概括和評估思維等5個維度,共24個題項,每個題項采用1~5點(非常不符合到非常符合)計分。前測、后測兩次各發(fā)放30份量表,有效量表各回收30份,兩次共回收60份,回收率為100%,前測與后測的總體內(nèi)部一致性信度Cronbach's α 為0. 859。
通過學(xué)習(xí)任務(wù)單數(shù)據(jù)分析學(xué)生在問題探索、問題表征、方案生成、計劃執(zhí)行、反思評價環(huán)節(jié)的表現(xiàn)。本次實驗共完成四個任務(wù)的作品創(chuàng)作,每個任務(wù)回收各個小組在四個環(huán)節(jié)的四份學(xué)習(xí)任務(wù)單。
2. 實驗數(shù)據(jù)分析
(1)計算思維前后測結(jié)果分析
采用GraphPad Prism對實驗前測與后測的計算思維調(diào)查數(shù)據(jù)進(jìn)行配對樣本t檢驗,分析結(jié)果如圖4(a)所示,分解思維、抽象思維、程序化思維、迭代思維及概括評估思維的后測水平均值高于前側(cè),而且前測與后測數(shù)據(jù)出現(xiàn)了較強的顯著性差異。通過前后測結(jié)果連接圖4(b)可以發(fā)現(xiàn),幾乎每個學(xué)生的分解思維、抽象思維與程序化思維能力都有所提升,表明在三種表征技術(shù)支持下,基于問題解決過程模型結(jié)構(gòu)化設(shè)計編程學(xué)習(xí)活動,對兒童計算思維發(fā)展產(chǎn)生了積極的影響;有超過一半的學(xué)生的概括評估思維能力有明顯提升,有部分學(xué)生幾乎沒有變化,結(jié)合教學(xué)實際情況來看,小組作品分享活動中并非全員參與,有效參與分享活動能夠促進(jìn)學(xué)生概括評估自身的問題解決過程。
(2)計算思維五要素的相關(guān)性分析
計算思維后測與前測結(jié)果之間的差值表示經(jīng)過五周編程學(xué)習(xí)之后思維水平上的變化。因此,本研究對計算思維五要素前后測的差值作相關(guān)性分析,以判斷哪些要素是協(xié)同提升的。通過Kolmogorov-Smirnov檢測發(fā)現(xiàn),計算思維五要素中分解思維、程序化思維與迭代思維呈非正態(tài)分布,故采用Spearman相關(guān)性分析方法進(jìn)行分析,分析結(jié)果見表2,分解思維與抽象思維之間的相關(guān)性(r=0.467**)、分解思維與程序化思維之間的相關(guān)性(r=0.568**)、抽象思維與程序化思維之間的相關(guān)性(r=0.419*)、抽象思維與迭代思維之間的相關(guān)性(r=0.446*)為中等正相關(guān);分解思維與迭代思維之間的相關(guān)性(r=0.633**)、程序化思維與迭代思維之間的相關(guān)性(r=0.845**)為強正相關(guān);概括評估思維與其他思維要素之間沒有顯著的相關(guān)關(guān)系。結(jié)果表明,基于問題解決過程模型設(shè)計兒童編程學(xué)習(xí)活動,能夠促進(jìn)分解思維、抽象思維、程序化思維與迭代思維的同步發(fā)展。
(3)問題解決行為數(shù)據(jù)分析
①問題探索與問題表征環(huán)節(jié),從完整性、邏輯性、發(fā)散性以及創(chuàng)新性四個方面評價問題信息表征結(jié)果。經(jīng)過前兩周的訓(xùn)練,完整性方面,學(xué)生都能較完整地分析要素和功能;邏輯性方面,后兩次任務(wù)信息表示的層次性有明顯提高;發(fā)散性方面,思維導(dǎo)圖分支數(shù)量逐漸增多,開始從不同角度分析問題;創(chuàng)新性方面,仍然鮮有獨特和創(chuàng)新的想法??傮w來看,在可視化表征技術(shù)支架的支持下,大部分學(xué)生能夠從問題情境中抽象出“角色”的關(guān)鍵特征,識別角色的多種模式,實現(xiàn)問題的轉(zhuǎn)化,說明該環(huán)節(jié)的編程學(xué)習(xí)活動設(shè)計積極地影響了學(xué)生分解思維與抽象思維發(fā)展。
②方案生成環(huán)節(jié),根據(jù)任務(wù)的復(fù)雜度與學(xué)生的認(rèn)知水平發(fā)展,四次學(xué)習(xí)任務(wù)分別以“簡單”連線、“復(fù)雜”連線及填寫與粘貼卡片等多樣化的形式設(shè)計流程圖。循序漸進(jìn)的過程中,大部分學(xué)生能較好地使用流程圖,明確自動化執(zhí)行步驟的算法。說明流程圖工具支持的問題解決方案生成活動促進(jìn)了學(xué)生程序化思維發(fā)展。
③計劃執(zhí)行環(huán)節(jié),遇到程序錯誤與漏洞時,由第一個任務(wù)的不知所措、立即尋求幫助,逐漸變成有部分學(xué)生開始自主調(diào)試程序,在“可視化修改記錄支架”輔助下,對程序模塊進(jìn)行逐一檢查與修改,說明學(xué)生開始逐漸形成應(yīng)用VOTAT策略迭代與調(diào)試程序的思維與技能。
六、總結(jié)與展望
(一)結(jié)論與討論
從三個方面對實踐研究的數(shù)據(jù)分析結(jié)果進(jìn)行總結(jié)與討論。
1. 結(jié)構(gòu)化設(shè)計編程學(xué)習(xí)活動能夠促進(jìn)兒童計算思維持續(xù)參與及協(xié)同發(fā)展
數(shù)據(jù)結(jié)果表明,學(xué)生的計算思維水平在五周的編程學(xué)習(xí)之后有了顯著的提升,而且分解思維、抽象思維、程序化思維與迭代思維的提升之間具有一定的相關(guān)性,說明從思維參與的視角分五個環(huán)節(jié)結(jié)構(gòu)化設(shè)計編程學(xué)習(xí)活動,融合三類表征技術(shù)構(gòu)建可視化編程環(huán)境,能夠促進(jìn)兒童分解思維、抽象思維、程序化思維、迭代思維在編程中的持續(xù)參與,進(jìn)而推動計算思維各要素的協(xié)同發(fā)展。其中,分解思維與迭代思維為強正相關(guān)關(guān)系,說明當(dāng)學(xué)生能夠?qū)?fù)雜問題分解為多個易于操作的子問題時,也能夠有效應(yīng)用VOTAT策略對程序進(jìn)行不斷的優(yōu)化與完善;程序化思維與迭代思維為強正相關(guān)關(guān)系,說明不斷優(yōu)化與完善程序的迭代過程,能夠促進(jìn)學(xué)生深入理解機器執(zhí)行算法的過程。
2. 編程學(xué)習(xí)活動不應(yīng)止步于完成作品,有效的編程過程總結(jié)與評價更重要
計算思維作為一種廣泛性思維,并不局限于計算機編程學(xué)習(xí),更需要將其應(yīng)用于其他學(xué)科學(xué)習(xí)、問題解決及生活實踐之中[23]。學(xué)習(xí)者自我總結(jié)與評價活動應(yīng)該貫穿于問題解決的各個環(huán)節(jié),通過啟發(fā)性問題,引導(dǎo)學(xué)習(xí)者對編程問題解決過程進(jìn)行反思、評價與歸因[24],是問題解決方案、策略與思維實現(xiàn)廣泛遷移的前提。數(shù)據(jù)分析結(jié)果表明,有效參與分享活動能夠促進(jìn)學(xué)生概括評估自身的問題解決過程。然而,本次實驗中有部分學(xué)生的概括評估思維并沒有明顯變化,而且概括評估思維與分解思維、抽象思維、程序化思維、迭代思維沒有顯著的相關(guān)性。如何將反思評價活動貫穿于整個編程問題解決過程中尤為重要,在未來的研究中需要進(jìn)一步優(yōu)化設(shè)計。
3. 結(jié)構(gòu)化設(shè)計編程學(xué)習(xí)活動,能夠激發(fā)學(xué)生發(fā)揮最大的潛能
分階段、結(jié)構(gòu)化設(shè)計編程學(xué)習(xí)活動與可視化表征支持技術(shù)環(huán)境,并非限制學(xué)生自由創(chuàng)造,而是通過系列活動引導(dǎo)學(xué)生發(fā)揮最大的潛能,引導(dǎo)學(xué)生開展有意義的編程學(xué)習(xí)活動。結(jié)構(gòu)化并非僵化,隨著學(xué)生認(rèn)知的發(fā)展,應(yīng)綜合運用多通道策略、多表征策略、支架策略設(shè)計每個環(huán)節(jié)的編程學(xué)習(xí)活動[25];同時,可視化表征技術(shù)環(huán)境作為學(xué)習(xí)支架,應(yīng)根據(jù)實際情況適時撤下,避免影響學(xué)生的發(fā)散思維與創(chuàng)造力。
(二)未來展望
我國兒童編程教育實踐仍處于初步探索階段,目標(biāo)導(dǎo)向的編程教學(xué)活動設(shè)計研究具有重要的意義。計算思維是青少年發(fā)展的核心素養(yǎng),從思維過程視角解釋計算思維,與設(shè)計類問題解決過程有著密切的聯(lián)系。通過理論與實踐研究,本文分析、建立了編程問題解決過程與計算思維之間的映射關(guān)系,在未來的研究中可以通過對問題解決活動行為數(shù)據(jù)的建模與分析,進(jìn)而測評學(xué)生的思維參與狀態(tài)及思維模式,為計算思維參與狀態(tài)測評提供新視角,這是對目前基于量表與編程作品評價形式的擴展。
[參考文獻(xiàn)]
[1] WING J M. Computational thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.
[2] 高宏鈺,李玉順,代帥,蔣云宵.編程教育如何更好地促進(jìn)早期兒童計算思維發(fā)展——基于國際實證研究的系統(tǒng)述評[J].電化教育研究,2021,42(11):121-128.
[3] 李陽.計算思維導(dǎo)向的跨學(xué)科兒童編程教育模式研究——基于芬蘭兒童編程教育的經(jīng)驗與啟示[J].現(xiàn)代教育技術(shù),2020,30(6):19-25.
[4] 郭守超,周睿,鄧常梅,等.基于App Inventor和計算思維的信息技術(shù)課堂教學(xué)研究[J].中國電化教育,2014(3):91-96.
[5] 孫立會,周丹華.基于Scratch的兒童編程教育教學(xué)模式的設(shè)計與構(gòu)建——以小學(xué)科學(xué)為例[J].電化教育研究,2020,41(6):75-82.
[6] SINNOTT J D. A Model for solution of Ill-structured problems: Implications for everyday and abstract problem solving[M]//SINNOTT J D. Everyday problem solving: theory and applications. New York: Praeger Publishers, 1989:72-99.
[7] JONASSEN D H. Instructional design models for well-structured and Ill-structured problem-solving learning outcomes[J]. Educational technology research and development, 1997, 45(1): 65-94.
[8] BARR V, STEPHENSON C. Bringing computational thinking to K-12: what is involved and what is the role of the computer science education community?[J]. ACM Inroads, 2011, 2(1): 48-54.
[9] BRENNAN K, RESNICK M. New frameworks for studying and assessing the development of computational thinking[C]//Proceedings of the 2012 Annual Meeting of the American Educational Research Association. Vancouver: AERA, 2012: 1-25.
[10] SELBY C, WOOLLARD J. Computational thinking: the developing definition[C]//Proceedings of the 18th Annual SIGCSE Conference on Innovation and Technology in Computer Science Education. Canterbury: ACM, 2013: 1-6.
[11] 傅騫,解博超,鄭婭峰.基于圖形化工具的編程教學(xué)促進(jìn)初中生計算思維發(fā)展的實證研究[J].電化教育研究,2019,40(4):122-128.
[12] 朱珂,賈鑫欣.STEM視野下計算思維能力的發(fā)展策略研究[J].現(xiàn)代教育技術(shù),2018,28(12):115-121.
[13] SHUTE V J, SUN C, ASBELL-CLARKE J. Demystifying computational thinking[J]. Educational research review, 2017, 22: 142-158.
[14] FRIESEN S, SCOTT D. Inquiry-based learning: a review of the research literature[J]. Alberta ministry of education, 2013, 32: 1-32.
[15] 石晉陽, 陳剛. 論兒童編程學(xué)習(xí)中反思性思維的發(fā)生[J].電化教育研究,2021,42(2):93-98.
[16] 于穎,陳文文,于興華. STEM游戲化學(xué)習(xí)活動設(shè)計框架[J].開放教育研究,2021,27(1):94-105.
[17] GREIFF S, WUSTENBERG S, AVVISATI F. Computer-generated log-file analyses as a window into students' minds? A showcase study based on the pisa 2012 assessment of problem solving[J]. Computers & education, 2015, 91: 92-105.
[18] 王佑鎂,宛平,南希烜,等. 實體編程促進(jìn)計算思維發(fā)展:工具與策略[J].中國電化教育,2021(8): 92-98.
[19] DURAK H Y, SARITEPECI M. Analysis of the relation between computational thinking skills and various variables with the structural equation model[J]. Computers & education, 2018, 116: 191-202.
[20] 趙國慶,熊雅雯,王曉玲.思維發(fā)展型課堂的概念、要素與設(shè)計[J].中國電化教育,2018(7):7-15.
[21] 趙國慶,楊宣洋,熊雅雯.論思維可視化工具教學(xué)應(yīng)用的原則和著力點[J].電化教育研究,2019,40(9):59-66,82.
[22] 郁曉華,王美玲.流程圖支持下的計算思維培養(yǎng)實踐研究[J]. 中國遠(yuǎn)程教育, 2019(9): 83-91.
[23] 孫立會,王曉倩.計算思維培養(yǎng)階段劃分與教授策略探討——基于皮亞杰認(rèn)知發(fā)展階段論[J].中國電化教育,2020(3):32-41.
[24] 任永功,林禹竹,多召軍.面向深度學(xué)習(xí)的項目式編程學(xué)習(xí)優(yōu)化設(shè)計與實踐[J].現(xiàn)代遠(yuǎn)距離教育,2020(1):46-53.
[25] 楊剛,張銀榮,徐佳艷,等.圖形化編程環(huán)境下建模方式對學(xué)生計算思維與編程行為的影響研究[J].電化教育研究,2022,43(4):107-115.
Research on Internal Mechanism and Teaching Practice of Programming
Education for Development of Children's Computational Thinking
DUO Zhaojun,? LIU Yansong,? REN Yonggong
(School of Computer and Information Technology, Liaoning Normal University, Dalian Liaoning 116081)
[Abstract] Programming education is the main way to cultivate children's computational thinking. Programming education for children can be carried out more efficiently and accurately by analyzing the internal mechanism of children's programming promoting the development of computational thinking. This paper takes programming problem-solving activities as the carrier of computational thinking, and analyzes the relationship between five problem-solving activities, namely problem exploration, problem representation, scheme generation, plan execution, reflection and evaluation, and five types of computational thinking, namely, decomposition thinking, abstract thinking, procedural thinking, iterative thinking, and generalized evaluation thinking. This paper constructs a framework for designing children's programming learning activities in a structured manner, as well as a technical environment to support structured, procedural and graphical representation. The empirical research is carried out by taking
"Algorithm and Programming module" of primary school information technology course as an example. The results show that the level of students' computational thinking has been significantly improved, and the improvement of decomposition thinking, abstract thinking, procedural thinking and iterative thinking are correlated, indicating that structured design programming learning activities and technical environment based on problem-solving process model can promote the simultaneous development of children's computational thinking elements.
[Keywords] Computational Thinking; Children's Programming; Problem Solving; Programming Education; Learning Activities; Technical Environment
基金項目:2021年遼寧省社會科學(xué)基金項目“常態(tài)化疫情防控下數(shù)據(jù)驅(qū)動大學(xué)生學(xué)業(yè)焦慮測量與診斷研究”(項目編號:L21CSH006);2020年遼寧省教育廳科研項目 “基于大數(shù)據(jù)的問題解決思維可視化表征研究”(項目編號:W201783653)