APP下载

让程序思维可见
——“流程图”在小学信息技术程序设计课程中的实践与思考

2021-06-25江苏省南京市科利华小学孙颖燕

小学教学研究 2021年13期
关键词:控件流程图程序设计

江苏省南京市科利华小学 孙颖燕

一、流程图的应用背景和特征

1.程序设计教学现状

信息技术教学水平的不断发展,各种各样适合学生学习的模块化程序设计层出不穷,程序设计已然成为信息技术学科教学的核心内容。程序设计对学习者的逻辑思维能力有较高要求,而小学生的认知发展水平还处于具体运算阶段,这个阶段的学生的思维仍然需要具体事物的支持,还不能进行抽象逻辑思考,由自然语言直接过渡到程序语言有较大困难。

2.流程图的特征

流程图本质上是一种让知识可视化的工具。它是一种“知识表征”,是指知识的外在表现形式 。教师借助流程图能够将模糊不清的概念转变为清晰的外在形态,使学生进行更加有效的知识学习。其中,程序流程图以简单的图形进行组合,可操作性强。

二、流程图对程序设计教学的意义

1.流程图让问题浮出水面

在程序设计教学时,通常先由教师和学生一起分析程序所要实现的功能,再学习某些控件来编程以实现功能。所要实现的功能来源于学生对现象的描述,这个环节考查的是学生观察程序现象、归纳总结和语言表达的能力。当学生真正开始编程时,经常会出现一些细节问题。例如,忘记添加“重复执行”控件,导致程序只执行一次;不知道“重复执行”控件应该添加在哪里,导致程序错误运行;将两个判断条件分开;等等。此类问题在功能描述阶段并未浮出水面,却在程序书写过程中出现,原因就是学生的思维并未从自然语言成功过渡为程序语言。

案例1:以物联网创新设计“智能楼道灯”一课为例,教学年级为四年级,无程序设计基础。功能需求为:天黑时,当人经过,灯亮起。

在实现这一功能之前,学生首先进行了绘制简单流程图的练习:天黑时,灯亮起。在这个练习中,绝大多数学生能够画出流程图(见图1),但都忽略了一个问题——“重复”。如果程序以这样的流程进行下去,仅在程序开始后判断一次,程序便走向结束,无法实现长时间、循环的判断。可想而知,如果直接开始编程,学生也不会想到将“重复执行”加到程序中。

图 1

为了引发学生对此问题的思考,笔者设计了这样一个游戏:用教室的地砖作为流程图的模块,让学生扮演“程序”来走一走流程图。小A同学在“开始”处站定,笔者发出指令:“现在是下午5点29分59秒,光照强度为20,太阳就快下山。”小A同学听到指令,走到“判断框”,判断现在还不算天黑,便走到了“不开灯处”。紧接着,小B同学跃跃欲试,也来到了“开始”框中。笔者问道:“刚才程序已经走到了‘不开灯’框,怎么你上来直接到‘开始’框里了呢?”课堂沉默了一会后,小C同学举起手说:“我觉得每一次判断完了开不开灯以后应该再回到开始框,这样才能保证程序一直有效。”笔者接着提问:“那我们的流程图需要做怎样的修改呢?”于是,学生开始完善流程图,得到了进阶版的流程图(见图2)。

接下来笔者提出加上“当人经过”这一条件,指导学生直接在原流程图上进行修改,出现了图3所示的问题案例。

图 2

图 3

由于学生将“天黑”和“当人经过”两个条件的关系视为了先后关系,以为两个条件不能并列。虽然在程序执行时没有差异,但这样的两个条件是逻辑运算中的“与”关系,了解了这一点后,进而可以让学生了解程序判断中的条件是可以有多个并列的。问题如果体现到程序编写中,学生很可能会用两个“如果”控件的叠加代替两个条件的并列,便会失去学习逻辑运算“与”的机会。在厘清逻辑关系后,学生修改得到正确的流程图(见图4)。

图 4

2.流程图让过程清晰可见

以scratch程序设计为例,控件本身的含义对于学生来说并不困难,但程序功能一旦变得复杂,学生经常会望而却步。 “流程图”恰好就是打开程序设计之门的“金钥匙”,它可以帮助学生厘清思路、梳理过程,进而更好地理解程序的思想。

