APP下载

软件开发大赛是通过“知识周转”提升学生“综合职业能力”的重要途径——以ACM国际大学生程序设计竞赛为例

2014-03-29樊立辉

赤峰学院学报·自然科学版 2014年8期
关键词:竞赛大赛学院

樊立辉

(河南大学,河南 开封 450000)

综合职业能力是个体在特定的职业活动中,对自身拥有的知识、技能、态度、价值观念等素质,通过类化迁移的过程整合而成的可以完成某种具体职业任务的能力.综合职业能力一般表现为批判性思维能力、沟通能力和技术能力.是否具有以问题解决和问题分析意识为指导的批判性思维能力、能与团队成员高效率沟通的能力和针对不同岗位的技术能力,已经成为21世纪公司考核人才的关键因素,对这些能力的培养,已逐渐地被软件学院人才培养部门所重视,无论在课程设置、师资配置、实践教学体系的构建等等,都在围绕着这些能力的培养而进行.综合职业能力的培养途径有很多,比如虚拟项目的研发活动或者真实项目的研发活动,以任务驱动的“做中学”课堂教学等.积极参加软件开发大赛是其中的一种重要途径,它可以通过学生对自己拥有知识的周转运用,整合个体综合素质的所有因素,提升自己的综合职业能力.

1 软件开发大赛可以通过知识周转激发学生的专业兴趣,提升学生对专业的专注度,从而最终提高学生的学习质量

苏霍姆林斯基说:“儿童在学习中遇到困难的原因之一,就是知识在他们那里常常变成了不能活动的‘货物’,积累知识好像就是为了‘储备’,而不能‘进入周转’,知识没有加以运用.”“使它们在学生的脑力劳动中、在集体的精神生活中、在学生的相互关系中、在精神财富交流的生动的、不断的过程中活起来,没有这种交流,就不可能设想有完满的智力的、道德的、情绪的、审美的发展.”因此,仅仅储备与识记知识不应该成为学习的最终目的,通过对知识的运用来解决实际生活问题才是学生学习知识的最终目的,这一点对于软件学院来说,尤为重要.

任哈佛大学校长40余年的埃利奥特指出:“学生的大脑只有工作起来才会得到锻炼”.从这个意义上来讲,软件开发大赛对于学生学习活动的意义在于,给学生的学习活动搭建了一个“运用知识”的实践平台,让学生在“狗刨”中学会了“游泳”,在“习作”中学会了“写作”,让一个懵懂的学徒成为了一个技术精湛、业务熟练的师傅.学生正是在运用知识中,掌握了旧知识,发现了新知识;正是在团队合作的过程中,养成了宽容、协商、合作的性格,学会了沟通,学会了和谐相处;正是在软件开发的活动中,找到了应用软件“实现策略的不足、实现手段的缺陷、实现流程的弊端”,进而促进其对于应用软件进行改良和改善,促进了技术的革新与提高,这也是批判性思维能力在工作生活中表现出的精髓.

软件开发大赛一方面不仅实现了学生“学有所用,学有所成”的学习目标指向,另一方面也通过参加软件开发大赛,使学生在活动中整合了自己的综合素质,激发和养成了批判性思维能力、沟通能力和解决不同问题的技术能力.能够做成某件事,哪怕这件事对其他人来说是多么的微不足道,但是对于做这件事的当事者,在心理上会起巨大的激励作用,由此产生的浓厚兴趣,一切肇始于此.苏霍姆林斯基认为:“兴趣的源泉在于把知识加以运用,使学生产生一种理智高于事实和现象的‘权力感’.”要“争取学生热爱你的学科”,最重要的一点就是“要把思想和自尊融为一体”,“让学生体验到知识、智力生活是他的一种道德尊严.”学生对专业的兴趣与专注度,正是因为通过软件开发大赛借助于“知识周转”激发出来的,软件开发大赛使学生找到了知识运用的渠道,找到了运用知识的技巧,发现了自己成为“知识的主宰者”之后带给自己的“权力感”,发现了驾驭真理与规律带给自己心理的巨大愉悦.

