程序设计课程教学中培养学生能力的探讨
2011-02-20冯中毅董海棠
冯中毅 董海棠
1.兰州城市学院 甘肃兰州 730070 2.兰州交通大学 甘肃兰州 730070
程序设计课程教学中培养学生能力的探讨
冯中毅1董海棠2
1.兰州城市学院 甘肃兰州 730070 2.兰州交通大学 甘肃兰州 730070
VisualBasic程序设计语言是我们学校开设的全校性理工科学生必修的计算机公共基础课程。探讨了在我们学校教改中,计算机课程学时减少的情况下教学的组织,提出了教学方法的建议。重点讨论了备课过程和课堂教学中多种教学方法的融合,及课后通过让学生完成具有一定实用性的题目来提高学生的编程和调试能力,为学生在各自的专业中应用和扩展编程知识并解决本专业的问题打下良好的基础。
VisualBasic程序设计;教学;编程与调试
“VisualBasic语言”被我校作为理工科本科生学习程序设计的入门语言,笔者通过教学的实际体验,探讨了如何在学时较少的情况下组织教学,培养和提高学生的编程和调试能力。
1 学时较少情况下的教学安排
我校大学理工科本科的教学改革较大幅度地压缩了公共基础课的总课时,以提高专业课程、选修课程和实践性课程的课时,这就导致计算机应用基础课程总学时数相应减少。为此,负责全校低年级计算机基础课程的教师多次进行研讨,特别是近几年来,笔者一直在这方面进行改革探索,努力使学生在较短的学时里掌握程序设计的知识,并能够根据自己的学科特点进行应用和扩展,且使得在以后的学习和工作中根据需要能够进行自学提高。
程序设计课程安排在大学一年级第二学期,共72学时,其中36学时进行程序设计语言理论的学习,主要内容为程序设计语言的概念和语法及相应的典型算法。同时每周同步安排2学时的上机教学,共36学时的上机实践。多年来,计算机语言课程有C语言,C++,VisualFoxPro和VisualBasic等多种语言可供选择。随着面向对象编程思想的普及,教学也需要转向面向对象的编程。但是,典型的面向对象程序设计语言如C++和Java等,对于非专业的学生来说在较短的时间内难以掌握。因此我们选择了VisualBasic这种易于掌握,又渗透了面向对象的编程思想,功能也很强大的程序设计语言。
在上机实践的教学环节,除了完成必要的典型题目,在学生较为熟悉VisualBasic程序设计环境后,后半学期(教学周第9周以后),将学生分成小组,每组由3~4人组成,以VisualBasic语言为编程环境,以教师指定或学生有兴趣的小软件项目为背景,进行的训练包括:需求分析、算法设计、模块设计、编写程序和软件测试等环节,最后以编写的软件文档和源代码作为上机实践课成绩的依据。实践表明,经过这样的全过程实践,学生可以初步掌握可视化编程,了解软件的一般性开发方法。比较过去的教学学生虽然学完了程序设计课程,也通过了全国计算机二级考试,但对于软件开发所知甚少,有了很大的提高。
2 精心选择教材
目前VisualBasic程序设计课程教材有很多种,内容差别很大,笔者在选择教材时本着以下原则:
(1)重视概念和算法的学习,内容简明扼要,对于语法细节不深究,操作部分的指导要清晰明确。
(2)教材内容的组织上有助于尽早在学生头脑中建立起面向编程的思维模式。
(3)有详细的实验指导书,能够训练学生综合运用计算机的能力。
(4)教材中的各章节提供有针对性的典型案例,通过案例步骤的讲解而引出理论知识具体运用,能够结合学生的学科内容,能够综合教材中的前后知识点。
(5)将程序设计语言及软件的进展融入教材中。
由于各种版本的教材各有特色。教师在选择时还可根据学生的计算机水平,所在学科的特点、本专业的教学目标以及不同层次的教学要求进行权衡。对于程序设计要求较低的专业可以选择较为浅显的教材,而对于要求计算机实践能力较强的专业,如电子技术等专业,应选择更接近工程实训的教材。
3 认真组织课堂教学
在实施教学活动时,要考虑学生的学习基础、认知能力、兴趣和习惯。在经过了一个学期的计算机应用基础的学习后,学生一般都具备计算机的使用能力,对于常用的一些软件如Office套件等都较为熟悉。也有部分学生在中学学过程序设计语言,具有一定的编程基础。但据笔者在教学中对学生的了解,对于程序设计而言,学生已具有的程序设计知识是很少且模糊的。因此,在教学时需要告诫部分学生不要因为已学过一点程序设计而自满。教师在教学中也要引导学生更深入地学习计算机专业知识,在教学中融入数据结构、操作系统及软硬件环境等相关知识。并在教学后期用综合性的有工程应用背景的题目来训练学生。这些补充内容能够帮助非专业的理工科学生快速建立起计算机的知识结构框架。
课堂教学中直观生动的讲解是提高学习效率的重要手段,特别是在教学时教师进行现场的编程和调试,对学生的学习有很大的帮助,但耗时较多,教师需要精心选择题目并“制造”典型错误。另外,教师需注意培养学生良好的编程风格,如规范的变量命名,加入适当的注释,锯齿形的缩进要求等。学生的模仿是学习程序设计的第一步,要让学生切身感受编程的整个过程培养学生良好的习惯。
4 编程与调试能力的培养
在教学中要注重训练学生用程序设计语言进行数据计算和逻辑分析的基本功,主要有数据结构的设计、算法的选择、模块功能的划分等。具体语法的教学要融入到编程过程中,通过大量实际应用的讲解和练习来巩固知识点,建立知识间的联系,最终牢固地掌握程序设计语言。
程序的调试既是学习程序设计的重点又是难点。数十行代码就会引起很多错误和警告,应该在教学中有意识地培养学生调试程序的能力,向学生介绍常见的错误类型和调试方法。因为教材中对此一般都是泛泛一说,所以教师需要对此着重补充。不会调试程序就谈不上程序设计。
程序中出现的错误通常可分为两类,“语法错误”和“逻辑错误”。“语法错误”指程序代码不符合该种程序设计语言的语法要求,程序调试出现错误时,一般都会在屏幕上提示出错信息,调试者能否看懂这些信息是修改错误的关键,教师在教学初始阶段需要较多的讲解,此种错误相对容易查找。学生比较困难的是“逻辑错误”,教师在讲解时需要综合运用多种调试手段,如查看程序结构、输出关键变量值、黑箱模块测试等。不论何种错误,这种程序调试能力的获得都需要大量的训练。在教学的开始就需要将调试程序列入计划,从编写最简单的程序就需要逐步地强调程序调试的方法。比如在学习流程控制语句时,就可以引入F8单步执行,Shift+F8逐过程执行,Ctrl+F8运行到光标处,通过监视窗口观察变量值等方法;在讲解循环时引入断点的设置方法;在讲解过程、函数时运用过程的调用和进入函数执行或者跳过函数执行的调试方法。在教学的后期引入其他一些高级的程序调试方法(如函数调用栈等)。
典型的题目可以帮助学生更好更快地掌握程序设计的知识和方法。在讲解新的知识点时所使用的示例要简短精炼,并且能够和学生所学的专业相结合,这样做能够极大地提高学生的学习兴趣。
5 结束语
本文结合自身的教学体会,介绍了VisualBasic程序设计课程在学时较少的条件下教学的安排、教材的选择、课堂教学的组织、程序调试能力的培养等。在实际的教学中证明这些方法是成功有效的。
[1]李进霞,常军锋.高职院校程序设计一体化教学探讨[J].中国现代教育装备,2010,9
[2]刘应成.新升本科院校学生程序调试能力的调查研究[J].现代计算机(专业版),2010,5
Abstract: VisualBasic programming language is one of basic courses in Lanzhou city university. This paper discusses about how to organize and design teaching forms in shortage class hour environment. The propositional choices of teaching methods are also made. The article focus on two points, the first is to discuss the teaching preparation and integrate several teaching methods in class such as teaching with multimedia, programming on-site; the second is to promote the student’s programming and debugging ability by using practical applications after-class. Our two objects are enhancing programming ability and laying the foundation for transfers the knowledge in self-learning process for students in the future.
Key words: VisualBasic programming language; teaching methods; programming and debugging ability
Cultivate students' programming ability in VisualBasic language course
Feng Zhongyi1, Dong Haitang2
1.Lanzhou city university, Lanzhou, 730070, China 2.Lanzhou jiaotong university, Lanzhou, 730070, China
2010-09-17
冯中毅,硕士,副教授。