黃榮 江蘇省南京市立賢小學
算法是小學信息科技學習的重要內(nèi)容,是在問題解決過程中涉及的一系列綜合性的思維活動。它是一個抽象的概念,如果在教學中泛泛而談,則很難培養(yǎng)學生的算法思維能力,而復雜問題解決的能力對學生的算法學習是非常重要的。因此在教學中,筆者嘗試將復雜的算法問題分解為多個子問題,使學生掌握復雜問題的分解策略。下面,以《花朵繽紛》一課為例進行說明。
《花朵繽紛》一課屬于“算法與程序設計”模塊,涉及的問題主要有兩個:一是如何在圖形化編程軟件中把一片花瓣變成一朵花;二是如何把一朵花變成花朵繽紛的特效。
①欣賞“一片花瓣變成一朵花”現(xiàn)象。
師:視頻中的一片花瓣變成了什么?讓我們從編程的角度研究“一片花瓣變成一朵花”問題。
②欣賞“花朵特效”現(xiàn)象并揭示課題。
學生繼續(xù)欣賞視頻。
師:視頻中的花朵又出現(xiàn)了什么特效?今天這節(jié)課,我們重點研究花朵繽紛。
生:花朵繽紛效果是由“一片花瓣變成一朵花”現(xiàn)象和“花朵特效”現(xiàn)象組成。
片段一:一片花瓣變成一朵花
師:各位同學動手操作,嘗試將一片花瓣旋轉變成一朵花(以五片花瓣為例),如圖1所示。

圖1
教師出示研究要求:①轉一轉:一片花瓣如何旋轉變成一朵花?②說一說:小組內(nèi)交流一下一片花瓣變成一朵花的過程。
學生小組活動。
師:哪位同學愿意將你們小組的研究成果向全班同學展示并交流?
生1:我要把這片花瓣依次進行旋轉。
一位學生提出問題:旋轉過后還是只有一片花瓣,但是花朵有五片花瓣?
生2:花瓣每次旋轉過后,還要對這片花瓣進行復制,然后再依次進行旋轉復制五次,這樣就有五片花瓣了。
師:根據(jù)大家的回答,我們來梳理一下一片花瓣變成一朵花的具體操作步驟。第一步是要有一片花瓣,第二步是什么呢?
生:第二步是旋轉,并且要確定旋轉角度。
師:旋轉的時候要注意什么?(出示課件)為什么有的花瓣會出現(xiàn)雜亂無章的情況?
生:在旋轉之前,要設置好花瓣的旋轉中心點。
師:因為旋轉前就要設置好中心點,所以第二步是確定中心點,第三步是旋轉,第四步是什么呢?
生:旋轉后就要對花瓣進行復制。
師:這樣就結束了嗎?
生:沒有,還要重復執(zhí)行旋轉復制這個過程,印好其余花瓣。
結合學生的回答,教師呈現(xiàn)一片花瓣變成一朵花的具體過程,如圖2所示。

圖2
學生根據(jù)算法過程在圖形化編程工具里編寫腳本進行驗證,并展示成果。
片段二:花朵特效
師:一朵花完成了,接下來完成花朵特效。我們來研究一下花朵有哪些變化,如圖3所示。

圖3
隨著學生的討論、交流,教師提煉,進行板書:①位置不定;②出現(xiàn)多個花朵;③顏色各異;④大小不同。
師:根據(jù)同學們的回答,可以把花朵特效抽象成四個子問題,這樣就降低了難度。首先來看位置不定的效果是怎么實現(xiàn)的。如何改變花朵出現(xiàn)的位置呢?
生:需要用到運動模塊里的坐標控件,通過改變坐標里的數(shù)值去改變位置。
師:每次改變位置都要改變坐標,很麻煩,怎么辦呢?能不能讓計算機隨機設定數(shù)值呢?它在運算模塊里,你們能找到嗎?找到了以后研究一下隨機數(shù)的范圍怎么設置呢?
生:可以把隨機數(shù)的范圍設置成舞臺的X坐標范圍和Y坐標范圍。分別是-240~240,-180~180兩組數(shù)值。
師:繼續(xù)運行一下腳本,就會在舞臺的隨機位置出現(xiàn)一朵花。那如果要連續(xù)不斷地出現(xiàn)在舞臺不同位置(也就是出現(xiàn)多個朵花),怎么辦呢?
學生嘗試操作,試著用重復控件完成位置不定和出現(xiàn)多個花朵的效果。
師:花朵開滿畫面后,可以使用特效類控件實現(xiàn)花朵的顏色特效和大小變化,這兩個特效類控件在哪里呢?
學生快速找到顏色特效和大小特效控件,嘗試搭建腳本并運行。
制作“雪花漫天飛”效果。
教師要求學生觀察圖4中的效果,思考以下問題:①一片雪花是由什么角色旋轉而成的?②需要利用循環(huán)控件重復旋轉復制幾次?③仔細觀察,雪花有哪些變化?④“雪花漫天飛”與“花朵繽紛”效果有什么聯(lián)系?

