Quick links

Class of '25, '26 & '27 - Departmental Requirements

Class of '25 and after - Departmental Requirements

With computation and computer science now permeating all corners of society and the economy, a computer science education has become a good launching pad for almost any career. Core concepts and skills emphasized in the computer science curriculum include theoretical and quantitative analysis of computation; design/engineering principles of advanced computer systems; and foundations and methods of AI and Machine Learning.

The curriculum provides additional flexibility to explore sub-disciplines of computer science (Programming Languages, Formal Methods, Software Engineering, Human-Computer Interaction, Computer Graphics, Information Security), or to branch out into exciting cross-disciplinary investigations (Neuroscience and Cognitive Science, Computational Biology, Information Policy, Robotics, Data Science, etc.). Most computer science majors enjoy programming. Quite a few start with zero or minimal background and are able to enhance their skills while progressing through the curriculum.

The plan below applies to the Class of 2025 and beyond; the requirements for the Class of 2024 and earlier are available here and archived version of the Undergraduate Announcement.


Information for First-Year Students: students with a general interest in the sciences or engineering are encouraged to take COS 126 in the first year. This provides useful background for applications work in any science or engineering major and preserves the option of later electing a computer science major.

The prerequisites are any one of MAT 202/204/217 or EGR 154; COS 126; COS 217 and 226. Students should plan to take both COS 217 and COS 226 before their junior year since at least one of them is a required prerequisite for all computer science departmentals. 

Departmental Requirements

Course Requirements

Majors must take at least 8 departmental courses on a graded basis. These fall into three categories: foundation, core courses, and electives. 


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

Core Courses

Students must take a total of four courses, one from each of the four categories listed below:

1) Computer Systems

COS 316 (Principles of Computer System Design) or COS 375 (Computer Architecture and Organization)


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

2) Artificial Intelligence and Machine Learning: 

COS 324 (Introduction to Machine Learning)


  • 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.  At the moment this is the 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)

Foundation and core courses must be taken at Princeton; they can not be satisfied with Study Abroad courses.

Elective Courses

Students must take three COS courses numbered 300 - 400 level. Graduate courses do not count as electives.

Alternatively, up to two 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, ECO 326, and SML 301 count as electives. Graduate courses in other departments may not be used as electives.

Students should consult with a computer science academic adviser on their course selections after becoming computer science majors. 

Independent Work - AB

All COS AB students are required to complete two semesters of junior independent work and a full-year senior thesis in the following sequence:

  • Junior fall: Junior Research Workshop (JRW)  (AB'25 Majors to enroll in one of the following courses for JRW -  Will be listed on Feb. 1, 2023.)
  • Junior spring: Single-term Independent Work project
  • Senior year: full-year senior thesis project

For more details, please see the current COS AB IW Handbook.

Independent Work - B.S.E

All COS B.S.E. students must complete at least one semester of independent work at some point in their junior or senior year.

B.S.E. students must elect one semester of independent work by enrolling in 397 (junior fall), 398 (junior spring), 497 (senior fall), or 498 (senior spring). One additional semester of independent work may be counted as one of the departmental courses. B.S.E. students are also welcome, but not required, to complete a senior thesis.

More information about B.S.E. independent work options can be found in the current COS BSE IW Handbook.

Follow us: Facebook Twitter Linkedin