Undergraduate Program FAQ
Becoming a CS Major
- Is the Computer Science BSE program ABET accredited?
- How do I sign in to become a major?
- How early do I need to begin taking COS courses if I might want to be a CS major?
- I like computers, but I'd rather major in something like History or Mechanical Engineering
- Where can I get late-breaking information about the Computer Science Department?
Entry Sequence: COS 126/226/217
- I did a lot a programming in high school, so do I have to take 126?
- I did no programming at all in high school, so doesn't this put me at a disadvantage in 126?
- What scheduling issues should I consider when deciding whether to take 217 or 226 first?
- How do I decide if I can handle taking COS 226 and COS 217 at the same time?
- I took Integrated Science (ISC) in the Fall this year, but I decided not to continue in the spring. Do I have to retake COS 126?
- If I fail a prerequisite, can I take departmentals that depend upon this course?
- Beyond COS 126, COS 217, COS 226, what courses should I take in my first two years?
- I did not take any COS courses in my first year. Can I still be a CS major?
- I'm a spring-semester sophomore. By the end of the spring semester, COS 126 will be my only COS course. Can I still be a CS major?
- Can courses outside the COS department, such as ORF 309 count as area-specific departmentals (ie: theory, systems, applications)?
- What about substitutions?
- Can I take departmentals and prerequisites pass/D/fail?
- Can I take departmentals in my sophomore year?
- I placed out of some of those math and science courses, so I have time for more computer science. What should I do?
- Can I get departmental credit for a course taken at another school, for example during the summer?
- If I get a D in a course, can it still count as a departmental?
- When do I have to declare which courses are departmentals?
- Does the COS department require some minimum departmental GPA?
- How are departmental averages computed for awarding honors?
- Did you say "senior departmental exam?"
- I want to take a CS course that conflicts with a course in another department that I also want to take. Can you please re-schedule the CS course?
- Can I study computer architecture in the ECE department?
- There are often CS graduate students in my upper-level courses. How does this affect my grade?
- When do I have to make a final decision about whether to be AB or BSE?
Jobs & Life After Princeton
- Should I choose one degree over the other depending on what I want to do after graduation?
- I want to go to grad school, which courses should I take?
- So, should I apply to grad schools or interview for a job?
- I really think that I need to get a job. How can anyone afford to keep going to school at these rates?
- I worked at an internship at an awesome startup over the summer. Now they want me to stay on and take a leave of absence from Princeton. What should I do?
- What are the rules for taking a leave of absence?
- I hear that Princeton imposes some rules on companies that do on-campus recruiting? Is this true?
The Computer Science Department chooses not to offer an ABET-accredited engineering program. In this regard, we are in the company of many of our peer computer science programs. COS BSE majors have had no disadvantage in their pursuit of post-graduate opportunities. If, however, it is important that you major in an ABET-accredited program of study (e.g. for eligibility for a particular outside scholarship), please take this into account when choosing your major. Four of the engineering departments do provide ABET-accredited programs. The BSE Computer Science program is fully accredited under Princeton University’s overall accreditation.
We expect CS majors to enter their junior year having taken the three prerequisite COS courses: 126, 217, and 226, beginning in their first year. It is possible to major in CS without taking any COS courses their first year, but it does involve an extra heavy load sophomore spring. Majoring in CS having had only COS 126 by the end of sophomore year is extremely difficult and allowed only in certain circumstances. Please see the Prerequisites page for details. Because of the difficulty of completing a late-start CS major, if you have even the slightest interest in CS as a major, we urge you to take COS 126 and at least 1 of (if not both of) COS 226 and 217 by the end of your sophomore year. In fact, we think it would be great if every student in the university took COS 126 by the end of the fall of their sophomore year so you all know what CS has to offer and how much more of it you would like to take (whether or not you want to become a CS major). Please refer to the Paths Through the Major for additional information. If you have discovered you have a strong interest in computer science late in your Princeton career, we recommend that you consider the COS minor. This way, you can load up on as much CS as you can reasonably fit into your schedule, but you are not constrained by the specifics of the CS major requirements.
Perhaps you should join the COS minor. See the director of the program, Kevin Wayne, or email Laura Cerrito @cs.princeton.edu.
The department has an email list for CS majors and often sends announcements and reminders by email. There are bulletin boards on the first and second floors for announcements for undergrads. The home page of the department website contains general department news and events.
Also, you can find more information here!
CS News Page: http://www.cs.princeton.edu/general/newsevents/news
It depends. There's more to computer science (and more to COS 126) than programming, and there's plenty of material in 126 to interest and challenge even experienced programmers. Nevertheless, if you are interested in trying to place out of COS 126 and into COS 217 or 226, please complete the placement exam, which is available online. Questions about course placement or the placement exam can be directed to the placement officer, Christopher Moretti, who can be found on the advisers' page. See the COS 126 webpage for additional information.
Not at all. The instructors in 126 expect to have students with a wide range of programming experience and organize precepts accordingly. Much of the material in 126 will be new to everyone. Students have a choice of a 50-minute precept or an 80-minute precept. The 80-minute precept is open to anyone who would like to be taught as a novice, with no or little CS background. The precepts are longer, giving time to complete precept exercises and answer basic questions. See the COS 126 webpage for additional information.
Courses 217 and 226 are both offered in both semesters. Take them in either order, but watch out for conflicts with critical courses in other departments, notably physics. You can take them at the same time, but that's likely to be a heavy load.
Taking COS 226 and COS 217 at the same time is a very difficult, heavy load. Taking them in either order is much easier for almost every student. We use the following grade guidelines when making recommendations:
- Received an A in COS 126: Will be able to take COS 226 and COS 217 simultaneously.
- Received a B in COS 126: May struggle significantly if taking COS 226 and COS 217 simultaneously. Should take them in separate semesters.
- Received a C in COS 126: Will struggle significantly taking COS 226 and COS 217 in separate semesters. Should never take them in the same semester. A COS major is not recommended.
I took Integrated Science (ISC) in the Fall this year, but I decided not to continue in the spring. Do I have to retake COS 126?
Please see the First-year placement officer for placement advice and evaluation. Normally, we try to do whatever is in the student's best educational interest. One option is placing the student directly into COS 217 or COS 226 if the student is prepared. Another option is taking COS 126 for a grade. (We would accept the programming assignments the student turned in as part of ISC, or the student could redo these from scratch.)
Students who flunk prerequisites cannot take departmentals that depend on them under any circumstances. While this policy may appear severe, we adhere to it because of bad experiences under previous policies.
All first-year students take a writing seminar in the fall or spring. If you are a BSE candidate, you must fulfill the math, physics, and chemistry BSE requirements. Although typically chemistry is taken the first year, you can take it sophomore year. If you are an AB candidate, you must complete your math requirement for computer science. We advise you to also complete your AB science requirement and be well-along in completing your AB language requirement. BSE'25 students must complete COS 240 by the start of their junior year.
It is usually possible to major in COS as a BSE or an AB without taking any COS courses during your first year, especially if you have taken some math. For example, if you are a BSE student and you took MAT 103 and MAT 104, PHY 103 and PHY 104, and CHM 201 in your first year, then you can take COS 126 plus one of MAT 201 or 203 in the sophomore fall, and COS 217 and COS 226 plus MAT 202 or 204 or EGR 154 in the spring. After that, you're on track to take 8 departmentals (two each semester) and a semester of independent work during your senior year.
If you are an AB student, MAT 202 or 204 should be completed by the end of the sophomore year but can be deferred under very unusual circumstances until the fall semester of the junior year. You would take COS 126 in the sophomore fall, and 217 and 226 in the spring. After that, you're on track to take 8 departmentals (two each semester), your two semesters of junior independent work, and your senior thesis.
You may ask “but wait, didn’t you just recommend against taking COS 217 and COS 226 at the same time?" True. You can postpone one of COS 217 or COS 226 until junior fall, but you will want to find a departmental course (300 or above) that has only the one you’ve taken as a prerequisite to also take junior fall. But be warned – there are only a few possibilities; most 300 and 400-level COS courses require both COS 217 and COS 226. AB students must be particularly careful because in your junior all, you must also take a Junior Research Workshop (JRW) associated with one of a small number of 300-level courses to satisfy your fall independent-work requirement.
I'm a spring-semester sophomore. By the end of the spring semester, COS 126 will be my only COS course. Can I still be a CS major?
It is incredibly difficult to become a CS major if you have taken COS 126 and no other courses by the end of your sophomore year. If you are a BSE, you should have the math background already (through MAT 202 or 204 or EGR 154). In your first semester in junior year, you would probably take COS 226, COS 217, or COS 240. This is an extremely difficult load -- many students find doing both COS 226 and COS 217 simultaneously very difficult. Very few students can handle the even tougher load of COS 226 and 217 in conjunction with 323 or 240. Many students, particularly those with weaker math backgrounds, find COS 240 alone very challenging. Do not plan on having any life outside of computer science if this is the path you choose. If you can manage to get through that semester, you will still need to take 7 COS departmentals in the final 3 semesters at Princeton and you will also need to do one semester of independent work on top of that. If you plan to attempt this course of action, make an appointment to see the director of undergraduate studies and come with a full schedule of every COS course you plan to take (assume the COS schedule is the same as it has been the last few years). Only students with excellent performance in 126, exceptional reasons, motivation, and other backgrounds will be allowed to pursue this kind of curriculum.
If you are an AB, entry into the COS major at this point will only be allowed under truly exceptional circumstances. On top of demonstrating excellence in COS 126 and perhaps other computing background, having a math background equivalent to MAT 202 or 204 or EGR 154, having exceptional reasons for making this late change, and exceptional motivation, you will have to take one of the JRW courses in the fall, and you must have satied their prerequisites. Make an appointment to see the director of undergraduate studies and come up with a full plan of study.
If you are in this situation, we recommend that you consider the COS minor instead of the CS major. This way, you can load up on as much COS as you can reasonably fit into your schedule, but you are not constrained by the specifics of the CS major requirements.
Can courses outside the COS department, such as ORF 309, count as area-specific departmentals (ie: theory, systems, breadth)?
No. They count as one of your 8 "generic" departmentals but not one of the area-specific ones. We want to be sure that you have a good core CS background.
We believe that the official list of courses is sufficiently flexible so that further substitutions will be allowed only in extreme situations.
No. You must take departmental prerequisites such as Math 202/204 and COS 126-217-226 (and physics and chemistry and MAT 201/202 if you're a BSE) for a letter grade. (EGR 154 can be taken in place of MAT 202.) You must also take your departmental courses (COS 240, and all 300- and 400-level COS courses) for a letter grade.
Yes, and in your first year too, and they count towards the number of departmentals you need to graduate. In particular, you are encouraged to take COS 240 before your junior year if you can manage it. (However, you need MAT 202 before taking COS 240.)
I placed out of some of those math and science courses, so I have time for more computer science. What should I do?
You could take COS 240 in the fall of your sophomore year.
No. The sole exception will be a course taken during a semester abroad. (And a bit of fine print for BSE's: you can't satisfy your computer proficiency requirement with a course at another school.)
Yes. But a D is a wake-up or warning.
It is unnecessary to declare a course as a departmental unless it is a non-CS course or it requires approval from your adviser. For "normal" departmentals, the registrar and the CS department keep track for you.
No. As long as you pass your COS prerequisites and departmentals, you have satisfied the COS component of your degree.
There is no specific formula or numerical score that determines honors. The faculty looks at a student's academic achievements holistically when deciding on honors. The emphasis is typically placed on a student's top departmentals and their independent work. In the case of AB students, special emphasis is placed on the quality of the thesis.
Yes! AB seniors must give an oral presentation of their independent work during the spring semester. This is the Senior Departmental Exam.
I want to take a CS course that conflicts with a course in another department that I also want to take. Can you please re-schedule the CS course?
No. Things conflict; sorry. You should probably make a multi-year schedule, especially to avoid conflicts between required CS courses and required courses in any certificate or minor programs you're in.
Computer Science 375 and 475 are taught by faculty in CS and ECE. Students who would like to do independent work in computer architecture should try to take ECE 206/COS 306 in the spring of their sophomore year and COS/ECE 375 in the fall of their junior year.
The department's policy is that grading will be based only on undergraduate performance; the presence of grad students in a course will not affect undergraduate grades at all. We hope, in fact, that these students enrich the course experience for undergrads and vice versa.
If you plan to attend graduate school in CS to pursue a Ph.D., you are strongly encouraged to take (1) a semester of independent work by the end of your junior year and (2) 300- and 400- level courses in your area of research interest. (If you haven't narrowed down potential areas, take classes in core areas of the curricula, such as 318, 320, 375, 402, 423, and 461). Successful admission to top graduate programs requires both positive letters of recommendation from CS faculty (most commonly from taking independent research) and excellent course work.
Our experience is that employers and graduate schools do not care whether you're an AB or a BSE (and most don't understand the distinction).
Any time before graduation. As long as you have satisfied the requirements for either degree, you can switch (multiple times!) from one to the other just by filling out a form.
Quite possibly. Princeton alumni 10 years past graduation look back on their study abroad as one of the best parts of their undergraduate experience. Junior spring is most common; AB's must be on campus for junior fall for JRW.
The most common semesters are junior fall and spring; sophomore spring and senior fall are possible (though a senior AB would have to plan thesis work very carefully). At most two courses can count as CS departmentals in a semester, and only one as a track (e.g., theory).
Note: For classes of 2025 and beyond, you must take the five core courses at Princeton. Up to two Study Abroad courses can count as COS electives if approved.
We do not give CS credit for courses that look like courses in other Princeton departments that we would have credited if you took them at Princeton. For example, you can count ORF 309 as a CS departmental, but not an ORF 309 lookalike at another school. CS courses have to be pre-approved by the CS director of undergrad studies, but as a practical matter, what you find on the ground in a faraway place is often not what was in the catalog when you were choosing. We can almost always work through this. Non-CS courses have to be approved by the corresponding department at Princeton. You can do IW abroad, and if you're an AB, you have to. You can either find someone there to supervise and follow our procedures, or you can be supervised by remote control from here. The latter is probably easier to arrange. If you're a BSE, it might be easier to finesse by not doing IW while abroad, but don't let bureaucratic considerations stop you from taking advantage of a good opportunity. Your grades are converted into "T for transfer" by Princeton and are not used in computing GPA, honors, and the like.
Both. As when you applied to college, you should maximize your options, then make an informed choice at the appropriate time.
I really think that I need to get a job. How can anyone afford to keep going to school at these rates?
PhD graduate programs in computer science do not cost anything; all the top schools give you a research assistantship or a teaching assistantship that covers full tuition. Salaries for people with advanced degrees in CS are not necessarily that much higher than what you might earn by just going directly to work with an AB or BSE and getting career advancement and raises. The reason to do it is not just that you would have a different kind of career---in industry you'd have more choice about what kind of work to do, or you might go into academia---but also that it would better prepare you (as does Princeton) for a lifetime of teaching and learning.
I worked at an internship at an awesome startup over the summer. Now they want me to stay on and take a leave of absence from Princeton. What should I do?
This is a difficult and personal question. Different students in different situations will make different decisions. We encourage you to talk to your professors and adviser to get their suggestions on how to think through this decision. No matter what, leaves must be one year long, not a semester.
The University grants leaves of absence; learn more about the policies here. The CS departmnt does not allow one-semester leaves.
Yes. You can find these on the Career Services On-Campus Recruiting Policies Web page. Of particular interest is the offer policy. Companies that recruit on campus cannot give you an offer that expires before a specific date. See Offer Policy for additional details.