Life in the Computer Science Department

A Guide for the Humble Undergraduate

Wed. Apr. 13, 2011

Q. How do I become a COS major?

A. You should contact your class advisor (see the list of advisors below) and make an appointment to see him or her. 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. 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 send an advisor an email to make an appointment.

Current COS majors, including the undergraduate council members are also a great source of information. Also, keep reading -- this guide has lots of useful info in it.

Q. What's the bottom line?

A. Here are the requirements for undergrad concentrators in CS. There are three informal tracks, and you must take at least two departmentals from each of them. These are the tracks and the regular courses:

Theory: 340, 342 (MAT 306)*, 423, 433, 441, 451, 487
Systems: 306 (ELE 206), 318, 320, 333, 375, 425, 461, 475
Applications: 323, 325, 401 (TRA 301), 402, 424, 426, 429, 432, 435, 436, 444, 455, 479

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

By the way, if you're reading this on paper, you might take a quick look at the online version at http://www.cs.princeton.edu/academics/ugradpgm/life.php in case there are changes.

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:

ClassDegreeAdvisor OfficePhoneE-mail
'11BSE Michael Freedman 3088-9179 mfreed@cs.princeton.edu
'11AB Bob Sedgewick 3198-4345 rs@cs.princeton.edu
'12BSE Doug Clark 3098-6314 doug@cs.princeton.edu
'12AB Bob Sedgewick 3198-4345 rs@cs.princeton.edu
'13BSE Andrea LaPaugh 3048-4568 aslp@cs.princeton.edu
'13AB Bob Sedgewick* 3198-4345 rs@cs.princeton.edu
'14BSE (surname A-K) Robert Schapire 4078-7726 schapire@cs.princeton.edu
'14BSE (surname L-Z) Jaswinder Singh 4238-5329 jps@cs.princeton.edu
'14AB Bob Sedgewick* 3198-4345 rs@cs.princeton.edu

* Note: Bob Sedgewick is temporarily the class advisor for AB '13 and AB '14. When Olga Troyanskaya returns from maternity leave she will once again be the class advisor for AB '13 and AB '14.

The Departmental Representative, David Walker (room 211, dpw@cs.princeton.edu), is the guardian of the rules as they've evolved through the years, 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 Vivek Pai is the Associate Chair; between them, they have all the official answers.

Q. What are the department's course requirements?

A. Here, the answer varies depending upon the degree you are seeking. If you are a BSE, you must satisfy the engineering school requirements (physics, chemistry, etc.; see the Undergraduate Announcement) and take COS 126, 217, and 226 as prerequisites for the major. You must also take 8 departmentals. In addition, 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.

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 200 (or 202 or 204), and COS 126, 217, and 226 as prerequisites for the major. In addition, you must take 8 departmentals. Lastly, you must do two semesters of junior independent work and a senior thesis.

For both AB and BSE, there are three informal tracks -- theory, systems, and applications -- and you must take at least two courses in each of these tracks. The tracks are as follows:

Theoretical computer science:
    340 Reasoning about Computation
    342 Introduction to Graph Theory (MAT 306)*
    423 Theory of Algorithms
    433 Cryptography
    441 Programming Languages
    451 Computational Geometry
    487 Theory of Computation
Systems:
    306 Introduction to Logic Design (ELE 206)
    318 Operating Systems
    320 Compiling Techniques
    333 Advanced Programming Techniques
    375 Computer Architecture and Organization (ELE 375) [formerly COS 471]
    425 Database Systems
    461 Computer Networks
    475 Computer Architecture (ELE 475)
Applications:
    323 Computing for the Physical and Social Sciences
    325 Transforming Reality by Computer
    402 Artificial Intelligence
    424 Interacting with Data
    426 Computer Graphics
    429 Computer Vision
    432 Information Security
    435 Information Retrieval, Discovery and Delivery
    436 Human-Computer Interface Technology
    444 Electronic Auctions
    455 Introduction to Genomics and Computational Molecular Biology (MOL 455)
    479 Pervasive Information Systems

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

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.

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

A. No. You must take departmental prerequisites such as Math 103-104-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. 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 Kevin Wayne (room 207, wayne@cs.princeton.edu).

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'm a sophomore and I just discovered CS. Can I still be a CS major?

A. It is possible to major in CS as a BSE without taking any CS courses during your freshman year, if you took enough math, physics and chemistry, for example MAT 103 and MAT 104, PHY 103 and PHY 104, and CHM 203. Then you can take 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.

