2024-25 Edition

Computer Science, B.S.

The Computer Science major emphasizes the principles of computing that underlie our modern world, and provides a strong foundational education to prepare students for the broad spectrum of careers in computing. This major can serve as preparation for either graduate study or a career in industry. Students receive a solid background in low-level architecture and systems; middle-level infrastructure, algorithms, and mathematical foundations. This is a highly flexible degree that allows students to explore a broad range of topics in modern computing. In order to achieve some focus in their upper-division studies, students are required to satisfy the requirements for one of the nine specializations described below.

Algorithms. This specialization focuses on fundamental computational techniques, including their analysis and applications to topics in computer vision, computer games, graphics, artificial intelligence, and information retrieval. Topics include data structures, graph and network algorithms, computational geometry, probabilistic algorithms, complexity theory, and cryptography.

Architecture and Embedded Systems. This specialization integrates principles of embedded systems, software, hardware, computer architecture, distributed systems and networks, and prepares students to design and create efficient hardware/software architectures for emerging application areas. Students in this specialization will build upon a strong foundation in software and hardware and learn how to design networked embedded systems, and efficient computer architectures for a diverse set of application domains such as gaming, visualization, search, databases, transaction processing, data mining, and high-performance and scientific computing.

Bioinformatics. This specialization introduces students to the interdisciplinary intersection of biology and medicine with computer science and information technology. Students who complete the specialization will understand biomedical computing problems from the computer science perspectives, and be able to design and develop software that solves computational problems in biology and medicine.

General Computer Science. This specialization allows students to acquire a well-rounded knowledge of computer science that may be tailored to their individual interests. Students choose 11 upper-division computer science courses, including two project courses. This specialization will appeal to those who are interested in a broad education in computer science, or who wish to create their own unique specialization not found in the current list of (other) specializations under this major.

Information. This specialization is intended to prepare students for working with and developing a wide variety of modern data and information systems. Topics covered by this concentration include database management, information retrieval, Web search, data mining, and data-intensive computing.

Intelligent Systems. This specialization will introduce students to the principles underlying intelligent systems, including topics such as representing human knowledge, building automated reasoning systems, developing intelligent search techniques, and designing algorithms that adapt and learn from data. Students in this specialization will use these principles to solve problems across a variety of applications such as computer vision, information retrieval, data mining, automated recommender systems, bioinformatics, as well as individually designed projects.

Networked Systems. This specialization focuses on Internet architecture, Internet applications, and network security. It also encourages students to learn about operating systems, databases, search, programming, embedded systems, and performance.

Systems and Software. This specialization deals with principles and design of systems and software. It emphasizes the interaction between software and the computing infrastructure on which it runs and the performance impact of design decisions. Core topics include the hardware/software interface, languages and compilers, operating systems, parallel and distributed computing. Elective topics include networking, security, graphics, and databases.

Visual Computing. This specialization encompasses the digital capture, processing, synthesis and display of visual data such as images and video. This specialization includes computer vision, image processing, and graphics, and covers such topics as the representation of 3D objects, visual recognition of objects and people, interactive and photo-realistic image rendering, and physics and perception of light and color.

The Department also offers a joint undergraduate degree in Computer Science and Engineering, in conjunction with The Henry Samueli School of Engineering; information is available in the Interdisciplinary Studies section of the Catalogue.

Freshman Applicants: See the Undergraduate Admissions section.

Transfer Applicants:

Transfer applicants who satisfactorily complete course prerequisites will be given preference for admission. All applicants must complete the following required courses: one year of approved calculus, one year of object-oriented programing (python, java, C++), additional courses as specified by the major, and completion of lower-division writing. Students are encouraged to complete as many of the lower-division degree requirements as possible prior to transfer. Visit the UCI Office of Admissions website for information on transfer requirements for our major.

Major and Minor Restrictions

Bren School of ICS majors (including shared majors, BIM and CSE) pursuing minors within the Bren School of ICS may not count more than five courses toward both the major and minor.  Some ICS majors and minors outside of the School are not permitted due to significant overlap. Visit the ICS Student Affairs Office website for Majors and Minors restrictions.  All students should check the Double Major Restrictions Chart and view our information page on double majoring to see what degree programs are eligible for double majoring.

Requirements for the B.S. in Computer Science

