程序可视化方法在程序设计课程教学中的应用
2021-04-20胡珊
胡珊
摘要:针对当前高校中程序设计教学方法陈旧枯燥,部分学生在学习程序设计课程中存在困难的现状,提出利用程序可视化的方法来解决学生对程序设计课程难以理解的难点。通过程序可视化方法可以避免烦冗的程序设计语言的语法限制,让学生能生动直观地看到和理解程序设计算法的执行过程和算法的核心思想。
关键词:课程教学;程序可视化;流程图;RAPTOR ;VisuAlgo
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2021)07-0104-02
1引言
当今时代是信息时代,在信息时代中计算机承担着构建信息社会的重要角色。要让计算机能真正地为人们服务就必须掌握控制计算机的编程语言。在当前的高等教育中,计算机程序设计是每一个工科大学生必修的基础课程。在以往的计算机程序设计教学中,由于每个学生基础差异和兴趣爱好的不同,计算机程序设计教学效果不是很理想。部分学生认为计算机程序设计课程讲授的内容太抽象了,难以理解,把计算机程序设计列为最难学的课程。如何让学生能掌握好一门计算机编程语言,如何开展以计算机程序设计思维为主导的大学计算机程序设计教学改革成为摆在高校计算机教师面前的难题。
2问题分析
现在的学生在学习计算机程序设计课程中主要面临着两个方面的问题:1)在计算机程序设计课程的初期,每个学生必须记住计算机编程语言所规定的规范和编程语言的语法,一旦他们不能记住这些枯燥乏味的规范和语法时,他们编程出来的程序就无法编译和执行(例如关键字写错,缺少某个符合等),学习的兴趣将受到严重的打击。2)在计算机程序设计课程的后期,都要学习一些比较复杂的算法,例如排序算法,由于老师一般只是讲解算法的核心思想然后给出相应的代码进行讲解,对于这些复杂而抽象的算法通常都涉及多重循环,基础较差的学生往往陷入这些循环中而不能自拔。
3程序可视化方法实施
为了解决以上两个问题,针对计算机程序设计课程的不同时期应用了两种程序可视化方法进行程序设计课程教学方法。
3.1利用可执行的流程图来实现程序可视化
在刚开始学习计算机程序设计的时候,学生应该学习的是利用程序流程的思想来解决问题,学生要学习的重点是把实际问题化为程序流程,而不是把重点放在枯燥乏味的编程语法之中[1][2]。
RAPTOR(the Rapid Algorithmic Prototyping Tool for Ordered Reasoning)是一个基于流程图的编程环境,专门用来帮助编程初学者利用流程图来可视化他们的算法,避免在编程学习的初期学习编程语言语法负担,运行界面如图1。在RAPTOR中,计算机程序的算法用流程图来表示。RAPTOR为用户提供了创建可执行流程图的界面,而不是编写可能导致语法错误的程序代码[3]。
Raptor中包含六种不同的图形符号,他们分别代表一种不同的程序设计语句类型。图形符号代表的程序设计语句类型如下:①赋值语句:使用某些运算来更改变量的值;②过程调用:调用系统自带的子程序或用户定义的子图等程序块;③输入语句:输入数据给一个变量;④输出语句:用于显示变量的值。⑤选择语句:用于从条件判断中选择流程的走向。⑥循环语句:允许重复执行一个或多个语句构成的语句体。
利用这些图形符号可以实现计算机程序的全部控制结构,例如:顺序结构、选择结构和循环结构。用户要编写程序只需将流程图符号拖动到编辑区,箭头将自动链接图形符号形成一个程序算法的流程图。这些编辑完成的流程图可以直接运行。用户可以利用工具栏的按钮来控制流程图的运行,包含执行,暂停和单步执行等。在程序的运行过程中可以在变量观察区看到流程图中定义变量的值的变化。
3.2利用算法动画进行程序可视化分析
程序设计课程都会要求学生掌握一些稍微复杂一些的算法,例如排序算法是每种程序设计课程都必须掌握的重要知识点。这些复杂的算法通常都要求用多重循環结构来实现,对于基础较差的同学而言,如果按照常规的教学方法经常很难听懂老师的讲解。算法学习最大的难点之一就是如何在脑中形象化其抽象的逻辑步骤。而图像在很多时候能够帮助我们理解其对应的抽象化的东西,而如果用图像把相应的程序执行步骤的结果一点点画出来的,那么无疑对理解算法核心思想是非常有帮助的。
为了方便程序设计初学者理解复杂的算法,把复杂的算法能形象地展现出来,有很多的算法可视化工具用动画的形式把算法中程序的执行步骤及算法执行时内存中的数据的变化都形象的绘制出来。其中,VisuAlgo就是一个功能非常完善的算法可视化的网站,运行界面如图2。VisuAlgo对每个算法不仅提供动画的演示功能,还对每个算法核心思想进行了大量的文字讲解。在学习了算法背后的理论之后,就可以通过观看动画示例来了解算法的工作原理[4]。
当播放算法的执行过程动画时,在右下角会显示对算法正在执行的语句的解释,以及当前执行的伪代码。左下角的动画演示控制工具栏还可以选择倒退、快进、播放/暂停以及更改动画的播放速度。
4 结论
利用程序可视化的方法可以帮助程序设计的初学者形象生动的理解程序的执行过程和程序算法的核心思想。通过程序可视化的方法在程序设计课程的应用将提供一种更加方便学生学习和掌握程序设计课程的途径。
参考文献:
[1]郁晓华. 基于可视化编程的计算思维培养模式研究[J].远程教育杂志, 2017(6):12-20.
[2]黄胜,可视化程序设计课程教改研究[J].计算机时代, 2016(2):86-87.
[3] 程向前.基于流程图的可视化程序设计环境对大学计算机基础教学的影响[J]. 计算机教育, 2012(14):56-59.
[4] Aji Prasetya Wibawa,Utilization Visualgo.net as a Data Structure Learning Media based on CDIO[J].Journal of Physics: Conference Series,2018,1028(1).
【通联编辑:王力】