案例2:五年级scratch“克隆飞机大战”一课中,要求学生使用“克隆”控件,实现飞机反复出现并下落,火炮击打飞机后,飞机消失并计分的功能,具体说明见图5。这是一项集合多个知识点的全新挑战,如果不厘清思路,很容易出现细节错误,由此带来的程序调试会让不少学生感到灰心。

图 5

为了让学生的思维从功能描述过渡到程序编写,笔者带领学生绘制了简单的流程图(见图6)。

图 6

此流程图中的语言以自然语言为主,其中“随机出现在舞台上方”“下落5步”“碰到火炮”“落到底部”“加1分”等语句并不是程序中可以直接套用的语言,而是学生对于现象的程序化描述。但是有了这样的程序框架,学生就能够有条理地思考,写程序的效率大大增加,对程序思想的理解也更加透彻。

三、流程图在程序设计课程中的应用策略

1.初识阶段——感受程序思想

在低年级学生初次接触到程序时,对于一条条指令拼凑起来的过程是陌生的,但生活中各种各样模型的“搭建说明书”是他们所熟知的,流程图在这时就充当着“搭建说明书”的作用。例如,在学习“条件判断”语句时,流程图中恰好有对应的模块可以对照学习;在学习“循环”语句时,简单的回复箭头更加易于理解。图形化的样式符合学生的认知偏好,由语言描述到流程图之间的跨度对低年级学生来说接受度更高,对于初次尝试编程的学生来说,流程图是他们感受程序思想的有力工具。在绘制完流程图后,可以根据流程图直接讲解现象——程序语言之间的区别,把现象流程图改成更加贴近程序的流程图,继而对照流程图编写程序。

案例3:在物联创新课程“聪明的风扇”一课中,要求实现功能:当温度高于28℃并且有人靠近时,风扇打开。笔者先让学生根据要求绘制了流程图(见图7)。

图 7

这时的流程图更靠近自然语言,“温度”在编程软件中能够找到直接对应的语句,但“开风扇”必须通过电机来驱动,这时流程图就充当起了桥梁的作用。笔者引导学生对比编程软件中给出的控件,修改流程图(见图8)。

图 8

由此,自然语言的功能描述到编写程序之间搭建了两座流程图的桥梁,能够帮助学生在程序设计初始之路走得更加顺畅。

2.深入阶段——梳理程序过程

在程序设计教学进行到一定的阶段后,学生需要完成一些综合性练习或设计作品来巩固学习成果。流程图可以很好地帮助学生梳理功能、绘制程序进行的过程。在程序设计中,往往越复杂的作品搭建越需要多感知通道的支撑,在日常教学中通常会使用的是游戏功能的视频演示、语言描述过程、教师和学生分解过程再分步编写等策略。这样的策略,有的停留在自然语言描述的阶段,虽然梳理出了过程,却没有帮助学生搭建程序编写的脚手架;有的将程序过程过度分解,致使学生失去了对程序整体的感知和把握。在知识点运用频繁的作品中,如“大鱼吃小鱼” “飞机大战”这类游戏,角色众多、场景丰富,如果直接编写程序,很难做到万无一失。偏向自然语言的流程图和偏向程序语言的流程图都能够很好地减少犯错的概率,给予学生多通道的知识强化和过程参照。

通过实践,流程图有效地加强了学生对程序思想的理解,让原本看上去很复杂的程序变得有迹可循,让程序思维可见。信息技术教学应当充分考虑学生的认知发展水平,借助流程图等知识可视化工具,让学生真正理解程序设计,感受到程序思维的“内在脉络”,才能让学生会编程、爱编程。

猜你喜欢

控件流程图程序设计
基于SolidWorks和VBA的电机阶梯轴建模程序设计
基于C++Builder 的电子邮件接收程序设计*
云的识别指南
项目化教学在Python程序设计课程中的应用
使用“填表单”微信小程序 统计信息很方便
医学专业“Python程序设计”课程教学改革总结与思考
基于.net的用户定义验证控件的应用分析
从细节入手,谈PLC程序设计技巧
流程图学习指南
Spreadsheet控件在Delphi数据库系统中的编程与应用