APP下载

用程序调试器动态可视化运行程序进行程序设计教学的方法

2016-03-19浦路平

高教论坛 2016年1期
关键词:教学方法

浦路平

(桂林理工大学 信息科学与工程学院,广西 桂林 541004)



用程序调试器动态可视化运行程序进行程序设计教学的方法

浦路平

(桂林理工大学信息科学与工程学院,广西桂林541004)

摘要:计算机程序的动态性和抽象性是学生学习程序设计课程困难的主要原因。本文提出一种用程序调试器动态可视化运行计算机程序进行教学的程序设计课程教学方法,通过把计算机程序动态运行路径轨迹及其变量数值的可视化,把静态的概念转化为动态变化的图形和数据,化无形的抽象思维为直观的形象思维,降低了学习难度,使学生更加容易理解程序设计课程内容,提高了学生兴趣和学习效果。

关键词:运行程序;程序设计课程;教学方法;程序调试器

一、引言

计算机程序设计课程教授应用计算机程序语言设计和编制计算机程序的理论、方法和技术,可以提高学生应用计算机解决问题的能力,提升其就业竞争力。但有些学生在学习时会遇到较大困难,这主要是由于计算机程序具有动态性和抽象性导致的。目前计算机程序设计课程教学主要采用教科书、板书或者PPT等静态方法,难以建立起程序运行的动态概念,在计算机上运行程序实例演示和上机实验也只有最终结果输出,如同黑箱一般无法看见中间运行过程。因此亟需寻找能够降低计算机程序设计课程中抽象逻辑思维和建立动态概念难度的新的教学方法。

本文提出一种通过动态可视化运行程序进行计算机程序设计课程的教学方法,通过把程序运行路径轨迹和变量数据的白箱式动态可视化,把静态的抽象概念转化为直观的动态图形,化无形的抽象思维为有形的形象思维,降低了理解难度,使学生更加容易理解程序设计课程内容,更加容易建立程序算法模型的动态概念,提高学生的学习兴趣和效果。

二、原理

计算机程序是用于计算机运行的,因此计算机程序只有通过其动态运行才能真正理解其运行原理和算法原理。计算机程序运行的动态变化包括其运行轨迹的变化和运行中变量值的变化。所以计算机程序具有抽象性和动态性的特点,这是造成初学者学习困难的主要原因之一。通过程序运行过程的白箱式动态可视化,把左脑抽象思维与右脑形象思维结合起来进行整体思维,可以降低计算机程序抽象性和动态性引发的理解难度,提升学习效果。

1.计算机程序的抽象性和动态性

计算机程序是为解决现实世界特定问题而设计出的一组计算机指令序列,用于指示计算机等机器完成信息处理等任务。在设计过程中需要对实际问题进行抽象,形成可计算的数学模型,据此设计数据结构和算法,根据算法设计计算机程序并编码实现。一方面解决问题的算法和数据都包含在计算机程序的指令语句序列中,所以计算机程序具有抽象性;另一方面因为计算机程序是用于计算机内部运行的,其运行过程是动态的,即其运行轨迹随着数据而改变,在运行过程中变量数值也随之不断变化,因此,计算机程序具有动态性。

由于计算机程序具有抽象性与运行动态性,所以初学者仅仅根据教科书、板书或者PPT等静态的知识载体建立起动态的程序运行概念具有一定困难。如果无法看见程序在计算机中的中间动态运行过程,难以理解和建立起计算机程序的动态概念,学生难以据此理解相应的算法。我国的教育特点以强调记忆为主,多数学生死记硬背有余,而逻辑和抽象思维不足,这在文科生和来自经济与教育相对落后地区的学生中尤为突出,他们在学习计算机程序设计课程中感到较大困难。

脑科学表明人的左右大脑是分工的:左脑主管逻辑推理和抽象符号思维,右脑主管艺术和形象思维[1]。如果左脑逻辑思维与右脑形象思维结合进行整体学习[2,3],就可以降低逻辑推理和抽象思维的学习难度,从而提高学习效率,同时促进学习者的逻辑抽象思维与直观形象思维全面平衡发展。通过把计算机程序内部运行过程动态可视化,把左脑思维与右脑思维相结合,可以降低程序设计课程中抽象动态逻辑部分的理解难度,提高学习效率。

