基于ACM竞赛的学习能力培养模式研究与实践
2013-04-29卢玲陈媛苟光磊
卢玲 陈媛 苟光磊
摘要:详细分析了ACM竞赛的特点,并针对目前程序设计系列课程中普遍存在的问题,阐述了ACM竞赛对培养学生学习能力及创新能力所具有的指导意义,结合ACM竞赛提出了一系列培养模式,包括进阶式的学习目标、开放式的学习模式、团队学习模式和多元化的评价体系。文章详细阐述了以ACM竞赛为指导的培养模式的具体实施方案,该模式在教学实践中取得了显著的效果,为培养学生的学习能力及创新能力提供了行之有效的解决方案。
关键词:ACM;学习能力;培养模式;评价体系
文章编号:1672-5913(2013)07-0059-03
中图分类号:G642
0 引言
程序设计系列课程是我国各大高校计算机科学与技术、软件工程等专业普遍开设的专业基础课程。目前,在该系列课程的学习方面仍存在一些较为普遍的问题。例如,采取统一的教学模式和教学目标,使学生难以准确定位自身发展目标,在一定程度上限制了个性化的发展;采取传统的、单一的考核模式,考试内容局限于教材中的基本理论和基本知识,使学生除了掌握一般编程技能和算法分析能力外,常常处于寻找标准答案的状态,在逻辑思维和创新能力发展方面缺乏原动力。本文针对這些问题,在深入分析ACM竞赛特点的基础上,提出了以ACM竞赛为导引的培养模式。下面对這一培养模式进行详细介绍。
1 ACM/ICPC及其评价体系
1.1ACM/ICPC
ACM国际大学生程序设计竞赛(ACM International Collegiate Programming Contest,ACM/ICPC)始于1970年。目前,ACM/ICPC在树立其专业性的同时,其娱乐性、对抗性和团队协作性等特点也吸引了越来越多的大学生参与。ACM/ICPC竞赛具有如下特点:
1)题型多样,题目多与实际应用结合,富有趣味性,涉及知识面广。
2)采用在线系统进行评判,评判指标包括程序的正确性、运行时间、内存开销以及输入/输出格式的控制。
3)题目采用英文命题。
4)采取团队工作方式,每支参赛队伍由3人组成,比赛时每队使用一台机器解答问题。
5)每次比赛的题目风格、题型、难易程度都有很大的不确定性。
6)比赛时间一般为5个小时,完成6~12个题目。在规定时间内,比较各队完成题目的数量、程序的时间开销和内存开销。
1.2ACM/ICPC的评价指标
ACM竞赛的评价指标主要包括如下几方面。
1)算法评估能力。在分析实际问题的基础上,参与者能够在尽可能短的时间内确定最优的算法。
2)算法的熟练程度。比赛要求选手熟悉并通晓各类算法,对常用的算法应能灵活运用。
3)算法实现能力,即快速编写代码、调试程序的能力。
4)充分的数学知识。在数学方面,参赛选手应该具有数学建模技术,具备图论、组合数学、数论等方面的数学知识。从历届比赛来看,扎实的数学基础是取得好成绩的重要保证。
5)英文阅读能力。
6)团队协作能力。参赛选手以团队为单位进行比赛,参赛队伍的组建、分工和协作,都是影响比赛速度的重要因素。
7)创新能力。ACM/ICPC的题型多样,知识面广,问题涉及各个领域。许多问题的求解都是没有现成算法可以套用的,這就要求参赛队员不仅能正确地选择算法策略,同时要能在现有算法的基础上进行改进和创新,以满足求解实际问题的需要。
总体来看,ACM/ICPC旨在使大学生运用计算机来充分展示自己分析问题和解决问题的能力。ACM竞赛的核心价值主要表现在:①竞赛模式新颖,有利于培养学生的编程实践能力;②对参赛选手的综合素质要求高,尤其对创新能力提出了很高的要求。检测选手在压力下进行创新思维和理论实践的能力,是大学计算机教育成果的直接体现。
2 基于ACM竞赛的学习模式
计算机专业研究型人才的培养把学习能力和创新能力作为主要目标,這与ACM竞赛评价体系的要求是一致的。因此,以ACM竞赛为导引构建以促进学习能力、培养创新能力为目标的培养模式,是可行的且有效的。這种培养模式主要包括以下几方面的内容。
2.1进阶式的学习目标
在程序设计系列课程中,由于逻辑思维能力发展不一致,学生的学习能力差异非常明显。有的入门很快,有的则需要较长的时间。另外,由于知识点本身的特性,同一学生对不同知识点的接受快慢程度也不一样。针对這种差异性,为满足不同层次学生发展的需要,以及同一学生在不同阶段的发展需要,可以将学习目标设置为阶梯状,根据知识点的难度和深广度,将教学内容划分为基础、进阶、提高3个层次。数据结构课程顺序表的实验内容构成,如图1所示。
从图1可见,每一次实验都被划分为基础练习、进阶练习和扩展练习。基础练习是一般性掌握的内容,通常要求全部学生掌握并熟练运用;进阶练习是大部分学生掌握的内容;扩展练习以拓展思维方式为训练目标,其题型更加多样,注重算法的实际应用。在扩展练习题的选择上,一般可选择与ACM竞赛相关的问题,或源于ACM竞赛的题目。這些题目的知识覆盖面具有较大的深广度,教师可安排学生根据自身情况选做。进阶式的学习目标使学生能结合自身特点设定学习目标,制定阶段性的学习方案,使学习有的放矢。
2.2开放式的学习模式
开放式的学习模式包括开放式的平台和开放式的思维方式。
开放式的平台主张学生在课堂学习之外,还应涉足更广阔空间的资源。例如,在ACM竞赛的培训中,学生可到北京大学、杭州电子科技大学、浙江大学等各类在线评测系统上进行练习,使用這些平台提供的题目和学习资源,同时鼓励学生参与到這些在线平台的论坛中,与更多的程序设计人员进行广泛交流。日常教学中,我们应加强学习资源的建设,如建立完备的教学视频资源库、丰富课程网站上的学习资料等,使学生可以通过网络平台获取更多的学习资源,拓展学习空间。
开放式的思维方式主张一题多解,不寻找标准答案。在实验教学中,教师应鼓励学生运用多种解题思想、多种技术手段对同一问题求解,并对求解过程进行重构,包括重构问题分析、算法设计、编码以及调试等环节。例如,对约瑟夫生者死者问题,学生可以用顺序表、带头结点的单链表和不带头结点的单链表、单循环链表等分别进行求解,并比较几种方案的差异。重构求解过程能促使学生总结同类问题的共性和个性。学生通过对各种解题方案进行评估,可增进对各种数据结构的理解,还可以培养多样性的计算思维方式,从而促进创新能力的发展。
2.3团队学习模式
ACM竞赛以团队形式进行,因此其日常的一切学习任务均以团队为单位展开,例如培训时以团队为单位安排座位,进行交流时以团队为单位进行汇报等。团队学习模式具有如下优点:①便于团队成员之间分享知识和经验,使团队成员的能力得到更快的提升;②有助于培养学生的组织能力、沟通能力和表达能力;③有利于各异性发展。在ACM竞赛中,由于题型的灵活性和算法的不确定性,除了要求所有队员具备扎实的基础知识外,每个队员还应具备自己的专长,以便在遇到自己擅长的问题时能帮助团队脱颖而出,這就促使队员自觉地发现自身优势,明确自己研究和发展的方向,找到融入团队的切入点。学生为了充分体现自身在团队中的价值,往往会主动分析自己的特点,挖掘自身优势,寻找感兴趣的研究方向,這也使得团队中的学生发展呈现明显的各异性。团队学习模式在程序设计系列课程中是广泛适用的。在日常学习中,学生可自由分成2~3人的小组,各组设置组长,学习以组为单位展开;课程设计等综合实践环节也以团队合作的方式进行。从教学实践看,這种模式在促进合作以及学生的各异性发展方面效果非常明显。
2.4多元化的评价体系
ACM竞赛题型的多样性和灵活性,要求参赛者具备很强的应用和创新能力。在日常学习中,单一的考试评价体系不利于应用能力和创新能力的发展,引入多元化的评价体系是非常有必要的。例如,除了传统的考试外,还可采取上机考试、团队竞赛、答辩、一题多练等评价形式。在评价指标上,不仅考察算法的正确性,还应考察算法的多样性、创新性。另外,团队协作能力、组织能力、口头表达能力以及文档的书写能力也应纳入评价的指标体系。总之,ACM竞赛对学生的综合能力提出了更高的要求,這为构建日常学习的评价体系提供了重要的参考。
3 结语
笔者对ACM竞赛的特点进行了分析。总体来看,ACM竞赛不仅是对知识水平的考察,也是综合素质的竞赛,這一思想对日常的学习和教学具有重要的指导意义。在实践中,重庆理工大学以ACM竞赛为指导,将基于ACM竞赛的培养模式应用于教学,在学生的学习能力和创新能力培养方面取得了明显的效果。近年来重庆理工大学的学生广泛参与市级、国家级竞赛项目,如ACM竞赛、数据库设计大赛、电子设计竞赛等,并多次荣获国家级一、二等奖及市级奖项;从就业看,计算机专业学生的综合素质也被知名IT企业所认同。实践表明,构建以ACM竞赛为导引的培养模式,是在促进学习能力、培养创新能力方面进行的一次有意义的探索。
(见习编辑:刘丽丽)