Windows程序设计的辅助实验平台建设

2014-04-29 12:24杜晓晨冯海林徐爱俊
中国信息技术教育 2014年1期

杜晓晨 冯海林 徐爱俊

摘要:针对Windows程序设计课程实验环节存在效率不高的状况,笔者分析了该课程的实验特点与浙江农林大学教学实际,设计并实现了一个辅助实验平台软件,尝试以技术性手段来提高学生的实验环节效率,并将其应用于实验环节,取代传统的实验模式,取得了较好的实践效果。

关键词:辅助实验平台;实验效率;技术性手段

● 引言

Windows程序设计是高等院校计算机科学与技术专业中的一门必修课。该课程在计算机专业的课程体系中起着承上启下的作用,它将学生在低年级掌握的基础课知识,如C/C++、数据结构等与平台无关的编程语言和方法与Windows操作系统相结合,使学生能在Windows上开发可视化应用程序,从而顺利进行高年级专业课的学习,如数字图像处理、计算机图形学、数据库原理等(这些课一般都在主流的Windows上进行实验)。[1]

Windows程序设计课程的应用性极强,旨在提高学生的编程能力,实验环节尤其重要。但该课程的学时数一般较少,因此,如何在有限的实验环节中,提高学生的实验效率,使学生尽可能多地积累Windows编程经验值得进行教学研究和探索。

● 实验环节现状分析

Windows程序设计课程的实验环节效率不高、有待优化主要体现在以下几个方面。

1.题目设计缺乏个性化

实验题目设计是本课程实验环节中的一个重要方面。[2]以往同一个班的实验题目是一样的,但由于学生间对知识的掌握程度和编程能力客观上存在一定差异,这就会让一部分学习情况较好的学生觉得实验收获不够,而另一部分学习情况相对较差的学生却觉得实验太难,从而导致实验效果不能让所有学生都满意。

2.题目要求的表达不够直观

与C、C++、数据结构等基础编程课程不同,Windows程序设计的实验最终结果是可视化应用程序,实验效果带窗体界面,有些甚至还有动画效果、用户交互等功能。[3]因此,传统的实验指导书用文字说明实验题目要求的形式不利于学生快速、直观地理解实验题目的要求,有时学生实现的功能甚至与题目要求不符,从而降低了实验的效率。

3.存在重复性编码

计算机专业的多数基础编程课程,如C、C++、数据结构等课程的实验,学生可以直接在空白的main( )函数中编写功能代码。[4]而Windows应用程序开发则不同,想要实现功能,必须先实现基本Windows窗体。一个基本的Windows窗体中,涉及了窗体的定义、注册、创建、显示,以及Windows消息循环、消息响应函数编码等环节,需要近100行代码来实现。因此,在以往的实验环节中,不少学生尤其是学习情况相对较差的学生在实现Windows基本窗体的过程中就花费了大量宝贵时间,导致实验效率低下。

● 基于辅助实验平台的实验模式

针对以上在实验教学过程中发现的问题,结合Windows程序设计课程实验的特点和浙江农林大学计算机科学与技术专业学生的实际情况,笔者尝试以技术性手段来提高Windows程序设计课程实验环节的效率,设计并开发了一个Windows程序设计的辅助实验平台软件,它具备实验题目自选模块、实验效果演示模块、辅助程序开发模块、编程资源模块,能有效提高学生的实验效率,改善实验教学效果。

1.实验题目自选

为了实现个性化实验,使不同学习程度的学生都能够有适合自己的实验题目,笔者根据学生情况制定了难度不一的实验题目和详细程度不一的实验指导教程。浙江农林大学的Windows程序设计课程共48学时,其中理论教学32学时,实验教学16学时,针对这8次实验,分别设计了难、中、易三套实验题目。

同时,将这三套实验题目集成于本辅助实验平台软件中,这样,学生们就能方便地选择适合自己类型的实验方案,各取所需。此外,对实验指导教师、实验室人员来说,实验管理也比以往更方便了,只需在每台电脑预装本辅助实验平台软件,无需网络和纸质的实验指导手册,学生就能查看实验题目和实验指导教程。

2.实验效果演示

为了更直观表达实验题目的要求和预期效果,减少学生在理解题意上花费的时间,从而提高实验效率,本辅助实验平台软件实现了实验效果演示模块,不再使用实验指导书这种不适合本课程的传统实验模式。

实验效果演示模块集成了每次实验的所有实验题目,能调用每个实验题目相对应的Windows应用程序可执行文件,从而形象地表达实验要求。学生可通过本模块方便地预览预期的实验效果,在实验完成后能与之比较实验效果,验证编程环节是否正确。如图1所示,当点击“效果演示”后,预期的动画实验效果能直观展示。

3.辅助程序开发

