王國慶
● 學習者分析
本課的教學對象是小學五年級的學生,通過前面的學習,他們已經掌握了Scratch各模塊的基本命令,具備獨立完成簡單任務的能力。這個年齡段的學生的思維正處于認知發展階段,喜歡動手操作,雖然具有一定的分析問題和解決問題的能力,但沒有整體規劃布局的能力,同時缺乏對直觀事物背后技術本質的探究,而本節課是個很好的整合點,能夠幫助學生透過事物的表象看本質,重點幫助他們建立整體規劃的意識。
● 教材分析
本課是蘇科版小學信息技術Scratch模塊的綜合練習部分。前面幾部分是對每個具體模塊的學習,學生用簡單的積木搭建式的方法就能制作出比較滿意的作品。但如何綜合使用不同模塊制作出貼合生活實際的作品呢?制作綜合作品學生需要掌握哪些技能呢?這需要學生通過綜合拓展課來學習。通常綜合練習內容需要兩節課,甚至更多的課時才能完成,而這是一節市級公開課,只有一課時。筆者認為,選擇第二課時的內容進行教學交流,則更具有研討意義和討論價值。另外,還能從程序設計整體流程的角度對學生的已有知識體系進行梳理,幫助他們實現個人知識地圖的建構。
● 教學目標
知識與技能目標:通過具體問題重點復習Scratch控制、外觀、動作和偵測模塊的綜合使用方法;學習測試程序的基本方法。
過程與方法目標:通過半成品游戲作品制作,初步學習設計簡單小游戲的流程;通過完善游戲作品,初步學習測試程序的基本方法。
情感態度與價值觀目標:通過自主探究以及小組合作,提升發現、提出、分析、解決問題的能力以及發散性思維能力,同時養成合作探究的良好習慣。
行為與創新目標:在測試半成品游戲的基礎上,利用已有資源,創造性地設計有個性的游戲作品。
● 教學重點、難點
重點:理解、掌握、靈活運用Scratch中控制、外觀、動作和偵測模塊的綜合使用方法。
難點:初步掌握設計簡單小游戲的流程。
● 教學策略
本課是一節典型的綜合能力拓展課,要求學生只要能利用所學知識制作一個綜合作品就可以了,但這樣體現不出學生設計的能力,而且學習效率不高。筆者考慮到小學生的年齡特點,對于他們來說問題比較明確則有利于教學的正常開展,所以本課以任務驅動法為主要教學手段。在活動中,教師適時為學生搭建學習所需的“支架”,幫助他們完成知識的建構。本案例中的任務主要基于學生版程序的編寫問題,用幾個程序問題連貫具體任務,問題由簡單到復雜,讓學生在做中學,在學中思,在思中用,使得技能課不僅是知識的傳授和技能的學習,更是讓學生在情境化的技術活動中,理解運用程序化的方法解決具體問題。
● 課前活動
播放環保宣傳片。
設計意圖:觀看環保宣傳片,用視頻中具體的數據引發學生的思考,讓他們明白環保的緊迫性,同時迅速進入課堂準備狀態,間接告訴學生本課的主題內容是什么。