2.程序运行过程的白箱式动态可视化工具程序调试器

程序调试器是许多计算机高级语言集成开发环境都带有的子系统,通常由中断调试状态的进入和退出机制、断点设置系统、跟踪系统、内部变量数据查看系统和程序调用堆栈查看系统组成。程序调试器可以实现程序运行过程的白箱式动态可视化,是理想的计算机高级语言程序设计课程进行动态可视化教学的工具。

3.程序调试器动态可视化运行程序的程序设计课程教学法

程序调试器既可用于演示算法运行路径轨迹及中间数据变化情况,也可以演示变量和数组等数据结构,还可以显示函数等过程的相互调用。程序调试器动态可视化运行程序的程序设计课程教学法就是用程序调试器按照上述方法进行程序设计课程教学。

通过程序调试器动态可视化演示计算机程序运行过程、表现其运行的动态轨迹和变量数据动态变化,这些直观的动态形象与教师或者教科书的讲解的抽象概念结合可以大大降低计算机程序和算法的理解难度。

计算机程序设计课程动态可视化教学方法可以通过将计算机程序运行的路径轨迹和各个语句结点上的变量数据变化的可视化,把静态的抽象概念转化为直观的动态图形,化无形的抽象思维为有形的形象思维,降低了难度。通过了解计算机程序的动态运行过程来对其进行学习和理解,使学生更加容易理解程序设计课程内容,可以提高学生兴趣和学习效果。

三、实例

1. VB 程序设计程序调试器动态可视化方法

Visual Basic(简称VB)是适合初学者学习计算机程序设计的计算机高级语言,其集成开发环境(IDE)带有可视化程序调试器。VB IDE的程序调试器由断点设置、中断进入及退出、当前命令指针、内部变量数据显示、过程调用堆栈窗口等子系统组成。

VB IDE有设计模式、运行模式和中断模式三种模式[4]。在设计模式中编制程序,然后运行程序,进入运行模式。当程序出现运行错误和编译错误时或者事先在程序中设置断点时进入中断模式,此时可以通过按快捷键F8、或者“调试”菜单或工具栏的“逐语句”命令实施单步运行程序,与此同时代码窗口中指向当前执行语句的黄色指针会随之移动。通过连续执行逐语句命令,可以查看程序运行轨迹。由于本地窗口显示所有当前模块的变量和对象属性的类型数值等信息,所以通过本地窗口可以观察当前过程变量的变化。此外还可以通过堆栈窗口查看各个过程之间的相互调用关系。

这样,通过在需要观察学习的程序命令处人为设置断点,由用户手动控制对于程序实行单步追踪,可以追踪到过程函数之间的相互调用关系,可以看到程序运行路径轨迹以及程序运行过程中数据的变化。据此可以通过观察而直观地理解各种程序命令和内部函数、算法原理、变量和数组、自定义函数和子过程的相互调用机制等计算机高级语言程序设计的内容。利用这种可视化技术程序设计教学,可以化抽象概念为具体内容,把程序的动态性直观地展现给学生,降低了程序动态性和抽象性的理解难度,提高了教学效果。

教学中可以由教师在课堂上进行教学演示和讲解,也可以由学生亲自动手进行上机实验,还可以作为作业题进行练习,或者作为考试题内容对学生进行测试。

2.教学示例

以下以累加问题为教学示例说明VB程序调试器的动态可视化教学方法。

要求编制程序求前n个正整数之和,即求S=1+2+…+n。

首先单击窗体后在代码窗口输入以下VB程序代码:

Sub Form_Click()

Dim S as integer, i as integer, n as integer

●n=9

S=0

For i=1 to n step 1

S=S+i

Next i

Print S

End Sub

其次设置断点:单击n=9左端,形成程序中的断点符号●。

