本文共9000多字,预计阅读时间16min
原文链接
加州大学伯克利分校电子工程和计算机科学系(EECS)是世界知名的院系,计算机领域在2020 USNews排名第一。EECS的使命是教育
、创新
和服务社会
。自创建以来,为社会培养了大批人才,诞生7位图灵奖得主。EECS认为,其成功的背后,是强大的合作传统、与工业界紧密联系和互助的文化。
像这样的顶尖大学,本文无法面面俱到,而是从计算机专业培养入手,结合课程
、研究中心实验室
等角度总结其培养学生的特点,为CS领域或想转行CS的小伙伴提供可借鉴的方法和参考。
课程
命名约定
课程采用编号+课程名
表示,比如很出名的CS 61A: The Structure & Interpretation of Computer Programs
,61A是课程的编号,字母A表示系列(下面会介绍),后面跟着名字。关于编号有如下约定:
- 0xy (e.g., 16, 61, 70) - lower-division courses,默认0是省略的,表示核心课程
- 1xy (e.g. 105) - upper-division courses,高阶课程
- 15x - Computer Architecture,计算机体系结构类课程
- 16x - Software,软件类课程
- 17x - CS Theory,计算机理论类课程
- 18x - CS Applications,计算机应用类课程
- 11x - Electromagnetics/Optics,电磁学或光学类课程
- 12x - Information Processing and Communication,信息处理和通信类课程
- 13x - Physical Electronics,物理电子类课程
- 14x - Integrated Circuits and Embedded Systems,集成电路和嵌入式系统类课程
- 19x - Special Topics, Directed Studies,特殊主题课程,指导学习
不同编号序列按照如下约定:
- 1xy,1开头为本科课程
- 2xyA is the mezzanine-level course room-shared with 1xy,和1xy课程共享教室,但内容层次更高
- 2xyB,研究生课程
- 2xyC, 2xyD…,2xy后面跟C、D…表示后续课程
从上面可以总结出,0xy是核心课程,1xy是本科课程,2xy是研究生课程。总体分为EE和CS两大类,层次分明。
0xy核心课程
核心课程:
- CS61A 计算机程序的构造和解释
- CS61B 数据结构
- CS61C 计算机结构
- CS70 离散数学和概率论
0xy系列课程重点培养学生的计算机基础、计算机科学素养和数学能力。
1xy本科生课程
本科生CS课程:
- CS 161 计算机安全
- CS 162 操作系统与系统编程
- CS 164 编程语言与编译器
- CS 169 软件工程
- CS 170 高效算法与难题
- CS 172 可计算性与复杂性
- CS 174 组合数学与离散概率
- CS 182 设计、可视化和理解深度神经网络
- CS 186 数据库系统概论
- CS 188 人工智能导论
- CS 189 机器学习导论
- CS C191 量子信息科学与技术
面向本科生的1xy系列课程和0xy系列核心课程有明显区别,0xy是核心基础课,1xy则针对CS不同方向开课。
2xy研究生课程
研究生CS课程:
- CS 252 研究生计算机体系结构
- CS 261 计算机系统安全
- CS 261A 因特网与网络安全
- CS 262A 计算机系统高级主题
- CS 262B 计算机系统高级主题,对262A的延续,高级话题一门课讲不完…
- CS 263 编程语言设计
- CS 264 编程语言实现
- CS 265 编译器优化与代码生成
- CS 268 计算机网络
- CS 270 组合算法与数据结构
- CS 285 Deep Reinforcement Learning, Decision Making, and Control
- CS 286A 数据库系统导论
- CS 286B 数据库系统实现
- CS 288 自然语言处理
- CS 289A 机器学习导论
- CS 294-162 机器学习系统
- CS 298-015 BAIR First-year Proseminar
- CS 299 个人研究
2xy系列是面向研究生的课程,部分课程名和本科课程相同,为了区别会在前面加上Graduate
(研究生)或Advanced Topics
(高级主题),比如CS 252. Graduate Computer Architecture
。为了培养研究生论文阅读、交流讨论等能力,还开设了研讨会课程(CS 298-015 BAIR First-year Proseminar)。
课程总结
下图是笔者总结的CS课程架构图,可以看到特点鲜明:分类合理、层次分明、层层递进。红色部分是核心课程,也是其它课程的基础,然后将课程分为软件、硬件、理论、应用等方向。有些课程本科和研究生阶段都会开设,但研究生课程偏向高级主题、注重研究。
EECS信息化程度很高,上文提到的课程都有对应的官网资源,读者可以浏览EECS Course WEB Sites选择自己感兴趣的课程。
培养方案
本科
伯克利是公立大学,招收的学生数量比哈佛、斯坦福要多很多,因此对于本科生来说有三个特点:宽进严出、竞争激烈和丰富多彩。在学位上,CS方向为本科生主要提供两个选择:
- 由文理学院(Letters & Science)提供的CS专业项目,毕业后授予Bachelor of Arts
- 由工学院(College of Engineering)提供的EECS专业项目,毕业后授予Bachelor of Science
两个学位CS课程内容是一样的,不同点在于选修课上,文理学院提供更丰富的课程选择,工学院的选修课侧重EECS领域。想修双学位可以选择前者,希望专注于计算机、STEAM选择后者,详情参考