美国CS十三大研究方向课程详解 (1)

转帖文章,感谢分享者!以下文章对美国计算机专业各分支(文章列取十三个方向)研究领域做了非常详细的阐述,主要是美国计算机专业课程方面的。作者参考了计算机四大名校(卡梅、MIT、斯坦福以及加州伯克利)等几个学校的资料,并在就某些细节与相关领域的研究人员作了探讨。

  本系列要解读以下方向(按英文首字母顺序):

  体系结构、编译器和并行计算 Architecture, Compilers and Parallel Computing

  系统与网络 Systems and Networking

  理论与算法 Theory and Algorithms

  人工智能 Artificial Intelligence

  编程语言 Programming Languages

  数据库与信息系统 Database and Information Systems

  图形学与多媒体 Graphics and Multimedia

  人机交互 Human-Computer Interaction

  科学计算 Scientific Computing

  信息安全 Security

  软件工程 Software Engineering

  生物信息学和计算生物学 Bioinformatics and Computational Biology

  计算机教育 Computers and Education

  一、体系结构、编译器和并行计算 Architecture, Compilers and Parallel Computing

  体系结构和编译器的研究主要集中在硬件设计,编程语言以及下一代编译器。

  并行计算研究的包含范围很广,包括并行计算的计算模型,并行算法,并行编译器设计等。

  Course Website:

  Computer Architecture and Engineering

  http://inst.eecs.berkeley.edu/~cs152/sp10/

  Advanced Computer Architecture

  http://www.ece.cmu.edu/courses/18741

  Parallel Computing

  http://beowulf.lcs.mit.edu/18.337/index.html

  Applications of Parallel Computers

  http://www.cs.berkeley.edu/~demmel/cs267/

        二、系统与网络 Systems and Networking

  可细分为:

  (1)网络与分布式系统(Networking and distributed systems):移动通信系统,无线网络协议(wireless protocols),Ad-hoc网络,服务质量管理(Quality of Service management,QoS),多媒体网络,计算机对等联网(peer-to-peer networking, P2P),路由,网络模拟,主动队列管理(active queue management, AQM)和传感器网络(sensor networks)。

  (2)操作系统(Operating system):分布式资源管理,普适计算(ubiquitous computing/pervasive computing)环境管理,反射中间件(reflective middleware),中间件元级操作系统(middleware “meta-operating systems”),面向对象操作系统设计,允许单个用户与多计算机、对等操作系统服务交互的用户设计,上下文敏感的分布式文件系统,数据中心的电源管理,文件/存储系统,自主计算(autonomic computing),软件健壮性的系统支持以及数据库的系统支持。

  (3)安全(Security): 隐私,普适计算,无线传感器(wireless sensors),移动式和嵌入式计算机,规范,认证,验证策略,QoS保证和拒绝服务保护,下一代电话通讯,操作系统虚拟化和认证,关键基础设施系统,例如SCADA控制系统和医疗,消息系统,安全网关,可用性安全。

  (4)实时和嵌入式系统(Real-time and embedded systems):开放式实时系统,Qos驱动的实时调度和通信协议,控制设计和实时调度整合,实时、容错和安全协议整合,网络化器件和智能空间的鲁棒动态实时构架。

  Course Website:

  Computer Networks

  http://bnrg.eecs.berkeley.edu/~randy/Courses/CS268.F09/

  Operating Systems and Systems Programming

  http://inst.eecs.berkeley.edu/~cs162/sp06/

  Operating System Design and Implementation

  http://www.cs.cmu.edu/~410/

  Embedded System Engineering

  http://www.ece.cmu.edu/~ece348/

       三、理论与算法 Theory and Algorithms

  计算机理论研究主要集中在算法和数据结构的设计与分析,以及计算复杂性的研究。具体包括最优化(optimization),计算几何和拓扑(computational geometry and topology),近似算法(approximation algorithms),密码(cryptography)和安全计算(secure computation),网络设计(network design),数据挖掘(data mining),机器学习(machine learning),有限元网格生成(finite-element mesh generation)和自动化软件验证(automatic software verification)。

  Course Website:

  Advanced Algorithms

  http://courses.csail.mit.edu/6.854/current/

  Efficient Algorithms and Intractable Problems

  http://inst.eecs.berkeley.edu/~cs170/sp09/

  Advanced Approximation Algorithms

  http://www.cs.cmu.edu/~anupamg/adv-approx/

  Convex Optimization

  http://www.stanford.edu/class/ee364a/

        四、人工智能 Artificial Intelligence

  这个领域包含广泛的研究课题,包括知识表示,机器学习,计算机视觉,推理和机器人等。

  知识表示(knowledge representation):把知识按照一种有利于推理(得出结论)的方式表示出来。

  机器学习(machine learning):自动学习如何识别复杂模式并基于数据作出智能决策。

  计算机视觉(computer vision):使机器自动从图像和视频中提取信息并理解其中包含的视觉概念。

  推理(reasoning):学习推理的计算模型。

  机器人(robotics):工程学和机器人技术,以及它们的设计,制造,应用和结构配置。

  Course Website:

  Machine Learning

  http://www.stanford.edu/class/cs229/

  Computer Vision

  http://www.andrew.cmu.edu/course/16-720/

  Knowledge Representation and Reasoning

  http://www.cs.berkeley.edu/~russell/classes/cs289/f04/

  Artificial Intelligence

  http://inst.eecs.berkeley.edu/~cs188

  Introduction to Robotics

  http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/16311/www/current/

       五、编程语言 Programming Languages

  该领域的研究包括计算机语言的设计与实现,其目标是同时提高开发人员的开放效率和软件质量。包含如下一些课题:

  (1)程序语言设计和实现(Programming Language Design and Implementation):编译器优化(Compiler optimization),语义(Semantics),即时编译器(JIT complier),域特定语言(DSL:Domain-specific languages)。

  (2)编程环境和工具(Programming Environments and Tools):监控(Monitoring),程序员搜索引擎(Programmer search engines),基于模型的设计(Model-based design)。

  (3)程序分析和验证(Program Analysis and Verification):模型检测(Model checking),静态和动态分析(Static and dynamic analysis),定理证明(Theorem proving),实时系统的任务调度分析(Schedulability analysis for real-time systems)。

  Course Website:

  Programming Languages and Compilers

  http://inst.eecs.berkeley.edu/~cs164/sp10/

  Programming Languages

  http://www.psrg.csail.mit.edu/6821/

  Compiler Design

  http://www.cs.cmu.edu/~fp/courses/15411-f08/

美勤精英顾问