周南
使用編程模擬物理實驗,可以幫助學生更方便地理論聯(lián)系實際,加深對概念或原理的理解,培養(yǎng)創(chuàng)新思維和探索能力,突出編程在計算思維與數(shù)字化學習與創(chuàng)新學科核心素養(yǎng)中的雙重意義。尤其對部分地區(qū)來說,利用編程模擬能較好地解決因課時少、器材缺、教師技能欠缺等導致的實驗教學不充分的問題,為進行真實物理實驗打好基礎,加深理解。下面,筆者以《打點計時器》為例探討用編程模擬物理實驗的項目學習設計。
項目設計背景
本節(jié)課的教學目標是學會使用計數(shù)循環(huán)結(jié)構(gòu)程序解決問題的方法。通過嘗試結(jié)合物理實驗《打點計時器》進行項目學習,模擬重復打點,形成紙帶效果,學生在實踐中不僅能掌握計數(shù)循環(huán),而且會加深對打點計時器工作原理及運動現(xiàn)象的探究。本節(jié)課的程序?qū)W習可采用半成品加工的方式,突出核心問題,幫助學生獲得學習的成就感,激發(fā)學習興趣。
項目實施過程
在學習本課時,物理學科正好在同步講解打點計時器,學生了解打點計時器的結(jié)構(gòu)及工作原理,課堂引入時可以根據(jù)情況進行簡單溫故。
模擬實驗1:模擬勻速直線運動打點
已知物體處于勻速直線運動狀態(tài),運動速度為0.3m/s,采用打點計時器記錄物體運動0.4秒,模擬紙帶效果(如屏幕分辨率為1024×768,那么1毫米約等于3.78像素)。
為了更好地幫助學生理解實驗中物體的運動過程,使用表1,要求學生在完成填空的基礎上,再將教師提供的Python半成品程序代碼補充完整(如圖1),運行觀察、記錄紙帶效果。
參考答案:①v*tm*1000*3.78;②sx;③tm
圖1中,前進的位移需要根據(jù)已知量將其換算成像素。從圖1可以看出,此時算法采用順序結(jié)構(gòu),學生在該程序中學習海龜畫圖實現(xiàn)點繪制的過程,為下面的循環(huán)結(jié)構(gòu)打下基礎。
模擬實驗2:模擬大量自動打點
探究如何優(yōu)化模擬實驗1的算法,模擬輸出使用打點計時器記錄物體運動1秒的紙帶效果(如圖2)。
參考答案:①v*tm*1000*
3.78;②i in range(50)(說明:此處循環(huán)變量i也可用其他變量表示);③sx;④tm
通過模擬實驗2,從順序結(jié)構(gòu)過渡到循環(huán)結(jié)構(gòu),可以讓學生更好地理解循環(huán)結(jié)構(gòu)的作用,使用循環(huán)語句簡化算法,提高效率,同時,該程序可以幫助學生理解循環(huán)體語句、循環(huán)變量和循環(huán)次數(shù)各自的含義,學習for語句的基本格式和列表的range函數(shù)表達,為模擬物體的勻加速直線運動奠定基礎。
模擬實驗3:模擬勻加速直線運動打點
已知物體處于勻加速直線運動狀態(tài),運動初速度為0.05m/s,加速度為1m/s2,采用打點計時器記錄物體運動1秒,模擬紙帶效果(如圖3)(如屏幕分辨率為1024×768,那么1毫米約等于3.78像素)。
在模擬實驗3中,需要將之前所學的知識綜合運用,利用位移計算,制作勻加直線運動的打點效果。本實驗難點是學生對變量中值的變化和算法中遞推思想的理解,可以通過對其他案例如累加等進行講解并遷移,達到教學目的。
參考答案:①i in range(2,51);②(v0*t+(a*t**2)/2)*1000*3.78;③(v0*t+(a*t**2)/2)*1000*3.78;④sb-sq;⑤sy
項目拓展
通過模擬實驗,可以利用打上點的紙帶研究物體的運動情況,進一步體驗測量平均速度和瞬時速度,回歸實驗本身的意義,布置項目拓展。以屏幕上的第一個點為計時零點,用平均速度代替瞬時速度的方法,粗略地算出每點的速度,填入表2中。同時,課后請將表2中的瞬時速度在v-t圖中描點連線,畫出v-t圖像,以達到實驗目的。
項目交流
實驗是搜集科學事實、獲得感性材料的基本方法,同時也是檢驗科學假說、形成科學理論的實踐基礎。在科學實驗中使用儀器,能使獲得的資料更豐富、更精確,且能排除次要因素的干擾,更快揭示出研究對象的本質(zhì)。實驗結(jié)束后,學生對實驗中獲得的數(shù)據(jù)做進一步加工、整理,可以從中提取出科學事實或某種規(guī)律性的理論。本項目通過使用程序?qū)嶒炦M行模擬,可以排除真實實驗中誤差對實驗結(jié)果的干擾,同時,引導學生采用逆向思維,深刻體會程序在情境中的運用方法,發(fā)展計算思維,促進對編程的深度學習。
蒼山點題
編程教育與其他信息技術教育一樣,有豐富多彩的教學故事可以采用,有奇妙精彩的學科選題可以使用。但是,我們在追求內(nèi)容新鮮、生動、豐富的同時,一定不要忘記在教學設計中注重對學法的策略研究,方法研究只有更針對學生的知識儲備、思維特點等具體情況,才能更有利于教學的順利實施,也才能更好地培養(yǎng)學生的技能與思維。
第一篇文章,作者從小學生的認知特點出發(fā)進行教學設計,注重了行動比思維先行一步,讓思維順其自然地產(chǎn)生,通過動起來、說出來、做起來,充分調(diào)動行為動作和語言描述等綜合能力的配合,在祝愿卡的制作活動中打破單調(diào)的輸出語句學習,讓學生盡情說出自己的心愿并通過心愿卡進行展示及與父母交流,在愉快的行動中學習編程,進而通過對心愿卡的優(yōu)化設計,增加互動功能,體驗人機交互的程序設計,順其自然地對輸入語句進行深入探索。在分支程序方面,也通過拯救小動物的情境游戲,在行動中體驗事物判斷的意義,逐步遷移到分支結(jié)構(gòu)程序的應用。這些行動,降低了算法與程序的理解難度,讓學生的身心共同參與學習,從而培育了多元的智慧。
第二篇文章,作者從高中的學科學習需求出發(fā)進行設計,體現(xiàn)了編程在學科融合學習中在數(shù)字化與創(chuàng)新這一學科核心素養(yǎng)中的價值,并深化了計算思維的培育。在編程學習方面,通過最簡單的圖形——點的繪制,讓分辨率與實際位移相結(jié)合,從順序程序借助頭腦風暴過渡到循環(huán)程序的設計,一步步越來越自動化地繪制紙帶上的點;在物理實驗學習方面,從勻速運行的模擬觀察開始,到加速運動的模擬實驗的觀察與分析,注重了對直觀現(xiàn)象與抽象數(shù)據(jù)的配合設計,對編程學習的流程、意義與方法都是一種良好的嘗試,在算法的理解與編程技術的掌握上對學生大有裨益。
也許,不少老師會質(zhì)疑:為什么編程教學要在主題內(nèi)容、學習方式上玩這么多花樣,而不是扎實地進行計算機語言的學習與編程實例的訓練?這仍然是對教育理念與教學方法的爭議問題,并不只是編程教學面臨的分歧,是軟件教學還是技術教學,是信息素養(yǎng)目標還是計算思維目標,甚至只是純粹的編程體系知識的目標,這都值得我們繼續(xù)探索、比較和反思,也期待大家的更多觀點。