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 31 | I&C SCI 32 | I&C SCI 33 |
MATH 2A | MATH 2B | IN4MATX 43 |
WRITING 40 | WRITING 50 | I&C SCI 6B |
General Education III | WRITING 60 | |
Sophomore | ||
Fall | Winter | Spring |
I&C SCI 51 | I&C SCI 46 | I&C SCI 53 |
I&C SCI 6D | I&C SCI 6N | STATS 67 |
I&C SCI 45C | General Education III | Computer Science Spec./Elective |
Junior | ||
Fall | Winter | Spring |
COMPSCI 161 | Computer Science Spec./Elective | Computer Science Spec./Elective |
Science Elective | Computer Science Spec./Elective | Computer Science Spec./Elective |
General Education III | I&C SCI 139W | Science Elective |
General Education VII | General Education VIII | General Education VI |
Senior | ||
Fall | Winter | Spring |
Computer Science Spec./Elective | Computer Science Spec./Elective | Computer Science Spec./Elective |
Computer Science Spec./Elective | Computer Science Spec./Elective | Computer Science Spec./Elective |
General Education IV | General Education IV | General 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.