论文部分内容阅读
在信息时代,计算思维正成为和读、写、算一样的基本素养,程序设计是计算思维形成的基础。在中小学一线教学中,程序设计模块的教学主要存在两个问题——程序设计语言烦琐和教学模式单调,这影响着学生的学习动机,继而对认知效能产生负面作用。借助于基于“创作、分享”设计理念的Scratch教学,让学生在玩中学,提升其学习技能,培养其算法思维、设计思维及创造性思维等,可以有效解决上述两个问题。
苏科版小学信息技术(五年级)教材中采用了Scratch 2.0版本,它将枯燥乏味的程序指令转换成十种不同颜色的积木,包括动作、事件、外观、控制、声音、侦测、画笔、运算符、数据、更多模块等,学生只需通过鼠标拖拽,将对应的指令模块移至脚本区,便可在轻松的环境中实现掌握程序设计的思维和方法,并能利用它表达自己的思想和感情。下面,笔者以小学信息技术五年级Scratch模块中的《花朵缤纷》一课为例,谈一谈如何在小学阶段的Scratch学习中渗透模块化程序设计思想。
问题分析,任务分解
分析问题就是分析用户需要完成的任务是什么,用户用它可以实现哪些功能,完成哪些操作,解决“做什么”的问题。在了解了程序设计的目的后,对想要实现的效果进行自顶向下的分析,将问题划分为几个部分,各个部分再进行细化,直到将它分解为可以通过具体的模块来实现。像这样以功能块为单位进行设计的过程,实现其求解算法的方法就称为模块化。在分析过程中,教师需要引导学生探究如何分析问题、分解问题、分类项目,由大化小,由繁至简,再分别进行分析和研究,并梳理出各模块之间的逻辑关系。然后,再进行子任务分析,从点到面,逐步解决。在整体规划的基础上,教师需要引导学生对每一个子任务进行分析,弄清楚每个子任务的性质、对象之间的相互关系,对子任务中每个对象的造型、脚本、状态逐个分析,再到对每句指令、参数、先后执行顺序进行分析与搭建。
本节课的导入环节,教师先创设情境,播放色彩缤纷的花朵在舞台绽放的动画效果,给学生带来美的感受,使学生带着舒畅愉悦的心情进入学习状态。接着,教师引导学生在欣赏动画效果的同时思考如何实现五彩缤纷、花开满园,对动画实现过程进行分解。学生明确了任务,思考并讨论,将整个动画效果分解为五颜六色、花开满园、花瓣生花、绘制花瓣。
案例呈现:
师:春天草木萌动,百草新生,草绿如茵,繁花似锦,请看动画(播放五颜六色花开满园的场景动画)。看了这样的场景,你们的心情有什么变化?
学生从中感受到场景的美,心情舒畅且愉悦。
师:同学们想不想在Scratch舞台上实现这样的场景呢?你们觉得在Scratch舞台上实现五颜六色花开满园的场景,需要哪些构成元素?
螺旋上升,认知分层
分解问题是将问题分解为若干相对简单、清晰的小问题,使得任务更为明确具体。自顶向下,逐步求精,则是由问题到解答、由总体到局部、由一般到具体,逐步精化、具体化,补足细节,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。
学生通过问题分析后,对需要用到的控件有了初步的设想,然而控件之间的逻辑关系还需要进一步整理。通常我们采用流程图的形式,为学生逐步从自然语言向抽象的程序设计语言过渡提供帮助,让学生厘清搭建脚本时各个控件之间的关系,逐步形成整体图示的概念。
在本节课中,五颜六色花开满园的场景这个过程相对比较复杂,可以将动画效果进行分解,逐步分解成四个部分(如下图)。“五颜六色花开满园”環节采用“将颜色特效增加”控件,解决了“花开满园”环节的花朵颜色单一的问题;“花开满园”环节采用了“随机函数”(Scratch“运算”模块中的“在-240到240间随机选一个数”)解决了花朵只能在舞台固定位置开放的问题;“一朵花开”环节采用“图章”“右转?度”“重复执行?次”“清空”四个控件解决了角色的复制、旋转以及程序执行方式的变化。
个性策略,求解多途
在教学中,教师应尽量先让学生厘清思路,知道整个问题被分成几个程序模块,怎样实现每个模块的功能,明白每个模块之间的触发关系,学生具备了模块化程序设计思想,自己的学习才能更加合理高效。另外,在教学中教师可以引导学生将模块化的小任务以及模块之间的触发条件转化为流程图,并可以让他们尝试完善或绘制流程图,以此来进一步明晰思维。
然后,学生根据分解的模块以及模块之间的触发条件,在Scratch中找到相对应的控件,再根据流程图的逻辑结构,依托控件进行组合完成脚本的搭建。学生搭建脚本时才是学生真正动手操作编写程序的阶段,这也是学生将自己的思维进行不断验证的过程。在这一过程中如果遇到困难,可以参照分解出来的模块以及模块之间的触发条件来搭建脚本,使得搭建脚本的过程更高效,问题得以解决。
在“一朵花”的功能模块学习中,教师引导学生说出整个模块脚本的实现是按照所需要的“图章”“右转?度”控件,并且根据执行的逻辑顺序完成这个功能模块脚本的搭建。在之后的“花开满园”“五颜六色花开满园”模块中,根据不同的场景要求,在原本的功能模块基础上增加触发条件,并进行逻辑顺序的调整,从而让脚本丰满起来,完成一个个功能模块脚本的搭建,实现预期设想的动画场景。
案例呈现:
师:“五颜六色花开满园”场景是在“花开满园”功能模块的基础上增加了“将颜色特效增加”功能来实现的;而“花开满园”场景又是在“一朵花开”功能模块增加了随机函数“在-240到240之间随机选一个数”来实现的;最后怎样实现“一朵花开”呢?这又离不开基本图形“一片花瓣”,在“一片花瓣”的基础上增加“旋转”和“图章”功能就可以构成一朵花。
学生根据分解出来的这些功能模块以及模块之间的触发关系找到相应的控件并搭建成完整的脚本。
调试完善,迭代优化
苏科版小学信息技术(五年级)教材中采用了Scratch 2.0版本,它将枯燥乏味的程序指令转换成十种不同颜色的积木,包括动作、事件、外观、控制、声音、侦测、画笔、运算符、数据、更多模块等,学生只需通过鼠标拖拽,将对应的指令模块移至脚本区,便可在轻松的环境中实现掌握程序设计的思维和方法,并能利用它表达自己的思想和感情。下面,笔者以小学信息技术五年级Scratch模块中的《花朵缤纷》一课为例,谈一谈如何在小学阶段的Scratch学习中渗透模块化程序设计思想。
问题分析,任务分解
分析问题就是分析用户需要完成的任务是什么,用户用它可以实现哪些功能,完成哪些操作,解决“做什么”的问题。在了解了程序设计的目的后,对想要实现的效果进行自顶向下的分析,将问题划分为几个部分,各个部分再进行细化,直到将它分解为可以通过具体的模块来实现。像这样以功能块为单位进行设计的过程,实现其求解算法的方法就称为模块化。在分析过程中,教师需要引导学生探究如何分析问题、分解问题、分类项目,由大化小,由繁至简,再分别进行分析和研究,并梳理出各模块之间的逻辑关系。然后,再进行子任务分析,从点到面,逐步解决。在整体规划的基础上,教师需要引导学生对每一个子任务进行分析,弄清楚每个子任务的性质、对象之间的相互关系,对子任务中每个对象的造型、脚本、状态逐个分析,再到对每句指令、参数、先后执行顺序进行分析与搭建。
本节课的导入环节,教师先创设情境,播放色彩缤纷的花朵在舞台绽放的动画效果,给学生带来美的感受,使学生带着舒畅愉悦的心情进入学习状态。接着,教师引导学生在欣赏动画效果的同时思考如何实现五彩缤纷、花开满园,对动画实现过程进行分解。学生明确了任务,思考并讨论,将整个动画效果分解为五颜六色、花开满园、花瓣生花、绘制花瓣。
案例呈现:
师:春天草木萌动,百草新生,草绿如茵,繁花似锦,请看动画(播放五颜六色花开满园的场景动画)。看了这样的场景,你们的心情有什么变化?
学生从中感受到场景的美,心情舒畅且愉悦。
师:同学们想不想在Scratch舞台上实现这样的场景呢?你们觉得在Scratch舞台上实现五颜六色花开满园的场景,需要哪些构成元素?
螺旋上升,认知分层
分解问题是将问题分解为若干相对简单、清晰的小问题,使得任务更为明确具体。自顶向下,逐步求精,则是由问题到解答、由总体到局部、由一般到具体,逐步精化、具体化,补足细节,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。
学生通过问题分析后,对需要用到的控件有了初步的设想,然而控件之间的逻辑关系还需要进一步整理。通常我们采用流程图的形式,为学生逐步从自然语言向抽象的程序设计语言过渡提供帮助,让学生厘清搭建脚本时各个控件之间的关系,逐步形成整体图示的概念。
在本节课中,五颜六色花开满园的场景这个过程相对比较复杂,可以将动画效果进行分解,逐步分解成四个部分(如下图)。“五颜六色花开满园”環节采用“将颜色特效增加”控件,解决了“花开满园”环节的花朵颜色单一的问题;“花开满园”环节采用了“随机函数”(Scratch“运算”模块中的“在-240到240间随机选一个数”)解决了花朵只能在舞台固定位置开放的问题;“一朵花开”环节采用“图章”“右转?度”“重复执行?次”“清空”四个控件解决了角色的复制、旋转以及程序执行方式的变化。
个性策略,求解多途
在教学中,教师应尽量先让学生厘清思路,知道整个问题被分成几个程序模块,怎样实现每个模块的功能,明白每个模块之间的触发关系,学生具备了模块化程序设计思想,自己的学习才能更加合理高效。另外,在教学中教师可以引导学生将模块化的小任务以及模块之间的触发条件转化为流程图,并可以让他们尝试完善或绘制流程图,以此来进一步明晰思维。
然后,学生根据分解的模块以及模块之间的触发条件,在Scratch中找到相对应的控件,再根据流程图的逻辑结构,依托控件进行组合完成脚本的搭建。学生搭建脚本时才是学生真正动手操作编写程序的阶段,这也是学生将自己的思维进行不断验证的过程。在这一过程中如果遇到困难,可以参照分解出来的模块以及模块之间的触发条件来搭建脚本,使得搭建脚本的过程更高效,问题得以解决。
在“一朵花”的功能模块学习中,教师引导学生说出整个模块脚本的实现是按照所需要的“图章”“右转?度”控件,并且根据执行的逻辑顺序完成这个功能模块脚本的搭建。在之后的“花开满园”“五颜六色花开满园”模块中,根据不同的场景要求,在原本的功能模块基础上增加触发条件,并进行逻辑顺序的调整,从而让脚本丰满起来,完成一个个功能模块脚本的搭建,实现预期设想的动画场景。
案例呈现:
师:“五颜六色花开满园”场景是在“花开满园”功能模块的基础上增加了“将颜色特效增加”功能来实现的;而“花开满园”场景又是在“一朵花开”功能模块增加了随机函数“在-240到240之间随机选一个数”来实现的;最后怎样实现“一朵花开”呢?这又离不开基本图形“一片花瓣”,在“一片花瓣”的基础上增加“旋转”和“图章”功能就可以构成一朵花。
学生根据分解出来的这些功能模块以及模块之间的触发关系找到相应的控件并搭建成完整的脚本。
调试完善,迭代优化