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