计算机科学(英语:computer science,缩写为CS)是一门包含各种各样与计算和信息处理相关主题的系统学科,从抽象的算法分析、形式化语法等等,到更具体的主题如编程语言、程序设计、软件和硬件等。它根植于电子工程、数学和语言学,是科学、工程和艺术的结晶。在20世纪最后的三十年间兴起成为一门独立的学科,并发展出自己的方法与术语。
CS究竟有多火?
自从第一台计算机诞生于美国后,美国在全球计算机领域一直处于领先地位,这也使得美国计算机产业迅猛发展,带动了整个就业市场。近10年,美国高科技发展迅速,硅谷更是是全球高科技公司的聚集地,巨大的就业市场和远高于平均水平的薪资待遇使CS成为了最热门的申请专业,每年吸引着大量的国际留学生。
同时作为STEM专业,原本抽中H1B的概率就已经大于很多专业,根据最新的数据,2017年美国移民局总共收到647,852 Labor Condition Application(LCA),其中计算机相关的岗位总共是336,513,比例超过50%。排名前十的岗位中CS领域超过半壁江山,平均薪资从$60000-$120000。
美国劳工部数据更是预测从2014-2024年还将增加488500个计算机相关岗位,增长率为12%。因此对于想留在美国发展的同学来说,选择计算机专业无疑会增加自己留下的几率。
CS专业详解
美国前100的学校中有80几个学校开设CS硕士专业,少数学校只有本科学位,例如Pepperdine U和Texas Christian U,少数学校例如MIT和斯坦福只招PhD,MIT的Master只针对本校学生,斯坦福的Master的课程都是online的。CS绝大部分是在计算机系,有一部分将EE和CS设在同一个系下面,比如UC-Berkeley, MIT, Northeastern U等;还有一些将CS和CE设在一起,比如说U ofWashington Seattle, UC San Diego等。
计算机科学大致可以分为三大类,分别是研究理论层面、系统软件层面和计算机应用层面,而下面又有更细的分支,多达十几个:
1. 系统与网络(System and Network)
2. 人工智能(Artificial Intelligence)
3. 计算机隐私与安全(Privacy and Security)
4. 编程语言(Programming Language)
5. 数据库(Database)
6. 计算机图形学(Computer Graphics)
7. 生物信息学与计算生物学(Bioinformatics and ComputationalBiology)
8. 算法(Algorithm)
9. 计算机理论(Computer Theory)
10. 科学计算(Scientific Computing)
11. 软件工程(Software Engineering)
12. 计算机体系结构(Computer Architecture)
13. 人机交互(Human Computer Interaction)
Artificial Intelligence
这几年申请最火的莫过于人工智能(Artificial intelligence,简称AI)。AI 这一概念最早出现于1956年的达特茅斯学术会议,是由CMU的Allen Newell 和 Herbert Simon等人提出的,他们指出人工智能是从计算机应用系统角度出发,研究如何制造出人造的智能机器或智能系统,来模拟人类智能活动的能力,以及延生人类智能科学(包括2个部分:模拟人类以及延伸人类智能)。1997年5月,IBM公司研制的深蓝(DEEP Blue) 计算机战胜了国际象棋大师卡斯帕罗夫,人工智能开始引起大家的关注,而近十年,不断出现无人机,无人车,到去年开始名声大噪的Alpha Go,这些都显示着人工智能在火速发展。
AI的应用领域主要有:1) 机器人领域;2) 语言识别领域;3) 图像识别领域;4) 专家系统。其分支包括:第一,模式识别;第二,机器学习;第三,数据挖掘;第四,智能算法。美国院校前76的学校中有60多所开设了AI方向,其中斯坦福在AI 领域有着最强的师资力量和研发团队,同时其优越的地理位置也使其和企业有着密切的合作,Google的无人驾驶汽车项目就是由斯坦福人工智能实验室主任塞巴领导谷歌一个团队承担的。
CMU最早开始研究人工智能,其计算机系下面有专门的机器学习和机器人的department,研究实验室从Machine Learning到CV都很齐全。而且不久前CMU宣布AI计划,它的目标是通过连接、整合校内的所有人工智能研究资源使CMU AI成为全世界规模最大的、最富经验的人工智能研究团队之一。
密歇根安娜堡和德州奥斯汀的AI方向也很不错,但其地理位置决定了它们的方向更侧重于硬件,比如密歇根重点应用于机器人方向,而Austin由于周边新建了很多相关的工厂,例如IBM,Intel,微软等,所以主要方向是和芯片研发配合相关的。
Machine Learning
除了AI,这几年我们还经常听到学生提起的是Machine Learning(机器学习)。Machine Learning是AI下面的一个分支,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。机器学习已广泛应用于数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、检测信用卡欺诈、证券市场分析、DNA序列测序、语音和手写识别、战略游戏和机器人等领域。上面提到的Alpha go的主要原理就是Machine Learning里面的深度学习。
除了CMU有专门的MS in Machine Learning以外,大部分学校是CS下面会有教授研究Machine Learning这个课题,所以一般情况下是以申请PhD为主,难度比较大。由于是交叉学科,所以除了CS系以外,EE和统计系下面也有不少教授是研究这个方向的,很多Mahcine Learning的大牛都是身兼CS和统计两个专业的教授,例如伯克利的M. I. Jordan。如果学生如果只是对Machine Learning这个方向感兴趣的话,也可以尝试申请统计方向下的。对于没有接触过Machine Learning,但是有申请想法的同学,建议先去coursera上先学习一下斯坦福大学的这门课程,不仅可以作为先修课背景,也可以更好的了解Machine Learning究竟在研究什么。
HCI
人机交互算是一门新兴的学科,交叉性比较强,涉及到计算机科学的多个学科方向(图像处理,计算机视觉,编程语言等)以及人文学科的多个方向(人体工程学,人因,认知心理学等)。虽然有关人机交互的研究可追溯到1975年,但近年来消费电子技术的进步打开了令人兴奋的新局面,所以很多学校开始这个方向的投资,申请该项目的学生也越来越多。但是总得来说现在有HCI方向的学校并不是太多,而且和Machine Learning很像,除了CMU, Gatech, U of Washington-Seattle等有专门的硕士学位,绝大部分学校都只是教授有相关的研究方向。而且很多学校的HCI会分为技术和设计两大类,比如Gatech下面就有4个track,分别为IC(互动编程)、ID(工业设计)、心理学和多媒体。因此和其他方向相比,HCI对于学生的计算机背景要求并没有这么高,反而更多会看重学生的作品集,好的作品集会加分不少。
就业方向分析
CS专业的学生就业方向非常广泛,以卡耐基梅隆CS专业为例,其毕业生的主要就业公司有知名的Amazon,Apple,Bloomberg,Facebook,Google等,就业的主要岗位有软件工程师,研发工程师,IOS开发工程师等。西海岸以硅谷的高科技园区为中心,辐射出一大片的新型创业公司,其中不少是由斯坦福,伯克利,CMU的校友联合创办,就业机会不断增多,因此可以看到CMU毕业生72%的就业是在西海岸。
申请形势分析
1. 专业背景
虽然美国大部分专业是接受转专业的,但是像CS这些技术性强的专业对于先修课程的背景还是有一定要求的,申请者必须有较多的计算机课程。例如康奈尔就明确指出学生要有5门同等level的课程:
Object-Oriented Programming and Data Structures;
Data Structures and Functional Programming;
Computer System Organization andProgramming;
Discrete Structures;
Basic Calculus and Linear Algebra.
2. 标化成绩
不管申请什么专业,标化成绩都是我们最先看的。建议申请者GPA不要低于3.0,因为这是很多学校的一条标线,如果想申请前30的学校,最好能到3.5+;托福很多学校官网要求只有80,但是很明显这个成绩仅供参考,真实申请和录取的学生分数远高于80。前30的学校一般需要100+,部分学校还有小分要求;GRE大部分没有明确要求,但建议是315+,数学部分165+。
3. 软性背景
软性背景一般包括实习,活动,研究,海外交流,比赛等,对于理工科学来说,最能体现他们能力的就是研究经历,实习和比赛。国内学生一般首先会考虑参加自己学校导师的一些项目,因为这是最便捷,而且也能自然而然产生一封推荐信。同时现在很多学校都和海外院校有合作关系,例如复旦大学就和UCB,UCLA,UCSD等有合作关系,优秀的学生可以去学期交换,甚至参加summer lab,这些经历再申请时都是亮点,当然能拿到海外导师的推荐信那就更加分了。一般国内本科生发文章难度比较大,但是可以尽量去尝试。除此之外,学生还可以参加一些相关的比赛,比较建议学生参加的是一些国际比赛,例如ACM国际大学生程序设计竞赛,北美ICM建模竞赛等,美国院校对于这些比赛的熟悉度比较高,所以比较认可在这些比赛中取得的成绩。
校外实习建议以研发部门和测试部门的技术岗为主,例如JAVA设计开发编程实习生,Software Development Engineer Intern,Web Designer Intern等。
启德留学CS案例分享
院校:985院校,软件工程专业
GPA:3.52/4.0
IBT:107GRE: 322
软性条件:2个课堂projects,2段研究,1段实习
录取学校:卡耐基梅隆,芝加哥,南加大,布兰迪斯
院校:985院校,CS专业
GPA:3.8/4.0
IBT:104 GRE:319
软性条件:5段研究经历,2篇论文,1段实习
录取学校:UIUC博士全奖,南加大博士全奖,普渡大学博士全奖,威斯康辛麦迪逊博士全奖
院校:985院校,计算机科学与技术
GPA:3.25/4.0
IBT:95 GRE:321
软性条件:3段研究经历,1段实习
录取学校:纽约大学(带奖),乔治华盛顿,罗切斯特,凯斯西楚等。
院校:非985非211院校
GPA:2.76/4.0
IBT:90 GRE:311
软性条件:1段实习,3段课堂projects
录取学校:SMU,SIT,Marquette University