Computer Science Department

Computer science studies the design of computational processes, computing systems, and virtual objects. Our goal is to provide students with a strong background in computer science, including the integration of knowledge from other disciplines. Our graduates have the ability and experience to enable and to produce innovative discoveries.

Students with a variety of interests may want to explore computer science, as it affects and interacts with virtually every discipline. Many advances in the natural and social sciences, engineering, and the humanities would not have been possible without the exponential growth in computing power and the corresponding design of advanced algorithms by computer scientists. Students who become majors or minors, or take just a few courses, will extend their potential by knowing more about how to effectively use computers and computation.

Students in computer science courses learn primarily through programming projects that provide them with experience in design, the application of computational thinking, and problem solving. Computational thinking is the ability to deconstruct a problem or process and describe it at the level of computable operations. Computational thinking integrates abstraction, hierarchical design, information management, and an understanding of complexity. The projects students undertake increase in scope and complexity both within a single course and as students progress through the major.

The computer science major prepares students for graduate work in computer science and related areas and for a wide variety of careers. The computer science minor provides students with the ability to effectively apply computational thinking to other disciplines. The interdisciplinary CS+X majors in biology, environmental studies, psychology, music, or theater and dance give students the opportunity to integrate computer science with a focus discipline. Students interested in any of these programs should enroll in one of the Computer Science 15X courses in their first year.


Chair, Associate Professor Stephanie Taylor, 
Associate Chair, Associate Professor Ying Li

Professor Amanda Stent; Associate Professors Ying Li and Stephanie Taylor; Assistant Professors Eric Aaron, Maximillian Bender, Naser Al Madi, Stacy Doore, Allen Harper, Oliver Layton, and Hannen Wolfe; 
Postdoctoral Fellow Tahiya Chowdhury

Requirements +

Requirements for the Major in Computer Science

Computer Science 15X, 231, 232, 251 or 252, 333, and a theory course (375, 376, or 378); one elective numbered 200 or above; one elective numbered 300 or above; one two-semester sequence of courses with the first numbered at the 300 level and the second at the 400 level; and one 200-level mathematics or statistics course. Students may count only Computer Science 15X, 231, and 251/2 toward both the computer science major or minor and any interdisciplinary computation major.

Requirements for the Major in Computer Science with a Concentration in Artificial Intelligence

Computer Science 15X, 231, 232, 251 or 252, 310, 333, 343, and a theory course (375, 376, or 378); Mathematics 253 (in which case students should take CS 252) or Mathematics 274; and one two-semester sequence of AI-related courses with the first numbered at the 300 level and the second at the 400 level. Students may count only Computer Science 15X, 231, and 251/2 toward both the computer science major or minor and any interdisciplinary computation major.

Requirements for the Honors Program in Computer Science

An honors program is available for students who wish to pursue a topic more deeply. Students must have a grade point average of at least 3.6 in all computer science courses numbered 200 or higher and complete a yearlong, preapproved honors project (Computer Science 483 and 484) of at least seven credits, culminating in both a written paper and a colloquium presentation. Four credits of the honors project satisfy an elective in the major requirements. Students who successfully complete the requirements and receive the recommendation of the department will graduate with “Honors in Computer Science.”

Requirements for the Minor in Computer Science

One Computer Science course numbered 150 or above, 231, 251 or 252, one course numbered 200 or above, one course numbered 300 or above, and a capstone experience. The capstone experience can be either (a) a course numbered 400 or above, (b) a four- (or more) credit independent study with a significant computing component in the student’s major department, or (c) two 300-level courses. Option (b) must be preapproved by a computer science advisor.

The point scale for retention of the major/minor applies to all courses in the major/minor. No requirement for the major/minor may be taken satisfactory/unsatisfactory.

A minor in data science is described in the “Data Science” section of the catalogue.

Requirements for the Interdisciplinary CX+X Majors

Listed under “Biology” (as Computational Biology), “Environmental Studies (as Environmental Computation),” Psychology” (as Computational Psychology), “Music,” and “Theater and Dance.”