Contents

Becoming a Major

Q. How do I become a COS major?

A. You should make an appointment to see your class advisor (see the list of advisors). Take two copies of the Course Enrollment Worksheet to this meeting as well as a copy of your course history printout (Go to SCORE>Student Center>My Academics>View My Course History).

After the meeting, you will need to leave the course history printout and one copy of the Course Enrollment Worksheet with Colleen Kenny-McGinley in CS 210.

It is also a good idea to read through this website. It has a ton of great information on frequently asked questions.

Q. Do I need to make an appointment to see a dep rep to become a major?

A. No.  Make an appointment to see your class advisor.  The class advisors can sign all the forms you need to have signed, even if the forms say it must be signed by a dep rep.  (On this issue, the class advisors act as dep reps.)  If you're not sure who your class advisor is, see here and click on the make appointment link. If you are still having problems or need help, ask Colleen Kenny-McGinley, <ckenny@cs.princeton.edu>.

Q. What if I'm not sure and just want someone to talk to about becoming a COS major?

A. No problem! Class advisors are happy to talk to you about what it is like to be a COS major and about the (minimal) differences between AB and BSE programs (also, keep reading below). Just make an appointment with the appropriate class advisor.

Current COS majors are also a great source of information -- they are very friendly and we recommend you talk to them about what it is like to be a COS major.  The undergrad home page has a section that lists a bunch of different groups of people you can talk to:  PWICS (Princeton Women In Computer Science), the CS Undergrad Council and the ACM Student Group.  These groups also set up fun get-togethers from time to time.  

Finally, keep reading -- this guide has lots of useful info in it.  There is also a little information on the major choices web site

Q. What are the best sources of information about the computer science department?

A. As in any organization, the most useful information is available from people at the bottom and the most official information comes from those at the top. Your classmates can tell you the informal rules. If you need more formal information, check with your class advisor, who knows the rules applying to your class and is familiar with your record. Current class advisors are listed on the undergrad home front page.

There are two COS Departmental Representatives.  Brian Kernighan (room 311, bwk@cs)  is the departmental representative for pre-majors, non-majors and study abroad.  So, if you are a freshman or someone else who isn't yet officially a COS major, but you need information about the COS program you should either see Brian or the appropriate COS class advisor.  If you know that you are definitely going to transfer in to COS from a different discipline, you should see the appropriate class advisor -- they will want to get to know you and will need to sign off on your degree program.  COS class advisors can sign the official form to let you in to the major.  You do not need to see a dep rep to do that.  If you are interested in inquiring about study abroad possibilities, you should also see Brian Kernighan.  If you are already a COS major, and have an issue that you do not think your class advisor can or should handle, you should see  David Walker (room 211, dpw@cs) -- the only exception is study abroad (see Kernighan).

Finally, this guide is a wealth of information --- please read it.  David Walker is the current guardian of the rules and the keeper of this document. If your class advisor is unavailable for an extended period, the Dep Rep can sometimes answer your questions and sign add/drop forms. Finally, Andrew Appel is the department Chair and Szymon Rucinkiewicz is the Associate Chair; between them, they have all the official answers.

Q. When's the best time to see my advisor?

A. Your advisor has a web calendar.  See the list of advisors and click on the link to make an appointment.  If none of the times work for you, you can make an appointment most easily by email. You are responsible for deadlines. In particular, if you want to drop a course, you must do so by the 9th week of classes. If you need a signature at the last minute because you procrastinated and your advisor is not available, you will not get help from other faculty members. Choose courses, ask questions, drop courses, etc., in a timely fashion.

Q. Where can I get more information?

A. We have an e-mail list for CS majors and often send announcements and reminders by mail. Also, every CS major has a mailbox on the 2nd floor of the Computer Science Building directly across from the "Tea Room". There is also a bulletin board there for announcements for undergrads.

Colleen Kenny-McGinley (ckenny@cs.princeton.edu, Room 210) is the Undergraduate Coordinator and has copies of information relevant to undergrads. She is also a great person to answer many questions you might have on the logistics of how the department works.

