Computer Engineering

2016-17 General Catalog

Baskin School of Engineering
(831) 459-2158
http://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 UCSC Department of Computer Engineering 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. program 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 UCSC 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 UCSC 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 UCSC 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 UCSC 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. program 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. Computer engineering proposed majors will be assigned a faculty adviser on 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 describe below; a student may not graduate as a proposed major.

Declaration of the Computer Engineering Majors

Declaration of the computer engineering major in the first six quarters of enrollment at UCSC 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.

All other applications for admission to the major in the first six quarters of enrollment will be reviewed individually to ensure the major can be completed within the campus limits. After the first six quarters petitions to declare the major are reviewed individually to ensure the major can be completed within the campus limits. Students seeking to change their current major to computer engineering in their seventh through ninth quarters who have completed the four upper-division classes and associated labs, Computer Engineering 100/L, Computer Engineering 107, Computer Science 101 and Electrical Engineering 101/L with a cumulative GPA of at least 2.50 or greater and have completed all of the lower-division courses listed above by their ninth quarter will also be admitted.

Declaration of the robotics engineering major in the first six quarters of enrollment at UCSC 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 among 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.

All other applications for admission to the major in the first six quarters of enrollment will be reviewed individually to ensure the major can be completed within the campus limits. After the first six quarters petitions to declare the major are reviewed individually to ensure the major can be completed within the campus limits. Students seeking to change their current major to robotics engineering in their seventh through ninth quarters who have completed the five upper-division classes and associated labs, Computer Engineering 100/L, Computer Engineering 107, Computer Science 101, Electrical Engineering 101/L and Electrical Engineering 103/L with a cumulative GPA of at least 2.50 or greater and have completed all of the lower-division courses listed above will also be admitted.

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. After the first six quarters petitions to change a students major to network and digital technology are reviewed individually to ensure the major can be completed within the campus limits. 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 the major may be appealed by submitting a letter to the School of Engineering Undergraduate Office, addressed to the Computer Engineering Undergraduate Director, describing why the GPA obtained is not an accurate reflection of the student's potential.

Transfer Students

Admission to the computer engineering major and robotics engineering major for transfer students is based on their cumulative GPA in all courses transferable to UCSC as:

Mathematics 19A,
Mathematics 19B,
Mathematics 23A,
Applied Mathematics and Statistics 10 or Mathematics 21,
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.

For admission to the computer engineering major or robotics engineering major a cumulative GPA of 2.80 is required for transfer students who have completed courses transferable to UCSC for all of the courses listed above. For transfer students who have not completed courses transferable to UCSC for every course in the list above, a cumulative GPA of 3.0 is required and the students must have at least completed courses transferable as Physics 5A/L, Physics 5C/M, Mathematics 19A, Mathematics 19B, and one of the following: Mathematics 23A, Applied Mathematics and Statistics 10, Mathematics 21, or Applied Mathematics and Statistics 20. In addition, completion of at least one programming course (even if not transferrable) is required.

Admission to the network and digital technology major for transfer students is based on their cumulative GPA in all courses transferable to UCSC as:

Mathematics 19A,
Mathematics 19B,
Mathematics 23A,
Applied Mathematics and Statistics 10 or Mathematics 21,
Applied Mathematics and Statistics 20 or Mathematics 24,
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/M.

For admission to the network and digital technology major, a cumulative GPA of 2.3 is required for transfer students who have completed courses transferable to UCSC for all of the courses listed above. For students who have not completed courses transferable to UCSC for every course in the list above, a cumulative GPA of 2.8 is required and before transferring students must have completed at least five of these courses and their associated labs as well as one programming course (even if the programming course is not transferrable).

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 web pages.

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 UCSC 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, Mathematical Methods of Systems Analysis: Stochastic

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

Computer Science 109, Advanced Programming; or Computer Science 115, Software Methodology

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

Computer Science 111, Introduction to Operating Systems

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

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

Elective: Computer Engineering 151/L, Advanced Computer Networks/Laboratory; or an upper-division or graduate elective from 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

Elective: Upper-division or graduate elective from approved list

Any one of the following courses:

Computer Engineering 122, Introduction to VLSI Digital System Design

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

Computer Engineering 202, Computer Architecture

Computer Engineering 222, Advanced VLSI Digital System Design

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 either the two-quarter capstone project sequence Computer Engineering 123A/B, or the three-quarter capstone project sequence Computer Engineering 129A/B/C or a senior thesis along with the first capstone course.

One of the following sequences:

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

Computer Engineering 123A, Computer Engineering Design Project I; and Computer Engineering 195, Senior Thesis Research

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

Computer Engineering 129A, Capstone Project I; and Computer Engineering 195, Senior Thesis Research

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

Exit Requirement

Students are required to submit a portfolio, complete the exit survey, and attend an exit interview. 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 following:

  • A hardware-oriented project report;

  • A software-oriented project report;

  • A third project report of the student's selection;

