王旭卿++王麗麗++許惠美
自2012年起,在國(guó)內(nèi)中小學(xué)信息技術(shù)教育領(lǐng)域掀起了一場(chǎng)Scratch教學(xué)熱潮,有的側(cè)重創(chuàng)意(動(dòng)畫(huà))設(shè)計(jì),有的強(qiáng)調(diào)(兒童)趣味編程,有的還引入諸多外設(shè)(如Picoboard傳感器板、Arduino單片機(jī)、Kinect體感設(shè)備等),將屏幕編程拓展至現(xiàn)實(shí)世界??梢暬瘓D塊編程工具——Scratch像一個(gè)魔法師不僅激發(fā)了中小學(xué)生利用編程進(jìn)行信息化表達(dá)的熱情,也激勵(lì)了廣大中小學(xué)信息技術(shù)教師在追求教育理想的征途上積極探索與教學(xué)實(shí)踐。在國(guó)內(nèi),經(jīng)由中小學(xué)一線教師主持開(kāi)發(fā)出版的Scratch教材現(xiàn)已達(dá)7種之多就是一個(gè)明證。雖然Scratch教學(xué)在國(guó)內(nèi)風(fēng)生水起、欣欣向榮,但是許多信息技術(shù)教師對(duì)Scratch的核心育人價(jià)值認(rèn)識(shí)不清[1],對(duì)Scratch教學(xué)目標(biāo)的認(rèn)識(shí)大都還停留在激發(fā)編程興趣、培養(yǎng)創(chuàng)新能力、掌握21世紀(jì)學(xué)習(xí)技能這些宏大而沒(méi)有明確指向的教學(xué)目標(biāo)上。此外,被廣大教師認(rèn)可并應(yīng)用的“為創(chuàng)作而教學(xué)”Scratch教學(xué)方法[2]是一個(gè)側(cè)重于教學(xué)生用Scratch編程的基本方法,但在創(chuàng)意設(shè)計(jì)與編程實(shí)現(xiàn)(計(jì)算)的結(jié)合方面缺乏具體策略,不少教師對(duì)如何引導(dǎo)學(xué)生跳出案例、創(chuàng)作自己的動(dòng)畫(huà)、游戲、故事等創(chuàng)意設(shè)計(jì)作品并將自己的想法轉(zhuǎn)變?yōu)榭梢哉_\(yùn)行的互動(dòng)媒體作品頗感困惑。針對(duì)上述問(wèn)題,本文擬從創(chuàng)意計(jì)算的角度對(duì)Scratch教學(xué)目標(biāo)和教學(xué)策略兩個(gè)側(cè)面進(jìn)行理論建構(gòu),并展示和分析一個(gè)面向創(chuàng)意計(jì)算的Scratch教學(xué)設(shè)計(jì)案例。
● 面向創(chuàng)意計(jì)算的Scratch教學(xué)目標(biāo)
正如上文提到,創(chuàng)意設(shè)計(jì)和趣味編程是Scratch教學(xué)的兩大支柱,通過(guò)Scratch教學(xué),我們不僅要培養(yǎng)學(xué)生的計(jì)算創(chuàng)意(computational creativity)能力,讓學(xué)生基于個(gè)人興趣、利用跨學(xué)科知識(shí)進(jìn)行創(chuàng)意表達(dá)以及結(jié)合硬件外設(shè)進(jìn)行互動(dòng)媒體作品的設(shè)計(jì)與創(chuàng)作,而且還要培養(yǎng)學(xué)生的計(jì)算思維(computational thinking),讓學(xué)生在互動(dòng)媒體作品的創(chuàng)作中綜合應(yīng)用隱含編程思想的代碼塊,把自己的想法變成可以運(yùn)行的編程作品。值得關(guān)注的是這兩大支柱有機(jī)整合、相互支持,我們可以使用創(chuàng)意計(jì)算(creative computing)這個(gè)術(shù)語(yǔ)來(lái)表征當(dāng)前利用Scratch編程工具促進(jìn)學(xué)生計(jì)算思維發(fā)展和創(chuàng)意設(shè)計(jì)能力提升的教學(xué)實(shí)踐,因?yàn)镾cratch教學(xué)使我們有機(jī)會(huì)將注重藝術(shù)創(chuàng)想和動(dòng)手實(shí)踐的創(chuàng)意設(shè)計(jì)與強(qiáng)調(diào)縝密推理的計(jì)算思維進(jìn)行有機(jī)整合。
面向創(chuàng)意計(jì)算的Scratch教學(xué)目標(biāo)包括四個(gè)方面,即代碼塊與算法思維目標(biāo)、軟件工程與系統(tǒng)思維目標(biāo)、創(chuàng)意想象與設(shè)計(jì)思維目標(biāo)以及社會(huì)協(xié)商與參與思維目標(biāo)。
1.代碼塊與算法思維
在Scratch中,程序設(shè)計(jì)概念和算法思維被映射為一組代碼塊,學(xué)生在熟練運(yùn)用這些代碼塊組成腳本并實(shí)現(xiàn)各種編程功能的過(guò)程中不斷加深對(duì)這些概念的理解,這些重要的算法思維概念包括順序、循環(huán)、并行、事件、條件、運(yùn)算符和數(shù)據(jù)(變量)[3],簡(jiǎn)要說(shuō)明如下頁(yè)表1所示。此外,由于Scratch開(kāi)發(fā)團(tuán)隊(duì)從適合編程初學(xué)者的角度對(duì)Scratch編程環(huán)境和編程語(yǔ)言進(jìn)行了獨(dú)具匠心的設(shè)計(jì)(如用不同形狀的代碼塊表示編程語(yǔ)句的句法),因而,學(xué)生在拼搭代碼塊、組合腳本的過(guò)程中可以潛移默化地掌握一套編程規(guī)范和方法。例如,在將不同形狀代碼塊(包括堆代碼塊、控制代碼塊、啟動(dòng)代碼塊和用于偵測(cè)的參數(shù)代碼塊)合理拼搭在一起、組成腳本的過(guò)程中理解編程語(yǔ)句的語(yǔ)法規(guī)則、利用腳本執(zhí)行的即時(shí)反饋(如變量監(jiān)視器或“交談泡泡”)作為查找程序錯(cuò)誤的可視化線索。
2.軟件工程與系統(tǒng)思維
用Scratch開(kāi)發(fā)的創(chuàng)意計(jì)算作品是軟件,因此軟件開(kāi)發(fā)的相關(guān)策略和方法也是創(chuàng)意計(jì)算的重要學(xué)習(xí)目標(biāo)與內(nèi)容,它包括遞增與迭代、測(cè)試與調(diào)試、抽象與建模、模塊化[4],簡(jiǎn)要說(shuō)明如表2所示。具體而言,它們是學(xué)生利用Scratch編程工具開(kāi)發(fā)軟件、完成情境任務(wù)、解決問(wèn)題的策略與方法,有助于學(xué)生形成可遷移至其他各種設(shè)計(jì)活動(dòng)的應(yīng)對(duì)復(fù)雜系統(tǒng)的系統(tǒng)化思維。
3.創(chuàng)意想象與設(shè)計(jì)思維
用Scratch做什么的想法源自學(xué)生的需求、興趣愛(ài)好、生活經(jīng)驗(yàn)和學(xué)習(xí)經(jīng)驗(yàn)等,基于這些豐富多彩的生活體驗(yàn),學(xué)生可以從多個(gè)不同的角度對(duì)創(chuàng)意計(jì)算作品進(jìn)行創(chuàng)意想象與設(shè)計(jì)。第一,可以從作品類(lèi)型上進(jìn)行創(chuàng)想,設(shè)計(jì)動(dòng)畫(huà)、游戲、故事、互動(dòng)藝術(shù)等各種類(lèi)型的創(chuàng)意計(jì)算作品。第二,也可以從主題和內(nèi)容上進(jìn)行創(chuàng)想,從娛樂(lè)游戲、學(xué)科學(xué)習(xí)、科技發(fā)展、傳統(tǒng)文化、藝術(shù)創(chuàng)作、人際交往等方面考慮。第三,作品中角色造型、音樂(lè)等要素也是學(xué)生進(jìn)行創(chuàng)意設(shè)計(jì)的入口,如不直接使用現(xiàn)成圖庫(kù)中千篇一律的圖片,而是利用Scratch自帶的繪圖工具,通過(guò)對(duì)角色的異化、變形來(lái)自己定制及創(chuàng)作獨(dú)特的角色(如字母造型或者數(shù)字造型的角色、線條勾勒的火柴人角色等),還可以拍攝自己的照片和錄制自己的解說(shuō),融入個(gè)性化的創(chuàng)意計(jì)算作品中。第四,可以對(duì)創(chuàng)作的動(dòng)畫(huà)、游戲或故事的情節(jié)進(jìn)行豐富聯(lián)想與大膽創(chuàng)編。設(shè)計(jì)思維簡(jiǎn)要說(shuō)明如表3所示。這些創(chuàng)意想象與設(shè)計(jì)思維的訓(xùn)練使學(xué)生學(xué)會(huì)表達(dá),并與自己所生活的社會(huì)、世界聯(lián)系得更緊密。
4.社會(huì)協(xié)商與參與思維
面向創(chuàng)意計(jì)算的Scratch互動(dòng)媒體合作創(chuàng)作與分享是創(chuàng)意計(jì)算實(shí)踐的主要活動(dòng)形式,美國(guó)賓夕法尼亞大學(xué)Yasmin B. Kafai教授總結(jié)了當(dāng)前以計(jì)算參與為特征的中小學(xué)程序設(shè)計(jì)教學(xué)的社會(huì)化轉(zhuǎn)向趨勢(shì),即創(chuàng)建應(yīng)用程序、再創(chuàng)作他人作品和參與編程社區(qū)。[5]因此,我們要把編程工具使用中所關(guān)注的用來(lái)思考的對(duì)象(objects-to-think-with)轉(zhuǎn)變?yōu)閰⑴c編程社區(qū)過(guò)程中可以與他人共享的對(duì)象(shared objects)[6],讓學(xué)生在再利用與再創(chuàng)造[7]、協(xié)同創(chuàng)作、展示與分享的過(guò)程中體驗(yàn)社會(huì)協(xié)商,提升參與思維,簡(jiǎn)要說(shuō)明如下頁(yè)表4所示。
由此可見(jiàn),面向創(chuàng)意計(jì)算Scratch教學(xué)目標(biāo)是多元和具體的,從創(chuàng)意設(shè)計(jì)和趣味編程出發(fā),可以延伸出如上四個(gè)Scratch教學(xué)目標(biāo)。實(shí)際上,學(xué)習(xí)編程、學(xué)習(xí)算法思維只是創(chuàng)意計(jì)算的目標(biāo)之一,正如美國(guó)MIT終身幼兒園研究小組主任雷斯尼克(Mitchel Resnick)教授在2012年TED主題演講《讓我們教孩子學(xué)編程吧》中指出,學(xué)習(xí)編程的意義在于“學(xué)習(xí)編程、在編程中學(xué)習(xí)(Learning to code, coding to learn)”。[8]也就是通過(guò)編程活動(dòng)、創(chuàng)意計(jì)算實(shí)踐來(lái)培養(yǎng)學(xué)生的創(chuàng)造性思維、系統(tǒng)性推理和協(xié)同創(chuàng)作的能力[9],這些能力將適用于未來(lái)的任何工作崗位。大多數(shù)學(xué)生長(zhǎng)大后未必會(huì)成為計(jì)算機(jī)科學(xué)家或?qū)I(yè)程序設(shè)計(jì)人員,但他們可以在基于Scratch的創(chuàng)意計(jì)算實(shí)踐中發(fā)展成為數(shù)字時(shí)代所需要的創(chuàng)意設(shè)計(jì)者和計(jì)算思維者。此外,編程的用途也不僅限于工作和學(xué)習(xí),編程還可以作為個(gè)人生活中表達(dá)思想和情感的新途徑、新方法,通過(guò)制作有關(guān)母親節(jié)、教師節(jié)等的節(jié)日互動(dòng)媒體將自己與想要關(guān)心的人聯(lián)系起來(lái)。
● 面向創(chuàng)意計(jì)算的Scratch教學(xué)策略
“為創(chuàng)作而教”的Scratch教學(xué)方法由華南師范大學(xué)附屬小學(xué)吳向東老師提出,它包括提出創(chuàng)作主題—范例研習(xí)—模仿設(shè)計(jì)—自由創(chuàng)作—分享交流幾個(gè)不斷循環(huán)的教學(xué)階段[10],與MIT提出的想象、編程和分享的創(chuàng)意設(shè)計(jì)過(guò)程相呼應(yīng),比較適合教師從范例入手引導(dǎo)學(xué)生在范例研習(xí)、代碼塊和腳本理解的基礎(chǔ)上對(duì)范例進(jìn)行模仿和簡(jiǎn)單改編。
為了使創(chuàng)意計(jì)算教學(xué)從教學(xué)生如何用Scratch代碼塊編程走向創(chuàng)意設(shè)計(jì)與計(jì)算思維的結(jié)合,我們提出如下一些教學(xué)策略。
1.引導(dǎo)學(xué)生把自己的想法轉(zhuǎn)變?yōu)榫幊痰哪_本
自由創(chuàng)作是Scratch創(chuàng)意計(jì)算教學(xué)的根本目標(biāo),而提出創(chuàng)意作品的想法并把想法用編程實(shí)現(xiàn)是學(xué)生自由創(chuàng)作的重難點(diǎn)。這需要教師在教學(xué)之初就重視這方面的訓(xùn)練。實(shí)際上,歸納提煉用戶的應(yīng)用需求(或想法)是應(yīng)用軟件開(kāi)發(fā)中的重要環(huán)節(jié),也就是抽象與建模,它是一種把現(xiàn)實(shí)問(wèn)題轉(zhuǎn)換為編程問(wèn)題的方法。抽象是指從現(xiàn)實(shí)問(wèn)題中提取關(guān)鍵的數(shù)據(jù),在Scratch編程中,學(xué)生需要確定創(chuàng)意計(jì)算作品中包括哪些角色;建模是指對(duì)這些數(shù)據(jù)如何進(jìn)行處理(或操作),在Scratch編程中,學(xué)生需要考慮這些角色具有哪些特定的行為表現(xiàn)。
在范例研習(xí)時(shí),教師要引導(dǎo)學(xué)生從觀察到作品運(yùn)行結(jié)果來(lái)描述作品的功能,并在腳本區(qū)查找實(shí)現(xiàn)特定功能的對(duì)應(yīng)編程腳本,幫助學(xué)生建立想法到編程腳本之間的聯(lián)系。在修改范例時(shí),教師要引導(dǎo)學(xué)生提出修改范例的各種想法,讓學(xué)生在已學(xué)習(xí)知識(shí)的范圍內(nèi)嘗試把想法轉(zhuǎn)變?yōu)榫幊棠_本。此外,教師還可以在提供情境任務(wù)的情況下,訓(xùn)練學(xué)生抽象和建模的能力,根據(jù)特定的情境,想象一個(gè)故事,通過(guò)抽象確定作品中的各種角色,再通過(guò)建模,確定各個(gè)角色具有哪些行為表現(xiàn),有的可以是自主行為,如移動(dòng)、旋轉(zhuǎn)、特效、發(fā)聲、變換造型,有的可以是事件觸發(fā)行為,如根據(jù)鍵盤(pán)鼠標(biāo)或與其他角色交互的事件觸發(fā)其他行為。
經(jīng)過(guò)有意圖的想象到編程的訓(xùn)練,學(xué)生在自由創(chuàng)作時(shí)可以主動(dòng)運(yùn)用抽象和建模的方法,學(xué)會(huì)用編程腳本實(shí)現(xiàn)自己的想法,從而進(jìn)入創(chuàng)意計(jì)算、作品創(chuàng)作的自由王國(guó),體驗(yàn)創(chuàng)意計(jì)算的樂(lè)趣。
2.引導(dǎo)學(xué)生歸納總結(jié)實(shí)現(xiàn)特定功能的編程技巧
在范例研習(xí)階段,學(xué)生接觸的每一個(gè)Scratch范例作品都隱含著一些實(shí)現(xiàn)特定功能的編程腳本,這些需要學(xué)生掌握的編程技巧與方法通過(guò)情境化(contextualized)的范例作品呈現(xiàn)出來(lái)。學(xué)習(xí)創(chuàng)意計(jì)算不應(yīng)止步于這些范例作品本身和其中的編程腳本,教師應(yīng)引導(dǎo)學(xué)生從具體的情境化范例中歸納、總結(jié)這些有用的編程技巧與方法(如角色追隨鼠標(biāo)移動(dòng)、角色與背景的初始化、生命值變量和計(jì)時(shí)器的使用等),這種歸納與總結(jié)是一種去情境化(decontextualized)的過(guò)程,它有助于學(xué)生掌握各種編程技巧與方法。在經(jīng)歷了情境化范例教學(xué)和去情境化歸納總結(jié)之后,學(xué)生就可以接受更多的挑戰(zhàn)性任務(wù),進(jìn)行創(chuàng)意計(jì)算作品的自由創(chuàng)作,此時(shí),學(xué)生會(huì)創(chuàng)編不同于已學(xué)范例的新的動(dòng)畫(huà)、游戲或故事,根據(jù)新作品的功能需要借鑒、取用、重組這些編程腳本或編程技巧,由此進(jìn)入一個(gè)更高層次的再情境化(recontextualized)學(xué)習(xí)過(guò)程,也就是重新使用其他豐富的情境化動(dòng)畫(huà)、游戲或故事,把脫離情境的編程技巧加以包裝,打造為獨(dú)創(chuàng)的、富有個(gè)性的創(chuàng)意計(jì)算作品。可以說(shuō),學(xué)習(xí)編程的意義也在于此,將已學(xué)的編程技巧應(yīng)用于新情境、新問(wèn)題、新任務(wù),創(chuàng)新的萌芽就從這里起步。
3.在有意圖的擺弄中學(xué)習(xí)
擺弄(tinkering)是不同于規(guī)劃、支持自底向上的問(wèn)題解決方法。隨著創(chuàng)客運(yùn)動(dòng)的興起和創(chuàng)客文化對(duì)教育領(lǐng)域的影響,擺弄一詞日漸擺脫修修補(bǔ)補(bǔ)的本意,而被視為一種重視探究和動(dòng)手體驗(yàn)的工作風(fēng)格和學(xué)習(xí)方式。[11]在有意圖的擺弄中學(xué)習(xí)是學(xué)生開(kāi)展Scratch創(chuàng)意計(jì)算實(shí)踐的主要方式,其特點(diǎn)是學(xué)生以玩樂(lè)、探究、迭代的方式投入問(wèn)題或項(xiàng)目中。在創(chuàng)意計(jì)算作品的創(chuàng)作即擺弄的過(guò)程中,學(xué)生可以嘗試新想法,經(jīng)常評(píng)估目標(biāo),做出調(diào)整和不斷完善,一遍又一遍地探究新途徑和想象新可能。[12]例如,學(xué)生先確定游戲作品的主題和游戲規(guī)則,然后完成第一個(gè)關(guān)卡中各個(gè)角色的編程,接著嘗試創(chuàng)作新的關(guān)卡、道具、障礙以達(dá)到輸贏的平衡。有位學(xué)生在空戰(zhàn)游戲的創(chuàng)作過(guò)程中逐漸萌生了“黑夜模式”的想法,讓用戶有了黑夜模式下進(jìn)行空戰(zhàn)游戲的不同體驗(yàn),可見(jiàn)創(chuàng)作創(chuàng)意計(jì)算作品的目標(biāo)是在擺弄、探究、嘗試的過(guò)程中逐漸產(chǎn)生的。
● “闖關(guān)大冒險(xiǎn)”教學(xué)設(shè)計(jì)、實(shí)施過(guò)程及評(píng)析
基于上述Scratch教學(xué)目標(biāo)與教學(xué)策略,我們?cè)O(shè)計(jì)了一堂題為“闖關(guān)大冒險(xiǎn)”的Scratch課,這堂課以學(xué)生已學(xué)習(xí)的移動(dòng)/控制/外觀類(lèi)代碼塊和簡(jiǎn)單編程經(jīng)驗(yàn)為基礎(chǔ)。以下從設(shè)計(jì)理念、教學(xué)目標(biāo)、流程設(shè)計(jì)、實(shí)施過(guò)程等幾方面進(jìn)行展示與分析。
1.設(shè)計(jì)理念與教學(xué)目標(biāo)
“闖關(guān)大冒險(xiǎn)”以迪士尼的寶藏灣為情境,首先引導(dǎo)學(xué)生通過(guò)創(chuàng)意想象來(lái)構(gòu)思關(guān)卡故事,并利用Scratch編寫(xiě)腳本,從而實(shí)現(xiàn)關(guān)卡的創(chuàng)意設(shè)計(jì),再嘗試拼接關(guān)卡,最后進(jìn)行分享交流,在這個(gè)過(guò)程中讓學(xué)生經(jīng)歷“想象、編程、分享”的創(chuàng)意作品創(chuàng)作過(guò)程。整節(jié)課中,教師重點(diǎn)關(guān)注的是引導(dǎo)學(xué)生進(jìn)行創(chuàng)意想象,并使用Scratch軟件的編程(計(jì)算)方法來(lái)實(shí)現(xiàn)自己的創(chuàng)意表達(dá)。因此,個(gè)性化創(chuàng)意表達(dá)和編程實(shí)現(xiàn)是作品創(chuàng)作的核心,每位學(xué)生都可以發(fā)揮創(chuàng)意,構(gòu)思不同的關(guān)卡故事,使得作品內(nèi)容更具多樣化和個(gè)性化,而非簡(jiǎn)單模仿教師提供的單一范例。為了正確地編程實(shí)現(xiàn)關(guān)卡設(shè)計(jì),教師需要鼓勵(lì)學(xué)生反復(fù)測(cè)試和調(diào)試程序。此外,通過(guò)關(guān)卡的拼接倡導(dǎo)同伴協(xié)作,讓闖關(guān)變得更有趣、更具挑戰(zhàn)性。
“闖關(guān)大冒險(xiǎn)”的教學(xué)目標(biāo)涵蓋了三維目標(biāo),具體表述如下:
知識(shí)與技能目標(biāo):學(xué)會(huì)利用“導(dǎo)入作品”,將多個(gè)Scratch作品進(jìn)行拼接。
過(guò)程與方法目標(biāo):通過(guò)將口頭描述轉(zhuǎn)化為Scratch軟件語(yǔ)言的過(guò)程,初步體會(huì)抽象和建模的思想;在制作和嘗試拼接作品的過(guò)程中,學(xué)會(huì)通過(guò)測(cè)試和調(diào)試來(lái)完善作品的方法。
情感態(tài)度與價(jià)值觀目標(biāo):在觀察和嘗試作品拼接的過(guò)程中,體會(huì)協(xié)作的重要性;從作品構(gòu)思、軟件實(shí)現(xiàn)到分享交流,感受編程的樂(lè)趣和成功的喜悅。
2.流程設(shè)計(jì)與實(shí)施過(guò)程
“闖關(guān)大冒險(xiǎn)”這節(jié)課的教學(xué)過(guò)程包括五個(gè)環(huán)節(jié),如圖1所示。以下重點(diǎn)展示想象、編程和分享三個(gè)環(huán)節(jié)的教學(xué)設(shè)計(jì)與課堂實(shí)施過(guò)程。
(1)想象——?jiǎng)?chuàng)意構(gòu)思
在這節(jié)課中,教師首先通過(guò)展現(xiàn)學(xué)生感興趣的情境,引發(fā)學(xué)生的好奇心,激發(fā)學(xué)習(xí)興趣。在引入課題時(shí),由學(xué)生喜聞樂(lè)見(jiàn)的“迪士尼”故事作為切入點(diǎn),并播放以“寶藏灣”為情境而制作的“闖關(guān)大冒險(xiǎn)”Scratch動(dòng)畫(huà)片頭。在歡快的背景音樂(lè)中,杰克船長(zhǎng)走到山洞門(mén)前,連喊了兩聲“芝麻開(kāi)門(mén)”。隨著“咯吱”聲響起,沉重的洞門(mén)緩緩打開(kāi),而后出現(xiàn)“闖關(guān)大冒險(xiǎn)”作品主題。熟悉的情境、生動(dòng)的動(dòng)畫(huà)片頭一下子就吸引了學(xué)生的目光,打開(kāi)了想象的思緒。此時(shí),教師自然地引出課題,說(shuō)明整堂課的學(xué)習(xí)內(nèi)容,并鼓勵(lì)學(xué)生創(chuàng)意構(gòu)思后續(xù)的關(guān)卡故事。
在引導(dǎo)學(xué)生想象方面,教師使用了非常規(guī)的手段,并鼓勵(lì)有創(chuàng)見(jiàn)的關(guān)卡故事。教師先讓學(xué)生安靜、閉眼,排除外界干擾;然后教師用緩慢的語(yǔ)速,引導(dǎo)學(xué)生以第一人稱進(jìn)行自由想象?!凹偃缒憔褪墙芸舜L(zhǎng),當(dāng)洞門(mén)緩緩打開(kāi)后,呈現(xiàn)在你眼前的是什么?(停頓)是讓人驚喜、恐懼、歡樂(lè)、憂傷的畫(huà)面,還是另一個(gè)世界?”學(xué)生快速思維,大約30秒后,請(qǐng)學(xué)生睜眼,講述自己腦海中的畫(huà)面。有一位學(xué)生的故事是這樣的:當(dāng)洞門(mén)打開(kāi)后,杰克船長(zhǎng)看到一個(gè)金光燦燦的山洞,里面有一條龍和一箱珠寶。用方向鍵可以控制船長(zhǎng)行走,但是要避開(kāi)龍,否則龍會(huì)噴火,船長(zhǎng)就死了。如果船長(zhǎng)安全地走到寶箱前,寶箱會(huì)打開(kāi),并且進(jìn)入下一關(guān)卡。在教師的語(yǔ)言提示下,學(xué)生將口頭描述的故事畫(huà)面抽象為三個(gè)角色(杰克船長(zhǎng)、火龍、寶箱)和一個(gè)舞臺(tái)背景(金光燦燦的山洞)。接著教師通過(guò)一連串問(wèn)題的引導(dǎo),讓學(xué)生明確各個(gè)角色的動(dòng)作腳本。例如,針對(duì)火龍這一角色,教師提問(wèn):“故事剛開(kāi)始時(shí),火龍是什么狀態(tài)?什么時(shí)候噴火?如何實(shí)現(xiàn)噴火的動(dòng)作?火龍是在一個(gè)角落不動(dòng),還是不停地移動(dòng)?”學(xué)生們踴躍發(fā)言,并將火龍的動(dòng)作分解如下:①當(dāng)點(diǎn)擊綠旗時(shí),火龍切換到造型一(不噴火),重復(fù)執(zhí)行在1秒內(nèi)移動(dòng)到隨機(jī)位置;②當(dāng)點(diǎn)擊綠旗時(shí),重復(fù)偵測(cè)火龍是否碰到船長(zhǎng),如果碰到,則面向船長(zhǎng),并切換到造型二(噴火)。就這樣,在交流關(guān)卡故事的過(guò)程中,學(xué)生們進(jìn)一步拓展創(chuàng)意思路,優(yōu)化構(gòu)思。在師生互動(dòng)分析角色動(dòng)作的過(guò)程中,學(xué)生們明確了關(guān)卡故事里的不同角色,將想象的關(guān)卡故事抽象到“角色、舞臺(tái)”,并且分解各個(gè)角色的動(dòng)作,將其梳理為Scratch編程語(yǔ)言“當(dāng)……,角色會(huì)……”,從而實(shí)現(xiàn)建模,它為“口頭描述”轉(zhuǎn)化為“編程語(yǔ)言”搭建了腳手架,使得故事構(gòu)思轉(zhuǎn)變?yōu)镾cratch創(chuàng)意計(jì)算作品成為可能。在抽象角色和建模角色動(dòng)作的基礎(chǔ)上,教師布置個(gè)人課堂任務(wù),即設(shè)計(jì)一個(gè)闖關(guān)關(guān)卡,并重點(diǎn)針對(duì)其中的一個(gè)角色,搭建腳本。故事構(gòu)思與基于抽象、建模的創(chuàng)意計(jì)算作品創(chuàng)作思路如圖2所示。
(2)編程——?jiǎng)?chuàng)意實(shí)現(xiàn)
擬定創(chuàng)意構(gòu)思的故事藍(lán)圖和梳理角色動(dòng)作之后,學(xué)生就可以綜合運(yùn)用已有的Scratch技能,搭建腳本,并不斷測(cè)試和調(diào)試,用編程(計(jì)算)的方法實(shí)現(xiàn)自己的關(guān)卡故事。如果說(shuō)在“想象”環(huán)節(jié),教師的定位主要是“造夢(mèng)者”。那么,在編程階段,教師的角色則轉(zhuǎn)變?yōu)椤凹夹g(shù)顧問(wèn)”,個(gè)別輔導(dǎo),幫助學(xué)生解決技術(shù)問(wèn)題。教師還可以針對(duì)學(xué)生普遍存在的問(wèn)題,面向全班學(xué)生開(kāi)展技術(shù)交流。比如,有一位學(xué)生的故事內(nèi)容是“一只獅子靜靜地坐在草地上,只需點(diǎn)擊它,獅子就會(huì)變成奔跑的樣子,并發(fā)出‘吼吼聲”。但在作品播放中,學(xué)生發(fā)現(xiàn)獅子會(huì)倒著跑,而且跑出畫(huà)面后,當(dāng)再一次播放時(shí),它還是消失得無(wú)影無(wú)蹤。于是,教師引導(dǎo)學(xué)生觀察獅子這一角色的腳本。很快,學(xué)生自己就找到了解決的方法。比如,利用動(dòng)作模塊,增加獅子的初始化腳本為“當(dāng)綠旗被點(diǎn)擊時(shí),移到指定的X/Y位置”;再設(shè)置獅子“面向指定的方向”。在輔導(dǎo)學(xué)生的過(guò)程中,教師發(fā)現(xiàn),“初始化”和“重復(fù)偵測(cè)”是學(xué)生較易出現(xiàn)的問(wèn)題。因此,要通過(guò)作品交流、分析和歸納,幫助學(xué)生不斷地思考和解決問(wèn)題,最終編程實(shí)現(xiàn)作品創(chuàng)意。在此過(guò)程中,學(xué)生們能夠深刻地體會(huì)到創(chuàng)意的實(shí)現(xiàn)需要反復(fù)測(cè)試和調(diào)試。
個(gè)人的關(guān)卡設(shè)計(jì)只能算是小作品,如果可以將多位學(xué)生的作品進(jìn)行拼接,那才稱得上是闖關(guān)大冒險(xiǎn)。因此,當(dāng)大部分學(xué)生初步實(shí)現(xiàn)創(chuàng)意時(shí),教師鼓勵(lì)學(xué)生同伴協(xié)作,整合出更復(fù)雜的創(chuàng)意作品。首先,以一個(gè)學(xué)生作品為例,教師一邊演示一邊講解如何利用“廣播”功能將教師制作的動(dòng)畫(huà)片頭和學(xué)生的關(guān)卡作品串接起來(lái),并把不同關(guān)卡中的角色隨廣播消息而顯示的實(shí)現(xiàn)方法進(jìn)行歸納,如圖3所示。
然后,教師鼓勵(lì)學(xué)生嘗試?yán)脧V播功能拼接關(guān)卡,實(shí)現(xiàn)多關(guān)卡的“闖關(guān)大冒險(xiǎn)”。在嘗試拼接關(guān)卡作品的過(guò)程中,學(xué)生們能夠明確同伴協(xié)作可以實(shí)現(xiàn)更復(fù)雜的創(chuàng)意計(jì)算作品,并初步體會(huì)到軟件工程模塊化設(shè)計(jì)的思想。
(3)分享——?jiǎng)?chuàng)意展示
在交流分享環(huán)節(jié),除了展示自己的創(chuàng)意作品,學(xué)生還可以說(shuō)說(shuō)自己的作品創(chuàng)意和后續(xù)有待完善的創(chuàng)意設(shè)計(jì)。同伴則可以針對(duì)這個(gè)未必完美的作品提出進(jìn)一步修改和完善的建議。在這樣“坦誠(chéng)交流、思維碰撞”的分享過(guò)程中,學(xué)生可以感受到分享是完善創(chuàng)意設(shè)計(jì)與編程實(shí)現(xiàn)的重要途徑。
3.教學(xué)設(shè)計(jì)評(píng)析
“闖關(guān)大冒險(xiǎn)”這節(jié)課是立足Scratch教學(xué)、面向?qū)W生創(chuàng)意計(jì)算能力培養(yǎng)的一種嘗試。它以一個(gè)半開(kāi)放的情境化命題入手,鼓勵(lì)學(xué)生在“想象”中設(shè)計(jì)創(chuàng)意,在“編程”中實(shí)現(xiàn)創(chuàng)意,在“分享”中交流創(chuàng)意。這節(jié)課的設(shè)計(jì)有如下特點(diǎn):
(1)重視激發(fā)學(xué)生的想象力、啟迪學(xué)生創(chuàng)新思維
教師創(chuàng)設(shè)激發(fā)學(xué)生想象力的情境,通過(guò)閉眼想象、心理暗示等方法為學(xué)生構(gòu)思關(guān)卡故事搭建平臺(tái)。讓學(xué)生從范例研習(xí)、模仿改編逐步走向自由創(chuàng)作。
(2)通過(guò)師生互動(dòng),引導(dǎo)學(xué)生掌握抽象建模的問(wèn)題解決策略
從關(guān)卡故事的創(chuàng)意到搭建腳本、編程實(shí)現(xiàn),其中的難點(diǎn)是梳理關(guān)卡故事中的角色(含背景)和角色的各種動(dòng)作的對(duì)應(yīng)腳本。為了突破難點(diǎn),教師采用師生互動(dòng)方法,在敘說(shuō)關(guān)卡故事、抽象提煉故事中的主要角色、分析不同角色的動(dòng)作的過(guò)程中幫助學(xué)生從口頭描述轉(zhuǎn)化為編程語(yǔ)言,從而掌握抽象建模的問(wèn)題解決策略。
(3)設(shè)計(jì)關(guān)卡拼接活動(dòng)促進(jìn)學(xué)生協(xié)同創(chuàng)作
教師巧妙地應(yīng)用Scratch中“導(dǎo)入作品”的功能,鼓勵(lì)學(xué)生開(kāi)展同伴協(xié)作,把不同學(xué)生創(chuàng)作的關(guān)卡整合為一個(gè)更復(fù)雜的創(chuàng)意作品。這種整合需要利用廣播功能實(shí)現(xiàn)作品的拼接,因此加深了學(xué)生對(duì)廣播的理解。
(4)提供展示、交流、分享、反思的機(jī)會(huì)
在創(chuàng)意展示的分享環(huán)節(jié),學(xué)生有機(jī)會(huì)通過(guò)展示作品、分享創(chuàng)意設(shè)計(jì)和編程實(shí)現(xiàn)的得與失,進(jìn)行相互學(xué)習(xí),體驗(yàn)分享是創(chuàng)意計(jì)算作品創(chuàng)作的重要過(guò)程。
(5)運(yùn)用可視化工具促進(jìn)學(xué)生理解、內(nèi)化編程思想
教師利用可視化圖表工具把抽象與建模、利用廣播實(shí)現(xiàn)作品拼接的編程思想進(jìn)行清晰地描述,有助于學(xué)生理解、內(nèi)化這些編程思想。
當(dāng)然,“闖關(guān)大冒險(xiǎn)”所呈現(xiàn)的教學(xué)模式可以根據(jù)學(xué)生的Scratch創(chuàng)作能力、授課時(shí)間、內(nèi)容等因素進(jìn)行適當(dāng)微調(diào)。
①時(shí)間微調(diào)。對(duì)入門(mén)者而言,教學(xué)環(huán)節(jié)過(guò)多,無(wú)法在課堂的45分鐘內(nèi)完成所有活動(dòng)和任務(wù)(創(chuàng)意想象、編程實(shí)現(xiàn)、關(guān)卡拼接、分享交流),可以采用連堂課,或者分解為兩節(jié)課完成,前一節(jié)課側(cè)重于想象與編程,后一節(jié)課關(guān)注協(xié)作和分享。
②情境微調(diào)。本教學(xué)案例以半開(kāi)放的情境化命題入手,凸顯教學(xué)重點(diǎn),不至于造成學(xué)習(xí)過(guò)于發(fā)散。隨著學(xué)生創(chuàng)作能力提升,可以逐步嘗試開(kāi)放情境,由學(xué)生自主擬定主題、作品類(lèi)型進(jìn)行創(chuàng)意想象,在項(xiàng)目規(guī)劃、資料搜集、素材準(zhǔn)備的基礎(chǔ)上開(kāi)始創(chuàng)建自己的故事、游戲等腳本。
③分組微調(diào)。作品創(chuàng)作可以加入形式多樣的合作學(xué)習(xí)活動(dòng),如結(jié)對(duì)編程、創(chuàng)作接龍。在結(jié)對(duì)編程中,兩人一組,使用一臺(tái)計(jì)算機(jī),通過(guò)討論合作完成項(xiàng)目;或者多人一組,各自負(fù)責(zé)一個(gè)關(guān)卡,之后再整合成一個(gè)作品。讓作品創(chuàng)作的過(guò)程有充分的社會(huì)互動(dòng)。
④內(nèi)容微調(diào)。作品內(nèi)容可以與其他課程內(nèi)容進(jìn)行整合,如與數(shù)學(xué)學(xué)科結(jié)合,制作一個(gè)辨別質(zhì)數(shù)的游戲,或與英語(yǔ)學(xué)科結(jié)合,制作一個(gè)具有劇情的英語(yǔ)動(dòng)畫(huà)。
● 結(jié)語(yǔ)
側(cè)重于創(chuàng)意設(shè)計(jì)和趣味編程的Scratch教學(xué)實(shí)踐將創(chuàng)意和計(jì)算兩個(gè)概念整合在一起。面向創(chuàng)意計(jì)算的Scratch教學(xué)實(shí)踐是關(guān)注創(chuàng)意設(shè)計(jì)的教育,是培育計(jì)算思維者(非專(zhuān)業(yè)程序員)的教育,是賦權(quán)予學(xué)生讓他們成為設(shè)計(jì)師、創(chuàng)造家(非消費(fèi)者)的教育。[13]面向創(chuàng)意計(jì)算的Scratch教學(xué)模式強(qiáng)調(diào)教師在教學(xué)中扮演的關(guān)鍵性角色,引導(dǎo)學(xué)生把自己的想法轉(zhuǎn)變?yōu)榫幊痰哪_本,歸納總結(jié)實(shí)現(xiàn)特定功能的編程技巧,并在有意圖的擺弄中學(xué)習(xí)。這樣的教學(xué)過(guò)程呼應(yīng)了MIT雷斯尼克教授所提出的幼兒園學(xué)習(xí)取向創(chuàng)造思考的五步驟螺旋:想象—?jiǎng)?chuàng)造—游戲—分享—反思—再想象……[14]提供了學(xué)生知識(shí)建構(gòu)與創(chuàng)意培養(yǎng)的方法。希望透過(guò)“闖關(guān)大冒險(xiǎn)”這節(jié)課,可以重新認(rèn)識(shí)Scratch教學(xué)目標(biāo)和教學(xué)策略,增加Scratch教學(xué)的深度與廣度,在實(shí)踐中培養(yǎng)學(xué)生諸如創(chuàng)造性思維、系統(tǒng)性推理和協(xié)同創(chuàng)作的創(chuàng)意計(jì)算能力。
參考文獻(xiàn):
[1]毛澄潔,彭晟.參與、實(shí)踐、創(chuàng)新與分享——Scratch教學(xué)問(wèn)題與流派淺析[J].中國(guó)信息技術(shù)教育,2013(10):9-11.
[2][10]吳向東,王繼華.為創(chuàng)作而教:兒童數(shù)字文化創(chuàng)作課程的教學(xué)方法[J].中小學(xué)信息技術(shù)教育,2010(11):23-25.
[3][4][7]Brennan,K.,&Resnick,M.New frameworks for studying and assessing the development of computational thinking [EB/OL].http://web.media.mit.edu/~kbrennan/files/Brennan_Resnick_AERA2012_CT.pdf.2013-10-05.
[5][6]YasminB.Kafai&Quinn Burke.The social turn in K-12 programming: moving from computational thinking to computational participation[A]. In Proceeding of the 44th ACM technical symposium on Computer science education (SIGCSE '13)[C]. ACM, New York, NY, USA, 2013, pp603-608.
[8]Resnick,M.Let's teach kids to code[EB/OL].
http://www.ted.com/talks/mitch_resnick_let_s_teach_kids_to_code. 2014-08-26.
[9]Resnick, M.Mother's Day,Warrior Cats,and Digital Fluency:Stories from the Scratch Online Community. Proceedings of the Constructionism 2012 conference. Athens, Greece. 2012.
[11][12]Resnick M. and Rosenbaum E. Designing for Tinkerability [EB/OL].
http://web.media.mit.edu/~mres/papers/designing-for-tinkerability.pdf.2013-12-03.
[13]Karen Brennan,Christan Balch&Michelle Chung.The Creative Computing Curriculum Guide[EB/OL]. http://scratched.gse.harvard.edu/guide/. 2014-08-26.
[14]Resnick, M. Sowing the Seeds for a More Creative Society. Learning and Leading with Technology, December 2007:18-22.