● 教學過程
1.情境導入,引出主題
師:觀看短片,我們發現保護環境迫在眉睫。這節課我們一起用Scratch來設計一個小游戲,并在游戲中倡導大家保護環境。游戲背景是:有位飛碟戰士想回到自己的家,大家能幫他完成心愿嗎?現在,請一位同學到教師機上玩教師版的Scratch作品,看能否幫助飛碟戰士順利回家?(一位學生在不知道游戲規則的前提下大膽嘗試,超時,失敗了)很勇敢的嘗試,他給我們提供了什么經驗呢?
生:玩游戲要知道游戲規則。
師:那么游戲規則是誰設置的呢?都有些什么規則呢?你在寫游戲的時候,如何讓用戶快速了解游戲規則呢?
生:游戲編程者……
教師再請另一位同學演示。
師:我們看看游戲運行的整個流程。(學生順利過關)大家可以結合之前學習的Scratch知識,思考游戲中的背景和角色,以及不同角色的腳本是怎么執行的。
預設:學生看到游戲角色多,腳本編寫復雜,可能會有抵觸心理。
設計意圖:說始終不如做來得記憶深刻。由教師敘述游戲的制作要求,不如讓學生們玩一玩游戲,學生有了體會后再來梳理制作要求,會更好著手。而實際上這正是軟件開發中的“需求分析”過程。信息技術課的時間是有限的,雖然小學生對新鮮事物好奇心很強,但專注力差,為了提高每節課的教學效率,教師很有必要在課堂上做一些相關內容的取舍。教師告知學生設計游戲的目的和主題,就是讓學生集中精力做跟主題相關的設計,明確游戲中每個角色和背景的作用;讓學生玩游戲是根據他們好玩的天性,讓其去發現問題,了解游戲運行的基本流程。
2.同伴互助,模塊化游戲流程
師:(PPT演示)這個游戲的背景和角色有哪些呢?在編寫綜合游戲時,我們該怎么設計呢?以“飛碟回家”為例,請大家先小組討論,再由小組長歸納討論結果。
生:先設計背景,再設置角色,最后編寫腳本。
師:之前,我們制作的作品比較簡單,大體是先設置背景和角色,再編寫程序,最后進行測試;但這次是綜合作品,我們必須先進行整體設計,再將游戲按照運行的順序模塊化,然后將不同的角色添加到不同的模塊中,最后編寫、調試程序。
學生進行交流。
師:“飛碟回家”游戲中的角色較多,我們可以借助表格將角色歸類。為了盡快學習本課內容,課前老師制作了一個設計簡單的游戲學習卡范例(如下表),請大家填寫“角色與背景分析”部分的內容。
學生填寫學習卡部分內容。
設計意圖:大部分學生喜歡動手去“折騰”,這樣有利于提高他們的創新思維品質,但效率不高,因為學生大腦中沒有明確的線索。所以,很有必要通過一定的方式讓學生的思維可見,具體的方法是不給學生設限,只要讓同伴看懂就行。這樣,學生在認識、設計游戲的過程中,無形中為后續編寫和測試程序做好了鋪墊。實際上,這也正是軟件工程中的“概要設計”過程。
3.分模塊編寫程序
師:老師帶來了之前學生的一個作品(存在部分明顯問題)。
設計意圖:這節課的目標之一是讓學生了解整體程序設計的流程。編寫多個角色的綜合游戲需要大量的時間,如果將任務按照模塊分解,學生就可以根據已有的知識基礎分段完成作品。按照模塊化的思路分別編寫程序帶來新的挑戰是每個模塊怎么連接,雖然方法很多,但能輕松解決的學生很少。而筆者提供包含有問題的半成品,其目的是讓學生學會解讀別人的程序,能在別人編寫的基礎上提出改進建議,同時能全面掌握調試程序的方法。
4.自主探究,發現問題
師:請大家打開學生版“飛碟回家”作品,試試看,游戲能順利完成嗎(如圖1)?如果不能,那么是什么原因呢?

生:“開始”按鈕不起作用,這個角色沒有編寫相應的腳本。
師:那怎么解決呢?
生:給“開始”角色編寫程序。
設計意圖:學生雖然經常玩各類游戲,但對游戲整體的運行不是很清楚,所以很少有學生能制作出比較成熟的游戲運行界面。學生通過測試已有腳本,發現程序不足并修改;學生先分析問題,再嘗試用各種方法解決問題。這樣,不僅培養了自主探究能力,而且發散思維能力也得到了提高。本環節只預設了一個“按鈕”角色問題,難度較小,目的是增強學生學習的自信心。
5.完善細節,提高練習
師:經常會聽說某款游戲有BUG,那你的游戲有問題嗎?為了保證程序的完整性和正確性,程序編寫完成后需要進一步測試。大家討論一下,程序需要進行哪些方面的測試?(學生討論,教師引導總結)你的飛碟戰士將垃圾清理干凈了嗎?請大家回想之前學過的“穿越迷宮”的編程方法,以小組合作的方式,讓你的飛碟先清理太空垃圾,再回家(如圖2、圖3)。

