Office of the Registrar
UCSC General Catalog

Computer Engineering

Baskin School of Engineering
335 Baskin Engineering Building
(831) 459-2158
www.soe.ucsc.edu

Dean’s office
335 Baskin Engineering
(831) 459-2158

Undergraduate office
115 Baskin Engineering
(831) 459-5840

Graduate office
361B Baskin Engineering
(831) 459-2576

Professor Sung-Mo (Steve) Kang, Dean
Professor F. Joel Ferguson, Associate Dean of Undergraduate Affairs
Professor Michael Isaacson, Associate Dean for Graduate Studies and Research

Program Description

Computer engineering focuses on the design, analysis, and application of computers and on their applications as components of systems. The UC Santa Cruz 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 UC Santa Cruz B.S. in computer engineering prepares graduates for a rewarding career in engineering. UC Santa Cruz 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 the field is so broad, four specialized tracks for completing the program have been identified: systems programming, computer systems, networks, and digital hardware. Descriptions of these tracks follow in the section on major requirements.

Many computer engineering students continue their education through the M.S. degree. The Department of Computer Engineering offers an accelerated combined B.S./M.S. degree in computer engineering that enables eligible undergraduates to move without interruption to the graduate program. Interested computer 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.

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 course work that meets the major or minor requirements.

Courses for Nonmajors

The Computer Engineering Department offers course 3, Personal Computer Concepts: Software and Hardware, providing students an introductory course on the design and use of computers from an engineering viewpoint. Other computer engineering courses of interest to nonmajors, as well as to science-oriented students, include course 12C, Computer Organization, an introductory course on computer systems, system software, and machine-level programming; course 16, Applied Discrete Mathematics, an introduction to applications of discrete mathematical systems; course 80N, Introduction to Networking and the Internet, an introduction to technological services of the Internet; and course 80E, Engineering Ethics.

Computer Engineering Policies

Admissions Policy

Admission to the computer engineering major is selective. Freshmen applicants may receive early admission at the time they apply to UCSC, based on their high school record and test scores. Admission to the major after a student has entered UCSC is based on performance in the foundation courses: Computer Science 12A and 12B, Computer Engineering 16, and Mathematics 19A-B. Please refer to the School of Engineering section of the catalog for the full admissions policy.

Disqualification Policy

Please refer to the Engineering section of this catalog for the School of Engineering’s Major Disqualification Policy.

Letter Grade Policy

The Computer Engineering Department requires letter grading for all courses applied to the degree with the exception of two lower-division courses, which students may elect to take Pass/No Pass. This policy includes courses required for the computer engineering major but sponsored by other departments.

Transfer Students

Please refer to the School of Engineering section of the catalog for the policy regarding transfer students.

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.

Major Requirements

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. The core courses also cover the fundamentals of computer architecture and designing with microprocessors.

Lower-Division Requirements

Core Requirements

Computer Engineering
12C/L, Computer Organization/Laboratory

Computer Science
12A, Introduction to Programming
12B, Introduction to Data Structures

Electrical Engineering
70/L, Introduction to Electronics/Laboratory

Mathematics

Computer Engineering 16, Applied Discrete Mathematics; or
Computer Engineering 16H, Honors Applied Discrete Mathematics

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

Mathematics 23A-B, Multivariable Calculus

Engineering 27/L, Mathematical Methods for Engineers/Laboratory (formerly Mathematics 27); or Mathematics 21, Linear Algebra; and Mathematics 24, Ordinary Differential Equations)

Science

Students must complete Physics 5A/L or 6A/L, Physics 5C/N or 6C/N, and one of the following four science options:

Biology: Chemistry 1B/M or 4A/L; and Biology 20A or 21A

Chemistry: Chemistry 1B/M or 4A/L; and Chemistry 1C/N or 4B/M

Earth Science: Earth Science 10/L and a choice of one 5-credit Earth science upper-division course, excluding Earth Science 111

Physics: Physics 5B/M or 6B/M; and either Physics 5D or one 5-credit upper-division physics course

Ethics

Students must take Computer Engineering 80E, Engineering Ethics; or another approved ethics course.

This course is required even for transfer students who have had their general education requirements waived.

Upper-Division Requirements

Core Requirements

Computer Engineering

100/L, Logic Design/Laboratory
107, Mathematical Methods of Systems Analysis: Stochastic
110, Computer Architecture
121/L, Microprocessor System Design/Laboratory
185, Technical Writing for Computer Engineers

Computer Science

101, Abstract Data Types

Specialized Tracks

The following four tracks are specializations for the computer engineering student. Students must complete all of the courses listed within their selected track, and they must complete the capstone sequence,

Computer Engineering

123A, Computer Engineering Design Project I
123B, Computer Engineering Design Project II; or
195, Senior Thesis Research

