(讲述人:张锋)最近ACM-ICPC协会的学生拿了个ICPC区域赛的金奖,我做为指导老师也沾了下光。仔细回想,在指导学生科技活动、做研究方面已经许多年了,我自己有些体会,也很乐意跟同事们作个交流。
1.多维度培养和评价学生
ACM班的学生,可能有些“宅”,有些nerd,总体上他们属于技术类型的学生。我喜欢这样的学生,喜欢和他们一起做事情的感觉。疫情前,每年我都会带队伍到赛区比赛,都是看起来有些无聊的旅程,漫长的车程,简单的快捷旅馆,千篇一律的赛程,在硕大空荡的体育馆呆坐五个小时,好像也学不到什么东西。然而,我还是享受这样的体验。在空旷的体育馆里看着几百成千个中国最优秀的程序员心无旁骛地敲代码、升气球,这对浮躁的心灵是一种涤荡,是一种初心的回归;碰上学生在封榜乃至最后一分一秒能出题拿到好成绩,那更是种可以迅速传递的兴奋和狂欢!虽然绝大多数的这些旅程带回的是遗憾,但是领导们好像也没怎么在意我“浪费”经费的责任,这是领导的格局,学生培养是润物无声的过程,不易以绩效衡量,也不一定能以个人利益考量。
但是,在这个讲究综合素质、个性张扬的年代,ACM学生的过于内敛、沉湎技术的性格会有问题。每年改选协会干部的时候,要选出优秀的协会管理者就是很难的事情。对一个专业性特别强的学生协会,管理干部特别是会长在兼顾专业的同时尤其需要做多面手,好的程序员并不一定能管好协会。我经常羡慕傅苑老师领导的那些学生会的干部,每次一起举办活动,他们都是西装革履的,看起来那么专业和有气场,天生就是领导者。而ACM的学生是非常不注意形象,T恤短裤就上场了。所以,我都有意让他们每周训练的时候,能轮流做PPT给别人讲一下,这对锻炼表达、沟通能力是好的机会;也鼓励他们在比赛过程中结识那些顶尖高校的顶尖参赛者,如果他们能成为朋友,对他们一生的事业都是很好的助益。幸运的是,我们的每一任队长、会长、管理干部都是优秀的,他们都出色地完成了自己的任务,提升了个人素质,也让我这个所谓的指导老师越来越无所事事了。
学院有很多很优秀的学生,或者绩点高、或者社会活动能力强,或者综合素质全面,ACM班的学生有自己的特点。学院这些年建立一些相应培养机制,尊重学生的个性和特长,虽然任重道远,但已经在路上,相信他们有朝一日会成为学院乃至学校之光。
2.ACM班学生最擅长的是写代码?
这个问题,涉及他们应该在学生培养这块处于哪个维度。他们擅长写代码,这是毫无疑义的。我经常跟协会的同学说,你们在技术上,绝对是同届同学里出类拔萃的,就算在百度、腾讯、阿里、字节跳动这样的大厂,在北大、清华这样科研厉害的高校科研院所,你们的技术能力都是可以完全胜任的。但是,抛开这些代码层面技术层面的素质,一个最优秀的ACMer,他绝对在数学上也是过人的。例如,我们这次济南站的比赛,出题方是北京大学,题目内容偏数学,难度偏大。但是,团队在数学方面扎实的基础和训练效果,就从这次比赛中体现出来了。而一些平时代码能力可能更好的队伍,在这次比赛中就名落孙山。我的体会是,那些拿过数学竞赛奖的同学,就算没有任何程序设计基础,他们也可能会比那些在中学拿过很权威的程序设计竞赛的同学走得更远。我们有支2017级的队伍,编程零基础,而且入队很晚,但是由于有扎实的数学功底和对ACM这项事业的热爱和投入,他们一直为我们协会贡献了几年的好成绩,让我还能厚着脸皮向学院和教务处要经费。虽然最后遗憾没能夺金,但他们已足够优秀!
这样数学功底、算法能力俱佳的学生,而且加上几年团队精神和抗压能力的淬炼,是最适合做科学研究的。作为ACM实验班的指导教师,如果有什么私心的话,就是希望能从中招到优秀的研究生,作为自己的科研助手,实践自己的科研理想。虽然这10年来,绝大部分的ACMer都去了985高校深造或者去大厂拿着高额年薪。从少数留在地大读研的学生来看,他们确实在科研上是胜任的,也有这潜力。当然,这些年来,实验班里更多是训练了一年两年就退役的同学,他们大多数进入了老师们的实验室,在老师指导下作科研,也取得了很好的业绩。
每年的ACM新生赛和校赛,都是热爱IT技术学子的圣殿,相信他们多少也会从参加这些普及竞赛过程得到启迪。ACM班如果对学院有什么贡献,并不仅在于每年拿了个什么奖,更是这种由点到面的传道,让计科学子对自己的专业敬畏以致热爱。我常想,如果我们学校有更高的科研平台,有更多优秀的醉心学术的老师,也许他们中的大部分都能留在学院,而且能在本科期间就做出更好的科研成绩。但是,这一切理想,就留待计算机学院一代代更优秀的老师和管理者完成了。
3.大学的使命是科学研究还是培养人?
大学的根本使命是科学研究还是人才培养,教学和科研的关系如何处理,等等,这是些争论不休的问题,宏大却具体,但不是我能给出答案的。我认同很多老师的说法,就是一个优秀的大学老师必须是科研出色的。很多教学很出色的老师,他可能是个优秀的老师,但未必是个优秀的大学老师。如果科研做得不好,首先学校不会认可,其次学生也不一定真正尊重和尊敬你。我深知,就算相比学院的很多老师,自己在教学科研上都做得不够好,但自己一直努力平衡教学、科研、带学生竞赛的时间,履行一个教育工作者的职责,希望做得更好。
这些年来,除了ACM,我也带其他的学生参加过很多别的竞赛,比如超算PAC/CPC,多次进入全国八强,最好成绩取得过全国第三名;有些学生大二就开始跟我做研究,他们很多都是绩点很高的学生。我经常把他们和ACM班的学生对比。ACM班学生的技术基础和洞察力、算法理解力,都是远超一般学生的,他们也具备科研需要的数理能力,但科研需要另一种热爱和投入,还有不一样的天赋,这些不一定跟所有ACMer匹配。从我的体会看,地大ACM的学生更适合那种理论+实践体验非常深刻的研究项目,如果天时地利人和,他们完全有能力做出些更有影响力的东西。
在四五年前的时候,我还是经常自己写代码,直到有一天,我把一个我觉得很难实现的问题交给一个研究生,他很快地就完成了,而且结果非常出色,从那时候起,我就知道,在写代码这块自己应该退休了。这些年来,自己的科研能力如果说保持了一定水平或者说有所提高,是有幸参加了一些老师项目学到了很多东西,但不得不说,更是有幸跟一些优秀的学生一起工作,他们开始的时候能帮你实现idea,最后有比你更好的idea自己去实现,我push他们,其实他们也push我不断学习和更新知识,他们是助手,也是工作伙伴。
4.后记
我2010年到计算机学院工作,当时的党委书记是李晖老师,她布置了个任务,叫我带带ACM队伍比赛。之前学院有几个很好的队员,也取得了很好的战绩,当时能排在武汉地区前三,但后来这些学生退役,也就逐渐没人搞了。我想刚到新单位,也就做点事情吧,就欣然答应。但后来发现这事情其实并不好搞,一是ACM是很耗钱的比赛,经费缺乏;二是难出成绩,学生更喜欢那些短平快的竞赛和项目;再就是要处理很多复杂的关系。幸好,戴光明老师当时把他的一个研究生分过来做了临时队长,再加上2009级的几个学生也慢慢成长起来,虽然成绩已大不如前,但也能勉强维持到那种每年能厚着脸皮问领导要经费的程度。
是的,大学老师带学生竞赛最大的不便还是向各个部门申请经费,这是我最不擅长的工作。但是幸好,大家都很支持。我尤其记得,几年前,童恒建老师还做副院长的时候,带着我拿着王院长的1:1经费配比的承诺和批示,去教务处申请经费,结果很顺利拿到了,虽然当时给的钱很少,但至少这种机制一直持续至今,没出什么大问题。而且几年前学院也开始对带学生获奖的老师进行了奖励,这样的政策是以前没有的。学院可能也意识到学生培养这块的重要性,有了一定的战略部署。无论怎么说,这些学科竞赛工作,没有学院的支持,老师怎么努力,是肯定做不了的。
带过学生竞赛的老师都知道这其中的苦乐,我期间自己打过退堂鼓,像傅苑老师都劝过我,这就不多说了。在我作为学生的时代,老师领导经常教育我们应该做事而不是徒虚名,善待学生,这些年来,不敢说做得很好,一直身体力行。地大ACM是个多方合作的平台,我只是做了很小的一部分,但我很感谢地大ACM,多少是个做事的平台。我常想,如果我把所有精力都投入科研,而不管ACM这摊事,可能我这些年能多发几篇论文多做几个项目,但我作为普通老师,就不会有机会和学院技术上最优秀的学生一起做事,这可能会是让我更为遗憾的。
科研工作还可以量化,但是教学和学生培养的付出,是很难量化的,更多是一种良心活。我看到学院“育人先锋”系列前面很多优秀老师出色的工作,特别是志庭老师对教学那种真心的付出,自己做不到所以特别感动。像志庭一样的很多老师,给ACM班推荐过很多优秀的学子,让他们加入训练。这些学生无论在竞赛中是否取得成绩,都已经在计算机学院这个大家庭中成长成才,这就是我们作为教育工作者的共同初心吧。