计算机专业本科毕业设计的思考

时间:2022-09-12 06:15:24

计算机专业本科毕业设计的思考

摘要: 毕业设计是高校教学中重要的实践性教学环节之一。但是当前计算机专业的毕业设计中存在选题不科学,管理不规范等问题。作者在分析这些问题的基础上,提出了根据学生的实际情况确定毕业设计的题目,使用软件工程的思想指导毕业设计的全过程,较好地解决了这些问题。

Abstract: The graduate thesis design is an important element of practical teaching. But there are some questions in the graduate thesis design of computer specialty, such as unscientific subject, irregular management, and so on. On the basis of analysis of these issues, the author proposed the subject of graduate thesis design should be determined according to the student's actual conditions. Then the students should do the graduate design using software engineering technology.

关键词: 计算机;毕业设计;软件工程

Key words: computer;graduation design;software engineering

中图分类号:G64文献标识码:A文章编号:1006-4311(2011)04-0239-02

1毕业设计的目的

毕业设计是高校教学中重要的实践性教学环节之一,是对学生四年学习的专业知识和研究能力,自学能力以及各种综合能力的检验。通过毕业设计的形式,可以使学生在综合能力,治学方法等方面得到锻炼,使之进一步理解所学专业知识,扩大知识面[1]。因此,毕业设计是高等教育中培养学生综合运用所学理论知识和技能,解决实际问题能力的重要环节之一,是衡量毕业生是否达到相应学力层次的重要依据。是考察学生是否能够将课堂知识转化为实践技术,灵活运用所学知识的手段。

计算机是一门实践性很强的专业,因此,计算机专业的毕业设计更加强调理论与实践的结合。毕业设计的主要目的是:培养学生综合运用所学的基础知识,独立解决一般的计算机应用问题的能力,使学生受到一次计算机应用人员所必须具备的基本能力的训练,也使学生在思想作风、学习毅力和工作作风上受到一次良好的锻炼[2]。

2毕业设计中存在的问题

先来看一个毕业设计的例子:教师A根据自己的教学科研情况确定毕业设计题目为使用C语言设计一个自动机演示系统。他指导的学生B已经找好工作,毕业后将到一家网络公司工作,进行电子商务网站的设计与开发。学生B提出能否将毕业设计题目换成网站开发相关的内容,教师A不同意。学生B就开始按照自己的理解,进行相关代码的开发。等编码工作完成后,学生B将编码情况向教师A汇报,教师A对学生的设计进行审查,并指出存在的问题。学生B对各个模块的设计及实现进行微调。然后开始毕业论文的写作及答辩准备工作。等到进行答辩时才会第三次露面。

这是一个典型的失败的毕业设计,主要存在几个方面的问题。

2.1 在确定毕业设计题目时,指导教师只是根据自己的教学科研情况指定题目,不考虑学生的实际情况,学生只能被动地适应老师的要求。

2.2 老师只关心毕业设计的完成情况,不进行有效的指导。毕业设计完全变成了学生独自的行为,指导老师不参与毕业设计的过程,也就无法了解到学生在毕业设计中遇到的问题。学生只向指导教师提交最终的代码和毕业论文,而学生是如何完成代码和论文的,指导教师无法了解。这样会产生各种问题,如从网上下载代码,抄袭别人的论文等。这样的毕业设计并不能有效地提高学生的水平,对学校的声誉也将造成恶劣的影响。

2.3 重代码轻文档。由于学生只提交最终代码和毕业论文,容易造成学生不严格遵循软件开发的工程方法,只重视编码,忽略需求分析。在了解项目内容后,在软件开发中跨越了概要设计、详细设计、模块设计,直接进行编码。这种无序的软件开发方法的直接后果就是开发效率低下,代码复用性差,并导致系统最后可集成性差。这样的毕业设计和学生的即兴编程没有区别,对提高学生走向工作岗位的适应能力,毫无帮助可言。

反之,在指导毕业设计的过程中片面地强调软件工程理论,把学生的毕业设计完全变成相关文档的书写过程,而不考虑相关编程技术和技巧的训练也是不正确的。

作者针对计算机专业毕业设计中存在的上述问题,进行了认真的思考,提出了自己的一些想法。

3根据学生的情况确定毕业设计题目

确定好的题目是学生高质量完成毕业设计的基础[3]。毕业设计安排在大学四年级的第二个学期,这时大部分学生已经确定了毕业后的工作意向,并且临近毕业,学生很难专心在学习上。如果毕业设计的题目和他以后的工作学习没有多大关系,学生往往会抱着应付的态度,完成任务就可以了,不能起到很好的效果。

而如果题目合适,毕业设计可以看作是学生工作前的一次岗前培训,那学生的热情和积极性当然是不一样的。因此一定要根据学生的实际情况设计合适的题目。

如果学生下一步将攻读硕士研究生,那么他的首要任务就是夯实基础,为下一步的学习做好准备,因此毕业设计的题目应该偏重于理论研究。

如果学生毕业后将到大型企业工作,要重点指导学生学习如何使用软件工程的理论进行规范的软件开发,并设法提高学生的团队意识和合作精神,以适应日后的工作环境。如果毕业后将到小型企业工作,则应该重点加强学生独立解决问题的能力以及编程的技巧和技术的培养。

