陈钧 刘爱华
摘 要:针对VB课程教学中存在案例覆盖知识点较少的问题,本文提出了教学中增加贯穿于整个教学过程的项目式案例。通过对完整的项目式案例进行拆分为与各知识点内容相关的小案例,学生逐步完成分解案例并最后整合成为一个完整的软件系统,能更加理解各章节的知识点在项目中的应用。学生能够更全面地了解如何自主开发简单的软件系统,提高计算机编程的兴趣和能力。
关键词:VB课程;项目式案例;拆分与整合
中图分类号:G642 文献标识码:A
1 引言(Introduction)
Visual Basic(以下简称VB)是在Basic语言的基础上发展起来的一种可视化、面向对象和采用事件驱动方式的高级程序设计语言,它接近于自然语言和人类的逻辑思维方式,是目前所有开发语言中最简单、最容易使用的语言[1]。因此Visual Basic程序设计被许多高校作为培养学生编程能力的首选课程,但是在实际教学过程中存在着诸多问题。主要是两个方面:首先,VB语言不仅要掌握程序设计的常用控制结构(顺序、选择和循环)、常用算法、模块调用等内容,而且要掌握很多控件的属性、方法和事件等简单的面向对象编程方法。其次传统教材都是按照理论讲解、案例分析、实践练习的教学模式,各章节的内容基本独立,学生容易形成“只见树木不见森林”的感觉,不了解各个知识点的实际应用,在遇到课程设计和毕业设计等稍大的项目时经常完全不知所措。
2 项目式教学案例(Project-based teaching case)
传统的教学模式中,案例的选取往往根据章节的知识内容选取。例如讲解基本控制结构时采用四则运算考试程序作为案例,讲解控件数组时采用计算器作为案例[2]。案例简单、灵活,也具有一定的趣味性,但是问题是案例之间往往关联不大,学生不能把它们整合在一起。这样的案例能让学生初步了解和掌握本门课程中的基本知识,却不能系统、全面地认识和应用所学知识。学生学完该课程只能孤立地做简单的小案例,而欠缺将各章节知识结合起来开发一个完整的项目的能力[3]。
因此本文提出在VB课程的教学中增加实战练习的环节,引入一到两个贯穿于整个教学过程的项目式案例。采用项目式案例的教学方式,可以使学生通过项目式的完整案例学习到各章节的知识点如何运用到一个完整的软件系统,如打字游戏、模拟(温度)监控程序、学生信息管理软件等,让学生学会自主开发简单的软件系统,全面提高学生计算机编程的兴趣和能力。
项目式案例的核心内容就是将案例中的主要任务就是根据VB课程的教学内容进行拆分,分解到各章节成为适合本章节知识点的小案例,逐步引导学生由简到繁,由易到难,循序渐进地去完成;最后所有章节讲解结束,各个案例也整合成为一个完整的项目。在完成项目的过程中,学生不断地接近完整的程序,逐步获得成就感,并且不断提高发现问题、分析问题、解决问题的能力,调试技能的提高有利于培养学生自主思考、勇于开拓的精神。
2.1 项目式教学案例的选择
如何选择合适的项目作为VB课程的教学案例是决定教学效果的重要因素。首先要根据课程教学内容,选择知识点尽量覆盖较多章节的项目,如果不够可以选取另一个案例相互补充,然后才能有效地将项目中任务分布到各章节进行拆解。其次要根据学生的学习特点,选择学生学习或生活中能看到的生动有趣的项目,才能激发学生的编程热情。最后要根据应用型本科的特点“学以致用”,选择学生专业特点有关的项目,才能让学生感受到编程能力的提高与本专业的学习也是息息相关,相互促进。
下面就以打字游戏软件的开发为例介绍如何在教学过程中将项目式教学案例拆分成若干与章节知识点相关的小案例,最终整合为完整的软件系统的过程。实际教学中可以根据学生特点增加项目,例如工科类学生可以引入模拟(温度、压力)监控程序,文科类学生可以引入学生信息管理软件等。
2.2 项目式教学案例的拆分
VB教材需要包含的知识点主要包括基本控件、语言基础、三种控制结构、数组、过程、常用控件、界面设计、文件、图形技术、数据库技术[1]。数据库技术需要涉及SQL语句,通常非计算机专业的课时不够,一般作为演示了解内容,为下一步学习做个铺垫。
首先对于各章节的知识点应该非常了解。根据完整的项目中需要用到的知识点定位到各章节,然后根据知识点的要求做成适合于讲解进度的小案例。例如打字游戏是学生熟悉又实用的一款游戏。游戏规则是用户根据屏幕上下落的字符在键盘上按键,如果输入的字符匹配,字符消失;如果输入的字符错误,正确率下降。所有的统计信息均在游戏界面的右侧栏显示[4]。正确按键数达到一定程度将会增加游戏难度,并奖励生命值。字符下落至窗口底部时将减去生命值,当生命值等于零时游戏结束,如果打字速度进到了前10名,程序会自动弹出对话框要求输入姓名,以记入排行榜。正确率低于30%时将自动结束游戏。作为拓展可以增加时限模式,游戏开始时不设生命值而是设置10秒钟时间限制,依据字符下落至窗口底部时将减去2%的正确率,当正确率等于0时游戏结束;时间限制中正确按键数没达到要求,游戏结束,若达到了就增加游戏难度,并奖励一定量的时间。
第一个知识点是基本控件,讲解结束可以完成案例1,相关功能有:建立主界面窗体和游戏窗体;设计程序中的基本控件;设计初始化的字符标签;对象属性的设置;调用窗体的Hide、Show、Print等方法实现窗体的隐藏、弹出、显示内容。为了提高案例的趣味性,可以增加拓展内容:如尝试编写键盘事件,把屏幕上的字母去掉,知识点可以参考函数和后面章节中的键盘事件。
第二个知识点是VB语言基础,讲解结束可以完成案例2,相关功能有:声明所有要用到的公共变量(为以后介绍变量的作用域作为铺垫)和常量;用转换函数实现变量的转换;用数学函数Randomize实现初始随机字符;用Format()输出游戏指定格式的信息如正确率等。endprint
第三个知识点是控制结构,讲解结束可以完成案例3,相关功能有:编写主程序代码实现随机生成字符出现在随机的位置(此时还没有学习Timer控件,暂时不实现下降);修改键盘事件,消掉字母同时增加击键正确率;点击空格键可以暂停游戏,并显示提示信息。
第四个知识点是数组,讲解结束可以完成案例4,主要是改进案例3:以前用26个标签充当字母的方法可以使用控件数组来改进。这种方法使同类型同功能的控件具有相同的名字,只需用下标来区分,不仅能够动态创建,还可以改进字符匹配的算法,程序更加简洁;对随机产生的字母,需要进行校验,确保字母不重复出现在屏幕上。引入数组同时加强了对循环结构的应用和理解。
第五个知识点是过程,讲解结束可以完成案例5,主要是继续改进案例4:将重用代码或者功能独立的代码放入函数或过程中,并将一些公共函数和过程放到公共模块PublicMethod中,如字符添加过程CharAdd、字符清空过程CharClear、背景载入过程LoadBG等。
第六个知识点是常用控件,讲解结束可以完成案例6,主要是设置窗体中应用常用控件如单选框、复选框、列表框等并同时修改相关代码;加入时钟控件可以实现字符下落,且字符的增加和信息的输出均改由时钟控件控制。
第七个知识点是界面设计,重点内容是通用对话框。案例7是把通用对话框的几个常用功能融合到设置窗体的背景图片选项中去;设置中增加背景和字体选项;增加弹出菜单,可以选择继续游戏、重新开始、返回主界面、退出等选项。
第八个知识点是文件,重点是文本文件、二进制文件的访问和几个常用的文件操作功能,案例8是继续增加设置的配置文件读取保存功能和排行榜显示和保存功能。
第九个知识点是图形,本案例几乎没有涉及。建议补充模拟温度监控程序,可以根据模拟量绘制温度的动态变化过程,而实际监控系统中,利用传感器采集参数,然后将模拟量转换为数字量并传送给监控计算机[4]。
这样就完成了整个项目式案例的拆分。教材的编写遵循固定的顺序,但在实际拆分为小案例的过程中,根据项目的特点及教学需要进行适当的调整,可以将涉及后面章节的知识点提前渗透到案例中。前提是涉及内容不多,知识点单一不易单独举例的内容。比如函数、变量的作用域等。等讲解到相关知识点后,可以再介绍一些复杂的应用,这样顺其自然地领会一些比较枯燥的知识点的应用场景。
2.3 项目式教学案例的整合
所有知识点讲解结束后,整个项目就完成了。各知识点在完整项目中的应用也在实战训练中让学生感受得更加明确。
实际教学过程中需要首先将完整的项目式案例演示给学生,相当于软件工程中的原型系统,作为学生参考的实例。完成案例的过程中也可以鼓励学有余力的同学进一步的拓展,或者根据自己的兴趣拓展或者选择其他的项目式案例。
3 结论(Conclusion)
本文针对高校VB课程教学中存在的问题,提出了贯穿于整个教学过程的项目式案例的教学方法。选择知识点覆盖主要教学内容的项目,对项目根据各章的知识点拆分为与教学进程相适应的小案例,然后随着教学进程的开展,逐步扩充改进,最后完成整个项目。各章节既有适合本章知识点的小案例,又有项目式的完整案例,学生在学习理论知识的同时就能了解实用场景,学习过程更加具有趣味性和实用性,有利于调动学生的学习热情,激发创新精神,提高解决问题的能力。
参考文献(References)
[1] 龚沛曾,等.Visual Basic程序设计教程(第4版)[M].北京:高等教
学出版社,2013.
[2] 谭瑛.基于驱动式案例教学法的VB案例设计策略[J].计算机
教育,2012(13):53-57.
[3] 姚彬.浅谈案例教学法在VFP教学中的应用[J].湖北广播电视
大学学报,2008,28(6):127-128.
[4] 王栋.Visual Basic课程设计[M].北京:清华大学出版社,2004.
作者简介:
陈 钧(1976-),男,讲师,硕士.研究领域:多媒体技术.
刘爱华(1972-),女,讲师,本科.研究领域:网络技术.endprint