Computer Engineering

2018-19 General Catalog

Baskin School of Engineering
(831) 459-2158
https://www.soe.ucsc.edu/

Faculty | Course Descriptions


Program Description

Computer engineering focuses on the design, analysis, and application of computers and on their applications as components of systems. The Department of Computer Engineering at the University of California, Santa Cruz, sustains and strengthens its teaching and research program to provide students with inspiration and quality education in the theory and practice of computer engineering. The department offers the Bachelor of Science (B.S.) in computer engineering, the Bachelor of Science in robotics engineering, the Bachelor of Arts (B.A.) in digital and network technology, the Master of Science (M.S.) and the Doctor of Philosophy (Ph.D.) in computer engineering degrees as well as an undergraduate minor. A combined B.S./M.S. pathway allows students to complete both the B.S. and M.S. in computer engineering degrees in five years. The department administers the interdisciplinary graduate designated emphasis in robotics and control that may be pursued along with a graduate degree in computer engineering or another field such as applied mathematics and statistics or electrical engineering.

Undergraduate Program Description

The department offers two bachelor of science majors, one in computer engineering and the other in robotics engineering. The department also offers a bachelor of arts in network and digital technology. The programs are closely related with many common requirements, so that students do not need to immediately decide among the three.

The two undergraduate engineering degrees have the same program objectives for their graduates. The program objectives of the UC Santa Cruz B.S. in computer engineering and B.S. in robotics engineering are:

  1. Graduates who choose to pursue a career in industry, government, or academia will become successful engineers, scientists, or educators who demonstrate strong leadership, technical, and team skills; and a commitment to continuing professional development.

  2. Graduates who choose to pursue advanced degrees will gain admission to graduate programs and will be successful graduate students.

The UC Santa Cruz B.S. in computer engineering prepares graduates for a rewarding career in engineering. UCSC computer engineering graduates will have a thorough grounding in the principles and practices of computer engineering and the scientific and mathematical principles upon which they are built; they will be prepared for further education (both formal and informal) and for productive employment in industry. Because computer engineering is so broad, the B.S. in computer engineering offers five specialized concentrations for completing the program: systems programming, computer systems, robotics and control, networks, and digital hardware.

Descriptions of these concentrations follow in the section on major requirements.

The UC Santa Cruz B.S. in robotics engineering prepares graduates for a rewarding career at the interfaces between electrical, computer, and mechanical engineering. UCSC robotics engineering graduates will have a thorough grounding in the principles and practices of robotics and control, and the scientific and mathematical principles upon which they are built; graduates will be prepared for further education (both formal and informal) and for productive employment in industry. 

The UC Santa Cruz B.A. in network and digital technology provides students with in-depth knowledge of the underlying structure and function of network and computer technology and the design processes that make those technologies function.  The program is tailored to students who wish to combine technology with other fields or have a general focus on digital design or computer networks.  The B.A. in network and digital technology is not an engineering degree, but B.A. graduates will be prepared to work with technology development in other capacities, or join the computer network workforce.  Students interested in graduate study should pursue either B.S. program.

The Department of Computer Engineering offers an undergraduate minor, described after the B.A. program below. The minor in computer engineering focuses on the technical aspects of computer hardware, embedded systems, and software design. This minor is particularly recommended for students interested in the design of computer technology for use in another discipline.

The Department co-sponsors the B.S. in bioengineering with the Departments of Biomolecular Engineering, Electrical Engineering, and Molecular, Cell and Developmental Biology.

Beyond the extensive research, design, and development projects taking place within courses required for the major, many computer engineering students join faculty-led research projects  to take part in cutting-edge research.

Many computer engineering students continue their education through the M.S. degree. The Department of Computer Engineering offers a combined B.S./M.S. pathway in computer engineering that enables eligible undergraduates to move without interruption to the graduate program. Interested computer engineering and robotics engineering majors should contact their adviser for more details. The graduate program of the Department of Computer Engineering also offers both the standard M.S. and the Ph.D. degrees.

Program Learning Outcomes (PLOs)

For the computer engineering and robotics engineering B.S. degree, the PLOs are:

  • an ability to apply knowledge of mathematics, science, and engineering;

  • an ability to design a system, component, or process to meet desired needs within realistic constraints;

  • an ability to function effectively on teams that establish goals, plan tasks, meet deadlines, and analyze risk and uncertainty;

  • an ability to communicate effectively; and

  • an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.

For the network and digital technology B.A. degree the PLOs are:

  • an ability to apply knowledge of mathematics, science, and engineering;

  • an ability to design a system, component, or process;

  • an ability to communicate effectively; and

  • an ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.

Courses for Nonmajors

The Department of Computer Engineering offers course Computer Engineering 1, Hands-on Computer Engineering, a two-credit laboratory course designed to introduce students to computer engineering via many short fun projects; course Computer Engineering 3, Personal Computer Concepts: Software and Hardware, providing students an introductory course on the design and use of computers from an engineering viewpoint; and Computer Engineering 8, Robot Automation: Intelligence through Feedback Control. Other computer engineering courses of interest to nonmajors include Computer Engineering 12, Computing Systems and Assembly Language, an introductory course on computer systems, system software, and machine-level programming; Computer Engineering 80N, Introduction to Networking and the Internet, an introduction to technological services of the Internet; Computer Engineering 80E, Engineering Ethics; and Computer Engineering 80A, Universal Access: Disability, Technology, and Society.

Computer Engineering Policies

Advising for Proposed Majors 

Students interested in pursuing any of the department’s three majors but not yet ready to declare should have their status updated to reflect the associated proposed major. They should also visit the Baskin School of Engineering undergraduate advising office to plan a course of study that will allow them to complete any of the department's three majors as well as preserve their options for other majors that might be of interest. Proposed majors will be assigned a faculty adviser upon request and invited to School of Engineering and Computer Engineering advising events. Please note that students who are proposed majors still need to follow the procedure for declaring one of the three majors as described below; a student may not graduate as a proposed major.

Declaration of the Computer Engineering Majors

In order to be admitted into the computer engineering major students must be listed as a proposed major within the School of Engineering. Students in the engineering and computing cluster must propose a School of Engineering major before they can declare. Please refer to the Declaration of Major section in the School of Engineering Program Statement.

