INTERDISCIPLINARY STUDIES
Computer Science and Engineering
History and Philosophy of Science
Graduate Program in Networked Systems
Graduate Program in Transportation Science
UCI offers a variety of interdisciplinary programs of study which span the boundaries of traditional academic scholarship and provide students with opportunities to pursue subject areas deriving from the interaction of different disciplines. Faculty participation is determined by research and teaching interests and, as such, faculty may be drawn from various departments and schools across the campus.
This section presents information about:
Computer Science
and Engineering (major)
Global Sustainability (minor)
History
and Philosophy of Science (minor)
Native American Studies (minor)
Networked
Systems (graduate program)
Transportation Science (graduate program)
The School of Humanities section presents information about:
African American
Studies (major, minor)
Archaeology (minor)
Asian American Studies
(major, minor, graduate emphasis)
Asian Studies (minor)
Jewish Studies
(minor)
Latin American Studies (minor)
Religious Studies
(major, minor)
Women's Studies (major, minor, graduate emphasis)
The School of Social Sciences section presents information about:
Chicano/Latino
Studies (major, minor, graduate emphasis)
Conflict Resolution (minor)
UNDERGRADUATE STUDY
Undergraduate Major in Computer Science and Engineering
The undergraduate program in Computer Science and Engineering is administered by faculty from two academic units: the Department of Computer Science (CS) in the Donald Bren School of Information and Computer Sciences, and the Department of Electrical Engineering and Computer Sciences (EECS) in The Henry Samueli School of Engineering. For faculty listings from respective departments, see pages 348 and 234. Successful completion of the program leads to a B.S. degree in Computer Science and Engineering.
Program Educational Objectives: Graduates of the program will (1) demonstrate broad knowledge of computer science and engineering; (2) design, describe, and use state-of-the-art hardware/software systems; (3) maintain awareness of contemporary issues in computer science and engineering in a global and societal context and an understanding of the professional and ethical responsibilities of their profession; (4) demonstrate effective oral and written communication. (Program educational objectives are those aspects of computer science and engineering that help shape the curriculum; achievement of these objectives is a shared responsibility between the student and UCI.)
This program is designed to provide students with the fundamentals of computer science, both hardware and software, and the application of engineering concepts, techniques, and methods to both computer systems engineering and software system design. The program gives students access to multidisciplinary problems in engineering with a focus on total systems engineering. Students learn the computer science principles that are critical to development of software, hardware, and networking of computer systems. From that background, engineering concepts and methods are added to give students exposure to circuit design, network design, and digital signal processing. Elements of engineering practice include systems view, manufacturing and economic issues, and multidisciplinary engineering applications.
Career Paths. Most likely careers will involve building the computer-based infrastructure-computers, networks, embedded devices, as well as operating systems, compilers, and networking software. The focus is on cooperation between hardware and software to yield the highest performance. Examples of such problem areas would be in traffic management, flight control, earthquake monitoring, automotive control, and smart homes.
ADMISSIONS
High School Students: Students must have completed four years of mathematics through pre-calculus or math analysis and are advised to have completed one year each of chemistry and physics. One semester of programming course work is also advised. That preparation, along with honors courses and advanced placement courses, is fundamental to success in the program.
UCI requires applicants to take two SAT Subject Tests, selected from two different subject areas, for example, science and history/social studies, or literature and language. If one of the selected subject areas is mathematics, applicants must take Math Level 2. Also, The Henry Samueli School of Engineering recommends that freshmen applicants in Engineering majors take the SAT Subject Test, Math Level 2, as one of the two required SAT Subject areas.
Transfer Students. Students are encouraged to complete as many of the lower-division degree requirements as possible prior to transfer, including one year of calculus, one year of calculus-based physics (mechanics, electricity, and magnetism with laboratory), one year of programming
with at least one course in object-oriented programming (Java recommended), and one additional approved transferable course for the major (an approved math, science, or CSE course). Students who enroll at UCI in need of completing lower-division course work may find that it will take longer than two years to complete their degrees. For further information, contact the Donald Bren School of Information and Computer Sciences at (949) 824-5156 or The Henry Samueli School of Engineering at (949) 824-4334.
Change of Major
Students interested in changing their major to Computer Science and Engineering should contact the Student Affairs Office in the Bren School of ICS or The Henry Samueli School of Engineering for information about change-of-major requirements. Information is also available at http://www.due.uci.edu/Change_of_Major.html.
REQUIREMENTS FOR THE BACHELOR'S DEGREE IN COMPUTER SCIENCE AND ENGINEERING
University Requirements: See pages 57-62.
Major Requirements:
Mathematics and Basic Science Courses:
Mathematics Courses: Students must complete a minimum of 32 units of mathematics including Mathematics 2A-B, 2D, 2J, ICS 6B/Mathematics 6B, ICS 6D/Mathematics 6D, Mathematics 6G or 3A, and Statistics 67/Mathematics 67.
Basic Science Courses: Students must complete a minimum of 18 units of basic science courses including Physics 7A-B-D and 7LA-LB-LD.
Students select, with the approval of a faculty advisor, one additional basic science course needed to satisfy school and department requirements.
Engineering and Computer Topics Courses:
Students must complete a minimum of 72 units of engineering topics, which includes 24 units of engineering design, and a minimum of 60 units of computer topics, which includes 36 units of upper-division computer topics. The following courses must be completed:
CSE21, CSE22, CSE23, CSE25, CSE31, CSE31L, CSE70A, CSE90, CSE104, CSE112, CSE120A, CSE121, CSE132, CSE135A, CSE135B, CSE141, CSE142, CSE151, CSE161, CSE181A-B-C, Computer Science 112 or EECS104, EECS148 or Computer Science 132.
Students select, with the approval of a faculty advisor, any additional engineering and computer topics courses needed to satisfy school and department requirements.
Tracks: Students must complete one of the tracks listed below.
Algorithms: Students complete Computer Science 163 and 164.
Artificial Intelligence: Students complete Computer Science 171 and one course from Computer Science 172, 173, 175 or 176.
Embedded Systems: Students complete Computer Science 145A and 145B.
Parallel and Distributed Computing: Students complete EECS117, EECS123.
(The nominal Computer Science and Engineering program will require 190 units of courses to satisfy all university and major requirements. Because each student comes to UCI with a different level of preparation, the actual number of units will vary).
NOTE: Students majoring in Computer Science and Engineering may not complete the major in Computer Engineering, the major in Computer Science, the major or minor in Information and Computer Science, or the minor in Informatics.
Sample Program of Study - Computer Science and Engineering
| FALL | WINTER | SPRING |
| Freshman | ||
| Mathematics 2A | Mathematics 2B | Mathematics 2D |
| Physics 7A, 7LA | Physics 7B, 7LB | Physics 7D, 7LD |
| CSE21 | CSE22 | Breadth |
| CSE25 | Breadth | |
| Sophomore | ||
| ICS6D/Mathematics 6D | ICS6B/Mathematics 6B | Mathematics 6G or 3A |
| Mathematics 2J | CSE23 | Science Elective |
| CSE31 | CSE31L | CSE70A |
| Breadth | CSE90 | Breadth |
| Breadth | ||
| Junior | ||
| CSE112 | CSE104 | EECS148 or Computer Science 132 |
| CSE121 | CSE132 | CSE120A |
| CSE161 | Stats 67/Mathematics 67 | Breadth |
| Breadth | Breadth | Breadth |
| Senior | ||
| CSE181A | CSE181B | CSE181C |
| CSE135A | CSE141 | CSE142 |
| CSE151 | CSE135B | Breadth |
| Computer Science 112 or EECS104 | Track | Track |
LOWER-DIVISION
CSE21 Introduction to Computer Science I (6). Introduces fundamental concepts related to computer software design and construction. Develops initial design and programming skills using a high-level language. Fundamental concepts of control structures, data structures, and object-oriented programming. Same as ICS 21. Only one course from CSE21/ICS 21 and ICS H21 may be taken for credit. May not be taken for credit after Informatics 42. (V)
CSE22 Introduction to Computer Science II (6). Abstract behavior of classic data structures (stacks, queues, sorted and unsorted maps), alternative implementations, analysis of time and space efficiency. Recursion. Object-oriented and functional programming. Prerequisites: CSE21/ICS 21 or ICS H21 with a grade of C or better. Same as ICS 22. Only one course from CSE22/ICS 22, ICS H22, or Informatics 42 may be taken for credit. (V)
CSE23 Fundamental Data Structures (4). Focuses on implementation and mathematical analysis of fundamental data structures and algorithms. Covers storage allocation and memory management techniques. Prerequisites: CSE22/ICS 22 or ICS H22 with a grade of C or better, or Informatics 42 with a grade of C or better, or Engineering EECS40. Same as ICS 23. Only one course from CSE23/ICS 23 and ICS H23 may be taken for credit. (V)
CSE25 Computing Tools for Computer Science and Engineering (2). Introduces computer-based mathematical and engineering tool usage and the C programming language. Prerequisites: CSE21/ICS 21 and Mathematics 2A.
CSE31 Introduction to Digital Systems (4) F, Summer. Digital representation of information. Specifications of combinational and sequential systems. Analysis and design of networks of gates and flip flops. Standard modules and their use. Introduction to algorithmic systems: datapath and control. Prerequisite: CSE21/ICS 21, EECS10, or MAE10. Same as EECS31. (Design units: 2)
CSE31L Introduction to Digital Logic Laboratory (3) W. Introduction to common digital building blocks: gates, memory circuits, MSI components. Operating characteristics, specifications, and applications. Design of simple combinational and sequential digital systems (processors state machines). Construction and debugging techniques, using hardware description languages and CAD tools. Prerequisites: CSE31/EECS31; EECS10 or EECS 12 or CSE22/ICS 22. Same as EECS31L. Formerly CSE31LB. (Design units: 3)
CSE70A Network Analysis I (4) W, Summer. Modeling and analysis of electronic networks. Basic network theorems. Sinusoidal steady state and transient analysis of RLC networks and the impedance concept. Corequisite: Mathematics 2J or 3D. Prerequisites: Physics 7D; CSE21/ICS 21, EECS10, or MAE10. Same as EECS70A. (Design units: 1)
CSE90 Systems Engineering and Technical Communications (2). Introduces systems engineering concepts, including specifications and requirements, hardware and software design, integration, testing, and documentation. Emphasizes organization and writing of reports and effective presentations.
UPPER-DIVISION
CSE104 Principles of Operating Systems (4). Principles and concepts of process and resource management, especially as seen in operating systems. Processes, memory management, protection, scheduling, file systems, and I/O systems are covered. Concepts illustrated in the context of several well-known systems. Prerequisites: CSE23/ICS 23, and ICS 51 or CSE31/EECS31 with grades of C or better. Same as Computer Science 143A. Only one course from CSE104/Computer Science 143A and EECS111 may be taken for credit.
CSE112 Electronic Devices and Circuits (4). Semiconductor properties, carrier transport, P-N junctions, metal-semiconductor junctions, diodes, MOS transistors, transistor equivalent circuits, amplifiers, invertors, digital circuits, CMOS circuits, and logic gates. Prerequisites: Physics 7D, CSE70A/EECS70A. (Design units: 1)
CSE120A Discrete-Time Signals and Systems (4) W. Analysis of discrete-time linear-time-invariant (DTLTI) systems in the time domain and using z-transforms. Introduction to techniques based on Discrete-Time, Discrete, and Fast Fourier Transforms. Examples of their application to digital signal processing and digital communications. Prerequisite: CSE70A/EECS70A. Same as EECS150B. CSE120A/EECS150B and EECSH150B may not both be taken for credit. (Design units: 0)
CSE121 Software Tools and Methods (4). Concepts and techniques of constructing software in a systematic fashion, including detailed design techniques, specifications, programming methods, quality-inducing procedures, development tools, team techniques, testing, estimation, and performance improvement. Laboratory work involves exercises to illustrate important concepts, methods, and tools. Prerequisite: Informatics 43 with a grade of C or better or the following: ICS 52 or CSE90 with a grade of C or better; ICS 6D/Mathematics 6D; ICS 6B/Mathematics 6B; Mathematics 6G or 3A; and satisfactory completion of the lower-division writing requirement. Same as Informatics 111.
CSE132 Organization of Digital Computers (4) W. Building blocks and organization of digital computers, the arithmetic, control, and memory units, and input/out devices and interfaces. Microprogramming and microprocessors. Prerequisite: CSE31L/EECS31L. Same as EECS112. Only one course from CSE132/EECS112, CSEH132/EECSH112, and Computer Science 152 may be taken for credit. (Design units: 4)
CSEH132 Honors Organization of Digital Computers (4) W. Building blocks and organization of digital computers, the arithmetic, control, and memory units, and input/out devices and interfaces, including advanced microarchitecture topics such as: pipelining, superscalar, multithreading, reconfigurable and microprocessor design. Prerequisite: CSE31L/EECS31L. Same as EECSH112. Only one course from CSEH132/EECSH112, CSE132/EECS112, and Computer Science 152 may be taken for credit. (Design units: 4)
CSE135A Digital Signal Processing (3) F. Nature of sampled data, sampling theorem, difference equations, data holds, z-transform, w-transform, digital filters, Butterworth and Chebychev filters, quantization effects. Prerequisite: CSE120A/EECS150B. Same as EECS152A. (Design units: 2)
CSE135B Digital Signal Processing Design and Laboratory (3) W. Students plan and perform 10 core laboratory exercises covering signal synthesis and analysis with various filter and frequency transform processes. Models of radio and radar/sonar signal processing are included. Prerequisite: CSE135A/ EECS152A. Same as EECS152B. (Design units: 3)
CSE141 Concepts in Programming Languages I (4). In-depth study of several contemporary programming languages stressing variety in data structures, operations, notation, and control. Examination of different programming paradigms, such as logic programming, functional programming and object-oriented programming; implementation strategies, programming environments, and programming style. Prerequisites: Informatics 43 with a grade of C or better; or ICS 23/CSE23/ICS H23 with a grade of C or better and either ICS 51 or CSE31/EECS31 with a grade of C or better. Same as Computer Science 141/Informatics 101.
CSE142 Compilers and Interpreters (4). Introduction to the theory of programming language processors covering lexical analysis, syntax analysis, semantic analysis, intermediate representations, code generation, optimization, interpretation, and run-time support. Prerequisite: CSE141/Computer Science 141/Informatics 101. Prerequisite for Computer Engineering majors only: EECS40. Same as Computer Science 142A.
CSE151 Introduction to VLSI (4) F. A first course in the design of Very Large Scale Integrated (VLSI) systems and chips. Review of CMOS VLSI technology. Analysis and synthesis of basic and complex CMOS gates. Introduction to CAD methodology and usage of CAD Tools. Prerequisite: CSE132/ EECS112. Same as EECS115. (Design units: 4)
CSE161 Design and Analysis of Algorithms (4). Time and space complexity of algorithms. Models of computation, techniques for efficient algorithm design, effect of data structure choice on efficiency of an algorithm. Fast algorithms for problems such as sorting, set manipulation, graph problems, matrix multiplication, Fourier transforms, and pattern matching. NP-complete problems. Prerequisites: CSE23/ICS 23, and CSE31/EECS31 or ICS 51 with grades of C or better; ICS 6D/Mathematics 6D; Mathematics 6B; Mathematics 6G or 3A; Mathematics 2B; satisfactory completion of the lower division writing requirement. Same as Computer Science 161.
CSE181A-B Senior Design Project (3-3). Teaches problem definition, detailed design, integration and testability with teams of students specifying, designing, building, and testing complex systems. Lectures include engineering values, discussions, and ethical ramifications of engineering decisions. Corequisite: CSE135A/EECS152A. Prerequisite: CSE104/Computer Science 143A. (Design units: 3-3)
CSE181C Senior Design Project (3). Completion, documentation, and presentation of projects started in CSE181A-B. Teaches engineering documentation writing and presentation skills. Students write comprehensive project reports individually and participate in a public presentation of the project's results. Prerequisites: CSE181A-B and satisfactory completion of the lower-division writing requirement.