圖4
活動是學生認知的基礎,智慧從動作開始。學生通過看一看、動手操作、說一說、上機編程等豐富的實踐探索活動,經(jīng)歷了動手、動口、動腦的過程,充分調(diào)動了各種感官參與學習,對一片花瓣變成一朵花的過程由感性認識上升到了理性認識。學生能深刻地理解一片花瓣變成一朵花的算法過程,并用圖形化工具進行腳本編寫。
在上面的教學片段中,學生不是簡單的“操作工”,而是“研究者”,目標指引操作,問題驅動操作。因此,學生學習算法過程的熱情是高漲的。
《義務教育信息科技課程標準(2022年版)》指出,在進行編程學習時,需要將算法學習貫穿于問題求解的過程中,而問題可以分為簡單問題和復雜問題,簡單問題不需要分解,復雜問題可以分解為若干子問題,然后根據(jù)功能求解出解決子問題的具體操作步驟,形成求解方案。
在本節(jié)課中,學生首先要明確具體的任務,即如何在圖形化編程工具中實現(xiàn)花朵繽紛的效果。其次,抽象問題的關鍵特征,明確問題求解的輸入和輸出。再次,分解問題,將復雜的花朵繽紛問題分解為兩個簡單的問題,即一片花瓣變成一朵花和花朵的特效兩個子問題,再由子問題分析出具體操作步驟,形成科學的算法。這樣先整體后部分、先抽象后具體的方法,有利于培養(yǎng)學生解決復雜問題的能力。
分解問題的環(huán)節(jié),是學生自主探究的主要環(huán)節(jié),在片段一中,有學生的肯定,有學生的補充,也有學生的質疑。學生不但探索到一片花瓣變成一朵花的過程,同時也抽象出了其中的具體步驟。在片段二中,師生一問一答,教師的有效提問帶領全班學生經(jīng)歷了重難點的突破,使學生對花朵特效腳本的編寫從模糊到清晰,進一步地感悟了算法。從實踐效果來看,無論是片段一還是片段二,學生均能在教師的引導下抽象出問題的基本特征,并將問題分解為具體操作步驟,這一過程有效地激發(fā)了學生的探究欲望,發(fā)展了學生的計算思維。
學習遷移是指一種學習對另一種學習的影響,也是將學得的經(jīng)驗有變化地運用于另一情境的能力。在練習環(huán)節(jié),筆者設置了題目:如何在圖形化編程工具中實現(xiàn)“雪花漫天飛”的效果?在教學中,教師是引導者,通過三個問題引導學生明確“雪花漫天飛”的學習任務,并對“花朵繽紛”與“雪花漫天飛”進行對比、辨別與聯(lián)系,再主動地將解決“花朵繽紛”問題的學習經(jīng)驗遷移到“雪花漫天飛”的情境中去。這樣,學生能通過經(jīng)驗的遷移、重組,主動構建、完善新的知識,從而提升學習效率。
總之,學生親歷了分析問題、抽象特征、分解問題、設計算法、實踐操作等過程之后,能真正理解和掌握基本的知識與技能,更重要的是掌握了相應的解決復雜問題的算法,知道如何分析問題,如何找到解決復雜問題的路徑,進而了解解決復雜問題的基本范式。