2 学校与学生“准备”软件开发大赛的过程,促使学生不断发现自己的知识缺陷和能力缺陷,最终使学生的知识、技能、态度、价值观念得到整合

ACM国际大学生程序设计竞赛 (ACM International Collegiate Programming Contest)是一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛,由美国计算机协会(ACM)主办.这项竞赛从1970年举办至今已历35届,一直受到国际各知名大学的重视,并受到全世界各著名计算机公司的高度关注.国内很多著名大学也积极参加该项比赛,在人才培养上取得了很好的效果.

清华大学、北京大学、山东理工大学、南阳理工学院、杭州电子科技大学、浙江大学等都积极组织参加ACM竞赛,他们没有把竞赛的结果看成参加软件开发大赛的唯一追求目标,而是把准备软件开发大赛的过程作为工作的重点.“天下难事,必作于易;天下大事,必作于细.”由小到大、由少到多、由易到难的细致严谨的作风,使这些学校在竞赛中取得了很好的成绩,在人才培养方面也取得了重大突破.

首先,精心组建ACM竞赛队之前,这些学校都进行了严格的选拔赛,从中挑选出参加省赛和国际大赛的队员.ACM-ICPC以团队的形式代表各学校参赛,每队由3名队员组成.比赛期间,每队使用1台电脑需要在5个小时内使用C、C++或Java中的一种编写程序解决7到10个问题.程序完成之后提交裁判运行,运行的结果会判定为正确或错误两种并及时通知参赛队.最后的获胜者为正确解答题目最多且总用时最少的队伍.

其次,精心安排辅导训练活动,利用在线测评系统,建立了较为完善的复习资料及实战练习系统.北京大学组建ACM/ICPC竞赛队网站,分成三个大的板块:(1)ACM/ICPC题库,共有720道试题;(2)已结束比赛部分是北京大学ACM/ICPC组队考试和期中考试以及各种练习赛;(3)计划中的比赛部分.南阳理工学院ACM/ICPC组建网上测评系统,按照语言入门、贪心算法、搜索、数据结构、动态规划、STL练习、大数问题、图论、计算几何、数学、矩阵计算,形成655个题目的题库.浙江大学在线测评系统和杭州电子科技大学在线测评系统全英呈现,从一开始就与ACM国际大学生程序设计竞赛考试相适应.

第三,建立ACM/ICPC论坛,师生在论坛上交流心得,参赛学生发布参赛经验.从山东理工大学在线测评系统中,我们可以总结出参赛学生在准备竞赛和参加竞赛过程中的心路历程.他们认识到若想获得比较满意的结果,必须:(1)端正平时训练的态度,不能散漫,更不能放纵自己;(2)养成平时独立解决问题的习惯,不能放松自己上网抄袭别人的代码;(3)比赛中要充分认识到自己和队友之间的长处和短处,合理分配任务,互相配合,更好地完成比赛任务;(4)习惯于迅速理解英文题目的要求及细节;(5)不仅要有较强的编码能力,而且要有更强的思考能力;(6)成功建立在平时辛苦的付出之上.

软件开发大赛,一方面是对学生专业知识、专业能力的检验,另一方面也成为了参赛学生自我教育的重要材料.参加大赛不但锻炼了学生的团队协作能力、临场应变能力和他们的心理素质,最重要的是锻炼了学生的思考力,使学生在准备和参加软件大赛的过程中,不断发现自己的知识缺陷和能力缺陷,最终使学生的知识、能力、态度、价值观念等得到整合和综合性提升.ACM/ICPC不是对知识的识记,而是对学生利用知识解决实际问题能力的考查,综合而言,ACM/ICPC考查了参赛者以下几方面的能力:(1)是否具有坚实的理论基础、宽广的知识和合理的知识结构;(2)是否具有较强的项目研发能力,如在设计、组织、质量控制和评估、解决实际问题等方面的能力;(3)是否具有运用规范的工程语言、质量标准、技术标准和各种技术信息资源的能力;(4)是否有强烈的创新欲望、意识和能力;(5)是否有自我知识更新和能力扩展延伸的能力.

