COMPUTER SCIENCE AND ENGINEERING
Catalog pages 230-240
Subject abbreviation: CS The Marlan and Rosemary Bourns College of Engineering
Walid Najjar, Ph.D., Chair CSE Department Office, 351 Winston Chung Hall
- (951) 827-5639; cs.ucr.edu
Distinguished Professor Laxmi N. Bhuyan, Ph.D. Rajiv Gupta, Ph.D. Tao Jiang, Ph.D.
Professors Nael Abu-Ghazaleh, Ph.D. Philip Brisk, Ph.D. Zizhong Chen, Ph.D. Evangelos Christidis, Ph.D. Marek Chrobak, Ph.D. Michalis Faloutsos, Ph.D. Eamonn Keogh, Ph.D. Srikanth Krishnamurthy, Ph.D. Stefano Lonardi, Ph.D. Walid Najjar, Ph.D. Michael Pazzani, Ph.D. Kadangode K. Ramakrishnan, Ph.D. Chinya Ravishankar, Ph.D. Christian Shelton, Ph.D. Vassilis Tsotras, Ph.D. Frank N. Vahid, Ph.D. Neal Young, Ph.D.
Professors Emeriti Mart L. Molle, Ph.D. Thomas H. Payne, Ph.D. Teodor C. Przymusinski, Ph.D. Associate Professors Zhiyun Qian, Ph.D. Manu Sridharan, Ph.D. Heng Yin, Ph.D.
Assistant Professors Amey Bhangale, Ph.D. Jiasi Chen, Ph.D. Ahmed Eldawy, Ph.D. Yan Gu, Ph.D. Mohsen Lesani, Ph.D. Amr Magdy, Ph.D. Evangelos Papalexakis, Ph.D. Zhiyun Qian, Ph.D. Silas Richelson, Ph.D. Craig Schroeder, Ph.D. Tamar Shinar, Ph.D. Chengyu Song, Ph.D. Yihan Sun, Ph.D. Zhijia Zhao, Ph.D.
**
Adjunct Professors Gianfranco Ciardo, Ph.D. Iulian Neamtiu, Ph.D.
Cooperating Faculty Salman Asif, Ph.D. (Electrical & Computer Engineering) Bir Bhanu, Ph.D. (Electrical and Computer Engineering) Thomas Girke, Ph.D. (Botany and Plant Sciences) Konstantinos Karydis, Ph.D. (Electrical & Computer Engineering) Hyoseung Kim, Ph.D. (Electrical and Computer Engineering) Wenxiu Ma, Ph.D. (Statistics) Samet Oymak, Ph.D. (Electrical & Computer Engineering) Shaolei Ren, Ph.D. (Electrical and Computer Engineering) Sergio J. Rey, Ph.D. (Public Policy) Amit Roy-Chowdhury, Ph.D. (Electrical and Computer Engineering) Thomas Stahovich, Ph.D. (Mechanical Engineering) Sheldon Tan, Ph.D. (Electrical and Computer Engineering) Daniel Wong, Ph.D. (Electrical and Computer Engineering)
Major
The Department of Computer Science and Engi- neering offers three majors at the undergraduate level. UCR’s offerings of all three majors are unique compared to many schools in the em- phasis on theoretical foundations and practical applications.
The Computer Science major stresses the study of core and advanced computer science topics. It prepares students for a large variety of careers in computing, including software engineering, networks, databases, graphics, algorithms, security, system analysis, and em- bedded systems.
The objective of the B.S. degree program in Computer Science is to prepare graduates for professional practice in both the private and public sectors and for life-long learning, including the option for graduate degrees, by providing them with:
- • Background: the necessary technical com-
petencies, including knowledge of scientific principles and skill at rigorous analysis and creative design
- • Breadth: a broad education that includes
knowledge of current issues and trends in society and technology
- • Professionalism: professional attitudes and
ethics and skills for clear communication and responsible teamwork
- • Learning environment: a learning environ-
ment that is rigorous, challenging, open, and supportive
The Computer Science B.S. degree program at UCR is accredited by the Computing Accredita- tion Commission of ABET, abet.org.
The Computer Engineering major stresses the study of core computer science and electrical engineering topics. It prepares students for careers in the design of complex systems involving com- puter hardware, computer software, electronics and electrical signals for communication, network- ing, desktop computing, and embedded comput- ing. See Computer Engineering in this catalog.
The Computer Engineering B.S. degree program at UCR is accredited by the Engineering Accred- itation Commission of ABET, abet.org.
The Computer Science with Business Applications major covers the core of comput- er science and basic business and management topics. It prepares students for careers in design and management of computer and information systems, system and network administration, and e-commerce. It is also useful for careers that apply information technology to support business processes.
The objective of the B.S. degree program in Computer Science and Business Applications is to prepare graduates for professional practice in both the private and public sectors and for life- long learning, including the option for graduate degrees, by providing them with:
- • Background: the necessary technical com-
petencies, including knowledge of scientific principles and skill at rigorous analysis and creative design
- • Breadth: a broad education that includes
knowledge of current issues and trends in society and technology
- • Professionalism: professional attitudes and
ethics and skills for clear communication and responsible teamwork
- • Learning environment: a learning environ-
ment that is rigorous, challenging, open, and supportive
All undergraduates in the College of Engineer- ing must see an advisor at least annually. Visit student.engr.ucr.edu for details.
University Requirements
See Undergraduate Studies section.
College Requirements
See The Marlan and Rosemary Bourns College of Engineering, Colleges and Programs section.
The Computer Science major uses the follow- ing major requirements toward the satisfaction of some of the college’s Natural Sciences and Mathematics breadth requirements and one of the college’s English Composition breadth requirements.
- 1. ENGR 180W
The Computer Science with Business Applications major uses the following major requirements toward the satisfaction of the college’s Social Sciences breadth requirements and one of the College’s Natural Science and Mathematics breadth requirements.
- 3. SOC 150
Major Requirements
Computer Science Major
- 1. Lower-division requirements (61 units)
- a) ENGR 001-I
- f) One course of 4 or more units in an
engineering discipline outside the field of computer science to be selected in consultation with a faculty advisor. (Either a lower-division or an upper-divi- sion course may be used to satisfy this requirement.)
- 2. Upper-division requirements
(78 units minimum)
- a) ENGR 101-I
- e) ENGR 180W
- f) STAT 155
- g) At least 28 units of technical electives
to be chosen from an approved list of courses which currently includes CS 105, CS 122A, CS 122B, CS 130, CS 133, CS 134, CS 135, CS 145, CS 160, CS 162, CS 164, CS 165, CS 166, CS 167, CS 168, CS 169, CS 170, CS 171, CS 172, CS 175, CS 177, CS 179 (E-Z) (4 units maximum), CS 180, CS 181, CS 182, CS 183, CS 193 (4 units maximum), MATH 120, MATH 126, MATH 135A, MATH 135B, PHIL 124.
The technical electives selected must be distinct from those used to satisfy the requirements specified in 2.a)–f) above, with at least half of the units selected from Computer Science courses.
Visit the Student Affairs Office in the College of Engineering or student.engr.ucr.edu for a sample program.
Computer Science with Business Applications Major
- 1. Lower-division requirements (56 units)
- a) ENGR 001M
- b) BUS 020
- 2. Upper-division requirements (85 units)
- a) ENGR 101M
- d) At least two courses from CS 164,
- f) ENGR 180W
- g) SOC 150
- h) STAT 155
- i) Sixteen (16) units of upper-division Com-
puter Science technical electives, which must be distinct from the courses used to satisfy the above major requirements. These 16 units may be chosen from those courses listed as upper-division requirements or technical electives for the Computer Science major. At least four courses must be in the Department of Computer Science and Engineering.
- j) Sixteen (16) units of Business Administra-
tion technical electives, including at least 8 units of courses listed in the Information Systems concentration within the Busi- ness Administration major. These 16 units must be distinct from the courses used to satisfy the above major requirements and may be chosen from any of the available Business Administration courses, with the following restrictions: no credit will be given for BUS 101, only one of BUS 171 and CS 180 can be taken for credit, only one of BUS 173 and CS 166 can be taken for credit, only one of BUS 175 and CS 164 can be taken for credit, and only one of BUS 125 and CS 177 can be taken for credit.
Students may petition for exceptions to the above degree requirements. Exceptions to Computer Science course requirements must be approved by the Computer Science and Engineering undergraduate advisor or chair.
Visit the Student Affairs Office in the College of Engineering or student.engr.ucr.edu for a sample program.
Minor in Computer Science
The minor in Computer Science is designed to enhance majors with limited computational the- ory or practice. As such, students with majors in Computer Engineering, Computer Science, Computer Science and Business Applications, and Mathematics (Computational Mathematics option) are not eligible.
Requirements for the minor in Computer Science are:
CS 014, CS 061, CS 011/MATH 011, MATH 008B or MATH 009A, MATH 009B, MATH 009C
- 3. Three elective courses, each of four
or more units, such that:
- a) Each is an upper-division requirement or
a listed technical elective for the Com- puter Science major, excluding courses numbered 190-199
- b) No course may be an upper-division
requirement of the student’s major
- c) At least two courses must be in the
Department of Computer Science and Engineering
- 4. All courses for the minor must be taken for
a letter grade.
Note: Students with a minor in Computer Sci- ence must obtain approval from the undergrad- uate advisor in Computer Science and Engineer- ing for a specific program of electives consistent with their career goals.
Graduate Program
The Department of Computer Science and Engineering offers the M.S. and Ph.D. degrees in Computer Science. General requirements are listed in the Graduate Studies section of this catalog. Specific requirements for each degree are described below.
Students enrolled prior to Fall 2008 can still follow the old Graduate Program.
Admission All applicants must supply GRE General Test scores. The GRE subject test in Computer Science is recommended but not required. Ap- plicants should have at least an undergraduate degree in computer science or a closely related field, but applicants who fail to meet this criterion may sometimes be admitted with deficiencies.
Prerequisite Material Competence in the areas defined by the follow- ing UCR courses is essential to graduate study in computer science:
CS 141, CS 150, CS 152, CS 153, CS 161
A student who is deficient in any of these com- petency areas may be asked to complete the corresponding UCR course with a letter grade of at least B+, or to pass a challenge examination based on that course’s final exam with a grade of at least B+. All such remedial work should be completed within the first year of graduate study, and in all cases the deficiency must be corrected before a student can enroll in any graduate course from the same specialty area.
Core Areas Students have considerable flexibility in selecting specialty area(s) within the program. However, the following core areas introduce fundamental concepts and tools of general interest to all students.
- 1. Hardware design principles: CS 203 or
- 2. Theoretical foundations: CS 215 or
Major Specialty Areas The department has active research programs in the following major specialty areas. A list of relat- ed graduate courses is provided for each area.
A. Algorithms, Bioinformatics, and Theory of Computation: CS 215, CS 218, CS 234, CS 238
B. Computer Architecture, Embedded Systems, and CAD: CS 203, CS 213, CS 220, CS 223, CS 217/EE 217, EE 213
C. Databases, Information Retrieval, Data Mining, and Machine Learning: CS 205, CS 225, CS 226, CS 227, CS 229, CS 235, CS 236, CS 242
D. Operating Systems, Distributed Systems, and High Performance Computing: CS 202, CS 211, CS 237, CS 253, CS 255
E. Computer Networks: CS 204, CS 208, CS 237, CS 239, CS 240, CS 254, CS 255, CS 257
F. Programming Languages, Compilers, and Software Engineering: CS 201, CS 206, CS 207, CS 246
G. Computer Graphics, Science Comput- ing, and Human-Computer Interaction: CS 210, CS 230, CS 231, CS 233, ME 230, ME 231
Master’s Degree
The Department of Computer Science and Engineering offers the M.S. degree in Computer Science, after completion of the following degree requirements.
Course Requirements 48 quarter units of graduate or upper-division undergraduate cours- es are required. Students who have completed similar courses elsewhere may petition for a waiver of a required course or for substitution of an alternative course. For students interested in interdisciplinary research, individual study programs can be approved. All courses used to satisfy these requirements (with the exception of CS 297 and CS 299) must be taken for a letter grade. No course can be counted towards more than one category.
- 1. Core Requirement (8 units). Choose one
course from two of the three Core Areas listed above, with no grade lower than B-.
- 2. Breadth Requirement (8 units). Two
approved breadth courses chosen in such a way that together the core and breadth courses cover four different Major Specialty Areas (A to G).
- 3. Electives (32 units). Students have the
option of completing their degree by taking a comprehensive exam, writing a thesis, or completing a project. Depending on the option selected, the electives that may be taken are:
- a. Comprehensive Examination Option.
For a student pursuing the M.S. degree, comprehensive examination option, the 32 elective units must include at least 16 units of approved graduate lecture courses. The remaining 16 units may include additional approved graduate lecture courses, up to 8 units of graduate seminars in CS 260–269, and up to 12 units of approved undergraduate techni- cal electives. Research units (CS 297 or CS 299) may not be used to satisfy any course requirements under this option.
- b. Project Option. A student pursuing the
M.S. degree, project option, may include up to 4 units of Directed Research (CS 297) towards the elective requirement. Of the remaining 28 units, at least 12 units must be approved graduate lecture courses. The remaining 16 units may include additional approved graduate lecture courses, up to 8 units of grad- uate seminars in CS 260–269, and up to 12 units of approved undergraduate technical electives.
- c. Thesis Option. A student pursuing the
M.S. degree, thesis option, may include up to 12 units of graduate research (CS 297 or CS 299) towards the elective unit requirement. Of the remaining 20 units, at least 4 units must be approved graduate lecture courses. The remaining 16 units may include additional approved graduate lecture courses, up to 8 units of graduate seminars in CS 260–269, and up to 8 units of approved under- graduate technical electives.
Capstone Experience All students must complete a capstone experi- ence that synthesizes and integrates the knowl- edge and skills obtained throughout the master’s program, by either passing a comprehensive exam, writing a thesis, or completing a project. The Comprehensive Examination Option is the default option. If a student choses the project or thesis option, it is the reponsibility of the student to find a faculty member willing to supervise the master’s project or thesis, to form the faculty examining committee, and to schedule the oral examination.
- a. Comprehensive Examination Option
Students must pass a comprehensive ex- amination administered by the Department of Computer Science and Engineering.
- b. Project Option
Students must complete a research project under the guidance of a faculty member. The project will be approved by a committee of at least two faculty members and requires a presentation and written report.
- c. Thesis Option
Students must submit a master’s thesis in accordance with the general require- ments of the university. The thesis is original research work, and it should demonstrate the student’s ability to study a research area, identify an open prob- lem, and make a research contribution. The thesis requires a presentation and must be approved by a committee of at least three faculty members.
Normative Time to Degree 2 years.
Combined B.S. + M.S. Five-Year Program The college offers combined five year B.S. + M.S. programs designed to allow successful UCR Computer Science or Computer Engi- neering B.S. graduates to complete the Master of Science degree in Computer Science in one year, by allowing up to 12 credits of coursework taken as a UCR undergraduate to be counted towards the 32-unit elective requirements of the M.S. (The courses that can be double counted are those that are eligible to be counted as tech- nical electives in the B.S. requirements.)
A student may apply at the start of their senior year by submitting an application to the Com- puter Science M.S. program, provided that at the end of junior year, the student was a UCR Computer Science or Computer Engineering B.S. student with cumulative GPA at least 3.4 and had completed the following courses with no grade less than a B- and average grade at least 3.2: CS 100, CS 120A, CS 120B, CS 161. The application to the M.S. program must include at least two recommendation letters from UCR Academic Senate faculty members (at least one, and preferably both, CSE faculty). Submission of GRE scores with the application is recommended but not required. Matriculation into the combined program occurs in the Fall term following senior year, provided: (a) the M.S. application is accepted, (b) throughout senior year, the student is a Computer Science or Computer Engineering B.S. major with cumula- tive GPA 3.4 or higher, (c) by the end of senior year, the student completes the Computer Science or Computer Engineering B.S. degree requirements.
Incoming students who are applying to the Computer Science or Computer Engineering B.S. programs may simultaneously apply for pre- liminary admission into the combined program provided their high school GPA is at least 3.6, their SAT-I combined score is at least 1950, they satisfy the Entry Level Writing requirement before matriculation, and they have sufficient math preparation to enroll in calculus upon arrival. Preliminary admission status is maintained as long as the student is a Computer Science or Computer Engineering B.S. student in good standing with a cumulative GPA of at least 3.4. Preliminarily admitted students still need to apply for full admission in their senior year as described above.
Five-year programs leading to M.S. degrees in other programs (including Computer Engi- neering) are also available. They are described separately in the catalog sections for those programs.
Doctoral Degree
The Department of Computer Science and Engineering offers the Ph.D. degree in Computer Science, after completion of the following degree requirements. It provides a research-oriented education in preparation for a career in research, industry, or academia and exploring both the fundamental aspects of computer science and engineering as well as their applications.
Course Requirements The course requirements for the Ph.D. degree ensure that Ph.D. students are exposed to fundamental concepts and tools (core re- quirement), a deep up-to-date view of their research specialty area (depth requirement), and an advanced, up-to-date view of the same topics outside their area (breadth requirement). Students are expected to complete all of these course requirements in the first two years of the program. These requirements consist of 44 quarter units of approved graduate or upper-divi- sion undergraduate courses, satisfying all four of the following course work categories. All of these courses must be taken for a letter grade, and no course can be counted towards more than one category. Students who have completed similar courses elsewhere may petition for a waiver of a required course or for substitution of an alterna- tive course.
Units obtained in CS 270, CS 287, CS 290, CS 297, CS 298, CS 299, CS 301, and CS 302 cannot be counted in any course work category.
- 1. Core Requirement (12 units). Choose
three courses from at least two of the three Core Areas described above, with no grade lower than B- and an overall core course GPA of at least 3.2.
- 2. Depth Requirement (8 units). Choose
two courses listed above under the same Major Area (A to G). This requirement en- sures that Ph.D. students, early on in their careers, acquire some depth of knowledge in a particular research area.
- 3. Breadth Requirement (12 units). Choose
three courses from at least two different Major Areas (A to G) outside the student’s depth area. No course that is listed in the student’s depth area can be used to fulfill the breadth requirement, even if it is cross-listed in another area. Students, with the consent of the major professor, may petition for a non-CSE course to be count- ed towards the breadth requirement.
- 4. Electives (12 units). The remaining
courses can be selected from additional CS graduate lecture courses, up to 8 units of graduate seminars in CS 260-269, and up to 8 units of approved undergraduate technical electives. Students, with the con- sent of the major professor, may petition for a non-CSE course to be counted as an elective.
Milestones The Department has established three mile- stones to mark progress towards the Ph.D. degree in Computer Science: advancement to candidacy, presentation of the dissertation proposal, and final oral examination. A Ph.D. student must also satisfy all applicable Graduate Division requirements for each milestone.
Milestone I: Advancement to Candidacy. A student advances to candidacy after he/she has completed all of the Ph.D. course requirements described above, and passed the combined written and oral qualifying examinations, as described below. These two exams are intended to verify three components of the student’s preparation for Ph.D. research: (1) breadth of comprehension sufficient to enable Computer Science research in areas beyond the topic(s) of the research exam and dissertation; (2) ability to perform critical study, analysis and writing in a focused area; and (3) demonstrated research experience or ability to do research.
Written Qualifying Examination The written qualifying examination consists of a written report summarizing the oral presentation to be given at the oral qualifying examination. This report must be written in proper technical English and in the style of a typical Computer Science conference or journal publication, and must be submitted to the Qualifying Committee for approval at least one week prior to the oral qualifying examination. Oral Qualifying Examination The student is expected to demonstrate research aptitude by undertaking a research study on some topic (typically a problem from student’s chosen research specialty that may be a promising area in which to conduct the dis- sertation research), under the guidance of his or her faculty major professor. The research must be presented orally to a Qualifying Committee, which is appointed by the Graduate Division based on nominations from the department. The committee will consist of at least four Senate faculty members, with at least three members whose home department is CSE. The commit- tee evaluates the merits of the work and the student’s aptitude for research. The work must represent significant progress towards original and publishable research. The student must complete this requirement in no more than two attempts. The normative time for taking the Oral Qualifying Exam is by the end of the second year.
Dissertation Committee After advancing to candidacy, the student must form a Doctoral Examination Committee chaired by his or her major professor. The committee will consist of at least four senate faculty members with at least three members belonging to the CSE department (their home department is CSE).
Milestone II: Dissertation Proposal Examination After advancement to candidacy, the student prepares a dissertation proposal that describes the dissertation topic, summarizes the relevant background literature, and presents a compre- hensive research plan for the doctoral disser- tation. The Dissertation Proposal Examination evaluates appropriateness of the research topic and the feasibility of the research plan. It also establishes a realistic timeline for the completion of the Dissertation. The Dissertation Committee administers this exam. The normative time for the Dissertation Proposal Exam is by the end of the third year. The Dissertation Proposal exam must be taken at least six months prior to the Final Doctoral Examination.
Milestone III: Final Doctoral Examination The student is required to write a disserta- tion in accordance with the Graduate Division requirements and may be required to defend it in a public oral final doctoral examination to the Dissertation Committee. After a satisfactory per- formance on the final doctoral examination, the Dissertation Committee recommends granting the Ph.D. degree. The student’s research and the dissertation must both meet the highest standards of originality and scholarship.
The normative time for the completion of a Ph.D. in Computer Science is five years.
Professional Development Requirement MS students must satisfactorily complete one of the following courses: one quarter of CS 287, GDIV 301, GDIV 403 or at least one unit of CS 298I. Other professional development cours- es may be used to satisfy this requirement if approved by the graduate advisor. PhD students must satisfactorily complete six quarters of CS 287.
Courses
- CS 005: Introduction to Computer Programming (4 units)
- CS 006: Effective Use of the World Wide Web (4 units)
- CS 008: Introduction to Computing (4 units)
- CS 009 (E-Z): Introduction to Programming (4 units)
- CS 009M: Introduction to Matlab (4 units)
- CS 009P: Introduction to Python Programming With Applications (4 units)
- CS 010: Introduction to Computer Science For Science, Mathematics, and Engineering I (4 units)
- CS 011: Introduction to Discrete Structures (4 units)
- CS 012: Introduction to Computer Science For Science, Mathematics, and Engineering Ii (4 units)
- CS 013: Introductory Computer Science For Engineering Majors (4 units)
- CS 014: Introduction to Data Structures and Algorithms (4 units)
- CS 061: Machine Organization and Assembly Language Programming (4 units)
- CS 100: Software Construction (4 units)
- CS 105: Data Analysis Methods (4 units)
- CS 111: Discrete Structures (4 units)
- CS 120A: Logic Design (5 units)
- CS 120B: Introduction to Embedded Systems (4 units)
- CS 122A: Intermediate Embedded and Real- Time Systems (5 units)
- CS 122B: Advanced Embedded and Real-Time Systems (5 units)
- CS 130: Computer Graphics (4 units)
- CS 133: Computational Geometry (4 units)
- CS 135: Virtual Reality (4 units)
- CS 141: Intermediate Data Structures and Algorithms (4 units)
- CS 145: Combinatorial Optimization Algorithms (4 units)
- CS 147: Graphics Processing Unit Computing and Programming (4 units)
- CS 150: Automata and Formal Languages (4 units)
- CS 152: Compiler Design (4 units)
- CS 153: Design of Operating Systems (4 units)
- CS 160: Concurrent Programming and Parallel Systems (4 units)
- CS 161: Design and Architecture of Computer Systems (4 units)
- CS 161L: Laboratory in Design and Architecture of Computer Systems (2 units)
- CS 162: Computer Architecture (4 units)
- CS 164: Computer Networks (4 units)
- CS 165: Computer Security (4 units)
- CS 166: Database Management Systems (4 units)
- CS 167: Introduction to Big-Data Management (4 units)
- CS 168: Introduction to Very Large Scale Integration (vlsi) Design (4 units)
- CS 169: Mobile Wireless Networks (4 units)
- CS 170: Introduction to Artificial Intelligence (4 units)
- CS 171: Introduction to Machine Learning and Data Mining (4 units)
- CS 172: Introduction to Information Retrieval (4 units)
- CS 173: Introduction to Natural Language Processing (4 units)
- CS 175: Entrepreneurship in Computing (4 units)
- CS 177: Modeling and Simulation (4 units)
- CS 179 (E-Z): Project in Computer Science (4 units)
- CS 179E: Project in Computer Science: Compliers (4 units)
- CS 179F: Project in Computer Science: Operating Systems (4 units)
- CS 179G: Project in Computer Science: Database Systems (4 units)
- CS 179I: Project in Computer Science: Networks (4 units)
- CS 179J: Project in Computer Science: Computer Architecture and Embedded Systems (4 units)
- CS 179K: Project in Computer Science: Software Engineering (4 units)
- CS 179M: Project in Computer Science: Artificial Intelligence (4 units)
- CS 179N: Project in Computer Science: Graphics and Electronic Games (4 units)
- CS 180: Introduction to Software Engineering (4 units)
- CS 181: Principles of Programming Languages (4 units)
- CS 182: Software Testing and Verification (4 units)
- CS 183: Unix System Administration (4 units)
- CS 190: Special Studies (1 to 5 units)
- CS 191: Seminar in Research Topics in Computer Science and Engineering (1 units)
- CS 193: Design Project (1 to 4 units)
- CS 194: Independent Reading (1 to 4 units)
- CS 198I: Individual Internship in Computer Science (1 to 4 units)
- CS 201: Compiler Construction (4 units)
- CS 202: Advanced Operating Systems (4 units)
- CS 203: Advanced Computer Architecture (4 units)
- CS 204: Advanced Computer Networks (4 units)
- CS 205: Artificial Intelligence (4 units)
- CS 206: Testing and Verification Techniques in Software Engineering (4 units)
- CS 207: Advanced Programming Languages (4 units)
- CS 210: Scientific Computing (4 units)
- CS 211: High Performance Computing (4 units)
- CS 213: Multiprocessor Architecture and Programming (4 units)
- CS 215: Theory of Computation (4 units)
- CS 217: Gpu Architecture and Parallel Programming (4 units)
- CS 218: Design and Analysis of Algorithms (4 units)
- CS 220: Synthesis of Digital Systems (4 units)
- CS 223: Reconfigurable Computing (4 units)
- CS 225: Spatial Computing (4 units)
- CS 226: Big-Data Management (4 units)
- CS 227: Probabilistic Models For Artificial Intelligence (4 units)
- CS 229: Machine Learning (4 units)
- CS 230: Computer Graphics (4 units)
- CS 231: Computer Animation (4 units)
- CS 233: Pen-Based Computing (4 units)
- CS 234: Computational Methods For Biomolecular Data (4 units)
- CS 235: Data Mining Techniques (4 units)
- CS 236: Database Management Systems (4 units)
- CS 237: Advanced Topics in Modeling and Simulation (4 units)
- CS 238: Algorithmic Techniques in Computational Biology (4 units)
- CS 239: Performance Evaluation of Computer Networks (4 units)
- CS 240: Network Routing (4 units)
- CS 241: Advanced Topics in Network Measurements and Security (4 units)
- CS 242: Information Retrieval and Web Search (4 units)
- CS 246: Advanced Verification Techniques in Software Engineering (4 units)
- CS 253: Distributed Systems (4 units)
- CS 254: Network Security (4 units)
- CS 255: Computer Security (4 units)
- CS 256: Modeling and Synthesis of Cyber- Physical Systems (4 units)
- CS 257: Wireless Networks and Mobile Computing (4 units)
- CS 260: Seminar in Computer Science (4 units)
- CS 267: Seminar in Databases (4 units)
- CS 269: Software and Hardware Engineering of Embedded Systems (4 units)
- CS 270: Special Topics in Advanced Computer Science (2 units)
- CS 287: Colloquium in Computer Science (1 units)
- CS 290: Directed Studies (1 to 6 units)
- CS 297: Directed Research (1 to 6 units)
- CS 298I: Individual Internship (1 to 12 units)
- CS 299: Research For Thesis Or Dissertation (1 units)
- CS 302: Apprentice Teaching (1 units)