It's even possible to pull this off if you don't discover CS until halfway through your sophomore year, again if you have done the math, physics and chemistry. Take COS 126 in your sophomore spring, then do 217 and 226 and three 300-level courses as a junior, leaving five departmentals and independent work as a senior. (We didn't say it would be easy, but it is possible.)

It's also possible to do this as an AB, this time assuming that you can manage your language and distribution requirements and have taken MAT 103 and 104. Then you can take one of MAT 200, 202 or 204 as a sophomore, along with 126 in the fall and 217 and 226 in the spring. After that, you're on track to take 8 departmentals (two each semester), two junior independent work projects, and your senior thesis.

It's barely possible to pull this off if you don't discover CS until halfway through your sophomore year, again if you have done enough math, say MAT 103. Take 126 and MAT 104 in your sophomore spring, then as a junior do 217 and 226, MAT 200, four 300-level courses and two JPs, leaving four departmentals and a thesis as a senior. (This is feasible but exceedingly tight.)

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

Q. What courses count as departmentals?

A. Any CS course labeled above 300 can count except 397, 398, 497, and 498. One of 397, 398, 497, or 498 can count for BSE's, but only if the BSE student takes at least two of these four independent work courses. Any Math course numbered above 300 can count except courses whose contents duplicate other courses taken. Any ELE course numbered above 300 can count as a departmental, as can Philosphy 312.

Finally, in an effort to allow students to broaden their interests, one departmental may be chosen from the following list: MUS 314 (PLOrk, with the programming precept), ORF 307, 401, and 406, CHM 303, ECO 312, MOL 437, and Physics 300-level and above, if the course is appropriate to the program of the student and the student has the prior approval of the advisor.

CS graduate courses (500-level) typically do not count as departmentals, but there are exceptions; check with the instructor before signing up if this is a major concern.

Bear in mind that if you are thinking of grad school in CS, it's wise to make sure that you take the core CS curriculum as an undergrad. Graduate programs at most schools will be primarily interested in the CS courses you have taken.

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

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 Vivek Pai 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 your advisor or Professor Pai.

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

A. So far as we know, the university has never claimed ownership of any independent work done by undergrads, though the official policy on intellectual property applies to "all faculty members, employees, and students." As a practical matter, even very fine ideas don't make you as rich and famous as you might think, so this should not be a concern.

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 the CS Departmental Representative 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. Wh's the best time to see my advisor?

A. If your advisor has regular office hours, that's the best time. If not, 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.

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. The council members are:

NameClassE-mail
Eddy Ferreira'12 eferreir@princeton.edu
Dana Hoffman'12 dwhoffma@princeton.edu
Jen King'11 jdking@princeton.edu
Emily Lancaster'12 elancast@princeton.edu
Jarett Schwartz'11 jdschwar@princeton.edu
Michael Sobin'12 msobin@princeton.edu
Faaez Ul Haq'12 ful@princeton.edu
Patrick Wendell'11 patrickw@princeton.edu

Q. How do I apply to grad school?

A. Clay Bavor '05 has written an excellent Guide to Applying to Graduate School; check out the advice there.

Q. What about clown school?

A. A Princeton CS degree has proven to be excellent preparation for admission to selective clown schools, especially when coupled with suitable humanities courses and extracurricular activities. Members of the undergrad council may be able to offer advice here.

Q. Can you help me find a job?

A. During the semester there are various jobs on campus for computer science majors. The department often needs student lab TA's for courses like COS 109, 116, 126, 217 and 226; see the head TA, Emily Lancaster '12, who coordinates this.

OIT needs helpers trained in computing. And there are research projects in other departments that wish to hire students with programming skills. Over the summer, some professors hire students to work on research or teaching projects. Also, we receive inquiries from companies seeking to hire undergrads for summer work as well as after graduation. (For jobs after graduation, most companies go through Career Services; this is also a place to look for summer jobs.)

Colleen Kenny-McGinley posts job announcements -- term-time, summer and post-graduation -- on the undergraduate bulletin board on the first floor. If you are interested in employment, check the bulletin board and the web site on a regular basis, or come by the Undergraduate Office (room 210) to see what's available.

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

Q. How much do summer internships pay?

A. Corporate internships pay more, university research projects pay quite a bit less. It's not all about the money, of course, but if you can see Colleen to ask what the going rate seems to be these days. (She may have some rough idea.)

Q. Is there life after computer science at Princeton?

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

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.