In addition to being listed as a proposed School of Engineering major, declaration of the computer engineering major in the first six quarters of enrollment at UC Santa Cruz is based on performance in the CE Major Qualification Courses: Mathematics 19A, Mathematics 19B, Mathematics 23A, Applied Mathematics and Statistics 10 or Mathematics 21(whichever is completed first), Applied Mathematics and Statistics 20, Computer Engineering 12/L, Computer Engineering 13/L, Computer Engineering 16, Computer Science 12B/M, Physics 5A/L and Physics 5C/N. Students in their first six quarters who have completed at least 36 credits in these courses will be admitted to the computer engineering major if:

  1. their cumulative GPA is at least 2.8 in all of the CE Major Qualification Courses attempted; and

  2. they have no more than 7 credits resulting in grades of C-, D+, D, D-, F or NP among all of the CE Major Qualification Courses attempted.

In order to be admitted into the robotics engineering major students must be listed as a proposed major within the School of Engineering. Students in the engineering and computing cluster must propose a School of Engineering major before they can declare.  Please refer to the School of Engineering section under Declaration of Major for more information.

In addition to being listed as a proposed School of Engineering major, declaration of the robotics engineering major in the first six quarters of enrollment at UC Santa Cruz is based on performance in the following lower-division courses and associated labs required for the major: Mathematics 19A, Mathematics 19B, Mathematics 23A, Applied Mathematics and Statistics 10 or Mathematics 21(whichever is completed first), Applied Mathematics and Statistics 20, Computer Engineering 9, Computer Engineering 12/L, Computer Engineering 13/L, Computer Engineering 16, Computer Science 12B/M, Physics 5A/L and Physics 5C/N. Students in their first six quarters who have completed at least 41 credits in these courses will be admitted to the computer engineering major if

  1. their cumulative GPA is at least 2.8 in all the courses listed above; and

  2. they have attempted no more than 7 credits resulting in grades of C-, D+, D, D-, F or NP in all of the courses listed above.

Declaration of the network and digital technology major is based on performance in the following lower-division courses and associated labs required for the major: Math 19A, Math 19B, Math 23A, Applied Mathematics and Statistics 10 or Mathematics 21(whichever is completed first), Applied Mathematics and Statistics 20 or Mathematics 24(whichever is completed first), Computer Engineering 12/L, Computer Engineering 13/L, Computer Engineering 16, Computer Science 12B/M, Physics 5A/L or Physics 6A/L and Physics 5C/N or Physics 6C/N. Students in their first six quarters who have completed at least 36 credits in these courses with a cumulative GPA of at least 2.30 or greater will be admitted to the network and digital technology major. Students seeking to change their current major to network and digital technology after their sixth quarter must have completed the courses listed above with a cumulative GPA of at least 2.30.

Denials of admission to any of the department's majors may be appealed by following the procedure in the School of Engineering section of the catalog.

Transfer Students

Computer Engineering B.S.

Students should complete at least six courses excluding labs from the following list:

Mathematics 19A,
Mathematics 19B,
Mathematics 23A,
Applied Mathematics and Statistics 10 or Mathematics 21 (whichever is completed first),
Applied Mathematics and Statistics 20,
Computer Engineering 12/L,
Computer Engineering 13/L,
Computer Engineering 16,
Computer Science 12B/M,
Physics 5A/L
Physics 5C/N

Their cumulative GPA should be at least 2.8 in all of the courses attempted. Prospective transfer students completing the 2018-19 criteria (published in the 2017-18 catalog) and applying for Fall 2019 will also have satisfied major preparation.

Robotics Engineering B.S.

Students should complete at least seven courses excluding labs from the following list:

Mathematics 19A,
Mathematics 19B,
Mathematics 23A,
Applied Mathematics and Statistics 10 or Mathematics 21 (whichever is completed first),
Applied Mathematics and Statistics 20,
Computer Engineering 9
Computer Engineering 12/L,
Computer Engineering 13/L,
Computer Engineering 16,
Computer Science 12B/M,
Physics 5A/L
Physics 5C/N

Their cumulative GPA should be at least 2.8 in all of the courses attempted. Prospective transfer students completing the 2018-19 criteria (published in the 2017-18 catalog) and applying for Fall 2019 will also have satisfied major preparation.

Network and Digital Technology B.A.

Students should complete at least six courses excluding labs from the following list:

Mathematics 19A,
Mathematics 19B,
Mathematics 23A,
Applied Mathematics and Statistics 10 or Mathematics 21 (whichever is completed first),
Applied Mathematics and Statistics 20 or Mathematics 24 (whichever is completed first),
Computer Engineering 12/L,
Computer Engineering 13/L,
Computer Engineering 16,
Computer Science 12B/M,
Physics 5A/L or Physics 6A/L
Physics 5C/N or Physics 6C/N

Their cumulative GPA should be at least 2.3 in all of the courses attempted. Prospective transfer students completing the 2018-19 criteria (published in the 2017-18 catalog) and applying for Fall 2019 will also have satisfied major preparation.

Students should consult assist.org to determine which courses at other institutions in California are transferable to UCSC.

Advising

Every major and minor must have a computer engineering faculty adviser, assigned by the Baskin School of Engineering undergraduate advising office, and with that adviser must formulate a program of proposed coursework that meets the major or minor requirements. Additional information can be found on the SOE webpages.

Restrictions on Double Majors and Minors

Students completing any of the department’s three majors cannot also receive the computer engineering minor. 

Students completing the Robotics Engineering B.S. or the Computer Engineering BS cannot receive the Network and Digital Technology B.A. degree.

Students completing the Robotics Engineering B.S. can receive the Computer Engineering B.S. as well only by completing a concentration other than Robotics and Control.

Honors in the Major

Majors are considered for “Honors in the Major” and “Highest Honors in the Major” based on their GPA and on results of undergraduate research and other significant contributions to the School of Engineering. Students with a GPA of 3.70, in most cases, receive highest honors. Students with a GPA of 3.30, in most cases, receive honors. Students with particularly significant accomplishments in undergraduate research or contributions to the School of Engineering may be considered with a lower GPA. Computer engineering and robotics engineering juniors and seniors may also be eligible for election to the UC Santa Cruz chapter of Tau Beta Pi, the national engineering honor society founded in 1885.

Letter Grade Policy

The Computer Engineering Department requires letter grading for all courses applied towards any of its three undergraduate degrees: the B.S. in computer engineering, the B.S. in robotics engineering and the B.A. in network and digital technology. This policy includes courses required for these degrees that are sponsored by other departments.

