1. Understand and evaluate the organization, design, and construction of hardware and software systems for computing.
2. Attain a level of mathematical ability allowing the student to formally abstract and analyze computational processes.
3. Analyze problems that require computation to answer, and design and implement appropriate problem solutions that are efficient and effective.
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 A: Foundations (take all 5 and complete proficiency in Calculus 1)
- CS 111 Introduction to Computer Science I
- CS 112 Introduction to Computer Science II
- CS 131 Combinatoric Structures
- CS 210 Computer Systems
- CS 330 Introduction to the Analysis of Algorithms
- [Calculus 1 proficiency, equivalent of completing MA 123]
Group B: Technical Preparation (take at least 2 of 3)
- CS 132 Geometrical Algorithms
- CS 235 Algebraic Algorithms
- CS 237 Probability in Computing
Group C: Essential CS Paradigms (take at least 2 of 3)
- CS 320 Concepts of Programming Languages
- CS 332 Elements in the Theory of Computation
- CS 350 Fundamentals of Computing Systems
Group D: Advanced Topics (take 4 – 6, totaling 15 courses overall)
- CS Courses level 300 and above EXCEPT for 300 level courses counting toward Groups A and C (CS 320, 330, 332, and 350)
All classes counting towards the Major in Computer Science must be completed with a grade of C or higher.
CS major credit will not be given for Metropolitan College courses.
Computer Science Major Advisors
Interested in declaring your major in CS?
Current College of Arts and Sciences students can declaring a major in Computer Science by completing this form on the CAS Advising website. Students from other schools and colleges at BU should speak with their advisor about declaring a CS major.
After declaring your CS major, be sure to sign up for our cs-ugrads mailing list. You may also sign up for cs-jobs, cs-internships, and cs-contests lists if you wish to receive job-related announcements.
Interested in scheduling an advising appointment?
Check here on our website to view the current semester’s office hours for the CS major advisors. General advising inquiries should be sent to email@example.com, and you may contact Professor Wayne Snyder or Professor Dora Erdos to set up an advising appointment if you cannot attend advising office hours.
The department hosts group advising sessions every semester before registration to explain the basics of major and degree requirements. Information on these advising sessions are sent out at the beginning of the semester to the cs-ugrads mailing list.
Interested in course substitutions for major requirements?
Students should contact their advisor (Professor Dora Erdos for freshmen and sophomores, Professor Wayne Snyder for juniors and seniors) to count courses other than those listed in the Courses section for major requirements. Attention is called to the following: CS courses number 600 and above; 500-level courses in Mathematics & Statistics; and Computer Engineering courses offered by the College of Engineering. Make sure to confirm a potential course substitution with Professor Erdos before taking the course.
For students completing the BU Hub: use this Plan of Study worksheet as a guide when preparing for advising appointments or registration.
For students completing Divisional Studies/Core Curriculum: This advising sheet for CS majors lists CS major requirements and CAS requirements; fill it out before the advising meeting.
BU Hub and the CS Major
CS Majors must complete the BU Hub general education requirement. The BU Hub can be satisfied through a mix of major courses, the Core Curriculum, Co-curricular experiences, and coursework in other departments/minors or double majors.