乐趣区

全民CS校训就是搬砖这所学校计算机顶尖是有原因的

原文链接

卡耐基梅隆大学(下文简称为 CMU)的计算机科学享誉全美,被视为该领域的领导者。CMU 的计算机科学研究生教育全美最佳,软件工程专业更是遥遥领先于其它名校,本科生的声誉也在雇主中排名第一。

像这样的顶尖大学,本文无法面面俱到,而是从计算机专业培养入手,结合 院系 课程 培养方案 等角度总结其培养学生的特点,为 CS 领域或想转行 CS 的小伙伴提供可借鉴的方法和参考。

校训

CMU 的校训是卡耐基先生的名言:My heart is in the work(我心于业),即使经历了百年内数次重大革新,这样的信念依旧根深蒂固融于整个大学文化中。

在校训的指引下,卡耐基梅隆大学 对学生的训练异常严格,课业繁重,在普林斯顿评论(Princeton Review)每年“学生累得像狗的大学排名”中,从来高居前几位,与加州理工学院、麻省理工学院、芝加哥大学、普林斯顿大学等同为美国乃至全世界训练最为残酷的大学。

最大的学院

在院系设置上 CMU 和 UC Berkeley、MIT 和 Stanford 都不同,计算机是一个独立的学院 -计算机科学学院,School of Computer Science 下面简称 SCS。SCS 是为数不多将计算机科学独立设院的大学,隶属于 CMU 七大学院之一,是全美乃至全世界最大的计算机学院。因此,CMU 的学生戏称自己是全民 CS。

SCS 下面设置多个部门和研究所,由这些研究所为学生提供专业和培养方案。

丰富专注的课程

CMU 的课程也是按编号管理的,格式为 XX-xxx,前缀XX 表示课程由哪个部门开设,计算机科学部的编号是 15,后面的 xxx 是一个三位数,第一位表示课程的难度 / 水平,一般数字越大,难度和级别越高。

计算机科学学院的课程信息查询有多种方式:

  • 课程表。
  • 不同部门开设的课程。
  • Catalog 为学生指引。

课程表

以学期为单位发布当前学年的完整课程表,里面列出当前学年的所有课程,但是只有课程信息、上课地点,没有具体的课程页面,适用于本校学生查询。

研究所课程

除了上面的两种方法,在计算机科学学院每个部门、研究所官网上都有详细的课程信息:

  • Computer Science Department Course List:计算机科学学院的课程列表
  • Machine Learning Department:人工智能系课程
  • Human-Computer Interaction Institute:人机交互研究所课程
  • Robotics Institute:机器人研究所课程
  • Language Technologies Institute:语言技术研究所课程
  • Computational Biology Department 下的本科课程和研究生课程
  • Software Engineering Institute Courses:里面的课程偏向培训

课程目录(Catalog)

计算机学院大而全,院系和课程都非常多,Catalog 是以学院下属的研究所、部门为单位进行细分的:

  • 计算机系全部课程列表
  • 人工智能专业下的课程
  • 计算机科学专业下的课程
  • 机器学习
  • 软件工程
  • 语言技术

如果上面的课程让你眼花缭乱,你可以到专门的课程搜索页查询课程。

上面介绍的三种方法可以让你找到自己需要的课程,这里总结几个比较出名的课程:

  • 15-440/640 Distributed Systems,这门课有两个版本,Yuvraj Agarwal 和 Srini Seshan 上的 Fall 学期,以及 Satya 和 Babu 上的 Spring 学期。Fall 的 15640 用 Go 语言,更加偏向于应用一些(e.g. 实现 mapreduce、比特币挖矿),Spring 的 15640 用 C 和 Java, 更加偏系统一些。
  • Fundamentals of Programming and Computer Science,全美最好的五门计算机课程之一,面向本科生的基础课程,最新课程页面为:https://www.cs.cmu.edu/~112/,目前还没有更新,感兴趣的小伙伴可以持续关注。
  • 15-213: Introduction to Computer Systems,该门课程诞生了著名神书 CSAPP,书和课程配套学习效果最佳!
  • 10-605 in Fall 2017 Machine Learning with Large Datasets
  • 17-445/645 Software Engineering for AI-Enabled Systems

教育

SCS 的研究生教育和人工智能专业全美排名第一,做到如此成就,在教育上自然有其自身的特点,笔者总结为:方向丰富、领域专注、提供交叉专业

本科

因为 SCS 是一个大学院,下设七个部门,而且有全美顶尖的专业,所以它不仅为本系学生提供了全面的培养体系,也为 CMU 的所有学生提供了计算机学习机会。SCS 的专业设置大概分为以下几个类型:

  • Undergraduate Majors:面向 CS 系学生的专业
  • Undergraduate Additional Majors:类似国内双学位,学生可以修两个专业,这里的 CS 是第二学位
  • Undergraduate Minors:辅修专业,全校的学生只要符合条件都可以选择

基于上面的专业框架,CS 系为本科生提供了丰富、灵活的选择:

  • Computer Science:计算机科学专业,也是 CS 领域的核心
  • Artificial Intelligence:全美排名第一的人工智能专业
  • Human-Computer Interaction:人机交互专业
  • Robotics:机器人专业
  • Computer Science and the Arts:计算机科学与艺术专业,交叉学科
  • Music and Technology:音乐与计算理论专业,交叉学科
  • Computational Biology:计算生物专业,交叉学科

丰富的专业下,为了让学生更深入、专注学习某个核心领域,SCS 提出了 Concentration 的概念,让学生能聚焦以下领域:

  • Algorithms & Complexity:算法与复杂性,学生学完应该达到申请博士项目的水平。
  • Computer Systems:计算机系统,学生能够理解系统的设计和开发,比如内核开发、编译器优化、分布式系统设计等,达到申请博士水平或工业界同等水平。
  • Security and Privacy:安全和隐私。
  • Software Engineering:教授高效开发现代大规模软件的技巧和知识。
  • Computational Biology

老师们考虑周到,在提供丰富、灵活选择的同时,为避免由此带来的 广而不精 ,为学生们提供了核心领域,让他们能够专注学习,做到 广而精,成为 T 型人才。

研究生

硕士学位分布在上文提到的 7 个部和研究所中,这些研究所负责提供学位、培养学生。硕士专业和方向网站上一共有 20 个专业,非常多!这里笔者列举几个和计算机相关的:

  • Computer Science
  • Machine Learning
  • Computer Vision
  • Product Management
  • Computational Data Science
  • Artificial Intelligence and Innovation
  • Intelligent Information Systems
  • Language Technologies
  • Robotics

每个专业都有专门的培养方案和要求,相关信息都列举在各个专业详细网页里面。

总结

CMU 的计算机是单独设院的,并且是全美最大的计算机学院。在向学生提供广泛方案的同时,还帮助学生聚焦在某个领域深入学习,同时提供交叉学科培养方案,使学生成为广而精的顶尖人才。

因此,作为开发者,要能做到 致广大而尽精微:广泛阅读学习的同时,要能专注于某个领域。

Reference

  • CMU 计算机选课上有什么特别好的课程推荐?
  • 在卡耐基梅隆大学(CMU)学习计算机是怎样的体验?
  • 百度百科 - 卡耐基梅隆大学
退出移动版