and any additional information related to these projects requested.

If a project report is associated with a course, it must be an upper-division (other than CMPE100/L) or graduate course. One of the reports must be the result of a multi-person project. One of the reports must be the result of an individual project. One of the reports must be the result of the student's capstone design project.

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

Computer Engineering Major Planners

The following are two sample academic plans for students to complete during their first two years as preparation for the computer engineering major. Plan One is suggested guidelines for students who are committed to the major early in their academic career. Plan Two is for students who are considering the major. Students who take pre-calculus at UCSC, or who have little programming experience, are strongly advised to take course 8, Robot Automation in the fall quarter.

Plan One

Year

Fall

Winter

Spring

1st
(frsh)

MATH 19A

MATH 19B

PHYS 5C/N

CMPE 12/L

PHYS 5A/L

CMPE 16

core course

gen ed

CMPE 13/L

2nd
(soph)

CMPS 12B/M

AMS 20

gen ed

AMS 10

EE 101/L

CMPE 80E

MATH 23A

PHYS 5B/M

CMPS 101

Plan Two

Year

Fall

Winter

Spring

1st
(frsh)

MATH 3
(pre-calc)

MATH 19A

MATH 19B

CMPE 8

CMPE 12/L

CMPE 13/L

core course

gen ed

2nd
(soph)

PHYS 5A/L

CMPE 16

PHYS 5C/N

CMPS 12B/M

CMPE 9

MATH 23A

AMS 10

AMS 20

CMPS 101

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, Mathematical Methods of Systems Analysis: Stochastic

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 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 either the two-quarter capstone project sequence Computer Engineering 123A/B, or the three-quarter capstone project sequence Computer Engineering 129A/B/C or a senior thesis along with the first capstone course:

One of the following sequences:

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

Computer Engineering 123A, Computer Engineering Design Project I and Computer Engineering 195, Senior Thesis Research

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

Computer Engineering 129A, Capstone Project I and Computer Engineering 195, Senior Thesis Research

Exit Requirement

Students are required to submit a portfolio, complete the exit survey and attend an exit interview. 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 portfolios will be reviewed quarterly by the computer engineering undergraduate committee and must include three project reports of the student's selection and any additional information related to these projects requested. The online portfolio form can be found on the computer engineering web pages. If a project report is associated with a course, it must be an upper-division (other than Computer Engineering 100/L) or graduate course. One of the reports must be the result of a multi-person project. One of the reports must be the result of an individual project. One of the reports must be the result of the student's capstone design project.

Robotics Engineering Major Planner

Year

Fall

Winter

Spring

1st
(frsh)

MATH 19A

MATH 19B

MATH 23A

CMPE 8

CMPE 12/L

CMPE 13/L

core course (C1)

gen ed (C2)

2nd
(soph)

PHYS 5A/L

CMPE 9

PHYS 5C/N

AMS 10

gen ed

CMPE 10

CMPS 12B/L

AMS 20

CMPE 16

3rd
(jr)

EE 101/L

CMPE 100/L

SOE elective

CMPS 101/L

CMPE 107

CMPE 121/L

CMPE 185

gen ed

EE 103/L

4th
(sr)

CMPE 141

CMPE 129B

CMPE 129C

CMPE 129A

CMPE 167/L

Adv elective

CMPE 118/L

gen ed

gen ed

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.

Year

Fall

Winter

Spring

1st
(frsh)

MATH 3 (pre-calc)

MATH 19A

MATH 19B

CMPE 8 (opt)

CMPE 12/L

CMPE 13/L

2nd
(soph)

CMPE 16

PHYS 5A/L

AMS 20

AMS 10

MATH 23A

PHYS 5C/N

3rd
(jr)

CMPE 150/L

CMPE 100/L

Elective

EE 101/L

CMPS 12B/M

Elective

4th
(sr)

CMPE 185

Elective

Capstone

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

B.S./M.S. Undergraduate Program

The Department of Computer Engineering offers a combined bachelor and master of science degree program. Undergraduate students in computer engineering, robotics engineering, electrical engineering, and computer science can apply to the program 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. program can be completed in five years.

The B.S./M.S. program offers a competitive edge to students who are completing their undergraduate degree at UCSC, by enabling those with advanced preparation to move directly from the undergraduate to the graduate program. The program 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 program 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 program 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. Program

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. program 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. program is by formal application, but is very simple. Undergraduate applicants seeking admission to the program 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. program, 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 program are encouraged to apply for admission to the standard M.S. or Ph.D. program during their senior year.

Additional information about this program can be found on the department's web pages.

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 UCSC 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 UCSC 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 web pages at https://www.soe.ucsc.edu/departments/computer-engineering/graduate/requirements.

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.

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 describe 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 describe 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 UCSC. 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 UCSC 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 UCSC, 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 UCSC, 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, https://www.soe.ucsc.edu/departments/computer-engineering.

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 UCSC 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: 03/01/16