高校学科竞赛培训模式探索与实践

2019-08-07 06:40王桂平
计算机教育 2019年7期
关键词:通识程序设计竞赛

王桂平

(重庆交通大学 信息科学与工程学院,重庆 400074)

0 引 言

高校学科竞赛作为培养学生创新意识和实践能力、提高学生综合素质、推动教学改革的有效途径,其作用得到了高校、企业和政府的认同。因此,近些年来各类学科竞赛在国内高校得到蓬勃发展,但各省市、各高校在学科竞赛的开展和培训模式上仍处探索阶段。

1 高校学科竞赛培训模式现状

目前,国内高校学科竞赛主要有以下几种培训模式。

(1)有计划的针对性培训。在浙江、江苏、北京、上海等学科竞赛开展得较早的省市,教育厅或教委成立了大学生科技竞赛委员会指导高校学科竞赛的组织、管理和推广工作[1-2],高校往往也成立了相应的竞赛主管部门。针对某项学科竞赛,竞赛负责人需要向竞赛主管部门上报培训课时、经费需求,主管部门审批后,竞赛指导老师在课外召集学生按培训计划进行竞赛培训、辅导学生等。这种培训模式需要充足的经费作为保障。

(2)突击培训。学科竞赛开展较晚的省市,或者某项开展较晚的学科竞赛,往往采用这种模式。上一级部门下达竞赛通知后,竞赛指导老师临时组织学生突击培训。

(3)完全放手由学生自发组队集训,指导老师只起到报名、带队工作。一些985、211高校以及优势学科集中的高校,由于某项学科竞赛已开展多年,形成了传统赛事,学生出于兴趣爱好自发组队,常年集训,一有比赛随时能参赛。

(4)多项学科竞赛融合一起,构成学科竞赛体系,或多部门联动成立立体链式竞赛管理机构[3-4]。这种模式由于各学科竞赛之间差异较大,涉及的学院和部门众多,实际操作难度较大。

2 高校学科竞赛培训模式存在的问题

目前,高校学科竞赛培训模式主要存在以下问题。

(1)经费不足。很多高校在学科竞赛上并无专项经费,或者因为经费不足而只能支付外出参赛的差旅费,不能保证竞赛培训的课时费。经费不足导致无法系统地培训学生,有时甚至只能由指导老师自发地做一些入门培训。

(2)指导老师任务重。学科竞赛指导老师不仅要完成自己的教学、科研任务,还需培训和指导学生、带队外出参加比赛等,增加了指导老师的工作量。竞赛培训往往安排在晚上或周末,也占用了指导老师的休息时间。

(3)学生精力分散、压力大。积极参加学科竞赛的学生往往是各方面表现都非常突出的学生,他们不仅要保证学业成绩,而且疲于应付各种学科竞赛培训和社团活动。因此,如果学科竞赛的开展完全依赖于课外培训,将导致参赛学生精力分散且压力大。

(4)培训组织松散。由于指导老师对参赛学生并无约束力,辛辛苦苦准备的培训课程,参加培训的学生人数不固定,学生来与不来完全取决于自己。即便是指导老师安排了系统的培训,如果学生没有全程参与,也难以保证培训效果。

(5)培训内容与课程教学内容重复。学科竞赛涵盖的知识体系往往会涉及相关课程的教学内容。如果竞赛指导老师不是这些课程的任课老师,就会出现课程教学和竞赛培训衔接不好,导致某些课程讲过的内容在竞赛培训时又重复出现。另外,参赛学生基础参差不齐,也有可能会导致竞赛培训时不得不讲一些基础内容。

(6)管理难度大。由于竞赛培训往往是在课外完成的,竞赛主管部门和教务主管部门要监督和管理竞赛培训工作,其难度非常大[3-5]。

3 “通识课+课程群+集训队”培训模式

3.1 通识课

目前通识教育已成为共识,国内高校逐步推出举措,鼓励开设通识课程,包括计算机通识性课程[5]。针对某项或某类学科竞赛,可以抽取出其中基础性、普适性的知识,面向全校学生开设一门通识课,甚至多门进阶式通识课。

以程序设计竞赛为例。目前国内高校广泛开展的程序设计竞赛包括大学生程序设计大赛(包括省市级、国家级和国际级)、蓝桥杯全国软件和信息技术专业人才大赛(分为省赛和全国总决赛)、中国高校计算机大赛团体程序设计天梯赛等。笔者从这类程序设计竞赛中抽取出共性的计算思维和基本的程序设计方法,开设了两门全校性通识任选课:程序设计方法及在线实践(上)、程序设计方法及在线实践(下),分别安排在第2学期和第3学期,见图1。这两门课程均为2学分,课时都是24(理论)+8(实验)。

图1 课程群及通识课

这两门通识课面向全校理工科专业学生。非计算机专业学生都先修了C语言程序设计课程,见图1。程序设计方法及在线实践(上)主要讲授计算思维、基本的程序设计方法(如枚举、模拟、递归、分治等)及在线程序实践[6]。修完这门课程后,有余力并且有兴趣的同学可以继续选修程序设计方法及在线实践(下),这门课程主要讲授搜索、动态规划等算法以及图论、数论、组合数学等领域中的基础算法。

面向全校学生开设通识课的目的不仅是讲授基础性知识,也能起到宣传学科竞赛、积累群众基础的作用。此外,通识课也能发掘出一些对学科竞赛感兴趣甚至痴迷的学生,这些学生来自不同的专业。针对某些团队赛,跨专业组队能实现知识互补相济,往往能取到意想不到的效果。

3.2 课程群

