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