Q. How do I decide whether I should be a BSE or an AB?

A. It doesn't much matter. The AB program and the BSE program each require 3 prerequisites 126, 217, 226), at least MAT 200, and 8 departmentals. The differences are: (1) The AB program has 4 semesters of independent work in addition to your departmentals; the BSE program has only one semester. (2) For the AB program you have to take a language and distribution requirements; for the BSE program, you have to take more math, physics and chemistry and slightly fewer distribution requirements. (BSE's must take physics and chemistry; AB's can take any lab science.) See the Undergraduate Announcement for more details.

Q. Doesn't that make the AB and BSE programs more similar than different?

A. Yes.

Q. Doesn't it matter whether my diploma has AB or BSE written on it?

A. Tua diploma lingua Latina scribetur, ergo nemo eam poterit legere. Plurimi adhibentes probabunt aequaliter gradum AB aut BSE.

Q. Say what?

A. Oh, sorry. Your diploma will be written in Latin, so nobody will be able to tell. 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).

Q. When do I have to make a final decision about whether to be AB or BSE?

A. 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.

 

Basic Requirements and Departmentals

Q. What's the bottom line?

A. Here are the basic rules:

  1. You must take COS 126, 217, and 226.  (Experienced programmers may sometimes skip COS 126 if they see Kevin Wayne for placement, see below).
  2. You must take 8 departmentals. (What counts as a departmental is explained below.)
  3. Amongst your 8 departmentals, you must take at least 2 Systems departmentals, at least 2 Theory departmentals, and at least 2 Applications departmentals.  (The three tracks, Theory, Systems, Applications are defined below.  Notice that leaves you 6 departmentals that are constrained and 2 departmentals that are unconstrained.)
  4. If you are a BSE, you must satisfy the engineering school requirements (physics, chemistry, etc.; see the Undergraduate Announcement) and you must take one semester of independent work by signing up for COS 397 or 398 in your junior year, or COS 497 or 498 in your senior year. If you take two or more semesters of independent work, one may be counted as a departmental.
  5. If you are an AB, you must satisfy the requirements of West College (language requirement, distribution requirements, etc.; see the Undergraduate Announcement)) and take Math 103-104 and 175 (or 200 or 202 or 204).  ABs must also do 2 semesters of Junior Independent Work and a Senior Thesis.

Q. What courses at Princeton University count as a COS departmental?

A. Any COS course at the 300 or 400 level counts as a COS departmental (except independent work, see below).  In addition, some graduate COS courses (500-level) count as undergrad departmentals, depending on their content and structure (please ask if you need to use a grad course as a departmental).  However, graduate courses rarely count as special "tracked" departmentals (see the list below for the few exceptions).

 In addition, any 300- or 400- level Math or ELE or Physics or ORF course that does not duplicate COS content, MUS 314 (PLORK, with the programming precept), Philosophy 312, MAE 345, CHM 303, ECO 312, and MOL 437 count as departmentals.  On occasion, special courses with computational content from other departments may fall in to this category.  Note that it is very, very, very rare for courses outside the computer science department that are not cross-listed with the computer science department to count as track-specific (ie: Theory/Systems/Applications) departmentals.  Hence, in general, you will not be able to count more than 2 courses outside of the computer science department as COS departmentals.

Q What courses count more specifically as a Theory/Systems/Applications track departmental?

A.

Theory: COS 340, 423, 433, 441 (or 510), 445, 451, 487, 488
Systems: COS 306 (ELE 206), 318, 320, 333, 375, 425, 461, 475
Applications: COS 323, 325, 326, 401 (TRA 301), 402, 424, 426, 429, 432, 435, 436, 444, 455, 479, 526

* In the class of 2014 and earlier COS 342/MAT 306 satisfies the theory requirement.  Beginning with the class of 2015, COS 342/MAT 306 will no longer satisfy the theory requirement. It will be considered a departmental, just not a theory-category one.

