鄭贛輝
高中數學人教版教材必修3第一章為算法基礎,主要介紹一些簡單的算法案例,以及用自然語言、程序框圖和程序語句來描述算法。高考對這一章內容的考察要求比較低,只要求學生能夠分析題目中給出的算法程序框圖的執行過程,得出算法運行結果。從備考的角度備課,我們把教學重點放在程序框圖,要求學生能夠讀懂程序框圖所描述的算法,列出算法的具體執行步驟,根據步驟計算算法運行結果。在教學實踐中,學生碰到的主要問題是:不會分析循環結構的執行過程,不能清楚判斷在算法執行的每個步驟中變量的值是何時被修改的以及怎樣被修改的。為了加深學生對算法的理解,我將類似程序框的積木式的程序語言Scratch引入算法課堂中,效果良好。
一、Scratch簡介
1. 概述
Scratch是美國麻省理工大學媒體實驗室專門為八歲以上兒童設計的編程環境。它不需要你寫任何編碼,只要使用鼠標拖拽事先為你準備好的部件就可以組成游戲,卡通和動畫,就像小孩玩積木一樣簡單而有趣。
兒童的最愛的就是玩,如玩游戲、卡通、動畫等。而Scratch緊緊圍繞這個中心,讓孩子設計自己的游戲、卡通、動畫。孩子在設計作品的過程中,會運用到數學及算法的概念,對孩子邏輯分析、創意思考、流程控制、問題解決都有幫助。
Scratch把程序命令歸為動作、控制、外觀、偵測、聲音、數值與邏輯運算、畫筆、變量8大部件,并用顏色來區分。設計作品時,學生只需要按照自己的想法選擇合適的部件拖曳到腳本窗口,并堆積在一起即可。學生不需要記憶任何腳本部件,因為每個腳本部件的功能都一目了然,單擊任意一個腳本部件,系統會執行一次該腳本命令,可以在舞臺窗口預覽命令執行效果。
2. Scratch國內外研究現狀
美國目前有數以百萬的學生在學習Scratch課程,連哈佛、加州大學伯克利分校這樣的世界名校也都開設了Scratch課程。英國也開始在中小學信息技術課上開展Scratch教學。
我國臺灣的中小學廣泛地以Scratch為主展開信息技術教學,并定期開展相關的競賽。
我國大陸的發達城市(例如北京、上海、常州、廣州等)的中小學信息技術課上也正在掀起一股Scratch教學熱潮,吳向東、毛愛萍、凌秋虹等老師已經在該領域走在了前列。
目前,國內外主要是針對中小學生開展Scratch教學研究,而且主要是在信息技術課堂上開展程序設計教學,很少有針對高中生的研究,特別是對高中數學課堂上利用Scratch作為輔助教學的研究。
二、利用Scratch輔助算法基礎課教學的優勢
在教學實踐中,我發現Scratch有幾個明顯的優點可以幫助學生理解算法和程序設計。
1. Scatch使用外形類似程序框的圖形化編程語言,學生只要會畫程序框圖,就會設計程序;反之,學生通過調試理解了程序,可以加深對算法和程序框圖的理解。
2. Scratch變量名字可以含有中文字符,如 ,方便學生理解和記憶程序框圖。學生剛接觸程序框圖,若程序框圖出現多個名字為無意義英文字符的變量,會對學生理解和記憶程序框圖造成困難。
3. Scratch特有的變量讀出器功能,可以將變量輸出到舞臺上,如 ,可以幫助學生理解變量的概念,以及程序執行過程中變量值的變化。對于剛接觸程序設計的學生來說,學習的第一個障礙就是變量,很多學生不能理解變量的概念和作用。通過變量讀出器,學生可以將變量想象成一個容器,可以存放數據,這個容器有自己的名字,就是變量名。再者,Scratch還提供了程序延時功能,配合變量讀出器,學生在調試程序的過程中,可以方便地查看程序執行過程中變量存儲的數值,幫助理解算法和程序框圖。
4. Scratch提供的鏈表讀出器功能可以方便學生調試程序。對于剛接觸程序設計的學生來說,調試程序是一大難題。使用其他的程序設計軟件,雖然可以通過設置斷點逐行調試程序,通過監視點查看變量的值,但不能記錄變量的值,只能手工記錄,非常麻煩。而在Scratch中,可以在修改變量值的地方,將變量的值插入鏈表,再配合鏈表讀出器,就可以了解變量在程序執行的過程中數值的變化,有助于初學者理解變量的作用和算法。
責任編輯 羅峰