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