CMU 计算机科学专业
卡内基梅隆大学CMU号称自己是世界上第一个开设计算机专业的学校(开设于1965年,另有说是普渡大学1962年),CMU的计算机堪称可以载入史册的化石级。
计算机科学可以说是CMU之魂,有点“全民CS”的味道。对于其他很多学校来说,计算机可能只是一个系,而CMU则有独立的计算机学院。不仅如此,它的其它学院如艺术学院、理工学院、商学院、科学院等都有一定数量的计算机方面的课程。
课程说明
计算机专业的学生毕业后应该掌握哪些技能?CMU对毕业生的要求也反映在它们的课程安排上:
- 识别、使用、设计、开发和分析适当的抽象和算法来解决问题,同时能够在各种指标(例如,时间、空间、并行与顺序实现、可计算性)上证明算法的性能和正确性。
- 在人工智能、图形和声音、软件工程和人机交互等领域实施问题的解决方案,通过应用这些领域的基础知识来创建当前问题的解决方案,同时接触技术发展前沿,使解决方案能够适应技术的变化。
- 用不同的编程语言和编程范式来推理并实现程序;
- 具备设计与开发高性能、低资源要求的大型开放式软件系统;
- 能够向技术人员和非技术人员来传达技术材料;
- 能够胜任个人和团队的工作
数学课方面,计算机专业的学生掌握CS-151 计算机科学的数学基础(离散数学)、微积分、多重积分、线性代数以及概率统计约50个学分的数学课,而专业课以及选修课方面则需要掌握至少300个学分。专 业课分必修核心课以及多个维度的选修课,课程如下所示:
① 计算机科学核心课程
以下所有的课程都必须要掌握:
- 15-122 命令式编程原理,在此前需学完15-112的课程,10学分
- 15-150 函数式编程原理,10学分
- 15-210 并行和顺序数据结构和算法,12学分
- 15-213 计算机系统概论,12学分
- 15-251 理论计算机科学的伟大思想,12学分
- 15-451 算法设计与分析,12学分
② 人工智能选修课
必须要要选择一门一门人工智能选修课(最少9个学分):
- 10-315 机器学习简介,12学分
- 11-411 自然语言处理,12学分
- 11-485 深度学习简介,9学分
- 15-281 人工智能:表示和解决问题,12学分
- 15-386 神经计算,9学分
- 16-384 机器人运动学和动力学,12学分
- 16-385 计算机视觉,12学分
③ 跨领域选修课
至少要学习一个跨领域选修课(最少9学分):
- 02-251 计算生物学的伟大想法,12学分
- 05-391 设计以人为本的软件,12学分
- 15-322 电脑音乐概论,9学分
- 15-330 计算机安全概论,12学分
- 15-455 复杂性理论(本科),9学分
- 15-462 计算机图形学,12学分
- 17-313 软件工程基础,12学分
④ 逻辑、编程语言课
至少要学习一门逻辑/语言选修课(最少9学分):
- 15-312 编程语言基础,12学分
- 15-314 编程语言语义,12学分
- 15-316 软件的安全与隐私基础,9学分
- 15-317 构造性逻辑,9学分
- 15-414 Bug捕获:自动程序验证,9学分
- 15-424 网络物理系统的逻辑基础,12学分
- 17-355 程序分析,12学分
- 80-413 范畴论
⑤ 软件系统选修课
至少要学习一门软件系统的选修课(至少12学分):
- 15-410 操作系统设计与实现,15学分
- 15-411 编译器设计,15学分
- 15-418 并行计算机体系结构和编程,12学分
- 15-440 分布式系统,12学分
- 15-441 计算机网络,12学分
- 15-445 数据库系统,12学分