生:先讀懂已有的程序,然后調試程序,發現問題。
師:大家發現了幾個問題呢?
生:兩個問題,一是飛碟不能按照迷宮的方式走,二是清理垃圾后動力值沒變化。
師:你們知道怎么解決這兩個問題嗎?
生:設定顏色判斷,在條件判斷中設置動力值。
師:團隊的力量就是強大,現在就剩一個任務了,怎樣做能讓你的“飛碟回家”游戲與眾不同呢?
生:改變結束部分的飛碟的造型;改變游戲內容部分的背景圖片;增加太空垃圾數,讓游戲難度增加……
師:同學們的想法真多啊,選擇你比較擅長的,用最短的時間去實現。
設計意圖:經過前面的學習,學生能制作較為完整的游戲了,為了不讓學生的作品都一個樣,而且為了滿足不同學習能力的學生的發展,同時兼顧課堂時間的限制,筆者給學生提供了盡可能多的選擇途徑。由于本課的容量較大,大部分學生忙于測試程序,會忽略細節問題,所以教師要做些必要的提醒。這個環節最能體現學生學習習慣的多樣性,有利于激發學生學習的積極性和主動性,給學生多種解決問題的選擇途徑,讓他們形成適合自己的學習習慣。
6.匯報展示,總結交流
活動一:教師展示有代表性的學生作品。
活動二:學生互相評價交流。
師:我們請編寫程序的同學邀請他的好朋友玩一玩,并說說自己的體驗。
3組學生互相測試。
生1:建議給玩家多些游戲規則的提示。
生2:游戲交互的方法可以多樣性。
師:大家現在有編寫復雜游戲的經驗了,通過大家的體驗感言,老師相信大家以后能編寫出更優秀的程序。
活動三:學生補充完成學習卡,并總結。
師:回顧整個學習過程,分模塊查看程序是否基本完成,最后客觀總結自己的學習成果,并完成學習卡。
學生在音樂聲中仔細思考,填寫學習卡。
設計意圖:學生的學習需要“腳手架”,學習卡的作用是讓學生始終知道自己在哪個模塊做了什么,學生可能暫時不太理解,但經過多次訓練,這種模塊化解決問題的方式,會給解決類似問題提供一種途徑。教學中筆者并沒有明確提出軟件開發流程的概念和相關知識,但卻在實踐活動中,在小卡片的模塊問題解決中,潛移默化地使學生形成相關的意識。
點 評
這是一節市級公開課,是個“命題作文”,題目是Scratch章節最后一節課:綜合活動。綜合活動類型的課應該怎么上?怎樣才能讓學生在沒有新知識需求的情況下,同樣保持學習的積極性?這個教學設計給出了一個思路。
1.綜合活動類課型的目標
綜合活動類型的課有兩個重要目標指向。一方面,在形式上需要通過完成作品的創作,了解和實踐一個完整作品制作的方法;另一方面,將它放在章節的最后一課,在設計完成作品的同時,實際上兼有對本章節知識梳理、建構學生知識地圖的功能。軟件有哪些功能、什么功能有什么特點、分別適合什么樣的應用場合等,教師希望學生通過自主創作作品的過程,真正將這些知識技能內化,即愛因斯坦說的:“所謂教育,應在于學校知識全部忘光后仍能留下的那部分東西?!?/p>
2.綜合設計類課程包含的內容
在多數綜合設計類的課程中,通常都是以對已有知識點的復習、應用和關聯為主要方向。而這節課卻很有勇氣、很有創意地增加了對已有作品的識錯、辨錯、糾錯的內容?,F有的各種教材和教學中正缺乏這部分內容,尤其是程序設計類的課程,將程序一次性設計成功是不現實也不科學的?,F實中的大小程序總是經過不斷地修正而更趨近于完善,為什么學生的程序設計中就不需要測試技巧、不需要調試方法呢?反思一下,正確的程序教學觀應該是這樣:認可程序從可能包含錯誤開始,通過測試培養學生縝密周全的思維,通過工具(在VB等程序設計教學中甚至可以加入斷點、變量值監控等教學內容)提升他們的分析能力,再通過修正不斷完善程序。此篇教學設計不僅有程序設計的基礎內容,還有軟件工程的簡單思想,王老師能夠敏銳地認識到這一點,值得肯定。
3.綜合活動課程中的問題導向教學
我市信息技術學科正開展PBL問題導向教學的研究,部分教師認為問題就是指教師的提問,而我認為,問題導向不是簡單的提問內容、方法的模式套用,而是教師能否在潛移默化中讓學生發現問題、分析問題,進而解決問題的教學思路。問題不只是問出來的,還有可能是在教學設計中預先埋伏好的困難、障礙,甚至是錯誤。此外,還有開發的軟件或游戲本身功能的不斷升級,同樣也是學生們發現問題、分析問題和解決問題的過程,是PBL教學的重要思想。而存在的問題和學生現有的知識基礎不匹配,則能讓他們記住實踐過程,也就更容易記住和再次使用當初解決問題的過程與方法,達到鞏固知識技能和提升實踐能力的雙重收獲。所以,“問題”二字,并不簡單指教師的提問,更重要的是教師通過教學設計觸發學生疑問的含義。
另外,在整個教學中,王老師讓學生從玩游戲程序發現問題開始,一路有趣味、有疑問、有思考,解決了若干問題,并逐漸建立了自信,還在不知不覺中收獲了軟件工程的思想。教師這樣的深入思考值得大家學習,這樣的精彩案例值得推薦。