在竞争性编程方面的良好形象是否有助于获得美国顶尖大学算法/理论计算机系统/系统的顶级硕士/博士学位课程的录取?如果是,哪些具体大学鼓励此类申请?
我熟悉招生流程,并与几位在topcoder(美国前40名)和ACM ICPC(决赛金牌)上表现出色的学生合作过。
硕士课程与博士课程有很大不同,因为 MS 学生大多需要参加课程,而不一定要参与研究。CS/CE 博士美国顶尖大学的招生委员会主要对潜在学生的三个元素质感兴趣。它们按重要性降序排列:(1) 进行研究的能力,(2) 交流研究结果的能力,(3) 完成正式博士要求的估计能力(第 1 项和第 2 项除外)。第三项的解释各不相同——一些 CS 课程需要很重的课程,并仔细查看您的 GPA 和成绩单,有些则不需要。考试成绩和您的申请材料会影响对沟通技巧的看法。当然,非英语母语者不需要在 GRE Verbal 和 GRE Writing 中与母语者竞争,但所有申请人都应避免在写作中出现明显的语法问题(眨眼,眨眼 - 现已修复)。在密歇根,我们最近录取了一些 GRE 成绩很差的顶级程序员,他们在 CS 博士中表现不错。程序。
出色的竞赛编程记录证明了 (A) 您理解困难挑战的能力,(B) 您解决问题的能力,(C) 您对“标准”算法和算法分析的全面了解,(D) 您的编程经验和调试技巧,(E) 您的生产力,以及 (F) 您独立工作的能力(例如,为比赛做准备)。所有这些都有助于博士级别的 CS 课程,这些课程通常需要阅读、算法和软件开发(理论除外)。A、B、E 和 F 应该适用于任何类型的研究。D 对大多数非理论项目很有用(“系统”一词在不同学校的解释非常不同,所以在这里要小心)。许多理论家对软件实现(甚至是他们自己的算法)不感兴趣,但这取决于个人。C 的价值较低,因为在每个专业领域,算法都是专业的,但仍然很有价值。
竞争性编程经验显然非常有用且受到高度重视(例如,如果您在 ACM ICPC 上获得了区域赛的冠军,或者单独赢得了一些比赛)。但这并不能说明你的长期创造力、沟通技巧、战略规划能力以及你对研究的兴趣。您可以通过以某种形式解决这些问题来改进您的申请材料。不过,提高机会的主要方法,尤其是在顶级 CS 项目中,是具有经证实的研究能力。这在申请者中很少见,作为本科生合着一本像样的出版物是一件大事。如果你在本科时与教授一起参与了定向研究,并且能收到一封强有力的信,那也有帮助。
CS博士的大多数录取通知书。计划包括经济援助,而大多数 MS 提供的服务不包括。如果您正在考虑获得奖学金,您的 GRE 成绩应该不错,并且您应该在其他申请人中脱颖而出。对于研究助学金 (RA),您的潜在赞助商/顾问会想知道您在团队中的工作情况(ICPC 经验可以提供帮助)。对于助教 (TA),您需要具备人际交往能力。教学经验通常对研究生入学有用,但很少见。MS 申请者不太可能被考虑获得奖学金。新生获得助教职位的情况很少见,但在拥有许多 TA 职位的大型公立大学(加州大学系统和大型中西部学校)中会发生。在较小的私立大学,研究助学金有时是 CS 的大部分财政支持。
你的目的陈述应该扩展你的研究兴趣——对数据库感兴趣的学生会被数据库教授等考虑。申请材料很强,但没有明确的研究兴趣和热情的学生可能会落空。如果您没有获得奖学金,那么从事需要编码的研究项目的教授很可能会为您提供 RA。但是 (a) 复杂性理论的研究,其中编程技能大多无关紧要,(b) 孤立算法的理论研究,(c) 孤立算法的应用研究,以及 (d) 涉及构建和优化软件系统的研究.强大的编程技能与 (c) 和 (d) 最相关。
至于具体的CS项目,可以看看最近2-3年ICPC入围名单,看看有哪些美国大学出现在那里。这是一个很好的迹象,表明他们关心竞争性编码(但反之亦然——他们可能在区域内有强大的竞争对手)。一般来说,任何合理的 CS 录取委员会都会为您在竞争性编程中的高知名度给予加分。
在我建议的竞争性编码员中,有几位做得非常好,并且在他们的论文项目中利用了他们的技能(然后在行业中做得很好)。有些人在两年内就厌倦了——其中有些人在这个行业做得很好。请记住,成功获得 CS 博士学位。程序需要一个非常不同的心态。博士辍学程序不是灾难——你会得到一个硕士学位(根据你的课程),并且在软件和金融行业会很受欢迎。
祝您申请顺利,
伊戈尔·马尔科夫