基于程序设计竞赛的计算机创新型人才培养探索
作者: 曾雪强 卢家兴 吴水秀
[摘 要] 创新型人才培养是高等院校应用型本科人才培养的重要目标,鼓励学生参加程序设计竞赛是提高计算机专业学生创新实践能力的有效途径之一。结合近几年江西师范大学计算机信息工程学院程序设计竞赛集训队的实践,探索并提出基于程序设计竞赛的创新型人才培养新模式,采用三级分队方式进行队员管理,以教练指导与队员以老带新相互结合的模式组织日常训练,通过各项竞赛实战强化提高队员的程序设计水平。新模式在创新型人才培养的实践中取得了良好的效果,江西师范大学在近年的各大程序设计竞赛中取得了优异成绩。
[关键词] 创新型人才培养;程序设计竞赛;程序设计能力;实践教学
[基金项目] 2021年度江西省教学研究重点课题“基于‘一中心三阶段’竞赛驱动的计算机本科生程序设计创新能力培养模式研究”(JXJG-21-2-27);2018年度国家自然科学基金“基于渐进抽样的学习模型选择方法的研究”(61866017)
[作者简介] 曾雪强(1978—),男,江西南昌人,博士,江西师范大学计算机信息工程学院教授,博士生导师,主要从事自然语言处理和机器学习研究;卢家兴(1976—),男,湖南宁乡人,硕士,江西师范大学计算机信息工程学院讲师,主要从事模型检测和区块链技术研究;吴水秀(1975—),女,江西进贤人,硕士,江西师范大学计算机信息工程学院副教授,硕士生导师,主要从事自然语言处理和模式识别研究。
[中图分类号] G434 [文献标识码] A [文章编号] 1674-9324(2023)24-0032-04 [收稿日期] 2022-05-16
创新型人才是具有创新精神和创新能力的人才,能提出有别于常规或常人思路的见解,利用现有的知识和物质改进或创造新的事物,并取得一定的有益效果[1]。高等院校大力培养创新型人才是时代发展的必然要求,是紧跟时代发展步伐的必然选择[2]。但是长期以来,由于各种主、客观因素制约,地方高校计算机专业的实践教学存在较多问题,对学生创新能力的培养存在不足[3]。
程序设计竞赛在计算机专业教学改革实践中具有重要作用,鼓励学生积极参与程序设计竞赛,可以开阔学生的视野,增强团队合作意识,提升学生利用计算机分析和解决问题的创新实践能力[4]。近年来,基于我院程序设计竞赛集训队训练和参赛的实践,笔者探索并总结出一套完整的基于程序设计竞赛的计算机专业创新型人才培养模式。通过采用新培养模式,我院学生的程序设计水平逐年提高,在近年的各大程序设计竞赛中取得了优异的成绩。
一、程序设计竞赛
程序设计竞赛的一般比赛形式是给出若干道程序设计问题,要求选手进行问题分析和算法设计,现场编码完成程序设计,并提交程序通过实时在线评判系统。参赛队伍的成绩在赛场上实时更新,赛后现场为优胜队伍颁奖。程序设计竞赛的实时比赛模式,对参赛选手的综合素质要求高,可以考查选手在压力下编写程序、分析和解决问题的能力[5]。除了比赛形式和考查内容与其他学科竞赛不同,程序设计竞赛还具有奖项含金量高、高水平赛事获奖难度大、训练周期长等主要特点。
参加程序设计竞赛活动可以显著提高学生对计算机专业知识的掌握程度和实际动手能力,学生在准备竞赛的过程中需要自学很多有难度的算法知识,并完成大量的题目。在本科阶段,一名优秀的程序设计竞赛选手完成的编写代码量,一般可以达到普通大学生平均程序设计量的数倍甚至更多。组织学生参加程序设计竞赛是一种有效的创新素质教育的手段,大学生参加竞赛,可以培养学生的创造能力、激发学生的创新能力、培养学生的科学素质、锻炼学生的心理素质、提高学生的团队素质。
尽管近年来国内大学对计算机程序设计能力的重视程度与以前相比有所提高,但在“双非”本科院校中仍存在很多的不足。比如,有一些院校对程序设计的实践性重视不够,实际知识的运用训练较少;实践教学不够系统和完善,实践项目的设计没有充分考虑能力目标的培养而过多关注程序语言本身的特性;练习和考试多采用书面或验证性实验的形式,缺少考查知识灵活运用的练习题,忽视对程序设计能力的锻炼;学生缺乏完整系统的程序设计方法,代码质量意识弱,代码质量差,不具备中等规模以上的程序设计能力。
二、程序设计竞赛队伍培养模式
经过不断探索和实践发现,让学生参加学科竞赛,可以有效提升计算机专业大学生的创新能力和综合素质,最终达到培养创新型人才的目标。
针对程序设计竞赛的特点和目前存在的问题,需要在队员管理、培训方式、激励方式等方面制定相应对策。笔者通过深入研究各大高校在程序设计竞赛中的成功经验,结合本学院近年来的竞赛培训实践,针对程序设计竞赛集训队提出了一系列行之有效的培养模式,贯穿学生学习的全过程。该培养模式主要包括三个方面:(1)采用三级分队方式进行队员管理。(2)采取教练指导与队员以老带新相互结合的日常训练模式。(3)通过各项竞赛实战,强化提高队员的程序设计水平。下面对新培养模式的具体措施进行介绍。
(一)队员三级分队管理
队员三级分队管理模式是指按照学生的年级,将集训队员分为大一队、大二队和大三队。采用三级分队管理方式,可以有针对性地合理安排队员的学习内容,让队员循序渐进地提高竞赛水平。
教练和老队员通过每年的新生宣讲,鼓励有意愿的计算机专业大一新生参与大一队的队员选拔。大一队的主要任务是学习程序设计竞赛的基础知识,并从入门阶段开始逐步培养良好的专业学习、专业思维和专业实践习惯。由于大部分新生是从零开始学习程序设计,基础较为薄弱,在正常的课程教学之外,集训队需为大一队开设专门的训练课程,安排队员系统地学习C/C++编程语言、简单数据结构和基本算法(如递推、递归、贪心及DP基础),并通过上机做题的方式锻炼程序设计的动手能力。大一队的基础十分重要,需要以月为单位设置多轮选拔考试,一方面提升学生的参与度、体验感,另一方面也激发了学生的兴趣;在大一下学期举行选拔大二队队员的新生赛。
通过一年的训练,大二队的队员已经具备一定的程序设计基础,需要进一步提升程序设计竞赛水平。大二的上学期和下学期分别开设“ICPC程序设计竞赛基础”和“ICPC程序设计竞赛进阶”两门选修课;在每年的暑期开设“程序设计竞赛强化集训营”,培养队员利用计算机分析和解决复杂工程问题的能力。通过这些训练课程,让队员着重学习一些相对复杂的算法,同时兼顾数学、建模、几何等知识,在培养团队合作精神的同时,提高了学生的综合素质。
大三队的队员一般已经具有较强的程序设计能力,是争取竞赛获奖的主力。大三队队员的主要任务是锻炼如何在竞赛中快速地建立模型、构思算法的实战能力。除了参加各项竞赛实战,大三队平时的训练以参加各类模拟赛为主,通过三人组队做综合型的成套题目,磨合队伍、发现短板,再根据自身的特点有针对性地强化练习和攻克难题。一方面可以让学生享受到艰苦付出的成果,为今后的学习提供动力,另一方面也可以提升学生毕业设计的质量和水平。
(二)教练指导与队员以老带新相互结合
针对不同阶段队员的特点,竞赛集训队的日常训练主要采用教练指导与队员以老带新相互结合的模式。
大一队和大二队的队员,采用以教练指导为主、老队员帮助为辅的形式。低年级学生处于程序设计竞赛学习的初级阶段,需要指导教师的正确引导。指导教师以课程、讲座、定期讨论等方式组织学生训练,并通过专题训练的形式对一些经典知识点和经典题目进行强化学习。老队员具有丰富的实战经验,可以帮助低年级学生快速提升实战能力,特别是已经获奖的老队员,具有显著的榜样作用。在实际的教学过程中,可让老队员直接参与大一队和大二队的指导过程,帮助教练进行上机指导和作业检查,并主讲一些专题讲座。
大三队的训练以参加各类竞赛实战为主。一般情况下,大三队队员已经具有较高的竞赛水平,需要进行个性化的专项训练。另外,大部分程序设计竞赛以团队赛形式进行,组队策略和团队合作等战略战术也是队伍获奖的重要因素,并肩作战的三名队员需要通过多组队打模拟赛,不断地磨合,增进相互了解,加强团队协作,才能在竞赛中发挥高水平,赛出好成绩。
(三)以赛促练
程序设计竞赛的训练是一个长期的过程,如何让队员在枯燥的训练期间保持学习的动力,是竞赛队教练需要解决的重要问题之一。我校竞赛集训队的做法是组织学生多参加各类竞赛实战,以赛代考,以竞赛成绩促进日常训练。各项竞赛主要分为校内赛和正式赛两大类。
校内赛主要包括每月的训练赛、每学期的校赛和不定期的专题训练赛等。这些比赛一般由老队员出题或使用历年真题,让学生有更多的锻炼机会。集训队设置严格的校内赛考勤制度,要求所有队员都参加校内赛,并将校内赛成绩作为队员日后代表学校参加正式赛的重要依据。正式赛是指各项省级和国家级的程序设计竞赛。很多正式赛设置有资格选拔赛,让学生通过这些选拔赛公平地竞争参赛名额。
通过以竞赛促学习的训练方式,学生在得到实战锻炼的同时,能清楚地认识到自己与优秀选手之间的差距,便于总结经验、加紧训练,强化提高自身的程序设计水平。竞赛的成绩一方面能够检验出一所高校计算机教学的整体实力;另一方面也可以依据成绩的好坏对程序设计教学过程进行检视,提升程序设计课程的教学水平。
三、实践效果
通过采用基于程序设计竞赛的创新型人才培养新模式,我院竞赛队队员的程序设计热情越来越高、程序设计水平不断提升。近年来,我院在ACM-ICPC、CCPC、天梯赛、蓝桥杯和江西省大学生科技创新与职业技能竞赛·程序设计竞赛等重要的程序设计竞赛的成绩取得显著进步,竞赛成绩在江西省高校名列前茅。
以2021年为例,我校在ACM-ICPC区域赛和邀请赛上共获得1项金奖、3项银奖和4项铜奖。在CCPC比赛中,我校获得分站赛金奖1项、铜奖1项,女生赛银奖1项、铜奖1项和全国总决赛铜奖1项。在江西省大学生科技创新与职业技能竞赛·程序设计竞赛中我院学生获得一等奖3项、二等奖1项和三等奖2项。另外,在近年的天梯赛和蓝桥杯比赛中,我校成绩始终位于江西省高校前列。我校近三年的天梯赛成绩如表1所示,2013—2021年蓝桥杯具体获奖情况如图1所示。
结语
本文提出的基于程序设计竞赛的创新型人才培养模式凝聚了江西师范大学的实践教学经验,形成了较为规范的创新型人才培养体系。实践表明,该培养模式可以有效地锻炼学生的实践能力和创新能力,提高学生的程序设计竞赛水平,使得我校在各大程序设计竞赛中的获奖成绩显著提升。未来,我校还将继续践行这套培养体系,不断总结,凝练方法,为提高计算机专业创新型人才的培养水平持续努力。
参考文献
[1]刘晓勇,方刚,付辉,等.基于学科竞赛的计算机类专业创新型人才培养模式研究[J].高教学刊,2018(19):42-44.
[2]张琪.社会主义核心价值观在创新型人才培养中的引领功能[J].教育理论与实践,2021,41(15):42-45.
[3]滕永晨.以学科竞赛为导向,提升计算机类专业程序设计语言教学质量[J].中国多媒体与网络教学学报(上旬刊),2021(6):234-236.
[4]朱立军,杨中秋,李漫红,等.新工科背景下程序设计竞赛课程建设的研究与探索[J].高教学刊,2021(3):96-99.
[5]邝祝芳,余绍军,杨卫民.ACM/ICPC对培养信息学科创新型人才的作用[J].计算机教育,2013(3):4-6.
Exploration on the Training Mode of Innovative Talents of Computer Specialty Based on
Programming Competition
ZENG Xue-qiang, LU Jia-xing, WU Shui-xiu