Computer Science and Engineering
Catalog pages 269-282
Subject abbreviation: CS The Marlan and Rosemary Bourns College of Engineering
Christian Shelton, Ph.D., Chair Srikanth Krishnamurthy, Ph.D., Vice Chair of Academic Personnel Zhiyun Qian, Ph.D., Vice Chair of Graduate Education Stefano Lonardi, Ph.D., Vice Chair of Under graduate Education 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. Vassilis Tsotras, 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. Christian Shelton, Ph.D. Manu Sridharan, Ph.D. Evangelos Papalexakis, Ph.D. Zhiyun Qian, 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. Walid Najjar, Ph.D. Chinya Ravishankar, Ph.D. Frank N. Vahid, Ph.D. Neal Young, Ph.D.
Associate Professors
Ahmed Eldawy, Ph.D. Amr Magdy, Ph.D. Loannis Karamouzas, Ph.D. Paea LePendu, Ph.D. Yan Gu, Ph.D. Mohsen Lesani, Ph.D. Mariam Salloum, Ph.D. Tamar Shinar, Ph.D. Silas Richelson, Ph.D. Yihan Sun, Ph.D. Chengyu Song, Ph.D. Greg Ver Steeg, Ph.D. Craig Schroeder, Ph.D. Zhijia Zhao, Ph.D.
Assistant Professors
Amey Bhangale, Ph.D. Yue Dong, Ph.D. Allan Knight, Ph.D. Neftali W. Medina, Ph.D. Elaheh Sadredini, Ph.D. Zhaowei Tan, Ph.D. Mingxun Wang, Ph.D. Zhouxing Shi, Ph.D. Jay Lim, Ph.D. Bingyao Li, Ph.D. Qian Zhang, Ph.D.
**
Adjunct Professors
Mohsen Lesani, Ph.D. Victor B. Zordan, Ph.D.
Cooperating Faculty
Salman Asif, Ph.D. (Electrical and Computer
Engineering) Thomas Girke, Ph.D. (Botany and Plant
Sciences) Basak Guler, Ph.D. (Electrical and Computer
Engineering) Chaturvedi Sonali, Ph.D. (Microbiology & Plant Pathology) Konstantinos Karydis, Ph.D. (Electrical and
Computer Engineering) Hyoseung Kim, Ph.D. (Electrical and
Computer Engineering) Jiachen Li, Ph.D. (Electrical and Computer
Engineering) Wei Vivian Li, Ph.D. (Statistics) Cong Liu, Ph.D. (Electrical and Computer
Engineering) Wenxiu Ma, Ph.D. (Statistics) Hang Qiu, Ph.D. (Electrical and Computer
Engineering) Shaolei Ren, Ph.D. (Electrical and Computer
Engineering) Amit Roy-Chowdhury, Ph.D. (Electrical and
Computer Engineering) Vishwanath Saragadam, Ph.D. (Electrical and
Computer Engineering) Sheldon Tan, Ph.D. (Electrical and Computer
Engineering) Hung-Wei Tseng, Ph.D. (Electrical and
Computer Engineering) Daniel Wong, Ph.D. (Electrical and Computer
Engineering) Nanpeng Yu, Ph.D. (Electrical and Computer
Engineering) Shuheng Zhou, Ph.D. (Statistics) Yinglun Zhu, Ph.D. (Electrical and 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.
The two degree programs at UCR, Computer Science B.S. and Computer Science with Business Applications B.S., are accredited by the Computing Accreditation Commission (CAC) 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 005A, MATH 005B, MATH 005C; or
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 020A & 30LA, EE 005, EE 016, EE 20A, ENSC 001, ENSC 002, MATH 010B, ME 002, ME 005, ME 018A, ME 018B, ME 009, ME 010; MATH 045/EE 020A, or MATH 46; or other engineering courses outside of 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 108, CS 110, CS 119L (4 units maximum), 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 Applications Major The Computer Science Applications major has two sets of requirements: a core set and a concentration set. Courses required by a concentration may also be used to satisfy breadth requirements.
- 1. Lower-division requirements (38 units)
- a) ENGR 001M
or MATH 09HB; MATH 009C or MATH 09HC; and either MATH 031 or EE 020B
- 2. Upper-division requirements (58 units)
- a) ENGR 101M
- c) ENGR 180W
- e) CS 105
- g) At least twenty (20) units of Computer
Science technical electives to be chosen from an approved list of courses which currently includes CS 108 / STAT 108, CS 110, CS 120A / EE 120A, CS 120B / EE 120B, CS 122A, CS 122B, CS 130, CS 131 / EE 131, CS 133, CS 135, CS 142, CS 144, CS 145, CS 147 / EE 147, CS 150, CS 152, CS 160, CS 161, CS 162, CS 164, CS 165, CS 166, CS 167, CS 168 / EE 168, CS 169, CS 170, CS 171 / EE 142, CS 172, CS 173, 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 for 2.g) must be distinct from those used to satisfy the requirements specified in 2.a)-f) above with at least 16 units selected from Computer Science courses.
Concentration
Students in the Computer Science Applications (CSA) must declare a concentration upon admission to the program. A change in concentration, if justified, should be made at least three quarters prior to graduation.
3.1. Psychology (51 units)
- j) At least two courses from CBNS 106 or
PSYC 110, PSYC 132 or 134, PSYC 140, PSYC 150, PSYC 160 or PSYC 161 or PSYC 162 or PSYC 163
- k) At least twenty four (24) units of
Psychology technical electives to be chosen from an approved list of courses which currently includes PSYC 109, PSYC 112, PSYC 113, PSYC 115, PSYC 117, CBNS 120 / PSYC 120, CBNS 121 / PSYC 121, PSYC 122, CBNS 126 / PSYC 126, LING 128 / PSYC 162, PSYC 129, PSYC 130, PSYC 131, PSYC 132, PSYC 133, PSYC 134, PSYC 135, PSYC 140, PSYC 142, PSYC 148, PSYC 149, PSYC 153, PSYC 155, PSYC 160, PSYC 161, PSYC 162, PSYC 163, PSYC 164, PSYC 165A, PSYC 165B, PSYC 166A, PSYC 166B, PSYC 166C, PSYC 166D, ETST 167 / PSYC 167, ETST 168 / PSYC 168, PSYC 169, PSYC 171, PSYC 175, PSYC 178
The technical electives selected for 3.1.d) must be distinct from those used to satisfy the requirements specified in 3.a)-c) above.
3.2. Business (50 units)
- n) One course of 4 or more units from
- o) At least two courses from BUS 102, BUS 103, BUS 104 / STAT 104, BUS 105, BUS 106 / ECON 134, BUS 107, BUS 109
- p) At least twenty (20) units of Business
technical electives to be chosen from an approved list of courses which currently includes BUS 102, BUS 103, BUS 104 / STAT 104, BUS 105, BUS 106 / ECON 134, BUS 107, BUS 108, BUS 109, BUS 110, BUS 115, BUS 119, BUS 123, BUS 124, BUS 125, BUS 128, BUS 129, BUS 130, BUS 163, BUS 166, BUS 171, BUS 172, BUS 173, BUS 174, BUS 175, BUS 179, SOC 150. 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 3.2.e) must be distinct from those used to satisfy the requirements specified in 3.2.a)-d) above.
3.3. Health Science (71 units)
- q) PHYS 002A or PHYS 002HA; PHYS 02LA
or PHYS 02HLA; PHYS 002B or PHYS 02HB; PHYS 02LB or PHYS 02HLB, PHYS 002C or PHYS 002HC; PHYS 02LC or PHYS 02HLC
or CHEM 1LA; CHEM 001B or CHEM 01HB; CHEM 01LB or CHEM 1HLB; CHEM 001C or CHEM 01HC; CHEM 01LC or CHEM 1HLC
or CHEM 08HLA; CHEM 008B or CHEM 08HB; CHEM 08LB or CHEM 08HLB, CHEM 008C or CHEM 08HC; CHEM 08LC or CHEM 08HLC
- t) BIOL 005A and BIOL 005LA, BIOL 005B,
- v) At least three courses from BIOL 102,
BIOL 107A, BIOL 110, BIOL 121 / MCBL 121, BIOL 121L / MCBL 121L, BIOL 128 / CBNS 128, BIOL 161A, BIOL 161B, BIOL 171A, BIOL 171B, PBPL 127 / SOC 127, PBPL 167 / SOC 167, PSYC 160, PSYC 178, BCH 110B or BCH 110HB, BCH 110C or BCH 110HC, PBPL 160, PBPL 162 Computer Science with Business Applications Major
- 1. Lower-division requirements (59 units)
- a) ENGR 001M
- b) BUS 020
MATH 009A, MATH 009B, MATH 009C; 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 045/EE 020A, or MATH 046; or one selected in consulation 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
- 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 119L (4 units maximum), 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 178A, 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.
Admission All M.S. applicants must supply GRE General Test scores. For Ph.D. program applicants, GRE General Test scores are optional. 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.
Course Categories Students have considerable flexibility in selecting courses within the program. The graduate lecture courses are organized into the following broad course categories:
Theory and Foundations: CS 207, CS 214, CS 215, CS 216, CS 218, CS 219, CS 239
Systems: CS 201, CS 202, CS 203, CS 204, CS 208, CS 211, CS 213, CS 217 / EE 217, CS 220, CS 223, CS 240, CS 241, CS 250, CS 251 / EE 255, CS 253, CS 254, CS 255, CS 257, EE 213
Applied Computing: CS 205, CS 206, CS 207, CS 210, CS 212 / STAT 212, CS 222, CS 224 / EE 242A, CS 225, CS 226, CS 227, CS 228 / EE 228, CS 229 / EE 242B, CS 230, CS 231, CS 234, CS 235, CS 236, CS 237, CS 238, CS 242, CS 246, CS 247, CS 248 / EE 248, CS 249, CS 252A / EE 251A, CS 252B / EE 251B, CS 256 / EE 258, CS 258 / EE 227, CS 265A / EE 265A, CS 265B / EE 265B, CS 269, CS 277 / EE 277, EE 243, EE 267, EE 268, ME 230
Core Courses The following are core courses that introduce fundamental concepts and tools of general interest to all students:
Theory and Foundations: CS 215, CS 218
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 took relevant courses elsewhere may petition to use those courses toward the degree requirements by either substitution or waiver of required courses. 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). Two core
courses from the course Categories, with each course coming from a different category and no grade lower than B-.
- 2. Breadth Requirement (8 units). One
course from the Course Category not covered by the courses used to fulfill the Core Requirement.
- 3. Electives (20 units). A total of 20 units
from the courses listed in the Course Categories. For students pursuing the Project Option, up to 4 units of graduate research (CS 297 or CS 299) may be included. For students pursuing the Thesis Option, up to 12 units of graduate research (CS 297 or CS 299) may be included:
- 4. Other Courses (16 units). A total of 16
units from courses listed in the Course Categories, other approved graduate lecture courses, graduate seminars in CS 260 (maximum of 8 units), and approved undergraduate technical electives (maximum of 12 units).:
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 responsibility 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. The final thesis defense presentation can be taken in one of the following modes: In- Person, Hybrid or Remote. The student and their advisor will discuss which mode best suits the subject matter, with the advisor making the final determination. Students taking the exam In-Person are expected to present on campus with all committee members physically present. If Hybrid is chosen, the student is expected to present the exam on campus in a video enabled room that supports some members physically present and others remote. The chair of the committee must be physically present for a Hybrid exam.
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, Computer Science with Business Applications, 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 Computer Science 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, Computer Science with Business Applications, or Computer Engineering B.S. student. Applicants to the B.S. + M.S. programs are expected to have a cumulative GPA of at least 3.4 and a “core” course GPA of 3.2, so must have therefore completed at least three of the following “core” courses with no grade less than a B- and average grade at least 3.2: CS 100, CS 120A, 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, Computer Science with Business Applications, or Computer Engineering B.S. major with cumulative GPA 3.4 or higher, (c) no grade less than a B- and average grade at least 3.2 in all four of the core courses listed above prior to matriculation into the program, (d) by the end of senior year, the student completes the Computer Science, Computer Science with Business Applications, or Computer Engineering B.S. degree requirements.
Incoming students who are applying to the Computer Science, Computer Science with Business Applications, 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, Computer Science with Business Applications, 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 36 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 took relevant courses elsewhere may petition to use those courses toward the degree requirements.
Units obtained in CS 270, CS 287, CS 290, CS 297, CS 298, CS 299, and CS 302 cannot be counted in any course work category.
- 1. Core Requirement (8 units). Two core
courses from the Course Categories listed above, with each course coming from a different category and no grade lower than B-.
- 2. Breadth Requirement (4 units). One
course from the Course Category not covered by the courses used to fulfill the Core Requirement.
- 3. Elective Requirement (12 units). A total
of 12 units from the courses listed in the Course Categories.
- 4. Other Courses (12 units). A total of 12
units from courses listed in the Course Categories, other approved graduate lecture courses, graduate seminars in CS 260 (maximum of 8 units), and approved undergraduate technical electives (maximum of 8 units)..
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. The Oral Qualifying Exam can be taken in one of the following modes: In Person, Hybrid, or Remote. The student and their advisor will discuss which mode best suits the subject matter, with the advisor making the final determination. Students taking the exam In-Person are expected to present on campus with all committee members physically present. If Hybrid is chosen, the student is expected to present the exam on campus in a video enabled room that supports some members physically present and others remote. The chair of the committee must be physically present for a Hybrid exam.
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.
The Oral Qualifying Exam can be taken in one of the following modes: In Person, Hybrid, or Remote. The student and their advisor will discuss which mode best suits the subject matter, with the advisor making the final determination. Students taking the exam In-Person are expected to present on campus with all committee members physically present. If Hybrid is chosen, the student is expected to present the exam on campus in a video enabled room that supports some members physically present and others remote. The chair of the committee must be physically present for a Hybrid exam.
Professional Development Requirement MS students must satisfactorily complete one of the following courses: one quarter of CS 287, or at least one unit of CS 298I.
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 (4 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 2 (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 042: A Hitchhiker’s Guide to Artificial Intelligence (ai) (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 106: Introduction to Computer Security (4 units)
- CS 108: Data Science Ethics (4 units)
- CS 110: Principles of Web Development (4 units)
- CS 111: Discrete Structures (4 units)
- CS 119L: Laboratory in Problem Solving and Programming (2 units)
- CS 120A: Logic Design (5 units)
- CS 120B: Introduction to Embedded Systems (4 units)
- CS 122: Intermediate 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 Computing and Programming (4 units)
- CS 148: Artificial Intelligence For Robotics (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 163: Introduction to Privacy Technologies (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 197: Research For Undergraduates (1 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 212: Data Science Ethics (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 222: Natural Language Processing (4 units)
- CS 223: Reconfigurable Computing (4 units)
- CS 224: Foundations 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 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: Distributed Computing in 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 265A: Foundations of Robotics: Planning and Control (4 units)
- CS 265B: Foundations of Robotics: Sensing and Navigation (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)