* COS 495, Special Topics, is a departmental but may be associated with different tracks depending on content. In Fall 2011, COS 495 Autonomous Robot Navigation (Also ELE495) counts as an applications departmental.   Other one-time courses like the Princeton Laptop Orchestra (COS 414, 314), and The Efficient Universe (345) are also departmentals and may count in one of the tracks depending on level and content; 314/414 is Applications and 345 and 347 (Quantum Physics, Qubits, and Nanoscience, Fall 2007) are Theory. QCB 301 is an applications course.

* COS 351 "Information technology and public policy" is a COS departmental but does not count in any specific track.

Q. Can courses outside the COS department, such as ORF 309 count as area-specific departmentals (ie: theory, systems, applications)?

A. 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.

Q. What about substitutions?

A. We believe that the above list of courses is sufficiently flexible so that further substitutions will be allowed only in extreme situations.

Q. Can I take departmentals and prerequisites pass/D/fail?

A. No. You must take departmental prerequisites such as Math 103-104-175/200/202/204 and COS 126-217-226 (and physics and chemistry and MAT 201/202 if you're a BSE) for a letter grade. You must also take your departmental courses (300- and 400-level CS) for a letter grade. This is also true of any grad courses that you wish to count as departmentals.

Q. When courses are typically offered?

Normally offered every semester:
126, 217, 226, 340, IW, assortment of 59x

Normally offered every year:
(fall) 109, 318, 323, 326*, 375, 402, 551
(spring) 320, 333, 423, 426, 461, 521, 557

Normally offered alternate years:
(even-year fall) 432, 487, 513*, 526, 561
(odd-year spring) 435, 436, 451*
(odd-year fall) 429, 433, 518
(even-year spring) 424, 441*, 445, 488*

Notes:
COS 326, and 488 are new, and permanent scheduling is still TBD
COS 441 may be switching to alternate years - permanent scheduling TBD.  COS 510 is a substitute for COS 441.
COS 451 and 513 will not be offered AY '12-'13 because of faculty leave
All other courses are offered at irregular intervals

Q. I did a lot a programming in high school, so do I have to take 126?

A. 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, students who have taken the AP CSB exam and scored a 5 can ask to be placed directly in to 217 or 226. Alternatively, students who have not taken that exam but feel they should be placed directly in to 217 and 226 should set up an interview with the Freshman placement officer, who can be found in the table of advisors on the COS ugrad home page (see under "Freshman Placement").

Q.  I need the AP CS-B exam to place out, but the College Board hasn't offered that exam for years now!

A. See previous question for placement out of 126.

Q. I did no programming at all in high school, so doesn't this put me at a disadvantage in 126?

A. 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.

Q. 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?

A. Please see Kevin Wayne 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.)

Q. Should I take COS 226 and COS 217 at the same time?

A. Taking COS 226 and COS 217 at the same time is a very difficult, heavy load. Taking them in either order (226 first and then 217, or 217 first and then 226) 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: Will struggle significantly if taking COS 226 and COS 217 simultaneously. Should take them in separate semesters.
  • Received a C in COS 126: May 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.

Q. I want to go to grad school, which courses should I take?

A.  If you plan to attend graduate school in CS to pursue a PhD, 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. Also, see more questions and answers below.

Q. I did not take any COS courses in freshman year. Can I still be a CS major?

A. It is usually possible to major in COS as a BSE or an AB without taking any COS courses during your freshman year, especially if you have taken some Math.

BSEs must fulfill the standard BSE requirements, which includes taking math, physics and chemistry, as well as some distribution requirements. For example, if you took MAT 103 and MAT 104, PHY 103 and PHY 104, and CHM 203 in freshman year, then you can take COS 126 plus one of MAT 200, 202 or 204 in the sophomore fall, and 217 and 226 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.

