Computer Science

Department/Program Description

The Mathematics and Computer Science Department offers a major in mathematics and a major in computer science. We also participate in the Informatics and Modeling Certificate Program.

Each student’s course of study is designed to provide an introduction to the basic areas of mathematics or computer science and to provide the technical tools that will be useful later in the student’s career. The course of study is planned in consultation with the department’s advisory committees or the student’s faculty advisor.


Student Learning Goals
  • Understanding abstraction: At its heart, Computer Science is the study of abstractions for the purpose of understanding computation, and as such students must learn appropriate levels of abstraction for solving computational problems. All courses in the curriculum contribute to this goal.
  • Programming: Students must learn how to program in a high-level language, as such programming is the primary tool in Computer Science. This is typically how students are first exposed to the field, and our majors achieve this goal in the freshman or sophomore year by taking the gateway sequence COMP 211—212.
  • Analysis: Students must learn how to reason about computation; this includes analyzing algorithms and proving properties such as correctness and complexity and requires an understanding of appropriate mathematical tools. The courses that focus primarily on this goal are COMP 312 (Design and analysis of algorithms) and COMP 321 (Design of programming languages).
  • Creation: Students must learn how to create original computational structures; this requires an understanding of fundamental techniques in algorithm and data structure design and an ability to combine established techniques in novel ways. All courses in the curriculum contribute to this goal.
  • Limits: Students must understand not only how to analyze and create computational structures, but also the limits of computation itself; this requires an understanding of the mathematical foundations and formalisms of Computer Science. This goal is primarily addressed in COMP 301 (Automata theory and formal languages).
Admission to the Major

To declare the computer science major, a student must have

  • earned a C or higher in COMP211;
  • either earned a C or higher in COMP212 or be enrolled in COMP212 and be earning a grade of C or higher based on completed work; and
  • either earned a C or higher in MATH228 or MATH261 or be enrolled in MATH228 or MATH261 and be earning a grade of C or higher based on completed work.

Note: The MATH228 or MATH261 requirement applies to students declaring the COMP major after June 30, 2016.

Major Requirements

To complete the computer science major, a student must complete the following courses:

Required Courses
COMP211 Computer Science I 1
COMP212 Computer Science II 1
COMP301 Automata Theory and Formal Languages 1
COMP312 Algorithms and Complexity 1
COMP321 Design of Programming Languages 1
COMP331 Computer Structure and Organization (or COMP231 if taken before 2015-2016) 1
MATH228 Discrete Mathematics 1
or MATH261 Abstract Algebra: Groups, Rings, and Fields
MATH221 Vectors and Matrices 1
or MATH223 Linear Algebra
Select two additional electives 2


  • Any COMP course at the 300+ level except COMP409-COMP410 can be used as an elective for the major.
  • At most, one individual or group tutorial may be used as an elective unless prior approval is given.
  • Only 1.0-credit courses taken A–F may be used to satisfy major requirements.

An undergraduate may achieve the BA with honors in computer science via the following route:

  • The honors thesis, written under the supervision of a faculty member under conditions monitored by the University Committee on Honors.
Related Programs or Certificates

Informatics and Modeling Certificate. The department is an active participant in the Informatics and Modeling Certificate ( The certificate provides a framework to guide students in developing analytical skills based on the following two pathways:

The CSM pathway introduces students to modeling techniques and provides students with a foundation in the quantitative simulation, evaluation, and prediction of natural and social phenomena. The IGS pathway introduces students to the interdisciplinary field of bioinformatics and its relationships to molecular genomics, evolution, structural biology, and bioethics. The department offers courses that support both pathways, such as COMP211 and COMP212, and also offers special interdisciplinary courses for the IGS pathway, such as COMP327 and COMP350. The certificate requirements are described in the links for the two pathways.

Additional Information

Lectures. The departmental colloquium series presents lectures on recent research by invited mathematicians and computer scientists from other institutions. Advanced undergraduates are encouraged to attend these colloquia and to participate in graduate seminars. The undergraduate Math Club hosts informal talks in mathematics; accessible to students at all levels.