Director of Undergraduate Studies - James Aspnes
The Department of Computer Science offers both Bachelor of Science and Bachelor of Arts majors in Computer Science and a combined Bachelor’s / Master’s program. It also offers joint majors with the Departments of Electrical Engineering, Mathematics, and Psychology.
Each program provides a solid technical education yet allows students to take the broad range of courses in other disciplines that is an essential part of a liberal education. As a result the total number of required courses is somewhat lower than at other schools. Some students use this freedom to complete a second major, such as Economics, Music, Political Science, or Theater Studies.
All of these programs are built around a common core of five computer science courses. The first, CPSC 201 Introduction to Computer Science, is a survey that illustrates the breadth and depth of the field to students who have already completed a one-term introductory course in programming. The others cover discrete mathematics; data structures; systems programming and computer architecture; and algorithm analysis and design. Together they include the material that every student of computer science should know.
This core is supplemented by a set of electives (and for the joint majors, a set of core courses in the other discipline). The electives give students great flexibility in tailoring the program to specialize in particular areas of computer science or to broaden their knowledge in a variety of areas.
The capstone of each program is the senior project, which lets students experience the challenges and rewards of original scientific research under the guidance of a faculty member. These projects deal with problems that cross the boundaries between courses and can involve complex and imaginative use of computers. Recent projects include:
- Facilitating Foreign Language Fluency Through Interactive Conversational Software
- Persistor: A Checkpointing System for the Determinator OS
- Pinch Pad: Design and Development of an iPad Application for Sharing Sketches
- String Subsequence Kernels for Text Classification
There are also research opportunities for underclassmen, both during the academic year and over the summer.
The Bachelor of Science program is designed for students who plan to continue in computing after graduation, including technical management and consulting. The Bachelor of Arts program provides a solid computer science background as preparation for work in other fields such as finance, law, management, or medicine. The B.S. / M.S. program allows exceptionally able and well-prepared students to earn both Bachelor and Master of Science degrees after eight terms of enrollment.
The joint major in Computer Science and Mathematics is intended for students who are interested in computational mathematics, the use of computers in mathematics, mathematical aspects of algorithm design and analysis, and theoretical foundations of computing.
The joint major in Computer Science and Psychology allows students to integrate work in these two fields, with each providing tools and theories that can be applied to problems in the other. Such interactions include artificial intelligence, biological perception, cognitive science, and neural modes of computation.
The joint major in Electrical Engineering and Computer Science is designed for students interested in computer engineering and other areas at the interface between these two fields. It also covers discrete and continuous mathematics; algorithm analysis and design; digital and analog circuits; signals and systems; and systems programming.
Our majors are heavily recruited by leading software companies, as well as for jobs as consultants and on Wall Street. Some students start their own companies or attend graduate or professional school.
The computer science educational facility (affectionately known as the Zoo and the site of regular late-night pizza parties) is located on the third floor of the Arthur K. Watson building, which houses the Department. Its Intel workstations running Linux and Windows are available via both console and remote login 24 hours a day, 365 days a year, giving students in computer science essentially unlimited access.