Computer Science and Engineering
Catalog pages 254-266
Subject abbreviation: CS The Marlan and Rosemary Bourns College of Engineering
Christian R Shelton, Ph.D., Chair CSE Department Office, 351 Winston Chung Hall
- (951) 827-5639; cs.ucr.edu
Distinguished Professor
Rajiv Gupta, Ph.D. Tao Jiang, Ph.D. Eamonn Keogh, Ph.D. Kadangode K. Ramakrishnan, Ph.D.
Professors
Nael Abu-Ghazaleh, Ph.D. Philip Brisk, Ph.D. Zizhong Chen, Ph.D. Evangelos Christidis, Ph.D. Marek Chrobak, Ph.D. Emiliano De Cristofaro, Ph.D. Michalis Faloutsos, Ph.D. Trent Jaeger, Ph.D. Srikanth Krishnamurthy, Ph.D. Stefano Lonardi, Ph.D. Walid Najjar, Ph.D. Chinya Ravishankar, Ph.D. Christian Shelton, Ph.D. Manu Sridharan, Ph.D. Vassilis Tsotras, Ph.D. Frank N. Vahid, Ph.D. Heng Yin, Ph.D.
Professors Emeriti
Laxmi N. Bhuyan, Ph.D. Mart L. Molle, Ph.D. Thomas H. Payne, Ph.D. Michael Pazzani, Ph.D. Teodor C. Przymusinski, Ph.D. Neal Young, Ph.D.
Associate Professors
Ahmed Eldawy, Ph.D. Ioannis Karamouzas, Ph.D. Mohsen Lesani, Ph.D. Evangelos Papalexakis, Ph.D. Zhiyun Qian, Ph.D. Tamar Shinar, Ph.D. Chengyu Song, Ph.D. Greg Ver Steeg, Ph.D. Zhijia Zhao, Ph.D.
Assistant Professors
Amey Bhangale, Ph.D. Yue Dong, Ph.D. Yan Gu, Ph.D. Allan Knight, Ph.D. Paea LePendu, Ph.D. Amr Magdy, Ph.D. Neftali W. Medina, Ph.D. Silas Richelson, Ph.D. Elaheh Sadredini, Ph.D. Mariam Salloum, Ph.D. Craig Schroeder, Ph.D. Yihan Sun, Ph.D. Zhaowei Tan, Ph.D. Mingxun Wang, Ph.D. Qian Zhang, Ph.D.
**
Adjunct Professors
Gianfranco Ciardo, 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) Basak Guler, Ph.D. (Electrical & Computer
Engineering) 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) Hung-Wei Tseng, Ph.D. (Electrical &
Computer Engineering) Daniel Wong, Ph.D. (Electrical and Computer
Engineering) Nanpeng Yu, Ph.D. (Electrical & Computer
Engineering)
Major
The Department of Computer Science and Engineering offers three majors at the undergraduate level. UCR’s offerings of all three majors are unique compared to many schools in the emphasis 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 embedded 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
competencies, 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 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 computer hardware, computer software, electronics and electrical signals for communication, networking, desktop computing, and embedded computing. See Computer Engineering in this catalog.
The Computer Science with Business Applications major covers the core of computer 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
competencies, 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 Engineering must see an advisor at least annually. Visit student.engr.ucr.edu for details.
All three degree programs at UCR, Computer Science B.S., Computer Engineering B.S., and Computer Science with Business Applications B.S., are accredited by the Engineering Accreditation Commission of ABET, abet.org.
Change of Major Criteria
All students who request a change of major to Computer Science must meet the following requirements:
• Be in good academic standing
• Have no less than a C- in any Math
Science and Engineering coursework
• Be able to complete major within
maximum allowable units
• Complete all the courses listed below,
based on the total number of units earned, prior to submitting the major change request • UCR transfer students interested in
changing to a BCOE major must have been admissible to the major at point of entry, or must satisfy transfer admission and change of major requirements before earning 120 units
• If changing in the 90-119 units category
student must have the ability to complete major within 5 years of entry as a Freshmen or 3 years after entry as a Transfer student
• Students who have earned 120 or more
units are not eligible for a change of major in BCOE. NOTE: AP/IB units are excluded from maximum unit calculation
Completed 0 to less than 45 units Completion of ENGL 001A with C or better, and a C or better in CS 010A and CS 010B, and completion of the following with at least 3.00 GPA:
• CS 010A
• CS 010B
• And any additional Math/Science/
Engineering/CS courses (if taken)
Completed 45 to less than 90 units Completion of ENGL 001A with C or better, and a C or better in CS 010A and in CS 010B, and completion of the following with at least 3.00 GPA:
• CS 010A
• CS 010B
• And any additional Math/Science/
Engineering/CS courses (if taken)
Completed 90 to less than 120 units Completion of ENGL 001A and ENGL 001B with C or better, and a C or better in CS 010A and in CS 010B, and completion of the following with at least 3.00 GPA:
• CS 010A
• CS 010B
• CS 010C
• CS 061
• And any additional Math/Science/
Engineering/CS courses (if taken)
Change of Major Criteria
All students who request a change of major to Computer Science with Business Applications must meet the following requirements:
• Be in good academic standing
• Have no less than a C- in any Math,
Science and Engineering coursework
•• Be able to complete major within
maximum allowable units • Complete all the courses listed below,
based on the total number of units earned, prior to submitting the major change request
• UCR transfer students interested in
changing to a BCOE major must have been admissible to the major at point of entry, or must satisfy transfer admission and change of major requirements before earning 120 units
• If changing in the 90-119 units category
student must have the ability to complete major within 5 years of entry as a Freshmen or 3 years after entry as a Transfer student
• Students who have earned 120 or more
units are not eligible for a change of major in BCOE. NOTE: AP/IB units are excluded from maximum unit calculation
Completed 0 to less than 45 units Completion of ENGL 001A with C or better, and a C or better in CS 010A, and completion of the following with at least 2.700 GPA:
• BUS 020
• CS 010A
• Any additional Math/Science/Engineering/
CS courses (if taken)
Completed 45 to less than 90 units Completion of ENGL 001A with C or better, and a C or better in CS 010A and in CS 010B, and completion of the following with at least 2.700 GPA:
• BUS 020
• CS 010A
• CS 010B
• And any additional Math/Science/
Engineering/CS courses (if taken)
Completed 90 to less than 120 units Completion of ENGL 001A and ENGL 001B with C or better, and a C or better in CS 010A and in CS 010B, and completion of the following with at least 2.700 GPA:
• BUS 020
• CS 010A
• CS 010B
• And any additional Math/Science/
Engineering/CS courses (if taken)
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 following 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
(65 units minimum)
- a) ENGR 001-I
- b) CS 010A, CS 010B, CS 010C, CS 061
- c) CS 011/MATH 011
- d) MATH 009A, MATH 009B, MATH 009C,
MATH 010A, and either Math 031 or EE 020B.
distinct from other requirements, 4 of which must be engineering depth electives and the remaining may be engineering breadth electives. Depth electives in this category include: BIEN 010, EE 030A & 30LA, EE 005, EE 016, EE 20A, ENSC 001, ENSC 002, MATH 010B, MATH 046, ME 002, ME 005, ME 018A, ME 018B, ME 009, ME 010, or other engineering courses outside the field of computer science to be selected in consultation with a faculty advisor. Breadth courses include: any depth course above or CHEM 001A or CHEM 01HA, CHEM 001B or CHEM 01HB, CHEM 001C or CHEM 01HC, CHEM 01LA or CHEM 1HLA, CHEM 01LB or CHEM 1HLB, CHEM 01LC or CHEM 1HLC, CHEM 008A or CHEM 008HA, CHEM 08LA or CHEM 08HLA, ECON 005, ECON 060, LING 020, LING 021, PHIL 125, PHIL 126, PHIL 127, STAT 004, STAT 008, STAT 010, or one selected in consultation with a faculty advisor. (Either a lower-division or an upper-division course may be used to satisfy this requirement).
- 2. Upper-division requirements
(79 units minimum)
to be chosen from an approved list of courses which currently includes CS 105, CS 120B/EE 120B, CS 122A, CS 122B, CS 130, CS 131, CS 133, CS 135, CS 142, CS 144, CS 145, CS 147, CS 160, CS 162, CS 164, CS 165, CS 166, CS 167, CS/EE 168, CS 169, CS 170, CS 171, CS 172, CS 173, CS 175, CS 177, CS 178B, 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 (16) 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 (59 units)
- a) ENGR 001M
- b) BUS 020
MATH 010A, and either MATH 031 or EE 020B
G) One course of 4 or more units from
ECON 005, ECON 060, STAT 004, STAT 008, STAT 010, MATH 046 or one selected in consultation with a faculty advisor. (Either a lower-division or an upper-division course may be used to satisfy this requirement).
- 2. Upper-division requirements (86 units)
- a) ENGR 101M
- d) At least two courses from CS 110,
CS 160, CS 164, CS 166, CS 167, CS 169, CS 172, CS 180, CS 183
- e) CS 111
- f) ENGR 180W
- g) SOC 150
- h) STAT 155
- i) At least twenty (20) units of Computer
Science technical electives to be chosen from an approved list of courses which currently includes CS 105, CS 108, CS 110, CS 120A, CS 120B, CS 122A, CS 122B, CS 130, CS 131, CS 133, CS 135, CS 142, CS 144, CS 145, CS/EE 147, CS 150, CS 152, CS 160, CS 161, CS 162, CS 164, CS 165, CS 166, CS 167, CS/EE 168, CS 169, CS 170, CS 171/ EE 142, CS 172, CS 173, CS 175, CS 177, CS 178B, CS 179 (E-Z) (4 units maximum), CS 180, CS 181, CS 182, CS 183, CS 193 (4 units maximum).
- j) At least sixteen (16) units of Business Ad
ministration technical electives, including at least 8 units of courses listed in the information Systems concentration within the Business Administration major, which currently include BUS 110, BUS 125, BUS 128, BUS 163, BUS 166, BUS 171, BUS 172, BUS 173, BUS 174, BUS 175, BUS 179. Additionally, no credit will be given for BUS 101; and the following pairs of courses cannot both be taken for credit: BUS 125 and CS 177, BUS 163 and CS 175, BUS 171 and CS 180, BUS 173 and CS 166, BUS 175 and CS 164.
The technical electives selected for 2.i)-j) must be distinct from those used to satisfy the requirements specified in 2.a)–h) above.
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 theory or practice. As such, students with majors in Computer Engineering, Computer Science, Computer Science and Business Applications, Data Science, and Mathematics (Computational Mathematics option) are not eligible.
Requirements for the minor in Computer Science are:
CS 010C, CS 061, CS 011/MATH 011, 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 Computer 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 Science must obtain approval from the undergraduate advisor in Computer Science and Engineering 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. Applicants 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 following UCR courses is essential to graduate study in computer science:
A student who is deficient in any of these competency 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 related graduate courses is provided for each area.
A. Algorithms, Bioinformatics, and Theory
of Computation: CS 214, CS 215, CS 218, CS 219, 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 224, CS 225, CS 226, CS 227, CS 229, CS 235, CS 236, CS 242, CS 228/EE 228, CS 248/EE 248
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, CS 249
G. Computer Graphics, Science Computing,
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 courses 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 technical 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 graduate 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 undergraduate technical electives. Capstone Experience All students must complete a capstone experience that synthesizes and integrates the knowledge 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 examination 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 requirements 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 problem, 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 Engineering 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 technical electives in the B.S. requirements.)
A student may apply at the start of their senior year by submitting an application to the Computer 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 061 or CS 120A, CS 111 or CS 141, CS 153. 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 cumulative 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 preliminary 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 Engineering) 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 requirement), 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-division 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 alternative 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 ensures 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 counted 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 consent of the major professor, may petition for a non- CSE course to be counted as an elective.
Milestones The Department has established three milestones 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 dissertation 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 committee 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 third 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 comprehensive research plan for the doctoral dissertation. 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 dissertation 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 performance 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 courses 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 009A: Data Oriented Introduction to Computing I (4 units)
- CS 009B: Data Oriented Introduction to Computing II (4 units)
- CS 009C: C++ For Programmers (2 units)
- CS 010A: Introduction to Computer Science For Science, Mathematics, and Engineering I (4 units)
- CS 010B: Introduction to Computer Science For Science, Mathematics, and Engineering II (4 units)
- CS 010C: Introduction to Data Structures and Algorithms (4 units)
- CS 011: Introduction to Discrete Structures (4 units)
- CS 015: Introduction to Data Science (4 units)
- CS 061: Machine Organization and Assembly Language Programming (4 units)
- CS 100: Software Construction (5 units)
- CS 105: Data Analysis Methods (4 units)
- CS 108: Data Science Ethics (4 units)
- CS 110: Principles of Web Development (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 131: Edge Computing (4 units)
- CS 133: Computational Geometry (4 units)
- CS 135: Virtual Reality (4 units)
- CS 141: Intermediate Data Structures and Algorithms (4 units)
- CS 142: Algorithm Engineering (4 units)
- CS 144: Algorithms For Bioinformatics (4 units)
- CS 145: Combinatorial Optimization Algorithms (4 units)
- CS 147: Graphics Processing Unit Comput ing 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 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 178A: Project Sequence in Computer Science and Engineering (4 units)
- CS 178B: Project Sequence in Computer Science and Engineering (4 units)
- CS 179 (E-Z): Project in Computer Science (4 units)
- CS 179E: Project in Computer Science: Compilers (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 189: Apprentice Tutoring (1 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: Advanced Software Testing and Analysis (4 units)
- CS 207: Advanced Programming Languages (4 units)
- CS 208: Cloud Computing and Cloud Networking (4 units)
- CS 210: Scientific Computing (4 units)
- CS 211: High Performance Computing (4 units)
- CS 213: Multiprocessor Architecture and Programming (4 units)
- CS 214: Parallel Algorithms (4 units)
- CS 215: Theory of Computation (4 units)
- CS 216: Advanced Cryptography (4 units)
- CS 217: Graphics Processing Unit Architecture and Parallel Programming (4 units)
- CS 218: Design and Analysis of Algorithms (4 units)
- CS 219: Advanced Algorithms (4 units)
- CS 220: Synthesis of Digital Systems (4 units)
- CS 223: Reconfigurable Computing (4 units)
- CS 224: Fundamentals of Machine Learning (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 228: Introduction to Deep Learning (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: Software Verification (4 units)
- CS 247: Principles of Distributed Computing (4 units)
- CS 248: Optimization For Machine Learning (4 units)
- CS 249: Advanced Program Analysis (4 units)
- CS 250: Software Security (4 units)
- CS 251: Real-Time Embedded Systems (4 units)
- CS 252A: Data Analytics and Exploration (4 units)
- CS 252B: Fundamentals of Data Science (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 258: Introduction to Reinforcement Learning (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 277: Data Centric Computer Architecture (4 units)
- CS 279: Capstone Project in Data Science (4 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 to 12 units)
- CS 302: Apprentice Teaching (1 units)