图形化编程工具辅助程序设计学习

2009-12-23 02:28刘芳芳
中国教育技术装备 2009年30期

刘芳芳

摘要 随着技术的进步,思维可视化成为教学关注的一个焦点。基于中小学程序设计难教难学的问题,介绍分析图形化程序设计的几种软件,探索中小学程序设计的教学模式。

关键词 Scratch;图形化程序设计;创新

中图分类号:G434 文献标识码: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年开始中小学计算机普及教育,以学习计算机原理和程序设计为主,当时受到硬件设备的限制,开设的主要是Basic和logo的程序设计。考虑到中小学生的心理与学习特点,1985年受在美国召开的“第四届世界计算机教育会议”影响,我国计算机教育开始重新审视教学内容,将单一的Basic语言教学逐步转向计算机应用的教学上来,于是程序教学开始遭到摒弃,教学内容和模式开始转向应用软件的使用操作。

1994年,联合国教科文组织(UNESCO)委托国际信息处理学会(IFIP),编写指导世界各国计算机课程设置的文件《中学信息学课程》[1],其中指出:“这里所指的程序设计是非技术性的程序设计,更确切地说应该是把‘你自己做的事情转变成‘别人能做的事情。这就要求能详尽地描述完成任务的过程,以便其他的人或其他的设备能准确地重复这一项工作。”其中“能详尽地描述完成任务的过程”通俗一点讲,就是程序教学并不是要培养“程序员”,而是想通过教给学生详细的过程,来培养学生设计程序的思维方式,从而学会用这种思维来分析、解决问题。因此,程序设计是培养学生创造力的有效手段和途径,应让学生适当参与。

随着计算机技术的大发展,中小学信息技术课程教学开始从“单一的技能训练”逐步转向“信息素养的培养”,开始注重中小学生的创新思维的训练。尤其是2003年国家教育部颁布的中小学信息技术标准,其中将程序设计又作为选修模块开始出现。从高中的新课标把算法与程序设计作为一个选修模块,到义务教育阶段慢慢把程序设计作为一项必修内容,程序设计又慢慢地回到信息技术教材中[2]。让中小学生运用所学的语句自己组合程序来解决数学问题、设计小游戏等,这个过程对学生来说是一种创造设计的过程,也是一种培养分析、解决问题以及创造能力的过程,由此可见程序设计课在中小学开设是非常必要的。

2 研究的问题

2.1 问题的提出随着网络技术的发展,计算机语言也跟随时代的脚步,逐步由低级语言向高级语言发展,目的在于将技术为人类方便使用。目前电子市场的发展,视觉化的表达形式充斥着人们的生活,生活在21世纪的中小学生更多的是通过形象的方式来思维、理解事物。目前中小学信息技术教学大部分是讲操作应用,其中穿插一个程序设计模块,通过代码编写在计算机上实现想要达到的效果。这让教师感觉设计难度很大,因为大部分学生对编写代码并不感兴趣,尤其是那些零基础的初学者,如果没有一种有效的引导方式,往往会导致他们对程序设计产生抵触心理,导致基础知识和媒体素养的流失。那么能不能有一种方式让人们的思维用图形化的方式传递给计算机,形象地实现思维呢?显然图形化编程软件的出现为这个问题提供了帮助。本文力图分析中小学程序设计的现状,针对存在的问题介绍几种相应的图形化编程工具辅助程序教学。

2.2 概念界定

1)图形化编程语言(Visual Programming Language)定义:允许用户以二维或多维方式描述一个程序(Allows the User to specify a program in a two/more dimensional fashion)。

2)图形化编程工具特点。①直观性:图形化编程环境比较直观,以图标代替传统的编程语句。②模块化:图标模块通过拖、拉,按照某种方式排列组合在一起,并且模块组合可以进行视觉化的修改。③基于数据流:由于图形化程序具有二维、三维特性,因此执行过程是基于数据流的,即当且仅当某个模块的入口数据全部到达时,该模块才被执行。

3 辅助程序设计的图形化编程工具简介

图形化编程工具通过视觉化的方式将思维设计过程外化地呈现出来,是一种思维表现的工具,可以为程序设计的理解提供很好的辅助作用,从而提高程序设计学习的有效性。常用的辅助程序教学的图形化编程工具有ELOGO、Robolab、Scratch等。

3.1 ELOGOELOGO即易乐谷,采用MSWLOGO为基本语则,用易语言实现一种新的解释型的中文编程语言工具。“易乐谷”源程序可自动转换为流程图,流程图可自动转为“易乐谷”源程序。ELOGO实现完全中文化,因此可以用中文的命令进行介绍,也可以在界面上直接点击生成命令(如图1所示)。

如图1所示,简单直观的操作,如果想让小海龟前进100步,就在命令窗口中输入“前进100”或者点击按钮“画图——前进”;如果要实现重复运行的命令,就用“重复”命令格式“重复 5[前进100左转60]”或者点击“处理——流程控制——重复”。

在ELOGO程序设计的过程中,配合加入导入新课部分的情境设计,这样直观的方式比传统的枯燥语句更形象,更容易理解。但是需要注意的是,ELOGO本身的重要性不在于程序语句的训练,而是ELOGO与数学整合的过程以及创新思维的培养。

3.2 ScratchScratch也叫抓猫,是MIT(麻省理工学院)发展的一套新的程序语言工具[3],该工具利用图形化界面,把编程需要的基本技巧囊括其中,包括建模、控制、动画、事件、逻辑、运算等;也可以用创造互动式故事、动画、游戏、音乐和艺术,由此使学习者加强对程序设计的认知。目前Scratch提供Windows和Mac两个版本。

