美国计算机科学专业 (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 年。
计算理论与算法理论主要包括算法、算法学、计算复杂性理论等,算法指用系统的方法描述解决问题的策略机制。
程序设计语言与编译研究把高级语言转换成计算机可识别的二进制,从而通过计算达到我们想要的结果作为输出,这个转变的过程即编译过程。
数据库与信息数据库是按照数据结构来组织、存储和管理数据的仓库。常涉及信息检索,数据分析,数据测试,数据提取等,如图书馆管理系统,薪资发放管理系统和自动求职系统。
软件工程一门研究用工程化方法构建和维护有效的、高质量的软件的学科,内容涉及程序语言,编程、需求分析、界面设计、功能设计和测试,如网上购物系统的总设计,校园图书馆辅助系统,通讯录管理系统开发等。
人工智能研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,它试图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器,常涉及机器人,语音识别,图像识别,自然语言处理等。
人机交互人与计算机使用某种对话语言,以一定的交互方式,为完成确定任务的人与计算机之间的信息交换过程。
系统结构主要是计算机系统的概念设计。
计算机图形和可视化使用科学计算法将二位或三维图形转化为计算机显示器的栅格形式的科学,简而言之,就是研究如何在计算机中显示图形以及利用计算机进行图形的计算和显示的相关原理与算法。
计算机安全保护计算机硬件、软件、数据等不遭到破坏、更改和显露。常涉及计算机网络安全,计算机系统安全,信息安全和密码学等。
计算机网络将有独立功能的多台计算机,通过通信设备线路连接起来,在网络软件的支持下,实现彼此之间资源共享和数据通信的整个系统。研究内容常涉及计算机网络一些、移动网络、无线网络和网络安全。
科学计算应用计算机处理科学研究和工程技术中所遇到的数学计算,主要包括建立数学模型、建立求解的计算方法和实现。
计算生物学开发和应用数据分析及理论的方法、数学建模和计算机仿真技术,用于生物学、行为学和社会群体系统,主要是依靠大规模计算模拟技术,从海量信息中提取最有用的数据。
大多申请计算机科学的学生,去往计算机下软件工程、数据库、人工智能等方向,这些方向也都是就业需求量大,就业薪资较高的申请方向。
GPA虽然美国前 10 名的学校大多都宣称只要在满分 4.0 的 GPA 中获得 3.0 以上就足以申请,但根据历年的实际经验,成功申请 Top10 计算机专业的申请者 GPA 一般都在 3.6 以上,个别学校的入学新生平均 GPA 可达 3.8。
TOEFL计算机科学专业对于托福的要求不高,一般达到 80-85 的区间就可以满足一般要求。
但如果学生的目标是 TOP30 名校,TOEFL 最好能达到 100 分以上; TOP30-60 的学校,TOEFL90 分以上会比较有优势。
GREGRE 310 以上,为了得以体现自己的专业实力,获取美国名校青睐,分数考取得越高越好。
软件背景推荐信、论文、重要的奖励或荣誉等相关的专业研究背景。如果是硕士申请,有丰富的研究参与经历,对于申请就会有很大的提升,如果是申请博士,如果能在专业领域有相关的论文发表,更容易获得学校和教授的关注。
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 作为举世闻名的理工学院,曾为 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 的 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 的 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 哪个方向的,研究算法 (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,跟个系统管理员似的,所以工作跟自己的兴趣相搭还是很重要的。
【微语】愿你走出半生,归来仍是少年。愿你留学一遭,回首有爱相伴。