文/佛山市南海區(qū)羅村高級(jí)中學(xué) 蘇苑華
為培養(yǎng)創(chuàng)新人才,我校從三個(gè)維度開(kāi)展了三門(mén)校本選修課程,其中包括了以Arduino為開(kāi)發(fā)工具的電子制作基礎(chǔ)課。Arduino作為一款開(kāi)源電子原型平臺(tái),通過(guò)編程實(shí)現(xiàn)豐富多樣的交互設(shè)計(jì),能夠極大地提升學(xué)生的技術(shù)意識(shí)、創(chuàng)新思維和物化能力。根據(jù)本校校情和高中生認(rèn)知發(fā)展理論,我們?cè)谛i_(kāi)展了基于 PBL(Problem-Based Learning,簡(jiǎn)稱PBL,也稱作問(wèn)題式學(xué)習(xí))學(xué)習(xí)Arduino的校本選修課程。我們從學(xué)生的認(rèn)知角度出發(fā),設(shè)計(jì)了從圖形化編程到文本化編程的Arduino項(xiàng)目課程體系,帶領(lǐng)學(xué)生由淺入深地學(xué)習(xí)。
圖形化編程是由Arduino編程環(huán)境的第三方軟件ArduBlock上編寫(xiě)的,它是以圖形化的模塊,通過(guò)積木搭建的方式編程的,把繁雜的英文代碼簡(jiǎn)化成一個(gè)個(gè)的模塊積木,可以根據(jù)邏輯關(guān)系進(jìn)行嵌套、疊加等。
圖形化編程共設(shè)計(jì)5個(gè)課程,內(nèi)容分別為:走進(jìn)Arduino世界;智能燈;智能報(bào)警;智能欄桿;智能小車。課程設(shè)計(jì)的目標(biāo)是以智能小車為項(xiàng)目主體,通過(guò)解決真實(shí)情境的問(wèn)題,學(xué)習(xí)最基本的Arduino元器件,并在此基礎(chǔ)上體驗(yàn)如何運(yùn)用邏輯關(guān)系編寫(xiě)程序,實(shí)現(xiàn)不同的效果。
課程以項(xiàng)目設(shè)計(jì)為依托,從燈、蜂鳴器、電機(jī)等元器件的應(yīng)用,形成多種人物交互的方式,學(xué)生能夠從老師的講解和課件中理解程序設(shè)計(jì)的邏輯關(guān)系。在圖形化編程的課程中,我們集中以讓學(xué)生掌握如何應(yīng)用模塊為主,而不是按照課件的實(shí)例一模一樣地做一遍,我們要求學(xué)生在做的時(shí)候嘗試創(chuàng)新,稍微改變一些設(shè)置,主動(dòng)探索模塊的原理。課程的步驟一般為:1.通過(guò)視頻演示要達(dá)到的效果,激發(fā)學(xué)生興趣。2.老師帶領(lǐng)學(xué)生認(rèn)識(shí)新的傳感器,以及在PPT中呈現(xiàn)圖形化編程的實(shí)例,用流程圖講解其中的邏輯關(guān)系。3.學(xué)生自己上機(jī)操作,做出與實(shí)例一樣的效果。4.完成拓展練習(xí)。PPT的最后教師都會(huì)布置了一兩個(gè)作業(yè),需要學(xué)生在自己摸索并理解所學(xué)程序代碼的基礎(chǔ)上,加以應(yīng)用才能實(shí)現(xiàn)的。我們一般通過(guò)視頻來(lái)呈現(xiàn)要求達(dá)到的效果,提醒學(xué)生著重關(guān)注代碼的哪個(gè)部分,降低作業(yè)的難度。目標(biāo)是讓學(xué)生懂得遇到什么問(wèn)題應(yīng)該調(diào)用什么模塊,怎樣拼接,怎樣調(diào)用傳感器的功能。
文本化編程是用編寫(xiě)代碼的方式設(shè)計(jì)程序的,它的教學(xué)相對(duì)來(lái)說(shuō)就比較困難了。文本化編程用的是C語(yǔ)言,這是以英文為依托,加以符號(hào)、標(biāo)點(diǎn)等文字與Arduino進(jìn)行交流,需要設(shè)計(jì)者把文字一個(gè)個(gè)地碼上去,倘若少了一個(gè)標(biāo)點(diǎn)符號(hào)或者錯(cuò)了一個(gè)英文單詞,Arduino就無(wú)法正確讀取,因此為學(xué)生的掌握提高了門(mén)檻。與此同時(shí),元器件的連接方式和引腳的位置也要注意,若圖形化編程教學(xué)沒(méi)有培養(yǎng)學(xué)生養(yǎng)成檢查的習(xí)慣的話,容易產(chǎn)生問(wèn)題,實(shí)現(xiàn)不了應(yīng)有的效果,學(xué)生很容易因?yàn)槭《脨谰趩省?/p>
因此,老師需要在圖形化編程的課程中讓學(xué)生養(yǎng)好檢查的3個(gè)習(xí)慣:遇到問(wèn)題時(shí),首先檢查在軟件上有無(wú)選擇Arduino主板;其次檢查元器件的連線是否正確;最后檢查編寫(xiě)的代碼的引腳、標(biāo)點(diǎn)、大括號(hào)等有無(wú)錯(cuò)漏。第三步的檢查是最難的,軟件往往不會(huì)直接了當(dāng)?shù)仫@示錯(cuò)誤的位置,需要學(xué)生細(xì)心和耐心地檢查。
后續(xù)我們將會(huì)把Arduino與激光雕刻相結(jié)合,設(shè)計(jì)出外殼用木板拼接,核心為Arduino的機(jī)器人項(xiàng)目,讓學(xué)生動(dòng)腦又動(dòng)手。文本化編程課程目前還處于開(kāi)發(fā)階段,還沒(méi)有形成一個(gè)系統(tǒng)的體系,仍需要不斷豐富和完善。
在開(kāi)設(shè)課程的過(guò)程中,我們遇到了不少困難。首先,開(kāi)設(shè)課程之前,我們需要準(zhǔn)備上課的材料,需要購(gòu)買Arduino的元器件。由于Arduino的開(kāi)源性,全部元器件的設(shè)計(jì)包括電路、材料等都是公開(kāi)的,所以有很多廠商生產(chǎn)Arduino,以此來(lái)獲利,要找到物美價(jià)廉的元器件,實(shí)屬不易。我們通過(guò)綜合比對(duì),購(gòu)買了其中一家的 “初學(xué)者套件”,但是使用后發(fā)現(xiàn)有些傳感器的質(zhì)量不過(guò)關(guān),導(dǎo)致學(xué)生在做的時(shí)候達(dá)不到應(yīng)有的效果。
其次,Arduino需要運(yùn)用高階的思維方式,如果學(xué)生對(duì)此沒(méi)有興趣的話,很難堅(jiān)持下去,因此課程開(kāi)設(shè)應(yīng)以興趣為主導(dǎo),并與機(jī)器人相結(jié)合吸引對(duì)此有興趣的學(xué)生。而且對(duì)做得好的同學(xué)及時(shí)表?yè)P(yáng)稱贊,讓學(xué)生有成就感。
再次,本課程由于是利用課余時(shí)間上課的,所以要求學(xué)生具有較強(qiáng)的自學(xué)能力和耐力。學(xué)生在從圖形化編程到文本化編程的過(guò)渡期很容易產(chǎn)生畏難情緒,容易放棄,老師應(yīng)該多觀察、多鼓勵(lì)、多啟發(fā)學(xué)生,相信與激光雕刻結(jié)合后的文本化編程更讓學(xué)生富有成就感,學(xué)生可以設(shè)計(jì)作品的外殼,也可以融入自己喜愛(ài)的交互效果,讓作品更加生動(dòng)有趣。