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