吳箏
課程背景
隨著時代的快速發(fā)展,信息技術(shù)正深刻地影響著社會變革。編程已經(jīng)成為學(xué)生適應(yīng)數(shù)字社會的一種技能,提高信息素養(yǎng)也是將“數(shù)字土著”培養(yǎng)成為合格的“數(shù)字公民”的一種途徑。
本案例以小程機器人為硬件載體,以mBlock5為軟件支撐,采用軟硬結(jié)合的方式,幫助學(xué)生對問題的理解與解決有更為直接和感性的認(rèn)識,引導(dǎo)學(xué)生在活動過程中發(fā)現(xiàn)問題、分析問題,通過建模與測試、分析、解釋,發(fā)展學(xué)生的思維,培養(yǎng)學(xué)生的實踐能力與創(chuàng)新能力,感悟偶然性背后的必然性。
教學(xué)目標(biāo)
知識與技能 能說明齒輪電位器讀數(shù)、翻滾角角度的變化規(guī)律;能使用變量解決具體問題;能解釋Python語句的作用。
過程與方法 通過查看設(shè)備不同姿態(tài)下的輸出結(jié)果,推導(dǎo)齒輪電位器讀數(shù)、翻滾角角度的變化規(guī)律,培養(yǎng)觀察、探究、歸納等能力;找出問題與解決方案間的因果關(guān)系,分析判斷設(shè)備不同姿態(tài)的條件設(shè)置,并嘗試編程解決。
情感態(tài)度與價值觀 體驗人機交互的過程,提升學(xué)習(xí)興趣與創(chuàng)新思維;感悟偶然性背后的必然性。
教學(xué)重點與難點
教學(xué)重點 推導(dǎo)齒輪電位器讀數(shù)、翻滾角角度的變化規(guī)律;分析判斷設(shè)備不同姿態(tài)的條件設(shè)置。
教學(xué)難點 分析判斷設(shè)備不同姿態(tài)的條件設(shè)置;算法優(yōu)化。
教學(xué)過程
一、情境導(dǎo)入
教師請學(xué)生與小程一起參與游戲:拋硬幣猜正反面。經(jīng)過幾輪游戲,鮮有學(xué)生全部猜對,而小程顯示的結(jié)果全部正確。教師請學(xué)生思考:為什么小程能全部猜對?它是怎樣做到的?
簡短討論后,教師揭開謎底:小程并不是真的未卜先知,它能全部猜對是因為控制它的人看到結(jié)果后,按照事先設(shè)定的規(guī)則調(diào)整小程的姿態(tài),使其顯示出人看到的結(jié)果。
二、硬幣正反面“百猜百中”的奧秘——齒輪電位器
1.齒輪電位器讀數(shù)的變化規(guī)律
請學(xué)生運行簡單程序,撥動齒輪電位器,查看顯示數(shù)據(jù),可知數(shù)據(jù)變化范圍:0—100,變化規(guī)律:越靠近小程耳朵方向,數(shù)值越大。
2.算法設(shè)計——根據(jù)齒輪電位器讀數(shù)范圍做出判斷
設(shè)備初始狀態(tài):小程的姿態(tài)為“背面向上”;
設(shè)備終止?fàn)顟B(tài):小程的姿態(tài)為“正面向上”。
需求分析:根據(jù)硬幣的拋擲情況顯示相應(yīng)的數(shù)字1或者2。
規(guī)則設(shè)定:小程的姿態(tài)變?yōu)椤罢嫦蛏稀睍r,如果齒輪電位器讀數(shù)在0—30,屏幕顯示“1”,即表示硬幣正面朝上;如果齒輪電位器讀數(shù)在70—100,屏幕顯示“2”,即表示硬幣反面朝上。
設(shè)計要點:使用控制模塊下的“重復(fù)執(zhí)行”,實現(xiàn)對齒輪電位器讀數(shù)的持續(xù)監(jiān)測;使用控制模塊下的“如果……那么……”和運算模塊下的“與”運算,實現(xiàn)對齒輪電位器讀數(shù)的范圍判斷。
具體程序編寫可參考圖1。
學(xué)生編寫程序并下載到小程機器人,拋硬幣測試效果,發(fā)現(xiàn)該程序存在缺點:游戲時,齒輪電位器必須撥到指定范圍,導(dǎo)致操作者手指動作幅度較大,容易被識破。
3.算法設(shè)計——根據(jù)齒輪電位器撥動方向做出判斷
根據(jù)前文出現(xiàn)的問題,修改算法,重新設(shè)定規(guī)則:小程的姿態(tài)變?yōu)椤罢嫦蛏稀睍r,如果齒輪電位器是向下?lián)軇?,屏幕顯示“1”,即表示硬幣正面朝上;如果齒輪電位器是向上撥動,屏幕顯示“2”,即表示硬幣反面朝上。
設(shè)計要點:使用控制模塊下的“重復(fù)執(zhí)行”實現(xiàn)對齒輪電位器讀數(shù)與小程的姿態(tài)進行持續(xù)監(jiān)測;使用兩個變量分別記錄小程的姿態(tài)為“背面向上”和“正面向上”時,齒輪電位器的讀數(shù);使用控制模塊下的“如果……那么……”和運算模塊下的相應(yīng)運算比較兩個變量的值,進而實現(xiàn)對齒輪電位器撥動方向的判斷——如果“背面向上”時的讀數(shù)小于“正面向上”時的讀數(shù),說明是向上撥動齒輪電位器,反之則說明是向下?lián)軇育X輪電位器。
具體程序編寫如圖2。
三、骰子“百猜百中”的奧秘——齒輪電位器、翻滾角角度
1.翻滾角角度的變化規(guī)律
請學(xué)生運行簡單程序,調(diào)整小程的姿態(tài),查看顯示數(shù)據(jù),可知數(shù)據(jù)變化范圍:-90—0—90。數(shù)據(jù)變化規(guī)律:從齒輪電位器那一面朝下翻滾到正面向上,數(shù)值越來越大(-90→0);從開關(guān)那一面朝下翻滾到正面向上,數(shù)值越來越?。?0→0);其他姿態(tài)的翻滾角角度為0。
2.算法設(shè)計
設(shè)備初始狀態(tài):小程的姿態(tài)為“背面向上”;
設(shè)備終止?fàn)顟B(tài):小程的姿態(tài)為“正面向上”。
需求分析:根據(jù)骰子的點數(shù)顯示相應(yīng)的數(shù)字1—6。根據(jù)討論,教師引導(dǎo)學(xué)生對小程的姿態(tài)變化進行分析。
規(guī)則設(shè)定:參考圖3,詳見下表。
設(shè)計要點:使用控制模塊下的“重復(fù)執(zhí)行”,實現(xiàn)對齒輪電位器讀數(shù)、翻滾角角度進行持續(xù)監(jiān)測;使用控制模塊下的“如果……那么……否則……”與“如果……那么……”的嵌套,實現(xiàn)對六種情況的甄別。
通過齒輪電位器的讀數(shù)變化區(qū)分1、2兩種情況。通過對翻滾角角度數(shù)值進行判斷,區(qū)分3、4兩種情況:如果翻滾角角度大于50,說明小程經(jīng)歷過以A邊為軸,水平向左翻面的過程;如果翻滾角角度小于-50,說明小程經(jīng)歷過以C邊為軸,水平向右翻面的過程。通過對小程“耳朵向下”傾斜與小程的姿態(tài)為“直立在桌面”進行判斷,區(qū)分5、6兩種情況:如果小程“耳朵向下”傾斜,說明小程經(jīng)歷過以B邊為軸,垂直向上翻面的過程;如果小程的姿態(tài)為“直立在桌面”,說明小程經(jīng)歷過以D邊為軸,垂直向下翻面的過程。程序編寫如圖4。
程序缺點:由于是通過一些特定范圍的值來鑒別小程的姿態(tài),因此翻面的速度、手勢與傳感器的精度等都可能影響對姿態(tài)的判斷。
四、Python學(xué)習(xí)
借助mBlock5軟件的代碼轉(zhuǎn)換功能,將模塊代碼轉(zhuǎn)換為相應(yīng)的Python語句代碼,請學(xué)生進行簡單解釋?;谀K代碼,學(xué)生可以識別出“重復(fù)執(zhí)行”“如果……那么……否則……”“如果……那么……”在Python中不同的語句格式,并進行簡單的代碼解釋。
五、思維拓展
作品展示交流后,給學(xué)生一些時間梳理設(shè)計思路、完善提升作品。教師可以繼續(xù)與學(xué)生探討情況甄別的其他思路,引導(dǎo)學(xué)生對作品進行進一步完善和創(chuàng)新。
教學(xué)反思
不管是硬幣還是骰子,小程可以“百猜百中”。看似很神秘,其實它的背后是由算法所支撐的,真正厲害的是那個設(shè)計算法的人。通過這個作品的設(shè)計,學(xué)生可以進一步體會算法在生活中的應(yīng)用,透過現(xiàn)象看本質(zhì),激發(fā)主動學(xué)習(xí)思維,提升實踐創(chuàng)新能力。另外,學(xué)生體驗了從不同層面、不同角度分析問題,自主探究解決問題的過程,也培養(yǎng)了他們問題解決的能力。