Undergraduate Degrees & Requirements

The Computer Science Department is the only department at Princeton that offers both undergraduate degree programs in bachelor of arts (AB) and bachelor of science in engineering (BSE). AB students and BSE students must fulfill different general education requirements

Both degree programs teach students the fundamentals of computer science, and allow students to explore their individual interests through independent work and research with faculty members. Either an AB or BSE degree will give students the tools to pursue their career goals after graduation. 

The department also offers a minor for students who want to combine the study of computing and computers with another academic discipline.

AB and BSE Degrees in Computer science

Bachelor of Arts

Bachelor of Science in Engineering

31 courses over 4 years

36 courses over 4 years

8 computer science departmental courses

8 computer science departmental courses

Prerequisites: COS 126, COS 217, and COS 226 AND any one of MAT 202, 204, 217 or EGR 154

Prerequisites: COS 126, COS 217, and COS 226 and BSE general requirements

4 semesters of independent work, including a junior research workshop, an independent work project, and a senior thesis. For more details, please see the AB IW Handbook

1 semester of independent work (minimum). For more details, see the BSE IW Handbook

Declare major in spring of second year

Declare major in spring of first year

Departmental Requirements

All majors (BSE and AB) must take at least eight departmental courses on a graded basis. These courses fall into three categories: foundations, core courses, and electives. Foundation and core courses must be taken at Princeton; they can not be satisfied with Study Abroad courses.

Requirements for the Class of 2024 and before

Please note: these requirements above apply only to the Class of 2025 and beyond! These are the requirements for the Class of 2024 and before

Foundations

Students must take COS 240 (Reasoning and Computation), to be completed before the end of junior year.

Core Courses

Students one course in each of the following categories: Computer Systems, Artificial Intelligence and Machine Learning, Theoretical Computer Science, and Breadth.

  1. Computer Systems: COS 316 (Principles of Computer System Design) or COS 375 (Computer Architecture and Organization)

     

    • Alternatives: COS 318 (Operating Systems), COS 418 (Distributed Systems), COS 461 (Computer Networks)

       

  2. Artificial Intelligence and Machine Learning: COS 324 (Introduction to Machine Learning)

     

    • Alternatives: COS 424 (Fundamentals of Machine Learning), COS 429 (Computer Vision), COS 484 (Natural Language Processing)

       

  3. Theoretical Computer Science:  COS 423 (Theory of Algorithms), COS 433 (Cryptography), COS 445 (Networks, Economics, and Computing), COS 487 (Theory of Computation)

     

  4. Breadth:  This category contains courses that either explore another sub-discipline beyond Systems/Theory/AIML, or provide experience with real-world applications.  At least one must be taken.  As of September 2024, this is a complete list. Other COS courses are electives.

    • COS 326 (Functional Programming)

    • COS 333 (Advanced Programming Techniques)

    • COS 343 (Algorithms for Computational Biology)

    • COS 426 (Computer Graphics)

    • COS 432 (Information Security)

    • COS 436 (Human-Computer Interaction)

    • COS 448 (Innovating across Technology, Business, and Markets)

Electives:

Students must take three computer science courses numbered 300 or higher (including approved COS graduate courses numbered 500 or higher). Alternatively, up to two of the electives may be chosen from a list of approved courses from other departments.

Any 300- or 400- level Math or ECE or ORF course that does not duplicate COS content. MAE 345, MOL 437/NEU 437, NEU 330, and ECO 326 count as electives. 

More frequently asked questions about prerequisites are on the Undergrad FAQ