2018年7月12日

谈谈流程图的适用性

作者: 

谈谈流程图的适用性

王荣良

在《谈谈流程图的对与错》一文中,我们已经讨论了判断流程图对与错的依据。流程图画得是否对,关键是看流程图是否表达了流程图绘制者的真实想法,以及绘制者是否正确使用了流程图的规定符号。例如,某一流程图没有正确反映某一经典算法,说明流程图画错了。分析画错流程图的原因,可能是流程图绘制者没有正确理解算法,也有可能绘制者没有正确使用流程图这一算法表达工具。

那么,画对的流程图,是不是一定就是受使用者欢迎的流程图呢?一个反映了正确执行流程的流程图,未必是一个表述清晰的、适合使用的流程图。评判流程图是否适用,不像是立场分明的对与错的判别,而是需要依据流程图的用途。《谈谈流程图的对与错》一文,分析了流程图可能的用途。

执行流程正确表达,流程图符号正确使用,这是对与错判别的前提,不再累述。如果流程图是以表达与交流算法思想为目的的,那么,清晰度和可读性十分重要,流程图符号的布局合理,尽量避免流线交叉,表达方式符合大众、特别是阅读者的思维习惯,等等。这些特征是依据使用目标确定的。

如果流程图是为程序设计提供服务的,那么就要考虑流程图与程序代码的关系,虽然做不到流程图的符号与程序中的语句一一对应,也要尽可能保持逻辑关系的一致性。例如,针对面向过程的编程语言和面向对象的编程语言,绘制流程图时考虑的重点会有所不同。

流程图为程序设计提供的服务也有两种情况:软件系统设计阶段和软件系统维护阶段。针对软件设计阶段,流程图应该重点反映系统的关键技术实现细节。针对软件维护阶段,流程图应该重点反映系统接口数据和人机交互特征,以方便系统使用者尽快地对系统的工作状态做出正确的判断,并采取必要的维护手段。

如果流程图是应用于教学,那么应该依据教学目标的预设来评价流程图的适用性。如果教学目标是培养编程技巧的话,倒是可以弱化流程图,甚至可以通过问题分析直接编写程序代码。

如果教学目标是以流程图为工具理解算法思想,流程图应该清晰地表达算法思想,清晰度和可读性是首要的评价指标。在以流程图为工具的算法思想教学中,学生绘制流程图表达算法是一个重要的教学内容,但这个教学环节的实施是以学生正确掌握流程图的绘制技能为前提的。然而,掌握正确的算法思想和算法思想的正确表达都是一件复杂的事情,在实际教学中,这两种技能往往是混淆在一起的,因此,老师看到学生稀奇古怪的流程图画法,一定会血压升高。如何应对学生多样化的流程图,分清楚学生是算法理解有误还是正确表达算法思想技能不够,需要专题讨论。在这里,值得老师思考的是:面对多样化的学生流程图,不一定是学生画流程图的规范问题,而可能是学生个性化教学的实施问题,是老师的教学负担问题。对,是教学负担问题,而不是流程图规范问题。重要的事情说三遍,是老师的教学负担问题,因为老师没有精力对全部学生各种各样的流程图都进行功能的正确性判别,更不用说分析每一位学生的算法设计思路。

如果教学是为高效地达成考试目标,那么就应该分析考试的内容与模式,编制相对应的流程图模板,有针对性地开展强化训练。

如果教学目标是以流程图为中介,理解算法,并通过程序来验证算法,那么,对于算法理解正确与否,老师可以通过程序运行的结果来判断,在一定程度上降低了老师读流程图判别对错的工作强度。对于学生的能力培养目标要求,既包括用流程图正确地描述算法,也包括用合适的程序代码来构造与实现流程图表达的算法。

实际上,在不同的学习阶段,流程图在教学中起的作用是不一样的。当我们教算法概念时,流程图给学生带来的是形象化地展示了算法是如何一步一步地执行操作步骤的;当我们教算法的执行流程时,流程图可用于清晰地反映分支和循环的特征;当我们重点是教编写程序代码的时候,那么教学的重点应该在于如何培养学生适当掌握编程语言的技术细节来实现算法从流程图描述到编程语言描述的思维转化。如果一味地强调流程图要与某个编程语言配对的话,既是不可能的,也是没有必要的。

2017版《高中信息科技》(第二册)教材第二章的图2.11提供的流程图是一种非递减排序判别算法,这是基于学生思维容易理解与接受的算法表示形式。为了让学生的思维向编写程序代码要求发展,教材通过图2.12和图2.13增加一些技术细节,提供了相关的流程图,由简到繁,从易到难,从不同的角度接近程序代码,为编程学习提供阶梯。可以发现,图2.12比较适合使用For-Next结构的语句实现,图2.13比较适合使用Do While结构的语句实现。当我们摒弃“流程图与编程代码一定是一一对应”的观念后,从这些实例中我们可以发现,画流程图时,是可以根据目标与需求来决定流程图该画得多详细以及绘制风格的。

联系我们

  • 通讯地址:上海市中山北路3553号伸大厦14楼
  • 邮编:200062
  • 教材中心:021-60821765
  • 编辑部:021-60821715
  • 市场部:021-60821710
  • 传真:021-60821766
  • Email:chengbin@ecnupress.com.cn
Top
We use cookies to improve our website. By continuing to use this website, you are giving consent to cookies being used. More details…