ABs must fulfill the standard AB requirements.  ABs must also take enough Math.  MAT 103-104 must be completed by the end of the sophomore year.  MAT 200 (or 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.

Q. 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?

A. It is incredibly difficult to become a COS major if you have taken COS 126 and no other courses by the end of your sophomore year.  For these reasons, we urge you that if you have even the slightest interest in COS as a major, 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 COS has to offer and how much more of it you would like to take (whether or not you want to become a COS major).

If you are a BSE, you should have the math background already (MAT 175, 200, 202 or 204).  In your first semester in junior year, you would probably take COS 226, COS 217 and either COS 323 or COS 340.  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 340.  Many students, particularly those with weaker math background, find COS 340 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 a dep rep (see here) 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 background will be allowed to pursue this kind of curriculum.

If you are an AB, the path is even more difficult than if you are a BSE. On top of all the hurdles above, you will have to do 2 semesters of junior independent work and a senior thesis.  The junior independent work requirement is the most difficult requirement to fulfill if the student has only taken COS 126 by the end of the sophomore year.  There are very few projects that a COS major can engage in that satisfy the junior independent work criteria with so little experience.  Entry in to the COS major at this point as an AB will only be allowed under truly exceptional circumstances.  On top of demonstrating excellence in COS 126 and perhaps other computing background, having sufficient background in math (MAT 200, 202 or 204), having exceptional reasons for making this late change, and exceptional motivation, the student will have to demonstrate that he or she has a satisfactory idea for junior independent work in advance, the background to implement the idea, and a faculty advisor willing to supervise them.

Because this program is so difficult to achieve, we recommend that almost all students in this situation do the Applications in Computing Certificate.  This way, you can load up on as much COS as you can reasonably fit in to your schedule, but you are not constrained by the specifics of the COS Major requirements.

Q. I like computers, but I'd rather major in something like History or Mechanical Engineering.

A. Perhaps you should join the Certificate Program in Applications of Computing, which requires four CS courses beyond COS 126, plus a senior thesis (in your home department) or independent work that incorporates computing in some way. See the director of the program, Szymon Rusinkiewicz (room 406).

Q. I'm a Computer Science major, and I'm interested in Applications of Computing too. Can I do the CS major and also the certificate program?

A. No. The same restriction applies to EE majors in the Computer Engineering track.

Q. Can I take departmentals in my sophomore year?

A. Yes, and in your freshman year too, and they count towards the number of departmentals you need to graduate. In particular, you are encouraged to take COS 306 or COS 340 before your junior year if you can manage it. (However, you need Math 104 before taking COS 340.)

Q. Can I get departmental credit for a course taken at another school, for example during the summer?

A. 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; it has to be through AP credit or COS 126 or higher.)

Q. If I get a D in a course, can it still count as a departmental?

A. Yes.

Q. 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?

A. 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 programs you're in.

Q. Can I study computer architecture in the EE department?

A. Computer Science 375 and 475 are taught by faculty in CS and EE. Students who would like to do independent work in computer architecture should try to take ELE 206/COS 306 in the spring of their sophomore year and COS/ELE 375 in the fall of their junior year.

Q. When do I have to declare which courses are departmentals?

A. It is unnecessary to declare a course as a departmental unless it is a non-CS course or it requires approval from your advisor. For "normal" departmentals, the registrar and the CS department keep track for you.

Q. What courses should I take in my first two years?

A. You should take 126, 217 and 226, freshman writing seminar, as well as your math, physics, and chemistry (BSE), or language and science (AB). BSE's can take chemistry as sophomores.

Q. Should I take 217 or 226 first?

A. It doesn't matter. 226 and 217 are both offered 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.

Q. I placed out of some of those math and science courses, so I have time for more computer science. What should I do?

A. Well, you could take 340 in the fall of your sophomore year, or COS 306 in the spring.

Q. What's my GPA?

A. There is no single answer. The university computes a GPA over all graded courses. The department looks at combinations of departmentals, technical courses, and independent work, as described in the next section.

Q. Does the COS department require some minimum departmental GPA?

