以ACM竞赛驱动程序设计类专业课教学改革
摘要:从分析当前高校在程序设计类专业课程教学中存在的问题及问题产生的原因出发,阐述利用acm竞赛来促进计算机专业教学体系特别是程序设计类课程的教学改革。在调研acm竞赛模式和特点的基础上,通过改革课程开设计划、改革课程实践教学模式、开发资源网站、建设学生梯队、建立激励机制、改革考核手段等方式来实施课程教学改革,并在实际教学应用中取得了一定的成效。
关键词:acm竞赛;程序设计;课程;教学改革
中图分类号:tp3-4 文献标识码:a 文章编号:1007-9599 (2012) 19-0000-02
1 引言
计算机软件技术的发展日新月异,给高等院校相关专业的教学带来了很大的挑战,为了更好地适应不断变化的社会就业需求,就必须在传统的计算机专业教学模式的基础上开辟出一条新路。
在这样的背景下,乐山师范学院计算机科学学院早在2005年就开始开展校企合作办学,与企业联合培养校企合作方向的学生,至今已是第八届。相比普通班,校企合作教改班所开设的专业课程更符合于当前计算机人才市场的需求,典型的特点就是注重对学生的专业技能尤其是程序设计和软件开发能力的系统性培养,严格按照软件工程师的培养模式来开展相关的理论和实践教学环节,这在很大程度上改变了以往只注重专业理论教学的局限性。
在对近几年教改学生的就业情况进行分析以后,明确肯定了校企合作教学模式为我院本科人才培养体系的改革起到了决定性的促进作用,学生的专业技能有了明显的增强,也大大提高了毕业生的就业率。
但与此同时也认识到存在的一些问题:首先,传统的以程序设计语言语法描述为主线的教学方式,以及模式化的实验内容,使教师在教学过程中容易将重点偏向理论,降低了对学生实践能力的锻炼和考核;其次,我们的软件工程师主要是在教室和机房这样的环境下培养出来的,缺乏真刀真的实践锻炼机会;最后,虽然校企合作人才培养方案的整体实施效果不错,但也很难培养出高层次的计算机专业人才。
如果以上几点不能有效地解决,那么校企合作办学的成效和前景将受到限制,因此迫切地需
要一种途径去驱动程序设计类专业课程的教学模式改革,经过长期、反复的思考和摸索,我们认为通过开展学科专业竞赛活动来推动课程教学改革是比较可行的。而在种类繁多的计算机学科专业竞赛中,最权威、级别最高的就是《acm/icpc国际大学生程序设计竞赛》。
本教改项目结合acm竞赛来促进计算机专业教学体系特别是程序设计类课程的教学改革,教改实施对象主要为计算机科学学院软件工程专业方向的学生。首先针对程序设计类课程教学存在的问题以及问题产生的原因进行分析,然后在acm竞赛模式和特点的基础上,尝试通过结合acm竞赛来改革课程开设体系和课程教学模式,最后提出了解决问题的具体措施,并在实际教学应用中取得了一定的成效。
2 当前程序设计类课程教学存在的问题
2.1 人才培养模式陈旧,实践教学比例不足
在传统的被动教学模式中,学生缺乏学习主动性、创新性和行业竞争力。而计算机专业课程大多属于实践型课程,强调动手能力。为了加深对理论知识的理解,必须提高实践教学质量,理论和实践教学的学时分配要作适当调整。
2.2 实践内容模板化,缺乏创新能力的培养
首先,设计性、综合性实验偏少,很难培养学生的创造性思维;其次,实验内容严重脱离了现代软件工程过程,更谈不上对综合型应用问题的解决;最后,在实践教学过程中,教师干预太多,学生处于被动完成实验任务的角。
2.3 缺乏互助学习能力,团队协作意识较差
当前软件项目的开发都是以团队形式实施的,团队成员之间需要合理分工和无障碍沟通。但在传统教学模式中,以项目组为单位来开展教学活动的机会非常少,更谈不上互助学习和团队协作了。
2.4 课程考核模式单一,缺乏激励机制
课程考核主要采用传统考核模式,考核内容受限于教材知识点,缺乏对学生知识结构与实践技能的综合考察,不利于学生综合实践能力和创新能力的培养,最终形成“高分低能”的现象。
3 改革措施
本教改项目主要通过以下几个方面来实施以acm竞赛促进程序设计类课程教学改革的方案。
3.1 改革课程开设计划
全面分析了目前程序设计类专业课程教学中存在的一些问题(比如教法和学法等方面),结合acm的竞赛大纲和竞赛模式来调整开课计划,把原计划一学期的《程序设计基础》课程的教学时间调整为一学年,第一学期是程序设计的入门教学,主要介绍高级程序设计语言编程基础;第二学期是程序设计的进阶教学,主要介绍算法设计与分析。
3.2 改革课程实践教学模式[1]
(1)实验内容分级化:
将实验内容分成知识型(单一算法)、应用型(算法和实际问题结合)和综合型(若干小算法的综合,用于解决一个较大规模的问题)。不同级别题型的权值不同,每一级别中又包含若干个相同权值的题目,学生可以根据自身情况选择不同级别的题型和题目数量,这样既考虑到了不同层次学生的学习需求,又达到了统一的实验目的。
(2)实验题目趣味化:
传统的程序设计类实验题目普遍比较枯燥,难以调动学生的学习兴趣和设计思路。参考acm的海量题集,由任课教师将实验题目生活化和趣味化,使学生自主选择合理的数据结构和算法来解题,这样可以充分激发学生的学习主动性和积极性,将被动学习转化为主动学习,更好地达到了实践教学的目的。
(3)实验时间分散化:
考虑到实验课时非常有限,可参照acm竞赛平台来构建“程序设计在线评测系统”,功能包括用户管理、题库管理、在线提交、在线排名、在线讨论等。学生注册后可在任何时间登陆该系统进行选题、提交、评测和讨论等自主学习环节,将有限的课内练习时间延续到课外。
3.3 开发资源网站
在全面搜集acm竞赛相关资源的前提下,以程序员协会的学生会员为主力设计并开发了“acm资源网站”,并挂靠在学院的web服务器上,以该资源网为平台来开展竞赛的宣传、组织、培训等活动,同时也为相关课程的理论实践教学和学生自主学习提供了一个优质的信息化平台。
3.4 建设学生梯队
依托于乐山师范学院第二课堂课程《acm程序设计》的开设,以乐山师范学院三星级社团“程序员协会”为活动主体,在全校范围内吸纳对计算机编程和竞赛感兴趣的学生,成立“acm竞赛兴趣小组”,通过举办专业讲座、学生科研、协会内部竞赛、协会沙龙等活动,为本专业学生提供一个进一步增强职业技能的交流和学习平台,同时也要在兴趣小组中发现适合参加acm竞赛的后备人才,面向各年级构建acm竞赛梯队。
3.5 建立激励机制
增设创新学分,设置创新环节,搭建创新实践的平台,让学生有更多的机会展示自己的专业特长。将参加acm等学科竞赛纳入学生的综合测评,通过设立竞赛奖学金制度来引导学生积极参加课外科技活动、不断提高自身的创新素质。
3.6 组织参赛
在本教改项目的实施过程中,还要积极组织学生参加各个级别的acm赛事。对于每一次竞赛,首先成立竞赛领导小组,分析官方公布的竞赛大纲,及时、准确地改革专业教学体系目
标和课程开设计划;其次根据往届参赛经验,结合本次竞赛的具体情况制定出竞赛活动方案,将竞赛的宣传、组织、选拔、培训、参赛、奖励等环节制度化;然后选拔acm参赛队伍,指派经验丰富且取得过优异成绩的教练对参赛队员进行长期、深入、全方位的强化培训和指导;最后通过对竞赛成绩的分析再次调整专业课程开设计划和教学模式。[2]
3.7 改革考核手段
acm模式的重要特之一是完善而严谨的考核机制,所以我们大胆尝试将acm的考核方式借鉴到程序设计类课程的考核环节中,采用acm模式的黑箱测试,将学生在“程序设计在线评测系统”中获得的成绩以50%的权重加入到课程考核指标当中。这一方面减少了教师的工作量,降低了考核错误率,另一方面做到了客观、公正,更好地发掘了学生的创新能力,提高其对知识点的掌握程度。
4 要解决的关键问题
4.1 课程教学形式的改革,特别是如何处理实践教学和理论教学的比重关系,以及如何让学生能够真正地解决问题,而不是按照设定好的思路去模仿着解决问题。
4.2 课程评价体系的改革,尤其是目前的实践环节评价机制弊端明显,严重束缚了学生的创新能力,错误地引导学生把自己改造为一个受制于理论教材的傀儡。
4.3 差异化教学,考虑到acm竞赛的难度较大,所以必须考虑到在将acm融入到专业课程教学过程之后,如何确保整体教学质量并解决好部分学生学习能力较差的问题。
4.4 在acm竞赛中取得更好的成绩,必须建立有效的组织、选拔、培训、参赛、总结等相关机制。
5 结语
acm竞赛对程序设计类专业课程的教学改革起到了积极的推动作用,从教学队伍建设的角度来看,它在提高教师的教学水平、科研能力、促进专业的对外交流等方面都起到了重要的作用;从学生培养的角度来看,它在提高学生的学习兴趣、自学能力、创新能力、求真务实的科学态度上有很大的帮助。
总之,通过合理的应用acm竞赛这个平台,可以使我们的计算机专业教学更趋科学化、规范化,可以让我们的学生开拓视野,促进实践型、创新型人才的培养,提高学生的就业竞争力。
参考文献:
[1]常子楠.基于acm线上编程课排名模式的程序设计类课程实践教学探索[j].计算机教育,2010(16):144-146.
[2]项炜.以学科竞赛促进计算机专业教学改革的探索[j].改革与开放,2009(12):207.
[作者简介]
项炜,男,讲师,研究方向为自然语言处理;陈建国,男,副教授,研究方向为人工智能;苏炳均,男,副教授,研究方向为自然语言处理。
基金项目:乐山师范学院教育教学改革研究项目(jg11-yb26)。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论