School of Engineering Policies

Please refer to the School of Engineering section of the catalog for additional policies that apply to all School of Engineering programs.

Materials Fee and Miscellaneous Fees

Please see the section on fees under the School of Engineering. 

Requirements of the Computer Engineering Major

All students in the computer engineering major take the same core courses, which give the fundamentals of programming and hardware design, supported by the physics and mathematics necessary to understand them. Students must complete all of the courses listed within their selected concentration, and they must complete the capstone sequence. The senior comprehensive requirement for computer engineering majors is satisfied by completion of the capstone course and the exit requirement.

Lower-Division Core Requirements

Students who may have originally pursued another major should discuss with the Baskin School of Engineering undergraduate advising office whether or not already completed coursework may be substituted for one or more lower-division requirements.

Applied Mathematics and Statistics 10, Mathematical Methods for Engineers I; or Mathematics 21, Linear Algebra

Applied Mathematics and Statistics 20, Mathematical Methods for Engineers II

Computer Engineering 12/L, Computer Systems and Assembly Language/Laboratory

Computer Engineering 13/L, Computer Systems and C Programming/Laboratory

Computer Science 12B/M, Introduction to Data Structures/Laboratory

Computer Engineering 16, Applied Discrete Mathematics

Mathematics 19A-B, Calculus for Science, Engineering, and Mathematics

Mathematics 23A, Multivariable Calculus

Physics 5A/L, Introduction to Physics I /Laboratory

Physics 5B/M, Introduction to Physics II/Laboratory; or Computer Engineering 9, Statics, Dynamics, and Biomechanics (recommended for robotics and control concentration)

Physics 5C/N, Introduction to Physics III/Laboratory

Upper-Division Core Requirements

Computer Engineering 100/L, Logic Design/Laboratory

Computer Engineering 107, Probability and Statistics for Engineers

Computer Engineering 110, Computer Architecture

Computer Engineering 121/L, Microprocessor System Design/Laboratory

Computer Engineering 185, Technical Writing for Computer Engineers

Computer Science 101, Abstract Data Types

Electrical Engineering 101/L, Introduction to Electronics/Laboratory

Electrical Engineering 103/L, Signals and Systems/Laboratory

Concentrations

The following concentrations are specializations for the computer engineering student. Students must complete all of the courses listed within their selected concentration.

Systems Programming Concentration

The systems programming concentration focuses on software systems: courses include operating systems, compilers, software engineering, and advanced programming. Students finishing this concentration are very well prepared for building large software systems of all types. This concentration is the closest one to a computer science major-the main differences are that it does not require computer science theory courses, but because of the core computer engineering requirements, includes more hardware and electronics than a computer science bachelor's degree.

Computer Science 111, Introduction to Operating Systems; or Computer Engineering 105, Principles of Computer Systems Design

Computer Science 109, Advanced Programming; or Computer Science 115, Software Methodology; or Computer Engineering 114, Embedded Operating Systems

Computer Engineering 150/L, Introduction to Computer Networks/Laboratory

Elective: Upper-division or graduate elective from the approved list

Any one of the following courses:

Computer Engineering 113, Parallel and Concurrent Programming

Computer Engineering 156/L, Network Programming/Laboratory

Computer Science 104A, Fundamentals of Compiler Design I

Computer Systems Concentration

The computer systems concentration provides a balance between software and hardware design. Students are prepared for a large variety of different design tasks, especially those requiring the integration of hardware and software systems, but may need further training for any particular specialization.

Computer Engineering 125/L, Logic Design with Verilog/Laboratory; or Computer Engineering 122*, Introduction to VLSI Digital System Design

Computer Science 109, Advanced Programming; or Computer Science 115, Software Methodology; or Computer Engineering 114, Embedded Operating Systems

Computer Science 111, Introduction to Operating Systems; or Computer Engineering 105, Principles of Computer Systems Design

Elective: Upper-division or graduate elective from the approved list

*Computer Engineering 222, Advanced VLSI Digital System Design, may be substituted for CMPE 122 with department approval.

Robotics and Control Concentration

This concentration covers the hardware, software, sensing, and control aspects of autonomous and embedded systems. Students receive training in the theory, design, and realization of complex systems such as mobile robots. The concentration emphasizes integration of embedded software with hardware systems that interact with the environment.

Any two of the following three courses:

Computer Engineering 118/L, Introduction to Mechatronics/Laboratory

Computer Engineering 167/L, Sensing and Sensor Technologies/Laboratory

Computer Engineering 141, Feedback Control Systems

Third course from above (Computer Engineering 118/L, Computer Engineering 167/L, Computer Engineering 141); or any course from the list of approved robotics electives list

Elective: Upper-division or graduate elective from the approved list

Networks Concentration

The networks concentration focuses on communication between computers, covering both network hardware and protocols. Students finishing this concentration are well prepared for the design of wired and wireless network systems.

Computer Engineering 150/L, Introduction to Computer Networks/Laboratory

Computer Engineering 156/L, Network Programming/Laboratory

Computer Science 111, Introduction to Operating Systems; or Computer Engineering 105, Principles of Computer Systems Design

Elective: Computer Engineering 151/L, Advanced Computer Networks/Laboratory; or an upper-division or graduate elective from the approved list

Digital Hardware Concentration

The digital hardware concentration focuses on hardware design and includes more electronics than the other concentrations. Students finishing this concentration are well prepared for building hardware systems. This concentration is the closest one to an electronics major; the main differences are that it does not require as much electronics theory or analog electronic design, but because of the core computer engineering requirements, requires more software skills.

Computer Engineering 125/L, Logic Design with Verilog/Laboratory

Electrical Engineering 171/L, Analog Electronics/Laboratory; or Computer Engineering 122*, Introduction to VLSI Digital System Design

Elective: Upper-division or graduate elective from the approved list

Any one of the following courses:

Computer Engineering 122*, Introduction to VLSI Digital System Design (if not taken to satisfy above requirement)

Electrical Engineering 171/L, Analog Electronics/Laboratory (if not taken to satisfy above requirement)

Electrical Engineering 173/L, High-Speed Digital Design/Laboratory (requires prerequisite)

Computer Engineering 202, Computer Architecture

*Computer Engineering 222, Advanced VLSI Digital System Design, may be substituted for CMPE 122 with department approval

Disciplinary Communication (DC) Requirement

