BA in Computer Science
Students majoring in Computer Science (CS) learn to understand and evaluate the organization, design, and construction of hardware and software systems for computing. Additionally, they attain a level of mathematical ability allowing them to formally abstract and analyze computational processes. They analyze problems that require computation to answer, and design and implement solutions that are efficient and effective.
Learning Outcomes
Understand and evaluate the organization, design, and construction of hardware and software systems for computing.
Attain a level of mathematical ability allowing the student to formally abstract and analyze computational processes.
Analyze problems that require computation to answer, and design and implement appropriate problem solutions that are efficient and effective.
Requirements
All BU undergraduate students, including both entering first-year and transfer students, will pursue coursework in the BU Hub, the University's general education program that is integrated into the entire undergraduate experience. BU Hub requirements can be satisfied in a number of ways, including coursework in and beyond the major as well as through cocurricular activities. Students majoring in Computer Science will ordinarily, through coursework in the major, satisfy BU Hub requirements in Quantitative Reasoning, as well as some requirements in Communication and the Intellectual Toolkit. Remaining BU Hub requirements will be satisfied by selecting from a wide range of available courses outside the major or, in some cases, cocurricular experiences.
The major in Computer Science requires a total of fifteen 4-unit courses, all completed with a grade of C or higher.
CS students are expected to be comfortable with standard high school mathematics as well as calculus at a level equivalent to completion of CAS MA 123.
The 15 courses required for the major are divided into four groups: A, B, C, and D. Students must take all courses in Group A, at least 2 courses from Group B, at least 2 courses from Group C, and a total of 15 courses from Groups A–D. Group C courses have to be taken at Boston University and cannot be transferred.
Group A: Foundational Courses
These courses build essential foundations for the study of CS. Students must take all five.
CAS CS 111 Introduction to Computer Science 1
CAS CS 112 Introduction to Computer Science 2
CAS CS 131 Combinatoric Structures
CAS CS 210 Computer Systems
CAS CS 330 Introduction to the Analysis of Algorithms
Group B: Formal Tools
These courses provide training in basic algorithms and formal methods. Students must take at least two from this group.
CAS CS 132 Geometrical Algorithms
CAS CS 235 Algebraic Algorithms
CAS CS 237 Probability in Computing
Group C: Central Topics
These courses are more advanced than Groups A and B, and cover broadly important subfields of CS. Students must take at least two from this group.
CAS CS 320 Concepts of Programming Languages
CAS CS 332 Elements in the Theory of Computation
CAS CS 350 Fundamentals of Computing Systems
Group D: Electives
CAS CS 357, CAS CS 365, CAS CS 391, and all CAS CS courses at the 400 and 500 levels
Students can take up to two project-based courses (HUB XC 475, HUB XC 410, CDS DS/CAS CS 519, CDS DS/CAS CS 549, CAS CS 501, CAS CS 506) and apply them to count towards their Group D electives. Anything beyond two courses must be approved as an exception by the Director of Undergraduate Studies.
The list of prerequisites or corequisites for a CS course may contain a CS course 'X' with a non-CS alternative 'Y.' In such a case, course 'Y' may be counted toward the major instead of course 'X.'