A. No.  As long as you pass your COS prerequisites and departmentals, you have satisfied the COS component of your degree.

Q. How are departmental averages computed for awarding honors?

A. At the end of your senior year, we determine which of the courses you've taken could qualify as departmentals. The eight of these courses in which you received the best grades are then counted as your departmentals. Thus, there is no penalty in taking an extra departmental course in which you might do poorly. Computation of honors is done separately for BSE's and AB's. For BSE's, honors are determined on the basis of grades in the eight best departmentals and independent work. For AB's, the eight best departmentals, the senior thesis, junior independent work, and the senior departmental exam are used. There is no specific formula or numerical score that determines honors. The faculty look at a student's academic achievements at Princeton holistically when deciding on honors.

Q. Did you say "senior departmental exam?"

A. Yes! AB seniors must give an oral presentation of their independent work, at the beginning of the exam period of the spring semester. This is the Senior Departmental Exam.

Q. There are often CS graduate students in my upper-level courses. How does this affect my grade?

A. 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.

Q. If I fail a prerequisite, can I take departmentals that depend upon this course?

A. 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.

Q. What about independent work?

A. AB's are required to do two semesters of junior independent work and a senior thesis (which takes two semesters). BSE's are required to do one semester of independent work and are encouraged to do more, including a thesis if desired; the extra semesters count as a regular course.

Independent work is one of the unique features of a Princeton education. Independent projects typically arise either from an idea that excites you or from an idea put forth by a professor in the department. The department maintains a wiki of faculty research interests. This list is a good place to start in looking for a project or advisor. There is also some general advice on finding a topic, an adviser, and a successful outcome here.

Once you have a project, get a form (located on the bulletin board outside the department office) and sign it along with your advisor to let us know what you'll be doing. Your project is then between you and your advisor, but there is always a COS Independent Work Coordinator who coordinates all independent work, and schedules public talks, checkpoints, and other requirements. Full information is here.

It is possible to do a project with a faculty member in another department if you have the approval of the Independent Work Coordinator.

Q. I am an AB COS major.  Can I use QCB 301 to satisfy the fall semester of my COS JIW?

A. The project component of QCB 301 can count as one semester of junior independent work for ABs provided that the QCB project has a substantial computational component.  In addition to the requirements of QCB 301, you must officially inform the COS independent work coordinator that you are using QCB 301 as part of your COS independent work and you must fill out all the required IW forms, do the COS checkpoints, proposal presentations, and poster presentations required for normal independent work.  You must also submit your final QCB write-up as part of your JIW and highlight the parts of the QCB write-up that clearly describe the computational content of your project.

Q. I have a great independent work idea that will make me rich and famous. Does the university own it?

A. According to the University's rules, you own the copyright in the software you write (and your research papers and works), except in circumstances that rarely apply to undergraduates, such as support by federal research grants.  Having said that, it is uncommon for "independent work" to be completely independent -- students are advised by a faculty advisor and that advice often helps shape the products developed.  Moreover, the faculty advisor is an employee of Princeton and has different IP obligations to the university than the student.  I think the bottom line is that as far as we know, the university has never claimed ownership of any independent work done by undergrads.  Having said that, this page is an informal guide.  It is not a legal document, is not written by someone who is a lawyer or knows copyright or patent law, and cannot be taken as official university policy.  It should certainly not be taken as sound legal advice.

Q. Can I continue my summer project at Yagoosoft Corp as independent work?

A. We strongly discourage undergraduates from undertaking independent work that is subject to confidentiality agreements with third parties or other similar restrictions, because it may violate University policy and it might limit the scope or nature of your future research at Princeton and elsewhere. Before entering into any such agreement, you must get an opinion about the intellectual property issues from the General Counsel's office and the Office of Technology Licensing.

Q. Can I take a semester abroad?

