李李
【摘要】本文通過(guò)S4A編程平臺(tái)結(jié)合開源硬件制作智能紅外溫控風(fēng)扇的實(shí)例來(lái)探索初中階段程序設(shè)計(jì)教學(xué)的一種思路:重算法和結(jié)構(gòu),輕代碼和語(yǔ)法,結(jié)合開源硬件將程序結(jié)構(gòu)和算法融入學(xué)生的日常生活實(shí)例中,培養(yǎng)學(xué)生的算法思維,讓學(xué)生真正體驗(yàn)程序設(shè)計(jì)的實(shí)用性和樂(lè)趣。
【關(guān)鍵詞】程序設(shè)計(jì);S4A 開源硬件;程序結(jié)構(gòu);算法
【背景】
程序設(shè)計(jì)是蘇科版初中信息技術(shù)8年級(jí)第4章的教學(xué)內(nèi)容。教材選取的是Visual Basic語(yǔ)言。主要教學(xué)內(nèi)容目標(biāo)是了解控制結(jié)構(gòu)(選擇結(jié)構(gòu)、順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu))和算法。VB作為一門面向?qū)ο蟮母呒?jí)語(yǔ)言,雖然繼承了Basic的簡(jiǎn)單易學(xué)特點(diǎn),然而對(duì)于大部分初中學(xué)生來(lái)講,學(xué)習(xí)VB依然有較大的難度。同時(shí),教材中選取的教學(xué)實(shí)例和編程練習(xí)基本是數(shù)學(xué)問(wèn)題,這就讓學(xué)生(尤其是害怕數(shù)學(xué)的學(xué)生)學(xué)習(xí)時(shí)感嘆程序設(shè)計(jì)就像在做數(shù)學(xué)題——抽象、枯燥。教師很難達(dá)到預(yù)期的教學(xué)效果。
義務(wù)教育初中階段的程序設(shè)計(jì)教學(xué)并不是要將學(xué)生都培養(yǎng)成編程高手,《初中信息技術(shù)課程標(biāo)準(zhǔn)》指出:要讓學(xué)生認(rèn)識(shí)使用信息技術(shù)解決問(wèn)題的意義,掌握運(yùn)用信息技術(shù)解決問(wèn)題的基本過(guò)程,能根據(jù)任務(wù)的需要提出解決問(wèn)題的方案,并能逐步實(shí)現(xiàn)。由此可見,初中階段的程序設(shè)計(jì)是要培養(yǎng)學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣,不以代碼編寫訓(xùn)練為要義,而以程序設(shè)計(jì)方法和算法思想的體驗(yàn)為旨?xì)w。強(qiáng)調(diào)從生活實(shí)際問(wèn)題出發(fā),讓學(xué)生既能體驗(yàn)并熟悉信息技術(shù)環(huán)境的優(yōu)勢(shì),又能通過(guò)設(shè)計(jì)算法和程序結(jié)構(gòu)的實(shí)現(xiàn),要在程序?qū)W習(xí)中培養(yǎng)學(xué)生利用編程解決問(wèn)題的能力。
如何才能讓學(xué)生對(duì)程序設(shè)計(jì)有興趣,不畏懼?如何才能落實(shí)程序設(shè)計(jì)教學(xué)主旨?
由此,我想到了選修教材里的機(jī)器人和物聯(lián)網(wǎng)模塊??刹豢梢蕴蕴璙B,選擇基于可視化編程語(yǔ)言Scratch的S4A結(jié)合機(jī)器人和物聯(lián)網(wǎng)傳感器內(nèi)容進(jìn)行程序設(shè)計(jì)教學(xué)呢?
【實(shí)驗(yàn)設(shè)計(jì)】
基于開源硬件的智能紅外溫控風(fēng)扇的程序設(shè)計(jì)教學(xué)。預(yù)備完成風(fēng)扇模型組裝,傳感器與編程板鏈接的學(xué)件。課程的設(shè)計(jì)淡化傳感器原理性知識(shí)和數(shù)字模擬接口的參數(shù)設(shè)置的講解。從程序結(jié)構(gòu)和算法出發(fā),注重通過(guò)程序設(shè)計(jì)的理解解決實(shí)際問(wèn)題。
教學(xué)情境:隨著氣溫的升高,風(fēng)扇又重新回歸我們的生活。生活中的風(fēng)扇總是需要人操作開關(guān)來(lái)設(shè)定它的工作狀態(tài)。有沒(méi)有方法,實(shí)現(xiàn)一個(gè)智能的風(fēng)扇,當(dāng)氣溫達(dá)到一定數(shù)值,有人在的時(shí)候才啟動(dòng)工作狀態(tài),并能隨著氣溫的變化自動(dòng)調(diào)整風(fēng)速;當(dāng)人離開時(shí),自動(dòng)進(jìn)入關(guān)機(jī)狀態(tài),節(jié)約能源呢?
教學(xué)目標(biāo):通過(guò)實(shí)現(xiàn)智能紅外溫控風(fēng)扇程序的編寫和調(diào)試,理解程序的三種基本結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),并能利用三種結(jié)構(gòu)結(jié)合算法編寫程序解決實(shí)際生活中的問(wèn)題。
準(zhǔn)備:硬件(風(fēng)扇模型、溫度傳感器、紅外傳感器、開源Arduino編程板);軟件(Scratch for Arduino)
教學(xué)設(shè)計(jì)基于開源硬件組合使用,從程序基本結(jié)構(gòu)出發(fā),采取任務(wù)驅(qū)動(dòng)形式。
任務(wù)一:實(shí)現(xiàn)智能風(fēng)扇溫度控制功能
即風(fēng)扇通過(guò)溫度傳感器判定外界氣溫是否滿足風(fēng)扇工作的條件。
學(xué)生拼接溫度感應(yīng)傳感器、直流減速電機(jī)和開源Arduino編程板,使用傳感器采集環(huán)境信息,在S4A(Scratch for Arduino)中編程,用分支(選擇)結(jié)構(gòu)語(yǔ)句設(shè)計(jì)完成智能風(fēng)扇的溫度感應(yīng)功能;用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)風(fēng)扇持續(xù)工作。
任務(wù)二:實(shí)現(xiàn)智能風(fēng)扇溫度紅外控制功能
在任務(wù)一基礎(chǔ)上調(diào)整硬件組合,添加紅外傳感器,用分支嵌套修改程序,完成智能風(fēng)扇的紅外控制功能。
任務(wù)三:實(shí)現(xiàn)智能風(fēng)扇擋位自動(dòng)調(diào)節(jié)。
用順序結(jié)構(gòu)實(shí)現(xiàn)檔位,用分支嵌套結(jié)構(gòu)在程序中完成隨溫度變化調(diào)節(jié)風(fēng)速擋位功能。
每個(gè)任務(wù)環(huán)節(jié),請(qǐng)小組展示作品,并交流程序設(shè)計(jì)心得。學(xué)生通過(guò)風(fēng)扇的工作狀態(tài)調(diào)試程序,直觀體驗(yàn)實(shí)驗(yàn)現(xiàn)象,很好地理解了程序設(shè)計(jì)的三種基本結(jié)構(gòu)。這在過(guò)去用VB教學(xué)是很不容易達(dá)到的。
【思考】
基于開源硬件的程序設(shè)計(jì)教學(xué),主旨是讓學(xué)生參與程序設(shè)計(jì)的學(xué)習(xí)。以程序設(shè)計(jì)為基礎(chǔ),以算法為核心。不強(qiáng)調(diào)代碼編寫訓(xùn)練,而以學(xué)生的程序設(shè)計(jì)方法和算法思想的體驗(yàn)為旨?xì)w。強(qiáng)調(diào)從生活實(shí)際問(wèn)題出發(fā),讓學(xué)生既能體驗(yàn)并熟悉信息技術(shù)環(huán)境的優(yōu)勢(shì),又能通過(guò)設(shè)計(jì)算法和程序結(jié)構(gòu)的實(shí)現(xiàn),以感悟理解算法和程序設(shè)計(jì)在解決生活問(wèn)題中的地位和作用。
因此,初中階段普及性的程序設(shè)計(jì)的教學(xué),筆者認(rèn)為可以從這幾方面入手。
一、選擇合適的程序設(shè)計(jì)平臺(tái)
選擇一款適合義務(wù)教育階段一般學(xué)生心智的程序語(yǔ)言對(duì)于提高學(xué)生學(xué)習(xí)興趣,順利實(shí)施常態(tài)化程序設(shè)計(jì)教學(xué)尤為重要。選擇S4A(Scratch for Arduino)作為編程平臺(tái),是因?yàn)镾4A是使Arduino開源硬件平臺(tái)能夠簡(jiǎn)單編程的Scratch修改版??梢岳斫鉃槟軌蜻B接硬件的Scratch。它的編程界面高度近似于Scratch。S4A(Scratch for Arduino)類似積木的指令操作簡(jiǎn)單、直觀,讓我們找到了程序設(shè)計(jì)教學(xué)的突破口。
1.基于Scratch的S4A是可視化編程
與VB等編程語(yǔ)言相比,S4A以“所見即所得”的編程思想為原則,力圖實(shí)現(xiàn)程序與結(jié)果的同步顯示。編寫的程序執(zhí)行的時(shí)候,直接反應(yīng)在鏈接的硬件上,化抽象為具體,大大提高了學(xué)習(xí)者的學(xué)習(xí)興趣。
2.基于Scratch的S4A指令模塊化,容易上手
基于Scratch的S4A和Scratch一樣有八大指令模塊,并且具有不同的外形和顏色。初學(xué)者無(wú)須花費(fèi)大量的時(shí)間去記憶枯燥的語(yǔ)法,只需將左側(cè)所需指令塊拖入右側(cè)的腳本區(qū),如果兩個(gè)指令塊可以合為一體,就說(shuō)明語(yǔ)法正確,否則就代表兩個(gè)指令塊不能直接相連,學(xué)生只需將右側(cè)多余的指令塊拖到左側(cè)指令塊區(qū)即代表刪除。這樣的設(shè)計(jì),可以讓學(xué)生省去大量的程序調(diào)試時(shí)間,集中精力進(jìn)行結(jié)構(gòu)和算法的優(yōu)化和完善。
3. S4A與外部傳感器無(wú)縫連接,可以有效結(jié)合物聯(lián)生活
Scratch for Arduino (S4A)是Scratch的修改版本,它提供了一系列新的傳感器模塊與輸出模塊,并通過(guò)它們連接Ardunio開發(fā)板,而且它可以連接多塊開發(fā)板并顯示出多個(gè)獨(dú)立的開發(fā)窗口,讓使用者可以輕松搭建與生活實(shí)際緊密聯(lián)系的作品。
S4A作為一款提供傳感器模塊接口的圖形化編程軟件,以此為基礎(chǔ)的程序設(shè)計(jì)教學(xué)既有利于降低學(xué)生的思維難度,又有利于學(xué)生的思維從具體形象逐步發(fā)展過(guò)渡到抽象階段。從無(wú)形中消弭了學(xué)生學(xué)習(xí)的畏難情緒,為程序設(shè)計(jì)教學(xué)奠定了良好的軟件環(huán)境。
學(xué)生結(jié)合硬件和圖形化編程調(diào)試,有效地理解了程序的結(jié)構(gòu)以及算法對(duì)于執(zhí)行結(jié)果的效率。
二、重算法和結(jié)構(gòu),輕代碼和語(yǔ)法
程序設(shè)計(jì)課程作為信息技術(shù)教學(xué)的一部分,不僅能提高學(xué)生的動(dòng)手能力,也有助于學(xué)生思維能力的培養(yǎng)。過(guò)去教學(xué)一到程序設(shè)計(jì)部分,學(xué)生都倒吸一口冷氣,覺(jué)得好高深,好困難,一堂課下來(lái),興趣完全缺失。在實(shí)際的教學(xué)中,學(xué)生對(duì)于VB的接受和認(rèn)可度很低。教材中選取的教學(xué)實(shí)例和編程練習(xí)基本是數(shù)學(xué)問(wèn)題,這就讓學(xué)生(尤其是害怕數(shù)學(xué)的學(xué)生)學(xué)習(xí)時(shí)感嘆程序設(shè)計(jì)就像在做數(shù)學(xué)題——抽象、枯燥。的確,VB這款成人化編程軟件由于命令冗長(zhǎng)、結(jié)構(gòu)復(fù)雜、邏輯思維抽象等特點(diǎn),并不太適合義務(wù)教育階段一般的中小學(xué)生學(xué)習(xí)。
義務(wù)教育初中階段信息技術(shù)課程的 “程序設(shè)計(jì)”章節(jié)的基本定位:以程序設(shè)計(jì)為基礎(chǔ),以算法為核心。不以代碼編寫訓(xùn)練為要義,而以程序設(shè)計(jì)方法和算法思想的體驗(yàn)為旨?xì)w。
因?yàn)橛?jì)算機(jī)語(yǔ)言和開發(fā)平臺(tái)日新月異,很可能現(xiàn)在學(xué)的編程語(yǔ)言等到學(xué)生將來(lái)深造或者工作時(shí)早已淘汰。但萬(wàn)變不離其宗的是算法和結(jié)構(gòu)。義務(wù)教育階段就是一個(gè)基礎(chǔ)教學(xué)階段,是打根基,修內(nèi)功。
算法是程序設(shè)計(jì)的靈魂,程序設(shè)計(jì)教學(xué)首重算法。
算法(Algorithm)是指解題方案的準(zhǔn)確而完整的描述,是一系列解決問(wèn)題的清晰指令,算法代表著用系統(tǒng)的方法描述解決問(wèn)題的策略機(jī)制。程序設(shè)計(jì)教學(xué)中算法的教學(xué)有助于學(xué)生計(jì)算思維的培養(yǎng)。
在程序設(shè)計(jì)教學(xué)中,讓學(xué)生理解順序結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、選擇結(jié)構(gòu)三種基本結(jié)構(gòu)。這三種結(jié)構(gòu)將伴隨程序設(shè)計(jì),學(xué)生能在基于開源硬件的程序設(shè)計(jì)中靈活應(yīng)用,深化理解。
三、程序設(shè)計(jì)實(shí)例趣味化、生活化
新課程倡導(dǎo)學(xué)生要自主、合作、探究學(xué)習(xí)。學(xué)習(xí)的動(dòng)力來(lái)源于興趣驅(qū)動(dòng),適當(dāng)?shù)慕虒W(xué)內(nèi)容能最大限度地吸引學(xué)生。
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,生活中的智能化產(chǎn)品越來(lái)越多。學(xué)生們?cè)诮蛹{的同時(shí),內(nèi)心深處其實(shí)隱藏著對(duì)于智能設(shè)備功能實(shí)現(xiàn)的好奇。心理學(xué)研究表明,當(dāng)學(xué)習(xí)內(nèi)容和學(xué)生熟悉的生活情境越貼近,學(xué)生自覺(jué)接納的程度越高。
例如,本課選擇的智能風(fēng)扇,原型是生活中常見的物品,每個(gè)學(xué)生都使用過(guò)。然而,加上溫控、紅外傳感器,配合程序就能實(shí)現(xiàn)無(wú)須人工干預(yù)的智能化行為。這種直觀顯現(xiàn)能極大地激發(fā)學(xué)生學(xué)習(xí)的興趣。
生活中還有很多這樣的例子,比如倒車?yán)走_(dá)、自動(dòng)感應(yīng)門、火焰報(bào)警器、聲控樓道燈……
基于開源硬件的程序設(shè)計(jì),教學(xué)可以將程序結(jié)構(gòu)和算法思維融入學(xué)生的日常生活實(shí)例中,讓學(xué)生自己動(dòng)手解惑、釋疑,體驗(yàn)程序設(shè)計(jì)在現(xiàn)實(shí)應(yīng)用中的作用,培養(yǎng)學(xué)生的算法思維,讓學(xué)生真實(shí)體驗(yàn)程序設(shè)計(jì)的樂(lè)趣。
【參考文獻(xiàn)】
[1]伍冬莉. 創(chuàng)客教育下中學(xué)scratch程序設(shè)計(jì)教學(xué)模式探究[J]. 課程教育研究,2017(6).
[2]王同聚. Scratch與機(jī)器人共融在教學(xué)中的應(yīng)用與實(shí)踐——以中小學(xué)機(jī)器人教學(xué)為例[J].中小學(xué)信息技術(shù)教育,2015(8):76-79.