海外留学申请计划

新春第一更。海外留学申请是一项系统工程,知己知彼,百战不殆。利用互联网做充分调查是必要的。比如国外大学的基本要求和申请流程等等。还需要通过一些早年申请者的结果来判断申请难易程度,正确的判断对于战略战术准备很有帮助,错误的判断可能导致最终全军覆没。

申请方式:DIY

基本性能

  • 硬 件:83%,本科排名: 大陆 Top 10
  • 竞 赛:ASC世界大学生超级计算机竞赛一等奖与一项世界纪录;高中NOIP一等保送;ACM省赛水铜牌一枚;大学校级算法竞赛一等二等若干;全国数学建模竞赛三等两次;MCM三等。
  • 科 研:无Paper;高中时代在OI竞赛杂志上发表过文章
  • 实 习:省重点实验室研究助理
  • 实 践:练手项目若干
  • 奖学金:两次

目标探测

要申请的专业是计算机科学,人工智能/机器学习也OK,主要目标英联邦。英国:G5中除了LSE都申请了,外加两个大众情人学校曼大和爱大。香港:基本就是两大名校中选择。非英联邦国家:有考虑慕尼黑工业、苏黎世联邦理工、洛桑联邦理工,另外因为法国的大学对于PL的研究非常重视,所以也考虑过。

学校名称 专业
剑桥大学 MPhil in Advanced Computer Science
牛津大学 MSc in Computer Science
伦敦帝国学院 MSc in Advanced Computing
伦敦大学学院 两个志愿 MSc in Machine Learning & MSc in CSML
爱丁堡大学 两个志愿 MSc in Computer Science & MSc in Artificial Intelligence
香港大学 MSc in Computer Science
曼彻斯特大学 MSc in Advanced Computer Science

*注:上述排名参照 USNEWS 世界大学(2015)综合排名。要注意,有些英国大学的CS硕士项目开设了「CS班」,这种专业是给「没有」计算机背景的人准备的,它会从零开始教授如何编程,所修的专业课包含部分本科课程,科班出身的同学申请时不要弄错了以免浪费一年的时间和财力。牛津和爱丁堡的CS项目都是普通的,可以放心申请。如果想去IC学普通的计算机科学,那么你要申请先进计算(Advanced Computing)或某些Specilism,UCL同理。

文书加成

需要有的文书有SoP/PS,CV/Resume,推荐信,RP(研究型需要,否则不用),学位与绩点证明,实习证明,活动或竞赛参与证明。

如果能够找到牛推是最好的,不行的话凑齐三封就可以,我找最了解我的两位Prof和一位Dr,Dr是超算大赛的教练,而Prof都是我的课程老师,其中一位是我FYP的导师。

结果

学校名称 结果 专业
剑桥大学 Rejected MPhil in Advanced Computer Science
牛津大学 Rejected MSc in Computer Science
爱丁堡大学 Con Offer MSc in Artificial Intelligence
爱丁堡大学 Con Offer MSc in Computer Science
伦敦大学学院 Rejected MSc in CSML
伦敦大学学院 Con Offer MSc in Machine Learning
伦敦帝国学院 Rejected MSc in Advanced Computing
曼彻斯特大学 Con Offer MSc in Advanced Computer Science
香港大学 Con Offer MSc in Computer Science

*注:上述排名参照 MicrosoftComputer Science 领域专业排名 (链接已经失效)。

申请流程

申请的流程一般如下:

填写申请表格,交报名费(如果有),然后会进入self-service系统(如果有),在系统中可以追踪申请结果以及后期需要提交的文件等,包括语言(Official),护照和学位证明。

经过申请发现:

  • UCL和Oxford用的申请系统长得很像
  • ICL和NYU用的申请系统长得很像
  • CamU和ManU用的申请系统长得很像

不是所有的学校都会安排测试环节,有些学校只是通过上传的文书发offer。

Cambridge

剑桥大学申请系统挺特别,里面限制不少,而且self-service系统设计的不怎么人性化,感兴趣可以自己试试。MPhil in ACS不需要PS和CV,替代它们的是一套调查问卷,这个问卷的重点是需要写个mini版的研究计划,我写了两份,第一志愿是人工智能相关课题,第二志愿则有关程序设计语言。同时还让你预演选课,也就是说不是真选课,是看看你的兴许点在哪里。都忙完后就可以等待面试通知了,因为官方说想要去剑桥读这个项目必须通过面试,如果很幸运没有面试,那么只能说……。我就是那个幸运的人:)