3 软件学院组织参加软件开发大赛的重要性和策略

“高校推进人才培养体制改革,最重要的就是要贯彻以‘学’为中心的理念,建立起以‘学’为中心的人才培养模式.”软件学院需要突出“以学生为中心”的理念,在教育教学中坚持从重“教”向促“学”的转变,从学科本位的评价观念向能力本位的评价观念转变,从以课堂教学为中心向以实践教学为中心转变.这些转变直接影响着软件学院教育教学质量的提高.因此,以知识运用为主要特点的软件开发大赛,无疑是软件学院实现“以学生为中心”的教育理念的重要途径和平台.软件学院也应该加强对参加和组织软件开发大赛的制度建设,积极调动师生参赛的积极性.

3.1 从学院的层面上,需要为师生参加软件开发大赛提供组织保障,因势利导,建立学院参加软件开发大赛的长效机制:

(1)把参加软件大赛以及取得成绩,作为评价各系、教师工作质量的重要参考指标,作为教师期末评优评先积分的重要组成部分,以及学生期末评优评先、奖学金等积分的重要组成部分.这首先要求学院有一个明晰的针对师生的“积分量化制度”,建立评优评先的、严格的积分排名制,摒弃论资排辈,摒弃凭“关系的近疏”排队,以成绩作为积分的重要来源,让评优评先工作真正成为“奖勤罚懒”的重要措施,成为“调动师生积极性”的重要手段,成为“奖先扬善”的重要工具.

(2)在学院范围内营造积极参加软件开发大赛的文化氛围,为师生参赛提供政策和资金支持,重奖获奖学生及辅导教师.学院不但要重视期终的评优评先,而且要重视每一次参赛的成绩,对获奖师生予以重奖,用经济刺激的手段激励师生积极参与软件开发大赛;同时,尝试改革考试制度与环节,组织专家论证软件开发大赛与学科之间的关联,将期末考试的成绩判定与学生参赛获奖直接挂钩.

(3)从学院层面上收集软件开发大赛信息,组织全院师生积极申报各级软件开发大赛.随着IT业界的需求以及选拔人才平台的搭建,很多知名公司或计算机协会等单位,创立了各种级别的、考查大学生不同程序设计能力的大赛.除了上文中提到的ACM国际大学生程序设计大赛,目前还有微软创新杯全球学生大赛、华为杯程序设计大赛、“思科网院杯”大学生网络技术大赛、甲骨文ThinkQuest竞赛、腾讯校园之星、HTML5创新大赛、网易有道杯程序设计大赛、Google编程大赛、百度编程大赛、微软编程大赛、全国信息技术应用水平大赛、中国软件杯大学生软件设计大赛、全国大学生物联网创新大赛等,都为大学生搭建了参加软件开发大赛的参与平台.软件学院应该根据这些竞赛的具体要求、特点及学院的实际,有选择的组织师生参加.

(4)构建学院软件开发大赛辅导训练教学体系.组建大赛辅导教师队伍,对软件开发大赛积极进行研究;收集整理软件开发大赛试题;建立大赛在线测评系统;校内选拔组队制;建立参赛队员定期训练制度等.

3.2 从教师层面上,需要牢固树立“以学生为中心”的教育教学理念,进行教学改革,以任务驱动的项目教学为主,积极组织学生参加软件开发大赛,促进学生综合职业能力的培养:

