流程图在计算思维教学实践中的运用与思考

2021-07-11 11:18丁洁月
中国信息技术教育 2021年12期
关键词:流程图排序程序设计

丁洁月

《普通高中信息技术课程标准(2017年版)》(以下简称《新课标》)凝练了四个维度的学科核心素养——信息意识、计算思维、数字化学习与创新、信息社会责任,很好地体现了学科的科学本质和育人价值,其中特别强调培养学生的计算思维能力。程序设计是培养学生计算思维的有效途径,但很多学生在实际应用中会无从下手。笔者认为,这主要是因为学生在脑海中没有相关的表征,不知道要做什么、怎么做。下面,笔者结合自己的教学实践,就如何借用流程图在程序设计教学中发展学生计算思维谈一些看法。

计算思维和流程图的映射关系

在程序设计教学中,最重要的不是写程序,而是设计。这就好比建筑、机械等行业要画设计图、施工图,程序设计的思路也有必要以图的形式画出来。流程图的使用和计算思维要素之间的关系,如右表所示。

显然,流程图是学生理清思路、辅助程序设计、发展计算思维的一种有效工具。在日常的程序设计教学中,学生画好流程图,练好基本功,能科学有效地辅助抽象建模、帮助综合资源求解问题,进而促进知识的迁移运用,这也是计算思维培养的内涵所在。

流程图在程序设计教学中的应用

1.课前构建流程图,科学识别抽象建模

计算机归根到底执行的是数值计算,只有将现实问题转换成数学问题才能通过计算予以解决,也就是说,要将现实问题抽象为“可计算”问题。而设计与分析的过程就是不停地进行抽象和封装,并确定各个系统实体的细节。因此,在程序设计教学中,教师要提出问题,让学生围绕问题进行抽象、建模,然后引导学生用流程图把抽象出来的内容进行关联。在此过程中,可设置头脑风暴等活动,在激发学生兴趣的同时帮助学生构建思维框架,培养学生系统分析、抽象思维的能力。下面,笔者以《选择排序》的第一课时为例进行教学实践。

环节一:教师播放动画,激发学生学习兴趣,鼓励学生观察分析。

环节二:头脑风暴,引导学生归纳总结,画出对应流程图(如下页图1)。

在传统教学中,教师一般会直接告知学生算法思想,这样会导致学生因缺少分析、概括的锻炼而忽略了其中的逻辑联系。因此,在课前,教师通过引导学生畫流程图的办法迅速进入主题,对主题内容进行梳理,理清其逻辑结构,这样能有效激活学生的背景知识,有助于他们快速地检索相关知识以及准确地进行分析判断。

2.课中完善流程图,综合资源求解问题

结构化程序设计的观点认为,任何复杂的算法,都可以以顺序、选择、循环这三种基本结构(如图2)作为“建筑单元”,对问题进行抽象和构造。通过“自顶向下,逐步求精”的程序设计方法,教师要将大的问题划分为小问题,将复杂问题变为相对简单的问题,找出问题的关键、重点,然后通过带有语义规则的符号定性、定量地去描述,进而通过编程实现自动化。经过课前的准备活动,学生原有的知识和认知结构进入了激活状态,对程序设计也有了一定的把握,具备了“逐步求精”的心理状态。教师将课中活动以提问的方式展开,要求学生完善相应的流程图,如下页图3、图4所示。

问题1:既然是重复找最值,若有n个数,需要重复几遍?

问题2:每遍怎么找出最值?

问题3:两数互换怎么实现?

在设计过程中,流程图记录并显性化呈现学生的思维发展变化。通过细化、完善程序设计,人脑对计算实施原理与过程进行思考,用计算的方法来规范,并运用计算来设计系统,实现问题求解。

3.课后运用流程图,举一反三迁移应用

流程图是以图表表征的形式帮助学生理清思路、构建思维。在程序设计中,设计是否清晰合理,对问题的解决非常重要。学生只有自己的思路清晰了,才能够有条不紊、高效高质地完成程序设计。因此,笔者尝试设计有利于促进学习迁移的活动,帮助学生牢固掌握并深入挖掘相关知识的内涵。

(1)运用流程图辅助算法优化

在介绍完选择排序的相关知识后,笔者趁热打铁,引导学生进一步对算法进行设计,尝试优化。教师提出:同样解决排序问题,有不同的算法。虽然结果一致,但有的算法会更好更高效,如堆排序、归并排序或其他排序,请思考这些排序算法有何区别。学生课后查资料,思考,完成流程图的设计并做相关分析。

(2)运用流程图辅助系统设计

在实际生活中,排序算法很实用,其他地方可能会用到,因此可以把代码打包成“函数”,其他地方想用这个函数,就直接写出函数名,传入数据即可。当然,这个函数也可以调用另一个函数,或者用于其他更复杂的函数。在使用时,复杂度被隐藏,不需要知道内部的循环和变量,结果会像魔术一样返回,如下页图5所示。在此基础上,笔者引导学生运用模块化设计的思想,尝试思考并设计:模拟电子地图,搜索A城市到B城市的最短路径。

综上所述,如果教师仅介绍思想、算法实现会显得单薄。借助流程图,则可以激发学生进一步思考,增加程序的设计感,锻炼学生的知识迁移应用能力,也丰富了所学知识。

应用策略

1.理论与实践相结合

要在程序设计教学中落实计算思维的培养,就要对客观世界进行合理抽象建模,画好流程图,也要将设计出的蓝图付诸实践,编程调试运行。然后,结合实践反思设计,进一步提高学生的理论认识。在这个过程中,学生和教师一起经历“抽象—形式化表达—构造—自动化”的过程,有效地实施计算思维的培养。

2.应用与表征相结合

表征是指某(些)事物和事物属性能确切地表示另一(些)事物和事物属性。课前,教师鼓励学生用流程图把形象的客观世界进行抽象建模,并把抽象出来的内容进行关联;课中,完善流程图,将抽象出来的内容通过带有语义规则的符号定性、定量地去描述;课后,运用流程图继续辅助深入挖掘,不断丰富知识。不同阶段有不同的表征,但无论如何,教师都应注意与实际应用相结合,且流程图要注意留白,为课中的完善、课后的深入挖掘做准备。另外,在用流程图辅助程序设计时,不同的符号有不同的含义,不同的结构有不一样的表征作用,规范使用有助于形成规范的行为习惯,养成良好的思维品质。

3.理念与技术相结合

作为信息技术教师,要紧跟时代潮流,更新教学观念,运用多种手段辅助教学,提升自身数字化学习与创新的应用能力。同时,还要根据学生情况、教学内容,选用合适的工具辅助,使课堂效率事半功倍。例如,在绘制流程图时,可以选用常规的办公软件Word、WPS、PPT,也可以用Viso、OmniGraffle等专业绘制工具。当然,也可以在iPad和智能手机上画好图再投屏,或者边讲解边画等。

结束语

根据新课标的价值取向和培养目标,笔者联系自身教学实际,以“图解程序设计,描绘思维蓝图”为教学切入点,把计算思维内涵的三个层次作为培养目标,践行和分析了新课改大背景下如何把握信息技术学科的科学本质和育人价值,进而促进信息素养的提升。笔者相信,为培养出适应数字时代的建设者,一线教学不仅坚持教学的真理,还需要有好的方法传道授业解惑,更需要不断进行最平凡的教学研究。

猜你喜欢
流程图排序程序设计
云的识别指南
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
恐怖排序
节日排序
流程图学习指南