Students of every major must satisfy that major's upper-division Disciplinary Communication (DC) requirement. The DC requirement in computer engineering is satisfied by completing Computer Engineering 185, Technical Writing for Computer Engineers.

Capstone Requirement

All computer engineering students complete one of the following capstone sequences:

Computer Engineering 123A, Computer Engineering Design Project I; and Computer Engineering 123B, Computer Engineering Design Project II

Computer Engineering 129A, Capstone Project I; and Computer Engineering 129B, Capstone Project II; and Computer Engineering 129C, Capstone Project III

Computer Engineering 195, Senior Thesis Research; submission of approved senior thesis

Computer Science 115, Introduction to Software Engineering; Computer Science 116, Software Design Project; and Computer Science 117, Software Design Project II

Exit Requirement

Students are required to complete an exit survey and attend an exit interview. Portfolios of the students’ work will be collected from our courses for program evaluation. The portfolios will be reviewed by the computer engineering undergraduate committee and will include two project reports: CMPE 121/L and either the senior capstone report (CMPE 129A/B/C or CMPE 123A/B) or the student’s senior thesis.

Exit interviews are scheduled during the last week of the quarter.

Computer Engineering Major Planners

Below are two sample academic plans for students majoring in Computer Engineering.  Since the plans for the third and fourth years will vary according to the concentration and capstone selected, placeholders for these courses have been indicated with “concentration course” and “capstone course.”  As part of the major declaration process students prepare a 4 year plan based on a concentration and this may affect the placement of other courses as well.  Careful planning at the time of declaration is required to complete the degree within four years. Entering frosh who have little programming experience, are strongly advised to take a programming course in the fall quarter.

Plan One for Entering Frosh

Year

Fall

Winter

Spring

1st
(frosh)

MATH 19A

MATH 19B

MATH 23A

CMPE 12/L

PHYS 5A/L

PHYS 5C/N

Core course
(C1)

Gen ed (C2)

CMPE 13/L

2nd
(soph) 

AMS 10

AMS 20

CMPE 100/L

CMPS 12B/M

PHYS 5B/M

CMPS 101

CMPE 16

CMPE 110

gen ed

3rd
(junior)

EE 101/L

CMPE 107

CMPE 185

Concentration
course
Concentration
course
CMPE 121/L
Gen ed Gen ed Concentration
course
4th
(senior)
Capstone
course
Capstone
course
Capstone
course
EE 103/L Concentration
course
Concentration
course
Gen ed Gen ed

Plan Two for Entering Frosh

Year

Fall

Winter

Spring

1st
(frosh)

MATH 3

MATH 19A

MATH 19B

Introductory
programming
course

CMPE 12/L

CMPE 13/L

Core course
(C1)

Gen ed
(C2)

Gen ed

2nd
(soph)

 

 

PHYS 5A/L

CMPE 19

PHYS 5C/N

CMPS 12B/M

CMPE 16

MATH 23A

AMS 10

AMS 20

CMPS 101

3rd
(junior)

EE 101/L

CMPE 107

CMPE 185

CMPE 110 CMPE 100/L EE 103/L
Gen ed Concentration
course
Concentration
course
4th
(senior)
Capstone
course
Capstone
course
Capstone
course
CMPE 121/L concentration
course
concentration
course
Gen ed Gen ed Gen ed

Below is a sample academic plan for students transferring to UC Santa Cruz in computer engineering for their junior year. It assumes that all lower-division course requirements have been satisfied. Since the plans for the third and fourth years vary according to the concentration and capstone selected, placeholders for these courses have been indicated with “concentration course” and “capstone course.” As part of the major declaration process students prepare a plan based on a concentration and this may affect the placement of other courses as well. Careful planning at the time of declaration is required to complete the degree within two years.

Plan for Junior Transfers

Year

Fall

Winter

Spring

3rd
(junior)

EE 101/L

CMPE 107

CMPE 110

CMPS 101

CMPE 100/L

CMPE 121/L

CMPE 185

Concentration
course

Concentration
course

4th
(senior)

Capstone
course (2)

Capstone
course

Capstone
course

EE 103/L

Concentration
course

Concentration
course

Concentration
course

 

 

Requirements of the Robotics Engineering Major

All students in the robotics engineering major must take the courses listed below. Although not required, it is strongly recommended that students interested in the robotics engineering major take Computer Engineering 8, Introduction to Robot Automation in their first quarter. The senior comprehensive requirement for robotics engineering majors is satisfied by completion of the capstone course and the portfolio exit requirement. The robotics engineering major requires two more courses than the computer engineering major, including one graduate course.  Students not making sufficient progress in the major may be required to change to another major.

Lower-Division Core Requirements

Students who may have originally pursued another major should discuss with the Baskin School of Engineering undergraduate advising office whether or not already completed coursework may be substituted for one or more lower-division requirements.

Applied Mathematics and Statistics 10, Mathematical Methods for Engineers I; or Mathematics 21 Linear Algebra

Applied Mathematics and Statistics 20, Mathematical Methods for Engineers II

Computer Engineering 12/L, Computer Systems and Assembly Language/Laboratory 

Computer Engineering 13/L, Computer Systems and C Programming/Laboratory

Computer Science 12B/M, Introduction to Data Structures/Laboratory

Computer Engineering 16, Applied Discrete Mathematics

Mathematics 19A-B, Calculus for Science, Engineering, and Mathematics

Mathematics 23A, Multivariable Calculus

Physics 5A/L, Introduction Physics /Laboratory I

Physics 5C/N, Introduction Physics III/Laboratory

Computer Engineering 9, Statics, Dynamics, and Biomechanics

Computer Engineering 10, Introduction to Solid Mechanics

Upper-Division Core Requirements

Computer Engineering 100/L, Logic Design/Laboratory

Computer Engineering 107, Probability and Statistics for Engineers

Computer Engineering 118/L, Introduction to Mechatronics/Laboratory

Computer Engineering 121/L, Microprocessor System Design/Laboratory

Computer Engineering 141, Feedback Control Systems

Computer Engineering 167/L, Sensing and Sensor Technologies/Laboratory

Computer Engineering 185, Technical Writing for Computer Engineers

Computer Science 101, Abstract Data Types

Electrical Engineering 101/L, Introduction to Electronics/Laboratory

Electrical Engineering 103/L, Signals and Systems/Laboratory