Systems Programming Track
The systems programming track focuses on software systems: courses include operating systems, compilers, software engineering, and advanced programming. Students finishing this track are very well prepared for building large software systems of all types. This track 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
  • 115, Software Methodology
  • Elective: any approved computer science or computer engineering upper-division or
    graduate elective
  • Any two of the following courses:

Computer Engineering

113, Parallel and Concurrent Programming
117/L, Embedded Software/Laboratory

Computer Science

104A, Fundamentals of Compiler Design I
104B, Fundamentals of Compiler Design II
116, Software Design Project

Computer Systems Track

The computer systems track is the most general track, providing 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
    126/L, Advanced Logic Design/Laboratory
  • Computer Science 111, Introduction to Operating Systems
  • Elective: any approved computer science practice or computer engineering upper-division or graduate elective
  • Elective: any approved computer engineering or electrical engineering upper-division or
    graduate elective

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

Computer Engineering

  • 150, Introduction to Computer Networks
  • 151, Network Administration
  • 154, Data Communication; or
    Electrical Engineering 103, Signals and Systems; and
    Electrical Engineering 151, Communications Systems
  • Computer Science 111, Introduction to Operating Systems
  • Electives: Computer Engineering 250, Multimedia Systems; or 108, Data Compression; or 113, Parallel and Concurrent Programming; or 152, Analysis and Design of Communication Protocols; or 177, Applied Graph Theory and Algorithms

Digital Hardware Track
The digital hardware track focuses on hardware design and includes more electronics than the other tracks. Students finishing this track are well prepared for building hardware systems. This track 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; or
    126/L, Advanced Logic Design/Laboratory
  • 173/L, High-Speed Digital Design
  • Electrical Engineering 171/L, Analog Electronics or course 172/L, Linear and Nonlinear Circuits/ Laboratory
  • Elective: any approved computer engineering or electrical engineering upper-division or graduate elective

Comprehensive Requirement

The senior comprehensive requirement for computer engineering majors is in two parts: a capstone course and a portfolio exit requirement.

Core Examination
Successful completion of the Computer Engineering Core Examination is a prerequisite to all capstone project courses and a requirement for graduation. The core examination is offered the first Saturday after instruction begins each fall, winter, and spring quarter. This examination verifies proficiency in the material covered in courses 100, 107, 110, and 121. Students are most strongly encouraged to plan their course schedule to ensure completion of the core courses in the junior or early senior year and to take the examination as soon as possible thereafter.

Portfolio Exit Requirement
Students are required to submit a portfolio and 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 via http://www.soe.ucsc.edu/programs/ce/undergraduate/portfolio.html at least seven days before the end of instruction in the quarter of graduation.

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
  • A one- to two-page overview of the three projects, the student’s contribution to them, and a narrative as specified at http://www.soe.ucsc.edu/programs/ce/undergraduate/portfolio.html.
  • An exit survey

If a project report is associated with a course, it must be an upper-division 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.

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.

Plan One
Year Fall Winter Spring
1st
(frsh)
Math 19A
Cmps 12A
Math 19B
Cmps 12B
Math 23A
Cmpe 12C/L
2nd
(soph)
Phys 5A/L
Math 23B
Engr 27/L
Cmpe 16 or 16H
Phys 5C/N
Cmpe 100/L
Cmpe 80E
Plan Two
Year Fall Winter Spring
1st
(frsh)
Math 3 (pre-calc)
Cmps 10
Math 19A
Cmps 12A
Math 19B
Cmps 12B
2nd
(soph)
Phys 5A/L
Math 23A
Cmpe 12C/L

Math 23B
Cmpe 16 or 16H
Phys 5C/N
Cmpe 100/L
Cmpe 80E

Minor Requirements

Requirements for the minor in computer engineering are the following:

Mathematics

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

Engineering 27/L, Mathematical Methods for Engineers/Laboratory (formerly Mathematics 27); or
Mathematics 21, Linear Algebra; and
24, Ordinary Differential Equations

Computer Engineering
16, Applied Discrete Mathematics; or
16H, Honors Applied Discrete Mathematics

Science

Physics 5A/L or 6A/L, and 5C/N or 6C/N

Core Requirements

Computer Engineering

12C/L, Computer Organization/Laboratory
100/L, Logic Design/Laboratory
110, Computer Architecture
121/L, Microprocessor System Design/Laboratory

Computer Science

12A, Introduction to Programming
12B, Introduction to Data Structures
101, Abstract Data Types

Electrical Engineering

70/L, Introduction to Electronics/Laboratory

At most, two of the upper-division core courses and the lower-division electrical engineering course may be used to satisfy the requirements of another major or minor degree.

The portfolio exit requirement does not apply for the computer engineering minor.

Materials Fee and Miscellaneous Fees

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

Undergraduate Programs

B.S./M.S. Undergraduate Program

