付麗娟 熊天愛(ài) 余亮
摘? ?要:“人工智能+教育”時(shí)代已經(jīng)來(lái)臨,編程教育日益受到重視。編程教育工具作為編程教育的輔助,當(dāng)下成為研究熱點(diǎn)。文章采用比較研究法,系統(tǒng)搜集國(guó)內(nèi)外編程教育典型工具,制定比較分析框架,確定評(píng)價(jià)維度。然后,測(cè)試了各個(gè)編程教育工具,依據(jù)比較分析框架,主要從計(jì)算思維、教育性與游戲性三方面進(jìn)行了比較分析,并歸納其特征。最后,針對(duì)我國(guó)的編程教育現(xiàn)狀,提出開(kāi)發(fā)和使用編程教育工具的建議。
關(guān)鍵詞:編程教育;編程教育工具;計(jì)算思維;教育性;游戲性
中圖分類(lèi)號(hào):G434 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1673-8454(2019)23-0027-08
一、引言
隨著智能技術(shù)的飛速發(fā)展, 世界各國(guó)紛紛開(kāi)始部署戰(zhàn)略規(guī)劃,試圖搶占人工智能領(lǐng)域研究與實(shí)踐的高地。[1]在2017年國(guó)務(wù)院印發(fā)的《新一代人工智能發(fā)展規(guī)劃》文件中提出,“要實(shí)施全民智能教育項(xiàng)目,在中小學(xué)設(shè)置人工智能相關(guān)課程,逐步推廣編程教育”。編程教育工具無(wú)疑是編程教育的重要輔助工具,能培養(yǎng)學(xué)習(xí)者的計(jì)算思維和問(wèn)題解決能力。因此,想要大力發(fā)展編程教育,就需要合理地開(kāi)發(fā)和使用編程教育工具。
縱觀國(guó)外編程教育的發(fā)展,大都遵循一種自上而下,政、企、社會(huì)和學(xué)校聯(lián)動(dòng)促進(jìn)的發(fā)展模式。[2]從2012年開(kāi)始,美國(guó)、英國(guó)、澳大利亞、新加坡、日本、韓國(guó)等紛紛開(kāi)始重視編程教育,相繼頒布政策將編程列入中小學(xué)的必修課程。[3]此外,由美國(guó)非盈利組織Code.org發(fā)起的“編程一小時(shí)”活動(dòng),得到各大企業(yè)如蘋(píng)果、微軟、Facebook等的支持,融合多種編程教育工具,讓學(xué)習(xí)者可以使用可視化編程語(yǔ)言,在游戲情境中體驗(yàn)編程思維,學(xué)習(xí)編程方法。而且,學(xué)校作為編程教育的重要場(chǎng)所,不僅積極響應(yīng)“編程一小時(shí)”活動(dòng),還將多種編程教育工具靈活運(yùn)用于課堂教學(xué)中。例如,一些中小學(xué)教師將編程與其他學(xué)科知識(shí)進(jìn)行整合,在生物課堂上用編程教育工具Scratch studio講解動(dòng)物特征及其棲息地。
我國(guó)教育界也逐漸高度重視青少年編程教育的重要性,社會(huì)融資與各類(lèi)專(zhuān)項(xiàng)資金不斷流入編程教育領(lǐng)域,各家互聯(lián)網(wǎng)教育公司增加了對(duì)編程教育工具的研發(fā)。[1]但我國(guó)編程教育起步較晚,實(shí)踐與研究總體仍處于初級(jí)發(fā)展階段,雖然已經(jīng)引入國(guó)外一些編程教育工具如優(yōu)必選、編程貓和樂(lè)博等,但本土化的改造應(yīng)用還有待深入,更需要結(jié)合本國(guó)實(shí)際情況,開(kāi)發(fā)和使用具有本國(guó)特色的編程教育工具。[2]因此,本文通過(guò)文獻(xiàn)研究法、比較研究法等,對(duì)國(guó)外編程教育工具進(jìn)行充分梳理與分析,以對(duì)我國(guó)編程教育工具的開(kāi)發(fā)和使用提供一些建議。
二、編程工具比較分析
1.計(jì)算思維
編程教育工具是培養(yǎng)兒童計(jì)算思維的重要教輔工具。[4]國(guó)外學(xué)者的研究表明,教育工具讓編程容易實(shí)現(xiàn),且非常有吸引力,有助于教孩子如何編程,發(fā)展他們的算法和計(jì)算思維技能。[5][6]
計(jì)算思維(Computational Thinking)是周以真(Jeannette M.wing)教授于2006年3月在美國(guó)計(jì)算機(jī)權(quán)威刊物Communications of the ACM上首次提出的。周教授將計(jì)算思維定義為:計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì),以及人類(lèi)行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)。[7]針對(duì)中小學(xué)信息技術(shù)教育這一場(chǎng)景,南安普敦大學(xué)的Selby博士和Woollard博士關(guān)于計(jì)算思維的觀點(diǎn)更為適用,并且這一觀點(diǎn)得到了廣泛的認(rèn)可。[8]他們認(rèn)為計(jì)算思維包括算法思維(Algorithmic Thinking)、評(píng)估(Evaluation)、分解(Decomposition)、抽象(Abstraction)、概括(Generalization)五個(gè)要素,其具體內(nèi)涵如表1所示。
2.編程游戲軟件的教育性與游戲性
編程教育工具的主要作用是培養(yǎng)中小學(xué)生的計(jì)算思維和問(wèn)題解決能力,其必然具備一定的教育性。教育性主要體現(xiàn)在,當(dāng)學(xué)生使用某種教育工具時(shí),一般出于特定的學(xué)習(xí)動(dòng)機(jī),例如培養(yǎng)他們的編程能力或訓(xùn)練邏輯思維等。然后,在使用的過(guò)程中,通過(guò)工具反饋的知識(shí)信息可以促進(jìn)學(xué)生的成長(zhǎng),培養(yǎng)他們的知識(shí)、技能、智力、情感、態(tài)度、價(jià)值觀等。此外,教師可以借助編程教育工具輔助教學(xué),靈活運(yùn)用于教學(xué)環(huán)節(jié)中。
現(xiàn)有的針對(duì)中小學(xué)生的編程教育工具多為游戲闖關(guān)的形式,包括故事情節(jié)、角色、各種挑戰(zhàn)任務(wù)等多種多樣的游戲性因素,具有游戲的趣味性、挑戰(zhàn)性、刺激性等特征。在借助編程教育工具學(xué)習(xí)時(shí),這些特征可以提高學(xué)生的學(xué)習(xí)興趣從而提升學(xué)習(xí)效率??梢?jiàn),編程教育工具以教育為目的,以游戲?yàn)槭侄?,既滿足學(xué)生“玩”的需求,又讓他們?cè)谕娴臅r(shí)候“學(xué)”到一些知識(shí),做到了融教育性、游戲性于一體。[9]
通過(guò)文獻(xiàn)調(diào)查,筆者參考了教育軟件的比較分析后,認(rèn)為編程游戲軟件主要是從教育性和游戲性兩個(gè)維度進(jìn)行研究的,如國(guó)外學(xué)者Annetta、Lamb& Stone在2011年提出的評(píng)價(jià)標(biāo)準(zhǔn)中,包括互動(dòng)、反饋、沉浸感、控制感、難度、規(guī)則、學(xué)習(xí)內(nèi)容、學(xué)習(xí)目標(biāo)、教學(xué)效果等指標(biāo)。[10]而國(guó)內(nèi)學(xué)者如范云歡、崔金英在2008年的研究中提出的評(píng)價(jià)維度包括教育性、游戲性和技術(shù)性三個(gè)方面。因此,本文從教育性和游戲性兩個(gè)維度進(jìn)行評(píng)價(jià)。其中教育性包括知識(shí)反饋明確及時(shí)、關(guān)卡設(shè)計(jì)有邏輯、內(nèi)容可靠形式靈活多樣、學(xué)習(xí)目標(biāo)清晰四個(gè)子維度;游戲性包括適度的挑戰(zhàn)、合理的激勵(lì)、可選擇學(xué)習(xí)內(nèi)容、有吸引力的情節(jié)、明確的游戲規(guī)則五個(gè)子維度。各子維度的具體內(nèi)涵如表2所示。
三、編程教育工具比較分析
1.編程教育工具的搜集與篩選
首先,本文通過(guò)文獻(xiàn)調(diào)查法收集了若干編程教育工具。其次,通過(guò)搜索熱門(mén)應(yīng)用商店,關(guān)注了主流的移動(dòng)平臺(tái)和桌面平臺(tái)上易于訪問(wèn)的軟件工具。最后,通過(guò)國(guó)際搜索引擎搜集大眾推薦較多的工具。經(jīng)以上三種途徑,共得到31個(gè)適合中小學(xué)生使用的編程教育工具。為保證每款工具的可用性和適用性,筆者測(cè)試了所有可獲取的工具,并瀏覽工具簡(jiǎn)介、使用情況與評(píng)論,以確定每款工具的基本信息及編程主題,將已經(jīng)過(guò)時(shí)的和無(wú)法訪問(wèn)的工具過(guò)濾掉,同時(shí)按照確定的評(píng)價(jià)維度對(duì)工具進(jìn)行評(píng)判。最終確定了16款國(guó)外的編程教育工具,并提供其基本信息,主要包括發(fā)行時(shí)間、類(lèi)型、平臺(tái)、語(yǔ)言、塊或文本、適用年齡和編程基礎(chǔ),以使學(xué)生、家長(zhǎng)或教師能夠選擇更加適合自身情況的編程教育工具。如表3所示。
編程教育工具的作用是幫助學(xué)生學(xué)習(xí)編程知識(shí),應(yīng)具有基本的編程主題——變量、條件、循環(huán)和方法。就各個(gè)工具的編程主題,筆者進(jìn)行了如表4所示的統(tǒng)計(jì)。
2.編程教育工具比較
(1)基本信息比較分析
通過(guò)對(duì)編程教育工具的類(lèi)型、平臺(tái)、語(yǔ)言、代碼呈現(xiàn)形式、適用年齡和編程基礎(chǔ)的比較分析可以發(fā)現(xiàn):
第一,工具類(lèi)型多為益智型,比較單一。雖然故事情節(jié)、學(xué)習(xí)內(nèi)容和挑戰(zhàn)任務(wù)不同,但工具的操作和類(lèi)型都大同小異。尤其是很多基于塊的編程教育工具,其代碼塊的形狀不同,有的是不同指向的箭頭,有的是表征一個(gè)動(dòng)作的圖標(biāo),但具體操作都是先將這些代碼塊進(jìn)行組合,然后驗(yàn)證對(duì)象的運(yùn)動(dòng)過(guò)程是否正確。值得一提的是,其中一個(gè)工具用代碼塊來(lái)填空,例如在某一關(guān)卡中,需要選擇一個(gè)卡通眼睛,當(dāng)學(xué)習(xí)者寫(xiě)到“選擇娃娃眼睛”的代碼時(shí),會(huì)彈出一系列小球眼睛,供用戶選擇,如圖1所示。這種形式較為新穎,易于學(xué)習(xí)者理解。
第二,平臺(tái)兼容性較強(qiáng)。過(guò)半的編程教育工具都有移動(dòng)端,便于學(xué)習(xí)者隨時(shí)隨地使用。一半以上的工具擁有網(wǎng)頁(yè)端,進(jìn)入網(wǎng)頁(yè)即可使用工具,無(wú)需專(zhuān)門(mén)下載?;旧纤泄ぞ叨贾С諭OS系統(tǒng)。
第三,國(guó)外的編程教育工具基本只支持本國(guó)官方語(yǔ)言和英語(yǔ),僅有少數(shù)工具支持多種語(yǔ)言,其中支持中文的僅有3個(gè)。由此可見(jiàn),我國(guó)還需大力加強(qiáng)自主開(kāi)發(fā)編程教育工具的力度。
第四,在代碼的呈現(xiàn)上,工具中有11個(gè)僅支持基于塊的編程,有4個(gè)僅支持基于文本的編程,只有1個(gè)是既有塊的編程又有文本的編程,這類(lèi)編程教育工具更能滿足學(xué)習(xí)者的需求,促進(jìn)學(xué)習(xí)者對(duì)編程知識(shí)的理解。例如Blockly Games先是讓學(xué)習(xí)者使用塊進(jìn)行編程,每完成一關(guān)就會(huì)彈出提示,提示內(nèi)容為本次關(guān)卡中用到的代碼塊所對(duì)應(yīng)的文本代碼。在最后的幾關(guān)中讓學(xué)習(xí)者使用文本進(jìn)行編程。
第五,從適用年齡方面來(lái)看,幾乎所有的工具都適合K12學(xué)生使用,即適合年齡在4~18歲的用戶使用。過(guò)半的工具使用年齡為4歲以上,相對(duì)而言,這些工具比較簡(jiǎn)單,適合初學(xué)者使用。
第六,就編程基礎(chǔ)而言,一些工具針對(duì)不同年齡段的學(xué)生設(shè)置了不同難度的挑戰(zhàn)。例如,Tynker Games分了三個(gè)年齡段,分別為初學(xué)者、中級(jí)、高級(jí)。其次,適用年齡在4歲以上或者5歲以上的工具不要求編程基礎(chǔ),一些適用年齡較高的工具,則要求用戶有一定的編程基礎(chǔ),如Coding games,該工具甚至為資深程序員提供了進(jìn)階挑戰(zhàn)。
(2)編程主題比較分析
在所調(diào)查的工具中,有6個(gè)工具的學(xué)習(xí)內(nèi)容包含了以上所有基本的編程主題,另外10個(gè)只包含部分編程主題。在編程主題的呈現(xiàn)形式上,Light-Bot、Turtle Academy等將變量、條件、循環(huán)、方法以主題的形式作為獨(dú)立的關(guān)卡;Cargo-Bot、Scratch studio等沒(méi)有明確地將它們分離出來(lái),而是將其融入到實(shí)際的游戲情境當(dāng)中。
不同編程教育工具要求學(xué)習(xí)者掌握基本編程主題的程度不同。以循環(huán)為例,個(gè)別工具只要求用戶知道需要使用循環(huán),但用戶不用計(jì)算具體的循環(huán)次數(shù);大多數(shù)工具都會(huì)讓用戶在使用循環(huán)時(shí),考慮需要循環(huán)的次數(shù),此方式比前一種對(duì)學(xué)習(xí)者的要求更高。
每個(gè)工具的編程主題中相應(yīng)指令的呈現(xiàn)方式也有所不同。首先,就變量而言,在基于文本的工具中,直接以高級(jí)語(yǔ)言中聲明變量的形式來(lái)定義變量,包括定義變量的類(lèi)型、名稱(chēng)等;而在基于塊的工具中,用戶只需點(diǎn)擊創(chuàng)建變量的按鈕,并給其命名,無(wú)需考慮其他規(guī)則。其次,“條件”結(jié)構(gòu)的呈現(xiàn)形式也各不相同。文本類(lèi)編程工具中的條件語(yǔ)句與高級(jí)語(yǔ)言類(lèi)似,需要滿足一定的語(yǔ)法規(guī)則。而在基于塊的工具中,條件語(yǔ)句可以用一個(gè)特定的代碼塊來(lái)表示,如Cargo-Bot、Robozzle、Kodable用不同顏色的代碼塊作為條件,如圖2所示。此外,在循環(huán)結(jié)構(gòu)方面,基于文本的游戲,直接以代碼的形式呈現(xiàn)循環(huán),這種方式比較抽象,不易于理解;而基于塊的工具會(huì)以形象具體的圖形、圖標(biāo)來(lái)呈現(xiàn)循環(huán)結(jié)構(gòu),如圖3所示。最后,在方法方面,大部分基于塊的工具限制了主函數(shù)的代碼數(shù)量,當(dāng)完成目標(biāo)所需代碼塊過(guò)多時(shí),用戶只有通過(guò)將部分指令寫(xiě)在某一方法中,然后在主函數(shù)中調(diào)用方法。
(3)計(jì)算思維、教育性與游戲性的比較分析
根據(jù)確定的比較框架,下文主要從編程教育工具的計(jì)算思維和教育性與游戲性這三個(gè)方面進(jìn)行比較分析。計(jì)算思維一經(jīng)提出便受到各界的廣泛關(guān)注,我國(guó)也受到國(guó)際計(jì)算機(jī)協(xié)會(huì)(ACM) CC2001(計(jì)算機(jī)課程)課程體系(草案)的影響,越來(lái)越重視培養(yǎng)兒童的計(jì)算思維。編程教育工具是培養(yǎng)兒童計(jì)算思維的重要教輔工具。因此,將其作為評(píng)判一個(gè)編程教育工具的標(biāo)準(zhǔn),按照計(jì)算思維包括的五個(gè)要素——算法思維、分解、抽象、概括、評(píng)估對(duì)編程工具做出以下分析,如表5所示。
在測(cè)試的所有工具中,全都體現(xiàn)了算法思維的培養(yǎng)。即所有工具都是讓用戶通過(guò)明確定義的步驟來(lái)解決問(wèn)題。
對(duì)于問(wèn)題的分解,以上編程教育工具幾乎都體現(xiàn)了問(wèn)題分解的過(guò)程,即學(xué)習(xí)者需事先對(duì)任務(wù)進(jìn)行分解,將一個(gè)大的目標(biāo)分解為若干個(gè)小目標(biāo),通過(guò)完成小目標(biāo)實(shí)現(xiàn)最終目標(biāo)。如Kodable、Code Karts等需用戶在到達(dá)終點(diǎn)前,完成通過(guò)每一個(gè)轉(zhuǎn)角的小目標(biāo),如圖4所示;Turtle Academy中控制烏龜畫(huà)倒置的L,將問(wèn)題分解為前進(jìn)50個(gè)單位、轉(zhuǎn)彎、前進(jìn)50個(gè)單位,如圖5所示。在程序運(yùn)行的過(guò)程中,很多工具都會(huì)突出顯示正在被運(yùn)行的代碼塊。
就抽象和概括而言,抽象和概括是形成概念的兩個(gè)過(guò)程,概括是抽象的結(jié)果,抽象是概括的前提。由此可知,工具中將各種編程的基本主題(變量、選擇、循環(huán)、方法等)專(zhuān)門(mén)呈現(xiàn)出來(lái),讓用戶感知、理解、學(xué)習(xí),其中既有抽象的過(guò)程也有概括的過(guò)程。測(cè)試的工具均有針對(duì)各種基本主題的專(zhuān)門(mén)訓(xùn)練,故它們都能一定程度地培養(yǎng)學(xué)生的抽象能力和概括能力。
除了以上四個(gè)因素外,計(jì)算思維還包括評(píng)估,即用戶對(duì)自己編寫(xiě)程序的有效性、簡(jiǎn)潔性等的反思和評(píng)價(jià)。在目前測(cè)試的工具中,只有小部分能夠根據(jù)用戶代碼的運(yùn)行時(shí)間、冗余度給出相應(yīng)的反饋。例如完成任務(wù)時(shí),用獲得星星數(shù)量作為用戶代碼質(zhì)量的反饋。此外,還有個(gè)別工具會(huì)給出較為詳細(xì)的反饋信息,在Cargo-Bot中會(huì)提示用戶每關(guān)最優(yōu)解決方案。
除計(jì)算思維這一重要因素外,教育性與游戲性的融合也是編程教育工具成功的關(guān)鍵和難點(diǎn)。過(guò)分強(qiáng)調(diào)教育性,缺乏游戲性,則無(wú)法吸引學(xué)生的興趣;過(guò)分強(qiáng)調(diào)游戲性,教育的內(nèi)容沒(méi)有與游戲活動(dòng)有機(jī)結(jié)合,則容易把學(xué)生的注意力吸引到無(wú)意義的游戲活動(dòng)中,從而無(wú)法實(shí)現(xiàn)教育目標(biāo)。因此,本文對(duì)編程教育工具的教育性與游戲性做出的分析如表6所示。
通過(guò)以上比較可以發(fā)現(xiàn),在知識(shí)反饋方面,只有個(gè)別工具的知識(shí)反饋明確及時(shí),具體表現(xiàn)為:在關(guān)卡結(jié)束時(shí),通過(guò)及時(shí)的反饋信息反映用戶的代碼是否高效。這一點(diǎn)可以靈活地運(yùn)用于教師的課堂。調(diào)查發(fā)現(xiàn),國(guó)外一些教師讓學(xué)生先自行完成挑戰(zhàn),然后根據(jù)工具給出的評(píng)價(jià)反饋相互討論最佳解決方案。在關(guān)卡設(shè)計(jì)邏輯方面,幾乎所有工具的難度都層層遞進(jìn),編程知識(shí)逐步加深,符合學(xué)生的一般認(rèn)知規(guī)律。在Ruby Worrior中,將難度劃分為初級(jí)和中級(jí)。工具的編程知識(shí)都具有一定的科學(xué)性,但在內(nèi)容形式方面差異較大。例如,Blockly Games有迷宮、鳥(niǎo)、烏龜?shù)炔煌黝}的闖關(guān),內(nèi)容形式豐富多樣;Robozzle內(nèi)容形式單一。就學(xué)習(xí)目標(biāo)而言,多數(shù)工具目標(biāo)清晰?;趬K的工具更側(cè)重于鍛煉學(xué)生的編程思維,基于文本的工具更多地是鍛煉學(xué)生代碼編寫(xiě)的能力。
首先,在工具的難易度方面,多數(shù)難度適中,個(gè)別難度較大。例如Coding games以及Light-Bot靠后的關(guān)卡,難度過(guò)大,很可能打消學(xué)習(xí)者的積極性。其次,大多工具都有一定的激勵(lì)機(jī)制。在Save The Animals:Coding Game中,學(xué)習(xí)者可以通過(guò)闖關(guān)獲得勛章;還有一些工具獎(jiǎng)勵(lì)星星。這樣能激勵(lì)學(xué)生繼續(xù)挑戰(zhàn)。此外,有10個(gè)工具可以選擇學(xué)習(xí)內(nèi)容,即用戶可以自主地選擇關(guān)卡,而非只能按照既定的路線闖關(guān),這增加了他們的控制權(quán)。8個(gè)工具的故事情節(jié)具有趣味性和吸引力。如Tynker Games探索宇宙和譜寫(xiě)樂(lè)曲的故事情節(jié)。最后,在規(guī)則方面,除了Robozzle和Digital Puppet-Programming之外,其余工具均有較清晰的規(guī)則。多數(shù)是初次使用時(shí),提供新手引導(dǎo),僅個(gè)別工具用專(zhuān)門(mén)版塊來(lái)介紹規(guī)則。
四、編程教育工具的開(kāi)發(fā)與使用建議
我國(guó)編程教育正處于起步發(fā)展階段,編程教育工具的發(fā)展相對(duì)滯后,而國(guó)外編程教育起源較早,第一款編程教育工具Logo誕生于1968年,至今,已有半個(gè)多世紀(jì)的發(fā)展歷史。[11]結(jié)合本研究對(duì)國(guó)外編程教育工具的比較分析結(jié)果與我國(guó)的基本情況,筆者對(duì)我國(guó)編程教育工具的開(kāi)發(fā)和使用提出以下建議:
1.開(kāi)發(fā)編程教育工具的建議
第一,教育性方面,編程教育工具中需具備完整的知識(shí)體系。在測(cè)試的工具中,只有少數(shù)包含了所有最基本的編程主題。如果工具包含的主題不完整,即知識(shí)體系不完整,就無(wú)法支撐編程教育的開(kāi)展。
除了編程主題的完整性,編程教育工具中還需增加編程知識(shí)講解。在工具體驗(yàn)過(guò)程中,筆者發(fā)現(xiàn)很多工具都沒(méi)有知識(shí)講解或幫助提示,例如:在闖關(guān)過(guò)程中,到達(dá)一定關(guān)卡時(shí),會(huì)突然出現(xiàn)循環(huán)結(jié)構(gòu)。學(xué)習(xí)者要使用該結(jié)構(gòu)繼續(xù)闖關(guān),但沒(méi)有說(shuō)明其作用和具體的使用方法。在這種情況下,有編程基礎(chǔ)的使用者可以輕松通過(guò),但是初學(xué)者可能難以理解,進(jìn)而對(duì)游戲規(guī)則感到疑惑。對(duì)于編程教育工具,開(kāi)發(fā)者不能過(guò)于注重游戲性而忽視教育性,而應(yīng)該以教育為目的,以游戲?yàn)槭侄?,在開(kāi)發(fā)設(shè)計(jì)中引導(dǎo)學(xué)生學(xué)習(xí)并運(yùn)用編程知識(shí)。
另外,不同學(xué)習(xí)者的認(rèn)知發(fā)展階段和認(rèn)知結(jié)構(gòu)不同,因此在開(kāi)發(fā)工具時(shí)要明確適用對(duì)象,因材施教。例如年齡較小的或初學(xué)者可以用塊和代碼相結(jié)合的方式來(lái)呈現(xiàn)編程知識(shí)。
第二,游戲性方面,開(kāi)發(fā)者需要設(shè)計(jì)出類(lèi)型和內(nèi)容更加多樣化的工具。當(dāng)前編程教育工具類(lèi)型較為單一,加之基于塊的編程工具操作過(guò)程都比較相似,這使大部分游戲缺少創(chuàng)新性和趣味性,不易于凸顯工具特色。開(kāi)發(fā)團(tuán)隊(duì)可適當(dāng)增加有趣的游戲情境或元素,以增加工具的趣味性。例如,Save The Animals :Coding Game將保護(hù)野生動(dòng)物的觀念與編程結(jié)合,以解救動(dòng)物為故事情境,設(shè)計(jì)了自然保護(hù)區(qū)和成就版塊,可以有效地激發(fā)學(xué)生的學(xué)習(xí)興趣。此外,雖然隨著時(shí)代的發(fā)展,很多游戲趨于白癡化,用戶可以通過(guò)自行探索解決問(wèn)題。但對(duì)于初學(xué)者而言,編程知識(shí)是具有一定難度的,開(kāi)發(fā)者有必要提供更詳細(xì)的游戲規(guī)則和幫助文檔,避免用戶需要花太多的時(shí)間去摸索,或者困于某一關(guān)卡無(wú)法前進(jìn),進(jìn)而打擊用戶的積極性。游戲規(guī)則的說(shuō)明設(shè)計(jì)可以有多種形式,借助多種媒體,例如可以是文字或圖文結(jié)合形式的說(shuō)明文檔,可以是規(guī)則說(shuō)明的視頻等。這樣才能符合不同用戶的多樣化需求。
第三,在計(jì)算思維方面,注重培養(yǎng)學(xué)生評(píng)估代碼的能力。從分析結(jié)果發(fā)現(xiàn),大部分編程教育工具沒(méi)有重視計(jì)算思維中評(píng)估這一要素。例如,Digital Puppet-Programming用獲得的星星個(gè)數(shù)作為游戲的反饋,一共有三顆星星,當(dāng)學(xué)習(xí)者通關(guān)時(shí),系統(tǒng)會(huì)根據(jù)代碼的高效性決定獲得星星的數(shù)目,這樣的反饋信息過(guò)于簡(jiǎn)單,且不能凸顯編程游戲特色,任何闖關(guān)游戲都可以用星星個(gè)數(shù)作為反饋信息。評(píng)估有助于學(xué)習(xí)者養(yǎng)成反思的習(xí)慣,提高批判性思維能力。開(kāi)發(fā)者需要在游戲中利用反饋信息提醒學(xué)生評(píng)估從而改進(jìn)自己的代碼,反饋信息需盡量詳細(xì),例如可以指出本次關(guān)卡中最優(yōu)代碼、代碼的最優(yōu)運(yùn)行速度和學(xué)習(xí)者編寫(xiě)的代碼的運(yùn)行速度等。
第四,課程整合方面,開(kāi)發(fā)者需要開(kāi)發(fā)與課程高度契合的編程教育工具。目前,很少有工具是為了配合課程而開(kāi)發(fā)的,導(dǎo)致教師在使用時(shí)需要花費(fèi)大量精力去挑選合適的工具。因此,教育軟件公司可以與學(xué)校建立合作關(guān)系,了解學(xué)校的需求,開(kāi)發(fā)與課程配套的工具。還可以開(kāi)發(fā)具有家、校、學(xué)生三端的編程教育工具。
2.使用編程教育工具的建議
第一,根據(jù)不同年齡段,選擇合適的編程教育工具。
初級(jí)階段(4~8歲)是年齡較低的學(xué)生,他們幾乎沒(méi)有編程基礎(chǔ),并且認(rèn)知成熟度不高,不具備很強(qiáng)的抽象和邏輯推理能力,所以該階段主要側(cè)重于啟蒙與思維模式的培養(yǎng),讓他們了解計(jì)算機(jī)基礎(chǔ)知識(shí),培養(yǎng)編程興趣,培養(yǎng)對(duì)邏輯順序的認(rèn)知,熟悉并學(xué)會(huì)運(yùn)用程序思維,如抽象、分類(lèi)、分解等,而對(duì)學(xué)習(xí)編程語(yǔ)言的要求不高。因此,可以選擇基于塊或塊與文本相結(jié)合的編程工具?;趬K的工具將各種指令用不同的箭頭或者圖案來(lái)代替,更形象具體,操作也更加簡(jiǎn)單。
在中級(jí)階段(8~12歲)學(xué)生已經(jīng)有了一定的編程基礎(chǔ),具備了一定的思維模式,可以開(kāi)始系統(tǒng)地學(xué)習(xí)編程。該階段的學(xué)習(xí)內(nèi)容包括基本的編程知識(shí)和高級(jí)的技巧等。學(xué)生可以選擇一個(gè)合適的平臺(tái)進(jìn)行系統(tǒng)學(xué)習(xí)或者選擇可以進(jìn)行作品創(chuàng)作的工具,例如Scratch Tutor、Kodable等。
在高級(jí)階段(12歲以上)學(xué)習(xí)者對(duì)編程有了一定的興趣,可以根據(jù)自己的興趣選擇一門(mén)語(yǔ)言深入學(xué)習(xí)。但編程具有一定難度,涉及的知識(shí)面非常廣泛,僅有興趣是不夠的,還需要具有一定的毅力來(lái)學(xué)習(xí)更多的知識(shí)(數(shù)學(xué)、物理等)進(jìn)而不斷提高學(xué)習(xí)者的編程能力。這一階段的學(xué)生可以選擇基于文本的編程,例如Coding games。
第二,適當(dāng)利用編程教育工具的游戲性,提高編程課堂的趣味性。
當(dāng)下,在編程教學(xué)課堂中,教學(xué)者更偏向程序語(yǔ)言基礎(chǔ)知識(shí)的講解和傳授,課堂教學(xué)枯燥乏味,學(xué)習(xí)者的學(xué)習(xí)積極性不高。[12]游戲化學(xué)習(xí)可以有效地增加課堂趣味性,提升學(xué)生的學(xué)習(xí)興趣。2018年教育部發(fā)布了規(guī)范入校APP、手機(jī)和平板電腦進(jìn)課堂的有關(guān)規(guī)定,這些規(guī)定表明國(guó)家正在大力推行智慧校園,實(shí)現(xiàn)信息化教學(xué)環(huán)境,這為編程教育工具的使用提供了條件。[13]不止我國(guó),世界多個(gè)國(guó)家和地區(qū)也對(duì)游戲在教育中的作用給予了高度重視。歐盟、英國(guó)、美國(guó)等大部分教師支持在課堂上使用游戲。合理地運(yùn)用游戲,可以提升課堂趣味性,從而提升學(xué)習(xí)效果。
首先,在講解具體編程概念前,通過(guò)工具引導(dǎo)學(xué)生理解。編程中的概念往往比較抽象,比如循環(huán)、方法等。但編程具有可操作性,并且可以通過(guò)調(diào)試得到一定的結(jié)果。教師可以在講授知識(shí)前,讓學(xué)生動(dòng)手操作工具,體驗(yàn)相應(yīng)的編程主題,給學(xué)生提供先行組織者材料,有助于理解具體的概念。
其次,把握好學(xué)生自行動(dòng)手和知識(shí)講解的平衡點(diǎn)。鑒于很多工具不具備符合認(rèn)知發(fā)展的知識(shí)體系以及并非針對(duì)具體的學(xué)校課程開(kāi)發(fā)的,因此教師在讓學(xué)習(xí)者動(dòng)手玩游戲的同時(shí)還需要補(bǔ)充知識(shí)點(diǎn)。具體表現(xiàn)為需要提前講解一些知識(shí),再讓學(xué)生操作,或者在學(xué)習(xí)者操作工具的過(guò)程中補(bǔ)充需要的知識(shí)。
最后,注重培養(yǎng)學(xué)生準(zhǔn)確評(píng)價(jià)代碼的能力。評(píng)估是計(jì)算思維的五要素之一,但測(cè)試的工具中,僅個(gè)別工具引導(dǎo)學(xué)習(xí)者評(píng)估自己編寫(xiě)的代碼(塊)。所以,教師在使用編程教育工具時(shí)不能完全依靠工具,需要引導(dǎo)學(xué)生從代碼的準(zhǔn)確性、高效性(代碼執(zhí)行時(shí)間)、簡(jiǎn)潔性(代碼多少)、便捷性等方面對(duì)自己編寫(xiě)的代碼進(jìn)行評(píng)價(jià)和反思。
第三,在使用編程教育工具的過(guò)程中,培養(yǎng)學(xué)生的自制力。
即使教育工具有一定的教育意義,但也不能過(guò)度沉迷。這些工具讓學(xué)生有了接觸網(wǎng)絡(luò)的機(jī)會(huì),他們很容易迷失在網(wǎng)絡(luò)虛擬的世界中,從而無(wú)法控制自己學(xué)習(xí)的時(shí)間。教師在使用工具進(jìn)行教學(xué)的同時(shí)需要引導(dǎo)學(xué)生合理使用。編程教育工具能夠傳達(dá)的教育知識(shí)是有限的,真正系統(tǒng)的知識(shí)學(xué)習(xí)還需教師在課堂上講解。
五、結(jié)束語(yǔ)
本文搜集了國(guó)外典型的編程教育工具,并根據(jù)筆者確立的評(píng)價(jià)維度,對(duì)各個(gè)工具進(jìn)行比較分析,再結(jié)合我國(guó)實(shí)際情況提出了開(kāi)發(fā)和使用編程教育工具的建議。但搜集到的編程教育工具都源自國(guó)外,缺乏中西方工具的比較分析。此外,本文確定的比較分析維度不夠全面,缺乏編程教育工具使用者的評(píng)價(jià)反饋。最后,隨著時(shí)代的發(fā)展,編程教育工具的應(yīng)用必將越來(lái)越廣泛,我國(guó)需要加強(qiáng)對(duì)其進(jìn)行開(kāi)發(fā)與研究,讓編程教育工具靈活運(yùn)用于課堂,不斷助推我國(guó)中小學(xué)編程教育的發(fā)展。
參考文獻(xiàn):
[1]孫丹,李艷.國(guó)內(nèi)外青少年編程教育的發(fā)展現(xiàn)狀、研究熱點(diǎn)及啟示——兼論智能時(shí)代我國(guó)編程教育的實(shí)施策略[J].遠(yuǎn)程教育雜志,2019(3):47-60.
[2]魏曉風(fēng),蔣家傅,鐘紅,韓奇.我國(guó)中小學(xué)編程教育發(fā)展的路徑思考[J].中國(guó)教育信息化,2018(24):1-4,9.
[3]Renny S.N.Lindberg,Teemu H.Laine,&L.Haaranen.Gamifying programming education in K‐12: A review of programming curricula in seven countries and programming games[J].British Journal of Educational Technology,2018.
[4]蔣希娜,黃心淵.指向計(jì)算思維能力培養(yǎng)的兒童編程游戲設(shè)計(jì)[J].現(xiàn)代教育技術(shù),2019(3):119-126.
[5]Khaled A,Moanis T,Jamal R.Primary School Pupils Attitudes toward Learning Programming through Visual Interactive Environments[J].World Journal of Education, 2016,6(5).
[6]Koracharkornradt C.Tuk Tuk:A Block-Based Programming Game[C].Conference on Interaction Design & Children. ACM,2017.
[7]Jeannette M.Wing.Computational Thingking[J].Communications of the ACM ,2006, 49(3):33-35.
[8]謝忠新,曹楊璐.中小學(xué)信息技術(shù)學(xué)科學(xué)生計(jì)算思維培養(yǎng)的策略與方法[J].中國(guó)電化教育,2015(11):116-120.
[9]周浩慧.教育游戲:一種寓教于樂(lè)的新方式[J].電腦知識(shí)與技術(shù),2009(8):1958-1959.
[10]沈娟.中美教育游戲評(píng)價(jià)指標(biāo)體系比較研究[D].杭州師范大學(xué),2015.
[11]孫立會(huì),周丹華.國(guó)際兒童編程教育研究現(xiàn)狀與行動(dòng)路徑[J].開(kāi)放教育研究,2019(2):23-35.
[12]牟琴.“輕游戲”對(duì)計(jì)算思維能力的培養(yǎng)——教育游戲?qū)Τ绦蛟O(shè)計(jì)基礎(chǔ)課程教學(xué)的影響[J].遠(yuǎn)程教育雜志,2011(6):94-101.
[13]蔣宇,趙永樂(lè).教育游戲能否提升學(xué)習(xí)效果[N].中國(guó)教育報(bào),2019-04-06(003).
(編輯:王天鵬)