信息与计算科学专业学生实践能力培养研究
2014-03-30肖强华
肖强华,宁 丹
(南华大学a.数理学院,b.计算机学院,湖南 衡阳421001)
信息与计算科学专业不是纯粹的数学专业也不是纯粹的计算机专业,是数学和计算机的一个交叉学科,要修的主干课程既包括数学类主干课程也包括计算机类主干课程。该专业是属于数学类的,应用性不强,注重于理论基础的学习。虽然有很强的考研优势,但是由于各种原因并不是所有学生都能继续深造,所以,针对就业方面的弱势,必须提高学生的就业能力。根据该专业的特点,最直接的办法是加强学生的计算机实践能力。
1 专业现状及存在的问题
信息与计算科学专业是一个理科专业,培养目标是学生既拥有雄厚的数学理论基础,又能使用计算机进行信息处理、二次开发、应用开发等。学生学习的主干课程分为两类:数学类和计算机类。计算机类的主干课程有:面向对象程序设计、数据结构与算法分析、操作系统、数据库原理及应用、网络原理及应用等。在整个专业的培养过程中,存在的主要问题在三个方面:(1)课程开设方面。课程之间的连贯性不强、开课顺序不合理、课时偏少、实践教学环节薄弱、重点不突出等。(2)培养方案方面。因为是理科专业,计算机课程的教学要求和考试要求比工科低,重点放在理论教学上,实训要求也低,所以教学效果不佳。(3)师资方面。大部分教师是数学类教师,计算机教师都是高校毕业的研究生,虽然有扎实的理论知识,但实践经验缺乏。
2 加强学生计算机实践能力培养策略
2.1 调整专业培养方案
一是专业主干课程的选择和开设。计算机课程的开设,受学分和专业所属范畴的影响,本专业的计算机课程必须要精练。怎么选择、开设计算机的一些基础的主干课程,学生在进行一系列学习之后能否干实事?例如,能熟练地使用某一门语言进行应用软件的研发。分析当前IT 业主流需要的情况下,我们选择了面向对象的程序设计Java 和C+ +,当然还有很多高效的语言.net、perl、pathon 等。开发应用系统的目的是能够处理数据(能被计算机识别的所有信息),所以我们必须知道数据的存取和管理,开设数据库原理及应用课程是必不可少的,在众多的主流的数据库管理系统中(如Access、SQL server、Oracle、DB2、MySQL),我们选择Sql Server。数据结构与算法分析课程是必须要学的。要想使学生能应用工程化方法和技术从事软件开发和项目管理,必须学习软件工程。当然还得学习其它的一些知识例如:操作系统、计算机网络原理及应用、编译原理和组成原理等,但这些只能作为选修课或供学生们自学补充。二是教学大纲、教案、讲稿的调整。调整教学大纲、教案、讲稿的最终目的是加强教学效果。例如,为了加强面向对象程序设计C+ +课程的教学效果,将该课程的学分由原来的3 学分调整到4 学分,并以加强该课程的实训时间和实训方式来达到提高实训效果的目的(例如和IT 培训公司合作、下一个学期继续开设C+ +的高级课程)。三是教学方法的改革。该类课程的特点是知识点多,知识点之间的连贯性不强,具有很强的理论性、实践性与应用性[1]。传统的教学方法和教材上的实例不能引起学生的学习兴趣,这样就大大地降低了教学效果。本文提出以案例教学为基础,结合项目教学,提高学生的学习兴趣,降低学习难度,以达到提高学生实践能力的目的[2-3]。
2.2 结合项目,案例教学
2.2.1 项目选择
项目的选择非常重要,因为它直接影响教学效果。首先,要考虑项目的规模、难易程度和适用范围。项目太大,不可能全部讲解;太小,会显得课程内容不充实;太难,学生学得吃力并容易打击学生的自信心,使其失去学习的兴趣;太简单,不能挖掘学生的潜力。一般来说,单独一门课程一个项目,连续性很强的课程共享一个项目。其次,要循序渐进。教师在讲授项目的时候必须以软件工程理论知识为基础,应用工程化的思想和方法进行教学。再次,要考虑项目讲授的内容。项目从需求分析开始,经过系统概要设计、详细设计、编码实现、测试到最后部署。并不是项目的所有工作都能在课堂上讲授,也并不是所有的项目内容都需要在课堂上讲授,所以需要反复斟酌项目讲授内容。最后,项目的来源。项目最好是来自于教师已完成的成功的横向项目,授课教师必须参与整个项目的研发,熟练地掌握相关的知识,甚至能单独完成整个项目,这样才有足够的能力指导学生。如果没有合适的横向项目,也可以和我们的实习基地单位合作,选取他们的成功案例,但必须得到实习基地单位的支持,拿到整个项目的文档和源代码,在开课之前组织授课老师一起学习、讨论,做到对项目了如指掌。
2.2.2 项目分解
该类课程的特点是知识点多、知识点分散和连贯性不强,具有很强的理论性、实践性与应用性。教材上的实例和教师临时编写的实例仅仅是验证单个知识点,例题之间没有连贯性和系统性,这就割裂了软件工程学科的整体性。项目是完整的,而授课时间分散于整个教学周期,这就需要将项目按照教学计划和知识点进行分解。项目的分解要以课程教学大纲和教学计划为基准,按知识点、重点和难点进行详细的分解。
根据案例的用途可以分为两类[4]:课堂理论教学用案例、课程实训用案例。课堂理论教学用案例必须与课程教学大纲、教案和教学日历保持一致,按知识点、难点和重点从项目中选取合适的代码段、程序文件或者子模块作为案例,案例和知识点的关系是多对多的关系,选取案例的时候要根据案例的难易程度和教学进度的关系循序渐进。实训用案例模块化分解,首先是分组,每3 ~5 个学生完成一个项目,然后根据集中实训的时间和次数确定每次实训需要完成的项目内容。
2.2.3 案例教学
有了理论思想做指导,实施起来就有了主线,但实施进程依然是非常重要的,可分为三个阶段:第一阶段,修改教学大纲、教案、讲稿。系(教研室)每学年必须组织集中式讨论,总结上学年的教学经验,结合当前社会的主题需求,针对教学中存在的缺陷和不足给出调整方案,并修改教学大纲、教案和讲稿。例如:主流编程语言每年都可能发生变化,同一个编程语言也在不断的完善,IT 企业对人才技能的要求每年也不尽相同[5]。第二阶段,选取项目、案例。首先,对具体项目进行认真阅读,并且要有个人的深度研究与分析,用软件工程的思想和方法作为理论指导。其次,需要尽快进入项目情境,了解、掌握项目中的主流技术、关键技术、重点和难点,了解项目的根本目的是什么、解决了什么样的实际问题、能带来多少社会效益,分析思考项目开发者的行为及对策的合理性与不合理性并给出理由[6]。第三阶段,总结教学效果、逐步建立项目案例库。归纳总结是教学的基本工作,根据课堂教学情况、实训情况和考试情况归纳总结教学效果,随着时间的积累逐步建立项目案例库。
2.3 案例库建设
随着时间的积累,使用的项目会越来越多,即使是同一个项目也需要不断的完善。分解项目得到的案例由于教学大纲、分解方法及教学效果的好坏也需要不断的完善,为了更好地教学,提升学生的实践能力,在科研经费允许的情况下积极建立项目案例库。
项目案例库以课程(表)、项目(表)和案例(表)作为三个主体对象。课程表以教学大纲为基础,包含各个章节的知识点、重点和难点等基本信息,能描述知识点和案例之间的关系、知识点与项目之间的关系、知识点之间的关系以及教学效果等。项目表描述项目与案例之间的关系、项目与课程之间的关系以及项目的基本信息。案例表描述案例和知识点之间的关系、案例和项目的关系以及项目的基本信息。项目案例库的建设有利于教师能回顾教学过程,在总结经验的基础上不断地解决问题,最终达到提高学生实践能力的目的。
3 结 语
本文根据南华大学数理学院信息与计算科学专业的具体情况,以提高该专业学生实践动手能力为手段,提出以案例教学为基础,结合项目教学,使得学生能应用工程化方法和技术从事软件开发和项目管理,最终达到提高该专业学生就业能力的目的。但是,培养方案、教学大纲、项目、案例以及教学方法等任何一个环节都直接影响教学效果,且该方法在以前的教学过程中并没有涉足,所以,如何在课程教学中发挥更大功效,还有待进一步的探索和实践。
[1]李秉璋.“面向对象程序设计”课程实践教学改革探索[J].计算机教育,2009(18):12 -13.
[2]宋 丽,吴玉华,蔡丽艳.任务驱动教学法在大学计算机基础教学中的探索[J].电脑知识与技术,2009(21):6002 -6003.
[3]徐奕奕,刘 琦.“案例先导”模式下程序设计实验课小组活动探索[J].高教论坛,2007(4):85 -87.
[4]张晓明,王俊社,郭立炜,等.项目化实训对本科生工程应用能力培养的探索与实践[J].河北科技大学学报(社会科学版),2010(2):1671 -1653.
[5]王 新,王 娟.软件工程案例教学法探讨[J].计算机与信息技术,2006(6):114 -116.
[6]张润莲.案例教学法及其应用[J].桂林电子工业学院学报,2004(4):102 -105.