A. Yes. This program is administered by the Dean of the College. After you get information about the program from the Dean's office, and you choose a university to study at, bring that university's course information to Brian Kernighan, COS Dep Rep for Study Abroad to see if there are any courses that could substitute for one of your CS departmentals. If independent work is involved (e.g., for AB juniors), you will need to find a faculty advisor here, either as the direct advisor or as someone to assess work done for someone at the far end. You can take a year abroad as well, but this is more complicated, mainly because you have to find more technical courses that can count as departmentals. In any case, if you plan to study abroad, start planning early.

Q. Should I take a semester abroad?

A. Quite possibly.  Princeton alumni 10 years past graduation look back on their study abroad as one of the best parts of their undergraduate experience.

Q. What about the undergraduate council?

A. The Computer Science Undergraduate Council looks after your interests and provides feedback to the faculty about student interests and needs. They have their own website with lots of great information you should check out.

Life Outside of Undergrad Classes

Q. I've heard about Lab TAs.  How do I get involved with that?

A.  The department often needs student lab TA's and grading assistants for courses like COS 109, 116, 126, 217 and 226; see the head TAs, Mike Franklin '13 who coordinates this.  Huge thanks to Emily Lancaster '12, our former coordinator, who has now graduated.  You did such an incredible job while you were here!

Q. Are there jobs at Princeton during the semester outside the computer science department for people with computing background?

A. During the semester there are various jobs on campus for computer science majors. OIT needs helpers trained in computing. And there are research projects in other departments that wish to hire students with programming skills.  We don't have a list of these jobs so you will have to ask around on your own.

Q. Can you help me find other kinds of jobs or internships (during the summer or otherwise)?

A. Over the summer and sometimes during the semester, some computer science professors hire students to work on research or teaching projects.  Colleen Kenny-McGinley will post these job announcements -- term-time, summer and post-graduation -- on the undergraduate bulletin board on the first floor. If you are interested in this kind of employment, check the bulletin board or come by the Undergraduate Office (room 210) to see what's available.

The Keller Center for Innovation in Engineering Education also has advice on internships.

The computer science department also has an industrial affiliates program in which major companies visit to recruit students.  See the affiliates web pages for more information.

You also should be proactive using the web and taking advantage of any information you can find. One of your best resources is likely to be a friend or acquaintance who has a job or recently applied for one at a company you might be interested in. Many companies explicitly take advantage of such connections by sending recent alums as recruiters. If a recent graduate from Company X is giving a talk at Princeton, you can bet that there will be an opportunity to talk to that person about a job at Company X. By the way, once you've navigated the minefield, maybe *you* could help some future grad find a job---we could use a Guide for Job Seekers like the one for grad schools referred to in the question on grad schools below.

We also get a lot of requests from companies looking for talented computer science students to help them.  In fact, we typically get so many requests that we cannot manage them ourselves -- the computer science department is not set up to be an employment center.  Consequently, we forward these requests to Princeton's Career services.  (Note:  if you are a recruiter or are responsible for your companies hiring practices and are reading this, please contact Princeton students through Career Services, unless your company is interested in becoming a computer science department industrial affiliate.  If you are interested in the computer science industrial affiliates program, please see here.)

Career Services' TigerTracks system is the primary employment and internship portal for Princeton students and features a comprehensive listing of all full-time, internship, and fellowship opportunities (and on-campus interviews) posted by employer organizations from a wide range of industries and fields. Career Services also offers extensive programs, services, and resources to assist students with career exploration such as individual career counseling and over 250 career-related events including workshops, career panels, alumni guest speakers, employer information sessions, and career fairs. Individual appointments and walk-ins for engineering students are available at E-Quad on Wednesdays during the academic year in addition to those at Career Services every day. For more information, visit Career Services’ website at www.princeton.edu/career

Q. Is there life after computer science at Princeton?

A. Probably. Very roughly, 1/4 of each graduating class goes to grad school, 1/4 to computer companies or startups, 1/4 to consulting firms or financial institutions, and the rest disappear without leaving forwarding addresses. Many come back for reunions, however, so we know they are alive.

Q. So, should I apply to grad schools or interview for a job?

