Students majoring in computer science acquire a knowledge of basic and advanced algorithm design and programming, as well as the underlying principles, design, and implementation of the major components of computing systems. Achievement of the required competencies is demonstrated by successful completion of a Senior comprehensive examination or thesis and by the successful completion of the four required computer science courses (CS 143M, CS 221N, CS 301, and CS 310) and a minimum of four computer science elective courses numbered CS 320 or greater. Students must maintain a C average in computer science courses to successfully complete the major.
The course requirements for the computer science major are composed of two parts: the program core, and the program specialization. The core is a structured sequence of four computer science courses (Introduction to Computer Science, Data Structures, Theory of Computing, and Computer Architecture) and four mathematics courses (Calculus I, Calculus II or Linear Algebra, Discrete Mathematics, Statistics).
The specialization, composed of a minimum of four computer science electives numbered 320 or greater pursued during the Junior and Senior years, is less structured, allowing the student to emphasize his or her special interests. The Computer Science Seminar is required in the Junior and Senior years. A total of 12 courses (not including the seminar, internships or independent study courses) is required for the Bachelor of Arts.
Four additional courses from advanced computer science (320 level or above), mathematics or physics, are required for the Bachelor of Science.
For computer science students interested in a mathematics minor or a double major (computer science and mathematics), MA 339N Combinatorial Mathematics may be substituted for MA 143 Discrete Mathematics, and MA 333 Probability and Statistics I for MA 133M Statistics.
A minor in computer science requires completion of CS 143M, 221N, and three computer science courses numbered 300 or above. These courses must not duplicate courses used by students to satisfy major or concentration requirements.