劉立勛 龍華金 蔡悅
摘要:本文介紹的可面向軟件或硬件的編程工具在圖形化編程中,以其明顯的簡潔性和“類似玩具”的特性,培養(yǎng)了青少年對編程的興趣,為進入人工智能、計算機編程時代做好準備。
關(guān)鍵詞:青少年;圖形化編程;編程工具
中圖分類號:TP319 文獻標識碼:A 文章編號:1007-9416(2019)05-0208-03
0 引言
少兒圖形化編程是一種新興的編程模式。它并不是要求青少年學(xué)習(xí)如何編寫高級開發(fā)語言例如C語言、Python語言的文本代碼,而是通過一些具有簡易文字的圖形模塊來編程,在軟件方面可以制作一些有趣的小游戲、動畫,以此進行游戲編程啟蒙;在硬件方面可以通過電子元件連接制作一些趣味小項目,動手開動想象發(fā)揮創(chuàng)造。圖形化編程的編程形式是圖元模塊。圖形化編程是指將傳統(tǒng)的文本程序代碼經(jīng)過封裝成一個個圖元模塊,使用者只需將封裝好的圖元模塊進行拼接即可完成圖形程序的邏輯設(shè)計。圖元模塊拼接相當于傳統(tǒng)文本編程的流程圖,兩者的邏輯思想是一致的,區(qū)別只是其表達形式存在根本差異。既可基于軟件游戲,也可基于硬件電路,圖形編程門檻低、操作生動簡單、界面美觀、便于實踐,適用于各個層次使用者學(xué)習(xí)[1]。
本文首先現(xiàn)對圖形化編程軟件系統(tǒng)進行簡單介紹,其次到面向6歲以上兒童的少兒編程工具——Srcatch,最后簡述面向12歲以上的青少年、可供硬件編程工具——Mixly。
1 圖形化編程的軟件系統(tǒng)
圖形化編程的使用者主要是兒童、青少年而并非是專業(yè)的編程人員,他們沒有任何的編程基礎(chǔ),故易于使用、簡潔明了是圖形化編程軟件的首要目標。而且編程軟件的界面需美觀,要有更好的交互性,界面的布局需要合理,顏色的使用要符合兒童、青少年的審美,達到真正的易學(xué)易用。圖形化編程的軟件系統(tǒng)主要包括軟件界面設(shè)計、圖元模塊的封裝、圖形程序編輯設(shè)計、圖形程序編譯和通信擴展[2]。
(1)軟件界面:主要包括圖元模塊庫欄、程序編輯窗口、菜單欄、工具欄、C語言生成窗口和輸出狀態(tài)窗口等。界面設(shè)計主要使用Java語言代碼設(shè)計,Eclipse的插件為界面運行提供支持。(2)圖元模塊的封裝:圖形化編程軟件中的一個圖元模塊對應(yīng)著傳統(tǒng)文本編程的一句代碼、一個底層調(diào)用函數(shù),通過對傳統(tǒng)文本編程的代碼、函數(shù)等進行封裝后變成可供使用的簡易文字圖形化模塊。其封裝過程使用C++語言,以模塊形式封裝的編程元素和表示不同數(shù)據(jù)結(jié)構(gòu)、功能之間關(guān)系的代碼,通過對不同功能函數(shù)和代碼段的封裝來定義圖元模塊的功能。(3)圖形程序編輯設(shè)計:圖元模塊可以進行復(fù)制、移動、刪除、創(chuàng)建和參數(shù)修改。對于編輯圖元模塊,主要是鼠標的操作;鼠標的按下、松開和移動。圖形程序設(shè)計部分主要是在程序編輯窗口完成,進行程序設(shè)計時是對在圖元模塊庫中且具有各種功能的圖元模塊根據(jù)所需實現(xiàn)的功能效果進行拼接。拼接的方式即類似于積木的堆疊,把多個圖元模塊拼接在一起以創(chuàng)建一系列程序命令,圖元模塊像拼圖積木一樣拼湊在一起呈現(xiàn)著凹陷和凸起。(4)圖形程序編譯:該圖形化編程系統(tǒng)的平臺編譯是C語言的編譯環(huán)境,當完成圖形程序的編寫后,點擊“編譯”按鈕后,首先系統(tǒng)會自動檢測并將圖形程序中的簡易文字,轉(zhuǎn)換成C語言,并對該C語言代碼執(zhí)行必要的語法檢測,根據(jù)其邏輯關(guān)系生成相應(yīng)的sub.c文件進行保存、編譯。C語言程序的編譯過程主要分為四個步驟:A、將.C文件進行預(yù)處理;B、將.C文件編譯成.O文件,此過程調(diào)用相應(yīng)的編譯器;C、將.O文件鏈接生成.elf文件,此過程調(diào)用相應(yīng)的鏈接器;D、將.elf文件轉(zhuǎn)換成.hex二進制可執(zhí)行文件,并將該文件下載運行。(5)通信擴展:該部分主要是面向圖形化編程硬件下載,支持并完成多端口數(shù)據(jù)通信。簡單來說就是將圖形化程序下載到硬件主控板上,運行其圖形化程序要實現(xiàn)的功能。圖形化編程軟件系統(tǒng)和需要連接的硬件主控板之間的信息交換即由圖形程序編譯翻譯而來的代碼和轉(zhuǎn)換的底層硬件系統(tǒng)識別的目標代碼識別通信。
2 面向軟件的圖形化編程——Srcatch
2.1 Srcatch
面向軟件制作軟件小游戲的圖形化編程軟件有很多,例如有Makeblock、linkboy、ArduBlock、blockly、WeMake等等,其中一款開源圖形化編程軟件——Srcatch,是由麻省理工學(xué)院設(shè)計和開發(fā)的。Srcatch軟件由2006年開發(fā),現(xiàn)已被翻譯成40種以上的語言,超過150個國家在被使用。該軟件可以說是面向少兒和青少年圖形化編程軟件的鼻祖,是學(xué)習(xí)少兒編程起步的最佳選擇[3]。Srcatch主要針對6歲以上的兒童,通過游戲編程啟蒙,以玩的形式來學(xué)習(xí)編程,從而培養(yǎng)孩子的邏輯思維、提升孩子的專注力。
如今,少兒編程越發(fā)火熱,各種圖形化編程軟件層出不窮,選擇使用Srcatch,主要是因為Srcatch簡單易學(xué)而且其功能強大,可制作游戲、動畫、繪畫、音樂、數(shù)學(xué)、科學(xué)、動作,且編程界面美觀、顏色鮮艷明麗、封裝好的簡易文字模塊簡單易理解。
2.2 Srcatch編程實例分析
基于Srcatch,制作一個小游戲——迷宮如圖1所示。下面就以該游戲進行分析,游戲中一共有6個角色,分別是老鼠、漢堡、幽靈、甲蟲1、甲蟲2、甲蟲3。迷宮的形狀是根據(jù)對游戲設(shè)計的要求,自己在畫布上繪制。在進行游戲制作的時候,對每個角色都會有不同的編程要求,如圖2所示為角色老鼠的圖形程序。該游戲的游戲規(guī)則是老鼠在迷宮中吃漢堡,漢堡若是5秒內(nèi)還沒有被老鼠吃到,便會自動切換位置。老鼠吃漢堡期間要躲避甲蟲1、甲蟲2、甲蟲3,還有隨時隨地會突然出現(xiàn)的幽靈;幽靈出現(xiàn)后,若是5秒內(nèi)沒有觸到老鼠,便會自動消失10秒后再次出現(xiàn);而且老鼠不能碰到迷宮的,只能在迷宮中間行走;若是老鼠被甲蟲、幽靈觸碰到,即游戲結(jié)束。
少兒編程利用圖形化這種特別生動形象的方式,將傳統(tǒng)文本編程知識用呈現(xiàn)出來。在圖形編程的過程中,傳統(tǒng)的文本代碼隱藏在一個個封裝好的模塊中,只需將模塊連接就可以完成一個小程序、做出一個小項目,編程變得具象化。而且,程序都是簡易文字模塊,并不涉及真正的復(fù)雜代碼,這樣的形式使得孩子有更多的空間進行創(chuàng)造。通過這種玩的方式學(xué)習(xí),更能得孩子的歡心。畢竟喜歡玩是孩子的天性,傳統(tǒng)的教育方式將知識強行灌溉,這種少兒編程的方式更能吸引孩子的興趣。
3 面向硬件的圖形化編程——Mixly
可面向硬件的圖形化編程軟件也同樣有各型各色的軟件,就如前面的Srcatch也同樣可以面向硬件編程,但是經(jīng)過綜合分析比較,最終選擇米思齊(Mixly)。Mixly同樣作為開源軟件,其開發(fā)性在同類的圖形化編程軟件中更好而且不斷的在優(yōu)化升級,更新迭代[4]。
3.1 Mixly
(1)Mixly中文名為米思齊,是一款由北京師范大學(xué)創(chuàng)客教育實驗室開發(fā)的圖形化編程軟件。Mixly軟件并不同于Srcatch可以制作基于軟件的小游戲、小動畫,其主要是面向硬件連接硬件電路。Mixly主要針對12歲以上的青少年,如果說Srcatch是少兒編程的入門,那么Mixly則是進階,晉升為青少年編程。(2)Mixly與Srcatch等其它圖形化編程軟件的區(qū)別主要在于,Mixly在圖元模塊的封裝上很大程度保留了傳統(tǒng)文本代碼的結(jié)構(gòu),并不像其它軟件那般經(jīng)過簡化以便于少兒更好的理解。由于Mixly模塊上的文字具有文本代碼的結(jié)構(gòu),所以在學(xué)習(xí)之前,最好是有了面向軟件Srcatch編程的基礎(chǔ);在學(xué)習(xí)面向硬件Mixly后,也可為以后學(xué)習(xí)更復(fù)雜、更專業(yè)的高級編程語言做好準備。(3)Mixly面向的硬件主要是Arduino。
3.2 Arduino
Arduino是一款便捷易上手的開源電子原件平臺,其軟件硬件均為開源,兼容性和擴展性強,開放而優(yōu)秀的品臺,一直是創(chuàng)客們的優(yōu)選。Arduino自身的Arduino IDE軟件可編程,但是利用Mixly基本可以完全代替其IDE進行圖形化編程。如今,Arduino硬件已經(jīng)有了十數(shù)種不同類型的主板,有Arduino Yun、Arduino nano、Arduino mini、Arduino uno等等,這次將使用Arduino UNO并對其進行分析,如圖3所示。Arduino UNO有14個數(shù)字輸入/輸出引腳、分別有一個USB、DC、ICSP接口和復(fù)位按鈕;具有多種通信接口,可以通過數(shù)據(jù)線直接和計算機通信。
3.3 Mixly編程實例分析
下面就以Mixly圖形化編程設(shè)計的一個交通燈。該交通燈是兩組交替交通燈,模擬真實的交通燈的亮滅。其亮滅情況如表1所示。
使用的硬件主要有一塊Arduino UNO板、杜邦線若干、led燈6個、面包板一塊。硬件電路連接,選取多個數(shù)字輸出端口,例如將第一組和第二組的LED紅燈、LED黃燈、LED綠燈的正極分別接至不同的數(shù)字輸出端口,而所有的負極都連接到Arduino的GND端口。硬件原理圖如圖4所示,程序框圖如圖5所示,交通燈的圖形程序圖如圖6所示。
針對青少年的、面向硬件的Mixly圖形化編程,在進行程序設(shè)計時,可通過該模塊中保留的代碼結(jié)構(gòu)進一步了解真正的編程語言編寫流程;在進行硬件電路連接時,可學(xué)習(xí)簡單的電子電路連接,提高青少年的動手能力、思維的嚴密性。
Mixly的出現(xiàn)大大降低了傳統(tǒng)文本代碼編程的入門門檻,從跟文本代碼編程有著相似的語序結(jié)構(gòu)的圖形化編程、簡單的硬件電路連接學(xué)習(xí)中,激發(fā)了青少年的創(chuàng)意。Mixly的使用人數(shù)不斷增多、使用人群不斷擴大,從中小學(xué)生、教師到大學(xué)生、編程愛好者等。
4 結(jié)語
隨著國家對于人工智能、智能教育的大力推進和人們對智能化、計算機的重視,基于培養(yǎng)計算機思維的圖形化編程發(fā)展前景良好。青少年可以通過圖形編程軟件培養(yǎng)計算機邏輯思維、編程思維,通過硬件可以學(xué)習(xí)電子電路基礎(chǔ)原理知識,來了解、適應(yīng)人工智能的時代。Srcatch可以作為圖形化編程的入門,Mixly則可以當作Srcatch的進階,若是對編程有著濃厚的興趣,可繼續(xù)學(xué)習(xí)更深層次的高級編程語言,否則也可在圖形化編程Srcatch和Mixly的學(xué)習(xí)中培養(yǎng)了編程思維、提高專注力和動手能力。圖形編程教育在國內(nèi)雖是涌現(xiàn)了大批的培訓(xùn)機構(gòu),但是其效果并不顯著。希望少兒編程可以快速且穩(wěn)步發(fā)展,并為STEM教育做出貢獻。
參考文獻
[1] 王榮良,萬璟.走近兒童編程教育[J].中國信息技術(shù)教育,2017(21):4.
[2] 李煜卉,彭勇剛.工業(yè)機器人通用圖形化編程軟件的研究[J].機電工程,2016(4):502-506.
[3] 潘一佩.面向教育機器人的圖形化編程模塊設(shè)計及優(yōu)化[D].華南理工大學(xué),2017.
[4] 施曉軍.每個人都應(yīng)該學(xué)習(xí)編程[J].中小學(xué)信息技術(shù)教育,2014(Z1):158-160.