Harvard 计算机科学专业
哈佛大学虽然不在四大CS名校之列,不过由于师资力量强大,因此有不少神课,比如CS50系列课程,风靡全校乃至全美,而且有比尔盖茨、扎克伯格等一众知名校友。就图灵奖获得者所在的大学排名,哈佛大学在斯坦福、MIT、伯克利、普林斯顿之后,在CMU之前,位列第5。除此以外,哈佛大学的学生可以交叉学习MIT的课程。
课程说明
哈佛大学计算机专业将毕业要求氛围基础与荣誉等级别,其中基础毕业要求除了需要掌握微积分、线性代数、概率统计外,还需要围绕编程(编程1和编程2)、形式推理、计算机系统、计算与世界(计算与世界之间的交互,如人工智能)、高级计算机科学来选择至少9门课,其中编程课至少2门,形式推理至少要包含离散数学(如CS20)、可计算性和复杂性理论与算法(如CS120、CS121、CS124),计算机系统至少1门、计算与世界至少1门、高级计算机科学至少4门。
而荣誉毕业要求,至少要掌握11门计算机科学的核心课,增加了对人工智能的硬件要求,以及高级计算机科学至少5门。
① 大一推荐课程安排
哈佛大学对各年级的大学生推荐了一个比较基础的课程安排计划,以下内容为哈佛CS专业官方推荐的一个课程安排,针对大一新生
大一上学期
- CS 50:计算机科学导论是我们对计算机科学专业的介绍。这是集中学习者和非集中学习者中很受欢迎的课程。三分之二的 CS 50 学生以前从未学过 CS。
- CS 61:系统编程和机器组织,一些学生可能已经具备跳过 CS 50 的背景,而 CS 61 是一门很棒的系统编程课程。本课程满足编程 2 和系统标签。
- CS 120:算法简介及其局限性主要由大二学生学习,但也有一些已经做好数学准备并对 CS 的更多理论方面感兴趣的一年级学生学习。本课程满足计算机科学形式推理要求的计算限制标签和算法标签。
- CS 121:理论计算机科学概论主要由二年级学生学习,但也有一些已经做好数学准备并对计算机科学的更多理论方面感兴趣的一年级学生学习。
大一下学期
- CS 32:计算思维和问题解决是 CS 50 的替代课程。CS 32 采用计算机科学问题解决方法,并使用一种编程语言 Python。本课程适合秋季学期无法参加 CS 50 或想要了解计算机科学的不同入门课程的学生。
- CS 51:计算机科学抽象与设计是 CS 50 之后常见的下一门课程(尽管学生可以参 加 CS 61;他们也可以参加 CS 50、51 和 61 的全部三门课程)。
- CS 20:计算机科学离散数学是计算机一年级学生的一门非常常见的课程,满足形式推理的离散数学要求。
- CS 124:数据结构和算法主要由二年级学生学习,但有时由具有证明/离散数学背景的一年级学生学习。
数学要求
数学是计算机科学许多领域的基础,无论是线性代数、概率和微积分在机器学习、图形和优化中的使用,图形在算法设计中的使用,逻辑在编程语言中的使用等等。因此,计算机科学专业的学生需要扎实的数学基础才能取得成功。由于数学课程往往是许多其他更高级课程的先决条件,因此我们强烈鼓励所有计算机科学学生不要推迟学习数学课程。最好在大一秋季就开始满足数学要求。如果您想考虑其他有数学要求的专业,例如工程、应用数学、统计学、经济学等,这也可以让您保持选择余地。
- 线性代数:线性代数要求可以通过多种不同的方式来满足,包括Math 21b/22a/23a/25a/55a 。我们注意到多元微积分不是计算机科学专业所必需的。我们建议想要同时学习线性代数和多元微积分的学生在秋季学期选择线性代数序列。
- 概率:满足概率要求的最常见方法是采用Statistics 110
- 证明和离散数学:一些计算机科学课程,包括 CS 120、CS 121 和 CS 124,需要证明和离散数学背景
大三、大四你可以根据你自己的兴趣来安排、选修课程。