All students must meet the University Requirements.
Major Requirements
Lower-division
A. Select one of the following series:
Introduction to Programming
and Programming with Software Libraries
and Intermediate Programming
or
Python Programming and Libraries (Accelerated)
and Intermediate Programming
B. Complete:
I&C SCI 45C Programming in C/C++ as a Second Language
I&C SCI 46 Data Structure Implementation and Analysis
I&C SCI 51 Introductory Computer Organization
I&C SCI 53 Principles in System Design
IN4MATX 43 Introduction to Software Engineering
MATH 2A- 2B Single-Variable Calculus I
and Single-Variable Calculus II
I&C SCI 6B Boolean Logic and Discrete Structures
I&C SCI 6D Discrete Mathematics for Computer Science
I&C SCI 6N Computational Linear Algebra
or MATH 3A Introduction to Linear Algebra
STATS 67 Introduction to Probability and Statistics for Computer Science
C. Two courses approved for General Education category II except those offered by the School of Engineering, the School of Information and Computer Sciences, the Department of Economics, or the Department of Mathematics. University Studies courses can be used with the approval of the Computer Sciences Vice Chair for Undergraduate Studies.
Upper-division
A. Core
COMPSCI 161 Design and Analysis of Algorithms
I&C SCI 139W Critical Writing on Information Technology
B. Upper-division electives: Select 11 upper-division courses from the list below. Sections B-1 and B-2 must be completed as part of the 11 upper-division electives.
COMPSCI 103–160, 162-189
Concepts of Programming Language II
Requirements Analysis and Engineering
Software Testing, Analysis, and Quality Assurance
Project in Software System Design
Software Design: Applications
Software Design: Structure and Implementation
Internet Applications Engineering
Human Computer Interaction
User Interaction Software
Project in User Interaction Software
Modeling and World Building
B-1. Project Courses: Choose at least two projects courses from the following list:
Computer Game Development
Projects in Advanced 3D Computer Graphics
Project in Computer Vision
Introduction to Virtual Reality
Project in Databases and Web Applications
Principles of Data Management
Beyond SQL Data Management
Next Generation Search Systems
Advanced Computer Networks
Language Processor Construction
Project in Operating System Organization
Embedded Software
Internet of Things (IoT) Software and Systems
Logic Design Laboratory
Computer Design Laboratory
Project in Algorithms and Data Structures
Project in Artificial Intelligence
Project in Computer Science 1
Project in Computer Science 1
Project in Bioinformatics
Project in Software System Design
Project in User Interaction Software
B-2. Specialization: Select and satisfy the requirements for one of the specializations below. (Note: Students may not pursue more than one specialization.)
Some of the specializations include recommended electives. These are courses related to the specialization and intended to help students choose courses to take toward their upper-division elective requirement.
Algorithms: Four courses from the following list:
COMPSCI 162 Formal Languages and Automata
COMPSCI 163 Graph Algorithms
COMPSCI 164 Computational Geometry and Geometric Modeling
COMPSCI 165 Project in Algorithms and Data Structures
COMPSCI 166 Quantum Computation and Information
COMPSCI 167 Introduction to Applied Cryptography
COMPSCI 169 Introduction to Optimization
Architecture and Embedded Systems: four courses from the following list:
COMPSCI 145 Embedded Software
COMPSCI 147 Internet of Things (IoT) Software and Systems
COMPSCI 151 Digital Logic Design
COMPSCI 152 Computer Systems Architecture
COMPSCI 153 Logic Design Laboratory
COMPSCI 154 Computer Design Laboratory
Bioinformatics: three courses from the following list:
COMPSCI 184A Artificial Intelligence in Biology and Medicine
and complete:
COMPSCI 172B Neural Networks and Deep Learning
COMPSCI 172C Artificial Intelligence Frontiers: Technical, Ethical, and Societal
COMPSCI 178 Machine Learning and Data-Mining
COMPSCI 184C Computational Systems Biology
COMPSCI 189 Project in Bioinformatics
General CS track - 11 courses from the following list:
COMPSCI 103-189, except COMPSCI 161
Information
COMPSCI 121 Information Retrieval
COMPSCI 122A Introduction to Data Management
COMPSCI 178 Machine Learning and Data-Mining
and four courses from:
I&C SCI 45J Programming in Java as a Second Language
COMPSCI 122B Project in Databases and Web Applications
COMPSCI 122C Principles of Data Management
COMPSCI 122D Beyond SQL Data Management
COMPSCI 125 Next Generation Search Systems
COMPSCI 132 Computer Networks
COMPSCI 134 Computer and Network Security
COMPSCI 141 Concepts in Programming Languages I
COMPSCI 142A Compilers and Interpreters
COMPSCI 143A Principles of Operating Systems
COMPSCI 163 Graph Algorithms
COMPSCI 165 Project in Algorithms and Data Structures
COMPSCI 167 Introduction to Applied Cryptography
COMPSCI 179 Algorithms for Probabilistic and Deterministic Graphical Models
at least one of which must be:
COMPSCI 122B Project in Databases and Web Applications
COMPSCI 122C Principles of Data Management
COMPSCI 122D Beyond SQL Data Management
COMPSCI 125 Next Generation Search Systems
COMPSCI 179 Algorithms for Probabilistic and Deterministic Graphical Models
Intelligent Systems
COMPSCI 171 Introduction to Artificial Intelligence
COMPSCI 175 Project in Artificial Intelligence
COMPSCI 178 Machine Learning and Data-Mining
and at least three courses from:
COMPSCI 116 Computational Photography and Vision
COMPSCI 121 Information Retrieval
COMPSCI 125 Next Generation Search Systems
COMPSCI 162 Formal Languages and Automata
COMPSCI 163 Graph Algorithms
COMPSCI 164 Computational Geometry and Geometric Modeling
COMPSCI 169 Introduction to Optimization
COMPSCI 177 Applications of Probability in Computer Science
COMPSCI 179 Algorithms for Probabilistic and Deterministic Graphical Models
Networked Systems
COMPSCI 132 Computer Networks
COMPSCI 133 Advanced Computer Networks
COMPSCI 134 Computer and Network Security
COMPSCI 143A Principles of Operating Systems
Systems and Software: three courses from the following list:
COMPSCI 131 Parallel and Distributed Computing
COMPSCI 141 Concepts in Programming Languages I
COMPSCI 142A Compilers and Interpreters
COMPSCI 142B Language Processor Construction
COMPSCI 143A Principles of Operating Systems
COMPSCI 143B Project in Operating System Organization
Visual Computing: four courses from the following list:
COMPSCI 111 Digital Image Processing
COMPSCI 112 Computer Graphics
COMPSCI 114 Projects in Advanced 3D Computer Graphics
COMPSCI 116 Computational Photography and Vision
COMPSCI 117 Project in Computer Vision
COMPSCI 118 Introduction to Virtual Reality
I&C SCI 162 Modeling and World Building
1

