QuanTalk

加州大学伯克利分校是如何培养计算机学生的

2019-07-25  本文已影响0人  机器学习与系统
image
加州大学伯克利分校电子工程和计算机科学系(EECS)是世界知名的院系,计算机领域在2020 USNews排名第一。EECS的使命是教育创新服务社会。自创建以来,为社会培养了大批人才,诞生7位图灵奖得主。EECS认为,其成功的背后,是强大的合作传统与工业界紧密联系互助的文化

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

课程

命名约定

课程采用编号+课程名表示,比如很出名的CS 61A: The Structure & Interpretation of Computer Programs,61A是课程的编号,字母A表示系列(下面会介绍),后面跟着名字。关于编号有如下约定:

不同编号序列按照如下约定:

从上面可以总结出,0xy是核心课程,1xy是本科课程,2xy是研究生课程。总体分为EE和CS两大类,层次分明。

0xy核心课程

核心课程:

0xy系列课程重点培养学生的计算机基础、计算机科学素养和数学能力。

1xy本科生课程

本科生CS课程:

面向本科生的1xy系列课程和0xy系列核心课程有明显区别,0xy是核心基础课,1xy则针对CS不同方向开课。

2xy研究生课程

研究生CS课程:

2xy系列是面向研究生的课程,部分课程名和本科课程相同,为了区别会在前面加上Graduate(研究生)或Advanced Topics(高级主题),比如CS 252. Graduate Computer Architecture。为了培养研究生论文阅读、交流讨论等能力,还开设了研讨会课程(CS 298-015 BAIR First-year Proseminar)。

课程总结

下图是笔者总结的CS课程架构图,可以看到特点鲜明:分类合理、层次分明、层层递进。红色部分是核心课程,也是其它课程的基础,然后将课程分为软件、硬件、理论、应用等方向。有些课程本科和研究生阶段都会开设,但研究生课程偏向高级主题、注重研究。

ucb cs课程体系

EECS信息化程度很高,上文提到的课程都有对应的官网资源,读者可以浏览EECS Course WEB Sites选择自己感兴趣的课程。

培养方案

本科

伯克利是公立大学,招收的学生数量比哈佛、斯坦福要多很多,因此对于本科生来说有三个特点:宽进严出、竞争激烈和丰富多彩。在学位上,CS方向为本科生主要提供两个选择:

两个学位CS课程内容是一样的,不同点在于选修课上,文理学院提供更丰富的课程选择,工学院的选修课侧重EECS领域。想修双学位可以选择前者,希望专注于计算机、STEAM选择后者,详情参考EECS/CS Program Comparison Chart

研究生

伯克利的研究生有两种,面向工业(Industry-Oriented Degree Programs)和面向研究(Research-Oriented Degree Programs),类似国内的专业/工程硕士和学术硕士。

专业硕士有两个培养方案:

  1. Master of Engineering(M.Eng.):工程硕士,教授毕业后进入工业界所需的技能,重点培养学生的技术基础和领导力。主要计算机相关课程是Data Science and SystemsVisual Computing and Computer Graphics,学制为1年。
  2. 5th Year M.S. Program:和M.Eng.类似,不过该项目只面向UC Berkeley自己的CS本科生,和国内的本硕连读类似。

研究型硕士有三个培养方案:

  1. Master of Science:学制为2年,是比较小的研究型项目,读完后可以申请博士或者进入工业界做研发。
  2. Doctor of Philosophy:博士项目,培养学术人才,学制本科生要读5-6年,硕士读要3-5年。
  3. Both (M.S./Ph.D.):硕博连读,学制5-6年。

研究型项目着重培养学生的研究能力教学能力,页面Graduate Research Program Admissions详细列出了研究型CS(Computer Science)专业主要研究方向:

每个研究领域都有详细的介绍,并且列出了主要研究者、开设的课程等,方便学生了解和选择。

硬件条件

地理位置

image

UCB地理位置优越,地处湾区(Bay Aarea),附近比较出名的城市还有旧金山,奥克兰,硅谷等。硅谷大量的创业公司和科技公司为学生实习提供的便利。也为伯克利与工业界紧密合作提供了条件。

图书馆

伯克利图书馆系统包括三个主要图书馆、18个学科专业图书馆和11个具有特殊藏书的附属图书馆,藏书超过1000万册,北美地区排名第四。在校园里,平均每步行5分钟,都会遇到一个图书馆。

研究中心和实验室

由于EECS是两个体系,所以研究中心和实验室大方向上包括EE方向和CS方向,这里主要讲CS方向,说两个业界出名的实验室。

伯克利人工智能研究实验室(BAIR),开发CaffePyTorch的大神贾扬清就来自这个实验室。该研究中心包含约30名教师和超过200名研究生、博士后。研究领域包括计算机视觉机器学习自然语言处理规划机器人。该中心开发了很多业界出名的工具,包括大数据处理框架Spark中的GraphXCycleGAN等,详细页面见BAIR SOFTWARE

RISELab,该实验室前身是AMPLab,两者都是为期5年的针对特定主题的实验室。AMPLab研究周期为2011-2016,为业界贡献了Mesos集群管理框架、Spark大数据引擎、Alluxio虚拟分布式存储等知名框架,为行业作出卓越贡献。新的5年研究项目由RISELab承担,RISELab实验室研究领域聚焦在Real-time Intelligence with Secure Explainable decisions,即开发实时、智能、安全、可解释的决策系统,围绕这一理念,RISELab已经研究开发了RayClipperconfluo等软件,并开源的。Ray已经在很多公司开始使用,国内知名科技金融公司蚂蚁金服就在使用。

伯克利EECS的研究中心非常多,这里只列举两个,详细信息请浏览EECS-Research Centers and Labs。从这两个实验室可以一窥伯克利CS研究生的培养方式:学生会在导师所在实验室做研究,和工业界保持紧密的联系与合作。好的软件会和业界分享,在GitHub上开放源代码,与各界共同开发。

总结

在本科阶段,伯克利EECS很重视学生的基础知识,课程理论与实践相结合,课程的Project有难度需要编写很多代码,以培养学生的计算机科学思维为主,编程能力为辅。研究生阶段,重点培养学生的研究能力、教学能力,学生通过参加学术会议、开源项目等和学术界、工业界保持紧密的联系。

伯克利对于学生的培养方案是值得我们借鉴和学习的,但因人而异,以笔者个人经验来说,给出以下不成熟的建议:

  1. 在CS领域,计算机基础知识至关重要
  2. 对于想转专业到计算机的本科学生:
    1. 可以学习CS的核心课程CS 61A 61B打基础
    2. 然后学习一门语言课(推荐Python,适合初学者)
    3. 再学习OS、Network等课程
    4. 最后要重视实践,多编写代码和参与开源项目
    5. 接着去找实习在公司中锻炼自己,最后应该可以找到一个满意的工作
  3. 本身就是CS专业的本科生:CS专业应该具备相关知识了,这时可以根据自己感兴趣的CS课程
  4. 工作1-3年的程序员:工作和实际编程中可以发现自己的不足,针对不足选择相关课程重点加强
  5. 其它情况超出笔者的能力和经验了,可以结合本文自行决定

References

上一篇下一篇

猜你喜欢

热点阅读