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

阅读 14
收藏
2019-08-23
原文链接:mp.weixin.qq.com

有网友留言想看卡耐基梅隆大学,今天它来了

卡耐基梅隆大学(下文简称为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为学生指引。

课程表

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

研究所课程

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

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

课程目录(Catalog)

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

•计算机系全部课程列表[10] •人工智能专业下的课程[11]• 计算机科学专业下的课程[12] •机器学习[13] •软件工程[14]• 语言技术[15]

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

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

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

教育

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个部和研究所中,这些研究所负责提供学位、培养学生。硕士专业和方向[24]网站上一共有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 计算机选课上有什么特别好的课程推荐?[25] •百度百科-卡耐基梅隆大学[26]

References

[1] 完整课程表: https://enr-apps.as.cmu.edu/open/SOC/SOCServlet/completeSchedule[2] Computer Science Department Course List: https://csd.cmu.edu/course-profiles/csd-course-list[3] Machine Learning Department: https://www.ml.cmu.edu/academics/classes.html [4] Human-Computer Interaction Institute: https://hcii.cmu.edu/academics/courses[5] Robotics Institute: https://www.ri.cmu.edu/education/courses/ [6] Language Technologies Institute: https://www.lti.cs.cmu.edu/learn[7] 本科课程: http://www.cbd.cmu.edu/education/undergraduate-courses/ [8] 研究生课程: http://www.cbd.cmu.edu/courses-offered/graduate-courses/[9] Software Engineering Institute Courses: https://www.sei.cmu.edu/education-outreach/courses/index.cfm[10] 计算机系全部课程列表: http://coursecatalog.web.cmu.edu/schools-colleges/schoolofcomputerscience/courses/ [11] 人工智能专业下的课程: http://coursecatalog.web.cmu.edu/schools-colleges/schoolofcomputerscience/artificialintelligence/#curriculumtextcontainer[12] 计算机科学专业下的课程: http://coursecatalog.web.cmu.edu/schools-colleges/schoolofcomputerscience/undergraduatecomputerscience/#bscurriculumtextcontainer [13] 机器学习: http://coursecatalog.web.cmu.edu/schools-colleges/schoolofcomputerscience/addlmajorsminors/#machinelearningminortextcontainer[14] 软件工程: http://coursecatalog.web.cmu.edu/schools-colleges/schoolofcomputerscience/addlmajorsminors/#softwareengineeringminortextcontainer [15] 语言技术: http://coursecatalog.web.cmu.edu/schools-colleges/schoolofcomputerscience/addlmajorsminors/#languagetechnologiesminortextcontainer [16] 课程搜索页: http://coursecatalog.web.cmu.edu/course-search/[17] 15-440/640 Distributed Systems: https://csd.cmu.edu/course-profiles/15-440_640-distributed-systems[18] Fundamentals of Programming and Computer Science: https://www.cs.cmu.edu/~112n18/[19] 全美最好的五门计算机课程之一: https://www.bloomberg.com/news/articles/2015-06-11/five-of-the-best-computer-science-classes-in-the-country [20] 15-213: Introduction to Computer Systems: https://www.cs.cmu.edu/~213/[21] CSAPP: https://csapp.cs.cmu.edu/ [22] 10-605 in Fall 2017 Machine Learning with Large Datasets: http://curtis.ml.cmu.edu/w/courses/index.php/Machine_Learning_with_Large_Datasets_10-605_in_Fall_2017 [23] 17-445/645 Software Engineering for AI-Enabled Systems: https://ckaestne.github.io/seai/[24] 硕士专业和方向: https://www.cs.cmu.edu/masters-programs [25] CMU 计算机选课上有什么特别好的课程推荐?: https://www.zhihu.com/question/28249230[26] 百度百科-卡耐基梅隆大学: https://baike.baidu.com/item/%E5%8D%A1%E5%86%85%E5%9F%BA%C2%B7%E6%A2%85%E9%9A%86%E5%A4%A7%E5%AD%A6


推荐阅读:

1. UC Berkeley EECS系是如何培养计算机学生的

2. 附课程资源 | 麻省理工学院是如何培养计算机学生的

3. 为了培养计算机学生,这所学校把地租给科技公司,没想到......

4. 后端工程师的技能树

5. 计算机工作两年,决定考研的思考过程

6. 2019研究生考试的经验和教训

欢迎扫码关注我,专注于计算机科学、阅读分享,程序员认知、学习、成长平台

本文用时10h创作,希望对大家有帮助

点赞和分享支持我继续创作

评论