Students must complete and pass both COMPSCI 180A and COMPSCI 180B for course credit.

Freshman
Fall Winter Spring
I&C SCI 31I&C SCI 32I&C SCI 33
MATH 2AMATH 2BIN4MATX 43
WRITING 40WRITING 50I&C SCI 6B
 General Education IIIWRITING 60
Sophomore
Fall Winter Spring
I&C SCI 51I&C SCI 46I&C SCI 53
I&C SCI 6DI&C SCI 6NSTATS 67
I&C SCI 45CGeneral Education IIIComputer Science Spec./Elective
Junior
Fall Winter Spring
COMPSCI 161Computer Science Spec./ElectiveComputer Science Spec./Elective
Science ElectiveComputer Science Spec./ElectiveComputer Science Spec./Elective
General Education IIII&C SCI 139WScience Elective
General Education VIIGeneral Education VIIIGeneral Education VI
Senior
Fall Winter Spring
Computer Science Spec./ElectiveComputer Science Spec./ElectiveComputer Science Spec./Elective
Computer Science Spec./ElectiveComputer Science Spec./ElectiveComputer Science Spec./Elective
General Education IVGeneral Education IVGeneral Education IV

NOTES

1.  Students are advised that this sample program lists the minimum requirements; it is possible that students may have to take additional courses to prepare for required courses.

2.  The lower-division writing requirement must be completed by the end of the seventh quarter at UCI.

3.  This is only a sample plan. Course offerings may be moved due to unforeseen circumstances. It is strongly recommended that students meet with an academic advisor to create an academic plan tailored to meet their specific areas of interest.