Major
Computer science is a broad field, encompassing topics from digital logic and advanced mathematical theory to video games and data science. At the same time, these foundations and applications require fundamental knowledge of how a computer works, as well as the ability to translate processes into working programs. The Computer Science major coursework mirrors this structure. A student majoring in Computer Science must complete the COMP 131 proficiency Requirement and take a minimum of 12 courses (46 units).
Required Courses
A student majoring in Computer Science must take a minimum of 12 courses (46 units). Study abroad courses and transfer credit may satisfy any of these requirements, except for COMP 101, COMP 390, or COMP 490, with departmental approval.
COMP 101 | Justice and Equity in Technology | 2 units |
COMP 229 | Data Structures | 4 units |
| | |
COMP 149 | Mathematical Foundations of Computer Science | 4 units |
Or | | |
| | |
MATH 210 | Discrete Mathematics | 4 units |
And | | |
MATH 214 | Linear Algebra | 4 units |
| | |
COMP 239 | Computer Organization | 4 units |
COMP 390 | Computer Science Junior Seminar | 4 units |
COMP 490 | Computer Science Senior Seminar | 4 units |
Students may substitute MATH 211 Discrete Mathematics Through Cryptography for MATH 210.
Focus Areas
Students should meet with an advisor early on to explore potential pathways through the major. Students will select one of the following three focus areas:
Computer Science Focus
Six courses 200-level or above in at least two different sub-fields of computer science (artificial intelligence, interfaces, security, systems/software, and/or theory). At least three of those courses must be at the 300-level or above. COMP 317 is highly recommended for students interested in graduate school. Students can count at most two courses from the Additional Electives (below) towards the major in this pathway.
This focus is designed to give students broad working knowledge of the many facets of the field, while maintaining freedom to pursue specific topics in depth.
Computational Mathematics Focus
Six elective courses at 200-level or above, with at most two courses at the 200-level (not including Linear Algebra or Discrete Mathematics). Students must complete three elective courses from MATH and three elective courses from COMP that are centered on a theme in computational mathematics, plus a senior comprehensive project related to the theme. At most two of these courses can be double-counted for another major/minor.
This focus reflects the growing importance of work in computer science that is grounded in mathematical foundations, and work in mathematics that requires an understanding of computational methods and implementation. Students who are interested in the Computational Mathematics option will work with an advisor to propose an interdisciplinary focus of six courses on a related theme. Students may choose to seek an additional advisor from the Mathematics Department, but this is not required. Proposals must include an intellectual rationale for the course selection and associated senior project. The proposal should be submitted to the department using this form no later than two semesters prior to the semester of graduation, and at least two weeks before Advising Week.
Any changes to the pathway must be approved via a Petition for Special Consideration, signed by the academic advisor, the department chair, and the optional math advisor, and submitted to the Registrar's Office no later than the week prior to registration in the semester before graduation.
Students may substitute MATH 211 Discrete Mathematics Through Cryptography for MATH 210.
CS+X Focus
Six courses 200-level or above, with at least three of those courses at the 300-level or above. Students must complete two CS courses in different sub-fields, a four-course interdisciplinary focus around a computer science or technology theme (for a total of 24 units), plus a senior comprehensive project related to the theme. At least three of the four courses in the interdisciplinary focus must be outside of and not cross-listed with Computer Science, and at most two of these courses can be double-counted for another major/minor.
This focus reflects the growing importance of computer science in many fields, and allows students to explore the intersection of technology with their other academic interests. Students who are interested in the CS+X option will work with an advisor to propose the interdisciplinary focus of four courses on a related theme. Proposals must include an intellectual rationale for the course selection. A faculty member outside of Computer Science must approve the proposal and agree to act as an outside advisor for the senior comprehensive project. The proposal should be submitted to the department using this form no later than two semesters prior to the semester of graduation, and at least two weeks before Advising Week.
Any changes to the pathway must be approved via a Petition for Special Consideration, signed by the academic advisor, the department chair, and the outside advisor for the CS+X theme, and submitted to the Registrar's Office no later than the week prior to registration in the semester before graduation.
Additional Electives
Students may select courses from the list below to satisfy a major elective.
Students may also apply MAC 250 as an additional elective if they have enrolled in the "Game Design Workshop" section of the course.
Honors in the Major
Honors in Computer Science may be awarded to graduating seniors who demonstrate excellence in their coursework and perform additional research related to their senior comprehensive project during the spring semester of their senior year. Intent to propose an honors project is due the first Friday of December by completing the form linked here. Decision to accept or reject the proposal will be communicated to the student before the first day of classes in the spring semester. Students will be required to enroll in COMP 499 in order to be eligible for Honors. Honors will be awarded based on evaluation of the honors project produced in COMP 499 by Computer Science faculty. To be eligible, students must have a 3.5 grade point average in the major and a 3.25 overall grade point average.
COURSEWORK
Students seeking a Computer Science Minor must complete six courses (24 credits) which satisfy the following:
- Two courses are required: COMP 131 and COMP 229.
- At least four (16 credits) of the six courses (24 credits) in the Minor must be COMP courses at the 200-level or higher.
- One of the following two choices is also required to fulfill the mathematics component of the Minor: COMP 149 or MATH 210 and MATH 214.
COMP 131 | Fundamentals of Computer Science | 4 units |
COMP 229 | Data Structures | 4 units |
| Three 4-unit COMP courses at the 200-level or above | 12 units |
| | |
COMP 149 | Mathematical Foundations of Computer Science | 4 units |
Or | | |
| | |
MATH 210 | Discrete Mathematics | 4 units |
And | | |
MATH 214 | Linear Algebra | 4 units |