Undergraduate Program

BS Major Requirements

The BS curriculum is made up of qualifying, core and advanced courses, as well as the upper-level writing requirement.

No more than two core or advanced courses can be completed at other institutions. If transfer courses are taken while in residence, they must be pre-approved by the computer science program undergraduate director.

Interested students can also complete the honors research program to be awarded “honors in research,” “high honors in research,” or “highest honors in research.”

For complete specifics on the BS major requirements, see the Computer Science Undergraduate Handbook.

Qualifying Courses

CSC 171: The Science of Programming
MTH 150: Discrete Mathematics or MTH 150A: Discrete Math Module
MTH 161: Calculus I*
MTH 162: Calculus II*
CSC 172: The Science of Data Structures

*Calculus sequences MTH 141-MTH 143, or MTH 171Q and MTH 172Q are also acceptable.

Core Course

CSC 173: Computation and Formal Systems
CSC 242: Artificial Intelligence
CSC 252: Computer Organization
CSC 254: Programming Language Design and Implementation
CSC 280: Computer Models and Limitations
CSC 282: Design and Analysis of Efficient Algorithms
MTH 165: Linear Algebra with Differential Equations **
CSC 262: Introduction to Computational Statistics*

* This requirement can also be fulfilled with STT/MTH201, STT213 or ECO 230.

**Students who take MTH 173Q, or both MTH 163 and MTH 235, may count these options as covering the MTH 165 requirement.

Students in 2016-2018 will have the option of doing either CSC 200 or the statistics requirement. Students completing the honors research degree will need to complete CSC 200H and CSC 262 (or substitute).

Advanced Courses

Students must take three advanced courses in computer science. These courses must be above 200, not included in the core courses, and excluding CSC 390: Supervised Teaching. Students should consult with their faculty adviser or the CS undergraduate coordinator about their advanced course selection.

Advanced course specialization is encouraged, but not mandatory. In particular, students are encouraged to select a related set of courses that will prepare them for participation in one of the department’s research projects and/or to complete a senior project.

Areas of interest include the following:

In addition to the three advanced CSC courses, a BS candidate must complete one of the following:

Honors Research Program

The computer science honors research program requires honors-level coursework and a senior research thesis.

There are three degrees of honors awarded:

The degree of honor awarded is determined by the computer science faculty in consultation with the student's honors committee. The quality of the thesis, its presentation, and other CS research and publications throughout the student's undergraduate career are all considered.

Honor Requirements
CSC 200H: Undergrad Problem Seminar Honors
CSC 395H: Honors Senior Thesis
CSC 391H: Independent Study-Honors or 393H: Senior Project-Honors
Senior Research Thesis

For information about the honor program see section 4.4 in the Computer Science Undergraduate Handbook.

Upper-Level Writing Requirement for Computer Science Majors

Every computer science major must develop, in consultation with his or her faculty adviser, a plan that includes two upper-level writing experiences.

Each experience must generate at least 25 pages of expository prose, with substantial feedback on content and form, and revision of the work. The 25 pages may be in the form of a single paper or a series of smaller papers.

Acceptable writing experiences include the following:

Students should review section 6 in the Computer Science Undergraduate Handbook and consult their advisor for more information.