Undergraduate Program

Director of Undergraduate Studies

Richard Yang


As is standard for STEM majors at Yale, Computer Science majors should meet with the DUS or the designated faculty representatives to receive academic advising. For Computer Science, there are designated advisors for each class that perform this role. Pointers to the DUS and class advisors can be found at If you are having difficulty reaching your class advisors, the DUS can act as a backup for advice.

The office hours or contact methods of professors serving as advisors for Fall 2023 are listed below.

Majors in Computer Science and Mathematics, Computer Science and Psychology, and Electrical Engineering and Computer Science should have their schedules signed by both the DUS in Computer Science (or the appropriate class advisors) and by the DUS of the other department represented in their major.

Majors in Computer Science and Economics and Computing in the Arts should contact the DUS for those programs instead.

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.

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, Lin Zhong

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.