Advanced Robotics Elective: Upper-division or graduate elective from the list of approved advanced robotics electives

Elective: Upper-division or graduate elective from the approved list

Disciplinary Communication (DC) Requirement

Students of every major must satisfy that major's upper-division Disciplinary Communication (DC) requirement. The DC requirement in robotics engineering is satisfied by completing Computer Engineering 185, Technical Writing for Computer Engineers.

Capstone Requirement

All robotics engineering students complete one of the following capstone sequences:

Computer Engineering 123A, Computer Engineering Design Project I and Computer Engineering 123B, Computer Engineering Design Project II;

Computer Engineering 129A, Capstone Project I; and Computer Engineering 129B, Capstone Project II; and Computer Engineering 129C, Capstone Project III

Computer Engineering 195, Senior Thesis Research; submission of approved senior thesis

Exit Requirement

Students are required to complete an exit survey and attend an exit interview. Portfolios of the students work will be collected from our courses for program evaluation. The portfolios will be reviewed by the computer engineering undergraduate committee and will include two project reports: CMPE 118/L and either the senior capstone report (CMPE 129A/B/C or CMPE 123A/B) or the student’s senior thesis.

Robotics Engineering Major Planner

Below is a sample academic plan for students majoring in robotics engineering. The plan for the third and fourth years will vary according to the electives and capstone selected. As part of the major declaration process students prepare a four-year plan and the selected electives may affect the placement of other courses as well. Carefully planning at the time of declaration is required to complete the degree within four years. 

Four-Year Planner for Robotics Engineering

Year

Fall

Winter

Spring

1st
(frosh)

MATH 19A

MATH 19B

MATH 23A

CMPE 8 (optional)

CMPE 12/L

CMPE 13/L

Core course
(C1)

Gen ed
(C2)

Gen ed

2nd
(soph)

PHYS 5A/L

CMPE 9

PHYS 5C/N

AMS 10

gen ed

CMPE 10

CMPS 12B/L

AMS 20

CMPE 16

3rd
(junior)

EE 101/L

CMPE 100/L

SOE elective

CMPS 101/L

CMPE 107

CMPE 121/L

CMPE 185

Gen ed

EE 103/L

4th
(senior)

Capstone
course

Capstone
course

Capstone
course

CMPE 141

CMPE 167/L

Adv elective

CMPE 118/L

Gen ed

Gen ed

Below is a sample academic plan for students transferring to UC Santa Cruz in robotics engineering for their junior year.  It assumes that all lower-division course requirements have already been satisfied, except possibly CMPE 10. The plan for the third and fourth years will vary according to the electives and capstone selected. As part of the major declaration process students prepare a plan and the selected electives may affect the placement of other courses as well. Carefully planning at the time of declaration is required to complete the degree within two years. 

Plan for Junior Transfers

Year

Fall

Winter

Spring

3rd
(junior)

EE 101/L

CMPE 107

CMPE 110

CMPS 101

CMPE 100/L

CMPE 121/L

CMPE 185

SOE elective

EE 103/L

4th
(senior)

Capstone
course (2)

Capstone
course

Capstone
course

CMPE 141

CMPE 167/L

Advanced
elective

CMPE 118/L

 

 

 

Network and Digital Technology Major Requirements

All students in the network and digital technology major must take the following courses. The senior comprehensive requirement is satisfied by completion of the capstone course and the portfolio exit requirement.

Lower-Division Requirements

Students who may have originally pursued another major should discuss with the Baskin School of Engineering undergraduate advising office whether or not already completed coursework may be substituted for one or more lower division-requirements.

Applied Mathematics and Statistics 10, Mathematical Methods for Engineers I; or Mathematics 21, Linear Algebra

Applied Mathematics and Statistics 20, Mathematical Methods for Engineers II; or Mathematics 24, Ordinary Differential Equations

Computer Engineering 12/L, Computer Systems and Assembly Language/Laboratory

Computer Engineering 13/L, Computer Systems and C Programming/Laboratory

Computer Science 12B/M, Introduction to Data Structures/Laboratory

Computer Engineering 16, Applied Discrete Mathematics

Mathematics 19A-B, Calculus for Science, Engineering, and Mathematics

Mathematics 23A, Multivariable Calculus

Physics 5A/L, Introduction Physics /Laboratory I; or Physics 6A/L, Introductory Physics I/Laboratory

Physics 5C/N, Introduction Physics III/Laboratory; or Physics 6C/N, Introductory Physics III/Laboratory

Upper-Division Requirements

Computer Engineering 100/L, Logic Design/Laboratory

Computer Engineering 150/L,Computer Networks/Laboratory

Computer Engineering 185, Technical Writing for Computer Engineers

Computer Science 101, Abstract Data Types; or Electrical Engineering 101/L, Introduction to Electronics/Laboratory

Three additional 5-credit, upper-division electives, and associated laboratories, from the approved list of electives, and one capstone requirement course.

Capstone Requirement

Each capstone course features a 3-month supervised design experience in digital or network technology culminating in a substantial written report.  Computer Engineering 185, Technical Writing for Computer Engineers, must be completed prior to or concurrently with the capstone project course.  Students must notify the instructor at the start of the quarter that they are working to complete their B.A. in Digital Technology Capstone Requirement.  Students select one of the following:

Computer Engineering 118/L, Introduction to Mechatronics/Laboratory

Computer Engineering 121/L, Microprocessor System Design/Laboratory

Computer Engineering 125/L, Logic Design with Verilog/Laboratory

Computer Engineering 151/L, Advanced Computer Networks/Laboratory

Computer Engineering 156/L, Network Programming/Laboratory

Computer Science 115, Software Methodology

Elective Choice

Students wishing to focus on digital technology should consider including among their courses: Electrical Engineering 101/L, Computer Engineering 110, Computer Engineering 118/L, Computer Engineering 121/L, and Computer Engineering 125/L.

Students wishing to focus on network technology should consider including among their courses: Computer Science 101, Computer Engineering 151/L, Computer Engineering 156/L, and Computer Science 111.

In all cases, students should discuss their interests and elective choices with their faculty adviser.

Disciplinary Communication (DC) Requirement

Students of every major must satisfy that major's upper-division Disciplinary Communication (DC) requirement. The DC requirement in network and digital technology is satisfied by completing Computer Engineering 185, Technical Writing for Computer Engineers.

Exit Requirement

