The Undergraduate Program

Director of Undergraduate Studies, Ruzica Piskac (Fall 2022); Y. Richard Yang (Spring 2023)

Undergraduate Class Advisors

Senior advisors:

Prof. Ruzica Piskac <>
Prof. James Aspnes <>
Smita Krishnaswamy <>

Junior advisors:

Prof. Yang Cai <>
Prof. Marynel Vazquez <>

Freshman/Sophomore advisors:

Prof. Charalampos (Babis) Papamanthou <>
Prof. Alex Wong <>

Certificate-in-programming advisor:

Prof. Theodore Kim <>

The Department of Computer Science offers both B.S. and B.A. degree programs, as well as four combined majors in cooperation with other departments: Electrical Engineering and Computer Science, Computer Science and Economics, Computer Science and Mathematics, and Computer Science and Psychology. Each major program not only provides a solid technical education but also allows students either to take a broad range of courses in other disciplines or to complete the requirements of a second major.

The Computer Science and combined major programs share a common core of five computer science courses. The first is CPSC 201, a survey that demonstrates the breadth and depth of the field to students who have taken the equivalent of an introductory programming course. The remaining core courses cover discrete mathematics, data structures, systems programming and computer architecture, and algorithm analysis and design. Together these courses include the material that every major should know.

The core courses are supplemented by electives (and, for the combined majors, core courses in the other discipline) that offer great flexibility in tailoring a program to each student’s interests. The capstone is the senior project, through which students experience the challenges and rewards of original research under the guidance of a faculty mentor.

Prospective majors are encouraged to discuss their programs with the director of undergraduate studies as early as possible.

The Certificate in Programming

Coordinator: Ted Kim
Home Page

The Certificate in Programming prepares undergraduates to program computers in support of work in any area of study.  While the Certificate does not provide the same grounding in theory and systems that the computer science majors do, it does provide a short path to programming literacy that can be completed in a span of four terms.

Graduate Program

Director of Graduate Studies, Vladimir Rokhlin
Interim Registrar, Alexander Bozzi

The Department offers two graduate programs: a doctoral program leading to a Doctor of Philosophy (Ph.D.) degree, and a terminal master’s program leading to a Master of Science (M.S.) degree. The doctoral program is intended for students preparing for a career in teaching and/or research.The terminal Master’s degree program is intended for students who want advanced study in computer science but do not intend to go on for the Ph.D. A student may apply to either the doctoral program or to the terminal master’s program. A student seeking the Ph.D. should apply directly to the doctoral program, even though he or she intends to obtain a Master’s degree along the way. A student who has completed the Master’s program and decides to go on for a Ph.D. is not guaranteed admission to the doctoral program and must apply in the normal way.