何迎生 鲁荣波 陈国平 段明秀
摘 要:本文分析了目前高校计算机专业教学中存在的一些问题,探讨了ACM竞赛平台在解决这些问题和学生创新能力培养中的重要作用。
关键词:ACM;创新能力;自主学习
中图分类号:G642 文献标识码:B
1引言
ACM国际大学生程序设计竞赛作为一项世界性的竞赛活动,在信息技术界具有超凡的影响力,竞赛的很多题目都是在实际的工程应用中遇到的问题,较全面的考验学生对知识的综合运用能力,有利于提高学生分析问题和解决实际问题的能力,通过竞赛可以系统的检验学生的英语水平、数学水平和计算机编程等方面的水平,而这些正是就业竞争力的最好体现,因此,探讨这一平台究竟能为我们的专业教学产生哪些积极的促进作用是十分有意义的,本文就这方面进行讨论。
2计算机专业教学面临的问题
目前,计算机专业教学有许多众所周之的问题,其主要表现有一下几个方面:
(1) 人才培养模式陈旧,理论教学与实践教学学时分配不合理
“灌输知识—接受知识” 是旧的教学模式,老师传授什么学生就接受什么,这样培养的人才缺乏创新能力和竟争力。而目前很多计算机专业课程课程属于实践操作性课程,强调学生的实际动手能力,为了加深对理论知识的理解,我们要在教学中强调实践教学过程,理论教学和实验教学的学时分配要作调整,让学生在良好实践训练的基础上,对理论知识的理解更透彻。
(2) 课内实验过于模式化,难于培养学生的创造性思维
首先是实验教学内容陈旧,验证性、描述性实验多,创造性、设计性、综合性实验少。其次,实验内容大多脱离实际软件工程过程,更谈不上对实际问题的解决,导致实验效果不好,起不到对学生创新能力的培养。另外,在实验教学指导方法上,教师包得过多,通常是由教师准备好实验环境,编写好详细的实验指导书,设计好实验报告框架,学生只要按照已有的设计和统一的方法完成实验。
(3) 缺乏协作学习能力和团队意识,学习效率低下
当今的软件的开发往往需要几人、几十人、甚至成百上千人协作完成,任何一个软件人员都不可能掌握所有的专业知识,团队成员如何合理的分工,按照成员各自的特点协作学习,力求发挥团队的最大力量是至关重要的。在我们的教学过程中,这样的团队协作方式学习环节非常少,虽然有部分课程的课程设计环节也采用了分组进行的模式,但在具体的操作过程中由于学生水平的参差不齐,往往有部分学生在团队中只是简单的挂了个名,并没有真正的参与,也就谈不上团队意识和协作学习了。
(4) 课程考核模式陈旧,对学生实践能力培养起不到激励作用
课程考核,多数采用传统的考核模式,考试内容局限于教材中的基本理论和基本知识,缺乏对学生知识、能力与素质的综合考察,考试题型也不尽合理,客观题比重大,综合思考题、案例分析题少,不利于学生综合应用能力的培养和创新精神的形成。另外就是考试形式单一化,在教学过程中理论教学和实践教学是相辅相成的,但在课程考试中往往只有“笔试”而无“机试”,在课程总评成绩的计算中实践部分所占的比重很小,有些甚至没有把它算入考试成绩。这样的考试模式只能助长学生死记硬背的学习风气,制约了学生实践能力的培养。
3ACM竞赛平台在专业教学中的作用
我们几年来的实践经验证明,ACM竞赛平台在学生的专业学习中能起到积极的促进作用,对以上提到的专业教学中存在的问题有较好的改善作用,具体表现在:
(1) 培养学生自主学习能力,弥补人才培养模式的不足
在人才培养方案的制定过程中,总会受到很多因素的制约,例如学校的总体原则约束,对理论学时和实验学时的分配难于做到完全合理,为了解决这个问题,只能通过学生的课外自主实验来实现。学生在竞赛的准备过程中,根据他所接触到的各类题目,会自主的去选择学什么、怎么学,他们自己设定学习目标,分析学习内容,制定学习计划,获取学习资源,管理学习过程,为了能够在竞赛中取得良好的成绩,他们会充分的利用课余时间,在竞赛平台下大量的做题,虽然有些知识的学习很枯燥,但是由于在攻克题目中行之有效,又是学以致用,他们常常会乐此不疲,直到把每一个知识点都理解透彻,这在无形中正好弥补了我们教学中的不足,对我们的教学工作起到了良好的促进作用。
(2) 改革实验教学模式,提高实验教学质量
对于那些与编程语言相关的专业课程,我们可以借助ACM竞赛平台改变传统的由任课教师大包大揽的实验方式,任课教师可以把课程实验任务发布到竞赛平台中,对实验任务的选择可以更具梯度,更贴近工程应用。传统的实验教学模式下学生的实验过程是难于为教师掌握的,实验的结果也无从考证,老师只能从学生提交的实验报告中了解到有限的一点信息,而部分学生可能并没有真正的认真实验,只是简单的抄袭别人的实验报告,因此实验效果也就无法保证。而借助竞赛平台后情况就完全不同了,学生提交的不再是简单的实验报告,而是具体任务的程序实现代码,学生对相应知识点是否真正掌握从他的提交结果一眼就可以看出,通过分析他们提交的代码,教师可以发现问题的关键,及时掌握学生对课堂知识的理解和掌握情况。同时学生也能相互查看各自实验的完成情况,无形中在他们间形成一种互相竞争的状态,激起继续努力的劲头,形成良好的学习氛围。
(3) 辅助学生学好第一门程序设计课程,为后续课程学习打下基础
程序设计能力是计算机专业学生的基本技能之一,也是检验毕业生是否合格的重要标准;从课程学习的角度看,它是很多课程的基础,没有较强的程序设计能力将导致许多后续课程难于学好。从计算机专业课程体系来看,除了计算机导论课程外,大多数学校都把高级语言程序设计作为计算机专业学生的第一门专业基础课,安排在大一第一或第二学期开设,通过该课程的教学让学生掌握计算机程序设计语言的基本构成要素,程序设计的基本过程和基本方法,破除学生对计算机的神秘感,激发学生的学习兴趣。但由于此时学生刚进入大学,对计算机还缺乏全面的了解和认识,在此之前,绝大多数学生没有程序设计的经历,因此学习难度就可想而知。为了让学生迈过这个槛,除了精心的课堂讲解外,更重要的措施是让学生多动手,从简单到复杂不断的训练。尽管我们提供了课程实验环节,但由于学生接受能力的差别,千篇一律的实验内容不一定适合所有学生,因此教学中难于做到因材施教。借助ACM竞赛平台,任课教师可以按课程的知识点对题目进行分类,每个分类按不同的难度添加多个题目,学生根据自身的情况挑选适合自己的题目,这样既做到了课堂基础知识的及时消化,又做到了因材施教,弥补了教学中的不足。此外,由于平台是基于网络的,学生随时都可以做题,保证了学习的不间断性。
(4) 培养学生团队意识,提高协作学习能力
协作学习是通过团队形式进行学习的一种方式,团队成员的协同工作是实现学习目标的必要条件。ACM竞赛过程是三个人共用一台电脑,在有限的时间内完成最多的具有较大难度的问题。竞赛中如何充分发挥三个人的力量,合理分工,协同工作将是成败的关键。事实上协作并非仅仅在竞赛过程中,在平时的训练中,协作学习就已经开始。我们知道ACM竞赛中所涵盖的知识内容是非常广泛的,学生平时要学习课内知识,而竞赛中要用到的很多知识都不是以专业课的形式开设或开始时间较晚,学生为了掌握这些知识必须要利用课余时间自学,对于这众多的知识在有限的时间内一个人是很难掌握的,因此团队成员往往根据各自的特长,分工学习,定期集合讨论或做题,从而达到加快学习和理解的速度。通过赛前训练和赛间协作,激发了学生的思维能力、培养了个体之间的沟通能力和包容能力,为学生将来走向职场打下坚实的基础。
(5) 提供课程实验考试平台,改善考试模式
考试作为课程教学的一个重要环节,对学生的学习具有明显的导向作用。针对传统考试模式存在的弊端,我们可以借助ACM竞赛平台对部分专业课程考核进行大胆改革,提高实验考核成绩在课程总评成绩中的比重,以此来引导学生认真对待实验,切实提高学生的实践动手能力。以往的考试中之所以没有更多的考虑实验成绩,主要是缺乏一个科学可靠的考试平台,特别是对于那些需要应用算法和程序设计的课程,如“高级语言程序设计”、“数据结构”、“算法设计与分析”、“面向对象程序设计”、“编译原理”等课程,根本不具备可操作性,而现在有了ACM竞赛平台就正好填补了这个空白,它使得这些课程的实验考核变得简单可行,考核结果客观可信,对规范我们的考核过程将起到巨大的推动作用。
4结束语
除了以上谈到的这些作用之外,其实ACM竞赛平台在高校的计算机专业教学中的作用还远不止这些,从专业建设角度来说,它在提高教师的教学水平、融汇丰富的教学资源、促进专业的对外交流、形成奋发向上的良好学风等方面都起到了重要的作用;从学生培养角度来说,它在学生的自学能力、随机应变能力、良好的心理素质、求真务实的科学态度、使命感和责任感的形成上有很大的帮助。总之,通过合理的应用这个竞赛平台,可以使我们的专业教学更趋科学化、规范化,可以让我们的学生开拓视野,促进创新型人才的培养,提高学生的就业竞争力。
参考文献:
[1] 何莉辉,梁沧. 基于ACM国际大学生程序设计竞赛的学习模式[J]. 经济与文化,2008(6):95-96.
[2] 皮德常,吴庆宪. 国际大学生程序设计竞赛与创新人才培养[J]. 电气电子教学学报,2008,30(3):44-45.
[3] 周荣辉,郝晓枫,赵宏宇. 学生程序设计能力培养的思考[J]. 吉林大学学报:信息科学版,2005(23):123-126.