李忠偉


案例背景
《循環結構》案例是廣東省佛山市高中信息技術課程校本化研究活動之“計算思維的培養”的一節公開課。教材內容取材于廣東教育出版社的高二信息技術(選修1)算法與程序設計第二章第4節第一課時,并結合石門高級中學機器人校本課程進行設計,學時為1課時。《循環結構》一課將STEM教學理念融入課堂。STEM教育理念源于美國,其代表科學(Science)、技術(Technology)、工程(Engineering)、數學(Mathematics)融合,旨在培養具有創新能力的復合型人才,同時在教學過程中有意識地向學生滲透計算思維,即利用計算機解決問題的思維和方法。
學情分析
本節之前學生已學習了程序的順序和分支結構,對機器人仿真編程軟件的使用基本熟悉。這節課較之順序、分支結構有一定的難度。由于只上了幾節程序基礎課,大部分學生用代碼編寫程序的能力較弱。為了提高學生的學習積極性,降低難度,筆者對循環結構這一章節采用循序漸進的方法。首先用流程圖的編程模式進行教學,暫時忽略具體代碼,關注算法本質,希望讓學生更容易接受和體驗學習編程的成就感。高中生信息技術水平差異化非常突出,教師要兼顧到各個層次的學生。教師設計不同難度的編程任務,讓學生們都能在課堂上“吃飽”。教師在課件上提供豐富的學習資源以供他們進一步學習,如提供自主學習的微視頻導學材料等。
教學目標
知識與技能目標:認識循環結構的概念、作用、分類及其在編程中的廣泛應用。掌握循環結構中的多次循環(固定次數循環)、永遠循環(死循環)和條件循環的區別和應用。學會綜合利用循環結合順序和分支三大結構編寫機器人行走等一系列的應用問題。
過程與方法目標:能通過類比的方法去應用循環結構編寫程序。能正確運用循環結構去解決機器人行走等一系列應用問題。初步體驗自頂向下、逐步求精、模塊化程序設計解決問題的過程和方法。
情感態度與價值觀目標:通過程序設計過程,培養學生嚴謹細致的科學精神。培養學生編程興趣。
教學重點、難點
重點:循環結構中條件循環的執行流程及編程應用。
難點:循環結構的靈活應用。
整體思路
本課先是從學生感興趣的機器人問題出發,教師演示滅火機器人滅火和掃地機器人回家充電的情境。然后,教師提出問題:機器人是如何搜索到火源和充電器的?從而激發學生探究問題的興趣。接著,教師以問題解決的教學模式,將循環結構的知識,按照“什么是循環結構——為什么要用循環結構——循環結構分類——循環結構應用”一步一步地循漸推進。教學中采用案例教學,貼近學生生活實際,如機器人叫醒程序“聞光起叫”、機器人滅火程序等,讓學生體驗完成機器人編程項目的成功感。
●教學過程
1.創設問題情境,引入新課
教師播放兩段視頻,一是我校學生在美國參加國際中學生機器人滅火比賽獲得冠軍的比賽視頻;二是家庭掃地機器人掃完地回家充電的視頻。學生看后既感到新鮮又充滿疑惑。例如,滅火機器人它是如何自動搜索到火源的?掃地機器人是如何找到充電器的?教師引導學生分析,機器人是由程序驅動的,滅火機器人在找到火源前,它不停地重復行走以搜索火源目標;而掃地機器人快沒電了,在找到充電器前,它都在不停地重復行走以搜索充電器目標。因此,看似它們在做不同的任務,但程序本質是一樣的,即在一定的條件下,重復執行行走和搜索目標的動作。而描述這種重復的算法步驟的程序結構,就是這節課要學的內容——循環結構。
設計意圖:機器人問題情境讓學生倍感新鮮,富有時代感。機器人的各種走路算法是一個個靈活應用循環結構編程的典型案例。通過機器人仿真編程環境,驅動機器人按學生的意圖做出各種反應,呈現效果生動形象,更能吸引學生學習程序的興趣。
2.循環結構概念
教師講解循環結構的概念,描述重復執行某段算法的程序結構。它和順序、分支結構一起組成程序的三大類型結構。教師講解循環結構的執行流程。
學生聆聽并理解循環結構的概念,閱讀流程圖掌握循環結構的執行流程,回答教師提出的問題。
設計意圖:讓學生儲備循環結構的知識為后續編程解決問題夯實基礎。用流程圖的方法講解循環結構執行流程。通過對比教學法,讓學生理解循環與分支、順序結構的區別。
3.循環結構作用與分類
教師通過分別用循環結構和順序結構實現機器人走正方形的兩個程序的對比演示,引導學生歸納循環結構的作用,它可以極大地減少程序重復書寫的工作量。
學生對比分別用順序結構和循環結構編程實現機器人走正方形的例子,感悟采用循環結構的優勢。
設計意圖:通過對比實驗,形成簡練和繁冗的強烈反差,讓學生感悟循環結構的優點。
4.循環結構的應用
(1)多次循環
教師講解多次循環的概念和使用方法,布置機器人走正六邊形的編程練習任務。
學生計算走正六邊形轉彎的角度(如圖1),動手編寫和調試程序。學生總結并掌握多次循環結構的編程方法。
設計意圖:機器人走正六邊形軌跡的程序是走正方形程序的進階,需要靈活求解轉彎的角度,也通過任務的稍微改變考察學生知識的遷移和應用能力,有一定的難度梯度,符合學生認知和能力發展規律。同時,這里也給學生設置了一個慣性思維陷阱,很多學生誤認為機器人轉彎角度是內角,其實是內角的補角。
(2)永遠循環
教師演示機器人不停發出叫聲并眨眼睛的編程例子的實現方法。
學生觀看演示,掌握永遠循環結構的編程方法。
設計意圖:這個編程例子為下面完成的“聞光起叫”機器人叫人起床程序作鋪墊。由相對容易理解的永遠循環知識點過渡到下面難度相對高的條件循環知識點,學生知識的遷移和能力的提高,符合其心理認知發展規律。
(3)條件循環
教師講解條件循環的概念和應用場景,布置學生練習機器人“聞光起叫”編程。
教師巡回指導學生,檢查學生學習成果。
學生兩人分組協作動手編寫和調試程序,上交作業。學生觀看同學演示。學生歸納掌握條件循環結構的編程方法。
設計意圖:機器人“聞光起叫”讓學生和“聞雞起舞”相聯系,覺得幽默有趣,學習熱情高漲。該環節是本課的重點難點所在,因為條件循環的循環體是否執行涉及循環條件表達式是否成立的問題。在實際教學中,筆者發現學生往往會忽略循環條件變量是否改變的問題。學生的整體算法思路沒錯,但循環體里面常常忘記給循環變量進行重新賦值,以致循環條件在程序執行自始至終都是原來的初值,導致變成死循環或者沒有執行循環體的錯誤。因此,本環節教師先不提醒學生,采用在他們動手實踐的時候,允許部分學生犯錯,然后通過他們運行程序發現問題,這個時候,再引導學生尋找和分析問題的根源。從犯錯中得到經驗教訓,從而深刻體會到循環條件編程的關鍵點,也就更好地突破了循環條件應用的教學難點。
5.解決問題——機器人搜索火源問題
教師采用自頂向下、逐步求精模塊化的編程方法引導學生獲得解決問題的算法,布置練習任務,讓學生自主探索機器人搜索火源的算法。教師檢查學生學習成果,讓學生用游戲表演的方式展示機器人搜索火源的行走算法。
教師展示仿真環境的程序測試效果。
學生閱讀課件獲得解決問題的算法,觀看同學表演機器人行走算法,加深理解。
學生完善教師提供的半成品程序,調試程序和仿真環境測試,提交作業。
設計意圖:水到渠成,綜合利用本節課的知識點,解決新課導入的問題。讓學生學以致用,體驗學習成功感。通過游戲模擬機器人行走,加深學生對機器人搜索火源的“S”形行走算法的理解。
6.回顧和拓展
(1)回顧梳理
教師課堂小結,回顧本節課學習過程,引導學生總結循環結構的知識點。教師引導學生回顧自頂向下,逐步求精模塊化的編程方法。師生一起瀏覽網絡課件學習社區中學生提出的典型疑難問題并進行解答。
(2)拓展提升
教師簡單介紹循環結構在其他編程領域中的應用,引導學有余力的學生課外閱讀拓展材料,激勵學生進一步學習程序設計和機器人知識。
設計意圖:通過網絡課件,及時搜集和解答學生的疑難問題,提高課堂的互動性。開拓學有余力的學生的視野,讓各層次的學生都能“吃飽”。通過課堂小結和評價,讓學生獲得進一步的感悟和提升。
● 教學評價
為了獲得學生對本課的學習效果的評估數據,課件設計了學生學習自我評價反饋環節(如圖2)。讓學生學完這節課后,對自己的學習行為進行自我評估,同時也讓學生對教師的教學提出改進建議。對學生提交的數據進行分析,可以側面地了解學生哪個知識點還沒有掌握,從而改進教學環節。教師爭取從學生的反饋獲得改進建議,形成民主的教學氛圍,從而更好地達到教學目標和突破本節課的重點和難點。
● 教學反思
這節程序設計課的教學內容和編程案例與機器人應用教學的一些內容進行了整合,旨在利用循環結構解決機器人的一些應用問題,可以說是程序設計和機器人編程應用教學的一堂整合課。在教學過程中,教學設計是有意識地向學生滲透學科思維例如計算思維的培養,試圖將STEM教育理念引入課堂,將其融合在一起。具體體現在每個應用機器人的編程小項目對學生來說本身就是一個個需要完成的小工程(E);機器人走正六邊形轉彎角度的求解就是數學(M)思維的訓練;還有機器人應用亮度傳感器測試環境光的亮度是電子技術(T)的應用等;而最為重要的是在程序解決問題的過程中,向學生有意識滲透了自頂向下、逐步求精、模塊化的編程思想。整堂課,學生整體參與度較高,能完成課堂編程任務。但是,也有不足之處,如限于場地和經費,沒能給學生提供真實的機器人編程體驗等。