很多学生在申请过程中总是分不清 CS 和 CE 的区别,不知道自己应该申请哪个专业,对此头疼不已。那么 CS 和 CE 到底有什么区别和联系呢?今天就来给大家详细讲解一下。
其实 CS 计算机科学专业在美国来说概念很模糊,可以说 CS , CE 和 EE 是相通的。有些美国院校设有有单独的计算机科学系,也有一部分将 EE 和 CS 设在一个院系下的,比如说: MIT , UC Berkeley , Northeastern U 等。 从物理层面来区分 EE 研究的内容基本都是搞硬件的,电路这些, CS 纯搞软件的,甚至有些偏研究型的,而 CE 位于两者之间,软硬都有。真正来说, CE 更偏向于 EE ,因此很多学校都是把 CE 作为一个小分支方向放于 EE 大专业下,设置为 ECE 系,比如说 U Washington Seattle , UC San Diego , Penn State 等。 从操作层面来区分 CE 的学生拥有对电路、电子学和 VLSI 设计的非常深厚的认知,而这些都是现代计算机实际结构中至关重要的; CS 的学生研究的主题是算法、可计算性和编程语言,这些构成了高级程序设计和计算的基础。 从命名上来区分 Computer science 中的 science 的意思是知识或学问,它是来自拉丁单词 “to know” ,意思是 “ 知道 ” , Computer engineering 中的 engineering 则是来自拉丁单词 “to contrive” ,意思是 “ 设计 ” 。 从研究内容来区分 CS 专业下常见的研究内容 可以分为三大类,分别是研究理论层面的、系统软件层面的还有计算机应用层面的。 研究理论层面 (1) 计算理论 (Theory of computation) :是关于计算和计算机械的数学理论; (2) 计算几何学 (Computational geometry) ; (3) 并行计算 (Parallel computation) ; (4) 形式化方法 (formal metho) ; (5) 程序设计语言理论 (Theory of programming language) :是研究书写计算机程序语言的学科; (6) 人工智能( Artificial Intelligence )。 计算理论是学计算机的基础。多年以前,计算机系很多都是包括在数学系的。要选择这个方向的学生,需要具备比较高的数学功底和电脑基础性语言的知识储备。由于所涉及的研究领域比较枯燥和难懂,申请这些方向的人比较少,申请难度不是很大。
系统软件层面 (1) 体系结构( System Architecture ); (2) 网络与通讯 Network an Communication ; (3) 面向对象 Object-oriente ; (4) 约束程序设计 Programming Design ; (5) 软件工程 Software Engineering ; (6) 软件质量控制 Software Quality Control ; (7) 实时系统与嵌入式系统 Real-time an Imbee System ; (8) 数据库系统 ( Database System) :用户使用数据库的计算机软件 / 硬件资源的集合。即采用了数据库技术的计算机系统; (9) 大规模计算中的 I/O :在大规模计算中实现计算机主机与外围设备进行信息交换的技术。 系统软件层面的这些方向是中国的计算机科学系培养的大学生的中心方向。所以每年有很多的申请者申请这个方向里的内容。主要集中在网络与通讯,软件工程,数据库系统等几个方向。这几个方向的竞争性比较大。因此条件一般的申请者注意避开上面几个专业方向申请会把握比较大。
计算机应用层面 (1) 科学与工程计算:这个范围很广,简单说说就有:生物信息处理,天气预报等。 (2) 电子商务与数字化图书馆; (3) 人机交互; (4) 计算机教育:用于教学,培养计算机人才。 计算机应用层面下的细分方向在很多学校会结合在前面两个方向之中,特别分出一个专业方向的会很少。教学的内容主要是应用式的。由于这个方向的技术难度不大而且研究深度相比前面两个也略浅,所以每年都吸引了不少 CS 背景不太强的申请者,而同时一些本科是管理学院下的信息管理和电子商务的也到这个方向上分一杯羹。 CE 专业下常见的研究内容有: 计算机系统、计算机体系结构、分发和并行系统 , 并行处理 , 并行算法 , 计算机网络、硬件软件交互、集成电路设计、嵌入式系统、数值分析、系统仿真、机器人技术、神经网络、交换网络和大型系统等。其实学生在申请时无需对 CS 与 CE 在名字上有太多纠结,更需要的是研究每个大专业下的分支方向,通过了解各个学校开设的课程来选择自己感兴趣的分支方向去申请。