Computer Science (计算机科学)早已成为了远近闻名的热门专业。根据2017年PayScale美国大学专业毕业薪资的排名,计算机科学虽然只排到第五,但凭着毕业初期的薪水高达7W+美元,也绝对是拉仇恨。
美国计算机科学专业(Computer Science,简称CS),是研究信息过程、用以表达此过程的信息结构和规则及其在信息处理系统中实现的学科。
CS是一门包含各种各样与计算和信息处理相关主题的系统学科,从抽象的算法分析、形式化语法等等,到更具体的主题如编程语言、程序设计、软件和硬件等,计算机科学分为理论计算机科学和实验计算机科学两个部分。
作为一个学科,计算机科学涵盖了从算法的理论研究和计算的极限,到如何通过硬件和软件实现计算系统。
有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。
MS学位
MS全称“Master of Science ”一般情况下是研究导向的学位,学生有更多的自主选择是否写论文的权利;如果继续从事研究或者读取博士学位,建议选择MS学位读取。当然美国计算机科学专业绝大部分学校提供的是MS学位,只有小部分学校开设ME学位。MS学位由于可能会需要做科研、写论文,部分院校读取的时长一般为1.5-2年的时间。
ME学位
而ME全称“Master of Engineering ”一般情况下是职业导向的学位,学生一般通过修课程或者做项目的形式毕业,极少有机会能够参与科研、撰写论文,除非有教授愿意指导学生,但是这种机会是很小的。ME学位由于没有论文,学习时长稍短,约1-1.5年。
CS专业分支:
计算理论与算法理论主要包括算法、算法学、计算复杂性理论等,算法指用系统的方法描述解决问题的策略机制。
程序设计语言与编译
研究把高级语言转换成计算机可识别的二进制,从而通过计算达到我们想要的结果作为输出,这个转变的过程即编译过程。
数据库与信息
数据库是按照数据结构来组织、存储和管理数据的仓库。常涉及信息检索,数据分析,数据测试,数据提取等,如图书馆管理系统,薪资发放管理系统和自动求职系统。
软件工程
一门研究用工程化方法构建和维护有效的、高质量的软件的学科,内容涉及程序语言,编程、需求分析、界面设计、功能设计和测试,如网上购物系统的总设计,校园图书馆辅助系统,通讯录管理系统开发等。
人工智能
研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,它试图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器,常涉及机器人,语音识别,图像识别,自然语言处理等。
人机交互
人与计算机使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程。
系统结构
主要是计算机系统的概念设计。
计算机图形和可视化
使用科学计算法将二位或三维图形转化为计算机显示器的栅格形式的科学,简而言之,就是研究如何在计算机中显示图形以及利用计算机进行图形的计算和显示的相关原理与算法。
计算机安全
保护计算机硬件、软件、数据等不遭到破坏、更改和显露。常涉及计算机网络安全,计算机系统安全,信息安全和密码学等。
计算机网络
将有独立功能的多台计算机,通过通信设备线路连接起来,在网络软件的支持下,实现彼此之间资源共享和数据通信的整个系统。研究内容常涉及计算机网络一些、移动网络、无线网络和网络安全。
科学计算
应用计算机处理科学研究和工程技术中所遇到的数学计算,主要包括建立数学模型、建立求解的计算方法和实现。
计算生物学
开发和应用数据分析及理论的方法、数学建模和计算机仿真技术,用于生物学、行为学和社会群体系统,主要是依靠大规模计算模拟技术,从海量信息中提取最有用的数据。
大多申请计算机科学的学生,去往计算机下软件工程、数据库、人工智能等方向,这些方向也都是就业需求量大,就业薪资较高的申请方向。
CS专业申请要求:
GPA
虽然美国前10名的学校大多都宣称只要在满分4.0的GPA中获得3.0以上就足以申请,但根据历年的实际经验,成功申请Top10计算机专业的申请者GPA一般都在3.6以上,个别学校的入学新生平均GPA可达3.8。
TOEFL
计算机科学专业对于托福的要求不高,一般达到80-85的区间就可以满足一般要求。
但如果学生的目标是TOP30名校,TOEFL最好能达到100分以上;
TOP30-60的学校,TOEFL90分以上会比较有优势。
GRE
GRE 310以上,为了得以体现自己的专业实力,获取美国名校青睐,分数考取得越高越好。
软件背景
推荐信、论文、重要的奖励或荣誉等相关的专业研究背景。如果是硕士申请,有丰富的研究参与经历,对于申请就会有很大的提升,如果是申请博士,如果能在专业领域有相关的论文发表,更容易获得学校和教授的关注。
CS专业顶尖院校介:
卡耐基梅隆大学(CMU)
CMU、麻省理工、斯坦福、加州伯克利分校是CS专业的四位大哥,实力不相上下。CMU在美国大学中最早创立了计算机系,后来又发展成为计算机科学学院,曾诞生过5位“图灵奖”获得者。
计算机科学学院下设CS、机器学习、人机交互等专业。CMU的CS专业不强制要求申请者本科也就读于CS专业,但科学相关专业的学生申请成功几率更大。项目时长三个学期,但转专业的申请者可能需要多学习一学期的基础知识。必须注意的是,CS的master项目和Ph.D是不一样的项目,master主要以就业为导向,学生毕业后大都直接工作,即使申请Ph.D也不会有优待。
斯坦福大学
Stanfor的CS设在工学院,规模较大,Faculty中不乏图灵奖得主和各个学科领域的大腕人物。在CS科研方面,斯坦福的理论、数据库、软件、硬件、人工智能等各领域都是实力强劲的顶级高手。
而斯坦福独具优势的地理位置——位于硅谷,也使得Stanfor堪称CS的天堂。斯坦福的CS专业还有与法学院以及MBA合作的项目,开给那些对CS感兴趣的法学硕士和MBA学员。
麻省理工学院(MIT)
MIT作为举世闻名的理工学院,曾为CS的发展作出巨大贡献。MIT开设了计算机相关专业,还有一个计算工程中心(Center for Computational Engineering,CCE),开设了两个交叉项目,MS in Computation for Design an Optimization(设计与优化计算硕士)、PhD in Computational Science an Engineering(计算科学与工作博士)。硕士项目时长12-18个月,PhD项目则需要4-7年完成,要求申请者硕士毕业,拥有数学、工程、物理学专业背景。如本科生要申请,需先入读该项目所参与系的硕士(MS)项目。
加州大学伯克利分校(UCB)
UCB的CS专业和EE一起成立了EECS院系,不仅开设了CS、EE专业,还有Electrical an Computer Engineering、Computer Science an Engineering这样的交叉混合专业。该校的MS in Computer Science适合那些以研究为导向但又不打算立刻读Ph.D的学生,申请要求和申Ph.D的要求一样。这个项目灵活性更强,毕业后既可以选择就业,也可以选择读Ph.D。项目时长1-2年,只接受秋申,不要求申请者本科专业为CS或EE,但最好有理工科背景,每年招收230人左右。
伊利诺伊香槟分校(UIUC)
UIUC的CS实力一流,曾经创造过辉煌。在CS Department下面设有MS&Ph.D项目,适合以学术研究为目标的学生,还有Professional Masters Program(MCS),是一个不需要理论研究的项目,注重实用性。该可以在MOOC上完成,也可以在学校完成,时长2-3个学期。
康奈尔大学
康奈尔的计算机理论方面颇有建树,CS的主要研究方向为人工智能、计算机科学、程序语言与逻辑、计算机理论等。康奈尔的CS专业被细分为Computer Science (M.Eng.) 、Computer Science (M.S.) 、Computer Science (Ph.D.)等方向。M.Eng项目只读一年,以就业为导向,适合以后准备工作的学生。该项目还有一个与NYU的合作项目,可以在纽约就读。
M.S和Ph.D都是以研究为导向,其中M.S项目适合那些想要在CS领域的进一步深造但又暂时不准备读博的人,学制4个学期。就读这个项目还能申请TA,学费也会比M.Eng项目便宜。
普林斯顿大学
普林斯顿的开设的CS是Master of Science in Engineering(M.S.E),时长两年,注重理论知识与实践,偏向于计算机工程,学生读完一学期后也可以申请转到Master of Engineering(M.Eng),更注重实践运用。普林斯顿的CS只有秋申,不提供周末和晚上上课的part-time项目,也不提供暑期课程。不强制要求申请者本科专业是CS,工程、科学、数学专业同样接受。
普林斯顿CS的研究领域主要有Comptutational Biology、Computational Marktets/Game Theory/Economics、Computer Architecture等。
CS专业就业方向:
开发人员/程序员/软件工程师CS专业里最基本的技能是什么?毫无疑问,肯定是编程。
无论你是硕士,还是博士,也不论你是学CS哪个方向的,研究算法(algorithm)的也好,人工智能(AI)的也罢,或者是软件工程(software engineering)、图形处理(graphics/image processing)、网络(network) 等,大家将来都有一条共同的也是CS里最大的出路,就是去写coe编程做软件开发,成为一名程序员。这个方向工作机会很多,通常可以在微软、IBM、苹果、甲骨文等软件或互联网公司找到一份高薪的工作。
软件QA(质量保证)/测试
当然,学习CS的很多人并不喜欢编程,或者编程能力比较弱,那除了做coing以外还能做什么呢?软件测试(QA/testing)就是一个不错的选择。从软件工程的角度来说,有人写软件,就得有人专门跟在后面找bug提高软件的质量。虽然QA的活以前一直被轻视,曾经被认为是可有可无的东西,不需要专门的QA。然而现在软件更替越来越快,QA被越来越重视,不可否认的事实是,QA不可或缺。
哪里有软件开发,哪里就需要软件测试,因此QA工作现在也有很多,已经在计算机行业里占了很大的比例了。
数据库/网络管理
这个方向对编程要求也很低,你不需要像开发数据库或者网络管理软件的人那样子,天天耗在编程里。这类工作还有很多优点:
就业范围广,稍微大点的公司、学校或者任何机构都需要有高级管理员来管理维护网络和存储备份数据库。
工作经验越丰富越受欢迎,因为很多工作就是得经验丰富的管理者才能处理好,不是随便扒拉一个没多少经验的人就能凑合着做的。
其他岗位
其他的工种也有很多,比如管理软件的发布和更新(release management)、用户界面(UI, user interface)设计,技术支持等等,但是一方面这些工作数量相对少,另一方面,不同的公司里,相同的职位名称可能具体的工作性质不太一样,比如做release management的,有的公司要求做很多QA的活,有的公司更靠近evelopers,还有的公司可能让你安装/搭建系统来管理不同的releases,跟个系统管理员似的,所以工作跟自己的兴趣相搭还是很重要的。