A. Both. As when you applied to college, you should maximize your options, then make an informed choice at the appropriate time.

Q. I really think that I need to get a job. How can anyone afford to keep going to school at these rates?

A. Graduate school in computer science doesn't cost anything; all the top schools give you a research assistantship or a teaching assistantship that covers full tuition *and* pays you a monthly stipend for living expenses. Salaries for people with advanced degrees in C.S. are not necessarily that much higher than what you might earn by just going directly to work with an A.B. or B.S.E. 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.

Q. Can you help me apply to grad school?

A. Sure. Everyone on the faculty went to grad school, knows people who are seeking good grad students, and has opinions on numerous schools. Since they all were relatively successful at grad school (they wound up here at Princeton), they'll all tell you that grad school is a fantastic experience and will be happy to provide specific advice. As when you applied to college, you should do some thinking about where you might want to spend the next 5+ years and what schools might be a good fit for you. There is plenty of good information online. In particular, Clay Bavor '05 has written an excellent Guide to Applying to Graduate School; check out the advice there.

Q. 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?

A. This is a difficult and personal question.  Different students in different situations will make different decisions.  Here are some thoughts from some professors assuming that the student is about to enter his or her junior year. 

Andrew Appel:

My personal opinion is that one year off won't hurt you any, if you're having fun.  It could be good experience.  But more than one year is a bad idea.  Work out a deal with your boss that even if your startup company takes off like a rocket, you can still have two 9-month leaves, Sept-May a year from now and Sept-May two years from now to finish your bachelor's degree, without giving up your stock options or whatever.  Get it in writing.  Then make sure you stick to it: come back, ace all your courses, do stellar independent work.
Vivek Pai:
Ultimately, the decision has to be one that you're comfortable with, but let me weigh in with what I personal experience I have. I almost took a year off during undergrad as co-founder of a games company. We'd had one semi-successful product, and it was a case of either trying to go all-out or take the chance that the next product wouldn't carry the momentum we had. The issues for me were:

a) how much risk are you willing to take? what happens if the experience leaves you jaded and your time post-return just isn't as successful as you'd imagined?

b) if your parents are funding your education, are they really ok with it, or is it one of those conditional approvals but they secretly pray every night that you don't do it? If it's the latter, it's going to be a pretty rough trek, especially if things with the company start going sour.

c) are you socially ok with it? In the event that you return, will you be ok with your cohort having moved on, and having to watch them graduate as you now have classes with a whole new set of people?

Now, if the answer to all of those is "I can deal with it", then I'd say that Professor Appel's response spells things out pretty nicely. It's not a major issue as far as Princeton is concerned, and the upside can be quite good. My personal observation is that the really successful startup folks have a pretty comfortable position from which they can take risk. In other words, if you know the worst that can happen is a one-year delay in your education, and that your parents and friends will be supportive, it's often a good gamble. In case you're wondering what happened to me personally:

1st company - during undergrad. Decided to not take the year off. Stayed at home instead of on-campus for the first part of the year, and worked on the company as I went to class.

2nd company - had an amazingly good buyout offer, but would have required me to leave my tenure-track position at Princeton, with no real hope of return. Figured I could make money later, but wouldn't have the chance at tenure at Princeton again.

3rd company - had tenure by now, so I had the safety to be more risky. Sold the company and took a leave to pursue it.
Brian Kernighan:
From Princeton's side, taking a year off is not unusual. The reasons vary a lot, but wanting to be part of a startup is certainly one of them. A year away is fine, two years is harder though still manageable, and after that, it's unlikely that you would come back. If you're the next Zuckerberg, that might be just fine; otherwise, I think you would have given up sometime valuable. No matter what, you are likely to lose some of the connection with your cohort, though in return you learn a great deal and have a chance to make money if the company does well. (Do check out the arrangements very carefully if that's a consideration.)

Miscellaneous

Q. Why is this Guide so long?

A. Whenever the Dep Rep is asked the same question for the fourth time, the answer goes here.