Computer Science 计算机专业
在美国大学,计算机专业主要分为计算机科学(Computer Science,简称CS)和计算机工程(Computer Engineering,简称CE),还有计算机科学与工程、计算机科学与数学等混合交叉专业。计算机科学和计算机工程虽同属于计算机专业但学习内容还是有一些不同的。计算机科学属于理科,主要研究计算机理论基础及其运用,理论性更强。相比于计算机工程,CS(计算机科学)的研究领域更广,下设许多分支,例如人工智能、计算机程序设计、计算理论、计算机图形、数据库建设、信息技术、信息安全、游戏设计等。CE(计算机工程)则主要是研究计算机如何运作并且做到更快捷更精准,主要包括计算机软件与硬件工程两方面。CE大多设置在工学院,而且与电气工程(EE)专业联系紧密,有的学校甚至将两个专业合并在一起学习。
一、CS专业的研究方向:
1.系统与网络(System and Network)
计算机网络是利用通信设备和线路将地理位置不同的、功能独立的多个计算机系统连接起来,以功能完善的网络软件实现网络的硬件、软件及资源共享和信息传递的系统。简单地说,即连接两台或多台计算机进行通信的系统,此分支方向主要的学习内容从网络基础理论,拓扑结构,相关组成硬件,传输媒体(光导纤维,同轴电缆,双绞线的有线传输,卫星传输,红外线传输,激光传输,无线电波等无线传输),到各种网络协议等。
2.人工智能与机器人(Artificial Intelligence and Robotics)
主要包括机器意识(包括机器学习,知识表达与推论,机器人),动态系统模拟,动力学计算,触觉控制(haptic control)自然语言习得与处理,计算语言学,统计语言技术,自动推理,图形图像,人机交互,成像感知与传感器,概率推论,神经估算,计算机视觉,视觉场景认知,模式识别,人工免疫,神经网络,遗传算法,小波分析,信息系统以及计划,信息提取,制造和控制理论等。
3.计算机隐私与安全(Privacy and Security)
计算机安全主要是保护计算机与网络免于滥用和干扰。从过去的历史看来,计算机攻击一般来说包含了攻击系统的完整性,保密性与可用性。而如今的信息安全技术一直在发展中,不单包含了对上述攻击的防御,同时也增加了更多的应用,如垃圾邮件,以及防止身份盗用而导致的信息泄露等。
4.编程语言(Programming Language)
包括开发新型编程语言以助程序员实用高效地开发可靠的软件,计算机辅助语言学习,计算语言学,从初阶的打字理论,自动定理证明,语义学等发展到如今的基于语言的途径以解决计算机安全与分布式编程中的重大问题,语言应用,编程分析与优化等,可以从根本上提高软件可靠性与安全性。
5.数据库(Database)
与数据管理相关的所有方面,包括数据存储,数据检索,数据分析和视觉化,如为超大型数据组开发高效算法,为各种新型的应用领域建立大型的数据系统,也有与其他领域进行跨学科的研究,可应用的领域有电脑游戏设计,数据隐私与安全等。
6.计算机图形学(Computer Graphics)
计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。如何在计算机中表示图形,以及如何利用计算机进行图形的生成、处理和显示的相关原理与算法,构成了计算机图形学的主要学习内容。图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。从处理技术上来看,图形主要分为两类,一类是由线条组成的图形,如工程图、等高线地图、曲面的线框图等,另一类是类似于照片的明暗图(Shading),也就是通常所说的真实感图形
7.生物信息学与计算生物学(Bioinformatics and Computational Biology)
人类基因工程的完成对现代生物学中的新型计算和理论工具提出了新的要求。这些计算和理论工具对于分析,理解和控制生命的具体信息都是至关重要的。生物信息学与计算生物学在此历史背景下应运而生。此方向属新兴的研究,主要是利用应用数学,信息学,统计学与计算机科学的方法来研究生物学的问题,因此也需要从事此方向学习和研究的学生有较强的数学和统计背景。目前来说研究方法包括对生物学数据的搜索(收集和筛选),处理(编辑,整理,管理和显示)及利用(计算和模拟)。
8.算法(Algorithm)
广义上面的算法是指为解决一个问题而采取的方法和步骤,而CS下的算法则是指计算机为了解决某一个问题或者完成某一个任务的一系列清晰的指令。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。现代的算法理论主要的研究目的在于如何开发出更加效率的算法,研究相关的算法的设计方法与实现技术。
9.计算机理论(Computer Theory)
计算机理论,顾名思义,是为计算机科学的发展与研究提供理论基础的一门学科。这个课程的学习涉及到CS的核心课题,归纳起来涵盖了可计算性、文法与自动机、逻辑学、复杂性及语义学等5个部分,涉及到可计算性理论、形式语言、逻辑学与自动演绎、可计算复杂性和编程语言的语义等内容,并学习和研究这些内容之间的联系
10.科学计算(Scientific Computing)
科学计算,又称为计算科学,它的主要学习内容和研究领域是利用数学模型的构造以及数量分析的技术,通过计算机来分析和解决科学问题。在实际的应用中,科学计算经常用于计算机仿真以及其它各种问题的数学计算,包括数值模拟、模型拟合与数据分析以及最优化计算等等。数值分析(Numerical analysis),是科学计算专业方向中所会应用到的核心方法。
11.软件工程(Software Engineering)
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它的目标是在时间、资源、人员这3个主要限制条件下构建满足用户需求的软件系统,包括提高软件质量设计新的形式与结构、开发新的科技以降低软件系统的成本、提高软件的正确性与实用性。软件工程的关注点是如何为用户创造价值。在学习内容方面它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面
12.计算机视觉(Computer Vision)
计算机视觉,又称为机器视觉(machine vision),是一门研究如何“教”机器“看世界”的科学,更进一步的说,就是指用摄影机和计算机代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图像处理,用计算机处理成为更适合人眼观察或传送给仪器检测的图像。作为计算机分支学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。比较经典的计算机视觉应用包括识别(如在巨大的图像集合或视频中寻找包含指定内容的所有图片或视频片段)、运动(图像跟踪:跟踪运动的物体)、场景重建以及图像恢复等等。
13.计算机体系结构(Computer Architecture)
计算机体系结构主要学习与研究计算机的结构和功能,以及它们在电子技术方面的应用。抽象来说,计算机体系结构是一个系统在其所处环境中最高层次的概念;它确定了一台计算机硬件和软件之间的衔接。具体地说计算机体系结构指的是计算机系统设计的观念与架构,描述计算机在实做的设计原则。它确定了一台计算机设计的部件、部件功能以及部件间接口。以常见的冯·诺伊曼设计为例,体系结构设计包括了:指令集、微体系结构、数据表示、寻址方式、寄存器定义、指令系统、异常机制、机器工作状态的定义和切换、输入输出结构等。
14.人机交互(Human Computer Interaction)
人机交互,简称HCI,是一门研究人、计算机以及它们之间的相互影响的学科。人机交互技术是指通过计算机输入、输出设备,以有效的方式实现人与计算机对话的技术。它包括机器通过输出或显示设备给人提供大量有关信息及提示请示等,人通过输入设备给机器输入有关信息,回答问题等。人机交互技术是计算机用户界面设计中的重要内容之一。它与认知学、人机工程学、心理学等学科领域有密切的联系。
二、学制和培养方式:
美国CS专业硕士一般学制分为M.Eng.和M.S.两种学位。MEng项目大多为一年专业硕士学位,项目重点是培养学生的领导技能,同时加深技术基础。MEng项目专门针对希望在毕业后进入相关行业就业的学生。课程设置基本上是course based,也就是说学生只需要按要求修满一定的学分,然后通过一个综合性的考试,或完成规定的项目报告,就可以拿到学位,对科研没有硬性的要求。学生可以选择跟着教授做科研,也可以选择只完成上课的要求。而MS项目则是偏研究方向,毕业生大多有计划向更高的博士学位或者工业研发职业发展,一般学制为一年半或两年。MS是course+research based,也就是说,一般情况下,学生除了按要求需要完成学分课程,还要参与科研,并完成毕业论文,才能获得学位证书。
主要课程
● Parallel Functional Programming
● Deep Learning for Computer Vision
● Intro to DevOps
● Elements of Data Science: A First Course
● Applied Deep Learning
● Foundations of Blockchains
● Formal Verification of System Software
● Representation Learning
● Information Theory in CS
● The Synthetic Control Method
● Advanced Web Design Studio
● Topics in Virtual and Augmented Reality
● Computation and the Brain
● Cloud Computing and Big Data
● Practical Deep Learning System Performance
● Empirical Methods of Data Science
● Fundamentals of Speech Recognition
● Analysis of Networks & Crowds
● Cybersecurity: Tech Policy Law
● ML w/Probabilistic Programming
三、就业方向:
主要是Developer和QA两类
1.Developer /Programmer/Software Engineer
不管你是硕士,还是博士,不管你是学CS哪个方向的,将来都有一条共同的也是CS里最大的出路,就是去写code编程做软件开发。公司里资历久,对核心产品底层architecture懂的多的技术骨干,工资也是很高的,而且地位高工作也稳定。
2.Software QA(Quality Assurance)/Testing
编程能力比较弱或者不喜欢编程,将来我能不能不去coding? 做软件测试(QA/testing)就是一个选择。从软件工程的角度来说,专门跟在后面找bug提高软件的quality。QA重视程度被提高,工作现在很多,在计算机行业里占了很大的比例。QA对技术的要求相对低。同样经验/教育背景,QA的工资应该比developer低,但是差别也不是很大。很明显,学CS任何一个方向的人,都可以胜任QA的工作。
3.Database/Network Administration
数据库/网络管理对编程要求不高,在就业市场有以下特点:
1)就业范围广
2)工作经验越丰富越受欢迎
3)信息社会,公司对数据库和网络依赖严重
这类工作工资高,也比较稳定。前段时间有些金融公司即使大幅度裁员,核心的网络和数据库管理员也会被保留。这类工作的缺点是入门比较难,公司希望你能有相关的实战经验而不仅仅是会点学校里的理论知识。所以,职业规划是从事这个工作的学生,在校时一定要注意多找实习工作锻炼实操能力。
4.Others
计算机专业知识应用很广,不同的公司里,相同的职位名称可能具体的工作性质不太一样。还有其他类型的工种,比如用户界面(UI,user-interface)设计,usability,Technical support等等,但是这方面的工作选择面相对较少。
四、录取标准&申请条件:
CS专业不强制要求申请者本科读于CS专业,但工科相关专业的学生申请成功几率更大。目前也有一些学校开设了适合本科非CS的项目,例如宾大,南加大,威斯康辛麦迪逊,但是通常也会要求本科完成先修课程,比如:微积分,离散数学,概率统计,数学逻辑,计算原理,数据语言编程,数据结构,计算机结构,操作系统,运算法则分析等。
申请材料基本要求包括:
1. 大学本科成绩;
2. 语言成绩:托福或雅思;
3. 标化成绩:GRE;
4. 推荐信(1-3封不等);
5. 简历;
6. PS或SOP(各学校要求不同);
7. 先修课程要求(各学校不同);
8. 面试(各学校要求不同)。
有任何申请问题
扫描二维码联系小助手吧