王西锋 张晓孪
文章编号:1672-5913(2009)02-0093-02
摘要:本文在分析网络编程课程特点的基础上结合学生实际情况,采用项目任务驱动的模式,从课堂教学、实验设置和考核机制三方面进行有益探索,以期达到学生理论知识和实践能力的全面提高。通过教学实践,证实该模式有利于培养学生动手编程和解决问题的能力。
关键词:网络编程;动手能力;实验教学;考核机制
中图分类号:G642
文献标识码:B
1引言
在计算机专业课程体系中,网络编程是一门实践性很强的课程,内容包括联网原理、UDP和TCP套接字编程,还有数据流、多线程编程和网络数据库应用等高级编程技术[1];而且,该课程主要以接近于实用的小型网络软件开发为主,注重编程能力的培养,是学生以后从事网络程序设计和开发的基础。然而,通过近年来对高年级学生和毕业生的调查,我们发现多数学生的问题分析能力较强,而动手设计和编程能力较差。为了解决这些存在的实际问题,就必须对该课程的教学模式进行探索。
2课程教学模式的探索
根据课程的特点,我们认为应当特别重视通过特定项目任务来培养学生编程解决实际问题的能力。因此,在课程教学、实验教学和成绩考核中,我们均以完成任务项目为目标,围绕着项目展开所有教学工作,以培养学生编写各种网络应用程序的实践能力。
2.1课堂教学的探索
传统的课堂教学,主要侧重于理论知识的讲授,往往会导致学生在实验环节的动手能力很差。针对这种情况,我们将项目任务驱动的教学方法引入到课堂教学中:一方面,课堂上通过讲解一些与学生生活、学习有关的项目实例来吸引学生的注意力,努力提高学生参与的积极性;另一方面,尽量精讲项目实例用到的理论,而将大量时间用来演示和分析任务项目的编程步骤,逐步讲解编程技巧,强调编程中可能出现的一些错误。这样学生通过观看教师的操作演示,在实验时就可以解决相似的问题。比如,在讲网络数据库系统开发中“学生成绩管理系统”的时候,我们就只详细地讲解和实现了“学生管理”功能,并且分析了容易出错的数据库操作语句,其他的如课程管理、成绩管理和学期管理等功能,大部分学生就可以自己在实验时完成。
通过实践,我们发现在课堂上采用这种方式,可以提高学生的参与积极性,也有利于培养学生的动手能力,同时也减少了实验时对同一问题的反复询问和指导。
2.2实验教学的探索
传统的实验教学中,实验内容往往围绕课堂内容来设置[2],学生上机照书输写程序,很难提起学生的学习兴趣。针对这种情况,围绕项目任务驱动的目标,我们在教材选用、实验内容设置、提高兴趣等方面也进行了一些有益的尝试。
1) 教材选用。当前,网络编程的教材很多,有些注重于理论讲解,也有些就是源代码叠加,还有些错误很多。因此,给学生选择合适的教材就很重要。根据大部分学生编程基础不是很好的实际情况,我们选择了高等教育出版社的“十五”规划教材《JBuilder网络编程》,该教材全书以项目开发作为编写重点,项目难易适中,语言通俗易懂,可以满足不同水平学生的要求,从而能很好地培养学生的项目开发经验。
2) 精心设计实验题目及其要求。根据教材内容,我们对实验大纲进行修订,用综合性和设计性实验项目代替验证性项目,同时鼓励学生可以根据碰到的实际问题自行设计一些实验项目,从而调动学生的积极性。实验教学中,我们的实验任务设置如表1:
在布置每部分的实验时,我们充分考虑不同学生之间的编程能力及兴趣差异(比如,有些学生中学就学习了一些计算机软件知识,而有些学生则上大学才开始接触计算机),安排每个项目由2-3个学生来完成,其中要求组长的编程基础相对要好一些,以强帮弱,组长根据小组的编程水平来选择题目的难易并负责组内的具体分工。通过这种办法,每个项目小组的学生之间可以互相帮助,共同提高,从而也培养了他们完成项目时的团队协作精神。
3) 加强上机实践和总结。对于一门实践性很强的课程,必须保证有足够的时间进行编程练习。实验过程中,学生根据实例项目进行编程和调试,有疑问可以随时向老师询问。每次做完实验后,要求学生提交相应源代码并填写实验报告。实验报告包括有实验内容、目的、要求、存在问题及解决方法、个人体会等,这样的内容设置一方面有利于学生总结、记录完成项目任务的过程,加深对实验内容的理解;另一方面,老师也可以通过实验报告及时掌握学生的完成情况和存在的问题。
4) 兴趣是学习最大的动力,教学中我们同样注重对学生兴趣的培养。在平时,我不断地提高和更新个人知识储备,在教学的空余中,给学生分析计算机方面的热门技术现状和就业市场的需求,提高了学生对专业的认同和学习的兴趣;为了加强师生、生生之间的互动,我采用班级公共邮箱,在网络邮盘上存放一些最新的资料供学生课外下载、学习,学生有问题可以发邮件,老师和同学都可以进行解答和补充,调动学生参与的积极性。
5) 积极参与各类实践活动。针对部分完成基本教学任务、学有余力的学生,我不断鼓励他们通过一些专题网站(如Sun 中国技术社区等)自主学习,在课堂外得到更多的锻炼收获。同时,我们也鼓励学生参加学校和社会上的各种实践活动,比如这个班就有3个学生报名参加了学校的大学生科技计划和网页设计与软件开发比赛并取得比较好的成绩;还有一个同学应用NetBeans环境独立完成了教材选学内容,实现了“恋雪局域网P2P文件共享系统”的所有功能,并添加了局域网聊天的功能,从而得到了很大的锻炼。
2.3考核机制的探索
为了引导学生主动学习,实现项目任务驱动的目标,对于课程的考核机制,我们也进行了一些初步的有益探索:
1) 首先,加大了实验项目考试在总评成绩中的比值(调整为占总成绩的50%)。实验考试重点考核学生综合运用所学知识分析和解决实际问题的能力,我们要求每个学生在7天时间内独立完成一个实践项目,并要求提交开发文档。
2) 其次,学生可以选择布置的题目,也可以自拟题目来完成。根据我们教学和生活中的实际情况,就有部分学生开发了网络编程上机考试选题系统、课程问题交流平台、课程成绩处理系统、邮件收发系统等比较实用的项目,这些都和我们的学习生活息息相关;虽然学生完成的项目作业与实际使用还有一定的差距,也存在一些小问题需要完善,但大部分功能都已经实现。这对学生后面的学习和工作,有着非常大的益处。
3) 最后,由老师根据学生程序的难易、完成的程度、现场提问的情况并结合其个人一个学期的进步等来综合评定实验成绩。
通过实验作业考核,在该年级70个学生中未能完成任务的有6个学生,占总人数的8.6%;项目功能全部完成的有9个同学,占13%,其他78.4%的同学都完成得自己作业的大部分功能。从结果上看,大多数同学的编程水平都有了一个较大的提高。
2.4尚待解决的问题
在课程教学的探索中,我们总结了一些成功的经验,如通过项目来吸引学生参与;但同时,也发现一些新问题:如部分学生编程基础较差,实验时间不足且不连续,实验考核缺乏客观标准,个别学生存在从网上下载源代码等。根据这些存在的问题,我们将对教学模式进行修订和完善,然后应用到后面的学习过程。
3结束语
在我校2006级网络应用专业网络编程的教学过程中,我们采用了这种教学模式对课程教学进行了一次有益探索。通过教学实践研究,表明这种方式能够在一定程度上促进学生网络程序分析和设计等综合能力的提高,值得进一步探讨。
参考文献
[1] 聂哲,袁梅冷,肖正兴. JBuilder 网络编程[M]. 北京:高等教育出版社,2006.
[2] 刘淼,刘怀亮. 计算机专业《网络编程》实验教学改革探索[J]. 实验室科学,2007,(2):25-27.