Students are required to submit a portfolio and complete the exit survey. Students whose submissions are deemed inadequate, either in presentation or in content, may be required to revise and rewrite the portfolio or to complete an additional project course. The portfolios must be turned in electronically by the last day of the quarter of graduation. The online form can be found on the computer engineering web pages.  The portfolios will be reviewed quarterly by the computer engineering undergraduate committee and must include the project report of the student's capstone course.

Network and Digital Technology Major Planner

The first year is similar to option 2 for the computer engineering major.  Students choosing between the B.S. and the B.A. program should follow the B.S. curriculum until major declaration.  General education courses needed outside major requirements are not shown.

Planner for Network and Digital Technology

Year

Fall

Winter

Spring

1st
(frosh)

MATH 3

MATH 19A

MATH 19B

Introductory
programming
course

CMPE 12/L

CMPE 13/L

Core course
(C1)

Gen ed
(C2)

Gen ed

2nd
(soph)

CMPE 16

PHYS 5A/L

AMS 20

AMS 10

MATH 23A

PHYS 5C/N

Gen ed

Gen ed

Gen ed

3rd
(junior)

CMPE 150/L

CMPE 100/L

Elective

EE 101/L

CMPS 12B/M

Elective

4th
(senior)

CMPE 185

Elective

Capstone
course

Gen ed

Gen ed

Gen ed

Computer Engineering Minor

The computer engineering minor provides a solid foundation in digital hardware, electronics, and computer software, as well as the prerequisite material in mathematics and physics. The minor is well-suited to students who wish to take part in the design of computer and embedded systems in any discipline. Computer Engineering 118/L, Introduction to Mechatronics/Introduction to Mechatronics Laboratory or Computer Engineering 121/L, Microprocessor System Design/Microprocessor System Design Laboratory provides a capstone engineering design experience for students pursuing the computer engineering minor.

Computer Engineering Minor Requirements

Requirements for the minor in computer engineering are the following:

Applied Mathematics and Statistics 20A or 20, (Basic) Mathematical Methods for Engineers II (requires prerequisite); or Mathematics 24, Ordinary Differential Equations

Computer Engineering 12/L, Computer Systems and Assembly Language/Laboratory

Computer Engineering 16, Applied Discrete Mathematics

Computer Engineering 100/L, Logic Design/Laboratory

Computer Engineering 110, Computer Architecture

Computer Engineering 118/L Introduction to Mechatronics/Laboratory or 121/L, Microprocessor System Design/Laboratory

Computer Engineering 13/L, Computer Systems and C Programming (recommended); or  Computer Science 12A/L, Introduction to Programming (Accelerated)/Laboratory; or Computer Science 5J, Introduction to Programming in Java, and Computer Science 11, Intermediate Programming

Computer Science 12B/M, Introduction to Data Structures/Laboratory

Computer Science 101, Abstract Data Types

Electrical Engineering 101/L, Introduction to Electronics/Laboratory

Mathematics 19A-B, Calculus for Science, Engineering, and Mathematics

Physics 5A/L, Introduction to Physics I/Laboratory; or Physics 6A/L, Introductory Physics I/Laboratory

Physics 5C/N, Introduction to Physics III/Laboratory; or Physics 6C/N, Introductory Physics III/Laboratory

Five-Year B.S./M.S. Pathway

The Department of Computer Engineering offers a combined bachelor and master of science degree pathway. Undergraduate students in computer engineering, robotics engineering, electrical engineering, and computer science can apply to the pathway in order to earn a B.S. degree in their own major together with an M.S. degree in computer engineering. Depending on the student’s progress, the B.S./M.S. pathway can be completed in five years.

The B.S./M.S. pathway offers a competitive edge to students who are completing their undergraduate degree at UC Santa Cruz, by enabling those with advanced preparation to move directly from the undergraduate to the graduate program. The pathway assists qualified enrolled students with a simplified graduate application process that does not require students to take the graduate record examination (GRE), and makes it possible to complete an M.S. degree with just seven courses beyond the B.S. program in either of the allowed majors.

The pathway prepares students for leadership positions in industry, and is also attractive for undergraduate students planning to pursue a Ph.D. degree targeting research careers in industry or academia. The School of Engineering has many opportunities for undergraduate research, and B.S./M.S. students can continue their undergraduate research projects with the same research group. Upon advancement to graduate standing, B.S./M.S. students are eligible for financial support as graduate research assistants and teaching assistants.

Particularly motivated B.S./M.S. students can complete the entire pathway in 14 quarters (or fewer with Advanced Placement credit); however, advance planning is essential. Interested students should contact the department and their faculty adviser early in their college career-no later than the start of their junior year. B.S./M.S. students retain undergraduate status until the completion of all undergraduate requirements, but may begin graduate coursework in advance of graduate standing.

Admission to the B.S./M.S. Pathway

The undergraduate degree requirements are the same as those for other computer engineering, robotics engineering, electrical engineering, and computer science majors; however, the B.S./M.S. pathway capitalizes on graduate-level courses that may apply toward both degree requirements. B.S./M.S. candidates may use (at most) two graduate courses taken as undergraduates toward both the M.S. degree and B.S. degree electives. At the time graduate status is achieved, no more than three graduate courses taken as an undergraduate may count toward the nine courses required for the M.S. degree. Furthermore, B.S./M.S. students may not apply undergraduate courses toward the M.S. degree.

Admission to the B.S./M.S. pathway is by formal application, but is very simple. Undergraduate applicants seeking admission to the pathway can apply at any time starting in the first quarter of junior standing, and no graduate record examination (GRE) is required to apply. To qualify, applicants must have a 3.0 GPA when they apply to the B.S./M.S. pathway, and must maintain a 3.0 GPA or higher until the completion of their undergraduate requirements.

Students who cannot meet the B.S./M.S. application requirements or who are not admitted into the pathway are encouraged to apply for admission to the standard M.S. or Ph.D. program during their senior year.

Additional information about this pathway can be found on the department's website.

Graduate Programs

M.S. and Ph.D. Degree Programs

The graduate program in computer engineering accepts students for both the M.S. and the Ph.D. degrees. Graduate students in this program establish a solid foundation in computer algorithms and architectures and then proceed to a thorough study of recent developments in their selected area of specialization. This provides the basis for the M.S. degree and Ph.D. thesis work. The major areas of research concentration in computer engineering at UC Santa Cruz are computer networks; embedded and autonomous systems; computer systems design; robotics and control, mobile and pervasive computing; and computer-aided design; and sensing and interaction.

