黎曉芳 鄭小軍 朱育賢 莫葵鳳
摘? 要 計(jì)算思維是我國信息技術(shù)新課標(biāo)的核心內(nèi)容之一,通過編程培養(yǎng)計(jì)算思維,是各國普遍采用的重要手段?;谖墨I(xiàn)梳理和編程實(shí)踐,簡要總結(jié)Scratch、App Inventor、Mixly、LOGO、Kodu和編程貓等圖形化編程工具的特點(diǎn)及使用方法,從軟件功能、學(xué)習(xí)體驗(yàn)、教學(xué)體驗(yàn)、更新速度、配套教程和資源、易用性等方面進(jìn)行對(duì)比,并且給出針對(duì)新手和熟手的推薦等級(jí)。
關(guān)鍵詞 核心素養(yǎng);計(jì)算思維;編程;信息技術(shù)
中圖分類號(hào):G652? ? 文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1671-489X(2019)05-0038-03
1 前言
近年來,計(jì)算思維培養(yǎng)越來越受到信息技術(shù)教育工作者的關(guān)注。在我國《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)》(以下簡稱“新課標(biāo)”)中,計(jì)算思維成為新課程四大核心素養(yǎng)之一。那么,如何培養(yǎng)計(jì)算思維?計(jì)算思維和編程思維具有什么關(guān)系?有什么工具可以幫助學(xué)生更好地學(xué)習(xí)編程,幫助教師更好地培養(yǎng)學(xué)生的計(jì)算思維?
2 計(jì)算思維教育簡要回顧
2006年,周以真教授提出并界定計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)以及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)[1]。Cynthia
Selby和John Woollard提出計(jì)算思維包括算法思維(Algo-rithmic Thinking)、評(píng)估(Evaluation)、分解(Decomposi-tion)、抽象(Abstraction)、概括(Generalisation)五個(gè)要素[2]。2011年,美國將計(jì)算思維納入《CSTA K-12標(biāo)準(zhǔn)(2011修訂版)》。隨后,在英國2013年“新課程計(jì)劃”、澳大利亞2015年“新課程方案”中,計(jì)算思維成為新信息技術(shù)課程的重要內(nèi)容[3]。2017年,計(jì)算思維成為我國普通高中信息技術(shù)課程的四大學(xué)科核心素養(yǎng)之一。
3 計(jì)算思維培養(yǎng)方法
新課標(biāo)指出,計(jì)算思維包含形式化、模型化、自動(dòng)化和系統(tǒng)化四個(gè)方面,通過在信息技術(shù)課程中進(jìn)行計(jì)算思維的培養(yǎng),學(xué)生能夠采用計(jì)算機(jī)領(lǐng)域的學(xué)科方法界定問題、抽象特征、建立結(jié)構(gòu)模型、合理組織數(shù)據(jù);通過判斷、分析與綜合各種信息資源,運(yùn)用合理的算法形成解決問題的方案;總結(jié)利用計(jì)算機(jī)解決問題的過程與方法,并遷移到與之相關(guān)的其他問題解決中[4]。
通過對(duì)新課標(biāo)學(xué)業(yè)要求的分析可以發(fā)現(xiàn),計(jì)算思維的主要培養(yǎng)目標(biāo)與編程思維的“以程序的方式來思考并通過分析概念的本質(zhì)和屬性來解決問題的思維方式”“要求學(xué)習(xí)者了解計(jì)算機(jī)的代碼如何解釋,認(rèn)識(shí)一些基本的邏輯結(jié)構(gòu)”等目標(biāo)要求具有極大的相似性,如圖1所示。因此在實(shí)踐中,計(jì)算思維與編程思維具有很大的關(guān)聯(lián)性。編程思維能夠有效幫助學(xué)習(xí)者了解編程語言并設(shè)計(jì)程序的邏輯結(jié)構(gòu),進(jìn)行程序開發(fā),從而發(fā)展學(xué)生的計(jì)算思維[5]。而培養(yǎng)編程思維的重要方法是編寫程序,因此,通過采用編程工具編寫程序,可以有效地促進(jìn)計(jì)算思維的培養(yǎng)。
4 培養(yǎng)計(jì)算思維的編程工具和平臺(tái)
通過對(duì)國內(nèi)外大量文獻(xiàn)梳理可以發(fā)現(xiàn),各國學(xué)者在對(duì)計(jì)算思維進(jìn)行培養(yǎng)的實(shí)驗(yàn)過程中,采用的編程語言普遍具有“低地板、高天花板”(Low Floor, High Ceiling)的特點(diǎn)[6]。也就是說,所選擇的編程工具應(yīng)該能夠讓初學(xué)者快速入門,同時(shí)能夠擁有較高的功能,使學(xué)習(xí)者在不斷的學(xué)習(xí)進(jìn)階中使用該工具編寫出功能更強(qiáng)、更完善的程序。另外,針對(duì)青少年,所選擇的編程工具還應(yīng)該兼具趣味性、圖形化等特點(diǎn)。圖形化的編程工具通常采用拖拽積木塊語言的方式進(jìn)行編程,相比復(fù)雜的文本要顯得簡單很多,讓學(xué)生不用過多關(guān)注語法和代碼,更好地專注于編程作品的創(chuàng)作。
Scratch? Scratch是一款圖形化開發(fā)工具,代碼開源,可以進(jìn)行在線或離線編程。腳本指令通過搭積木的形態(tài)提供給學(xué)習(xí)者使用,界面直觀友好。動(dòng)畫和腳本編輯實(shí)時(shí)響應(yīng),用戶可隨時(shí)點(diǎn)擊相應(yīng)指令與動(dòng)畫進(jìn)行交互,使用門檻低。目前,Scratch已推出3.0版本,采用HTML5編寫。Scratch官網(wǎng)提供簡體中文版,有案例、在線編程頁面和交流社區(qū),針對(duì)案例還有教學(xué)課程、活動(dòng)卡片和教師手冊(cè),學(xué)習(xí)者可以編寫自己的動(dòng)畫、故事、程序和游戲等交互程序,并且可以把作品分享給全球的用戶。Scratch可將案例生成教案。在教師賬戶下,可為學(xué)生建立群組、賬號(hào),管理學(xué)生的項(xiàng)目和評(píng)論內(nèi)容。Scratch有專門的測(cè)試鏈接,對(duì)作品的積木塊簡潔性和正確性等進(jìn)行評(píng)分。
在官網(wǎng)注冊(cè)后,進(jìn)入編程主界面,可對(duì)角色和腳本進(jìn)行編輯。主界面的左邊是舞臺(tái)預(yù)覽區(qū)和角色編輯區(qū),中間是程序指令區(qū)(包含腳本、造型和聲音),右邊是腳本區(qū)。設(shè)計(jì)好背景和角色后,點(diǎn)擊相應(yīng)的角色,可對(duì)該角色進(jìn)行積木編輯;在程序中拖拽出積木塊到腳本區(qū),拼接好積木并修改好相應(yīng)的屬性和內(nèi)容后,點(diǎn)擊主頁上方的綠旗腳本開始運(yùn)行。作品全部完成后,點(diǎn)擊右上角的“分享”按鈕,就可以把作品分享給全世界的Scratch使用者。在對(duì)積木進(jìn)行編輯時(shí),還可以調(diào)出腳本區(qū)右側(cè)的教程。
App Inventor? App Inventor是一款開源、圖形化在線編程平臺(tái),可為Android系統(tǒng)手機(jī)編寫程序,創(chuàng)建軟件應(yīng)用程序(APP)。官網(wǎng)提供教程、論壇、教學(xué)課程和資源,幫助用戶學(xué)習(xí)和使用App Inventor。打開廣州市教育信息中心的App Inventor服務(wù)網(wǎng)站,用郵箱注冊(cè)后即可登錄進(jìn)入主界面,點(diǎn)擊左上角的“新建項(xiàng)目”選項(xiàng)卡,選擇相應(yīng)的項(xiàng)目名稱進(jìn)入設(shè)計(jì)頁面,最左邊是組件面板,中間是工作面板,右邊是組件列表和組件屬性。在組件面板中,除了基本的用戶界面、多媒體等功能外,還有傳感器等強(qiáng)硬件感測(cè)和樂高機(jī)器人控制功能。在組件面板中拖拽相應(yīng)的組件到工作面板中后,可在組件屬性中對(duì)相應(yīng)的組件進(jìn)行大小、顏色、文本、背景圖片等設(shè)置。
在設(shè)計(jì)頁面的右上角,單擊“邏輯設(shè)計(jì)”按鈕,可以進(jìn)入積木編輯頁面,程序的“代碼”只包含兩個(gè)塊,在積木編輯器打開后,屏幕左側(cè)會(huì)有幾個(gè)選項(xiàng),分別為“內(nèi)置塊”和“組件”。拖拽出“內(nèi)置塊”里面的積木塊,可以設(shè)置基本的功能,拖拽出“組件”中相應(yīng)的積木塊拼接到積木中,可以對(duì)組件進(jìn)行進(jìn)一步的設(shè)置。積木塊全部拼接完畢后,在工作面板中選擇打包為apk文件,在Android手機(jī)上安裝之后就可以調(diào)試運(yùn)行。
Mixly? Mixly是面向創(chuàng)意電子開發(fā)的一款圖形化編程工具,基于Google Blockly核心,支持大部分Arduino硬件,第三方也可以自己制作庫文件。軟件界面簡潔,支持多種語言,免費(fèi)開源;更新迭代頻繁,一直在優(yōu)化;使用體驗(yàn)效果好,可以查看圖形化模塊對(duì)應(yīng)的代碼;配套教程豐富,適合12歲以上的學(xué)生學(xué)習(xí)使用。通過USB線連接主板與電腦,從官網(wǎng)下載Mixly軟件,安裝程序后,可以在電腦的設(shè)備管理器看到端口。打開Mixly軟件主界面,可以看到主界面左邊是基礎(chǔ)模塊區(qū)和庫模塊區(qū),中間是程序構(gòu)建區(qū),下方是功能區(qū)和提示區(qū)。單擊“打開”按鈕,可找到范例程序并打開,隨后點(diǎn)擊“上傳”;使用第三方庫時(shí),單擊“導(dǎo)入庫”,找到庫文件路徑,選擇庫文件打開導(dǎo)入。要實(shí)現(xiàn)對(duì)電子設(shè)備的控制,需要進(jìn)行硬件連接和程序編寫。
1)硬件連接:將擴(kuò)展板插于主控板后,需要取出相應(yīng)模塊,用傳感器連接線將其與相應(yīng)管腳連接。
2)程序編寫:在庫中找到對(duì)應(yīng)模塊,拖拽到程序構(gòu)建區(qū),更改至對(duì)應(yīng)管腳,設(shè)置管腳狀態(tài)并組成程序;完成后,點(diǎn)擊“上傳”按鈕,就可以把程序燒到板上,控制擴(kuò)展板上電子元器件的活動(dòng)。
LOGO? LOGO語言是第一個(gè)兒童編程語言,簡單易用。下載并安裝好LOGO語言后,進(jìn)入LOGO的主界面,在命令窗口輸入簡單指令,點(diǎn)擊“執(zhí)行”,可以讓海龜在畫面上跟著指令走動(dòng),走動(dòng)的方向可以是上下左右,按照指定的角度移動(dòng),加速或減速移動(dòng),或讓小海龜重復(fù)執(zhí)行指令的動(dòng)作。除此之外,還可以通過指令的復(fù)雜組合和排序,創(chuàng)造出人、房子、汽車、動(dòng)物、抽象圖案等各種東西,甚至可以通過這些繪畫學(xué)習(xí)數(shù)學(xué)微積分。
Kodu? Kodu是面向兒童的可視化編程語言,可以讓孩子自己創(chuàng)造PC或XBox游戲;目前沒有中文版本,在軟件中有一些教程。下載并安裝好PC Kodu后,桌面出現(xiàn)兩個(gè)Kodu圖標(biāo),一個(gè)是關(guān)于參數(shù)設(shè)置的選項(xiàng)卡,另一個(gè)可以進(jìn)入游戲的主界面。點(diǎn)擊圖標(biāo)進(jìn)入主界面,選擇NEW WORLD進(jìn)行新的創(chuàng)作。初學(xué)者可選擇LOAD WORLD,進(jìn)入“初級(jí)編程員”階段。進(jìn)入游戲頁面后,頁面中間是編輯區(qū),可以對(duì)角色和場景進(jìn)行編輯,頁面下方是工具。要制作一個(gè)簡單的游戲,可以從工具中選擇角色,放置到編輯區(qū),設(shè)置好全部角色的相關(guān)屬性后,單擊角色的右鍵,選擇“program”可以進(jìn)入程序的“編程”頁面。Kodu的基本語句是“WHEN…DO…”,也就是如果想讓某一角色活動(dòng),需要在“WHEN”里面設(shè)置基本的活動(dòng)條件,在“DO”里面設(shè)置當(dāng)執(zhí)行條件后,角色怎樣活動(dòng)。條件和活動(dòng)都是圖形化的塊,在操作時(shí)只需要單擊進(jìn)行選擇。程序設(shè)置好后,按鍵盤的“esc”鍵回到游戲頁面,再次按“esc”鍵或者點(diǎn)擊工具欄上的“play game”圖標(biāo),就可以進(jìn)行游戲。
編程貓? 編程貓是針對(duì)中國青少年創(chuàng)建的編程平臺(tái)。平臺(tái)除了編程工具,還有一系列的課程、學(xué)習(xí)社區(qū)、虛擬教室和論壇,并且不定期舉辦各類編程比賽。平臺(tái)提供源碼編輯器、代碼島2.0和海龜編輯器三種編程工具。其中,源碼編輯器是圖形化的2D編程工具,代碼島2.0是3D的編程工具,海龜編輯器是學(xué)習(xí)Python
語言的編程工具,可以實(shí)現(xiàn)對(duì)文本編程和圖形化編程的轉(zhuǎn)換。不同的工具適合不同年齡段的學(xué)生學(xué)習(xí),可在線編程,下載PC客戶端編程,或者下載手機(jī)版的軟件進(jìn)行編程。與編程工具相對(duì)應(yīng)的編程課程體系有圖形化編程課、Python代碼編程課、3D代碼島編程課。圖形化編程課是入門級(jí)的編程課,主旨是“讓編程像搭積木一樣簡單”。Python代碼編程課是針對(duì)高考的考核科目而推出,3D代碼島編程課主張的是沉浸式學(xué)習(xí),在游戲中學(xué)習(xí)編程知識(shí)。
目前,編程貓官網(wǎng)有很多體驗(yàn)課程,不定期在荔枝微課上免費(fèi)開放“編程貓教師成長課”。通過官網(wǎng)或者客戶端進(jìn)入源碼編輯器的編程主界面,刪除多余的角色、背景和積木;點(diǎn)擊添加素材按鈕,進(jìn)入素材商城采集素材并回到“我的素材”中添加素材,在舞臺(tái)中調(diào)整好素材的位置和大小;從積木盒子中拖出相應(yīng)的積木到編輯區(qū)按順序拼接,拼接完成后,點(diǎn)擊“開始”按鈕,就可以在舞臺(tái)中看到角色按著積木程序運(yùn)動(dòng)的情況;確定無誤后,修改作品名稱,點(diǎn)擊“保存”,再點(diǎn)擊“發(fā)布”“確認(rèn)發(fā)布”按鈕,就可以將自己的作品發(fā)布到學(xué)習(xí)社區(qū)中與他人一同分享。
六款培養(yǎng)計(jì)算思維的編程工具比較分析? 以上六款編程工具和平臺(tái)各具特色,教師可以通過圖形化編程方式培養(yǎng)學(xué)生的編程能力,發(fā)展計(jì)算思維。筆者對(duì)這六款工具從軟件功能、學(xué)習(xí)體驗(yàn)、教學(xué)體驗(yàn)、更新速度、配套教程和資源、易用性等方面進(jìn)行對(duì)比,并且給出針對(duì)新手和熟手的推薦等級(jí),供學(xué)習(xí)者和教師進(jìn)行參考,如表1所示。
參考文獻(xiàn)
[1]Wing J M. Computational thinking[J].Communica-tions of the ACM,2006,49(3):33-35.
[2]Computational thinking: the developing definition[EB/OL].http://eprints.soton.ac.uk/356481.
[3]肖廣德,高丹陽.計(jì)算思維的培養(yǎng):高中信息技術(shù)課程的新選擇[J].現(xiàn)代教育技術(shù),2015(7):38-43.
[4]中華人民共和國教育部.普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017版)[S].北京:人民教育出版社,2018.
[5]郁曉華,肖敏,王美玲.計(jì)算思維培養(yǎng)進(jìn)行時(shí):在K-12階段的實(shí)踐方法與評(píng)價(jià)[J].遠(yuǎn)程教育雜志,2018(2):18-28.
[6]Grover S,Pea R. Computational Thinking in K-12 AReview of the State of the Field[J].Educational Re-searcher,2013(1):38-43.