萬春彬
● 教學(xué)內(nèi)容分析
二進(jìn)制的概念對于中學(xué)生來說還是比較難掌握的一個知識點,以前我在該模塊的教學(xué)中主要采取的是理論講解法,學(xué)生會覺得比較枯燥,難以理解。此前,我剛給高二年級的學(xué)生開過一期《Arduino趣味編程與電子制作》校本選修課,所以在高一《信息技術(shù)基礎(chǔ)》課程該模塊的教學(xué)設(shè)計上,自然而然地想到了將二者在某些內(nèi)容上進(jìn)行結(jié)合,用生動有趣的實驗輔助教學(xué)以提高教學(xué)效率。
本節(jié)課選取《信息技術(shù)基礎(chǔ)》(浙江教育出版社)第一章第二節(jié)《信息的編碼》的部分內(nèi)容,同時整合了第三章第四節(jié)《信息編程加工》中的部分內(nèi)容。本節(jié)創(chuàng)設(shè)的Arduino環(huán)境可以幫助學(xué)生掌握二進(jìn)制編碼的概念,將二進(jìn)制計數(shù)器變?yōu)楝F(xiàn)實,同時使其對計算機(jī)編程產(chǎn)生興趣。
● 學(xué)情分析
按學(xué)校的教學(xué)安排,教學(xué)對象為高一學(xué)生。他們經(jīng)過初中信息技術(shù)課程的學(xué)習(xí),掌握了計算機(jī)的基礎(chǔ)操作,具備了一定的網(wǎng)絡(luò)知識。但是對大多數(shù)學(xué)生來說,這是他們第一次編寫計算機(jī)程序。學(xué)生對編程加工往往充滿了期待,但是面對由數(shù)字、符號組成的程序,他們又有畏難情緒,還可能覺得枯燥。所以本節(jié)課我用看得見、摸得著的軟硬件相結(jié)合的實驗任務(wù),通過分析代碼引導(dǎo)學(xué)生進(jìn)行思考,了解計算機(jī)的工作機(jī)制,培養(yǎng)學(xué)生的學(xué)習(xí)興趣。
● 教學(xué)目標(biāo)
知識與技能目標(biāo):了解Arduino的編程環(huán)境,初識C程序代碼;了解二進(jìn)制編碼的概念和二進(jìn)制計數(shù)系統(tǒng)的特點。
過程與方法目標(biāo):體驗二進(jìn)制編碼的一般過程;引領(lǐng)學(xué)習(xí)與自主學(xué)習(xí)相結(jié)合。
情感態(tài)度與價值觀目標(biāo):通過信息的二進(jìn)制編碼與二進(jìn)制計數(shù)的學(xué)習(xí)講解,進(jìn)一步學(xué)習(xí)計算機(jī)原理,不斷探究新知,了解科技新領(lǐng)域;培養(yǎng)自主探索、協(xié)作研究的精神,鼓勵善于發(fā)現(xiàn)問題、提出問題,并分析、解決問題;初識編程,感受利用計算機(jī)解決問題的獨特魅力,培養(yǎng)學(xué)習(xí)興趣。
● 教學(xué)重點及難點
教學(xué)重點:體驗二進(jìn)制編碼的一般過程;理解二進(jìn)制計數(shù)的方法。
教學(xué)難點:理解二進(jìn)制計數(shù)的方法。
● 教學(xué)資源與工具
多媒體教學(xué)網(wǎng)絡(luò)教室,Arduino開發(fā)板以及相應(yīng)的電路元器件;部分源程序代碼文件;Arduino控制的光立方展示作品。
● 教學(xué)過程
1.創(chuàng)設(shè)情境,導(dǎo)入課題
教師首先將在高二校本選修課《Arduino趣味編程及電子制作》課上制作過的一個4×4×4矩陣LED光立方作品展示給學(xué)生,他們一下子就被這個炫彩的光立方吸引了,激發(fā)了進(jìn)一步學(xué)習(xí)的興趣。教師順勢提出本課問題:這個光立方是被誰控制的呢?它是怎樣形成復(fù)雜的圖案的?大家想不想做出自己的炫彩矩陣效果燈呢?教師發(fā)出邀請:那就讓我們一起從Arduino控制LED小燈開始吧。
導(dǎo)入課題:揭開光立方的秘密——基于Arduino的二進(jìn)制信息編碼體驗。
2.Arduino控制LED小燈初體驗
本體驗任務(wù)的目標(biāo)是讓學(xué)生了解并掌握利用Arduino編程控制LED燈的過程(如下頁表1),各項難度指標(biāo)都屬于入門級,一般學(xué)生都可以完成。
教師首先講解使用到的硬件及其連接方法,然后示范利用Arduino編程控制LED燈的過程,說明注意事項。在互動體驗學(xué)習(xí)環(huán)節(jié)中,教師和學(xué)生一起連接好電路,一起解讀相應(yīng)的代碼,并告訴學(xué)生打開或關(guān)閉LED燈的命令。學(xué)生可以自行修改代碼,選擇打開或者關(guān)閉,然后編譯代碼并上傳到Arduino開發(fā)板,就可以讓程序控制小燈了,同時提示學(xué)生觀察結(jié)果。
教師巧妙設(shè)計、分解任務(wù)單,從小的、簡單的任務(wù)開始,顯性任務(wù)雖然只是簡單地記錄了小燈的狀態(tài),但卻為編碼概念的提出作了鋪墊。圖1為連接電路圖及主要程序代碼。
3.自主學(xué)習(xí):控制兩個LED燈
教師拋出問題:用一個LED燈能實現(xiàn)光立方嗎?這個問題的答案顯然是否定的。教師繼續(xù)拋出問題:那要不要再增加一個LED燈,并實現(xiàn)對兩個LED燈的控制(如表2)?教師分發(fā)新的任務(wù)單和實驗材料,一個電阻、一個LED燈以及連接用的導(dǎo)線。圖2為連接電路圖及主要程序代碼。
學(xué)生在任務(wù)一的硬件電路基礎(chǔ)上,增加兩個新的元器件的難度系數(shù)也是適中的,最終輕松地完成了電路的調(diào)整。教師讓學(xué)生自主學(xué)習(xí)修改任務(wù)一中的程序,使兩個LED燈亮或者滅,并記錄自己的兩個LED燈的狀態(tài)。
教師通過電子教室回收并展示學(xué)生的任務(wù)單。有的學(xué)生用中文亮、滅描述,有的學(xué)生用英文on、off描述,有的用數(shù)字1、0描述,這些正是教師預(yù)設(shè)想要的結(jié)果,為講解編碼的概念埋下了伏筆。
教師指出學(xué)生的描述都是正確的,對狀態(tài)用不同的形式進(jìn)行記錄的過程就是編碼的過程。教師引出本節(jié)課的一個重要概念:從一種形式或格式轉(zhuǎn)換為另一種形式就是編碼。編碼就是用預(yù)先規(guī)定的方法將文字、數(shù)字或其他對象編成數(shù)碼,或?qū)⑿畔?、?shù)據(jù)轉(zhuǎn)換成規(guī)定的電脈沖信號。
雖然每個人對于每個燈的狀態(tài)的描述用到了不同的語言或形式,但每個人都是只有兩種情況,這和二進(jìn)制只有兩個基本數(shù)字是一致的,所以學(xué)生進(jìn)行的編碼過程也可以稱為是二進(jìn)制形式的編碼。
數(shù)字化編碼,為了統(tǒng)一編碼結(jié)果的形式,方便交流,對于每一個LED燈,滅的狀態(tài)用數(shù)字0表示,亮的狀態(tài)用1表示。請學(xué)生修改自己的任務(wù)單,把結(jié)果數(shù)字化表示。引出本節(jié)課的第二個重要概念:用數(shù)字0和1表示的編碼就是二進(jìn)制編碼。同時指出,數(shù)字系統(tǒng)中常用的編碼有兩類,一類是二進(jìn)制編碼,另一類是十進(jìn)制編碼。
再次回收數(shù)字化后的編碼結(jié)果,并和學(xué)生一起進(jìn)行結(jié)果的匯總,將數(shù)字化后的編碼寫在黑板上,最后發(fā)現(xiàn)只有4個不同的記錄。拋出問題:控制兩個LED燈,還有沒有其他的不同狀態(tài)?經(jīng)過大家的討論和驗證,得出了一致的結(jié)論,兩個LED燈的亮滅狀態(tài)一共有4種:00、01、10、11。
4.輕松升級:控制三個LED燈
看似簡單而重復(fù)的任務(wù)升級,但是其作用和意義都是巨大的。教師設(shè)計這一系列任務(wù)的過程中,始終堅持循序漸進(jìn),逐步深入,最終達(dá)到其義自見的目標(biāo)(如表3)。
至此,學(xué)生們已經(jīng)從現(xiàn)象中很好地掌握了二進(jìn)制編碼的意義與具體實現(xiàn)方式。本節(jié)課另外一個重要的教學(xué)內(nèi)容是二進(jìn)制計數(shù)。之前發(fā)給學(xué)生的任務(wù)二、三表格的最后都預(yù)留了一個空列。此時,可以讓學(xué)生一起在最后一列的表頭寫上計數(shù),然后請他們將前面的編碼狀態(tài)進(jìn)行計數(shù)的編號。
例如,在任務(wù)二中,依次將“00,01,10,11”這4個狀態(tài)的計數(shù)值填寫為0、1、2、3,并簡單解析十進(jìn)制計數(shù)值的增長與對應(yīng)的二進(jìn)制編碼增長的對應(yīng)關(guān)系。任務(wù)三的計數(shù)要復(fù)雜一些,教師作為課程的設(shè)計者,在這個環(huán)節(jié)要有意識地引領(lǐng)學(xué)生進(jìn)行思考,并對學(xué)生的操作及時做出指導(dǎo),幫助學(xué)生更快地建立起正確的概念。
5.合作探究:制作簡單的LED燈二進(jìn)制計數(shù)器
學(xué)生之前完成的任務(wù)顯示的是固定的某一種狀態(tài),也可以說顯示的是某個十進(jìn)制數(shù)的二進(jìn)制形式,如果要改變成用二進(jìn)制形式來顯示,必須修改源程序。提出本節(jié)的一個提高任務(wù):依次顯示所有的3位二進(jìn)制數(shù)。實現(xiàn)一個簡單的二進(jìn)制計數(shù)器的功能。
本課采用簡單的延時處理,實現(xiàn)不同狀態(tài)的顯示,避免涉及更多的C語言知識,如循環(huán)語句、數(shù)組等。學(xué)生實現(xiàn)這個任務(wù)只要用順序結(jié)構(gòu),在顯示出某個二進(jìn)制編碼狀態(tài)后,用dalay(1000)命令延時1秒,然后再顯示下一個編碼狀態(tài),重復(fù)這樣的過程即可。程序上沒有新增難度,但是實現(xiàn)的效果完全不一樣,學(xué)生可以看到跳動的LED燈,對他們來說又是一個很大的驚喜,同時對于二進(jìn)制計數(shù)、二進(jìn)制加法的理解有很大的幫助。
這個環(huán)節(jié),我看到學(xué)生的LED燈的跳動方式對應(yīng)的二進(jìn)制計數(shù)有從小到大,也有從大到小,也有些小組的結(jié)果是亂序的。所以這個環(huán)節(jié),需要留出足夠的時間,讓學(xué)生多觀察、多修改自己的代碼,同時仔細(xì)觀察LED燈跳動之間的關(guān)系,充分理解二進(jìn)制計數(shù)的概念。
6.小組討論:光立方簡單嗎
學(xué)生在完成三個任務(wù)后,自然會思考:光立方該怎么實現(xiàn)呢?該不會就這么簡單吧?確實沒有這么簡單。經(jīng)過小組討論,得出制作光立方可能會存在困難的結(jié)論。因為Arduino的接口是有限的,那么可以連接的LED燈數(shù)量也就受到了限制,所以需要用到其他輔助芯片來擴(kuò)展接口,并在程序的代碼實現(xiàn)上要采取更高效、更便捷的方式。這就需要繼續(xù)學(xué)習(xí)其他的課程內(nèi)容,以激發(fā)學(xué)生繼續(xù)深入學(xué)習(xí)的熱情。
● 教學(xué)反思
本節(jié)課采用任務(wù)驅(qū)動教學(xué)法,教師要多從學(xué)生的角度出發(fā),堅持以學(xué)生為本,以學(xué)生為主體,換位思考,多反問自己,精心設(shè)計任務(wù),循序漸進(jìn),對于每一個任務(wù)的難度系數(shù)都做充分的考慮,保證梯度上升。設(shè)計的三個看似簡單、重復(fù)的任務(wù),學(xué)生卻做得興趣十足,學(xué)生在實踐中主動形成自己的知識結(jié)構(gòu),進(jìn)一步體驗編程加工的魅力。如果能融入更多動手實踐的環(huán)節(jié),那么可以進(jìn)一步提高教學(xué)的效果。
endprint
● 教學(xué)內(nèi)容分析
二進(jìn)制的概念對于中學(xué)生來說還是比較難掌握的一個知識點,以前我在該模塊的教學(xué)中主要采取的是理論講解法,學(xué)生會覺得比較枯燥,難以理解。此前,我剛給高二年級的學(xué)生開過一期《Arduino趣味編程與電子制作》校本選修課,所以在高一《信息技術(shù)基礎(chǔ)》課程該模塊的教學(xué)設(shè)計上,自然而然地想到了將二者在某些內(nèi)容上進(jìn)行結(jié)合,用生動有趣的實驗輔助教學(xué)以提高教學(xué)效率。
本節(jié)課選取《信息技術(shù)基礎(chǔ)》(浙江教育出版社)第一章第二節(jié)《信息的編碼》的部分內(nèi)容,同時整合了第三章第四節(jié)《信息編程加工》中的部分內(nèi)容。本節(jié)創(chuàng)設(shè)的Arduino環(huán)境可以幫助學(xué)生掌握二進(jìn)制編碼的概念,將二進(jìn)制計數(shù)器變?yōu)楝F(xiàn)實,同時使其對計算機(jī)編程產(chǎn)生興趣。
● 學(xué)情分析
按學(xué)校的教學(xué)安排,教學(xué)對象為高一學(xué)生。他們經(jīng)過初中信息技術(shù)課程的學(xué)習(xí),掌握了計算機(jī)的基礎(chǔ)操作,具備了一定的網(wǎng)絡(luò)知識。但是對大多數(shù)學(xué)生來說,這是他們第一次編寫計算機(jī)程序。學(xué)生對編程加工往往充滿了期待,但是面對由數(shù)字、符號組成的程序,他們又有畏難情緒,還可能覺得枯燥。所以本節(jié)課我用看得見、摸得著的軟硬件相結(jié)合的實驗任務(wù),通過分析代碼引導(dǎo)學(xué)生進(jìn)行思考,了解計算機(jī)的工作機(jī)制,培養(yǎng)學(xué)生的學(xué)習(xí)興趣。
● 教學(xué)目標(biāo)
知識與技能目標(biāo):了解Arduino的編程環(huán)境,初識C程序代碼;了解二進(jìn)制編碼的概念和二進(jìn)制計數(shù)系統(tǒng)的特點。
過程與方法目標(biāo):體驗二進(jìn)制編碼的一般過程;引領(lǐng)學(xué)習(xí)與自主學(xué)習(xí)相結(jié)合。
情感態(tài)度與價值觀目標(biāo):通過信息的二進(jìn)制編碼與二進(jìn)制計數(shù)的學(xué)習(xí)講解,進(jìn)一步學(xué)習(xí)計算機(jī)原理,不斷探究新知,了解科技新領(lǐng)域;培養(yǎng)自主探索、協(xié)作研究的精神,鼓勵善于發(fā)現(xiàn)問題、提出問題,并分析、解決問題;初識編程,感受利用計算機(jī)解決問題的獨特魅力,培養(yǎng)學(xué)習(xí)興趣。
● 教學(xué)重點及難點
教學(xué)重點:體驗二進(jìn)制編碼的一般過程;理解二進(jìn)制計數(shù)的方法。
教學(xué)難點:理解二進(jìn)制計數(shù)的方法。
● 教學(xué)資源與工具
多媒體教學(xué)網(wǎng)絡(luò)教室,Arduino開發(fā)板以及相應(yīng)的電路元器件;部分源程序代碼文件;Arduino控制的光立方展示作品。
● 教學(xué)過程
1.創(chuàng)設(shè)情境,導(dǎo)入課題
教師首先將在高二校本選修課《Arduino趣味編程及電子制作》課上制作過的一個4×4×4矩陣LED光立方作品展示給學(xué)生,他們一下子就被這個炫彩的光立方吸引了,激發(fā)了進(jìn)一步學(xué)習(xí)的興趣。教師順勢提出本課問題:這個光立方是被誰控制的呢?它是怎樣形成復(fù)雜的圖案的?大家想不想做出自己的炫彩矩陣效果燈呢?教師發(fā)出邀請:那就讓我們一起從Arduino控制LED小燈開始吧。
導(dǎo)入課題:揭開光立方的秘密——基于Arduino的二進(jìn)制信息編碼體驗。
2.Arduino控制LED小燈初體驗
本體驗任務(wù)的目標(biāo)是讓學(xué)生了解并掌握利用Arduino編程控制LED燈的過程(如下頁表1),各項難度指標(biāo)都屬于入門級,一般學(xué)生都可以完成。
教師首先講解使用到的硬件及其連接方法,然后示范利用Arduino編程控制LED燈的過程,說明注意事項。在互動體驗學(xué)習(xí)環(huán)節(jié)中,教師和學(xué)生一起連接好電路,一起解讀相應(yīng)的代碼,并告訴學(xué)生打開或關(guān)閉LED燈的命令。學(xué)生可以自行修改代碼,選擇打開或者關(guān)閉,然后編譯代碼并上傳到Arduino開發(fā)板,就可以讓程序控制小燈了,同時提示學(xué)生觀察結(jié)果。
教師巧妙設(shè)計、分解任務(wù)單,從小的、簡單的任務(wù)開始,顯性任務(wù)雖然只是簡單地記錄了小燈的狀態(tài),但卻為編碼概念的提出作了鋪墊。圖1為連接電路圖及主要程序代碼。
3.自主學(xué)習(xí):控制兩個LED燈
教師拋出問題:用一個LED燈能實現(xiàn)光立方嗎?這個問題的答案顯然是否定的。教師繼續(xù)拋出問題:那要不要再增加一個LED燈,并實現(xiàn)對兩個LED燈的控制(如表2)?教師分發(fā)新的任務(wù)單和實驗材料,一個電阻、一個LED燈以及連接用的導(dǎo)線。圖2為連接電路圖及主要程序代碼。
學(xué)生在任務(wù)一的硬件電路基礎(chǔ)上,增加兩個新的元器件的難度系數(shù)也是適中的,最終輕松地完成了電路的調(diào)整。教師讓學(xué)生自主學(xué)習(xí)修改任務(wù)一中的程序,使兩個LED燈亮或者滅,并記錄自己的兩個LED燈的狀態(tài)。
教師通過電子教室回收并展示學(xué)生的任務(wù)單。有的學(xué)生用中文亮、滅描述,有的學(xué)生用英文on、off描述,有的用數(shù)字1、0描述,這些正是教師預(yù)設(shè)想要的結(jié)果,為講解編碼的概念埋下了伏筆。
教師指出學(xué)生的描述都是正確的,對狀態(tài)用不同的形式進(jìn)行記錄的過程就是編碼的過程。教師引出本節(jié)課的一個重要概念:從一種形式或格式轉(zhuǎn)換為另一種形式就是編碼。編碼就是用預(yù)先規(guī)定的方法將文字、數(shù)字或其他對象編成數(shù)碼,或?qū)⑿畔ⅰ?shù)據(jù)轉(zhuǎn)換成規(guī)定的電脈沖信號。
雖然每個人對于每個燈的狀態(tài)的描述用到了不同的語言或形式,但每個人都是只有兩種情況,這和二進(jìn)制只有兩個基本數(shù)字是一致的,所以學(xué)生進(jìn)行的編碼過程也可以稱為是二進(jìn)制形式的編碼。
數(shù)字化編碼,為了統(tǒng)一編碼結(jié)果的形式,方便交流,對于每一個LED燈,滅的狀態(tài)用數(shù)字0表示,亮的狀態(tài)用1表示。請學(xué)生修改自己的任務(wù)單,把結(jié)果數(shù)字化表示。引出本節(jié)課的第二個重要概念:用數(shù)字0和1表示的編碼就是二進(jìn)制編碼。同時指出,數(shù)字系統(tǒng)中常用的編碼有兩類,一類是二進(jìn)制編碼,另一類是十進(jìn)制編碼。
再次回收數(shù)字化后的編碼結(jié)果,并和學(xué)生一起進(jìn)行結(jié)果的匯總,將數(shù)字化后的編碼寫在黑板上,最后發(fā)現(xiàn)只有4個不同的記錄。拋出問題:控制兩個LED燈,還有沒有其他的不同狀態(tài)?經(jīng)過大家的討論和驗證,得出了一致的結(jié)論,兩個LED燈的亮滅狀態(tài)一共有4種:00、01、10、11。
4.輕松升級:控制三個LED燈
看似簡單而重復(fù)的任務(wù)升級,但是其作用和意義都是巨大的。教師設(shè)計這一系列任務(wù)的過程中,始終堅持循序漸進(jìn),逐步深入,最終達(dá)到其義自見的目標(biāo)(如表3)。
至此,學(xué)生們已經(jīng)從現(xiàn)象中很好地掌握了二進(jìn)制編碼的意義與具體實現(xiàn)方式。本節(jié)課另外一個重要的教學(xué)內(nèi)容是二進(jìn)制計數(shù)。之前發(fā)給學(xué)生的任務(wù)二、三表格的最后都預(yù)留了一個空列。此時,可以讓學(xué)生一起在最后一列的表頭寫上計數(shù),然后請他們將前面的編碼狀態(tài)進(jìn)行計數(shù)的編號。
例如,在任務(wù)二中,依次將“00,01,10,11”這4個狀態(tài)的計數(shù)值填寫為0、1、2、3,并簡單解析十進(jìn)制計數(shù)值的增長與對應(yīng)的二進(jìn)制編碼增長的對應(yīng)關(guān)系。任務(wù)三的計數(shù)要復(fù)雜一些,教師作為課程的設(shè)計者,在這個環(huán)節(jié)要有意識地引領(lǐng)學(xué)生進(jìn)行思考,并對學(xué)生的操作及時做出指導(dǎo),幫助學(xué)生更快地建立起正確的概念。
5.合作探究:制作簡單的LED燈二進(jìn)制計數(shù)器
學(xué)生之前完成的任務(wù)顯示的是固定的某一種狀態(tài),也可以說顯示的是某個十進(jìn)制數(shù)的二進(jìn)制形式,如果要改變成用二進(jìn)制形式來顯示,必須修改源程序。提出本節(jié)的一個提高任務(wù):依次顯示所有的3位二進(jìn)制數(shù)。實現(xiàn)一個簡單的二進(jìn)制計數(shù)器的功能。
本課采用簡單的延時處理,實現(xiàn)不同狀態(tài)的顯示,避免涉及更多的C語言知識,如循環(huán)語句、數(shù)組等。學(xué)生實現(xiàn)這個任務(wù)只要用順序結(jié)構(gòu),在顯示出某個二進(jìn)制編碼狀態(tài)后,用dalay(1000)命令延時1秒,然后再顯示下一個編碼狀態(tài),重復(fù)這樣的過程即可。程序上沒有新增難度,但是實現(xiàn)的效果完全不一樣,學(xué)生可以看到跳動的LED燈,對他們來說又是一個很大的驚喜,同時對于二進(jìn)制計數(shù)、二進(jìn)制加法的理解有很大的幫助。
這個環(huán)節(jié),我看到學(xué)生的LED燈的跳動方式對應(yīng)的二進(jìn)制計數(shù)有從小到大,也有從大到小,也有些小組的結(jié)果是亂序的。所以這個環(huán)節(jié),需要留出足夠的時間,讓學(xué)生多觀察、多修改自己的代碼,同時仔細(xì)觀察LED燈跳動之間的關(guān)系,充分理解二進(jìn)制計數(shù)的概念。
6.小組討論:光立方簡單嗎
學(xué)生在完成三個任務(wù)后,自然會思考:光立方該怎么實現(xiàn)呢?該不會就這么簡單吧?確實沒有這么簡單。經(jīng)過小組討論,得出制作光立方可能會存在困難的結(jié)論。因為Arduino的接口是有限的,那么可以連接的LED燈數(shù)量也就受到了限制,所以需要用到其他輔助芯片來擴(kuò)展接口,并在程序的代碼實現(xiàn)上要采取更高效、更便捷的方式。這就需要繼續(xù)學(xué)習(xí)其他的課程內(nèi)容,以激發(fā)學(xué)生繼續(xù)深入學(xué)習(xí)的熱情。
● 教學(xué)反思
本節(jié)課采用任務(wù)驅(qū)動教學(xué)法,教師要多從學(xué)生的角度出發(fā),堅持以學(xué)生為本,以學(xué)生為主體,換位思考,多反問自己,精心設(shè)計任務(wù),循序漸進(jìn),對于每一個任務(wù)的難度系數(shù)都做充分的考慮,保證梯度上升。設(shè)計的三個看似簡單、重復(fù)的任務(wù),學(xué)生卻做得興趣十足,學(xué)生在實踐中主動形成自己的知識結(jié)構(gòu),進(jìn)一步體驗編程加工的魅力。如果能融入更多動手實踐的環(huán)節(jié),那么可以進(jìn)一步提高教學(xué)的效果。
endprint
● 教學(xué)內(nèi)容分析
二進(jìn)制的概念對于中學(xué)生來說還是比較難掌握的一個知識點,以前我在該模塊的教學(xué)中主要采取的是理論講解法,學(xué)生會覺得比較枯燥,難以理解。此前,我剛給高二年級的學(xué)生開過一期《Arduino趣味編程與電子制作》校本選修課,所以在高一《信息技術(shù)基礎(chǔ)》課程該模塊的教學(xué)設(shè)計上,自然而然地想到了將二者在某些內(nèi)容上進(jìn)行結(jié)合,用生動有趣的實驗輔助教學(xué)以提高教學(xué)效率。
本節(jié)課選取《信息技術(shù)基礎(chǔ)》(浙江教育出版社)第一章第二節(jié)《信息的編碼》的部分內(nèi)容,同時整合了第三章第四節(jié)《信息編程加工》中的部分內(nèi)容。本節(jié)創(chuàng)設(shè)的Arduino環(huán)境可以幫助學(xué)生掌握二進(jìn)制編碼的概念,將二進(jìn)制計數(shù)器變?yōu)楝F(xiàn)實,同時使其對計算機(jī)編程產(chǎn)生興趣。
● 學(xué)情分析
按學(xué)校的教學(xué)安排,教學(xué)對象為高一學(xué)生。他們經(jīng)過初中信息技術(shù)課程的學(xué)習(xí),掌握了計算機(jī)的基礎(chǔ)操作,具備了一定的網(wǎng)絡(luò)知識。但是對大多數(shù)學(xué)生來說,這是他們第一次編寫計算機(jī)程序。學(xué)生對編程加工往往充滿了期待,但是面對由數(shù)字、符號組成的程序,他們又有畏難情緒,還可能覺得枯燥。所以本節(jié)課我用看得見、摸得著的軟硬件相結(jié)合的實驗任務(wù),通過分析代碼引導(dǎo)學(xué)生進(jìn)行思考,了解計算機(jī)的工作機(jī)制,培養(yǎng)學(xué)生的學(xué)習(xí)興趣。
● 教學(xué)目標(biāo)
知識與技能目標(biāo):了解Arduino的編程環(huán)境,初識C程序代碼;了解二進(jìn)制編碼的概念和二進(jìn)制計數(shù)系統(tǒng)的特點。
過程與方法目標(biāo):體驗二進(jìn)制編碼的一般過程;引領(lǐng)學(xué)習(xí)與自主學(xué)習(xí)相結(jié)合。
情感態(tài)度與價值觀目標(biāo):通過信息的二進(jìn)制編碼與二進(jìn)制計數(shù)的學(xué)習(xí)講解,進(jìn)一步學(xué)習(xí)計算機(jī)原理,不斷探究新知,了解科技新領(lǐng)域;培養(yǎng)自主探索、協(xié)作研究的精神,鼓勵善于發(fā)現(xiàn)問題、提出問題,并分析、解決問題;初識編程,感受利用計算機(jī)解決問題的獨特魅力,培養(yǎng)學(xué)習(xí)興趣。
● 教學(xué)重點及難點
教學(xué)重點:體驗二進(jìn)制編碼的一般過程;理解二進(jìn)制計數(shù)的方法。
教學(xué)難點:理解二進(jìn)制計數(shù)的方法。
● 教學(xué)資源與工具
多媒體教學(xué)網(wǎng)絡(luò)教室,Arduino開發(fā)板以及相應(yīng)的電路元器件;部分源程序代碼文件;Arduino控制的光立方展示作品。
● 教學(xué)過程
1.創(chuàng)設(shè)情境,導(dǎo)入課題
教師首先將在高二校本選修課《Arduino趣味編程及電子制作》課上制作過的一個4×4×4矩陣LED光立方作品展示給學(xué)生,他們一下子就被這個炫彩的光立方吸引了,激發(fā)了進(jìn)一步學(xué)習(xí)的興趣。教師順勢提出本課問題:這個光立方是被誰控制的呢?它是怎樣形成復(fù)雜的圖案的?大家想不想做出自己的炫彩矩陣效果燈呢?教師發(fā)出邀請:那就讓我們一起從Arduino控制LED小燈開始吧。
導(dǎo)入課題:揭開光立方的秘密——基于Arduino的二進(jìn)制信息編碼體驗。
2.Arduino控制LED小燈初體驗
本體驗任務(wù)的目標(biāo)是讓學(xué)生了解并掌握利用Arduino編程控制LED燈的過程(如下頁表1),各項難度指標(biāo)都屬于入門級,一般學(xué)生都可以完成。
教師首先講解使用到的硬件及其連接方法,然后示范利用Arduino編程控制LED燈的過程,說明注意事項。在互動體驗學(xué)習(xí)環(huán)節(jié)中,教師和學(xué)生一起連接好電路,一起解讀相應(yīng)的代碼,并告訴學(xué)生打開或關(guān)閉LED燈的命令。學(xué)生可以自行修改代碼,選擇打開或者關(guān)閉,然后編譯代碼并上傳到Arduino開發(fā)板,就可以讓程序控制小燈了,同時提示學(xué)生觀察結(jié)果。
教師巧妙設(shè)計、分解任務(wù)單,從小的、簡單的任務(wù)開始,顯性任務(wù)雖然只是簡單地記錄了小燈的狀態(tài),但卻為編碼概念的提出作了鋪墊。圖1為連接電路圖及主要程序代碼。
3.自主學(xué)習(xí):控制兩個LED燈
教師拋出問題:用一個LED燈能實現(xiàn)光立方嗎?這個問題的答案顯然是否定的。教師繼續(xù)拋出問題:那要不要再增加一個LED燈,并實現(xiàn)對兩個LED燈的控制(如表2)?教師分發(fā)新的任務(wù)單和實驗材料,一個電阻、一個LED燈以及連接用的導(dǎo)線。圖2為連接電路圖及主要程序代碼。
學(xué)生在任務(wù)一的硬件電路基礎(chǔ)上,增加兩個新的元器件的難度系數(shù)也是適中的,最終輕松地完成了電路的調(diào)整。教師讓學(xué)生自主學(xué)習(xí)修改任務(wù)一中的程序,使兩個LED燈亮或者滅,并記錄自己的兩個LED燈的狀態(tài)。
教師通過電子教室回收并展示學(xué)生的任務(wù)單。有的學(xué)生用中文亮、滅描述,有的學(xué)生用英文on、off描述,有的用數(shù)字1、0描述,這些正是教師預(yù)設(shè)想要的結(jié)果,為講解編碼的概念埋下了伏筆。
教師指出學(xué)生的描述都是正確的,對狀態(tài)用不同的形式進(jìn)行記錄的過程就是編碼的過程。教師引出本節(jié)課的一個重要概念:從一種形式或格式轉(zhuǎn)換為另一種形式就是編碼。編碼就是用預(yù)先規(guī)定的方法將文字、數(shù)字或其他對象編成數(shù)碼,或?qū)⑿畔?、?shù)據(jù)轉(zhuǎn)換成規(guī)定的電脈沖信號。
雖然每個人對于每個燈的狀態(tài)的描述用到了不同的語言或形式,但每個人都是只有兩種情況,這和二進(jìn)制只有兩個基本數(shù)字是一致的,所以學(xué)生進(jìn)行的編碼過程也可以稱為是二進(jìn)制形式的編碼。
數(shù)字化編碼,為了統(tǒng)一編碼結(jié)果的形式,方便交流,對于每一個LED燈,滅的狀態(tài)用數(shù)字0表示,亮的狀態(tài)用1表示。請學(xué)生修改自己的任務(wù)單,把結(jié)果數(shù)字化表示。引出本節(jié)課的第二個重要概念:用數(shù)字0和1表示的編碼就是二進(jìn)制編碼。同時指出,數(shù)字系統(tǒng)中常用的編碼有兩類,一類是二進(jìn)制編碼,另一類是十進(jìn)制編碼。
再次回收數(shù)字化后的編碼結(jié)果,并和學(xué)生一起進(jìn)行結(jié)果的匯總,將數(shù)字化后的編碼寫在黑板上,最后發(fā)現(xiàn)只有4個不同的記錄。拋出問題:控制兩個LED燈,還有沒有其他的不同狀態(tài)?經(jīng)過大家的討論和驗證,得出了一致的結(jié)論,兩個LED燈的亮滅狀態(tài)一共有4種:00、01、10、11。
4.輕松升級:控制三個LED燈
看似簡單而重復(fù)的任務(wù)升級,但是其作用和意義都是巨大的。教師設(shè)計這一系列任務(wù)的過程中,始終堅持循序漸進(jìn),逐步深入,最終達(dá)到其義自見的目標(biāo)(如表3)。
至此,學(xué)生們已經(jīng)從現(xiàn)象中很好地掌握了二進(jìn)制編碼的意義與具體實現(xiàn)方式。本節(jié)課另外一個重要的教學(xué)內(nèi)容是二進(jìn)制計數(shù)。之前發(fā)給學(xué)生的任務(wù)二、三表格的最后都預(yù)留了一個空列。此時,可以讓學(xué)生一起在最后一列的表頭寫上計數(shù),然后請他們將前面的編碼狀態(tài)進(jìn)行計數(shù)的編號。
例如,在任務(wù)二中,依次將“00,01,10,11”這4個狀態(tài)的計數(shù)值填寫為0、1、2、3,并簡單解析十進(jìn)制計數(shù)值的增長與對應(yīng)的二進(jìn)制編碼增長的對應(yīng)關(guān)系。任務(wù)三的計數(shù)要復(fù)雜一些,教師作為課程的設(shè)計者,在這個環(huán)節(jié)要有意識地引領(lǐng)學(xué)生進(jìn)行思考,并對學(xué)生的操作及時做出指導(dǎo),幫助學(xué)生更快地建立起正確的概念。
5.合作探究:制作簡單的LED燈二進(jìn)制計數(shù)器
學(xué)生之前完成的任務(wù)顯示的是固定的某一種狀態(tài),也可以說顯示的是某個十進(jìn)制數(shù)的二進(jìn)制形式,如果要改變成用二進(jìn)制形式來顯示,必須修改源程序。提出本節(jié)的一個提高任務(wù):依次顯示所有的3位二進(jìn)制數(shù)。實現(xiàn)一個簡單的二進(jìn)制計數(shù)器的功能。
本課采用簡單的延時處理,實現(xiàn)不同狀態(tài)的顯示,避免涉及更多的C語言知識,如循環(huán)語句、數(shù)組等。學(xué)生實現(xiàn)這個任務(wù)只要用順序結(jié)構(gòu),在顯示出某個二進(jìn)制編碼狀態(tài)后,用dalay(1000)命令延時1秒,然后再顯示下一個編碼狀態(tài),重復(fù)這樣的過程即可。程序上沒有新增難度,但是實現(xiàn)的效果完全不一樣,學(xué)生可以看到跳動的LED燈,對他們來說又是一個很大的驚喜,同時對于二進(jìn)制計數(shù)、二進(jìn)制加法的理解有很大的幫助。
這個環(huán)節(jié),我看到學(xué)生的LED燈的跳動方式對應(yīng)的二進(jìn)制計數(shù)有從小到大,也有從大到小,也有些小組的結(jié)果是亂序的。所以這個環(huán)節(jié),需要留出足夠的時間,讓學(xué)生多觀察、多修改自己的代碼,同時仔細(xì)觀察LED燈跳動之間的關(guān)系,充分理解二進(jìn)制計數(shù)的概念。
6.小組討論:光立方簡單嗎
學(xué)生在完成三個任務(wù)后,自然會思考:光立方該怎么實現(xiàn)呢?該不會就這么簡單吧?確實沒有這么簡單。經(jīng)過小組討論,得出制作光立方可能會存在困難的結(jié)論。因為Arduino的接口是有限的,那么可以連接的LED燈數(shù)量也就受到了限制,所以需要用到其他輔助芯片來擴(kuò)展接口,并在程序的代碼實現(xiàn)上要采取更高效、更便捷的方式。這就需要繼續(xù)學(xué)習(xí)其他的課程內(nèi)容,以激發(fā)學(xué)生繼續(xù)深入學(xué)習(xí)的熱情。
● 教學(xué)反思
本節(jié)課采用任務(wù)驅(qū)動教學(xué)法,教師要多從學(xué)生的角度出發(fā),堅持以學(xué)生為本,以學(xué)生為主體,換位思考,多反問自己,精心設(shè)計任務(wù),循序漸進(jìn),對于每一個任務(wù)的難度系數(shù)都做充分的考慮,保證梯度上升。設(shè)計的三個看似簡單、重復(fù)的任務(wù),學(xué)生卻做得興趣十足,學(xué)生在實踐中主動形成自己的知識結(jié)構(gòu),進(jìn)一步體驗編程加工的魅力。如果能融入更多動手實踐的環(huán)節(jié),那么可以進(jìn)一步提高教學(xué)的效果。
endprint