The computer engineering program benefits from a close relationship with other graduate programs in the School of Engineering and UC Santa Cruz as a whole. It maintains strong ties to local industry in the Silicon Valley and Monterey Bay areas. Graduates of the program are prepared for careers in academia and research as well as for positions in industrial research and development.

While in the program, most graduate students are supported as research assistants on faculty-sponsored projects or as teaching assistants for undergraduate courses.

Additional information on the computer engineering M.S. and Ph.D. degrees, including degree requirements and applications for admission, can be found on the department's website.

Base Requirement (for both M.S. and Ph.D)

In their first year, graduate students (both M.S. and Ph.D.) must show proficiency in three fundamental subjects: 1) computer algorithms and data structures; 2) computer architecture; and 3) one of the following three subjects—logic design, circuits, or software systems. Proficiency can be demonstrated by either completing one of the associated undergraduate courses, by establishing that an equivalent undergraduate course has been completed elsewhere, or by passing the final examination (or project when deemed appropriate by the responsible faculty) of an associated course. Students should obtain a computer engineering base requirement worksheet for the list of associated courses and instructions on fulfilling this requirement.

All graduate students (both M.S. and Ph.D.) must meet the base requirement by the end of the spring quarter of their first year in the program.

Letter Grade Policy (for both M.S. and Ph.D)

The Computer Engineering Department requires letter grading for all courses applied toward its master's and Ph.D. degrees with an exception for up to 10 credits of the student’s choice and the following courses: Research and Training in Computer Science and Engineering (CMPE 200), Master's Project (CMPE 296), Independent Study or Research (CMPE 297), Thesis Research (CMPE 299), and seminar courses (CMPE 280 series). This policy includes courses used for these degrees that are sponsored by other departments. To ensure they will receive a letter grade, students should check that they have selected the letter grade option no later than the 15th day of instruction each quarter for each class in which they are enrolled.

Requirements for the Master's Degree Thesis Track

Course Requirements

Each M.S. student is required to complete a total of at least 48 credits. The coursework must include:

  1. Completion of base requirement as described above.

  2. Core requirements:

    • Computer Engineering 200, Research and Teaching in Computer Science and Engineering (to be taken in fall quarter of the first year)

    • Computer Science 201, Analysis of Algorithms
    • Computer Engineering 202, Computer Architecture
  3. Research credits: Up to 10 credits of Computer Engineering 297, Independent Study or Research; or Computer Engineering 299, Thesis Research

  4. Up to 10 credits of either graduate courses (not seminars) in related disciplines outside the School of Engineering (requires adviser and computer engineering graduate director approval) or upper-division undergraduate courses when necessary to strengthen the student's preparation for graduate studies (requires adviser approval).

  5. All remaining courses must be regular 5-credit graduate courses from within the School of Engineering (with adviser and grad director approval); courses that do not count include all courses numbered 200, 280, 296, 297, and 299.

At least half of the credits from the graduate-level courses must be computer engineering graduate courses.

Thesis

Completion of a master's thesis is required for award of the master's degree. To fulfill this requirement, the student must submit a written proposal to a faculty member, usually by the third academic quarter. By accepting the proposal, the faculty member becomes the thesis adviser for the proposed thesis. In consultation with the adviser, the student must form a master's thesis reading committee with at least two additional faculty members, each of whom is provided a copy of the proposal. It is recommended that the student give an expository talk on the thesis research. The approved reading committee must accept the final thesis before the Master of Science degree can be awarded.

Requirements for the Master's Degree Project Track

Course Requirements

Each student is required to complete a total of at least 48 credits. The coursework must include:

  1. Completion of base requirement as described above.

  2. Core requirements:

    • Computer Engineering 200, Research and Teaching in Computer Science and Engineering (to be taken in Fall quarter of first year)

    • Computer Science 201, Analysis of Algorithms

    • Computer Engineering 202, Computer Architecture
    • Computer Engineering 296, Master's Project, 2 credits;

  1. Up to 10 credits of either graduate courses (not seminars) in related disciplines outside the School of Engineering (requires adviser and computer engineering graduate director approval) or upper-division undergraduate courses when necessary to strengthen the student's preparation for graduate studies (requires adviser approval).

  2. All remaining courses must be regular, 5-credit graduate courses from within the School of Engineering (with adviser's and grad director's approval); courses that do not count include all courses numbered 200, 280, 296, 297, and 299.

At least half of the credits from the graduate-level courses must be computer engineering graduate courses.

Project

Completion of a master's project is required to satisfy the master’s degree capstone requirement. The master’s project is the culmination of the student's academic experience and builds upon the knowledge acquired during the program. In consultation with the adviser, the student forms a master's project reading committee of at least two faculty members, each of whom is provided a copy of the project report. The final project must be accepted by the review committee before the award of the Master of Science degree.

Requirements for the Ph.D. Degree

Course Requirements

A Ph.D. student is required to take a total of 58 credits of graduate courses, which must consist of:

  1. Completion of base requirement as described above

  2. Core requirements:

    • Computer Engineering 200, Research and Teaching in Computer Science and Engineering (to be taken in fall quarter of the first year)

    • Computer Science 201, Analysis of Algorithms

    • Computer Engineering 202, Computer Architecture

  3. Research credits: Up to 10 credits of Computer Engineering 297, Independent Study or Research; or Computer Engineering 299, Thesis Research

  4. Up to 10 credits of graduate courses (not seminars) in related disciplines outside the School of Engineering (requires adviser and computer engineering graduate director approval).

  5. All remaining credits must be regular, 5-credit graduate courses from within the School of Engineering (with adviser and computer engineering graduate director approval); credits that do not count include all courses numbered 200, 280, 296, 297, and 299. At least 20 credits of these remaining courses must be Computer Engineering courses.

Course selection should form a coherent plan of study and requires adviser approval. Undergraduate courses may not be used to satisfy Ph.D. course requirements.

Ph.D. students who have satisfied the requirements for the master's degree are eligible to receive a master's degree.

Internships

Where appropriate, research internships with companies, research organizations, or government labs are recognized as an integral part of the research leading to the Ph.D. dissertation. At the adviser's discretion, internships in an appropriate company, research organization, or government lab may be required for individual students.

Examinations and Dissertation

