ACM俱乐部的脚印
记者 沈娴菁
由计算机学院师生牵头成立的武科大ACM(美国计算机协会)俱乐部,成立3年已经硕果累累,国内国际奖项共获58项。第一届ACM俱乐部骨干成员共8人,6人考入名校研究生,2人在名企工作,其中ACM俱乐部创始人李博在北京邮电大学第二轮上机考试中名列第一,编程能力超过许多名校学生。 ACM俱乐部成长了一批人,希望更多的人能从中获益。 这是ACM俱乐部第二届主席陈茂森的理想。
如此优秀的成绩背后,是ACM俱乐部成员刻苦学习的汗水,是指导老师们无私的奉献,是他们一步一个脚印,扎实地编程能力。
第一个脚印:它出生了!
2011年计算机学院2010级学生李博跟着老师王磊,参加由谷歌公司主办的算法设计比赛。该比赛主要考察参赛者的解决实际和调度的能力。为了更好应战,老师和参赛学生组建一个学习小组。线上老师发布题目,学生做题,线下老师和学生加强沟通,老师指导学生,讲解解题思路。
备战不容易,比赛结果出人意料。李博看着题目,复杂的题目内容,手指放在键盘上,却是一行代码也没敲出来。最后,只有老师写出了2000多行代码,并运行成功。这让李博很挫败,也让他开始思考怎么才能提高我校学生的算法能力?
算法能力不可能一步登天,李博想从最基础的开始。李博找到了微软,但微软只能给他一个成为MSP(Microsoft Student Partners)的机会。如果加入,自己会得到微软提供的最前沿的技术资源,以及更广泛的交流、展示自我的平台。 一个人搞,没意思。 李博想提升武科大学子的整体算法水平,他放弃了这个让旁人眼红的机会,继续寻找。
此时,李博想到大一接触过的ACM国际大学生程序设计竞赛。这项比赛由美国计算机协会(ACM)主办的,在国际上极具影响力,能展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力。并且入门门槛低,算法难度由浅入深,资金经费也不需要很多,只需要一台能够编程的电脑,但奖的含金量特别足。许多名企十分看重这项比赛,不少企业在比赛结束后,直接与优秀的学生签署协议。参加这类比赛的学生也都是校园里一等一的高手,是个高手云集的擂台。
如果能组建一支团队,参加这个比赛,能打响我们学校的名声,也能成为一个很好的推销自己的名片。
于是,李博把自己的想法与孟成博、叶云东、李传卓、周展鹏分享 成立武科大ACM俱乐部。李博带着想法,找到了计算机学院辅导员老师蔡路,老师十分鼓励他们。后又得到计算机学院陈东方副院长的支持。紧接着,5个人趁热打铁,开始忙活起来。设计宣传海报,收集大赛信息,海量的题目搜索,联系打印店,申请官方微博,招贤纳士 李博想把ACM俱乐部办成务实、开拓、一流的俱乐部,为热衷于ACM竞赛的同学搭建一个一流的学习交流平台。
通过多方努力,2011年11月28日,武科大ACM俱乐部成立了!
成立之初,俱乐部一穷二白。李博发现工程训练中心四楼的机器人足球基地场地较大,若在里面改变下结构,或许可以再挤出一个新的实验室,可供俱乐部成员训练。于是李博找到了计算机学院负责人。学院负责人多次到工程训练中心实地考察,与工程训练中心负责人论证可行性,协调工程队,利用暑假完成了基本装修。 俱乐部训练期间,学院书记、院长多次到实验室看望我们,嘘寒问暖像亲人一样,很温暖。 涂兆峰同学感动地说。
138平米的空间,各类编程书籍琳琅满目,立式空调、小型饮水机、打印机摆放有序,三五成群的学生围坐在一起讨论得热火朝天 走进工程训练中心四楼,浓浓地学习氛围马上感染到记者。
第二个脚印:李总来了!
刚刚起步的ACM俱乐部,并不知道哪条路才是适合自己的,只能在实践中慢慢知道自己在哪条路走了弯路。
计算机学院为ACM俱乐部配备3位指导老师,分别是陈东方、王磊、李顺新。每周老师们轮流为ACM俱乐部进行一次讲座。老师的讲座固然给成员们极大的帮助,但繁琐冗长的实际操作,一堂讲座远远不够。ACM竞赛对参赛者提交的代码质量要求很高,而老师的指导只能给成员们一个大方向的把握,若是一题题精讲,工作量大道简直无法想象。
2012年初,ACM俱乐部确定李顺新老师为总指导老师。李老师在ACM俱乐部建设上倾尽全力,被同学们亲切地成为 李总 。在此之前,李总也只是知道有这样的比赛,接手俱乐部后,才真正地开始接触ACM。从无到有是个漫长积累的过程。所有人都是瞎子过河。
李总首先将所有ACM比赛中涉及的知识体系进行梳理,亲自搜集各种题型,把题目分类,并附上正解。有一些难度系数较大的,自己就亲自做做,一道题至少要花上几个小时。李总每天关注国际上ACM的动态,一发现好的题目,就收集下来。 计算机是一个更新换代迅速的领域。我们必须时刻关注这些变化。 现在李总共收集了一万余题,前前后后花费两年时间。
题集对于ACM而言,远远不够。 ACM竞赛的训练过程是个长时间高强度的过程。必须得有比赛。 李总组织大家展开寒暑假集训。
2012年第一届暑假集训,集训时间是每周一至周六,早上8点至11点半,下午1点半至5点,晚上7点至10点。整整8个星期,成员们在教三研究生实验室里度过。禁止娱乐,禁止迟到早退。如有违规,就会有惩罚。
为了保证学生在校的安全,也为了更好指导学生训练,李总全程陪同集训。披星戴月地回家,迎着日出赶到学校。晚上不少学生就在实验室里,铺张凉席就睡了。有时,李总不放心学生,就在办公室里睡了,陪着学生。暑假里,李总陪学生的时间比陪家人还多。
所谓集训,就是刷题。日日夜夜都面对着显示屏,手指一刻不停地敲打键盘,高强度的训练,难免会有些抵触情绪。 孩子们都比较内敛,为了缓解压力,放松自己,我会采取一些手段。 李总笑着说。 集训中印象很深刻地就是李总带我们去游泳馆游泳! 买西瓜! 请吃饭! 提到李总,俱乐部成员各个都像说起自己的爸爸一样亲近。
第三个脚印:拿到铜牌!
2012年ACM俱乐部共打了5场比赛,成绩都不是很理想。参加第一场现场赛时,看到题目,大家面面相觑,一道题目都没有做出来。这对辛苦训练的成员都是不小的打击。李总和俱乐部成员痛定思痛,总结以前的训练方法,重新制定一套更加科学、严格的训练方案。成员比以前更刻苦学习。
李总为激励大家,让大家进入俄国的一个算法竞赛网站,俗称Codeforces。该比赛面向国际,所有参赛者随机分配到不同的房间同台竞技。要求在2个小时内解决5道题,比赛结束后可以与其他选手沟通赛后心得,分享开源代码。比赛是场累计赛,李总规定累计分数在1700分以上奖励100元,1900分以上奖励200元,2100分以上奖励500元。现在已有不少人获得了奖励,而这些奖励都是李总自掏腰包的。
李博曾在Codeforces比赛中结交到一位以色列的朋友,赛后分享代码时,他得瑟地说: 我的程序有个BUG,但是你们都没有找出来。 在这个平台上,成员们接触到许多 大牛 ,学习到很多知识,帮助他们迅速成长起来。
2013年10月18日周五,李总带着团队来到成都 第38届ACM国际大学生程序设计竞赛亚洲区域赛。在去的路上,大家压力很大,如果再没有取得好的成绩,俱乐部的发展将困难重重。
周六下午2点至5点是热身赛。陈茂森、肖豪、李成明组成的PI代表队,热身赛共三题,三人合作默契,三题都答出来了。热身赛开了一个好头,对场地也熟悉了,大家踌躇满志地期待正式比赛的到来。
周日下午2点,比赛正式开始。每队做出来多少题,队伍旁边的气球就是多少。李总不能进入比赛内场,只能在场外观望,焦急地数着气球。去年比赛的阴影还在,做题时队员们的心都提到嗓子眼。第一题很容易,很快解决了。第二题经过讨论也写出来了,提交!出错了!罚时!快调试!在PI代表队旁边的队伍是北大的代表队,气球一个接一个与自己擦身而过,队员们心里着急。李总看着他们三个盯着屏幕,手指却没有动作,眼看成绩就要被超了,心里比他们还着急。就在此时,第二题通过了!快!第三题!一次通过!时间到!
比赛一共10题,PI代表队成功调试3题,排名铜牌区16名!
李总和队员们都欢腾了。这是一个零的突破!陈茂森、肖豪和李成明每个人累计做题700多道;寒暑假集训的高强度;因为一道题而争论不休的日子;用一个星期时间拿下一道题的坚持;两年来无数次熬夜刷题的辛苦 在那一刻,都感觉值了。
第四个脚印:全民刷题!
2012年ACM俱乐部举行宣讲会,足够容纳200多人的教室被挤得水泄不通。参加首轮笔试的人整整坐满了两个大教室。
2013年ACM俱乐部改变招新方案,决定实行 宽进严出 。所有人进入ACM在线评测系统刷题。每周发布20道题,共三周。综合答题者正确率、用时时间、答题数量,对所有答题者进行分数排名。每周在平台上公布排行榜。只要能做对50道题目的人,就可以加入ACM俱乐部。随后,每周会有周赛,每个月会有月赛,还有集训选拔赛、对外竞赛选拔赛等等,采取末位淘汰制,不够努力的同学就会被劝退。
尽管在这种强压下,大家还是激情满满。测试平台的注册用户高达700多,每周完成率在60%左右。
新生没有电脑怎么敲代码?用手机!蹭学长学姐的电脑!抢占图书馆电子阅览室!计算机1304班的詹乓自从刷题后,一发不可收拾, 根本停不下来! 。白天没课就去图书馆二楼上机敲代码,常常敲着错过了饭点。晚上就用自己手机上下载的C语言程序软件敲代码。因为手机键盘敲代码实在太痛苦了,切换输入法,删除修改代码都不方便,詹乓干脆在网上买了一个蓝牙手机键盘。在实体键盘上敲代码,输入到手机上,再上传到测评系统。天天如此,敲得不亦乐乎。
又报错!再来! 计算机1303班雷一鸣做一道题,就提交了近20次代码。ACM算法对格式的要求十分严格,而且系统不会提示你哪里出错,唯有不断修改更新代码才能让屏幕出现 成功 的字样。计应(电)1303班的徐训加入ACM俱乐部后,调侃到 自己交了个女朋友。 他每天一有时间就是在刷ACM的题目,就像交了一个不省心的女朋友。
这种 刷题 热不仅在新生里盛行,还有不少高年级的学生也加入其中。软件1202喻光宝提交152次代码,共解决72题。
除了ACM俱乐部的成员,还有很多学生在评测系统刷题。南三633寝室的四名大一学生将评测系统上的题目手抄下来并完成,在上机课时,再验证自己的代码。其中李雄说: 刷题的氛围很浓厚,不会的题目大家多讨论就会了。
评测系统上显示,网上10点至凌晨2点是提交代码的高峰期。保守估计,计算机学院至少60%的学生在此系统上刷过题。
更多更多的脚印
有人加入ACM俱乐部是为了比赛拿奖,有人加入是对算法有激情,有人加入是想把课本知识融会贯通,有人没有加入俱乐部,但是在评测系统上刷着题。ACM俱乐部的脚印遍布得越来越广。
游吉,第三届ACM俱乐部主席。第一次ACM俱乐部招新时,他没有符合要求,但是他没有放弃。身边有人加入了ACM,他就问他们都在学习什么?做哪些题?不懂就问,课余时间充分利用。第二次招新,他才加入。起步比别人晚,那就用努力补上。他很快追上大部队脚步,再追上俱乐部大牛们的脚步。努力终有回报,在2014年ACM/ICPC全国邀请赛西安赛区,他与涂兆峰、陈泉两人组成的8086队获得一枚银牌。
李博和陈茂森,分别是第一届和第二届ACM俱乐部主席,但是水平上不分伯仲。有一次,两人同时面对一道题目。李博还在思考时,陈茂森就开始敲代码,李博惊讶地问: 看完就敲,这里还要涉及很多东西呢! 陈茂森敲完代码,运行,一次通过!李博一下子就被秒杀了。李博考研那段时间,他觉得浑身不舒服,后来一想,原来是没有刷题了。
黄亚南,蝉联每周之星次数最高的女生。大一就加入了ACM俱乐部,但没能坚持下来,退出了。大二学习了很多专业课程,发现都是一些理论论断,没有实践,于是重回ACM俱乐部。石启芳也是大二加入俱乐部的。 虽然知道怎么写,但是没有实战训练,数据结构、数值计算基础等课程都感觉学得不扎实。 石启芳还准备参加暑假集训队,她笑着说: 在家呆2个月,一定会发霉的。还不如和大家在一起!
赵君君,第五届 蓝桥杯 全国软件专业人才设计与创业大赛省赛(省赛)一等奖得主,但由于高等数学亮了红灯,被李总婉言劝退。李总为ACM俱乐部立下2条铁律,第一不能挂科,第二不能玩游戏。 学生还是首先得把课堂学习搞好。 李总建议赵君君先把课堂学习搞定,然后再重新回到俱乐部。现在在俱乐部的骨干成员,成绩名列前茅,都获得过学校奖学金。
除开学院每年给ACM俱乐部的经费外,俱乐部还得到多方支持。图灵教育出版社,ACM俱乐部实验室里的部分书籍是由他们捐赠的。ACM俱乐部通过微博找到图灵教育出版社,提出能否赞助计算机方面相关图书时,出版方爽快地同意了。在此前俱乐部的图书都是李总自掏腰包购买的。除此之外,李总还赞助俱乐部小型打印机等。为了ACM俱乐部进一步发展,俱乐部的老成员们也捐出部分钱。就这样你一点,我一点,俱乐部有了自己的饮水机、图书馆、打印机
由ACM俱乐部开发的OJ在线测评系统,通过做题、一键提交、系统测试运行,再迅速反馈给答题者。上机答卷,机器改卷,精准度比人工要强很多。目前2014年,我校计算机学院研究生复试上机考试用的就是这个测评系统。目前,为了更公平,提供更快便捷的服务,测评系统在改版升级中。