Skip to content

学术竞赛

本科

算法类

  1. 国际大学生程序设计竞赛(ACM-ICPC): 由美国计算机学会举办,计算机领域的顶尖程序设计大赛,含金量高。 一般是三个人组成一队使用一台机器,在比赛时有多次提交机会。比赛实时评测并返回结果,如果提交的结果出错,则会有 20 分钟的罚时,错误次数越多,加罚的时间也越长。每个题目只有在所有数据点全部正确后才能得到分数。比赛排名根据做题数来评判,做题数相同的,根据总用时来评判。总用时是每题用时的和。每题的用时是从比赛开始到做出该题的分钟数与该题的罚时之和。
  2. 中国大学生程序设计竞赛(CCPC):与ICPC赛制相似。

这两个都是经典的算法比赛,感兴趣的同学可以在入学第一个学期参加校内程序设计比赛,取得成绩后进入ACM队进行训练。

AI类

Kaggle: Kaggle 是一个进行数据发掘和预测竞赛的在线平台。

竞赛项目由公司等需求方提出,可以理解为一个“众包”平台。选手通过出题方给予的训练集建立模型,再利用测试集计算结果进行评比。在截止日期之前,所有队伍都可以自由加入竞赛,或者对已经提交的方案进行完善。 在统计、数据科学等领域认可度很高,不论是求职还是留学,Kaggle都可以作为简历中的闪光点。

Kaggle现在的知名度相比前几年高了不少,不论是Research还是Featured,取得成绩并不容易,但依旧可以充分利用Getting Started和PlayGround板块通过实际应用场景进行联系,会对数据分析能力有很大提升。

安全类

  1. 全国大学生信息安全竞赛: 全国性质的安全大赛,每年一次,分为初赛和决赛,以团队形式参赛,每队不超过4名同学,时间跨度大致从3月到9月,分为作品赛(提交工程作品)和实践赛(攻防实战),含金量高。 复旦大学在该比赛中的历届参与及获奖度高,多次获得作品赛和实践赛的一等奖,有兴趣可以提前与校内有过参赛经历的学长学姐请教(比如白泽战队成员),一起参赛。
  2. “强网杯”全国网络安全挑战赛: 全国性质的安全大赛,每年一次,分为线上赛、线下赛、精英赛,以团队形式参赛,时间跨度大致从12月到次年1月,线上赛报名每队不超过10名队员和1名指导教师;线上赛获奖赛队可申请参加线下赛,且同一单位只能出线1支赛队,线下赛每队不超过4名队员和1名指导教师;成绩优秀参赛队还会被邀请参与精英赛。赛事都是以解题的形式进行,赛事奖金较为丰厚。

单项能力

全国大学生计算机系统能力大赛(CPU设计赛、编译系统设计赛、操作系统设计赛-OS内核实现赛道、数据库管理系统设计赛):

该比赛是一系列比赛的集合,考察的是参赛者对计算机底层的理解与实现,这些赛事每年都会举行一次,并且对于计算机专业的学生而言,都有相对应的基础课程需要学习,可以去上相应的荣誉课程,在充分实现相对应的课程Pj后冲击相对应的底层赛事。大部分赛事都分为设计赛和挑战赛,设计赛一般实现相应的架构比较跑分或丰富度,挑战赛则会给出具体的题目要求进行设计。

具体来说,CPU设计赛占用整个暑假时间,最终产物是跑在FPGA实验板上的CPU,可以在大二下学习完计算机体系结构课(该课程需要实现流水线CPU)后和同学组队参赛,该赛事学校参与也较为活跃,老师也会在课上进行宣传,几年前也有团队拿过冠军。 编译系统赛事占用整个暑假时间,最终产物是一个编译器,可以在大三下学习完编译原理(该课程中会实现一个助教设计的语言的编译器)后和同学组队参加,老师同样会在课堂中组织,这几年复旦在该赛道也多次获奖。 操作系统的比赛战线较长,一般上半年2月就开始报名,战线从上半年的学期到暑假这段时间,所以可以在大三上学习完操作系统(该课程会实现一个类似于xv6的简易OS)后与同学组队参加。老师会在课堂中宣传,这几年复旦在该赛道也多次获奖。

数据库的比赛进行时间同样是暑假,但以我知道的情况学校的参与度不高,我之前也并未在数据库课程中进行数据库的实现。

应用类

全国大学生软件创新大赛: 这个比赛是要求学生提交应用类软件,根据比赛给出的不同主题提交作品进行评比。比赛分为区域赛和全国赛,时间跨度大致为每年的10月到次年5月, 以组队报名形成参赛,每个参赛队人数不超过 5 人(其中队长 1 名,指导教师 1 名,指导教师必须为教师,其他队员不超过 3 名),支持跨专业组队和本科生、研究生混合组队。 从官网得知,该赛事的主题范围并不局限,有很大发挥空间,不过要注意的是软件作品须基于 Android 平台进行开发,需要有相应的开发能力。

上述部分竞赛同时是复旦大学本科生推免加分的指定竞赛,详情请参见复旦大学本科生学科竞赛工作管理办法适用竞赛表

img

研究生

  1. 竞赛要有一个人做完的准备。在大学里虽然有很多同学对参加竞赛的兴趣很大,但如果真的要完成一件事情的时候,大家都有各自不同的选择和方向。刚开始大家都想把事情做好,但到后面每个人可能都有属于自己的生涯规划。

  2. 竞赛并没有想象的那么难。很多比赛主办单位,承办单位并不一定是非常有影响力的。另外大家可参加的比赛众多,可能拿奖并没有你认为的需要天赋、努力、机遇。多参加比赛能让你对这一个过程不断熟悉,甚至只要有经费,你自己都能办一场比赛的地步。但肯定要有一项,持续的努力。

  3. 研究生的竞赛请更多的去参加偏向科研学术类型的竞赛。如NIPS,CVPR等国际会议举办的竞赛或由知名大公司举办的竞赛。国际会议竞赛往往有更高的认可度,参加的人员有很多大佬,在参赛期间,可以进行更多的交流和分享,他们可以是你未来高质量的学术伙伴或者竞赛合作伙伴。知名公司的竞赛往往带有选拔性质。如果你参加知名公司的竞赛,最后的内容质量高,会收到对应公司的意向申请以及未来的合作申请。个人认为在很多时候,竞赛带有筛选性质,它能让你在一群人里被组织者看见,并对你伸出橄榄枝。请更多的把握这段内容,很多的朋友都因为参加国际会议竞赛和大公司竞赛而获得不同的机遇。

  4. ACM和RoboCup是大厂和大学导师非常看重的含金量极高的竞赛(ACM毋庸置疑,RoboCup主要机器人方面),但准备时间和竞争激烈程度也很高。如果你获得了相应奖牌,那恭喜你。但也不要太骄傲。因为这两年越来越多的人卷ACM,它已经变成了含金量极高的竞赛,而并不再是大厂ssp的敲门砖了。但依然是在计算机领域不可撼动的、非常重要的竞赛。

  5. 竞赛如果不是个人参加,则需要考虑团队配合。你可能需要更多的协调团队的工作,有时候团体比赛比个人赛更麻烦。因为团体赛,你的团队并不是一个像你一样,人人都独挡一面的人,可能大家都有自己需要忙的其他事情,因此协商是一件非常必要的事情。真重要的事情,请以自己作为最后兜底。

  6. 竞赛很多时候只是研究生生涯的一部分,看淡一些。多体验不同的生活,不同的竞赛会有不一样的举办地点,可以去外面认识不同的人,了解不一样的风土人情,不一样的风光,这也是一段非常有意义的生活体验。