论文部分内容阅读
Scratch是由麻省理工学院(MIT)媒体实验室研发的一种图形化的面向儿童的简易编程工具。Scratch语言的设计理念是“想象、编程、分享”,软件将枯燥乏味的程序语言指令转换成八种不同颜色的积木,包括动作、声音、外观、画笔、控制、侦测、数值与逻辑运算、变量等模块。学生通过拖拽不同的积木轻松完成程序设计指令的动作。Scratch的设计意图不是为了满足青少年程序员的培养,而是帮助学生发展学习技能,培养创造性思维。下面,以小学信息技术五年级Scratch单元中的《动画真精彩》一课为例,笔者谈谈如何让小学生用程序员进行程序设计的思想来编程。
需求分析就是分析软件用户的需求是什么,用户通过软件可以实现哪些功能,完成哪些操作,解决“做什么”的问题。在教学中,动画效果分析就是在了解程序设计的目的之后,对想要实现的效果进行分步的分析。在分析的过程中,学生需要探究如何把它的每个对象的动作、事件在头脑中暂时分割开来,由大化小、由繁至简,再分别进行分析和研究,梳理出各对象之间特有的逻辑关系,然后是局部分析,从点到面逐个击破。在整体规划的基础上,教师需要学生对局部内容进行分析,弄清楚每个对象的性质、对象之间的相互关系,对每个对象的造型、脚本、状态逐个分析,再到每句指令、参数、先后执行顺序的分析与搭建。
例如,在导入环节,教师先以一段蒲公英的科学性知识导入,让学生先对蒲公英特别的传播习性有了基本概念。接着,教师引导学生通过讨论的方式对教师提出的任务进行分析:如何能让蒲公英种子向前飞?学生明确了任务后,就会对任务进行分步分析,并通过思考和讨论对程序设计要用到的控件进行猜想。
师:每当春天来临,蒲公英开放黄色的小花。花开过后,种子上的白色绒毛结为一个个绒球。种子成熟后,随风飘到新的地方安家落户,孕育新的花朵。今天老师也带来了一棵蒲公英。一阵风吹来,蒲公英的种子也会飞起来呢。你们觉得用什么功能的控件能让蒲公英种子向前飞呢?
学生讨论。
程序流程图是人们对解决问题的方法、思路或算法的一种描述。形象直观,各种操作一目了然,不会产生“歧义性”,便于理解,能够理清程序中的各个逻辑关系。算法出错时容易发现,并可以直接转化为程序。为了进一步理清思路,绘制流程图是需求分析后必不可少的环节。学生通过动画效果分析后,已经对需要用到的一些控件有了初步的猜想,然而控件之间的逻辑关系如何还需要进一步的思路整理。流程图是一个思维的学习工具,为学生逐步从自然语言向抽象的程序设计语言过渡提供帮助。直观清晰的流程图作为编程最适宜的学习支架之一能够帮助学生理清搭建脚本时各个控件之间的关系,逐步形成整体的图示概念。编程中有一个重要的概念——顺序执行。意思是程序需要按照一定的顺序依次执行语句,这就要求学生在编程时要将想象实现的功能分解为多个具体步骤,并且要考虑到不同步骤之间的关系和触发条件。
例如,在《动画真精彩》这一课中,教师将蒲公英飞行播种分为四个环节:“蒲公英向前飞”“蒲公英自由飞”“蒲公英随风飞”“蒲公英漫天飞”。“蒲公英向前飞”环节,解决的是角色重复移动(如图1);“蒲公英自由飞”环节,是让通过角色资料区的学习解决旋转按钮和蓝线调整方向(如图2);“蒲公英随风飞”环节,是让蒲公英跟随鼠标指针移动(如图3);“蒲公英漫天飞”环节是综合运用到角色的复制、程序执行方式的变化以及角色移动方向的变化。
前三个环节的层层递进,让学生在完成各个任务的同时不断在原本的流程图上修改,最终完成一个让蒲公英种子能够跟随着鼠标指针移动的动画。
根据直观描绘出的流程图理清了思路,程序员用程序语言编写相应的代码,形成初步的程序。在学习使用流程图的初期,教师应该尽量用正确的流程图表示方法,让学生学会读图,明白流程图的走向。具备了流程图的知识,可以使学生的学习更加合理高效。另外,随着流程图学习的深入,可以尝试让学生绘制简单的流程图,以此来掌握流程图的程序设计方法和思想。
学生根据各种猜想形成的流程图,需要在Scratch中找到真正相对应的控件,再根据流程图的顺序或者循环结构对控件进行组合完成脚本的搭建。在脚本搭建时,才是学生真正动手操作编写程序的阶段,这时也是将自己的猜想进行不断验证的过程。当学生在脚本搭建时遇到困难时,可以立即参照之前绘制的流程图,根据流程图来搭建脚本,使得搭建脚本的过程更高效。
例如,在“蒲公英向前飞”环节,教师引导学生说出整个脚本按照所需的“移动10步”“重复执行”控件,并且根据执行的逻辑顺序完成流程图的绘制后,学生就按照流程图的顺序,找到相应的控件并搭建成完整的脚本。在之后的“蒲公英自由飞”“蒲公英随风飞”环节中根据不同的动画要求,在原本的流程图上增加新的控件并进行逻辑顺序的调整,从而让脚本丰满起来,完成一个与流程图一一对应的动画效果。
1.试错
对于程序员来说,调试就是修复错误的过程。调试是个循环往复的过程:编写程序,测试,修复错误,再测试……直到程序正确运行。逻辑是程序的基础,逻辑走不通的程序很快就能够通过运行结果反馈出来。通过反复的练习和修正来提升逻辑思维能力。学生在完成脚本运行程序的时候,常常会发生各种各样的问题。这时就需要回顾流程图和脚本,检测是否有错误的地方。
例如,在“蒲公英向前飞”环节,学生通过讨论,思考得出需要用到“移动”相关的控件。通过演示,学生发现只用一个“移动”控件,每次蒲公英种子只能移动10步。这时,学生就发现了程序中的不足,思考新的解决方法并不断地调试。
师(单击小绿旗):种子向前走了多少?10步。那么如果我还想向前走10步呢?
生:再点小绿旗。
师:如果想让它不停地向前走10步呢?
生:一直点。
师:这个方法好吗?还有没有更好的办法呀?
生:重复。
2.优化脚本
编程和下棋很类似,都是在既定规则下解决问题。规则并不复杂,却能变化无穷。学生在编写程序的时候,同样的程序效果时常可以通过不同的方法来实现,这时就需要根据分析选择最优的方案,把程序完善得最合理。
例如,在“蒲公英自由飞”环节,提出问题:蒲公英的种子只会左右飞行,能不能给它变换一个角度,让它朝着其他的方向飞翔呢?有的学生会说在脚本区假如旋转()度的控件来变换方向;有的学生通过探索发现了角色资料区中通过旋转蓝色线调整角色方向的简便方法。在面对学生不同解决方案的时候,哪种方案最好是没有定论的,只有程序员自己通过分析,选择最合适方案。又如在“蒲公英漫天飞”环节,在测试时发现,多个蒲公英种子总是经过一段时间后会重合起来。这时先要对该现象进行原因分析,再思考解决办法。
师:为什么多个蒲公英种子飞着飞着都重合在一起了呢?请同学们讨论一下。(学生讨论)因为角色的移动方向和速度都相同,只要修改其中的一个,就能让角色们分散开。
修改移动方向:让部分蒲公英种子不跟随鼠标指针移动,选择一个任意的方向自由飞。
修改移动速度:让蒲公英种子移动速度参差不齐。
对于儿童来说,Scratch跳过了高级语言中那些繁难的概念和语法,用图形化的表現和拖拽的交互来完成编程的核心逻辑和成果交付,既能解决学习曲线过于陡峭的问题,还能让学习的过程不枯燥,并更及时地获得结果反馈,适合这个年龄阶段的心智水平和认知能力。Scratch为学生提供了程序设计的平台,学生在进行程序设计时,遵循动画效果分析、绘制流程图、搭建脚本、优化脚本的程序设计流程。在整个程序设计的过程中,所有的基础知识和基本能力都是通过“想一想”和“做一做”整合在一起。学生通过模仿程序员编写脚本程序,培养了编程思维,学会了如何思考问题、解决问题,从而训练和提高了动手能力、独立思考能力、逻辑思维能力。
分析需求——动画效果分析
需求分析就是分析软件用户的需求是什么,用户通过软件可以实现哪些功能,完成哪些操作,解决“做什么”的问题。在教学中,动画效果分析就是在了解程序设计的目的之后,对想要实现的效果进行分步的分析。在分析的过程中,学生需要探究如何把它的每个对象的动作、事件在头脑中暂时分割开来,由大化小、由繁至简,再分别进行分析和研究,梳理出各对象之间特有的逻辑关系,然后是局部分析,从点到面逐个击破。在整体规划的基础上,教师需要学生对局部内容进行分析,弄清楚每个对象的性质、对象之间的相互关系,对每个对象的造型、脚本、状态逐个分析,再到每句指令、参数、先后执行顺序的分析与搭建。
例如,在导入环节,教师先以一段蒲公英的科学性知识导入,让学生先对蒲公英特别的传播习性有了基本概念。接着,教师引导学生通过讨论的方式对教师提出的任务进行分析:如何能让蒲公英种子向前飞?学生明确了任务后,就会对任务进行分步分析,并通过思考和讨论对程序设计要用到的控件进行猜想。
师:每当春天来临,蒲公英开放黄色的小花。花开过后,种子上的白色绒毛结为一个个绒球。种子成熟后,随风飘到新的地方安家落户,孕育新的花朵。今天老师也带来了一棵蒲公英。一阵风吹来,蒲公英的种子也会飞起来呢。你们觉得用什么功能的控件能让蒲公英种子向前飞呢?
学生讨论。
搭建支架——绘制流程图
程序流程图是人们对解决问题的方法、思路或算法的一种描述。形象直观,各种操作一目了然,不会产生“歧义性”,便于理解,能够理清程序中的各个逻辑关系。算法出错时容易发现,并可以直接转化为程序。为了进一步理清思路,绘制流程图是需求分析后必不可少的环节。学生通过动画效果分析后,已经对需要用到的一些控件有了初步的猜想,然而控件之间的逻辑关系如何还需要进一步的思路整理。流程图是一个思维的学习工具,为学生逐步从自然语言向抽象的程序设计语言过渡提供帮助。直观清晰的流程图作为编程最适宜的学习支架之一能够帮助学生理清搭建脚本时各个控件之间的关系,逐步形成整体的图示概念。编程中有一个重要的概念——顺序执行。意思是程序需要按照一定的顺序依次执行语句,这就要求学生在编程时要将想象实现的功能分解为多个具体步骤,并且要考虑到不同步骤之间的关系和触发条件。
例如,在《动画真精彩》这一课中,教师将蒲公英飞行播种分为四个环节:“蒲公英向前飞”“蒲公英自由飞”“蒲公英随风飞”“蒲公英漫天飞”。“蒲公英向前飞”环节,解决的是角色重复移动(如图1);“蒲公英自由飞”环节,是让通过角色资料区的学习解决旋转按钮和蓝线调整方向(如图2);“蒲公英随风飞”环节,是让蒲公英跟随鼠标指针移动(如图3);“蒲公英漫天飞”环节是综合运用到角色的复制、程序执行方式的变化以及角色移动方向的变化。
前三个环节的层层递进,让学生在完成各个任务的同时不断在原本的流程图上修改,最终完成一个让蒲公英种子能够跟随着鼠标指针移动的动画。
编写代码——脚本搭建
根据直观描绘出的流程图理清了思路,程序员用程序语言编写相应的代码,形成初步的程序。在学习使用流程图的初期,教师应该尽量用正确的流程图表示方法,让学生学会读图,明白流程图的走向。具备了流程图的知识,可以使学生的学习更加合理高效。另外,随着流程图学习的深入,可以尝试让学生绘制简单的流程图,以此来掌握流程图的程序设计方法和思想。
学生根据各种猜想形成的流程图,需要在Scratch中找到真正相对应的控件,再根据流程图的顺序或者循环结构对控件进行组合完成脚本的搭建。在脚本搭建时,才是学生真正动手操作编写程序的阶段,这时也是将自己的猜想进行不断验证的过程。当学生在脚本搭建时遇到困难时,可以立即参照之前绘制的流程图,根据流程图来搭建脚本,使得搭建脚本的过程更高效。
例如,在“蒲公英向前飞”环节,教师引导学生说出整个脚本按照所需的“移动10步”“重复执行”控件,并且根据执行的逻辑顺序完成流程图的绘制后,学生就按照流程图的顺序,找到相应的控件并搭建成完整的脚本。在之后的“蒲公英自由飞”“蒲公英随风飞”环节中根据不同的动画要求,在原本的流程图上增加新的控件并进行逻辑顺序的调整,从而让脚本丰满起来,完成一个与流程图一一对应的动画效果。
调试完善——优化脚本
1.试错
对于程序员来说,调试就是修复错误的过程。调试是个循环往复的过程:编写程序,测试,修复错误,再测试……直到程序正确运行。逻辑是程序的基础,逻辑走不通的程序很快就能够通过运行结果反馈出来。通过反复的练习和修正来提升逻辑思维能力。学生在完成脚本运行程序的时候,常常会发生各种各样的问题。这时就需要回顾流程图和脚本,检测是否有错误的地方。
例如,在“蒲公英向前飞”环节,学生通过讨论,思考得出需要用到“移动”相关的控件。通过演示,学生发现只用一个“移动”控件,每次蒲公英种子只能移动10步。这时,学生就发现了程序中的不足,思考新的解决方法并不断地调试。
师(单击小绿旗):种子向前走了多少?10步。那么如果我还想向前走10步呢?
生:再点小绿旗。
师:如果想让它不停地向前走10步呢?
生:一直点。
师:这个方法好吗?还有没有更好的办法呀?
生:重复。
2.优化脚本
编程和下棋很类似,都是在既定规则下解决问题。规则并不复杂,却能变化无穷。学生在编写程序的时候,同样的程序效果时常可以通过不同的方法来实现,这时就需要根据分析选择最优的方案,把程序完善得最合理。
例如,在“蒲公英自由飞”环节,提出问题:蒲公英的种子只会左右飞行,能不能给它变换一个角度,让它朝着其他的方向飞翔呢?有的学生会说在脚本区假如旋转()度的控件来变换方向;有的学生通过探索发现了角色资料区中通过旋转蓝色线调整角色方向的简便方法。在面对学生不同解决方案的时候,哪种方案最好是没有定论的,只有程序员自己通过分析,选择最合适方案。又如在“蒲公英漫天飞”环节,在测试时发现,多个蒲公英种子总是经过一段时间后会重合起来。这时先要对该现象进行原因分析,再思考解决办法。
师:为什么多个蒲公英种子飞着飞着都重合在一起了呢?请同学们讨论一下。(学生讨论)因为角色的移动方向和速度都相同,只要修改其中的一个,就能让角色们分散开。
修改移动方向:让部分蒲公英种子不跟随鼠标指针移动,选择一个任意的方向自由飞。
修改移动速度:让蒲公英种子移动速度参差不齐。
对于儿童来说,Scratch跳过了高级语言中那些繁难的概念和语法,用图形化的表現和拖拽的交互来完成编程的核心逻辑和成果交付,既能解决学习曲线过于陡峭的问题,还能让学习的过程不枯燥,并更及时地获得结果反馈,适合这个年龄阶段的心智水平和认知能力。Scratch为学生提供了程序设计的平台,学生在进行程序设计时,遵循动画效果分析、绘制流程图、搭建脚本、优化脚本的程序设计流程。在整个程序设计的过程中,所有的基础知识和基本能力都是通过“想一想”和“做一做”整合在一起。学生通过模仿程序员编写脚本程序,培养了编程思维,学会了如何思考问题、解决问题,从而训练和提高了动手能力、独立思考能力、逻辑思维能力。