Academics / Undergraduate Computer Science Major (BS/BA)
Computer science is offered as a major in the McCormick School of Engineering and in the Weinberg College of Arts and Sciences. In the McCormick School of Engineering, computer science is offered as a bachelor of science degree. In the Weinberg College of Arts and Sciences, computer science is offered as a bachelor of arts degree.
The computer science major is designed to show students at all levels of computing experience — including novices with no background in CS — how to approach problems from an algorithmic perspective, how to understand the nature and broad reach of computation, and how to apply that knowledge abstractly. Students in the program also learn how to approach problems from the systems perspective, understanding the evolving layers of the software and hardware stack, and how to use and extend them.
The programs are an ideal match for those who seek to learn how to design and implement complex software systems, effective human-computer interfaces, and machine learning and artificial intelligence applications, both individually and as a team member.
Jump to a Section
- McCormick Bachelor of Science in Computer Science
- Weinberg Bachelor of Arts in Computer Science
- What are the differences between the BS and the BA?
- Curriculum Overview
BS in Computer Science (McCormick)
McCormick’s bachelor of science in computer science offers students the opportunity to study computer science in an engineering-focused context, with a greater emphasis on design, as well as the sciences and other areas of engineering.
Students may optionally choose to complete a concentration within their computer science degree. Students can select, declare, or change their concentration in the McCormick Advising System.
View McCormick major requirements
View optional computer science concentrations
BA in Computer Science (Weinberg)
The bachelor of arts with a major in computer science offers students the opportunity to study computer science within the context of Weinberg's focus on liberal arts and sciences.
Students may optionally choose to complete a concentration within their computer science major. Students can select, declare, or change their concentration using the major declaration form for Weinberg students.
Weinberg students are expected to declare a computer science major before the end of their second year. Third-year students wishing to declare a computer science major should reach out to Sara Sood for a meeting.
View Weinberg major requirements
View Weinberg requirements for the Degree of Bachelor of Arts
View optional computer science concentrations
What are the differences between the BS and the BA?
The computer science requirements are identical in the McCormick (BS) and Weinberg (BA) programs. The non-major degree requirements differentiate the two programs.
The McCormick BS in computer science program requires 48 total units — units within the computer science major curriculum and units of core coursework including mathematics, engineering analysis, basic sciences, design and communications, basic engineering, social sciences/humanities, and unrestricted electives.
Weinberg computer science major students complete at least 45 total units of credit, which includes units in the computer science program in addition to seminar, writing proficiency, foreign language, and distribution requirements.
Curriculum Overview
Below is the list of shared requirements for the bachelor of science in computer science program offered by the McCormick School of Engineering and for the bachelor of arts in computer science program offered by the Weinberg College of Arts and Sciences.
Core Courses
Core courses provide an introduction to computer science and include the Fundamentals of Computer Programming sequence (COMP_SCI 111, 150, 211), Mathematical Foundations of Comp Science (COMP_SCI 212), Introduction to Computer Systems (COMP_SCI 213), and Data Structures & Algorithms (COMP_SCI 214).
5 Breadth Courses
Computer science majors must take one course from each of the following areas: Theory, Systems, Artificial Intelligence, Interfaces, and Software Development and Programming Languages.
6 Technical Electives
Technical electives allow students to explore advanced computer science topics in detail. Any 300- or 400-level COMP_SCI course may be taken as a technical elective in addition to select COMP_ENG and ELEC_ENG options.
2 Project Courses
Computer science majors take two courses centered around significant development and/or research work that involve extended, student-directed projects.
Mathematical Background
Mathematical requirements include calculus, linear algebra, and statistics.