摘 要 目的:通過對少兒編程語言做比較研究,以期為少兒編程教育語言選擇提供參考。方法:根據(jù)青少年發(fā)育特點(diǎn),對10歲以前和10歲以后兩個(gè)階段的少兒需要選擇不同的編程語言進(jìn)行教學(xué)。對常見的Scratch、編程貓、Small Basic、Python等編程語言的功能和特點(diǎn)進(jìn)行詳細(xì)分析。結(jié)果:低年齡段少兒學(xué)習(xí)編程主要選擇圖形化、模塊化、積木式的編程語言,如Scratch、編程貓等,學(xué)員通過編程完成小作品,逐步形成邏輯化的思維習(xí)慣;高年齡段少兒需要在編程思維、算法思維、編程技術(shù)等方面進(jìn)一步提高,應(yīng)選擇Small Basic、Python等高級語言進(jìn)行編程學(xué)習(xí)。結(jié)論:少兒接受編程教育對于培養(yǎng)邏輯思維和計(jì)算思維,提高解決問題的能力具有重要意義。選擇合適的編程語言有利于激發(fā)學(xué)習(xí)興趣,提高編程能力,為進(jìn)一步的人工智能學(xué)習(xí)打下編程基礎(chǔ)。
關(guān)鍵詞 計(jì)算機(jī)教育;編程語言;比較研究;Scratch;Python
Abstract Objectives:To make a comparative study on childrens programming language, so as to provide reference for selection of language in childrens ?programming education.Methods:According to the characteristics of adolescent development,children in the two stages before the age of 10 and after the age of 10 need to choose different programming languages for teaching.The functions and features of common programming languages,such as Scratch,Codemao,Small Basic,Python,etc.Results:Children at low ages mainly choose graphical,modular, building block programming languages for programming,such as Scratch,Codemao,to guide children interested in programming,complete small works,and let them gradually form logical thinking.Children at the senior age group need to further improve their programming thinking,algorithmic thinking,and programming technology.Advanced languages such as Small Basic and Python are suitable for programming learning of children above the age of 10.Conclusion:Childrens programming education is of great significance in cultivating logical and computational thinking and improving their ability to solve problems.Choosing the proper programming language is conducive to stimulating learning interest and improving programming skills,and providing basis of programming for further artificial intelligence learning.
Key words Computer education;Programming language;Comparative study;Scratch;Python
背景
近年來,隨著我國經(jīng)濟(jì)高速發(fā)展,人們在教育方面的投資意愿持續(xù)增強(qiáng)。2017年7月8日,國家中央政府網(wǎng)站發(fā)布了《國務(wù)院關(guān)于印發(fā)新一代人工智能發(fā)展規(guī)劃的通知》(國發(fā)[2017]35號文件),第一次正式把人工智能提高到了國家戰(zhàn)略發(fā)展層面,刺激、鼓勵(lì)社會(huì)各界參與我國人工智能的建設(shè)和發(fā)展。信息產(chǎn)業(yè)和教育產(chǎn)業(yè)方面的政策利好,推動(dòng)了信息化教育尤其是少兒編程教育的蓬勃發(fā)展。人工智能帶來的無人駕駛、人臉識(shí)別、電子支付等新興信息化技術(shù),以及滲透至生活各個(gè)方面的信息化系統(tǒng),都與編程密不可分,這些信息技術(shù)的革新和升級,給編程行業(yè)帶來廣闊的發(fā)展機(jī)會(huì)及應(yīng)用前景。目前,少兒編程在美國學(xué)前及小學(xué)教育中的普及率達(dá)到40%以上,而國內(nèi)只有0.96%,國內(nèi)的少兒編程教育起步晚、覆蓋面窄、發(fā)展慢,少兒編程教育市場需求極大。接受過高等教育的家長們意識(shí)到編程教育與信息化產(chǎn)業(yè)的關(guān)系,將少兒編程作為孩子的一項(xiàng)課余興趣甚至技能,投入許多時(shí)間、精力和經(jīng)濟(jì)成本進(jìn)行培養(yǎng),期望孩子通過早期接觸編程教育,為今后的學(xué)習(xí)及職業(yè)生涯打下基礎(chǔ),創(chuàng)造機(jī)會(huì)[1]。然而,少兒編程教育與成人編程教育有著截然不同的區(qū)別。成人編程教育致力于教會(huì)學(xué)習(xí)者如何寫代碼、編制復(fù)雜的應(yīng)用程序,使計(jì)算機(jī)按指定步驟進(jìn)行工作,完成明確的任務(wù),解決實(shí)際業(yè)務(wù)需求。少兒編程教育是通過可視化游戲啟蒙和積木圖形化編程等寓教于樂的方式,開發(fā)少兒的計(jì)算思維和創(chuàng)新解難能力,其目標(biāo)是培養(yǎng)其編程的邏輯思維和算法思維[2]。目前,少兒編程教育有多種程序語言,如何針對少兒自身情況選擇一門合適的編程語言進(jìn)行教學(xué),是值得教育機(jī)構(gòu)和家長認(rèn)真思考的問題[3]。本文對少兒編程常用的幾種編程語言做比較研究,以期為少兒編程教育選擇合適的語言工具提供參考。
1少兒編程基礎(chǔ)
國內(nèi)外大量研究表明,少兒階段完成合適的編程課程,有利于提高學(xué)生的邏輯思維能力和抽象思維能力,并促進(jìn)計(jì)算思維水平的整體發(fā)展。將編程學(xué)習(xí)與STEAM教育相結(jié)合,還可以在編程學(xué)習(xí)、訓(xùn)練、創(chuàng)作的過程中,引導(dǎo)孩子在科學(xué)、技術(shù)、工程、數(shù)據(jù)、藝術(shù)等方面素質(zhì)的提高。我們希望少兒能夠通過學(xué)習(xí)編程,對編程學(xué)科產(chǎn)生一定的興趣,對程序設(shè)計(jì)有初步理解,提高信息檢索能力和利用信息解決問題的能力,并在完成編程作品的過程中學(xué)會(huì)與人合作。
家長在選擇編程語言和培訓(xùn)機(jī)構(gòu)時(shí)也應(yīng)該圍繞上述目標(biāo)來進(jìn)行。少兒編程學(xué)習(xí)一定要結(jié)合兒童自身的特點(diǎn)來選擇編程語言。一般來說,編程需要學(xué)習(xí)者接受基礎(chǔ)教育,有相關(guān)基本能力后才能適應(yīng)編程方面的訓(xùn)練。這些基本能力包括:邏輯思維能力、數(shù)學(xué)計(jì)算能力、簡單的英文單詞拼寫和識(shí)別能力,并了解計(jì)算機(jī)基本結(jié)構(gòu)。少兒在這些方面的基礎(chǔ)總體較弱,為此不少研究機(jī)構(gòu)和大型軟件公司設(shè)計(jì)了有針對性的語言平臺(tái),學(xué)生選擇適合自身情況的語言平臺(tái),在學(xué)習(xí)編程的過程中,可以反向增強(qiáng)上述基本能力的建設(shè)。少兒的學(xué)習(xí)狀態(tài)和發(fā)育狀況是不斷變化的,濃厚的學(xué)習(xí)興趣、合理的教學(xué)方法、科學(xué)的課程安排都能夠正向刺激學(xué)習(xí)過程。
2程序語言介紹
程序語言是人機(jī)交互的工具,不論是軟件編程還是硬件編程,都是通過程序語言將開發(fā)者的指令傳達(dá)到機(jī)器,機(jī)器識(shí)別語言指令后做出一定的響應(yīng)。跟人類語言類似,程序語言必須同時(shí)具備語法和語義兩方面要素。要進(jìn)行硬件編程,開發(fā)者必須對硬件特性非常了解,由于不同的硬件可能差別巨大,且硬件成本較高,因此總體來說硬件編程難度大、要求高,適合少兒編程的平臺(tái)少;軟件編程是建立在標(biāo)準(zhǔn)的平臺(tái)之上,開發(fā)成本相對低廉,軟件開發(fā)更加標(biāo)準(zhǔn)化和產(chǎn)業(yè)規(guī)?;.?dāng)前軟件行業(yè)流行的C/C++、JAVA、Python等高級軟件編程語言,因其語法強(qiáng)大、程序可讀性強(qiáng)等設(shè)計(jì)特性,可方便進(jìn)行數(shù)據(jù)運(yùn)算和流程控制,在各自領(lǐng)域都一枝獨(dú)秀。其中C/C++和JAVA在程序入門學(xué)習(xí)的門檻較高,要求學(xué)習(xí)者有比較扎實(shí)的編程基礎(chǔ),學(xué)習(xí)成本高,學(xué)習(xí)曲線陡峭,一旦掌握其編程精髓后,則產(chǎn)出較高,但都不適合少兒編程教育。
K12階段是青少年基礎(chǔ)教育和智力發(fā)育快速進(jìn)步的階段,其中6~12歲定義為少兒。每個(gè)年齡段的兒童發(fā)育水平差異很大,為此少兒編程至少要分為2個(gè)階段,分別使用不同的語言和教案。我們需要針對兩個(gè)年齡段,選擇合適的語言和編程平臺(tái),讓他們能夠逐步理解編程思想,進(jìn)入編程學(xué)科的大門。
3適用于低年級少兒的編程語言
目前,國內(nèi)外有專門針對10歲以內(nèi)兒童的語言平臺(tái),市場上流行的主要是Scratch、Tynker、Kitten、StartLogo和Kudo??紤]到Kudo更像一款游戲,而StartLogo操作界面復(fù)雜,語言國際化程度不高,這兩種語言在少兒編程教育中使用較少,因此在本文不做贅述。以下是對Scratch、Tynker、Kitten的介紹。
3.1 Scratch
Scratch是2006年由麻省理工學(xué)院領(lǐng)導(dǎo)的團(tuán)隊(duì)開發(fā)的編程平臺(tái),研發(fā)團(tuán)隊(duì)成員來自美國賓州大學(xué)、哈佛大學(xué)、微軟等IT業(yè)頂級機(jī)構(gòu)。目前,Scratch已經(jīng)升級到3.0版本,功能日趨完善,國外部分高校的非計(jì)算機(jī)專業(yè)也在嘗試使用Scratch教授編程課程。Scratch作為一款在少兒編程教育中應(yīng)用最廣泛的語言之一,具有以下多方面的優(yōu)越性[4]。①使用者不論是否商用均可以免費(fèi)使用;②界面為動(dòng)畫風(fēng)格,對兒童非常友好;③界面國際化完成度高,支持中文在內(nèi)的大部分語言,學(xué)習(xí)者不需要英語基礎(chǔ)即可入門;④程序的基本元素充足,學(xué)習(xí)者能夠充分了解事件觸發(fā)、事件響應(yīng)、流程控制、變量設(shè)置、運(yùn)算過程、界面元素等程序基本結(jié)構(gòu);⑤以拖動(dòng)積木的方式完成程序流程,低年級學(xué)生可以不敲字母即實(shí)現(xiàn)編程;⑥平臺(tái)自帶教程,低年級學(xué)生可以在家長陪伴下完成任務(wù),動(dòng)手能力強(qiáng)的學(xué)生也可以嘗試自學(xué);⑦語言社區(qū)成熟,內(nèi)容豐富,國際化程度高,上傳到社區(qū)的作品非常豐富,世界各地的開發(fā)者可以交流經(jīng)驗(yàn);⑧系統(tǒng)跟多家硬件廠商合作,可以支持包括樂高在內(nèi)的多種產(chǎn)品的硬件編程。
3.2 Tynker
Tynker平臺(tái)誕生于2013年,由硅谷的IT公司Tynker設(shè)計(jì)實(shí)現(xiàn)。這款軟件借鑒了Scratch積木式的編程方式,以web化的技術(shù)實(shí)現(xiàn)了系統(tǒng)功能,教學(xué)過程類似Scratch編程。目前,Tynker一方面通過在線接收學(xué)生的方式進(jìn)行編程教育,另外一方面通過資助英語地區(qū)的中、小學(xué),與這些學(xué)校開展合作從而為少兒編程培訓(xùn)積累經(jīng)驗(yàn)。這個(gè)平臺(tái)與Scratch的主要區(qū)別在于,它采用收費(fèi)式的線上、線下培訓(xùn)體系,將培訓(xùn)教學(xué)模式和教學(xué)平臺(tái)開發(fā)模式相結(jié)合。Tynker雖然推出了移動(dòng)端的免費(fèi)版本,但是桌面端還是收費(fèi)模式,故在全球推廣上,受眾度比Scratch更低。Tynker目前主要的學(xué)習(xí)工具專注于瀏覽器在線和ipad上,更多的偏向于互聯(lián)網(wǎng)模式,其免費(fèi)教程很少,大部分都服務(wù)于收費(fèi)的培訓(xùn)課程。Tynker的編程平臺(tái)界面如圖2所示,其總體結(jié)構(gòu)和Scratch基本一致,左側(cè)是分類的程序控件,中部是編程的主要部分即程序流程編寫框,右側(cè)上方是程序運(yùn)行效果圖,右側(cè)下方是程序需要的圖片和動(dòng)畫元素。使用者從左側(cè)上方點(diǎn)擊“分類按鈕”后,左側(cè)下方會(huì)出現(xiàn)具體的程序控制按鈕,將需要的按鈕拖動(dòng)到界面中部,并且將這些按鈕連接起來,形成完整的控制流程,右側(cè)的每一個(gè)動(dòng)畫元素都可以有各自的控制流程。程序開始運(yùn)行時(shí),所有動(dòng)畫在事件觸發(fā)后,按照程序制定流程運(yùn)行。
3.3 編程貓
編程貓是類似Tynker的中國本土化產(chǎn)品,它的積木化風(fēng)格完全繼承自Scratch,基于H5技術(shù)實(shí)現(xiàn),它是國內(nèi)同名培訓(xùn)機(jī)構(gòu)“編程貓”開發(fā)的少兒編程平臺(tái)?!熬幊特垺笔菄鴥?nèi)規(guī)模較大的編程教育培訓(xùn)機(jī)構(gòu),該機(jī)構(gòu)有較強(qiáng)的研發(fā)能力,獨(dú)立開發(fā)出這款少兒編程軟件——編程貓。編程貓集成了幾個(gè)模塊,分別是:類似Scratch的面向低年齡少兒的Kitten、面向中高年級的少兒編程產(chǎn)品海龜編輯器、游戲制作區(qū)代碼島、答題和交流社區(qū)產(chǎn)品——通天塔、還有硬件編程模塊。編程貓的獨(dú)特之處在于,平臺(tái)在創(chuàng)立之初就考慮到了學(xué)習(xí)者成長后需要從少兒編程語言過渡到使用高級編程語言。Kitten模塊中有一鍵切換的代碼轉(zhuǎn)換按鈕,可以將積木模式的代碼以Python或者js代碼形式展示;海龜編輯器是專門為過渡到Python編程而設(shè)計(jì)的,它繼承了Python的海龜畫圖功能,并提供了代碼模式和積木模式的切換功能。答題和交流社區(qū)產(chǎn)品通天塔也是其創(chuàng)新之處,它提供了各種難度的題目,學(xué)員可以在家長的指導(dǎo)下使用,檢測自身對編程知識(shí)點(diǎn)的掌握情況。編程貓Kitten的編程主界面如圖3所示,相對于Scratch和Tynker,該平臺(tái)最顯著的區(qū)別在于右側(cè)的代碼轉(zhuǎn)換區(qū)域,學(xué)員可以看到積木程序?qū)?yīng)Python代碼的具體內(nèi)容。
綜上,上述三款編程學(xué)習(xí)平臺(tái)都是針對基本能力較弱的低年齡少兒設(shè)計(jì)的,它們都采用積木式的拖拽方式,將流程設(shè)計(jì)概念直觀形象地展示出來。每種積木具備特定的功能和標(biāo)識(shí),使學(xué)員無需了解英文和語法即可使用。這三款編程學(xué)習(xí)平臺(tái)都具備了程序設(shè)計(jì)的最基本功能。因?yàn)镾cratch屬于完全開源的項(xiàng)目,其版權(quán)聲明不論是否商業(yè)行為使用都完全免費(fèi),因此商業(yè)和非商業(yè)機(jī)構(gòu)都大量采用Scratch作為教學(xué)平臺(tái)。另外,Scratch有非常豐富的教程,提供了由簡入繁幾十個(gè)案例,少兒可以在家長的指導(dǎo)下完成教程中的任務(wù),從而掌握積木式編程的方法。家長也可以根據(jù)教程,以親子活動(dòng)的形式,與孩子一起學(xué)習(xí)編程并協(xié)助完成學(xué)習(xí)任務(wù),提高孩子的編程技能。而Tynker和編程貓是單個(gè)大型收費(fèi)培訓(xùn)機(jī)構(gòu)自行研發(fā)的平臺(tái),成本更高,他們在自家培訓(xùn)機(jī)構(gòu)的指導(dǎo)下結(jié)合業(yè)務(wù)特點(diǎn)做了更多的定制化開發(fā),故這兩個(gè)平臺(tái)的受眾更少,但是在商業(yè)市場中也有大量學(xué)員使用。因此,不論從經(jīng)濟(jì)性還是平臺(tái)的易用性來看,Scratch都具備非常強(qiáng)大的競爭力,這也是其在低年齡少兒編程領(lǐng)域全面領(lǐng)先的原因。
4適用于高年級少兒的編程語言
上述積木式開發(fā)工具,對于10歲以下的兒童入門學(xué)習(xí)來說已經(jīng)足夠,通過使用這些工具,學(xué)習(xí)者可以了解程序的順序、結(jié)構(gòu)、處理邏輯等基本概念和方法。進(jìn)入高年級,編程學(xué)習(xí)的重點(diǎn)將逐步從興趣引導(dǎo)、概念認(rèn)識(shí)方面過渡到計(jì)算思維、軟件開發(fā)初步能力、動(dòng)手能力、初步計(jì)算機(jī)算法思維等能力的培養(yǎng)。這需要開啟高級語言的學(xué)習(xí),但是軟件行業(yè)流行的C/C++和JAVA并沒有出現(xiàn)在少兒編程的重要選項(xiàng)之中,原因在于,C/C++需要扎實(shí)的計(jì)算機(jī)基礎(chǔ),同時(shí)要掌握的細(xì)節(jié)極多;而JAVA面向?qū)ο蠓矫娴母拍詈驼Z法對于青少年初學(xué)者來說難度很大。以下是國內(nèi)外在小學(xué)高年級和中學(xué)階段采用的程序語言和平臺(tái),我們逐一分析。
4.1 Alice
Alice創(chuàng)立于1995年,是一款定位于3D和VR的動(dòng)畫游戲開發(fā)、設(shè)計(jì)的免費(fèi)平臺(tái),它也是通過拉取積木的方式,實(shí)現(xiàn)對動(dòng)畫元素的控制。新版Alice的核心功能是用JAVA語言實(shí)現(xiàn)的,它自帶JAVA虛擬機(jī)。在任務(wù)練習(xí)的過程中,學(xué)習(xí)者將會(huì)在故事場景中加入各種元素,這些元素的功能設(shè)計(jì),將代碼函數(shù)以下拉框形式呈現(xiàn)出來。涉及的JAVA類的選擇、JAVA對象的創(chuàng)建、對象屬性的設(shè)置,可以讓學(xué)習(xí)者了解到JAVA代碼的編碼流程和面向?qū)ο蟮某绦蛟O(shè)計(jì)理念;JAVA對象方法行為的實(shí)現(xiàn),讓學(xué)習(xí)者可以更好地理解和掌握函數(shù)、變量、控制、遞歸等編程方法。
Alice具備國際化的功能框架,最新版本的中文國際化已經(jīng)較成熟,缺點(diǎn)是界面友好度較差,控件比較復(fù)雜。目前美國的一些中學(xué)和小學(xué)高年級在使用Alice教授編程和動(dòng)畫設(shè)計(jì)課程,其中包括有名的Duke中學(xué)。Alice采用積木拖拉式的設(shè)計(jì),加入了比較復(fù)雜的操作函數(shù)和指令控件,適合于中學(xué)高年級的沒有編程基礎(chǔ)的學(xué)生。平臺(tái)的進(jìn)化在近年來有所加快,包括VR功能、模塊化集成,并提供更加復(fù)雜的IDE環(huán)境,支持使用者加載項(xiàng)目外的其他有用資源。平臺(tái)自身也提供比較豐富的課程體系,包括如何處理動(dòng)畫元素、如何建立和使用內(nèi)容庫,并提供了對應(yīng)的練習(xí)和小任務(wù)供學(xué)員強(qiáng)化。美國市場上也有大量的課程和書籍供學(xué)習(xí)者使用。但這些課程通常比較復(fù)雜,一般用于配合課程學(xué)習(xí)中試用。
4.2 Small Basic
Small Basic創(chuàng)建于2008年,它是微軟公司專為少兒編程而開發(fā)設(shè)計(jì)的一個(gè)精簡版的Basic平臺(tái),在功能上參考了老牌的少兒編程語言LOGO,專門設(shè)計(jì)了小海龜繪圖的功能,同時(shí)又完全繼承了.NET家族中的Visual Basic語言。像其他.NET語言一樣,這款免費(fèi)的學(xué)習(xí)語言也只能在Windows系統(tǒng)上運(yùn)行,經(jīng)過多年的改進(jìn),這個(gè)平臺(tái)已經(jīng)日趨完善。該平臺(tái)包括3個(gè)部分:語言、IDE(集成開發(fā)環(huán)境)、函數(shù)庫。①語言,即Small Basic,來自BASIC的早期變體(Beginner's All-purpose Symbolic Instruction Code)。BASIC本是微軟公司最初創(chuàng)建的旨在幫助學(xué)生學(xué)習(xí)編碼的語言之一,微軟繼續(xù)提煉其中有益的部分用于設(shè)計(jì)適用于少兒的編程平臺(tái),旨在培養(yǎng)少兒順其自然地過渡到微軟的.NET編程體系的重要部分,Small Basic語言簡單、有趣、易學(xué),代碼可以移植到VB,還可以發(fā)布到網(wǎng)上。②IDE(集成開發(fā)環(huán)境):它的IDE基本功能齊備,簡單易用,初學(xué)者可以感受IDE對于提升編程效率的重要性。③庫:每一種編程語言都有大量的庫函數(shù)供開發(fā)者使用,Small Basic的庫簡單有趣,學(xué)生可以通過調(diào)用庫函數(shù)完成一些較高級的功能[5]。安裝軟件平臺(tái)時(shí)自帶教程,官方網(wǎng)站也可以在線瀏覽教程,這些教程需要家長翻譯后教授少兒使用。Small Basic程序語言學(xué)習(xí)難度總體較低,國內(nèi)部分中學(xué)的編程課程和教材開始嘗試從VB轉(zhuǎn)變?yōu)镾mall Basic[6-7]。
4.3 Python
Python作為大數(shù)據(jù)算法庫的重要承載工具,近年來在工業(yè)界的使用率持續(xù)攀升。跟Small Basic相比,它有如下特征。①庫:大數(shù)據(jù)算法庫是其最大的特色,作為一款流行的高級語言,許多軟件公司還提供了大量開源的Python庫供開發(fā)者使用。教學(xué)方面,大學(xué)微積分、生物信息學(xué)、地質(zhì)學(xué)、高性能計(jì)算等諸多學(xué)科的學(xué)者和研究機(jī)構(gòu)也提供了Python編程所需要的庫函數(shù)。②腳本語言:Python也是一款腳本語言,無需編譯(從文字翻譯為機(jī)器指令的過程);其運(yùn)行需要的虛擬機(jī)平臺(tái)在各主要流行的操作系統(tǒng)都有安裝包,因此Python是跨系統(tǒng)的語言;在語法上,它與其他的高級語言已經(jīng)很接近,學(xué)習(xí)Python后再學(xué)習(xí)其他語言也很容易上手。③IDE:Python自身是不帶IDE的,只有類似寫字板的編寫工具,因此需要借助其他IDE工具比如Pycharm、eclipse、vscode等來進(jìn)行編程。這些工具都很復(fù)雜,大部分學(xué)員需要專門培訓(xùn)一段時(shí)間后才能熟練使用。這些IDE在業(yè)界都非常有名,支持跨語言功能,即使以后使用其他高級語言,在IDE的使用方式上也差別不大。IDE的學(xué)習(xí)難度是Python相較于Small Basic的劣勢,而學(xué)員一旦掌握了其中一種IDE,編程效率將極大提高。
國外一些大學(xué)將Python和C語言的教學(xué)效果做了比較,兩者除了在輟學(xué)率上相近外,在學(xué)習(xí)者的考試失敗率、作業(yè)提交數(shù)量、實(shí)驗(yàn)參與率等方面,Python的教學(xué)結(jié)果均更優(yōu)。
綜上所述,Small Basic專為初學(xué)者設(shè)計(jì),上手難度較低,學(xué)習(xí)者只要按照教程一步步執(zhí)行操作步驟,即可了解高級語言編程的基本過程,同時(shí)可以相對順滑地過渡到Windows平臺(tái)的VB或者.NET編程,對于大部分初學(xué)者來說,Small Basic還是比較合適的。Python的上手難度更大,界面和操作的友好性更低,需要專業(yè)培訓(xùn)及指導(dǎo)才能入門,一旦進(jìn)入學(xué)習(xí)狀態(tài),達(dá)到了一定的熟練度就可以直接學(xué)習(xí)工業(yè)界的編程方式,能更平緩、順利過渡到更高階段的編程學(xué)習(xí)。Alice作為高年級入門編程工具,也是一個(gè)不錯(cuò)的選擇,學(xué)習(xí)者可以通過編輯3D動(dòng)畫游戲,了解程序設(shè)計(jì)的基本流程,其底層的Java代碼也可以天然對接更高級的編程學(xué)習(xí)。這三種語言中,Python語言最完備,IDE工具功能強(qiáng)大,在各個(gè)學(xué)科的用途廣泛,庫函數(shù)豐富,具有工業(yè)級的生產(chǎn)標(biāo)準(zhǔn)并且產(chǎn)業(yè)生態(tài)良好,雖然上手難度相對更大,但是建議對編程有極大興趣并希望進(jìn)一步深入鉆研的學(xué)習(xí)者,可以考慮在高年級直接從Python開始學(xué)習(xí)[8]。
5教學(xué)說明
需要說明的是,少兒學(xué)習(xí)編程并不局限于讓他們走上編程的職業(yè)道路,我們只是希望他們能夠通過編程接觸到一種新的學(xué)習(xí)方式和思維方式,并幫助他們學(xué)會(huì)關(guān)注、想象、創(chuàng)造、合作、分享和思考[9]。美國在20世紀(jì)60年代就開始思考如何為少兒設(shè)計(jì)合適的編程語言,以一種新的形式培養(yǎng)他們的邏輯思維和計(jì)算思維能力。之后,歐、美、日在語言方面繼續(xù)研究并提出空間化的編程語言,逐步演化出畫圖的小海龜工具和針對少兒的圖形編程工具,構(gòu)建了像Scratch這樣的積木式編程平臺(tái),甚至連通了硬件設(shè)備和機(jī)器人,最后開啟了商業(yè)培訓(xùn)模式。
編程學(xué)習(xí)不僅需要一款合適的語言平臺(tái),還需要專業(yè)的老師對學(xué)員因材施教。目前少兒編程教育方面的研究表明,如果老師以積極的態(tài)度,協(xié)調(diào)學(xué)員參與各類活動(dòng),鼓勵(lì)他們交流和對話、克服困難,就會(huì)促進(jìn)學(xué)員的編程興趣[10]。在編程學(xué)習(xí)的初期,家長也可以是孩子學(xué)習(xí)的好老師,高質(zhì)量地陪伴孩子一起學(xué)習(xí)編程,相互借鑒、合作、討論、多鼓勵(lì),會(huì)有非常不錯(cuò)的效果。
最后,課程安排也是學(xué)習(xí)編程非常重要的環(huán)節(jié)。除了上課,試驗(yàn)、交流、排查問題等過程都是必需的環(huán)節(jié),學(xué)員們要參與編程的多個(gè)階段。除了編碼,老師還要指導(dǎo)并協(xié)助學(xué)員進(jìn)行完整的小項(xiàng)目,按照步驟進(jìn)行問題分析、方案設(shè)計(jì)、編寫代碼、調(diào)試運(yùn)行、總結(jié)反思等,教學(xué)形式可以多樣化,比如參加夏令營、編程比賽、科技展覽,甚至親子結(jié)對編程等。
6結(jié)束語
孩子在校學(xué)習(xí)具備一定基礎(chǔ)之后,家長可以選擇合適的少兒編程平臺(tái)和培訓(xùn)機(jī)構(gòu),讓孩子接受編程方面的學(xué)習(xí),以激發(fā)計(jì)算化的思維從而提高思考和解決問題的能力。本文對3種入門級以及3款初級編程語言和平臺(tái)進(jìn)行了詳細(xì)的介紹和比較,家長可以據(jù)此幫助孩子選擇合適的編程語言進(jìn)行學(xué)習(xí),讓孩子對編程保持濃厚的興趣和深入研究的精神,為進(jìn)一步的人工智能學(xué)習(xí)打下編程基礎(chǔ)。
參考文獻(xiàn)
[1] 郭學(xué)軍,汪傳建.少兒編程培訓(xùn)熱的教育學(xué)審視[J].人民教育,2019,(10):62-66.
[2] 馬強(qiáng).基于計(jì)算思維培養(yǎng)的少兒可視化編程教學(xué)設(shè)計(jì)研究[D].石家莊:河北師范大學(xué),2019.
[3] 戚偉慧.少兒編程的可行性研究與分析[J].電子技術(shù)與軟件工程,2016,(24):253-254.
[4] 錢筱陽,付詩佳,吳子昊,等.Scratch少兒編程教育探索與實(shí)踐[J].科教導(dǎo)刊(上旬刊),2019,(8):134-135.
[5] 蘆明明.基于small basic的高中信息技術(shù)課算法教學(xué)設(shè)計(jì)研究[D].上海:上海師范大學(xué),2011.
[6] 況旭.基于翻轉(zhuǎn)課堂的初中Small Basic程序教學(xué)模式設(shè)計(jì)與實(shí)踐[J].教育信息技術(shù),2018,(5):55-59.
[7] 顧佳敏.人工智能教育在初中信息科技課程中的初步探索[J].上海課程教學(xué)研究,2019,(9):31-34.
[8] 馬尚輝.基于學(xué)科核心素養(yǎng)的高中信息技術(shù)Python教學(xué)初探[J].教學(xué)管理與教育研究,2019,(6):82-83.
[9] 張陽.青少年編程教育體系研究與實(shí)踐[J].技術(shù)與教育,2019,(2): 24-29.
[10] 候繼倉,馬紅.選擇規(guī)劃人生中的編程教育——用選擇結(jié)構(gòu)程序做出判斷[J].中國信息技術(shù)教育,2018,(1):28-29.
作者簡介
黃烈甫,學(xué)歷:碩士,專業(yè)特長:大數(shù)據(jù)應(yīng)用、分布式計(jì)算、軟件開發(fā)。