软件工程专业Java课程设计实践与思考
2014-10-27刘美玲李熹黄文钧
刘美玲 李熹 黄文钧
摘要:从软件工程专业的培养目标出发,根据Java程序设计课程的特点,结合广西民族大学软件工程专业Java课程设计的教学实践,从课程设计的概念、大纲制定与方案设计等几个方面介绍Java课程设计的作用与具体实施方案,总结近几年课程设计的实践心得与教学经验。
关键词:课程设计;Java程序设计;实践教学;软件工程
0、引言
软件工程专业本科生的培养目标是面向软件产业界对软件工程专业技术人才的需求,培养具备扎实的计算机科学技术基本知识,受过良好的软件设计、开发和工程管理方法基本训练的应用型高级技术人才。
Java程序设计是软件工程专业的一门重要课程,该门课程的课程设计作为实践教学的重要环节,对培养学生的学习能力、问题分析与解决能力、实践创新能力起着重要的作用,同时还可以培养学生的软件工程思想,提高学生的软件开发能力。
1、什么是课程设计
课程设计是学生在学完课程之后集中一两周时间,以个人独立完成或团队分工合作等方式,围绕某一设计题目进行专业实践活动,旨在巩固、强化、拓展所学知识,提高学生实践操作能力和自学创新能力,培养学生团队合作意识。
课程设计是针对性较强的实践教学环节,将课程基本理论与工程实际相联系的综合训练,是培养应用型人才的一个重要步骤。课程设计可以使学生通过查阅资料、分析题目、确定设计方案等一系列步骤将理论知识与工程实践相结合,从而加深对所学知识的理解与巩固,提高整体思维能力、综合应用能力和创新能力。
2、Java课程设计大纲的制定
根据Java程序设计课程的教学大纲要求,制定相应的课程设计大纲,明确课程设计的目的、任务要求、时间安排、设计文档要求、考核方式、备选课题等。由于课程设计以个人独立完成为主,因此课程设计的难易程度应适当,保证学生在指定的时间内能顺利完成。根据计算机技术的应用范围与学生当前的知识储备情况,备选题目可设置多种类型,如小型桌面软件类、管理系统类、网络编程类等题目,当然,学生也可以自拟题目。课程设计文档是学生对自己的作品在系统总体结构、功能模块、程序流程图、类图、主要算法、遇到的主要问题与解决方法等方面进行说明的文字材料,同时要求学生在文档的最后总结在完成课程设计过程中的心得体会。
3、Java课程设计方案
Java课程设计的实施主要由选题、指导、考核3个环节组成,其中,选题是首要的步骤,指导是教师了解学生遇到的问题和完成进度并给予辅导建议的过程,考核是对学生的作品进行检查与评价。
3.1 选题
Java课程设计题目的设置要与软件工程专业培养目标和Java课程的教学大纲要求相一致。课题应尽量满足理论知识与专业技术相结合、软件工程理论与项目实际需求相结合的要求,既要全面覆盖理论课程所学知识,适合实践教学和启发创新,又要联系工程实际,并适应本专业的发展趋势。课题应具有一定的可操作性、设计性、灵活性、挑战性和趣味性。课程设计内容难易程度的确定要以中等水平的学生在规定时间内经过努力能完成任务为依据。
另外,课题应尽可能地与学生的实际学习、生活相关,这样学生在调研、分析设计时更容易了解需求。例如,学生成绩管理系统、图书信息管理系统、宿舍管理系统、ATM柜员机模拟程序等课题与学生的学习、生活相关,在使用计算机时常用的计算器、画图板、音频或视频播放器等都可以作为选题。
在学生明确课程设计的大纲要求后,根据自己对Java语言知识的掌握程度与感兴趣的研究方向,可以从课程设计大纲的备选题目中选择适合自己的题目,也可以自拟题目。
3.2 指导
在课程设计中,学生是主体,教师是主导,因此指导应讲究方法与艺术,最大程度地发挥教师的导向作用与学生的主动性与创造性。指导分为两个阶段,第一个阶段是对学生选题的指导,第二个阶段是学生在完成课程设计的过程中教师对学生的集中辅导与答疑。指导过程同时也是教师对学生进度的检查与监督过程。
1)选题指导。
教师在指导学生选题时要说明各种题目的难度与要求,根据学生基础与能力的不同,因材施教,推荐不同的题目,帮助学生把握好方向。
对于理论基础好、动手能力强的学生,可以给他们提供难度较高、有挑战性的题目;对于理论基础好动手能力一般的学生,难度较高、可操作性强的题目可以激发他们的探索精神、提高动手能力;对于理论基础与动手能力都一般的学生来说,难度中等、有可参照原型的题目较适合他们;基础差的学生要独立完成设计比较困难,因此教师可以建议他们选择源于教材、难度低的扩展性题目。
2)设计指导。
学生在课程设计的具体执行过程中主要由个人独立设计与教师指导两个部分构成。个人独立设计是学生利用课余时间对自己的课题进行设计实现。除此之外,在课程设计期间,教师安排每周2次,每次4~5学时在实验室集中指导与答疑。通过这样的方式,教师可以参与到学生的设计中,了解并开拓学生的思路,发现问题并引导如何解决问题,还可以发掘学生的潜能,同时也可以对整个课程设计的过程进行监督与管理,提高课程设计的质量与效果。
在Java课程的教学过程中,教师应该逐渐了解学生的学习态度与学习情况,因此,鉴于学生态度与基础不同,教师在设计的指导上也要因材施教,有针对性。对于理论基础好、动手能力强的学生,教师可以引导他们进行深入的探索与研究,进行创新性的设计,而不仅仅局限在基本设计要求上。教师要参与他们的设计中,听取他们的思路,对有一定创新性、合理的想法给予鼓励,并给他们提出建议,推荐有关的资料。由于这类学生对新技术的求知欲强,但新技术在最初应用时容易出现问题,所以教师在听取学生的思路时,要及时发现并纠正他们设计中的不合理成分,引导他们朝着正确的方向前行。
对于理论基础好动手能力一般的学生,他们在系统分析与设计中一般都能够完成得很好,但是编程实践的能力欠缺,因此教师通过启发式的方法引导学生,发挥学生的理论水平进行创新性的设计,在系统实现时给学生推荐参考资料,加强对基础知识的应用能力。endprint
对于大部分理论基础与动手能力都一般的学生,教师要帮助学生加深对理论知识的理解,同时在设计上多加指导与启发,引导学生更为完善地完成设计,并在设计中或多或少地表现出一些自己的特色,然后在编码实现时给予更多实际操作性的指导。
在课程设计的指导中,除了教师的指导,也可以采取“强帮弱”的形式,让能力较强的学生参与能力较差的学生的系统设计与实现中,促进他们之间的交流与帮助。
3.3 考核
学生在规定的时间内完成课程设计之后,教师要对学生的作品进行考核,考核的目的不仅仅是为了检查学生完成的情况,更重要的是给他们一个讲解其设计思路并演示作品的机会。考核主要采取学生讲解作品分析设计思路并演示说明作品、教师提问的答辩考核方式,这有助于学生加强知识的全面理解,培养其语言组织与表达能力、应变能力等。
答辩过程要求全班学生参加,分为学生自述、教师提问、学生提问3个环节。首先由学生针对其作品从系统分析、设计、关键技术与算法、存在问题等方面进行讲解,然后演示作品。之后,教师与其他同学可以对答辩人的作品从设计思路、功能、性能、代码与技术等方面进行提问。通过答辩,并结合学生的设计说明书、答辩水平、动手能力、独立分析问题与解决问题的能力、创新精神与学习态度等进行综合考评。对优秀设计者,给予表扬与鼓励,并号召其他同学学习,在评分时适当加分,以调动学生进行课程设计的积极性;对仅完成基本要求的学生,肯定他们的努力,并鼓励他们多实践;对未达到要求的学生,要求其进行整改或限期令其重做。
4、关于Java课程设计的几点思考
这几年Java课程设计的教学效果表明,课程设计为学生巩固所学知识并能学以致用、提高综合应用能力提供了重要的实践平台,教师也从课程设计实践教学中获得了一些有用的经验,为进一步完善课程设计教学提供帮助与参考。
1)注意因材施教,根据学生的基础布置不同的课题。
制定课程设计大纲时,首先制定一个对于大多数学生都比较合适的基本实践要求,然后再针对不同学生的基础设置难易程度不同的课题。这样对大多数学生来说,他们既不会感到实践要求高不可及,又感觉到有一定的难度,比较有挑战性。
2)及时发现并总结问题,积累经验。
在课程设计的整个教学环节中,教师要善于从中发现并总结问题,给予及时、到位的指导。例如,在指导学生完成课程设计时,对于大部分学生普遍遇到的问题,教师要及时发现并进行讲解;从学生上交的课程设计文档中发现学生利用面向对象技术进行程序设计存在的问题,分析问题产生的原因,以改进教学方法;在课程设计答辩考核之后,教师还要对全班课程设计的情况进行全面总结,不断改进。总之,在课程设计的任何一个环节,教师都要善于发现问题,总结经验。
3)教师要不断完善自己的知识结构。
从课程设计的大纲制定、任务布置到指导与考核都需要教师付出很多时间与精力,而且对教师的专业知识与能力要求也很高,因此要想保证课程设计的质量与效果,很大程度上取决于教师的责任心和知识结构的完善。
4)在课程设计中培养学生的软件工程思想。
JaVa程序设计是软件工程课程的先修课程,在讲授程序设计语言时,教师可以适当灌输一些软件工程的思想,让学生对软件开发的基本过程有初步的认识,避免学生陷入“学习程序设计课程只是学编程、软件开发就是编程”的思想误区。实际上,学生在课程设计过程中对系统进行分析、设计、编码、测试等都体现了软件工程思想的运用,程序设计是软件开发过程的一个阶段,通过课程设计能够加深学生对程序设计语言的理解,同时也能较好地培养学生的软件工程思想,为后续软件工程课程的教学打下良好的基础。
5)根据任务的大小,可适当采取小组协作方式。
在这几年的Java课程设计中,由于是面向大二学生,重点是培养学生的个人能力,因此任务的设计主要以个人能独立完成为依据。到了大三、大四,则重点培养团队合作意识。当然,如果课程设计的任务量大、难度大,就可以采取小组成员相互协作的方式完成。教学过程中可以采用分组比赛、奖励等措施来激励各组尤其是知识较弱的学生不断求上进,完善自我,增强团队合作意识和团队荣誉感。
5、结语
Java课程设计已经在软件工程专业的4届学生中进行了实践,教学效果表明,课程设计达到了提高学生动手能力、学习能力与综合应用能力的目的。但是,课程设计的教学改革任务重,如何通过课程设计实践提高学生的知识应用能力与实践水平、培养应用型人才是教学研究不断探索与实践的方向。endprint