王超園
隨著信息化的發(fā)展,運用計算機(jī)解決問題的能力成了越來越重要的信息素養(yǎng)。而計算機(jī)程序設(shè)計就是很好的載體。在《中小學(xué)信息技術(shù)課程指導(dǎo)綱要》指出,中小學(xué)生要“了解程序設(shè)計的基本思想,培養(yǎng)邏輯思維能力”。在浙江省小學(xué)信息技術(shù)教材中對于計算機(jī)程序教學(xué)的內(nèi)容主要分為“scratch趣味編程”和“與機(jī)器人零距離”兩個單元進(jìn)行學(xué)習(xí)。另一方面,以計算機(jī)程序設(shè)計為主的信息學(xué)奧林匹克競賽的影響越來越大,其中以Pascal 語言為主信息學(xué)奧賽已深入小學(xué)各階段。計算機(jī)程序教學(xué)在小學(xué)階段發(fā)揮了舉足輕重的作用。
筆者結(jié)合自身信息技術(shù)教學(xué)以及輔導(dǎo)信息學(xué)奧賽的經(jīng)歷,并根據(jù)兩種語言的特點和學(xué)生的認(rèn)知發(fā)展水平,談?wù)勑W(xué)階段計算機(jī)程序教學(xué)的一點感受。
一、Scratch和Pascal語言的教學(xué)及特點
Scratch是由麻省理工學(xué)院針對8歲以上兒童開發(fā)的一款積木式程序設(shè)計軟件。Scratch軟件最大的特點就是簡單易用,共享與支持,可視化編程。通過點擊并拖拽的方式,完成可視化編程,并賦予角色簡單的動畫,簡單易學(xué)。在作品完成之后還能將其上傳至scratch官方網(wǎng)站,與他人共享,相互學(xué)習(xí)。
信息學(xué)奧賽是青少年信息學(xué)(計算機(jī))奧林匹克競賽的簡稱,是一項益智性的競賽活動。程序設(shè)計是信息學(xué)奧賽的基本功,而Pascal程序設(shè)計語言則是小學(xué)階段的信息學(xué)奧賽的主流語言。它的功能強(qiáng)、編譯程序簡單,是影響比較大一種算法語言。
二、Scratch與pascal語言的異同點
從scratch與pascal語言的特點出發(fā),結(jié)合教學(xué)中的實踐經(jīng)驗,這兩者存在以下異同點:
(一)Scratch與pascal語言的相同點
1.重視分析問題,解決問題的能力
Scratch與pascal語言都屬于計算機(jī)程序設(shè)計語言,兩者的學(xué)習(xí)目標(biāo)是一致的。十分重視學(xué)生親身經(jīng)歷“提出問題—分析問題—解決問題”這一學(xué)習(xí)過程,同時讓學(xué)生掌握解決實際問題的方法與策略。例如scratch教學(xué)“小貓走迷宮”這一課中,學(xué)生首先要分析這一程序所需要的舞臺和角色,同時分析給角色設(shè)定什么樣的動作。如“通過上下左右鍵控制小貓運動”“如果碰到邊緣就要返回起點”“碰到紅色的終點,要說‘我成功了”。通過分析,再去選擇動作指令搭建相應(yīng)的腳本,通過不斷的測試調(diào)整,完善整個程序的設(shè)計。而在pascal教學(xué)中也有異曲同工之處。例如要教學(xué)“輸入a、b兩個數(shù)字,交換之后輸出”。學(xué)生首先要思考,如何將兩個數(shù)交換位置呢?結(jié)合生活經(jīng)驗,有兩個瓶子,一個瓶子裝了可樂,一個瓶子裝了水,如何實現(xiàn)這兩瓶里的液體互換呢?這時,學(xué)生可能會想到,借助第三個瓶子。那么在編寫程序時就需要引出第三個變量了。在分析問題之后,再著手去解決就會事半功倍了。
2.代碼的邏輯思路相同
Scratch與pascal語言都屬于程序設(shè)計語言,其語言的本質(zhì)是一致的,都擁有嚴(yán)謹(jǐn)?shù)倪壿嬎悸?。例如循環(huán)結(jié)構(gòu)的學(xué)習(xí),在scratch里有“重復(fù)執(zhí)行”和“重復(fù)執(zhí)行……直到……”這兩個指令,這與pascal語言里的for循環(huán)和while循環(huán)語句是實際作用也是一致的。
(二)Scratch與pascal語言的不同點
1.面向?qū)ο蟛煌y易程度不同
Scratch面向的是8-16歲的學(xué)生,是課堂內(nèi)的所有學(xué)生。而pascal語言則主要面向于需要參加信息學(xué)奧賽的小學(xué)生。同時小學(xué)生思維主要特點是以具體形象思維為主要形式,逐步向抽象邏輯思維過渡。因此對于scratch可視化、積木式的操作界面更易接受。而在學(xué)習(xí)pascal時,需要學(xué)生有一定的英語學(xué)習(xí)基礎(chǔ),一條一條的語句也沒有scratch中的積木塊來的直觀明了。相比較而言,pascal語言在學(xué)習(xí)上要比scratch語言難一些。
2.操作界面不同,實現(xiàn)的功能不同
Scratch與pascal兩者的操作界面比較而言,scratch的操作界面更加生動有趣,適合年齡較低的小學(xué)生。而pascal的操作界面則顯得更加簡潔單調(diào),適合更專業(yè)的編程人員。但pascal更注重程序的整體性,每一個程序都要有首部和說明部分,對程序中用到的常量和變量都需要進(jìn)行說明。而scratch中則沒有明確的要求。
從實現(xiàn)的功能來看,scratch語言更多的是用來編寫故事性、動畫性和游戲性的程序。例如“人物對話”,“太空大戰(zhàn)”等程序。而pascal語言則更多的是用來解決數(shù)值問題。比如“判斷平年閏年”,“找出1-100內(nèi)的所有質(zhì)數(shù)”等等。
3.交互性不同
在scratch編程中,可以導(dǎo)入外部的圖片、音樂甚至flash動畫,多種多媒體的相互組合,從而產(chǎn)生出更多更豐富的作品。在完成之后,可以分享到scratch官網(wǎng)上,與世界各地的scratch愛好者交流分享。同時可以下載他人優(yōu)秀的源程序,自己進(jìn)行修改與調(diào)整。這一點,是pascal語言無法做到的。
三、Scratch與Pascal在小學(xué)計算機(jī)程序教學(xué)的實施與應(yīng)用
通過分析Scratch與pascal語言的特點和異同點,筆者認(rèn)為在小學(xué)階段,計算機(jī)程序教學(xué)可以從以下幾方面進(jìn)行開展。
(一)面向全體學(xué)生,激發(fā)學(xué)習(xí)計算機(jī)程序語言的興趣
面向全體學(xué)生,在小學(xué)五、六年級的信息課中,進(jìn)行scratch教學(xué)。使大部分學(xué)生通過學(xué)習(xí)與使用 Scratch,能夠創(chuàng)作出精彩的富有個性的動畫和游戲,激發(fā)學(xué)生的學(xué)習(xí)程序語言的興趣。借助Scratch 理解編程概念,讓學(xué)生在玩中學(xué)、在做中學(xué),為以后學(xué)習(xí)其他編程語言做好鋪墊。
(二)面向部分學(xué)生,挖掘人才,培養(yǎng)競賽人選
一門程序語言的學(xué)習(xí),光靠每周一節(jié)的信息課是完全不夠的,要想完成更優(yōu)秀的作品,獲得更大的提高,必然得花時間去思考,去鉆研。因此,可以面向部分學(xué)生,組建Scratch社團(tuán),在社團(tuán)里以活動項目的形式,利用2-4個星期的時間,完成一個大作品的制作。同時在社團(tuán)中挖掘編程人才,培養(yǎng)其學(xué)習(xí)pascal語言,為參加信息學(xué)奧賽做準(zhǔn)備。
(三)理論與操作相結(jié)合,提高解決問題的能力
學(xué)生通過上機(jī)操作所得到的提高只是自己在操作的經(jīng)驗而已,這樣所獲得的知識既不系統(tǒng)也不全面,因此需要補(bǔ)充一定的理論知識。例如:各模塊的作用、語句的功能、數(shù)據(jù)的類型、函數(shù)的基本功能等等。還需要有一定的數(shù)學(xué)知識,例如:圓面積的求法,絕對值的理解等。只有各方面的知識更加全面了,才能將一門語言學(xué)得更透徹。因此在教學(xué)中要融入解題策略教學(xué),讓學(xué)生熟悉解題歷程,提升問題解決能力;并在不斷思考如何撰寫程序的過程中,提升邏輯思考能力。