Oxford

他家有笔试和面试,笔试共四道题目,通过学校和学院筛选后会有笔试。第一题是简要介绍学术背景,第二题是概率,第三题是算法设计和证明,第四题是程序片段分析。都不算难,我在提交了笔试答案后过了一个多月等到了面试。面试问的问题也不算难,我看过以前同学的面经,相比之下,我的面试显得过于简单了。

一上来直接就问相关问题,没让我自我介绍,对方是个来自欧洲大陆的教授,英语有点口音但是说得很清楚,大部分还是听得明白的。首先是问我是不是计算机科学相关专业的(可能这么问的),我没听到关键词说不是,我是软件工程的。他问有什么区别吗?我说了一堆,最后总结就是其实本科阶段学得很类似。他说我就是这个意思,结果你说NO。好吧,我听错了。

第一个专业问题是什么是P对NP,我回答的是在确定性图灵机中是否可以在多项式时间内解决等等,接着追问了什么是NP-hard,我举了一些例子,提到了八皇后问题。主要考察的是概念,没有让你现场分析NP问题。然后问了我喜欢什么课程,我说算法,数据结构,线性代数和高数等。然后他问,排序你了解吗,我说了解,可以分为稳定的和不稳定的两类。比如说快排不稳定,但是冒泡排序稳定。然后他追问,什么是稳定的排序。我举了个具体的例子解释稳定性。回答完后他问我归并排序的时间复杂度是多少?我说nlogn,他问,你是说Big O记号吗,我说没错。然后让我解释Big O,但是我听错了,分析了一遍为何是nlogn。结果教授说,我是说Big O你是怎么理解的,我反应过来了,他问的是关于大O记号的定义,然后我更正了自己的答案。

自由提问环节我问了一下牛津关于数学的看法,教授blahblah…说了一堆,其实就是说牛津当然觉得数学基础很重要。我也当然知道,只是一时没想起来有什么好问的,随便问了这个问题。以上就是面试全程了,自己的表现不是很好,尤其是有误解问题的情况发生,这是致命的。我也不太清楚面试的淘汰率究竟是多少,一路从申请、笔试、面试过来也明白一些问题,那就是有时候不要太在意别人给你的定位(尤其是中介,很多问题他们都不懂,而且不太会帮你什么),要相信自己,想想在你自己看来你的自我定位是什么?有一丝一毫的希望也要勇于尝试,不论结果如何,挑战有时让你学得更多。

Edinburgh

爱大的专排挺高,AI 和理论计算机科学:比如「Programming Language」等尤其不错,是欧洲人工智能的中心。「信息学院」下设的专业都是UoE的王牌专业之一,我根据自身的兴趣爱好申请了Computer Science 和 AI。人工智能程序语言 Prolog 目前最主要的两个方言之一便是Edinburgh,函数式程序设计语言 ML 就是诞生于此。同时 HaskellGeneric Java 的核心作者 Prof. Philip Wadler 现在也在这里工作。申请的过程很简单,不需要额外参加面试和笔试,提交完申请表格后等待结果就好。

UCL

UCL有笔试,我申请了两个项目,分别是ML和CSML,这两个项目是同一个委员会负责的,我更青睐后者,申请了一段时间后,UCL寄过来一套笔试题目,一共15道,全是数学题,感觉比牛津的笔试难度大。题目主要是概率论和数理统计,加上一点微积分和线性代数。概统的题目较多而且繁杂,存在相当一部分我没深入学习甚至没听过的概念,但是微积分和线性代数部分却非常简单,看来这也许是我们基础课学习的侧重点不同而导致的吧。答完笔试题目后就可以等待结果了。

ICL

伦敦帝国学院挺不错的,质量很高而且只要是他家的专业领域,几乎都名列前茅。跟牛剑一样必须面试,所以提交完成申请材料后只要安静的等待好了。如果给了面试一般就是愿意录取,否则就没有下文了。

Manchester

老牌的理工强校,有兴趣可以自己查一下这所学校的历史。不需要申请费,推荐信可以自己提交的,提交完后等待结果就好。

HKU