(1)改变传统的“讲座式”教学组织形式带来的局限性,采用任务驱动、项目牵引的教学方式,培养学生在运用中收获知识的能力,使学生在学习中积极进行知识周转,通过知识的迁移运用,丰富自己的智力生活和精神生活.一方面,这与大赛的要求与宗旨相吻合.软件开发大赛不考察学生对知识的积累与识记,考查的是学生运用知识去解决问题和创造的能力;另一方面,这也是软件学院人才培养规格的基本要求.

(2)主动研究软件开发大赛,做到知己知彼,有的放矢.不管是组织学生参加哪一个大赛,辅导教师首先要做的就是对这个大赛进行深入的研究与探讨.通过研究,认清大赛的发展历史和设置初衷;分析大赛特点及哪些知识、能力是大赛的考查重点,这些知识和能力与学科教学之间有什么样的联系;了解大赛流程,进行统筹安排等.特别要敏锐感知大赛所反映出的“市场态度”、新技术、新思维,及时更新自己的教学,让课程内容更有趣、更有用、更贴近学生实际,突出对学生分析和思维能力的培养.

(3)统筹规划参加软件开发大赛的工作安排,做好队员选拔、组建团队、合理分配任务;收集历年大赛试题,充实大赛集训内容;安排大赛集训“时间表”,制定大赛集训制度、设定目标以及拟采取措施等.

(4)在集训中扮演控制者的角色,淡化指导者角色,引导学生成为高效的自主学习者.

3.3 从学生层面上,学生应该牢固树立“学以致用”的信念,积极参加软件开发大赛,在大赛活动中“学以求知,学以致用,学以共处,学以做人”:

(1)培养自己主动学习的态度与习惯,积极配合项目教学,完成每一节课的“编程”任务,把提高编程能力放在平时.“合抱之木,生于毫末;九层之台,起于垒土”,让自己的专业知识与能力提升,在平时得到积累和扩展.同时,也要认识到“程序设计”是一个综合性工程,单凭专业知识和技能会有很大的缺陷,除了专业知识和能力之外,平时还需要掌握相关的“通识课程”,构建自己宽厚而灵活的专业基础.

(2)不能有畏难情绪,决不轻言放弃.软件开发大赛是编程爱好者之间的比拼,也是编程高手之间的比拼.涉及到的知识技能不是单方面的,比较复杂、全面.比如上文中提到的ACM国际大学生程序设计大赛,就涉及到了语言、贪心算法、搜索、数据结构、动态规划、STL练习、大数问题、图论、计算几何、数学、矩阵计算等方面内容,学生若想在大赛中取得好成绩,就必须拥有相关学科知识.因此,软件开发大赛的集训,一定会遇到各种各样的困难,时时刻刻遇到成长中的“瓶颈”.对此,学生一定要有充分的心理准备和应对策略.

(3)在团队活动中学会分享,学会宽容和妥协,学会合作,学会如何成长.软件开发大赛具有团队活动的特点,需要团队成员的互相配合,扬长避短,才能取得好的成绩.因此,在团队活动中要培养与他人相处的技巧、向他人学习的能力,要养成主动参与团队活动并作出贡献的习惯.此外,团队形成、发展的过程,可以使学生有更好的机会来学习团队问题的解决过程,学生也要在这个过程中学会协作,学会共同承担责任,学会自我评估,培养自己自我学习的责任意识.

〔1〕B.A.苏霍姆林斯基.给教师的建议(修订版·全一册).北京:教育科学出版社,1984.21,58-67.

〔2〕哈瑞·刘易斯.失去灵魂的卓越.上海:华东师范大学出版社,2007.31.

〔4〕刘小强,等.学生学习视野中的高校教学质量建设研究[J].教育研究,2012(7).

猜你喜欢

竞赛大赛学院
“鸟人”大赛
插秧大赛
初等教育学院
2020丝绸之路数学竞赛
我看竞赛
创新思维竞赛(3)
海盗学院(7)
学院掠影
西行学院
说谎大赛