伍曉珊
信息時代編程教育越來越受重視,人人會編程是時代的趨勢,通過編程教學進行計算思維能力的培養更是信息時代教育的重任之一。以初中諾寶機器人與VB編程教學為支撐,經過反復教學實踐,筆者總結出了編程教學課程時常出現的問題,并提出了五個解決問題的教學策略。
(一)計算思維的定義
周以真教授在2006年提出“計算思維是一種運用計算機科學基本概念求解問題,設計系統和理解人類行為的方式,涵蓋了計算機科學領域廣度的一系列思維工具”。計算思維是一種具體問題的解決過程,其核心概念包括了問題分析、抽象、算法與程序、概括與評估等。
(二)計算思維能力培養的重要性
信息科技課程目標要圍繞核心素養開展,計算思維作為其中之一,其重要性不言而喻。教師在培養學生計算思維能力時,存在未自覺性、小規模性和零散性的特點,甚至機械性地套上計算思維的外衣,不能達到預期效果。
通過文獻和問卷調查,發現當前初中編程課堂教學的計算思維培養存在一定的問題,主要表現為初中編程教材的局限性、學生與教師的認識不足和編程內容難度大,計算思維培養方式單一這三方面的問題。
(一)初中編程教材的局限性
初中的編程教學長期以Visual Basic上機實踐為主,Visual Basic是一種可視化的編程工具,主要以文本編輯的方式學習代碼,大部分學生覺得該編程工具較為枯燥,學習興趣不高。當前,圖形化編程軟件應運而生,初中的編程課堂除了傳統的VB編程外,引入圖形化編程軟件,但存在一定的地域差異。筆者所在的地區,諾寶機器人被引進了初中信息課堂。
諾寶機器人是一款圖形化和流程圖式的編程軟件,容易上手,完成流程圖編程后即可進入仿真界面運行腳本,查看效果。諾寶機器人課程相較于傳統的程序設計課堂更加有趣,是可視化編程與機器人教育的結合體,且課程具備較強的邏輯性和實踐性。
(二)學生與教師的認識不足
信息技術課程的課時較少,學生雖然喜歡“信息課”,但并不重視,舊知沒有鞏固,有銜接性的知識點無法及時消化,導致編程課堂的教學出現青黃不接的情況。初中生在中考的壓力下,主科的學習更受重視,甚至有孩子認為一周一次的信息課堂就是“一周一樂”。當然,教師自身不能“自暴自棄”,面對如此情況,更加要堅定信念,豐富自己的課堂,提高編程課堂的教學效果,讓學生發現知識的樂趣,才能眼里有程序,心中有光芒。
(三)編程內容難度大,計算思維培養方式單一
編程教學對于初中生而言存在一定的難度,計算思維作為信息技術四大核心素養之一,在初中的編程課堂本應備受重視,而培養的方式卻沒能很好地體現出來。計算思維能力就是培養學生問題解決能力,但很多初中編程教學更加重視知識本身的講解,不看重學生問題分析、梳理以及總結的過程,導致學生不愿意學,老師吃力,課堂效果不佳。
在編程課堂中培養初中生的計算思維能力,要引進貼合生活實際的問題情境,提高學生的學習興趣,置身于一定的問題情境中進行問題的分析、程序的設計、方法的評估,才能更好地讓學生在做中學,樂中學。
(一)問題情景化策略
好的開始是成功的一半,初中的編程教學有一定的難度,如果導入時能貼近學生的生活,以問題的形式導入,不僅可以培養學生的問題意識還能幫助學生厘清本課學習任務。
1.導入提問,引發思考
問題分析是計算思維能力培養中的首要環節,厘清學習任務,為解決問題奠定基礎。《制作聲控燈》一課,目標是用聲音來控制燈,具體如何用聲音來控制燈,需要我們創造情境,幫學生明確任務。教師可以進行實物展示,提問聲音是如何操控燈的,學生會發現,聲音可以讓燈實現一次開和一次關的效果。當然老師也可以采用小游戲的方式,直接利用教室里的燈,讓學生鼓掌來實現一次開和一次關,在游戲中學生也能明確任務。方式很多,但目的便是清晰明了地向學生展示任務,更有利于學生直接進入問題的分析。
2.情境創設,突破重難點
情境不僅適用于導入環節,在重點解析和難點突破環節也能起到事半功倍的效果。在VB的《電子相冊》一課,涉及到知識點loadpicture函數,采用ppt中插入圖片的形式引發學生思考,插入圖片時要注意圖片所在的目錄位置,這和loadpicture函數加載該圖片所在的目錄類似,情境化的教學才能讓學生舉一反三,有趣又富有啟發性的問題情境能更好地激發學生的學習熱情。
(二)構造認知沖突策略
每個人都有自身的知識體系,如何打破學生原有認知,形成一種對比沖突,幫助學生知識重構并塑造新知,正是我們教師應該做的。
1.計算思維的培養要重視概念的界定
程序設計中涉及到許多難以理解的概念,如變量。我們的生活中便有變量存在,例如我們每個人的身高體重都會發生變化,這就是變量,通過舉例子的方式讓學生明白一切會變化的量都可稱為變量。使用變量時,需要給變量起名字,賦初值,例如,我們給小紅和小黃兩位小朋友投票,這兩個孩子的票數需有名字,假如S1和S2,沒投票前S1=0,S2=0。
2.通過規律認知沖突鍛煉思維
在《設計走迷宮機器人》中,同學發現機器人走迷宮需要靠墻順著一個方向走才能走出迷宮,總結出了左手定則或右手定則。但是在具體分析機器人的轉向和直行時,學生習慣性地認為只要設置了左轉右轉,機器人就可實現轉彎,但實際上機器人要轉彎的時候,還要考慮其自身的機器人長度問題,要確保機器人的整個身體都已經越過了障礙物,才能進行轉彎,否則機器人將被卡在這個角落動彈不得。因此類似規律性的分析,我們可以讓學生不斷試錯,在錯誤和沖突中不斷調整自己的方法。
(三)畫流程圖策略
畫流程圖其實就是一種流程的建設,在我們的生活中,流程的建設是無處不在的,把這樣的思想應用到我們的編程課堂教學中,更有利于學生算法思維的訓練。
畫流程的過程就是把解決問題的方法流程化。在《制作聲控燈》一課中,要實現一次聲音開燈,一次聲音關燈,學生分析后確定選用分支結構設計程序。不僅要判斷是否有聲音還要判斷燈的狀態,才能進行開燈與關燈。通過畫流程的方式幫助學生把解決問題的思路更加系統和有邏輯性地呈現出來。
(四)搭建腳手架策略
初中生已具備一定的邏輯思維能力,但對編程的學習依然有難度,學習情況參差不齊,適當的腳手架可以幫助學生更好地完成課堂任務。在代碼學校過程中,學生已經分析出了思路,但在實踐的過程中仍然遇到困難,可以給這部分學生提供程序半成品,一定程度上輔助學生進行學習,甚至針對學習能力較差的學生,僅需他們能讀懂程序和程序修改,這也是分層教學的一種方式。因此,搭建腳手架就是提供幫助,提高課堂效率,增強學生信心,實現人人有事做,人人能做事的目的。
(五)拓展延伸策略
拓展延伸環節是非常有必要的,它不僅可以起到畫龍點睛之筆,也可以延伸學生的思維,當然拓展延伸要符合學生的“最近發展區”,不是一味地為難學生,目的是讓有能力的孩子可以跳一跳摘到桃子。
1.注重開放性練習
編程教學注重學生思維的訓練,那么拓展延伸環節應當有相關的開放性練習。如《制作聲控燈》一課,學生已經實現了聲音控制燈的開和關,把問題難度提高一點:如何實現在一次掌聲中開燈,在兩次掌聲中(間隔小于0.5秒)的情況下關燈。思維能力較好的學生馬上就能想到燈的狀態(假設為a)a=a+1的情況來進行次數的累加,通過a=2來改變關燈的條件,難題便迎刃而解。
2.“一題多解”與“一題多變”
“一題多解”是為了發散思維,有更多的創新,“一題多變”則是想要學生在原有基礎上進行拓展延伸,創造更加多樣化和個性化的教學活動。程序中的分支結構,改變條件會導致結果也發生變化,類似的練習可以訓練學生思維?!吨谱鳒缁饳C器人》一課中,學生首先分類機器人要能實現搜尋火焰的效果,在此基礎上增加火焰傳感器識別火焰滅火,這樣的設計思路便是“自上而下,逐層細化”的方式,把搜尋火焰和滅火分開為兩段程序,但這樣的程序設計結構只能讓機器滅一次火焰,教師乘勝追擊提出新問題“如何讓機器人滅多次火焰”呢?分支結構和break循環便派上用場。這培養了學生的創造力,也體現了任務分層的思想,學生可以根據自身的能力,選擇性地完成筆者所布置的任務,從而實現人人有所得的目標。
當下,在中小學進行編程教學已是時代所趨。我們并非要把每一個學生培養成程序員,而是通過編程教學培養學生發現問題,分析問題,解決問題的能力,這也是計算思維能力培養的核心。本研究不會止步于此,還會繼續在初中階段開展更多的計算思維能力培養課程,希望更多的人參與到編程教學的研究中來,讓學生對編程不再望而卻步。
作者單位:深圳市龍崗區坪地蘭陵學校