劉芳芳
摘要 隨著技術(shù)的進(jìn)步,思維可視化成為教學(xué)關(guān)注的一個(gè)焦點(diǎn)?;谥行W(xué)程序設(shè)計(jì)難教難學(xué)的問題,介紹分析圖形化程序設(shè)計(jì)的幾種軟件,探索中小學(xué)程序設(shè)計(jì)的教學(xué)模式。
關(guān)鍵詞 Scratch;圖形化程序設(shè)計(jì);創(chuàng)新
中圖分類號:G434 文獻(xiàn)標(biāo)識碼:B 文章編號:1671-489X(2009)30-0126-03
Learning Program Design Based On Way of Graphical Programming//Liu Fangfang
Abstract With the advances in technology, visual thinking gets more and more attention. Because of the difficulties in teaching and learning for Primary and secondary schools. The thesis tries to introduce some softwares of Graphical programming and explores teaching structure in program design.
Key words Scratch; visual programming design; innovation
Authors address Shanghai Normal University Educational Technology College, Shanghai, 200234, China
1 研究概述
我國自1982年開始中小學(xué)計(jì)算機(jī)普及教育,以學(xué)習(xí)計(jì)算機(jī)原理和程序設(shè)計(jì)為主,當(dāng)時(shí)受到硬件設(shè)備的限制,開設(shè)的主要是Basic和logo的程序設(shè)計(jì)。考慮到中小學(xué)生的心理與學(xué)習(xí)特點(diǎn),1985年受在美國召開的“第四屆世界計(jì)算機(jī)教育會(huì)議”影響,我國計(jì)算機(jī)教育開始重新審視教學(xué)內(nèi)容,將單一的Basic語言教學(xué)逐步轉(zhuǎn)向計(jì)算機(jī)應(yīng)用的教學(xué)上來,于是程序教學(xué)開始遭到摒棄,教學(xué)內(nèi)容和模式開始轉(zhuǎn)向應(yīng)用軟件的使用操作。
1994年,聯(lián)合國教科文組織(UNESCO)委托國際信息處理學(xué)會(huì)(IFIP),編寫指導(dǎo)世界各國計(jì)算機(jī)課程設(shè)置的文件《中學(xué)信息學(xué)課程》[1],其中指出:“這里所指的程序設(shè)計(jì)是非技術(shù)性的程序設(shè)計(jì),更確切地說應(yīng)該是把‘你自己做的事情轉(zhuǎn)變成‘別人能做的事情。這就要求能詳盡地描述完成任務(wù)的過程,以便其他的人或其他的設(shè)備能準(zhǔn)確地重復(fù)這一項(xiàng)工作?!逼渲小澳茉敱M地描述完成任務(wù)的過程”通俗一點(diǎn)講,就是程序教學(xué)并不是要培養(yǎng)“程序員”,而是想通過教給學(xué)生詳細(xì)的過程,來培養(yǎng)學(xué)生設(shè)計(jì)程序的思維方式,從而學(xué)會(huì)用這種思維來分析、解決問題。因此,程序設(shè)計(jì)是培養(yǎng)學(xué)生創(chuàng)造力的有效手段和途徑,應(yīng)讓學(xué)生適當(dāng)參與。
隨著計(jì)算機(jī)技術(shù)的大發(fā)展,中小學(xué)信息技術(shù)課程教學(xué)開始從“單一的技能訓(xùn)練”逐步轉(zhuǎn)向“信息素養(yǎng)的培養(yǎng)”,開始注重中小學(xué)生的創(chuàng)新思維的訓(xùn)練。尤其是2003年國家教育部頒布的中小學(xué)信息技術(shù)標(biāo)準(zhǔn),其中將程序設(shè)計(jì)又作為選修模塊開始出現(xiàn)。從高中的新課標(biāo)把算法與程序設(shè)計(jì)作為一個(gè)選修模塊,到義務(wù)教育階段慢慢把程序設(shè)計(jì)作為一項(xiàng)必修內(nèi)容,程序設(shè)計(jì)又慢慢地回到信息技術(shù)教材中[2]。讓中小學(xué)生運(yùn)用所學(xué)的語句自己組合程序來解決數(shù)學(xué)問題、設(shè)計(jì)小游戲等,這個(gè)過程對學(xué)生來說是一種創(chuàng)造設(shè)計(jì)的過程,也是一種培養(yǎng)分析、解決問題以及創(chuàng)造能力的過程,由此可見程序設(shè)計(jì)課在中小學(xué)開設(shè)是非常必要的。
2 研究的問題
2.1 問題的提出隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,計(jì)算機(jī)語言也跟隨時(shí)代的腳步,逐步由低級語言向高級語言發(fā)展,目的在于將技術(shù)為人類方便使用。目前電子市場的發(fā)展,視覺化的表達(dá)形式充斥著人們的生活,生活在21世紀(jì)的中小學(xué)生更多的是通過形象的方式來思維、理解事物。目前中小學(xué)信息技術(shù)教學(xué)大部分是講操作應(yīng)用,其中穿插一個(gè)程序設(shè)計(jì)模塊,通過代碼編寫在計(jì)算機(jī)上實(shí)現(xiàn)想要達(dá)到的效果。這讓教師感覺設(shè)計(jì)難度很大,因?yàn)榇蟛糠謱W(xué)生對編寫代碼并不感興趣,尤其是那些零基礎(chǔ)的初學(xué)者,如果沒有一種有效的引導(dǎo)方式,往往會(huì)導(dǎo)致他們對程序設(shè)計(jì)產(chǎn)生抵觸心理,導(dǎo)致基礎(chǔ)知識和媒體素養(yǎng)的流失。那么能不能有一種方式讓人們的思維用圖形化的方式傳遞給計(jì)算機(jī),形象地實(shí)現(xiàn)思維呢?顯然圖形化編程軟件的出現(xiàn)為這個(gè)問題提供了幫助。本文力圖分析中小學(xué)程序設(shè)計(jì)的現(xiàn)狀,針對存在的問題介紹幾種相應(yīng)的圖形化編程工具輔助程序教學(xué)。
2.2 概念界定
1)圖形化編程語言(Visual Programming Language)定義:允許用戶以二維或多維方式描述一個(gè)程序(Allows the User to specify a program in a two/more dimensional fashion)。
2)圖形化編程工具特點(diǎn)。①直觀性:圖形化編程環(huán)境比較直觀,以圖標(biāo)代替?zhèn)鹘y(tǒng)的編程語句。②模塊化:圖標(biāo)模塊通過拖、拉,按照某種方式排列組合在一起,并且模塊組合可以進(jìn)行視覺化的修改。③基于數(shù)據(jù)流:由于圖形化程序具有二維、三維特性,因此執(zhí)行過程是基于數(shù)據(jù)流的,即當(dāng)且僅當(dāng)某個(gè)模塊的入口數(shù)據(jù)全部到達(dá)時(shí),該模塊才被執(zhí)行。
3 輔助程序設(shè)計(jì)的圖形化編程工具簡介
圖形化編程工具通過視覺化的方式將思維設(shè)計(jì)過程外化地呈現(xiàn)出來,是一種思維表現(xiàn)的工具,可以為程序設(shè)計(jì)的理解提供很好的輔助作用,從而提高程序設(shè)計(jì)學(xué)習(xí)的有效性。常用的輔助程序教學(xué)的圖形化編程工具有ELOGO、Robolab、Scratch等。
3.1 ELOGOELOGO即易樂谷,采用MSWLOGO為基本語則,用易語言實(shí)現(xiàn)一種新的解釋型的中文編程語言工具?!耙讟饭取痹闯绦蚩勺詣?dòng)轉(zhuǎn)換為流程圖,流程圖可自動(dòng)轉(zhuǎn)為“易樂谷”源程序。ELOGO實(shí)現(xiàn)完全中文化,因此可以用中文的命令進(jìn)行介紹,也可以在界面上直接點(diǎn)擊生成命令(如圖1所示)。
如圖1所示,簡單直觀的操作,如果想讓小海龜前進(jìn)100步,就在命令窗口中輸入“前進(jìn)100”或者點(diǎn)擊按鈕“畫圖——前進(jìn)”;如果要實(shí)現(xiàn)重復(fù)運(yùn)行的命令,就用“重復(fù)”命令格式“重復(fù) 5[前進(jìn)100左轉(zhuǎn)60]”或者點(diǎn)擊“處理——流程控制——重復(fù)”。
在ELOGO程序設(shè)計(jì)的過程中,配合加入導(dǎo)入新課部分的情境設(shè)計(jì),這樣直觀的方式比傳統(tǒng)的枯燥語句更形象,更容易理解。但是需要注意的是,ELOGO本身的重要性不在于程序語句的訓(xùn)練,而是ELOGO與數(shù)學(xué)整合的過程以及創(chuàng)新思維的培養(yǎng)。
3.2 ScratchScratch也叫抓貓,是MIT(麻省理工學(xué)院)發(fā)展的一套新的程序語言工具[3],該工具利用圖形化界面,把編程需要的基本技巧囊括其中,包括建模、控制、動(dòng)畫、事件、邏輯、運(yùn)算等;也可以用創(chuàng)造互動(dòng)式故事、動(dòng)畫、游戲、音樂和藝術(shù),由此使學(xué)習(xí)者加強(qiáng)對程序設(shè)計(jì)的認(rèn)知。目前Scratch提供Windows和Mac兩個(gè)版本。
Scratch已經(jīng)實(shí)現(xiàn)漢化工作,而且采用的是積木組合式的程序語言,即用拖曳、組合的方法取代打字,免除指令輸入錯(cuò)誤的困擾。另外它的圖標(biāo)分成3大類:堆圖標(biāo)、帽子圖標(biāo)和報(bào)告型圖標(biāo)。利用以上3類模塊圖標(biāo)就可以開發(fā)程序,成套的邏輯程序利用突起或者其他特殊圖標(biāo)按照排列順序來輔助編程,其正確與否也是可以通過圖標(biāo)的搭配來判斷的,因?yàn)椴荒艽钆涞膱D標(biāo)是不能拖拉在一起的。
程序的設(shè)計(jì)過程首先需要注意的一點(diǎn)是,Scratch的程序設(shè)計(jì)都是需要一個(gè)旗幟啟動(dòng)作為開始的,之后就像玩積木、拼圖一樣,從圖標(biāo)區(qū)選擇所需的圖標(biāo)向編輯區(qū)拖、貼和排列。
案例:小貓咪隨著鼓聲繪制一個(gè)長為100、寬為80的長方形,完成時(shí)說“你好”。
在設(shè)計(jì)開始前,學(xué)生首先在大腦中想象自己是一個(gè)導(dǎo)演,演員是小貓咪,要讓小貓咪繪制出長方形,那么在腦海里出現(xiàn)的長方形是怎樣的表象呢?比如書、課桌面等。可以跟其他學(xué)生合作,在紙上勾畫出長方形的輪廓,以找出問題解決的方法。
1)數(shù)學(xué)應(yīng)用。通過拖動(dòng)移動(dòng)100步,旋轉(zhuǎn)90、移動(dòng)80步,讓小貓咪繪制出一個(gè)長方形,這樣在操作的過程中,就讓學(xué)生了解了長方形的特點(diǎn):一個(gè)閉合的圖形,并且對邊相等,4個(gè)角都是90度。同時(shí)通過操作對已有的知識進(jìn)行實(shí)踐論證。
2)音樂創(chuàng)作。如果要讓小貓咪隨著擊鼓聲向前移動(dòng),那么如何控制鼓聲?拖過模塊圖標(biāo)彈奏鼓聲來控制。在操作的過程中,從聽覺上激發(fā)學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生美感。
腳本程序序列如圖2所示。
3)創(chuàng)意思考。要讓小貓咪不斷地向前移動(dòng),在傳統(tǒng)的語言中是需要一個(gè)循環(huán)的語句的,在Scratch中如何實(shí)現(xiàn)循環(huán)語句?最終的舞臺效果如圖3所示,發(fā)現(xiàn)小貓咪移動(dòng)過程并不自然,如果要想實(shí)現(xiàn)前后交替移動(dòng),應(yīng)該如何實(shí)現(xiàn)?留給學(xué)習(xí)者一個(gè)充分的思考空間和實(shí)踐空間的同時(shí)也提升學(xué)習(xí)者的思考層次。
4)分享交流。創(chuàng)作完作品之后,通過分享將作品上傳到官方網(wǎng)站,跟世界各地的學(xué)生交流。其官方網(wǎng)站為http://scratch.mit.edu/。
可以看出的是,Scratch的程序設(shè)計(jì)都是基于舞臺中的角色來思考的,角色可以換,造型可以換,舞臺場景可以換,角色要表演的形式可以換,就像設(shè)計(jì)一個(gè)游戲一樣,給出一個(gè)主題任務(wù),學(xué)習(xí)者可以運(yùn)用自己所學(xué)的知識,充分發(fā)揮自己的創(chuàng)造力去設(shè)計(jì)自己的故事。Scratch的目的不是語法和命令本身,而是在設(shè)計(jì)角色活動(dòng)的探究過程中通過感知——操作——分析——探究——論證的過程培養(yǎng)學(xué)生思維的發(fā)展。
通過以上2個(gè)案例的程序設(shè)計(jì)過程展示,可以看出圖形化編程工具采用的是貼近學(xué)生學(xué)習(xí)心理的界面和命令圖標(biāo),這既可以幫助中小學(xué)生對程序設(shè)計(jì)的語句命令掌握起來更容易,其內(nèi)涵也可以與傳統(tǒng)的編程語言媲美。視覺化的程序語言更能激發(fā)創(chuàng)意思考與培養(yǎng)合作學(xué)習(xí)和問題解決的能力。
4 基于圖形化編程工具的程序設(shè)計(jì)教學(xué)框架
教育心理學(xué)家加涅根據(jù)人類學(xué)習(xí)長期以來的經(jīng)驗(yàn),創(chuàng)造性地將人類性能概括成5類:智慧技能、認(rèn)知策略、言語信息、動(dòng)作技能和態(tài)度。所有教學(xué)設(shè)計(jì)都必須根據(jù)這5類性能及學(xué)習(xí)條件為基礎(chǔ)進(jìn)行設(shè)計(jì)[5]。以加涅教學(xué)設(shè)計(jì)理論為依據(jù),綜合考慮程序設(shè)計(jì)課程的特點(diǎn),初步制定基于圖形化編程工具的程序設(shè)計(jì)教學(xué)框架(圖4)。
NETS(2000)提出面向?qū)W習(xí)者的技術(shù)基礎(chǔ)標(biāo)準(zhǔn)中有4大標(biāo)準(zhǔn)內(nèi)容,其中“技術(shù)作為學(xué)習(xí)工具”指技術(shù)作為提高學(xué)習(xí)效率的工具、交流工具、研究工具和解決問題與決策的工具[4]。因此用技術(shù)促進(jìn)學(xué)習(xí)的設(shè)計(jì)過程中,要特別注意技術(shù)作為認(rèn)知工具的作用。在框架中將圖形化編程工具作為教師輔助程序教學(xué)的認(rèn)知工具,由于圖形化工具是一種可視化的圖示,所以通過故事設(shè)計(jì)和logo畫圖能夠幫助學(xué)生形象理解程序概念間的關(guān)系,而且還能通過情景的巧妙設(shè)置幫助學(xué)生發(fā)揮集體智慧,一起合作探究將表象知識轉(zhuǎn)化為實(shí)圖。另外,圖形化編程工具通過動(dòng)畫、游戲等設(shè)計(jì),允許學(xué)生在操作的過程中激發(fā)創(chuàng)造性思維,在玩中學(xué)習(xí)程序設(shè)計(jì),同時(shí)也將創(chuàng)意通過程序設(shè)計(jì)表現(xiàn)得淋漓盡致。最后,教師的恰當(dāng)點(diǎn)評會(huì)幫助學(xué)生提高對程序設(shè)計(jì)的興趣,也會(huì)培養(yǎng)他們的作品意義感??傊?在整個(gè)教學(xué)設(shè)計(jì)框架下,既體現(xiàn)教師的引導(dǎo)作用,也突出學(xué)生為主體的地位。
5 小結(jié)
隨著信息技術(shù)的高速發(fā)展,信息素養(yǎng)以及創(chuàng)造能力的培養(yǎng)成為主題,可視化的思維表達(dá)成為主流趨勢,同時(shí)各種應(yīng)用軟件五花八門,而又不可能將所有的軟件都搬到課堂中講解,所以程序設(shè)計(jì)必然會(huì)回歸中小學(xué)課堂成為主導(dǎo)內(nèi)容。程序設(shè)計(jì)本身就是一個(gè)思維的整理過程,傳統(tǒng)的基于代碼的編程方式對于中小學(xué)生來說是越來越難學(xué),而圖形化編程工具不僅能作為學(xué)習(xí)工具,還能提供多種方式構(gòu)架框架幫助學(xué)生組織認(rèn)知知識。因此,圖形化編程工具提供一種框架來輔助程序設(shè)計(jì)的學(xué)習(xí),很大程度上會(huì)成為未來的一種趨勢。
參考文獻(xiàn)
[1]謝瑩.中學(xué)信息技術(shù)課程標(biāo)準(zhǔn)《趨勢》[EB/OL].[2006-12-18].http://www.360doc.com/content/061218/09/11646_297782.html
[2]深情小刀.為什么要進(jìn)行程序教學(xué).[EB/OL].[2008-7-12].http://www.sztac.net/viewthread.php?tid=20001&extra=page%3D1
[3]Scratch界面介紹[EB/OL].http://shspswenyu.googlepages.com/chapter01
[4]鐘志賢.面向知識時(shí)代的教學(xué)框架[D].上海:華東師范大學(xué),2004
[5]R.M.加涅,L.J.布里格斯,W.W.韋杰.教學(xué)色合計(jì)原理[M].上海:華東師范大學(xué)出版社,1999