譚國聚 孟延豹
前言:
在中小學(xué)普及編程課程,是教育部“教育信息化2.0行動計(jì)劃”中的工作要求,對于我國2億多的中小學(xué)生來說,這樣的工作目標(biāo)是非常有挑戰(zhàn)性的,這也要求中小學(xué)信息技術(shù)教師們,在標(biāo)準(zhǔn)、資源、技術(shù)都欠缺的狀態(tài)下必須自覺地去思考如何在自己的工作中踐行“行動計(jì)劃”的要求。北京小學(xué)通州分校的信息技術(shù)老師們,從社團(tuán)選修的編程課程的成功案例中尋找靈感,探索出在小學(xué)低年齡段,利用Arduino程序設(shè)計(jì)推廣編程課程,這樣的探索非常值得大家借鑒,特別是在數(shù)字化學(xué)習(xí)環(huán)境下的校本課程的規(guī)劃、設(shè)計(jì)與實(shí)施。
● 前言
小學(xué)信息技術(shù)課程中應(yīng)用軟件操作是學(xué)生學(xué)習(xí)的主要內(nèi)容。在2000年教育部頒布的《中小學(xué)信息技術(shù)課程指導(dǎo)綱要(試行)》中沒有把計(jì)算機(jī)程序設(shè)計(jì)列為小學(xué)階段學(xué)生必須學(xué)習(xí)的內(nèi)容,而是作為選學(xué)內(nèi)容。當(dāng)代科學(xué)技術(shù)日新月異,學(xué)生在日常生活以及其他學(xué)科的學(xué)習(xí)中,接觸到越來越多的應(yīng)用軟件,課堂上很多學(xué)生能夠比較熟練地完成計(jì)算機(jī)基本操作,或者通過自己探究能夠掌握計(jì)算機(jī)基本的操作。以計(jì)算機(jī)基本操作為主的信息技術(shù)課程正在逐漸失去作為一門獨(dú)立課程的意義。可見,小學(xué)信息技術(shù)課需要發(fā)展具有本學(xué)科特色的教學(xué)內(nèi)容體系。
Arduino程序設(shè)計(jì)作為信息技術(shù)課程中的一項(xiàng)傳統(tǒng)而又充滿創(chuàng)新意義的教學(xué)內(nèi)容得到學(xué)界的普遍重視。筆者所在學(xué)校開設(shè)基于Arduino程序設(shè)計(jì)校本課程,主要是針對一部分具有良好的計(jì)算機(jī)操作能力,并對計(jì)算機(jī)編程有濃厚興趣的學(xué)生。那么,能不能把基于Arduino程序設(shè)計(jì)校本課程,向低年級學(xué)生推廣,或者把這門校本課程作為小學(xué)信息技術(shù)課必修內(nèi)容呢?筆者為此進(jìn)行了思考,針對將基于Arduino程序設(shè)計(jì)校本課程作為小學(xué)信息技術(shù)課必修內(nèi)容的重要性、必要性和可行性展開了探索。
● 重要性
1.符合世界信息技術(shù)教育發(fā)展的潮流
(1)百度搜索指數(shù)逐步提高
從圖1可見,百度搜索指數(shù)逐步上漲。到目前為止,達(dá)到1215。這個數(shù)據(jù)說明,關(guān)于少兒編程內(nèi)容的學(xué)習(xí),關(guān)注的群體越來越多。兒童學(xué)習(xí)編程的意識逐步深入人心,成為兒童教育的一部分。
(2)IT行業(yè)的精英們對編程教育達(dá)成共識
扎克伯格6歲開始編程,Bryson Payne教授兒子4歲開始接觸編程,喬布斯11歲開始編程,比爾·蓋茨13歲開始編程……IT行業(yè)的精英們對編程教育有著驚人的共識:抓住少兒的黃金期,向孩子們普及編程教育,這也說明編程教育在少年時期的重要性。
(3)歐美等國家對于編程的認(rèn)知程度高
美國前總統(tǒng)奧巴馬說:“編程應(yīng)當(dāng)與ABC字母表和顏色同時得到教學(xué),所有人都應(yīng)該更早地學(xué)習(xí)如何編程。”2013年奧巴馬開始倡導(dǎo)“編程一小時(The hour of code)”活動,2016年宣布“全民電腦科學(xué)教育”計(jì)劃,政府投入40億美元,為全美K12階段的學(xué)生提供完整的計(jì)算機(jī)科學(xué)教育;在英國,最新的教育大綱規(guī)定編程為5~16歲學(xué)生的必修課;在加拿大,許多專家意識到在數(shù)字化的今天,編程應(yīng)該成為一種必備的技能,在中小學(xué)里應(yīng)該與閱讀、寫作和算術(shù)“平起平坐”;新加坡將編程納入考試科目;日本計(jì)劃2020年以后,中小學(xué)都必須開始編程課程,學(xué)生必修此課程;另外十幾個歐美國家已經(jīng)將編程納入公立學(xué)校的日常課程……這些都證明,編程教育在全球范圍內(nèi)得到了重視,將編程學(xué)習(xí)低齡化,編程不再是成人的專利。在低齡學(xué)習(xí)編程,成為世界信息技術(shù)教育發(fā)展的潮流。
2.從小系統(tǒng)學(xué)習(xí)編程,能讓孩子終身受益
計(jì)算機(jī)程序具有很強(qiáng)的邏輯性。我們目前在手機(jī)或者計(jì)算機(jī)上用的軟件,它們或簡單或復(fù)雜,都是軟件工程師編寫出來的程序。
所謂編程就是將人們的想法按照一定的編碼規(guī)則,變成計(jì)算機(jī)可以識別的代碼和語言,讓計(jì)算機(jī)幫助我們實(shí)現(xiàn)數(shù)學(xué)運(yùn)算、事物處理和信息查詢等。編程即通過可見的代碼、工具、運(yùn)行結(jié)果,去不斷梳理抽象的邏輯思維,再通過動手實(shí)踐把抽象思維給具象化地表現(xiàn)出來,這就是“編程思維(Computational Thinking)”,是“理解問題—找出路徑”的思維過程。它由分解、模式識別、抽象、算法四個步驟組成。通過這四個步驟,一個棘手的復(fù)雜問題先被拆解成一系列好解決的小問題;每一個小問題被單獨(dú)檢視、思考,搜索解決方案;然后,聚焦幾個重要節(jié)點(diǎn),忽視小細(xì)節(jié),形成解決思路;最后,設(shè)計(jì)步驟,執(zhí)行,問題解決。
學(xué)生完成一個程序就是在完成一個項(xiàng)目,完成這個項(xiàng)目的過程就是不斷提高邏輯思維能力的過程,就是不斷解決實(shí)際問題的過程,也是積極、主動做事能力以及自我認(rèn)知和自我管理能力的提升過程。
可以想象,在邏輯思維發(fā)展的黃金期,讓孩子接受編程教育,對他們成長、培養(yǎng)高效的思考模式、做事視角,都有著極大的益處。美國麻省理工學(xué)院雷斯尼克(Mitchell Resnick)教授表示:“當(dāng)你學(xué)會了編程,你就會開始思考世界上的所有過程?!?/p>
可見,在小學(xué)階段開設(shè)編程課程,使之成為小學(xué)信息技術(shù)課必修內(nèi)容,教學(xué)目的不是要培養(yǎng)程序員,而是讓學(xué)生更深入地理解計(jì)算機(jī)的工作原理,掌握程序設(shè)計(jì)的基本思想,學(xué)會科學(xué)、嚴(yán)謹(jǐn)、高效且更富創(chuàng)造性地解決生活中實(shí)際問題的方法、步驟。
● 必要性
我們?yōu)槭裁催x擇Arduino?先通過下表比較一下Scratch和Arduino。
1.Scratch程序設(shè)計(jì)解讀
從上表可以看出,圖形化編程是Scratch的主要特點(diǎn),具有很強(qiáng)的直觀性,小學(xué)生容易理解和操作。在學(xué)習(xí)程序設(shè)計(jì)初期,可以作為啟發(fā)學(xué)生思維、激發(fā)學(xué)生興趣的工具,這是一個不錯的選擇。
但編程過程是一個項(xiàng)目完成的過程,這個過程也是學(xué)生的思維能力發(fā)生變化的過程,更是一名學(xué)生綜合素養(yǎng)提升的過程。如果總用類似玩具的軟件編程,容易給學(xué)生造成程序設(shè)計(jì)這門課程是“玩游戲”的課程的假象,不利于學(xué)生深入學(xué)習(xí)程序設(shè)計(jì)。
另外,由于Scratch編程沒有直接對應(yīng)硬件設(shè)備,寫出來的程序只能通過計(jì)算機(jī)端演示觀看。多課時的授課計(jì)劃,很容易造成學(xué)生視覺疲勞,從而使其失去對編程的長久興趣,也難以形成“科學(xué)、嚴(yán)謹(jǐn)、高效且更富創(chuàng)造性地解決生活中實(shí)際問題的方法、步驟”的能力。
2.Arduino程序設(shè)計(jì)解讀
硬件是基礎(chǔ),軟件是靈魂。Arduino程序設(shè)計(jì)既有硬件又有自己的編程環(huán)境。它是能夠用來感應(yīng)和控制現(xiàn)實(shí)物理世界的一套工具。它由一個基于單片機(jī)并且開放源碼的硬件平臺、若干電子元件及基于Arduino開發(fā)板的獨(dú)立的編程環(huán)境組成。
從硬件方面說,Arduino可以用來開發(fā)交互產(chǎn)品,如它可以讀取大量的開關(guān)和傳感器信號,并且可以控制各式各樣的電燈、電機(jī)和其他物理設(shè)備。Arduino項(xiàng)目可以是單獨(dú)的,也可以在運(yùn)行時和自己計(jì)算機(jī)中運(yùn)行的程序(如Flash、Processing、MaxMSP)進(jìn)行通信。有了Arduino板,根據(jù)自己的創(chuàng)意購買電子元件,進(jìn)行自由組裝,很快就可以做出一些小發(fā)明。
從軟件方面說,Arduino開發(fā)板有自己的編程環(huán)境,編程語言是基于C和C++語言,略有簡化。簡化之后,對于沒有編程基礎(chǔ)的學(xué)生來說,程序設(shè)計(jì)變得容易理解,而Arduino的程序語言像一個英文文本一樣,可以邊寫程序,邊閱讀文本,極大地提高了學(xué)生對編程的興趣。
通過以上闡述可以清楚地得出結(jié)論,Arduino更專業(yè),更有靈魂。而開設(shè)程序設(shè)計(jì)課程,需要更加系統(tǒng)、專業(yè)的編程環(huán)境以及硬件的支撐,Arduino符合這樣的條件。因此,基于Arduino程序設(shè)計(jì)成為小學(xué)信息技術(shù)課必修課內(nèi)容開發(fā)藍(lán)本。
● 可行性
1.硬件準(zhǔn)備
筆者所在學(xué)校有三個機(jī)房,每個機(jī)房有50臺計(jì)算機(jī),給學(xué)生開設(shè)程序設(shè)計(jì)課程創(chuàng)造了優(yōu)越條件,而Arduino的開發(fā)板及電子元件物美價廉,在市場上很容易買到。這為開設(shè)程序設(shè)計(jì)課程提供了足夠的硬件支持條件。
2.基于Arduino程序設(shè)計(jì)校本課程的優(yōu)勢
基于Arduino程序設(shè)計(jì)校本課程經(jīng)過幾年反復(fù)修訂,在案例選擇、硬件設(shè)備和程序設(shè)計(jì)優(yōu)化方面都積累了豐富的經(jīng)驗(yàn)。筆者所在學(xué)校高年級學(xué)生學(xué)習(xí)這門校本課程之后,啟發(fā)自己的創(chuàng)意,在程序設(shè)計(jì)大賽中取得了優(yōu)異成績。
(1)既可提高學(xué)生動手操作能力,又能培養(yǎng)其積極主動思考的習(xí)慣
基于Arduino程序設(shè)計(jì)校本課程是硬件和軟件的綜合運(yùn)用。學(xué)生在動手編寫程序之前,需要對面包板和Arduino開發(fā)板進(jìn)行動手操作,連接電路。動手連線與搭建積木不一樣,它將編程思路融入其中,接線的過程就是梳理編程結(jié)構(gòu)的過程。如果電路連接錯誤,程序就無法運(yùn)行。小學(xué)生經(jīng)常參與這樣的動手操作活動,不僅能培養(yǎng)他們的耐心、細(xì)心和恒心,對提升其積極主動思考的習(xí)慣也大有裨益。
(2)完成效率高、成就感強(qiáng)
在學(xué)習(xí)基于Arduino程序設(shè)計(jì)校本課程中,學(xué)生只要確保電路連接準(zhǔn)確,通過幾行代碼就可以制作出一個小型智能電子作品。這種成就感,能更好地激發(fā)他們的學(xué)習(xí)熱情,使其有信心做出更復(fù)雜的作品。
(3)易學(xué)、易懂
基于Arduino程序設(shè)計(jì)校本課程的所有課例,由淺入深,由簡單到復(fù)雜,盡量用最少的文本進(jìn)行描述,爭取讓學(xué)生一看就明白,如“Hello,world”程序只有幾行代碼:high就是讓小燈亮,low就是讓小燈滅,delay就是延時程序(如下頁圖2)。
(4)搭建了全新的教學(xué)模式
基于Arduino程序設(shè)計(jì)校本課程的課堂教學(xué)改變了傳統(tǒng)的授課模式。教師在課堂上講解的同時,還要帶著學(xué)生一步一步編寫程序。另外,每個案例都有錄制好的相關(guān)視頻,特別是程序設(shè)計(jì)的代碼解讀,學(xué)生在計(jì)算機(jī)教室里進(jìn)行編程的過程中,遇到不明白的內(nèi)容可以反復(fù)看視頻,直到看會為止。同時,每個案例的程序文本也放到網(wǎng)上,學(xué)生可以隨時上網(wǎng)查看相關(guān)案例的文本,強(qiáng)化自己的學(xué)習(xí)效果。
(5)案例聯(lián)系生活,能夠啟發(fā)學(xué)生創(chuàng)新思維
基于Arduino程序設(shè)計(jì)校本課程,選擇的案例和生活相關(guān),這樣能使學(xué)生印象深刻,同時,也能不斷啟發(fā)學(xué)生思維,激發(fā)創(chuàng)新靈感,學(xué)以致用,解決生活中的實(shí)際問題。
綜上所述,基于Arduino程序設(shè)計(jì)校本課程成為小學(xué)信息技術(shù)課必修課內(nèi)容具有可操作性,但在小學(xué)教育階段如何將程序設(shè)計(jì)的知識、技能普及,并使之成為獨(dú)立的、彰顯學(xué)科特點(diǎn)的課程,還是教育界繼續(xù)需要探究的一個課題。不過筆者相信,程序設(shè)計(jì)課程成為小學(xué)信息技術(shù)課必修課內(nèi)容是世界信息技術(shù)教育發(fā)展的必然趨勢。因?yàn)椋l掌握了程序設(shè)計(jì),誰就拿到了一張通向未來的門票。
參考文獻(xiàn):
[1]陳呂洲.Arduino程序設(shè)計(jì)基礎(chǔ)(第2版)[M].北京:北京航空航天大學(xué)出版社,2015,3.
[2](美)Brian Evans.Arduino編程從基礎(chǔ)到實(shí)踐[M].楊繼志,郭敬,譯.北京:電子工業(yè)出版社,2015,10.
[3]學(xué)習(xí)編程真的那么重要嗎?[EB/OL].(2017-7-21).https://www.sohu.com/a/158828458_99926812.
后記
信息化的要求越來越高,而信息技術(shù)課程的地位反而越來越尷尬,沒有了退路,反而更好辦了,敢想敢干,就這么簡單,特別是對于信息技術(shù)教師來說,敢于在數(shù)字化學(xué)習(xí)設(shè)計(jì)的過程中,除了發(fā)揮編程的強(qiáng)項(xiàng),還敢于面對明顯弱勢的面包板,這點(diǎn)來說,譚老師還是很讓筆者佩服的,剩下的,就是給學(xué)生機(jī)會,讓他們自主地探究練習(xí)。我相信,只要敢于去面對,任何一位信息技術(shù)教師都可以做得像譚老師一樣好。