然后按F5键运行程序,弹出窗体,单击该窗体,进入中断状态。

打开本地窗口,可以看到变量S、n、i,其值均为0。

此时代码窗口中黄色的命令指针指向n=9语句,按F8键后指针下移到S=0语句,n值变为9。

继续按F8语句指针分别到达For i=1 to n和S=S+i语句,然后不断在For i=1 to n与next i语句之间循环。可以观察到i初值为1后来每次增加1,S每次增加i,最后当i大于n的时候结束循环,命令指针下移到Print S和End Sub语句,过程结束。

通过观察总结,可以得到以下信息:

(1)整型变量初始化为0。

(2)S=S+i是把S变量数据取出来加上i变量数据相加后再赋值给S变量。

(3)for i=1 to n step 1…Next语句中的i循环开始被赋值1,其后每次被增加1,相当于i=i+1;当i>n的时候结束循环。

(4)本累加问题的算法是赋初值S=0、i=1后重复执行S=S+i、i=i+1,直到i大于n。

此时可以启发学生思考如果step 1改为step 2会得到什么结果?如果省略step 1又如何?要求学生自行使用调试器查看运行过程并得到结论。

四、结论

通过教学实践和理论分析证明计算机程序设计课程白箱式程序运行动态可视化教学方法具有以下特点:

(1)计算机程序设计课程白箱式程序运行动态可视化教学方法是降低学生理解难度、提高计算机程序设计课程学习效率的有效方法。

(2)各种计算机语言的集成开发环境所带的程序调试器是进行计算机程序设计课程白箱式程序运行动态可视化教学方法的理想工具。

(3)通过计算机程序设计课程白箱式程序运行动态可视化教学方法有利于学生掌握计算机程序动态可视化调试技术,这是程序员必须掌握的重要技能。

(4)该方法既可以作为教师教学方法,也可以当作学生上机实验内容,还可以作为作业练习题和考试题的内容。

(责任编辑:徐建平)

参考文献:

[1]傅世侠.右脑思维与思维方式更新[J].哲学动态,1988(10):42.

[2]梁保国,乐禄祉.右脑革命与理科教学改革[J].高等理科教育,1997(1):1-7.

[3]金丽,梁保国.右脑革命与大学教学模式改革[J]. 上海高教研究教育,1997(5):51-54 .

[4]龚沛曾,陆慰民,杨志强.VisualBasic程序设计简明教程[M].北京:高等教育出版社,2003:50-51.

The Way of Teaching the Computer Program Design by Dynamic Visual Running Program Using Program Debugger

PU Lu-ping

(College of Information Science and Engineering, Guilin University of Technology,Guilin 541004,China)

Abstract:The dynamic and abstract of computer program is the main reason for the difficulty of the students' learning program design. This paper presents a program design course teaching method, which uses program debugger to run computer program to carry out the teaching. By means of computer program dynamic running path and variable numerical visualization, the static concept is transformed into dynamic change of graphics and data, the difficulty of learning is reduced, the program design course content is more easily understood, and the students' interest and learning effect are improved.

Key Words:dynamic visualization running of program;program design course;teaching method;program debugger

基金项目:2015年度广西高等教育本科教改项目“计算环境下广西高校计算机类专业实验教学改革研究与实践”(2015GJA243)。

收稿日期:2015-11-15修稿日期:2015-12-06

作者简介:浦路平(1958-),江苏南通人,博士,副教授,主要研究方向为数据挖掘和模式识别,数学地质和地理信息系统。

中图分类号:G642

文献标识码:A

文章编号:1671-9719(2016)1-0057-03

猜你喜欢

教学方法
初中英语写作教学方法初探
教学方法与知识类型的适宜
数学复习教学方法
高中体育教学方法初探
浅谈高等数学中教学方法的创新
实用型中医人才培养中慕课教学方法的探讨
文言文教学方法实践初探
高中文言文教学方法之我见
初中数学教师不可忽视的几种教学方法
中医康复学教学方法探讨与实践