Computer Science Major

Computer Science Majors must complete a minimum of 10 one-semester courses in computer science. These include seven required core courses and at least three additional upper-level (numbered 300 or above) electives. In addition, all majors must complete the equivalent of one semester of calculus; AP credit is allowed to satisfy this requirement. Prospective computer science majors are strongly encouraged to complete the equivalent of two semesters of calculus. Advanced placement credit may be used to count toward major requirements.

Department Advanced Placement Policy

AP Calculus

Students who have received a score of 4 or 5 on the AP Calculus AB exam, or a subscore of 4 or 5 on the AP Calculus BC Exam, will earn credit for MATH 135 Calculus 1.  Students will forfeit their credit if they opt to take MATH 133 Calculus 1 with Fundamentals or MATH 135 Calculus 1. Students who receive a score of 4 or 5 on the AP Calculus BC exam will earn credit for MATH 136 Calculus 2. Students will forfeit their credit if they opt to take MATH 133 Calculus 1 with Fundamentals, MATH 134 Calculus 2 with Fundamentals, MATH 135 Calculus 1 or MATH 136 Calculus 2.

AP Computer Science

Students who have received a score of 4 or 5 on the AP Computer Science A exam will earn one unit of credit for CSCI 131 Techniques of Programming and are advised to take CSCI 132 Data Structures. Students will forfeit their AP credit if they opt to take CSCI 110 Survey of Computer Science or CSCI 131 Techniques of Programming.

Requirements

Required courses:
Calculus 1 (or equivalent)
Techniques of Programming
Data Structures
Discrete Structures
Mathematical Structures
Computer Systems & Organization
Analysis of Algorithms
Programming Languages: Design and Implementation
Ethical Issues in Computer Science
In addition to the core courses, majors are required to take at least three elective courses numbered above 300.
Data Mining
Computer Graphics
Theory Of Computation
Operating Systems
Computer Networking
Computational Vision
Compiler Construction
Directed Reading
Directed Project
Computer Science Honors Thesis
Computer Science Honors Thesis

We strongly recommend that students take at least one upper-level course carrying the project course designation. A project course allows students to combine skills and concepts they have previously learned during their undergraduate courses with new material in a complex implementation task. The project course is often scheduled for the last year of undergraduate study, where it can serve as a capstone for the undergraduate experience.