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