BA in Computer Science

A face shown in silhouette on a laptop screen of code.

Curriculum Overview

Our flexible BA program allows students to build a strong foundation in computer science while exploring other academic interests, preparing them for careers that combine computing with fields like business, design, cognitive science, and beyond.

Curriculum Changes

The computer science department has updated the BA major requirements. Students who declare their major in fall 2026 and beyond, will automatically follow the new BA major requirements.

Students who declare their major prior to fall 2026 will follow the retiring BA major requirements but may be permitted to complete the new BA major requirements by reaching out to an undergraduate coordinator.

Both the pre-major and writing requirements remain the same.

Pre-major Requirements

Students pursuing a BS degree in Computer Science must first complete the following pre-major requirements with a GPA no lower than a 2.0:

  • CSC 171: Introduction to Computer Science
  • MATH 150: Discrete Mathematics
  • CSC 172: Data Structures and Algorithms

Declaring your Major

After completion of the pre-major requirements, students are eligible to officially declare their BS or BA in computer science by completing and submitting a degree planning sheet.

Updated Degree Requirements

Students pursuing a BA degree in computer science must complete three (3) core courses:

At least one course must be selected from:

  • CSC 173: Computation and Formal Systems
  • CSC 280: Computer Models and Limitations

At least one course must be selected from:

  • CSC 252: Computer Organization
  • CSC 254: Programming Language Design and Implementation

The third course can be chosen from the four core courses above and:

  • CSC 242: Introduction to Artificial Intelligence
  • CSC 282: Design and Analysis of Efficient Algorithms

Students must also complete six (6) computer science major electives. This is any four-credit computer science course subject to the following restrictions:

  • No more than one CSC major elective may be numbered below 171.
  • CSC 161 may not be used for CS major credit if completed after or at the same time as CSC 171, or if a student receives AP or transfer credit for CSC 171.
  • CSC 162 may not be used for CS major credit if completed after or at the same time as CSC 172.
  • No more than two CSC major electives may be independent studies (39x)

Retiring BA Major Requirements

These requirements are only for students who declare their major prior to fall 2026.

Students pursuing a BA degree in computer science must complete two (2) core courses from the following list:

  • CSC 173: Computation and Formal Systems
  • CSC 242: Introduction to Artificial Intelligence
  • CSC 252: Computer Organization
  • CSC 254: Programming Language Design and Implementation
  • CSC 280: Computer Models and Limitations
  • CSC 282: Design and Analytics of Efficient Algorithms

Students must also complete seven (7) computer science major electives. This is any four-credit CSC course subject to the following restrictions:

  • No more than one CSC major elective may be numbered below 171.
    • CSC 161 may not be used for CS major credit if completed after or at the same time as CSC 171, or if a student receives AP or transfer credit for CSC 171. CSC 162 may not be used for CS major
  • No more than two CSC major electives may be independent studies (39x)

No more than two core or major electives may be completed at other institutions unless they are taken as part of the University's education abroad program. See department policies on transfer credit.

Writing Requirements

Primary Writing Requirement

The primary writing requirement must be satisfied after declaring your major. Review the primary writing requirement page for more information.

Upper-Level Writing Requirement

Significant writing experience within the discipline is an important complement to the technical material. The following courses will satisfy this requirement:

WRTG 273: Communicating Your Professional Identity (sophomores and juniors only)
WRTG 290B: Writing About and With Artificial Intelligence
CSC 273W: Writing in Computer Science
CSC 299W: Social Implications of Computing
CSC 391W: Independent Study Writing
CSC 395H: Honors Thesis
PHIL 235W: Data, Algorithms, Justice
PHIL 243W: Theory of Knowledge
PHIL 244W: Philosophy of Mind
PHIL 246W: Social Character Knowledge
PHIL 247W: Philosophy of Language
PHIL 252W: Philosophy of Science
PHIL 257W: Philosophy of Artificial Intelligence

Cluster Requirements

Students must complete two clusters: one in the humanities division and one in the social sciences division and must be passed with a 2.0 average or better. See the Cluster Search Engine to review courses and descriptions.