另一方面,计算机专业毕业设计的题目往往局限于算法设计或数据管理等有限的几个方面。而针对目前社会上需求强烈的手机应用,网络游戏等却较少涉及。但其实如果学生具有了这些方面的工作经验,对他们毕业后的工作很有意义的,同时也是学生很感兴趣的研究方向。应该勇于在这些方面进行尝试。

总之,确定毕业设计的题目应该是指导教师和学生互动的结果,根据学生的情况和兴趣设计合适的题目是一个成功毕业设计的基础。

4毕业设计过程中指导

确定了毕业设计的题目后,就正式进入了毕业设计阶段。学生在毕业设计中遇到的困难主要来自两个方面:①技术上的困难,例如算法的实现,数据结构的设计等。②过程上的困难,例如进度的控制,团队成员间的合作与协调等。

传统上,老师更多的是对学生进行技术上的指导,帮助学生将系统的框架建立起来,甚至将重要的数据结构设计好,学生要做的就是进一步的细化设计,编码完成整个系统的实现。

但其实经过大学四年的学习,学生应该已经具有自己独立完成一个模块甚至是整个系统的设计和实现的能力。即使在实现的过程中,遇到了一定的困难,也应该鼓励学生通过上网搜索等方法独立解决问题。

学生真正缺乏的是实际的工作经验和团队合作理念。因此应该在这些方面加强指导。因此,毕业设计的指导应该主要关注如下几个方面:

4.1 重点指导学生进行良好的系统设计,特别是模块间的接口设计让一个好学生独立完成一个小的系统的设计并不困难,但让多个好学生共同完成一个中型系统的设计就非常困难了。学生往往没有相互合作完成一个项目的经验,甚至不知道模块接口为何物。但这又是学生毕业后,在实际的工作中经常遇到的非常重要的问题。因此,一定要将毕业设计的题目划分成多个有一定耦合性的模块,分配给多个学生,并指导学生自己进行模块接口的设计,让他们接受这方面的锻炼。

4.2 软件工程在毕业设计中的运用软件工程(Software Engineering)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。从软件工程的角度去指导学生进行毕业设计,使学生认识到软件工程在系统开发过程中的价值。

单打独斗惯了的学生,拿到一个题目后,喜欢马上进行代码的编写,遇到问题后推倒前面的设计,重新开始新一轮的编码。对于很简单的题目这样做当然能够完成任务,但对于真正的大型项目,这种方法显然好、是不行的。

按照软件工程思想,软件开发的过程分为需求分析、程序设计、代码实现,软件测试和软件维护几个阶段[4]。只有认真完成了前面的阶段的工作后,才能开始下一个阶段的工作。例如要进行编码,就必须先进行需求分析和概要设计,对系统的方方面面可能遇到的问题,都进行了充分的分析之后,才能够开始。

毕业设计可以将所学到的软件工程的知识进行实践,了解真正公司化的多人协助的软件开发过程,从而为毕业后的工作打下坚实的基础。与软件工程的几个步骤相对应,可以将整个毕业设计分成几个阶段,确定每个阶段的目标和任务。指导教师分别检查每个阶段的完成情况,全程参与学生的毕业设计。

4.3 重视系统的测试工作测试是计算机程序设计的一个重要环节。但以前的毕业设计对此往往缺乏重视。学生完成了代码设计后,进行一次简单的试运行,如果没有大的问题,就认为系统设计完成了。反正在毕业答辩的时候,也不要求运行程序,即使有不完善的地方也不会被发现。

这种做法是非常不正确的,对培养学生严谨的工作态度是非常不利的。如果老师不进行强调,学生认为测试是可有可无的,他以后工作中,就会更加不重视测试工作,软件的质量将不能得到保证。因此,必须留出一到两周的时间进行系统的测试。

5总结

本文结合作者多年指导毕业设计的经验,提出了计算机专业本科毕业设计过程中可能遇到的一些问题,并提出了一些意见和建议。

重点强调了根据学生的实际情况选择毕业设计题目的重要性。然后又分析了毕业设计过程中经常会遇到的几个问题:注重系统设计的指导,技术性的问题让学生独立解决;强调软件工程在毕业设计中的指导作用;重视测试在系统开发中的意义。作者多年指导毕业设计的经验表明,通过这些方法的运用,使学生通过毕业设计学到了更多工作中有用的知识,提高了毕业设计的价值。

参考文献:

[1]王志英.实践教学:计算机人才培养的重头戏[J].计算机教育,2004,(9):60-63.

[2]王玉锋,刘保旨,李雪梅等.计算机专业本科毕业设计的探讨[J].计算机教育,2010,(1):77-79.

[3]赵旦峰,李刚.论科学选题在本科生毕业设计中的重要性[J].黑龙江高教研究,2006,(10):109-110.

[4]伍华健,洪月华,刘力.谈软件工程在毕业设计指导与学生能力培养中的运用[J].教育与职业,2006,(24):125-126.

上一篇:东源县旅游资源的空间竞争分析 下一篇:浅谈在高职院校开展野外生存训练的可行性