To continue in the Ph.D. program, students must pass a preliminary examination in their chosen research area by the end of their third year. Preliminary examinations are held during the first three weeks of each spring quarter; students must petition the computer engineering graduate committee for an examination in their chosen area two weeks before the end of winter quarter.

Examination committees consist of four faculty members, two chosen by the student and two by the computer engineering graduate director. The format of this oral examination is up to the examination committee; the examination will typically evaluate both general knowledge of the chosen area and specific understanding of selected technical papers. The preliminary examination requirement is waived for students who advance to candidacy by the end of their third year.

Each student must write a Ph.D. dissertation. The dissertation must show the results of in-depth research, by an original contribution of significant knowledge, and include material worthy of publication. As the first step, a student must submit a written dissertation proposal to a School of Engineering faculty member. By accepting the proposal, the faculty member becomes the student's dissertation supervisor. The student may choose a faculty member outside the Computer Engineering Department within the School of Engineering as adviser only with approval from the computer engineering graduate director. The dissertation proposal is publicly and formally presented in an oral qualifying examination given by a qualifying examination committee, approved by the computer engineering graduate director and the graduate division. The student must submit his or her written dissertation proposal to all members of the qualifying examination committee and the graduate adviser at least one month in advance of the examination.

Students are advanced to candidacy after they have completed the course requirements, passed both the preliminary and qualifying examinations (or just the qualifying examination if passed prior to the end of the student's third year in the program), cleared all Incomplete grades from their records, have an appointed dissertation reading committee, and paid the filing fee. Students who have not advanced to candidacy by the end of their fourth year will be placed on academic probation.

Each Ph.D. candidate must submit the completed dissertation to a reading committee at least one month prior to the dissertation defense. The appointment of the dissertation reading committee is made immediately after the qualifying examination and is necessary for advancing to candidacy. The candidate must present his or her research results in a public seminar sponsored by the dissertation supervisor. The seminar is followed by a defense of the dissertation to the reading committee and attending faculty who will then decide whether the dissertation is acceptable or requires revision. Successful completion of the dissertation fulfills the final academic requirement for the Ph.D. degree.

Transfer Credit

Up to three School of Engineering courses fulfilling the degree requirements of either the M.S. or Ph.D. degrees may be taken before beginning the graduate program through the concurrent enrollment program.

M.S. students who have previously successfully completed graduate-level classes in a related field at another institution may substitute courses from their previous institution with the approval of the graduate director. The number of courses that can be substituted is limited so that, in all cases, students must complete a minimum of four graduate-level classes during their matriculation at UC Santa Cruz. These classes must be School of Engineering graduate-level courses and must be approved by the student's advisor and the computer engineering graduate director.

Petitions for course substitutions should be submitted along with the transcript from the other institution or UC Santa Cruz extension. For courses taken at other institutions copies of the syllabi, exams, and other coursework should accompany the petition. Such petitions are not considered until the completion of at least one quarter at UCSC.

Ph.D. students who have previously earned a master's degree or have successfully completed graduate-level classes as regular students in a graduate program in a related field at another institution may apply for a modified program of course requirements taking into account their previous coursework. Such a modified program should specify the coursework that will be completed at UC Santa Cruz, which must include no fewer than four graduate-level courses and must be approved by the student's adviser and the computer engineering graduate director. These four courses must be taken while in the graduate program at UCSC.

Application for a modified program of course requirements must be made within the first year of graduate study at UC Santa Cruz and will be reviewed by the graduate director and a committee of three faculty members approved by the graduate director. Copies of the syllabi, exams, other relevant coursework, and the relevant transcript from the other institution, must accompany the application. Interviews with the committee members may be required to properly assess the coursework.

Acceptance of prior work for course transfer and modified programs of study is at the discretion of the department.

Robotics and Control Designated Emphasis

The graduate designated emphasis (DE) leading to the degree notation “with an emphasis in Robotics and Control” is a collaboration of faculty from several Baskin School of Engineering programs and is administered by the Department of Computer Engineering. Students wishing to complete a master’s thesis or doctoral dissertation in this area must satisfy the degree requirements of a primary program as well as of the DE. The DE is most suitable for students pursuing degrees in Applied Mathematics and Statistics, Computer Engineering and Electrical Engineering, but students from any area may work in this interdisciplinary field so long as they meet all requirements, including progress, within the primary degree program. A current list of the robotics and control faculty and electives is available at the Computer Engineering website.

Requirements for the Designated Emphasis Notation

Committee composition. The student’s Ph.D. or M.S. committee must include one member of the robotics and control faculty.

Writing. The student’s dissertation or thesis must include a significant section (chapter) related to robotics and control, with content suitable for a conference or journal article. Students pursuing the M.S. project track must complete a project report related to robotics and control, with content suitable for a conference or journal article.

Course requirements. The student must complete four five-credit graduate courses and several two-credit seminar courses. All students must complete CMPE 241/EE 241, Introduction to Feedback Control Systems, and three 5-credit robotics and control graduate electives.

Master’s students must complete two offerings of CMPE 280C, Seminar in Control (2 credits).

Doctoral students must complete four offerings of CMPE 280C.

Review of Progress

Each year, computer engineering faculty reviews the progress of every student in the graduate program. Students not making adequate progress towards completion of degree requirements (see the UC Santa Cruz Graduate Handbook for policy on satisfactory academic progress) are subject to dismissal from the program. Students with academic deficiencies may be required to take additional courses. Full-time students with no academic deficiencies are normally expected to complete the degree requirements at the rate of at least two courses per quarter. Full-time students must complete Computer Science 201 and Computer Engineering 202 within two years and normally must complete all course requirements within two years for the M.S. and three years for the Ph.D. program.

Students receiving two or more grades of U (Unsatisfactory) or below B in School of Engineering courses are not making adequate progress and will be placed on academic probation for the following three quarters of registered enrollment. Withdrawing or taking a leave of absence does not count as enrollment. Part-time enrollment is counted as a half of a quarter of enrollment.

Should any computer engineering graduate student fail a School of Engineering course while on probation, the Computer Engineering Department may request the graduate dean to dismiss that student from the graduate program. If, after being removed from probation, the student again fails a School of Engineering course, he or she will return immediately to academic probation.

Graduate students experiencing circumstances or difficulties that impact their academic performance should contact their adviser and the graduate director immediately. Students may appeal their dismissal.

[Return to top.]

Revised: 07/15/18