邱鈺 商治年
當(dāng)前初中信息技術(shù)教學(xué)中的程序教學(xué)以VB教學(xué)為主,但其命令較為冗長、邏輯思維抽象、結(jié)構(gòu)復(fù)雜,對于中學(xué)生而言學(xué)習(xí)上略有難度,且純代碼的編寫,降低了學(xué)生學(xué)習(xí)的興趣。蘇州工業(yè)園區(qū)在初二信息技術(shù)教學(xué)中引入了Python語言,并且采用了開源硬件Micro:bit作為程序運行載體。這不僅為信息技術(shù)課堂增添了活力,更主要的是學(xué)生在程序編寫、修改、運行過程中,鍛煉了學(xué)生邏輯思維能力、創(chuàng)造能力以及解決問題的能力。
如何能夠有效地實施基于Micro:bit的Python教學(xué)呢?在一個學(xué)期的實踐中,我們發(fā)現(xiàn)采用項目的形式來組織課堂教學(xué)效果比較好。學(xué)生通過一系列活動項目的創(chuàng)作,在不斷嘗試、實踐與體驗的過程中獲取經(jīng)驗、掌握方法、提升能力。本學(xué)期根據(jù)內(nèi)容的難易程度安排16個項目,每個項目用1-2個課時完成。每一章節(jié)的內(nèi)容編寫上均涉及到以下幾點:提供效果視頻或搭建視頻的二維碼、代碼指導(dǎo)部分一般提供兩套程序(Python、塊語句)、程序解說部分對程序逐條的解釋,其中貫穿新授的知識點介紹、提供基礎(chǔ)練習(xí)與拓展練習(xí)。
本冊校本教材中第1~4章為基礎(chǔ)內(nèi)容,第5~9章主要學(xué)習(xí)循環(huán)、判斷語句,第10~12章主要學(xué)習(xí)Micro:bit與外接設(shè)備連接制作有趣的內(nèi)容,第13~16章主要是綜合練習(xí)。內(nèi)容具體如下。
第1章:《入門很簡單》。主要是Micro:bit介紹、Python語言介紹、編程界面及其使用、程序的導(dǎo)入與運行。
第2章:《秀出自己》。通過范例“秀出自己”要求學(xué)生掌握基本顯示命令、了解內(nèi)置圖像、掌握等待命令。涉及到Python語言知識點Python程序結(jié)構(gòu)、變量(常量)、字符串;Micro:bit組件應(yīng)用為display對象中常見的方法、Image內(nèi)置圖像對象、sleep()函數(shù)。
第3章:《還能讓屏幕顯示的更多》。通過范例“閃爍的警示燈”、 “游動的鴨子”講解,要求學(xué)生掌握永久循環(huán)、掌握圖像的方法。涉及到Python語言知識點while True:永久循環(huán);Micro:bit組件應(yīng)用為Image自定義圖像、Image圖像的方法。
第4章:《讓按鈕起作用》。通過范例“按鈕的使用”“計數(shù)器”講解,要求學(xué)生掌握按鈕對象、了解if語句、掌握變量的賦值、學(xué)會通過REPL調(diào)試程序。涉及到Python語言知識點if條件語句用法之一、print()函數(shù)、邏輯表達(dá)式、變量賦值運算、常見的內(nèi)置數(shù)值函數(shù);Micro:bit組件應(yīng)用為button_a和button_b對象。
第5章:《岔路太多該走哪一條?》。通過范例“指北針”要求學(xué)生掌握If語句的使用、了解磁力傳感器。涉及到Python語言知識點if條件語句用法、關(guān)系運算符;Micro:bit組件應(yīng)用為磁力傳感器(磁力計)。
第6章:《隨機數(shù)的樂趣》。通過范例“骰子比大小”要求學(xué)生掌握“搖晃”手勢、了解其他手勢、掌握產(chǎn)生整數(shù)隨機數(shù)、了解其他隨機數(shù)函數(shù)。涉及到Python語言知識點元組(tuple)、隨機數(shù)對象random;Micro:bit組件應(yīng)用為手勢(Gesture)、手勢的判斷。
第7章:《唱個歌吧》。通過范例“音樂盒”“自定義樂譜”要求學(xué)生掌握列表的概念、列表的訪問,掌握樂譜的編碼方法。涉及到Python語言知識點列表(list);Micro:bit組件應(yīng)用為內(nèi)置的樂曲、music對象、表示音符。
第8章:《循環(huán)很有趣》。通過范例“會呼吸的燈”“關(guān)公巡城”要求學(xué)生掌握遍歷for…in循環(huán)、掌握坐標(biāo)系、掌握LED燈的單控。涉及到Python語言知識點for…in遍歷、range()函數(shù);Micro:bit組件應(yīng)用為LED燈的坐標(biāo)、display對象中控制燈的方法。
第9章:《目標(biāo),只需“迭代”就能達(dá)到》。通過范例“倒計時器”“腦筋急轉(zhuǎn)彎”要求學(xué)生掌握迭代while循環(huán)、循環(huán)的控制語句,掌握低頻率聲音的播放。涉及到Python語言知識點while循環(huán)、in操作、continue語句、break語句;Micro:bit組件應(yīng)用為music.pitch()方法。
第10章:《我的狀態(tài)你知道》。通過范例“水平儀”“金屬探測器”“電子溫度計”“更精確的溫度計”要求學(xué)生掌握加速度傳感器、磁力傳感器、溫度傳感器的使用,掌握模擬信號輸入;Micro:bit組件應(yīng)用為加速度傳感器、磁力傳感器的其他功能、溫度傳感器、引腳的輸入輸出函數(shù)、了解函數(shù)的概念及調(diào)用。
第11章:《關(guān)于時間》。通過范例“秒表”要求學(xué)生掌握時間的計算與控制、掌握常見的數(shù)值運算和字符串運算。涉及到Python語言知識點算術(shù)運算符、字符串操作;Micro:bit組件應(yīng)用running_time()函數(shù)。
第12章:《連接你和我》。通過范例“無線電”“螢火蟲”要求學(xué)生掌握無線電功能的使用。涉及到Python語言知識點列表解析;Micro:bit組件應(yīng)用為radio對象常用的方法。
第13、14章:《測試一下你的反應(yīng)力》《不可觸碰》。通過范例“反應(yīng)力測試”“不可觸碰”要求學(xué)生掌握需求搭建硬件、綜合應(yīng)用前面所學(xué)完成項目功能。
第15、16章:《像素游戲之平衡球》。通過范例“平衡球”“猴子接香蕉”要求學(xué)生掌握分析需求、應(yīng)用所學(xué)、分步實現(xiàn),編寫趣味游戲。涉及到Python語言知識點自定義函數(shù)、字符串的拼接。
在教學(xué)中學(xué)生編寫代碼的環(huán)境為離線編程軟件Mu,Mu也是官網(wǎng)指定的一款編程軟件。除此之外還有在線編程環(huán)境,如微軟PXT、PythonEditor、Code Kingdoms、MicroPython、Microsoft、Touch Develop,以及離線編程環(huán)境makecode、mPython、Mu-Kitte、BXY等可供選擇使用。
下面,我們以項目“隨機數(shù)的樂趣”中的《電子色子》為例介紹一下教學(xué)實施過程。
1.教學(xué)目標(biāo)
理解并掌握“搖晃”手勢,了解其他手勢;掌握產(chǎn)生整數(shù)隨機數(shù)的函數(shù)用法,了解其他隨機數(shù)函數(shù);了解元組概念,掌握元組的使用方法;能夠獨立完成電子色子的代碼命令編寫,并在Micro:bit上調(diào)試完成。
2.主要教學(xué)過程
(1)游戲?qū)?,建立概?/p>
師:展示生活中常見的色子(又名:骰子),請同學(xué)們觀察一下色子有什么特點。
生:色子是立方體,共有6個面,每個面上一個數(shù)字。
師:下面我請兩個同學(xué)來比一比誰擲的色子點數(shù)大。
師:在剛剛的猜大小環(huán)節(jié),你們有沒有發(fā)現(xiàn)什么?我們用色子擲到的數(shù)是固定的嗎?每次擲色子點數(shù)是怎樣的?
生:是隨機的。
師:剛剛大家有說到隨機,隨機就是事前不可預(yù)言的現(xiàn)象,比如抓鬮、抽獎等。在剛剛擲色子比大小環(huán)節(jié),我看到很多同學(xué)已經(jīng)躍躍欲試想要和同桌擲色子比比大小了,老師這邊沒那么多色子,怎么辦呢?別著急,老師今天也帶來了一個特別的色子,當(dāng)然這不是一個普通的色子,而是用我們的Micro:bit制作的電子色子。今天這節(jié)課我們就一起來學(xué)習(xí)制作電子色子,來比一比大小。
(2)電子色子制作分析——梳理思路
師:同學(xué)們,你們覺得需要用哪些功能來制作這樣一個電子色子?(教師晃動電子色子,隨機產(chǎn)生點數(shù))
生:Micro:bit識別晃動,產(chǎn)生點數(shù)。
師:很好,思路是正確的,先識別晃動再隨機產(chǎn)生點數(shù)。思考一下:識別晃動該如何來實現(xiàn),又如何實現(xiàn)隨機顯示點數(shù)?請你們帶著這些問題,到易加互動平臺中查看老師給你們布置的幾個小任務(wù)。
(3)任務(wù)分解,自主探究
任務(wù)一:搖一搖。
師:剛剛說到先要讓Micro:bit識別到搖一搖動作,我們先通過一個小例子,來檢測搖一搖,請大家查看易加互動平臺中任務(wù)一中的微課,要求大家掌握accelerometer.was_gesture()方法檢測手勢shake,先試一試讓Micro:bit搖一搖后,由哭臉變笑臉。
學(xué)生查看微課,嘗試在Mu中編寫代碼,并將代碼燒錄到Micro:bit中,測試效果。
師:在任務(wù)一中,大部分同學(xué)已經(jīng)實現(xiàn)了Micro:bit識別到搖一搖動作,接下來請你思考如何實現(xiàn)搖一搖出現(xiàn)隨機數(shù)呢?請同學(xué)們?nèi)プ鲆幌氯蝿?wù)二。
任務(wù)二:產(chǎn)生隨機數(shù)。
師:任務(wù)二中給了大家一個幫助微課——隨機數(shù)函數(shù)的應(yīng)用,請你嘗試去制作搖一搖產(chǎn)生隨機數(shù),并將任務(wù)二中的選擇題練習(xí)做一下。
學(xué)生查看任務(wù)二,并小組討論完成任務(wù)二中隨機數(shù)函數(shù)的使用。
師:在任務(wù)二隨機數(shù)應(yīng)用微課中,大家了解了random的概念,有哪位同學(xué)來說一說,這個函數(shù)如何使用,你是如何用的,又有什么注意點?
生:使用方法是:random.randint(下限,上限)方法獲取從下限到上限的一個隨機整數(shù)。在使用前需要導(dǎo)入隨機模塊import random。
師:總結(jié)得很好,了解了基本的使用方法后,請思考在制作色子中,我們需要幾個隨機整數(shù)?下限和上限分別是什么?
生:需要6個,下限為1,上限為6。
師:同學(xué)們掌握得很好,你們是不是都很完整地寫出來了呢,給大家3分鐘時間再去修改自己的代碼。(學(xué)生修改3分鐘)剛剛有同學(xué)問老師,怎樣才能產(chǎn)生像真實色子一樣的點圖呢?想一想,我們之前課堂中說過,在Micro:bit中有哪兩種類型圖像?
生:自定義圖像與內(nèi)置圖像。
師:很好,再看看這種點圖是自定義的還是內(nèi)置的?
生:自定義的圖像。
師:了解到這里,同學(xué)們有沒有想到要怎么將圖像隨機顯示,請你們查看任務(wù)三學(xué)案及幫助微課,完成圖像與隨機數(shù)的一一對應(yīng)。
任務(wù)三:自定義圖像隨機顯示,形成電子色子。
學(xué)生查看任務(wù)三學(xué)案及幫助微課,嘗試修改自己的代碼,制作出隨機顯示點圖的效果。
師:在任務(wù)三中,老師發(fā)現(xiàn)很多同學(xué)出現(xiàn)了問題,就是如何存儲隨機點數(shù),這里需要用到一個概念就是元組,微課中有提到元組的概念,哪位同學(xué)來給大家說一說?
生:元組,即一組數(shù)據(jù)的有序數(shù)列。
師:你能給大家舉個例子嗎?
生:建一個元組名為tuple1,用來存放A~G七個字母tuple1=(“A”,“B”,“C”,“D”,“E”,“F”,“G”)。
師:同樣的,我們也可以建立一個元組,用來存儲6個不同的點。請同學(xué)們再次修改自己的代碼,并嘗試將代碼燒錄到Micro:bit中。完成的同學(xué)可以兩兩比一比,看誰點數(shù)大。
師總結(jié):通過以上三個小任務(wù),同學(xué)們完成了一個電子色子的制作,在做的過程中一定要有一個清晰的思路,即做電子色子分成了以下三步:第一步,能讓Micro:bit識別“搖一搖”的動作;第二步,產(chǎn)生一個隨機的數(shù)字;第三步,將隨機數(shù)與內(nèi)置圖像點進行一一對應(yīng)。用到了accelerometer.was_gesture()方法來檢測shake手勢,random.randint()方法生成隨機整數(shù),最后了解了元組的基本使用方法,并將自定義圖像存放于元組中與隨機數(shù)相對應(yīng)。
(4)拓展應(yīng)用,啟發(fā)創(chuàng)新
師:本節(jié)課,同學(xué)們在學(xué)案指導(dǎo)、微課幫助下制作出了電子色子,想一想我們生活中還有哪些小游戲是隨機的?想一想我們常玩的“剪刀石頭布”是不是隨機的?請你思考一下如何去實現(xiàn)“剪刀石頭布”效果。
基于Micro:bit的Python程序教學(xué)能夠很好地激發(fā)學(xué)生學(xué)習(xí)代碼興趣,培養(yǎng)學(xué)生的計算思維。目前,蘇州工業(yè)園區(qū)基于Micro:bit的Python程序教學(xué)已經(jīng)在多所中學(xué)實踐,并取得了很好的教學(xué)效果。在教學(xué)實踐中,我總結(jié)出如下教學(xué)注意點。
1.內(nèi)容設(shè)計符合學(xué)生認(rèn)知能力
教學(xué)內(nèi)容要符合學(xué)生認(rèn)知能力,初二學(xué)生雖然已經(jīng)具備了抽象邏輯能力和概括能力,但單純的代碼編寫是不能激發(fā)學(xué)生的興趣的,需要將代碼學(xué)習(xí)貫穿于有趣的教學(xué)內(nèi)容中。因此采用項目式教學(xué)更符合學(xué)生學(xué)習(xí)特點,在教學(xué)中我們也是將概念、用法的學(xué)習(xí)融入到不同項目中去的,讓學(xué)生更易于接受。
在教學(xué)形式上,可以選擇用塊語言到代碼語言過渡的形式教學(xué),如在本學(xué)期教學(xué)實踐中,使用mPython進行編程,此軟件的特點是一邊是塊語言一邊是代碼語言,如右圖所示。
學(xué)生有Scratch基礎(chǔ),對于塊語言的使用沒有障礙。在教學(xué)伊始使用塊語言能夠讓學(xué)生迅速入門,了解Python代碼語言特點,從而更有利于開展教學(xué)。
2.學(xué)案指導(dǎo),微課支撐教學(xué)
信息課堂中要充分發(fā)揮課堂優(yōu)勢,教學(xué)中可以為學(xué)生提供詳細(xì)的學(xué)案指導(dǎo)與微課資源,支持學(xué)生自主學(xué)習(xí),培養(yǎng)學(xué)生自主學(xué)習(xí)能力。優(yōu)質(zhì)的學(xué)案設(shè)計與微課資源對學(xué)生的幫助遠(yuǎn)遠(yuǎn)大于課堂中教師的講解。在課堂實踐中也發(fā)現(xiàn),學(xué)生更樂于自己去看學(xué)案指導(dǎo)、看微課,自主學(xué)習(xí),且學(xué)生掌握程度不同,學(xué)案與微課給了學(xué)生更大的自由度,學(xué)得快的學(xué)生還可以充當(dāng)小老師的角色,去幫助學(xué)得慢的同學(xué)。
3.發(fā)散學(xué)生思維,提高解決問題能力
基于Micro:bit的Python程序教學(xué),實質(zhì)上還是程序教學(xué),程序是為了解決問題。課堂中使用的實例通常并不是用一種方法可以解決,教師可以啟發(fā)學(xué)生嘗試用不同方法來實現(xiàn)編程,也可以讓學(xué)生來比較一下哪種程序更簡潔、可讀性更強,發(fā)散學(xué)生思維,提高其解決問題的能力。在教學(xué)實踐中會發(fā)現(xiàn)很多學(xué)生的想法很獨特,會嘗試用自己的方法進行編程,雖然并不一定都能實現(xiàn)效果,但在解決問題的過程中,學(xué)生會學(xué)到更多。
4.多樣化評價反饋,激發(fā)學(xué)習(xí)動力
基于Micro:bit的Python程序教學(xué)中通常是學(xué)生完成一個個小項目,對于學(xué)生的評價多元化,可以有效地激勵學(xué)生學(xué)習(xí)。如在課堂中,可以通過無線投屏方式(如SeeWolink)隨時展示學(xué)生Micro:bit上實現(xiàn)的效果,對于做得好的學(xué)生可以使用班級優(yōu)化大師或classDojo這類的評價工具進行加分鼓勵。
Python因其簡單易讀的特點,已經(jīng)逐漸在中小學(xué)信息教學(xué)中普及。而基于Micro:bit的Python程序教學(xué)創(chuàng)新性地將Python與Micro:bit結(jié)合起來,讓學(xué)習(xí)Python變得更加簡單、更加有趣。將Micro:bit與Python引入初中信息技術(shù),也為信息技術(shù)教學(xué)中的程序教學(xué)注入了新鮮的血液,讓學(xué)生在快樂中學(xué)會編程,在編程學(xué)習(xí)中提升學(xué)生的計算思維。