针对某项或某类学科竞赛,可以从“知识完整性、进阶性、互补性”的角度构建课程群。课程群的教学内容构成了学科竞赛的知识体系,目标是在正常的课程教学中潜移默化地积累学科竞赛所需的知识和技能,无需课外培训,或仅需少量课时针对竞赛进行强化培训。课程群建设的主要内容包括以下几方面。

(1)通过合理地设计课程群的知识体系、规划各课程的知识结构、精选课程案例、有效地组织教学过程,优化教学资源,保证各门课程之间的衔接和进阶。

(2)重构课程群的实践教学体系,可以吸收学科竞赛中新颖的、实用的实践内容,以支撑学科竞赛对学生实践能力和技能的需求。

(3)通过教学方法的有机结合,师生互动的加强,提高教学质量。

(4)通过教学团队的建设以及教学团队内部的协作,为课程群建设提供强有力的保障,同时教学团队中部分老师构成竞赛教练团队,从而保证了教练团队的稳定性。

以程序设计竞赛为例,可以构建“程序与算法设计”课程群[7],包括高级语言程序设计、面向对象程序设计、C#程序设计、Python程序设计、Java程序设计、算法与数据结构等课程。

为了支撑程序设计竞赛对学生实践能力和技能的需求,重构程序与算法设计课程群的实践教学体系,见图2,要在原有的课后作业、实验报告、课程设计等实践教学内容的基础上,引入程序设计练习赛(个人赛、组队赛等多种形式)。

图2 “程序与算法设计”课程群的实践教学体系

课后作业和实验报告部分采用在线程序实践,上机考试和程序设计练习赛则全部采用在线程序实践,这些实践教学内容都依赖于在线评判[6]:对学生提交的程序,根据所采用的编程语言调用相应的编译器,编译学生的程序,编译无误后运行,读入测试输入数据,生成学生程序的输出数据,再将其与正确的输出数据进行比对,从而评定学生提交程序的正确性并统计程序的运行时间,最后把评判结果实时反馈给学生。

在实践教学体系中采用在线程序实践,并引入程序设计练习赛,极大地激发了学生的编程兴趣,学生可以根据实时反馈的评判结果修改程序直至提交正确,老师也可以及时检验学生的学习效果。

3.3 集训队

学科竞赛往往实践性非常强,不仅要比较全面地考查学生的知识和技能,还要考查他们的团队协作能力和实战中的抗压能力,因此必要的集训和实战练习是必不可少的。针对某项或某类学科竞赛可以组建正式的、长期的集训队,目标是召之即来、来之能战、战之必胜。

集训队的组建和日常集训通常以学生自发为主、老师指导为辅。组建集训队时应鼓励老队员和新队员组队,形成“传、帮、带”的作用;也应鼓励跨专业组队,实现知识互补相济。如果经费充足,可以组织集训队参加各种练习赛、挑战赛、邀请赛,提高实战能力和技巧。

3.4 其他举措

如果条件允许,还可以针对某项或某类学科竞赛,成立大学生学术社团[8]。这类学术社团在学科竞赛中的作用包括以下几方面。

(1)学术社团保障了参赛队伍的稳定性。一方面,大学生学术社团以协会的形式聚拢了一大批会员,而这些会员构成了学科竞赛坚实的参赛队伍,老会员取得的好成绩是新会员的榜样和动力。

(2)学术社团是参赛学生与指导老师之间的桥梁。由于参赛学生众多、指导老师人员相对不足,无法达到一对一的专门指导,这样学术社团就在参赛学生与指导老师之间起到了桥梁纽带的作用。

(3)学术社团是学科竞赛开展和推广的强有力力量。学科竞赛的广泛开展离不开学术社团强有力的宣传、组织和推广。随着学科竞赛的开展,学术社团的规模不断扩大,其影响力也不断增强。

其他举措还包括吸收学生加入指导老师的项目团队,组织参赛学生申报大学生创新创业计划等。

4 效果分析

笔者在浙江省、重庆市两所高校工作期间实践“通识课+课程群+集训队”的培训模式,取得了非常好的效果。2003—2011年在浙江省某财经类高校工作期间,连续指导大学生程序设计大赛8年,努力将程序设计大赛发展成为该校的一项传统赛事,指导的学生屡次获得浙江省大学生程序设计大赛一等奖、二等奖。以此为基础,接任的指导老师带队在国际大学生程序设计大赛亚洲区域赛上屡获金牌和银牌,在国内具有较大的影响。

2015年全职博士毕业后至今,笔者在重庆交通大学工作期间,继续在大学生程序设计大赛和蓝桥杯大赛中实践这种培训模式。指导的学生参加蓝桥杯大赛,屡获国家二等奖、三等奖,在重庆市大学生程序设计大赛上也逐步取得突破。2018年12月8日学校承办了重庆市第九届大学生程序设计大赛,指导的学生获得了2个二等奖,5个三等奖,取得了历史最好成绩;预期将在国际大学生程序设计大赛上取得突破。

5 结 语

针对程序设计类学科竞赛提出并实践的培训模式,可以解决学科竞赛经费不足、管理难度大等问题,减轻了指导老师的工作量,学生在通识课和课程群中就潜移默化地积累了学科竞赛所需的知识和技能、避免了高强度的课外培训。这种培训模式预期可以为其他学科竞赛的培训提供非常好的借鉴。

猜你喜欢
通识程序设计竞赛
2020丝绸之路数学竞赛
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
创新思维竞赛(3)
通识少年小课堂 无线电寻宝之旅
通识少年“种”石油
通识少年小课堂 血液之旅
通识少年·拿破仑
高职高专院校C语言程序设计教学改革探索