The Department of Computer Engineering offers a combined bachelor and master of science degree program in computer engineering, providing the opportunity to earn both degrees 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 and makes it possible to complete an M.S. degree with just seven courses beyond the B.S. program. The program prepares students for engineering positions in industry, and it is particularly attractive for undergraduate students planning to engage in engineering research in industry or academia. The School of Engineering has many opportunities for undergraduate research, especially for honors-level students. 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 support as graduate research assistants. The B.S./M.S. program provides knowledge and training in important and contemporary areas of computer engineering.

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 course work in advance of graduate standing.

The undergraduate degree requirements are the same as those for other computer engineering 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 apply (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. 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. Undergraduate applicants seeking admission as graduate students generally apply in their last quarter of junior standing. To qualify, applicants must have completed the following:

Computer Engineering 100/L, Logic Design/Laboratory

Computer Science 101, Abstract Data Types

Computer Engineering 110, Computer Architecture; or
121/L, Microprocessor System Design/ Laboratory

Electrical Engineering 70/L, Introduction to Electronics/Laboratory

and at least one additional upper-division School of Engineering course.

Applications will be considered until the student’s first quarter of senior standing. This extension of the application period into the first quarter of the senior year is specifically geared to enable eligible transfer students to complete the courses required for admission.

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 at http://www.soe.ucsc.edu/programs/undergraduate/.

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, computer systems design, computer-aided design technologies, digital media and education technology, and software and systems engineering.

The computer engineering program benefits from a close relationship with the computer science and electrical engineering programs at UCSC and ties to industry in the Silicon Valley and Monterey Bay areas. Graduates of the program are prepared for careers in teaching 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 http://www.soe.ucsc.edu/programs/graduate/.

Requirements for the Master’s Degree

Base Requirement
In their first year, graduate students must show proficiency in five fundamental subjects: data structures, computer architecture, logic design, circuits, and 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 exam (or project when deemed appropriate by the faculty responsible) of an associated course. Students should obtain a Computer Engineering Base Worksheet for the list of associated courses and instructions on fulfilling this requirement.

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

Course Requirements
Each student is required to complete a total of 48 units. The course work must include

Computer Engineering 200, Research and Teaching in Computer Science and Engineering

Computer Science 201, Analysis of Algorithms

Computer Engineering 202, Computer Architecture

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

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

All remaining credits must be graduate elective courses from Computer Engineering’s list of approved graduate courses (available online or from the department)

In addition, the selection of graduate elective courses must show breadth by including a minimum of 5 credits in each of two categories from Computer Engineering’s list of approved graduate electives. Computer Science 201 and Computer Engineering 202 cannot be used to satisfy the breadth requirement.

At least half of the units 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. The student is required to present an expository talk on the thesis research, and the final thesis must be accepted by the review committee before the award of the master of science degree.

Requirements for the Ph.D. Degree

Base Requirement
In their first year, graduate students must show proficiency in five fundamental subjects: data structures, computer architecture, logic design, circuits, and 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 exam (or project when deemed appropriate by the faculty responsible) of an associated course. Students should obtain a Computer Engineering Base Work Sheet for the list of associated courses and instructions on fulfilling this requirement.

The base requirement must be met by all graduate students (both M.S. and Ph.D) by the end of the spring quarter of the first year in the program.

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

course 200, Research and Teaching in Computer Science and Engineering;

Computer Science 201, Analysis of Algorithms;

course 202, Computer Architecture;

a minimum of 20 credits of graduate computer engineering courses from Computer Engineering’s list of approved graduate courses (available online or from the department);

up to 10 credits of course 297, Independent Study or Research; or
course 299, Thesis Research;

up to 10 credits of graduate courses (not seminars) in related disciplines outside the School of Engineering (requires adviser and computer engineering graduate committee approval);

all remaining units must be graduate elective courses from Computer Engineering’s list of approved graduate courses.

The selection of elective courses must show breadth by including either 10 credits in each of two categories or 5 credits in each of three separate categories from Computer Engineering’s list of approved graduate courses. Computer Science 201 and course 202 cannot be used to satisfy the breadth requirement.

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.

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 committee. 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 committee. The dissertation proposal is publicly and formally presented in an oral qualifying examination given by a qualifying exam committee, approved by the computer engineering graduate committee and the graduate council. The student must submit his or her written dissertation proposal to all members of the qualifying exam committee and the graduate assistant 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 exam 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.

Ph.D. students who have previously earned a master’s degree in a related field at another institution may substitute courses from their previous university with approval of the adviser and the computer engineering graduate committee. Courses from other institutions may not be applied to the M.S. degree course requirements. Petitions for course substitutions must designate a specific graduate-level course from the list of approved graduate courses. They 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 course work should accompany the petition. Such petitions are not considered until the completion of at least one quarter at UCSC.

A total of, at most, three courses may be transferred from concurrent enrollment and other institutions.

Review of Progress

Each year, the computer engineering faculty reviews the progress of every student in the graduate program. Students not making adequate progress towards completion of degree requirements (see UCSC Graduate Student 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 course 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.