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 either of 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 spatial and geometric computation track teaches students to apply computational and algorithmic approaches to spatial, geometric, and geographic problems. Students completing the major through this track will receive a solid background in computer science including algorithms and data structures, and will then practice applying this knowledge to spatial and geometric problem domains.
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; two courses from among CSCI 0311, CSCI 0312, CSCI 0313, CSCI 0314; the senior seminar CSCI 0702; and two additional CSCI electives at the 0300-level or above. One elective can be substituted with MATH 0200 or PHYS 0221.
Required for the Major in Computer Science, Spatial and Geometric Computation track (11 courses): One CSCI course at the 0100-level (CSCI 0190 is recommended); CSCI 0200, CSCI 0201, CSCI 0302, the senior seminar CSCI 0702 (with a topic pertaining to spatial computation); one elective among CSCI 0425, CSCI 0453, CSCI 0461; two additional CSCI electives numbered 0202 or above; and three additional electives. At least two electives must come from the following list and from the same discipline: MATH 0200, MATH 0335, GEOG 0100, GEOG 0120, GEOG 0231, GEOG 0325 (formerly GEOG 0310), GEOG 0339, HARC 0130, HARC 0231. The third elective may be taken from the preceding list or from any CSCI courses numbered 0300 or above
Senior Project: All majors and joint majors must complete the senior seminar CSCI 0702 during the senior year. In this course they will complete a major capstone project, which can take the form of either a senior thesis supervised by a member of the department, or a group programming project approved by the computer science faculty.
Departmental Honors: Required for honors are: 1. an extra elective at the 0300-level or higher; 2. participation in department extra-curricular or service activities such as tutoring, grading, sys-admin work, student-faculty research, or programming competitions; and 3. a major GPA of at least 3.5 for honors, 3.7 for high honors, and 3.9 for highest honors.
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 0702.
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.