随着信息化的发展,运用计算机解决问题的能力成了越来越重要的信息素养。而计算机程序设计就是很好的载体。在《中小学信息技术课程指导纲要》指出,中小学生要“了解程序设计的基本思想,培养逻辑思维能力”。在浙江省小学信息技术教材中对于计算机程序教学的内容主要分为“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语言,为参加信息学奥赛做准备。
(三)理论与操作相结合,提高解决问题的能力
学生通过上机操作所得到的提高只是自己在操作的经验而已,这样所获得的知识既不系统也不全面,因此需要补充一定的理论知识。例如:各模块的作用、语句的功能、数据的类型、函数的基本功能等等。还需要有一定的数学知识,例如:圆面积的求法,绝对值的理解等。只有各方面的知识更加全面了,才能将一门语言学得更透彻。因此在教学中要融入解题策略教学,让学生熟悉解题历程,提升问题解决能力;并在不断思考如何撰写程序的过程中,提升逻辑思考能力。
作者:王超园 来源:启迪与智慧·教育版 2016年5期