唐瑞 樊星群
《2017版江蘇省義務教育信息技術課程綱要》指出:信息技術的學習可以采取項目引導、任務驅動、主題活動等形式,選取體驗學習、模仿學習、游戲學習、探究學習、實驗學習、設計學習、問題解決學習等方式,進行個人的、小組的以及多種形式相互融合的學習活動。小學五年級可視化編程模塊主要針對算法與程序設計的應用,筆者在教學過程中,堅持以生為本的理念,關注學習興趣的激發,圍繞學生的體驗來開展教學,讓學生在建構核心知識的同時促進核心素養的養成。
● 體驗游戲闖關,提升學習動力
要想提高學生的學習動力,就不能將學生視為“知識的容器”強行灌輸,而應讓學生對所學內容感興趣。因此,在《小貓出題》這節課的起始環節,筆者設計了抽簽活動及闖關游戲。
筆者利用可視化編程制作了一個隨機抽簽的程序,抽到學號的學生,仿照教師進行自我介紹,以此打破隔閡,緩解課前的緊張情緒。在闖關游戲中,“最快心算師”一關模擬小貓出題的程序,邀請兩位學生擔任出題官,一位學生擔任裁判員,體驗出題、答題的過程并繪制出流程圖。“最強答題王”一關是針對出題來設置變量,包括新建變量、命名變量、設置變量的值等,把枯燥的數學問題和學生的認知活動結合起來。“最佳程序員”一關是讓學生根據流程圖一步一步轉化為相應的控件來編寫程序。“最牛出題官”一關是在編寫完整的程序基礎上進行改變,使程序更優化。每一關結束都有相應的頒獎,儀式感讓課堂高潮迭起,也激發了學生的闖關信心。
闖關游戲激發了學生的學習興趣,讓學生在游戲中體驗提煉流程、分析環境、編寫程序、完善程序,在游戲的逐步深入中完成了本課的學習。
● 體驗程序設計,培養編程思維
結構化程序設計方法即面向過程的程序設計方法,并使用結構化的編程語句來編寫程序,它是按照一定的原則與原理,組織和編寫正確的程序的軟件技術。結構化程序設計采用“自頂向下,逐步求精”的程序設計方法。“自頂向下”就是將大的復雜的問題先劃分為易于解決的小問題,找出問題的重點和關鍵所在,然后用精確的思維定性、定量地來描述問題。“逐步求精”即將現實世界的問題經抽象轉化為邏輯空間或求解空間的問題。這是編程設計的一個技巧,兒童學習可視化編程也同樣遵循這樣的原則。
小學生正處于學習編程的起步階段,可視化編程降低了編程的難度,學生可以通過拖拽已經定義好的程序模塊,像搭積木一樣迅速實現程序的編寫。利用可視化編程對學生理解程序結構和程序設計的思想非常有幫助,結構化程序設計的方法易于理解,便于操作,因此結構化程序設計方法是適合兒童階段探索和培養編程思維的啟蒙方法。例如,在《小貓出題》這節課中筆者設計了闖關游戲,游戲的第一關是“最快心算師”,全體學生一起完成一位數乘以兩位數的乘法題,誰做得又快又對,誰就是最快心算師,其規則為:①教師說“開始”,出題官抽取數字卡片,說出算式。②教師問“答案”,請你把兩個數相乘并站起來搶答。③判斷對錯。④共做3道題。體驗游戲后,教師組織以下交流,引導學生進行歸納和總結:
(1)兩個盒子里的數是固定的嗎?所以盒子里的數字也是變量。
(2)你能說說剛才的游戲過程是怎樣的嗎?學生歸納游戲過程,教師同時呈現板書。
(3)從開始到出題、答題,像這樣自上而下,沒有分支的結構在程序設計中稱為順序結構。像這樣遇到判斷,需要選擇的結構稱為選擇結構。選擇后有一部分內容需要重復執行的結構稱為循環結構。
(4)畫流程圖是程序設計的基本依據,流程圖里的每一個環節,都可以用相應的控件來表示。
學生通過參與游戲,體驗了出題、答題的整個過程,通過交流,把“最快心算師”的內容梳理并模塊化,形成“開始、出題、答題、判斷”等模塊,再“自頂而下”繪制出箭頭走向形成流程圖。自然語言通俗易懂,學生可以自然地通過語言來分析出答題的過程,一定程度上降低了繪制流程圖的難度,流程圖作為一個思維工具,為學生逐步從自然語言向抽象的程序設計語言過渡提供了幫助,并逐步形成整體的圖示概念,將自然語言轉化為相應的積木進行搭建即是“逐步求精”的過程。學生在這個過程中體驗了結構化程序設計中“自頂而下、逐步求精”的基本原則,同時也初步認識和理解了程序設計的三種基本結構——順序結構、選擇結構、分支結構。
● 體驗抽象概念,建構核心知識
對小學生來說,抽象的概念脫離生活實際,難以理解,更難以在新的環境中運用,在編程的過程中,亦是如此。例如,在《小貓出題》這節課中,“變量”是一個新的抽象概念,同時也是重點、難點,是本課的核心知識,筆者在教學過程中嘗試將其轉化為直觀的、具體的內容和形式,讓學生在體驗中不斷感知和理解。在課前活動中,筆者設計了“根據屏幕顯示的學號自我介紹”這一環節,讓學生初步感知屏幕上不停跳動后停止的數字即變量。有了初步感知,再揭示變量的概念,學生很容易就能理解,此時再舉生活中的變量實例來加深學生對“變量”這一抽象知識的印象,讓學生感受到在生活中變量無處不在。在學生已有初步感知的基礎上,筆者又設計了“最強答題王”這一關,繼續引導學生通過反向求證、嘗試探究等方法,來體驗“變量”的不同表現形式。
第二關:最強答題王。
第1題(一星題):“開始”可以用什么控件來表示?
第2題(兩星題):“變量”在哪一個環節使用?——出題。(追問:出題環節用了哪兩個變量?)
第3題(三星題):新建變量,為變量命名。
①新建變量的控件在哪里?誰想上來試一試?②你想給變量取什么名字呢?為什么呀?③選擇適用于所有角色。④新建變量乘數2并觀察舞臺上的變化,調整變量位置。⑤新建變量后還有哪里變了——控件區,這些控件有什么作用呢?⑥生完成第3題:新建并命名變量“乘數1”“乘數2”。
第4題(四星題):給“乘數1”“乘數2”設定范圍。
①“乘數1”“乘數2”分別是多少?②隨機數用哪個控件來表示?③生完成第4題:給“乘數1”“乘數2”設定范圍。④展示學生作品。
第5題(五星題):新建變量“積”,給“積”設定值(“乘數1”*“乘數2”)
①這個算式中還有什么是變量?②變量“積”和前面兩個變量有什么關系?③如何表示積?可以用算式表示積。變量既可以設定為一個數值,也可以設定為一個算式。乘法算式去哪里找?(學生演示)④完成第5題:新建變量“積”,給“積”設定值(“乘數1”*“乘數2”)。⑤展示學生作品。
概念的習得也是學生認知發展的過程,通常具體事物的概念可由生活經驗直接獲得。但大多數抽象概念的獲得是學習和教育的結果,需要教師從生活經驗出發,加強與已知經驗之間的聯系,并從多角度加強對抽象的概念的不同方面的體驗,幫助學生建構抽象的核心知識,發展學生對不同事物進行歸納的思維能力。
在第二關中,變量的表現方式為隨機數、算式、“答題”環節用戶輸入的內容,除此以外學生還能通過邏輯運算方式比較變量的大小,通過修改變量的范圍或者新增變量等方式完善程序。整節課的環節設計其實也是對“變量”這一概念的層層推進,在逐步體驗的過程中加深學生對“變量”這一概念的理解和認知。學生通過這種多角度、多方位的體驗,在初步認識“變量”的基礎上,真正理解并掌握了“變量”這一抽象概念。
● 體驗知識遷移,激發程序創新
知識遷移能力是指學生把以前在課堂中學到的知識與邏輯思維等轉移到新知識的學習中的能力。知識遷移是對知識的復習、回憶和鞏固,同時學習和研究新知識。在知識遷移的過程中,學生不僅掌握了舉一反三的能力,開拓了思維,而且收獲了學習的成就感和滿足感。
在《小貓出題》這節課中,筆者設計了兩個層次的知識遷移。第一,在“最牛出題官”一關中,引導學生討論優化程序的方法,如可以通過修改變量的范圍和答題的次數來增加難度,也可以利用變量這個新知來完善程序的功能等。第二,在總結環節,引導學生思考在以往學習過的程序中,有哪些可以使用變量讓程序更加完善并現場進行修改,讓學生充分且多角度地體驗變量。通過前面的學習,學生體會到了變量的優勢,再通過兩次改編和拓展,真正實現對變量的靈活運用,掌握使用變量的方法,同時也體會到程序永遠沒有最好,只有更好。
對學生知識遷移能力的培養要注意結合學生的思維能力展開訓練,發展學生思維的靈活性和多角度思考問題的能力。在全方位培養學生知識遷移能力的同時促使其充分展開想象,深入挖掘學生的學習潛能,培養學生不斷進取的創新意識與信息意識,使其養成良好的思維習慣。
信息技術課堂應是讓學生深度參與、自主建構的一種有意義的以學生為本的課堂。因此,信息技術學習應定位于信息素養的提升,讓學生的學習成為一種自覺,成為學生生命生長的一種方式。“體驗”不僅是為了獲取知識、習得技能,更重要的是讓學生能夠加強信息素養,提升思維水平,利用信息技術解決生活中的實際問題。讓學生在體驗中學習,在體驗中提升,在體驗中感受信息技術的意義和價值,這樣的信息技術課才是精彩和圓滿的。