SDK编程是通过C/C++语言,以消息处理的编程方式,直接调用Windows提供的API函数进行程序开发。它是底层的Windows程序设计方法,能让学生加深对Windows编程的理解。一般在Windows程序设计的教学中,都先介绍SDK编程,然后介绍基于MFC、ATL类库的编程方法。然而,与基于MFC、ATL类库的编程模式中,VC++会自动提供应用程序基础框架不同,SDK编程模式中,VC++不提供基础框架代码,要实现实验题目,必须先实现窗体基础框架。这是学生在初学Windows编程时的障碍之一,如何让学生只关注功能本身,尽快实现实验题目,从而培养编程兴趣、提高编程信心并提高实验效率,值得探讨。

笔者尝试利用辅助实验平台软件提供辅助程序开发模块,该模块集成Windows应用程序的基本框架,能显示基本的窗体,并且学生可以在本软件上可视化添加每个实验的功能代码,最终再由本软件导出最终的源程序。这样,学生在实验过程中,只需要专注于实验相关的功能,进行事件响应部分的处理代码即可,从而大大减少了重复性代码的编写量,切实提高了实验课时的利用率。如图2所示,当点击“开始编程”后,空白的输入框内自动生成了基本框架代码,在输入框内添加窗口处理代码完成功能代码编写后,再点击“生成.cpp文件”(如图3),即可导出最终的源程序。

4.编程资源

Windows程序设计的实验环节中需要用到一些编程资源,如位图、图标、第三方控件、类库等。本辅助实验平台软件除了实现以上3个主要功能模块之外,还将集成所有实验题目需要用到的Windows编程资源,这样学生就不必花大量时间去搜索编程资源,从而能进一步提高学生的实验效率,同时也能方便实验指导教师、实验室人员的管理。

5.基于辅助实验平台的实验流程

本辅助实验平台软件通过软件的形式覆盖学生实验时的各个环节。通过本实验平台,改变了传统编程类课程的实验模式,学生可自行选择不同难度的题目和详细程度不一的实验指导,实验要求也更直观、明确,实验环节中编程的效率也得到相应提高。学生基于本辅助实验平台软件进行实验时的流程如图4所示。

● 建设效果

笔者以浙江农林大学计算机科学与技术专业101、102、111、112共四个班级为试点,对计算机101、102班采用传统的实验教学模式,而对计算机111、112班则采用辅助实验平台软件的实验教学模式。为了验证本辅助实验平台软件这种技术性手段是否能提高学生的实验效率,本文统计了每次实验学生能完成实验题目的平均数量。此外,为了更进一步分析本辅助实验平台软件对不同学习状况的学生在实验环节的受益程度影响,将学生分为学习状况相对落后、学习状况一般、学习状况较好三类(按C、C++、数据结构课程的考试得分)分别进行了统计,统计结果如下表所示。

从上表可以发现,采用了本辅助实验平台软件覆盖整个实验环节后,学生能完成实验题目的平均个数上升明显,就整体而言,由原来每次实验平均只能完成2~3个题目,上升到每次实验平均能完成3~4个题目,实验效率提高了29.2%,说明本文提出的以技术性手段提高学生实验效率的教学方法是有效的。

此外,学习情况相对落后和一般的学生通过本平台实验效率分别提高了60%和30.4%,说明辅助实验平台对这两部分学生影响较大,能帮助他们更快、更好地完成实验,积累更多的Windows编程经验,这与本平台的设计初衷一致;学习情况较好的学生通过本平台实验效率提高了8.6%,说明辅助实验平台对这部分学生影响不大,即使没有平台,这部分学生也能较好地完成实验任务。

除了以上的数字结果,从学生在实验过程中的表现及课后的反馈情况来看,本平台能让学生更快看到自己的实验成果,从而能更快地入门Windows编程,在适应了Windows程序设计基本方法和技巧后,对本平台的辅助程序开发模块依赖会慢慢降低,在后半学期绝大多数学生已经能熟练地从头开始SDK编程;另外,本平台不但让学生完成的实验题目数量增加了,更重要的是让学生在初学时就树立了学好Windows程序设计的信心、激发了兴趣和热情,这种影响是潜移默化的。

● 结语

本文尝试以技术性手段设计并实现了一个辅助实验平台软件用于Windows程序设计课程的实验环节,取得了良好的实践效果。下一步的工作是继续探索实验环节能改进或优化的环节,进一步完善辅助实验平台软件;同时,将技术性手段改进教学或实验的思路推广、应用到其他的计算机专业课程。

参考文献:

[1]方敏,张胜.Windows程序设计(第5版)[M].北京:清华大学出版社,2010:12-15.

[2]方昱春,陈讯雷,张景峤.Windows编程课实践教学探讨[J].计算机教育,2010(18):153-155.

[3]杨程,陈念年,李郁峰.游戏开发驱动的Windows程序设计课程教改探析[J].教学研究,2012(2):92-95.

[4]蔡学森,陈向瑞,戴金波.计算机专业课实验教学改革与创新人才培养[J].长春师范学院学报(自然科学版),2009(8):134-136.

基金项目:浙江农林大学重点教改项目“《windows程序设计》实验平台建设”(ZD1205)。