朱彩蘭
《自相矛盾(二)》《高塔比一比》兩個案例都與程序設計有關,雖然具體內容不同(分別為廣播、比較數的大小),軟件也不同(分別為編程貓、Scratch),但卻體現出一些共性,這些共性是根據兒童的認知特征來進行設計的,后文逐一分析。
案例分析
1.《自相矛盾(二)》案例分析
該案例的幾個關鍵點提煉如下。
第一,互動游戲設計。在熱身學習環節,先讓學生觀看微視頻了解廣播的具體內涵以及使用方法。學生看過廣播的功能介紹之后,只是有了初步的認知,未必能真正理解。教師精心設計了小游戲,引導學生在游戲的過程中掌握規則,從而理解廣播的功能。游戲中借助不同的暗號設計幫助學生體會或認識:一個角色可以給多個角色發送不同的廣播,一個角色可以給不同的角色發送相同的廣播,可以給同一個角色發送不同的廣播,促進學生更為全面、深入地認識廣播。在游戲活動中,參與游戲的學生在接受廣播并做出相應的反饋中,獲得了直接的經驗,根據戴爾的經驗之塔,這屬于“做的經驗”。未參與游戲的學生通過觀察游戲活動理解廣播,獲得的是“觀察的經驗”。在這些經驗基礎上,后續環節借助自己編寫程序完成廣播功能,促進“做的經驗”或“觀察的經驗”向“抽象的經驗”轉化,實現對廣播的真正理解、內化認識。
第二,任務漸進性安排。三個任務逐步放手,學生的探索空間逐漸增多,體現“由扶到放”的過程。在任務一中,教師帶領學生完成思路梳理后,讓學生在上節課程序的基礎上添加“廣播”和“圍觀”的功能,而且指令積木直接提供給學生,學生只需要將指令積木放到合適的位置就行。這種方式,一方面避免了學生尋找積木浪費時間,降低了任務的難度;另一方面,利用半成品,促進學生將精力集中于對發送廣播、接受廣播模塊的理解與相應的操作,突出重點。任務一的操作要求是“先在組長電腦完成書生圍觀的積木搭建,再回各自電腦完成書生和小女孩圍觀”,操作安排上先集體完成,再分頭獨立完成。集體完成時,學生可以互相討論形成正確的認識,從而降低了難度。有了任務一的鋪墊與基礎,任務二改變要求,“先在各自電腦完成,組長完成后檢查小組完成情況”,即放手讓學生獨立完成,且是指定的任務。通過組長的檢查可以及時發現問題,確保學生真正理解并能在計算機上獨立實現。任務三的要求是先在各自電腦完成再進行組內展示,同樣是學生獨立完成,但任務性質發生了變化,具有一定的開放性,且組內展示時可以相互借鑒。從任務一到任務三,盡管探索程度不同,但整個過程都是學生探索,沒有教師的直接告知,借助半成品、小組合作等多種方式促進學生探索的成功。
第三,尊重成語寓意。任務三“天馬行空”要求在不改變成語寓意的基礎上,“充實故事情節,添加創意”。這一要求與知識與技能無關,更多的是涉及情感態度與價值觀。因為創意環節如果只關注好笑、好玩,甚至惡搞,便失去了教育本來的意義。實際上,“課程思政”大環境下,類似素材教學都需要關注此類問題。增加這樣有意識的提醒,學生在作品設計中便能加入自己的貼近現實的思考。聽課中發現,有一位學生的作品是,書生質疑之后,便與女孩揚長而去,不等待賣家回答,說明根本不相信。也有作品增加了書生的表達,“呵呵”一聲,用以表示對賣家的嘲笑。還有的作品最后增加了成語的寓意,并且借助隱藏功能實現了場景的變換。可見,這樣有一定限制性的作品,可以引導學生對成語的理解,并利用技術來表達自己的理解,實現技術學習與成語教育的雙重目標。
第四,評價多元。評價環節雖然僅有四個問題,但分別涉及編程技能、動畫設計、成語故事寓意、小組合作,學生可以選擇其中之一來談本節課的收獲,四個維度的提供潛移默化地對學生形成了影響,發揮了評價的引導作用。
2.《高塔比一比》案例分析
該案例的特點主要體現在以下兩個方面。
第一,借助動畫完成流程圖。這一點體現在任務二中,學生不知道如何比較兩組數據的大小,教師引導學生借助流程圖來梳理編程思路。但學生畫流程圖顯然難度較大,因此教師提供了半成品流程圖框架,學生只需補充剩下的三個部分即可。只有三部分空白看似簡單,但實際上隱含著對比較結果的處理。如果學生能夠根據兩座高塔比較的結果準確設定最高塔,說明學生真正理解了思路。因此,此處半成品策略幫助學生將精力集中在理解上,為后續程序實現奠定認識基礎。
第二,借助對比促進學生探究。這一點體現在任務三即“師生交流梳理編程思路,明確需要經過兩次數據的大小比較,方能得出結果”中。案例中只給出了簡單的描述及靜態的圖示,在實際教學中,這里是借助自定義動畫逐步呈現內容,從而循序漸進地引導學生形成認識,這也是本課難點突破的重要環節。第一步,第一、第二座塔比較得到最高塔之后,呈現最高塔與第三座塔的比較再次得到最高塔。這樣,通過兩個數大小比較與三個數大小比較的對比,幫助學生理解基本思路,明確思路的相似性,促進思路遷移。第二步,呈現第一、第二座塔比較的具體指令模塊,幫助學生在思路與實現指令之間建立直觀的聯系。這里也可以看作是對比,即思路與指令的對比,其目的是建立聯系并為第三座塔加入比較奠定指令應用的基礎。第三步,呈現第三座塔與已有最高塔比較的指令。這里再次采用了半成品策略,提供了結構框架及部分指令,學生只需要完成一條指令即可。要完成這一步,學生可以根據思路,同時參照第一、第二座塔比較的具體指令模塊,因此難度被有效降低。這一步實際上也利用了對比,即第三座塔與已有最高塔比較的思路與具體指令的對比,考查學生將思路轉化為程序的能力。此外,還有第一、第二座塔比較的程序與第三座塔與最高塔比較的程序的對比,考查學生的遷移能力。在這兩種對比的雙重加持之下,難點得以有效突破。整體來看,任務三通過思路對比、思路與程序對比、程序與程序對比有效實現了教學目標。
案例共性解讀
盡管兩個案例在教學內容上有差異,但兩者在許多方面都有共性,例如,教師定位于指導者與引導者充分發揮學生的主體地位,又如,通過拓展促進學生認識加深。此處想要探討的是,兩個案例在編程思路的引導上具有共性。一般來說,編程的基本步驟為分析問題、設計算法、編寫程序、運行調試,而設計算法環節往往又會借助流程圖來實現。但對于小學生來說,嚴格按照這種標準流程,多數情況下學生難以理解。因此,兩個案例不約而同地采用了一些輔助的方式促進學生對思路的理解。《自相矛盾(二)》是通過梳理成語故事的過程幫助學生了解思路,即用成語故事流程代替程序流程圖。在編寫程序環節,則是通過給定指令積木的方式凸顯重點。《高塔比一比》則是讓學生在動畫中拖動完成半成品的流程圖,雖然使用了流程圖,但由于只是補充,所以難度降低。在編寫程序環節,則是通過多種方式的對比,促進學生理解并將所學遷移,從而突破難點。兩個案例采取策略的選擇是尊重小學生認知結構的結果,值得借鑒。
還有更多的小學程序設計案例圍繞流程圖做了某些變換,以促進學生理解。例如,《足智多謀的小海龜》案例中也采用了流程圖,且是學生完成。但教師事先將流程圖打印出來并打散成卡片,讓學生分組來給卡片排隊組成完整的流程圖,在此過程中了解算法。顯然,學生重新組合流程圖比自己來畫難度要低許多,也有利于將精力集中在對思路的理解上。
還有些案例是通過其他方式促進學生對編程思路的理解。例如,《機器人方陣——聲控機器人》案例中,教師先引導學生了解實現機器人方陣需要經歷的環節,即設計意圖—流程圖—程序編寫—演示,然后通過分析聲控的工作原理引出流程圖,這里的流程圖是教師提供的,繼而通過流程圖與程序的對比,促進學生對思路的把握。值得一提的是,在這個案例中,多次運用到對比,包括流程圖與聲控燈程序對比、聲控燈程序與聲控機器人行走程序對比、聲控機器人唱歌程序塊位置的對比,在對比中促進學生理解、遷移所學。又如,《聞雞起舞》(青島富源路小學趙虹)案例中,教學根據分析問題、設計算法、編寫程序、運行調試的步驟展開,但在設計算法部分,將任務做了分解,分解到角色、背景等的相關變化,再引導學生逐步完成。采取任務分解的方式也是為了降低難度。
高中的編程教學中有時候也會做些變換,例如,《算法的表達——畫程》(南京一中張鈺)案例中是借助畫程軟件實現算法的表達,要求學生在畫程中畫出流程圖。與在紙上畫出流程圖不同,畫程中有相應的要求,需要符合軟件及編程規則。符合規則的流程圖,可以直接編譯,即畫程中的流程圖,實際上介于我們慣常認識的流程圖與程序之間。這樣,學生畫流程圖的過程,既是梳理思路,同時還是完成部分程序的過程。