Scratch已经实现汉化工作,而且采用的是积木组合式的程序语言,即用拖曳、组合的方法取代打字,免除指令输入错误的困扰。另外它的图标分成3大类:堆图标、帽子图标和报告型图标。利用以上3类模块图标就可以开发程序,成套的逻辑程序利用突起或者其他特殊图标按照排列顺序来辅助编程,其正确与否也是可以通过图标的搭配来判断的,因为不能搭配的图标是不能拖拉在一起的。

程序的设计过程首先需要注意的一点是,Scratch的程序设计都是需要一个旗帜启动作为开始的,之后就像玩积木、拼图一样,从图标区选择所需的图标向编辑区拖、贴和排列。

案例:小猫咪随着鼓声绘制一个长为100、宽为80的长方形,完成时说“你好”。

在设计开始前,学生首先在大脑中想象自己是一个导演,演员是小猫咪,要让小猫咪绘制出长方形,那么在脑海里出现的长方形是怎样的表象呢?比如书、课桌面等。可以跟其他学生合作,在纸上勾画出长方形的轮廓,以找出问题解决的方法。

1)数学应用。通过拖动移动100步,旋转90、移动80步,让小猫咪绘制出一个长方形,这样在操作的过程中,就让学生了解了长方形的特点:一个闭合的图形,并且对边相等,4个角都是90度。同时通过操作对已有的知识进行实践论证。

2)音乐创作。如果要让小猫咪随着击鼓声向前移动,那么如何控制鼓声?拖过模块图标弹奏鼓声来控制。在操作的过程中,从听觉上激发学生的学习兴趣,培养学生美感。

脚本程序序列如图2所示。

3)创意思考。要让小猫咪不断地向前移动,在传统的语言中是需要一个循环的语句的,在Scratch中如何实现循环语句?最终的舞台效果如图3所示,发现小猫咪移动过程并不自然,如果要想实现前后交替移动,应该如何实现?留给学习者一个充分的思考空间和实践空间的同时也提升学习者的思考层次。

4)分享交流。创作完作品之后,通过分享将作品上传到官方网站,跟世界各地的学生交流。其官方网站为http://scratch.mit.edu/。

可以看出的是,Scratch的程序设计都是基于舞台中的角色来思考的,角色可以换,造型可以换,舞台场景可以换,角色要表演的形式可以换,就像设计一个游戏一样,给出一个主题任务,学习者可以运用自己所学的知识,充分发挥自己的创造力去设计自己的故事。Scratch的目的不是语法和命令本身,而是在设计角色活动的探究过程中通过感知——操作——分析——探究——论证的过程培养学生思维的发展。

通过以上2个案例的程序设计过程展示,可以看出图形化编程工具采用的是贴近学生学习心理的界面和命令图标,这既可以帮助中小学生对程序设计的语句命令掌握起来更容易,其内涵也可以与传统的编程语言媲美。视觉化的程序语言更能激发创意思考与培养合作学习和问题解决的能力。

4 基于图形化编程工具的程序设计教学框架

教育心理学家加涅根据人类学习长期以来的经验,创造性地将人类性能概括成5类:智慧技能、认知策略、言语信息、动作技能和态度。所有教学设计都必须根据这5类性能及学习条件为基础进行设计[5]。以加涅教学设计理论为依据,综合考虑程序设计课程的特点,初步制定基于图形化编程工具的程序设计教学框架(图4)。

NETS(2000)提出面向学习者的技术基础标准中有4大标准内容,其中“技术作为学习工具”指技术作为提高学习效率的工具、交流工具、研究工具和解决问题与决策的工具[4]。因此用技术促进学习的设计过程中,要特别注意技术作为认知工具的作用。在框架中将图形化编程工具作为教师辅助程序教学的认知工具,由于图形化工具是一种可视化的图示,所以通过故事设计和logo画图能够帮助学生形象理解程序概念间的关系,而且还能通过情景的巧妙设置帮助学生发挥集体智慧,一起合作探究将表象知识转化为实图。另外,图形化编程工具通过动画、游戏等设计,允许学生在操作的过程中激发创造性思维,在玩中学习程序设计,同时也将创意通过程序设计表现得淋漓尽致。最后,教师的恰当点评会帮助学生提高对程序设计的兴趣,也会培养他们的作品意义感。总之,在整个教学设计框架下,既体现教师的引导作用,也突出学生为主体的地位。

5 小结

随着信息技术的高速发展,信息素养以及创造能力的培养成为主题,可视化的思维表达成为主流趋势,同时各种应用软件五花八门,而又不可能将所有的软件都搬到课堂中讲解,所以程序设计必然会回归中小学课堂成为主导内容。程序设计本身就是一个思维的整理过程,传统的基于代码的编程方式对于中小学生来说是越来越难学,而图形化编程工具不仅能作为学习工具,还能提供多种方式构架框架帮助学生组织认知知识。因此,图形化编程工具提供一种框架来辅助程序设计的学习,很大程度上会成为未来的一种趋势。

参考文献

[1]谢莹.中学信息技术课程标准《趋势》[EB/OL].[2006-12-18].http://www.360doc.com/content/061218/09/11646_297782.html

[2]深情小刀.为什么要进行程序教学.[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]钟志贤.面向知识时代的教学框架[D].上海:华东师范大学,2004

[5]R.M.加涅,L.J.布里格斯,W.W.韦杰.教学色合计原理[M].上海:华东师范大学出版社,1999