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