2019-2020 Catalog

Major Requirements

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 take a minimum of 12 courses (48 units) and take or pass out of Calculus I.

COURSEWORK

Required Courses

COMP 131Fundamentals of Computer Science

4 units

COMP 229Data Structures

4 units

 

COMP 149Mathematical Foundations of Computer Science

4 units

Or

 

MATH 210Discrete Mathematics

4 units

And

MATH 214Linear Algebra

4 units

 

COMP 239Computer Organization

4 units

COMP 390Computer Science Junior Seminar

4 units

COMP 490Senior Seminar

4 units

Concentrations

Students should meet with an advisor early on to explore potential pathways through the major. Students will select one of the following three concentrations:

Computational Mathematics Concentration

To complete this concentration, students must take or pass out of Calculus II. They must also take:

MATH 210Discrete Mathematics

4 units

MATH 214Linear Algebra

4 units

COMP 317Algorithms Analysis

4 units

Two additional COMP courses at the 300-level or above

8 units

Two additional MATH courses (*see below*)

8 units

 

And

MATH 352/COMP 352Computability and Complexity

4 units

Or

COMP 353Information Theory

4 units

*Students may apply any 4-unit Mathematics course at the 300-level towards this requirement. Students may also apply MATH 212 towards this requirement.

Computer Science Concentration

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. 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 pathway is designed to give students broad working knowledge of the many facets of the field, while maintaining freedom to pursue specific topics in depth.

CS+X Concentration

Six courses 200-level or above, with at least three of those courses at the 300-level. Students must complete two CS courses in different sub-fields, a four-course interdisciplinary concentration 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 concentration 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 pathway 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 concentration 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.

Sub-fields

Interfaces

COMP 313Computer Graphics

4 units

COMP 340/COGS 340Human Computer Interaction

4 units

COMP 349Robotics

4 units

Security

COMP 383Computer Security

4 units

COMP 389Cryptography

4 units

Artificial Intelligence

COMP 325/COGS 325Topics in Artificial Intelligence

4 units

COMP 331Natural Language Processing

4 units

COMP 347Machine Learning

4 units

Theory

COMP 317Algorithms Analysis

4 units

COMP 352/MATH 352Computability and Complexity

4 units

COMP 353Information Theory

4 units

Software

COMP 357Networking

4 units

COMP 367Practicum in Computer Science

4 units

COMP 373Databases

4 units

COMP 379Operating Systems

4 units

The name of this sub-field has changed from "Systems" to "Software." This is not an additional sub-field. Students that have taken courses listed as satisfying the Systems sub-field will apply these toward the Software sub-field.

Additional Electives


Students may select courses from the list below to satisfy a major elective.

BIO 268Biostatistics

4 units

BIO 373Computational Biology

4 units

COGS 242Computational Approaches to Cognition

4 units

ECON 305Game Theory

4 units

GEO 255Spatial Analysis with Geographic Information Science

4 units

KINE 302Biomechanics

4 units

KINE 310/PSYC 310Motor Learning and Control

4 units

MAC 230Narrative Design and Worldbuilding for Media

4 units

MATH 322Number Theory

4 units

MATH 330Probability

4 units

MATH 332Mathematical Statistics

4 units

MATH 354Set Theory and Foundations of Mathematics

4 units

MATH 370Numerical Analysis

4 units

MATH 372Operations Research

4 units

MATH 380Combinatorics

4 units

MATH 396Mathematical Modeling

2 units

PHIL 150Formal Logic

4 units

PHIL 341Philosophy of Space and Time

4 units

PHIL 350Metalogic

4 units

PSYC 301Learning

4 units

PSYC 302Perception

4 units

PSYC 444Thinking and Reasoning

4 units

UEP 305Urban Data Analysis

4 units