HKU有面试,他家的面试形式是最多8人一组进行群面,主要考察口语水平,积极性和英文逻辑思维能力等。我的面试过程大致是,没有自我介绍,第一个问题是Why港大。我说了Environment,包括语言、文化、学术等。第二个问题是开放性的编程问题,我觉得主要考察的是逻辑的完备性等等,问题本身挺简单。最后则是学生提问,整个流程40分钟,自我感觉还算OK。

关于排名

首先我们说到底要不要纠结于一个排名,这得见仁见智了,起码排名给了我们一个参考。具体来说,每个人的需求不同,追求的属性也不一样,有人只注重声誉,那么可以参照 TIMES QS USNEWS 这三家的大学综合排名。而有的人则注重专排。我把我申请的大学的综排和专排都给了出来,以供参考。综排通常都是声誉排名,也就是这所大学的名气,一般这类排名浮动很大,一所学校今年25明年可能30+也可能前15了。这是因为主观因素比较多造成的,至于哪个排名比较靠谱,我个人认为很难说。另一方面,专业排名就相对稳定多了,因为学校的学术实力在那摆着,没那么轻易浮动,有变动也不至于大起大落。但是如果说综合排名「仅供娱乐」,那么专业排名有时候更需要小心,因为很多专业排名其实「不专业」,我只了解计算机科学,这里仅说计算机,判断计算机科学排名靠谱不靠谱就看排行榜的前四名,今年是2015年,到现在为止,如果前四名不是斯坦福、麻省理工、卡内基梅隆、加州大学伯克利那么这份排名几乎是不可信的,我想学计算机的同学都知道为什么。就个人而言,我通过综排决定要不要申这所学校,而通过专排决定最终去哪。以上只是一己之见,还请各位看官慎重决定。

附1:英国官方学术排名REFARWU计算机科学排名2017全球大学人工智能Top30

ARWU计算机科学排名

当前人工智能广受追捧,要知道很多大学是开设独立AI学位的,感兴趣的同学可以参考下面的排名:

乌镇指数:全球人工智能发展报告(节选)

后记

每个人出国的情况都不同,我的经验对于应届生更加合适。对于这些申请者来讲课外学术经历和课内GPA是核心,一切文书包括PS、CV、RL和RP等都是围绕着你自身的软硬条件来的。申请海外名校,GPA非常重要,不低于生死线3.0「约加权80%」是常识。如果有可能的话,收获3.7「约加权87%」以上的GPA是比较乐观的,其他情况只好尽人事、听天命了。但也不需要过分拘泥于这点GPA,有时候去或留就是那么回事,话说:宠辱不惊,闲看庭前花开花落;去留无意,漫随天外云卷云舒。另一方面,那些能让我们去挑战去收获更多的事物,例如学科竞赛、高质量的项目、科研和实习等,我是大力推荐的,如果你有创业的经历则更加锦上添花。这些活动能让你有大量机会接触业界前沿,认识一些强者,避免出现井底之蛙的情况。目前我们的基础学科教育「高数、线代等」还说得过去,但专业课程是大陆土本的弱势,谋事在人,成事在天,自己平时也要下足课内外的功夫,光指望学校的课程是不够的。

最后,祝天下出国党申请顺利,与君共勉。

附2:我用来辅助计算排名的小程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>

using namespace std;

double num[10][6], par[] = {0.125, 0.125, 0.25, 0.25, 0.125, 0.125};
string name[10];

template <class T>
void swap(T& a, T& b){
T c = a;
a = b;
b = c;
}

int main(){
//QS,THE,USNEWS,ARWU,ARWU_CS,QS_CS&IS
cout << "QS,THE,USNEWS,ARWU,ARWU_CS,QS_CS&IS" << endl;
for(int i = 0; i < 9; ++i){
cin >> num[i][0] >> num[i][1] >> num[i][2] >>
num[i][3] >> num[i][4] >> num[i][5];
for(int j = 0; j < 6; ++j)
num[i][5] += num[i][j] * par[j];
cin >> name[i];
}
for(int i = 0; i < 9; ++i)
for(int j = i + 1; j < 9; ++j){
if(num[i][5] > num[j][5]){
double temp = num[i][5];
num[i][5] = num[j][5];
num[j][5] = temp;
swap(name[i], name[j]);
}
}
for(int i = 0; i < 9; ++i){
cout << num[i][5] << " "<< name[i] << endl;
}
return 0;
}