Princeton 计算机科学专业
普林斯顿大学以优质而严苛的本科生教育闻名,计算机科学和人工智能之父图灵、现代计算机之父冯诺依曼都曾在普林斯顿大学求学和工作过。普林斯顿计算机专业对数学有着比较严格的要求。
课程说明
普林斯顿大学计算机专业课程分为基础课、必修课、选修课,学生需要学完所有基础课程,至少8门必修课以及至少3门选修课(必须是COS300开头或更高的COS课程,其中COS500为研究生课程)。
基础课包含数学类微积分(上、下)、线性代数以及工程导论,除此以外还需要学习计算机COS126(计算机科学:跨学科方法 )、COS217(编程系统导论)和COS226(算法与数据结构)以及COS340(现在改为COS240) 计算推理这四门课程必须在大三结束前学完。
和其他计算机专业一样,普林斯顿开始将计算机专业的必修课程分为4类:研究计算机硬件和软件设计的计算机系统、使用数学来严格发展研究领域的基础理论课、人工智能和机器学习以及比较宽泛的应用课程(比如函数式编程、图形学、信息安全、人机交互等)。
选课说明
从普林斯顿2023年课程安排来看,物理、化学等理科课程已经被排除在计算机专业之外,而以往的必修课人工智能和机器学习已经不再是必修,改为应用类的选修,2025年则又要求人工智能和机器学习为必修。2025年的学生需要从以下4类专业课程(计算机系统、人工智能与机器学习、理论课程、应用课程)中都选择一门课程作为必修,同时从这4类里要选择8门必修课,以及3门选修课(选修课也可以是COS500开头的研究生课)。
① 计算机系统
新版课程大纲明确推荐学习COS 316(计算机系统设计原理)或 COS 375(计算机体系结构和组织),而COS318、COS418、COS461为备选,这几门课其实都推荐大家学习。
- COS375 (Computer Architecture and Organization 计算机体系结构和组织)
- COS316 Principles of Computer System Design (计算机系统设计原理)
- COS318 (Operating Systems 操作系统)
- COS375 (ELE 375) Computer Architecture and Organization (计算机体系结构和组织)
- COS418 (Distributed Systems 分布式系统)
- COS461 (Computer Networks 计算机网络)
其中 COS320(汇编技术)、COS425(数据库与信息管理系统)不再做推荐选修的要求、COS333(高级编程技术)则被划分为应用类必修,
② 人工智能与机器学习
明确推荐COS324 (机器学习导论),以下课程为备选:
- COS 424 (Fundamentals of Machine Learning 机器学习基础)
- COS 429 (Computer Vision 计算机视觉)
- COS 484 (Natural Language Processing 自然语言处理)
③ 理论课程
其中 COS240(计算推理)被提到基础必修课里,所有计算机专业的学生必须在大三前学习这门课:
- COS423 (Theory of Algorithms 算法理论)
- COS433 (Cryptography 密码学)
- COS445 (Networks, Economics, and Computing 网络、经济学与计算)
- COS487 (Theory of Computation 计算理论)
④ 应用课程
- COS326 (Functional Programming 函数式编程)
- COS333 (Advanced Programming Techniques 高级编程技术)
- COS343 (Algorithms for Computational Biology 计算生物学的算法)
- COS426 (Computer Graphics 计算机图形学)
- COS432 (Information Security 信息安全)
- COS436 (Human-Computer Interface Technology 人机界面技术)
- COS448 (Innovating across Technology, Business, and Markets 技术、商业和市场创新)
计算机专业学习目标
计算机科学专业的主要学习目标如下:
- 学生将能够理解、修改、调试、重构和分析各种不同编程语言的程序;
- 学生将能够学习未来遇到的新的编程语言和计算范例;
- 学生将能够阅读和理解计算机科学领域的技术文献;
- 学生将能够 在自己选择的计算机科学领域计划并完成一个或两个学期的项目;
- 学生将能够识别、隔离和解决重要的技术子问题,从而解决更重要的问题;
- 学生将能够以口头和书面形式清晰地表达计算机科学的技术思想;
- 学生将能够识别和评估其学习领域的相关工作;
- 学生将表现出独立工作来实现上述所有目标的能力。
推荐学习课程
① COS126 计算机科学:跨学科方法
在科学、工程和商业应用的背景下介绍计算机科学。本课程的目标是讲解计算机科学的基本原理和如何解决实际问题,同时帮助学生有效地使用计算机在计算机科学、物理、生物、化学、工程和其他学科中的应用。所涉及的主题包括:计算机硬件和软件系统;用Java编程;算法和数据结构;计算的基本原理;科学计算,包括模拟、优化和数据分析。
先修课程: 零基础可学,无先修课程
学习地址: COS126 计算机科学:跨学科方法