Computer Science Requirements

Computer Science is a rich and dynamic discipline that seeks to understand and use effectively the great potential of computing. The Department of Computer Science offers a wide variety of courses that integrate computer science into the liberal arts curriculum. The major can be completed through two tracks. The traditional track provides students with a solid background in algorithmic reasoning, problem solving, design and organization of modern computers and programming languages, and the ability to apply computational thinking to different applications and problem domains. The interdisciplinary track first provides a solid background in computer science including algorithms and data structures, and then allows students to apply this knowledge to specific problem domains in related disciplines and to forge interdisciplinary connections.

Required for the Major in Computer Science, traditional track (11 courses): One CSCI course at the 0100-level; CSCI 0200, CSCI 0201, CSCI 0202, CSCI 0301, CSCI 0302, four CSCI electives at the 0300-level or above, and CSCI 0701. One elective can be substituted with MATH 0200 or MATH 0228.

Required for the Major in Computer Science, interdisciplinary track (11 courses): One CSCI course at the 0100-level; CSCI 0200, CSCI 0201, CSCI 0202, CSCI 0302, CSCI 0701; and five electives, two or three of them from disciplines outside computer science. These interdisciplinary courses should be cohesive in theme and should have computational content and/or technical depth comparable to CSCI electives.  For double majors, these courses may not come from the other major. The remaining electives can be chosen from any CSCI courses at the 0300-level or above. In consultation with computer science faculty, students will develop a proposed set of courses to count towards the interdisciplinary major, and will submit their proposed list to the department chair by the end of their third semester for approval by the CS faculty.

Departmental Honors: Required for honors are: 1. A grade of "B" or higher in the senior seminar CSCI 701, which contains a significant independent project; 2. An extra CSCI course in addition to the 11 courses required for the major; 3. participation in department extra-curricular or service activities such as tutoring, grading, sys-admin work, student-faculty research, or programming competitions; and 4. a major GPA of at least 3.5 for honors, 3.7 for high honors, and 3.9 for highest honors. The required extra course can be any CSCI elective at the 0300-level or above for regular honors, while high and highest honors require the senior thesis CSCI 0702.

Required for the Minor in Computer Science (6 courses): One CSCI course at the 0100-level; CSCI 0200, CSCI 0201, CSCI 0202, and two CSCI electives at the 0300-level or above.

Joint Majors: The computer science component of a joint major requires: One CSCI course at the 0100-level, CSCI 0200, CSCI 0201, CSCI 0202; one course from CSCI 0301 and CSCI 0302; two CSCI electives at the 0300-level or above; and CSCI 0701.

Advanced Placement and Waivers: First-year students whose secondary preparation indicates they can bypass one or more beginning courses should speak to a faculty member to determine the appropriate first course. College credit is given to students who achieve a score of 4 or 5 on the AP computer science A exam. CSCI 0200 may be waived for students who have completed MATH 0310 or MATH 0318 or both MATH 0200 and MATH 0247, or in consultation with the department chair.