Computer Engineering Major
Harold Frank Hall, Room 4157;
Telephone (805) 893-5615 or (805) 893-8292
Email: info@ce.ucsb.edu
Website: www.ce.ucsb.edu (will open in a new browser window)
Director: Malgorzata (Margaret) Marek-Sadowska
Contents:
- Faculty
- Overview
- Mission Statement
- Educational Objectives
- Program Outcomes
- Admission to the major
- Undergraduate Program
- Computer Engineering Courses
Kevin Almeroth, Ph.D., Georgia Institute of Technology, Associate Professor (computer networks and protocols, large-scale multimedia systems, performance evaluation and distributed systems)
Kaustav Banerjee, Ph.D., UC Berkeley, Associate Professor (high performance VLSI and mixed signal system-on-chip designs and their design automation methods; single electron transistors; 3D and optoelectronic integration)
Forrest D. Brewer, Ph.D., University of Illinois at Urbana-Champaign, Professor (VLSI and computer system design automation, theory of design and design representations, symbolic techniques in high level synthesis)
Tevfik Bultan, Ph.D., University of Maryland, College Park, Associate Professor (specification and automated analysis of concurrent systems, computer-aided verification, model checking)
Steven E. Butner, Ph.D., Stanford University, Professor (computer architecture, VLSI design of CMOS and gallium-arsenide ICs with emphasis on distributed organizations and fault-tolerant structures)
Edward Chang, Ph.D., Stanford University, Associate Professor (multimedia systems, database systems, and distributed systems)
Kwang-Ting (Tim) Cheng, Ph.D., UC Berkeley, Professor (design automation, VLSI testing, design synthesis, design verification, algorithms)
Frederic T. Chong, Ph.D., Massachusetts Institute of Technology, Professor (computer architecture, novel computing technologies, quantum computing, embedded systems, and architectural support for system security and reliability)
Ryan Kastner, Ph.D., UCLA, Assistant Professor (computer engineering, reconfigurable computing; design of integrated circuits; embedded architectures)
Chandra Krintz, Ph.D., University of California, San Diego, Assistant Professor (dynamic and adaptive compilation systems, high-performance internet (mobile) computing, runtime and compiler optimizations for Java/CIL, efficient mobile program transfer formats)
Malgorzata Marek-Sadowska, Ph.D., Technical University of Warsaw, Poland, Professor (design automation, computer-aided design, integrated circuit layout, logic synthesis)
P. Michael Melliar-Smith, Ph.D., University of Cambridge, Professor (fault tolerance, formal specification and verification, distributed systems, communication networks and protocols, asynchronous systems)
Louise E. Moser, Ph.D., University of Wisconsin, Professor (distributed systems, computer networks, software engineering, fault-tolerance, formal specification and verification, performance evaluation)
Behrooz Parhami, Ph.D., UC Los Angeles, Professor (parallel architectures and algorithms, computer arithmetic, computer design, dependable and fault-tolerant computing)
Volkan Rodoplu, Ph.D., Stanford University, Assistant Professor (wireless networks, energy-efficient and device-adaptive communications)
Tim Sherwood, Ph.D., UC San Diego, Assistant Professor (computer architecture, dynamic optimization, network and security processors, embedded systems, program analysis and characterization, and hardware support of software systems)
Li-C. Wang, Ph.D., University of Texas at Austin, Associate Professor (design verification, testing, computer-aided design of microprocessors)
Richard Wolski, Ph.D., UC Davis/Livermore, Associate Professor (high-performance distributed computing, computational grids, computational economies for resource allocation and scheduling)
Patrick Yue, Ph.D., Stanford University, Associate Professor (high-speed CMOS IC design, cell-based RF CAD methodology and integrated biomedical sensors)
Ben Zhao, Ph.D., University of California, Berkeley, Assistant Professor (computer/overlay/mobile networking, large-scale distributed systems, operating systems, network simulation and modeling)
Heather Zheng, Ph.D., University of Maryland, College Park, Assistant Professor (wireless/mobile/ad hoc networking, cognitive radio and dynamic spectrum networks, multimedia communications, security, game theory, algorithms, network simulation and modeling)
The Computer Engineering major’s objective is to educate broadly based engineers with an understanding of digital electronics, computer architecture, system software and integrated circuit design. These topics bridge traditional electrical engineering and computer science curricula. The Computer Engineering degree program is conducted jointly with faculty from the Department of Computer Science and the Department of Electrical and Computer Engineering. Computer engineers emerging from this program will be able to design and build integrated digital hardware and software systems in a wide range of applications areas. Computer engineers will seldom work alone and thus teamwork and project management skills are also emphasized. The undergraduate major in Computer Engineering prepares students for a wide range of positions in business, government and private industrial research, development and manufacturing organizations.
Under the direction of the Associate Dean for Undergraduate Studies, academic advising services are jointly provided by advisors in the College of Engineering, as well as advisors in the department. Faculty advisors are also available to help with academic program planning. Students who hope to change to this major should consult the department advisor.
To prepare our students to reach their full potential in computer engineering research and industrial practice through a curriculum emphasizing the mathematical tools, scientific basics, fundamental knowledge, engineering principles, and practical experience in the field.
The Computer Engineering Program seeks to impart to each student:
- Broad knowledge in the fundamental theories, techniques, and tools relating to computer engineering.
- The ability to apply computer engineering principles in solving problems, creating products, and improving performance in hardware and software applications.
- A continuing commitment to the advancement of science, lifelong education, professionalism, and interest in education and mentoring for the coming generations of students
- An understanding of the social, business, technical, and human context of the world in which their engineering contributions will be utilized.
Upon completion of this program, students will have:
-
Acquired strong basic knowledge and skills in those fundamental areas of mathematics, science, and engineering necessary to facilitate specialized professional training at an advanced level. Developed a recognition of the need for and the ability to engage in lifelong learning.
-
Experienced in-depth training in state-of-the-art specialty areas in computer engineering.
-
Benefited from hands-on, practical laboratory experiences where appropriate throughout the program. The laboratory experiences will be closely integrated with coursework and will make use of up-to-date instrumentation and computing facilities. Students will have completed both hardware-oriented and software-oriented assignments.
-
Experienced design-oriented challenges that exercise and integrate skills and knowledge acquired during their course of study. These challenges may include design of components or subsystems with performance specifications. Graduates should be able to demonstrate an ability to design and test a system, analyze experimental results, and draw logical conclusions from them.
-
Learned to function well in multidisciplinary teams and collaborative environments. To this end, students must develop communication skills, both written and oral, through teamwork and classroom participation. Teamwork and individual originality will be evidenced through written reports, webpage preparation, and public presentations.
-
Completed a well-rounded and balanced education through required studies in selected areas of fine arts, humanities, and social sciences. This outcome provides for the ability to understand the impact of engineering solutions in a global and societal context. A required course in engineering ethics will have prepared students for making professional contributions while maintaining institutional and individual integrity.
Requirements for Advancing to the Computer Engineering Major from the Computer Engineering Pre-Major
Students intending to major in computer engineering should declare the pre-major when applying for admission to the university. It is strongly recommended that incoming freshmen complete a computer programming class prior to enrollment at UCSB. We recommend a Java course with emphasis in programming or a C++ programming course.
Students may petition to advance from the computer engineering pre-major to the computer engineering major when they have met either of the following requirements:
Option A: Satisfactory completion at UCSB of at least six core classes required as preparation for the computer engineering major with a grade-point-average of at least 3.0. The core classes are: Mathematics 3A, 3B, 3C, 5A; Computer Science 10, 20, 40, 60; Electrical and Computer Engineering 2A, 2B, 2C, 15A, 15B. If the student has not attained the minimum 3.0 grade-point-average with the first six core classes completed, all core classes subsequently completed will be included in the grade-point-average computation.
Option B: Satisfactory completion of all thirteen core classes with a University of California grade-point-average of at least 2.75.
Requirements for Changing to Computer Engineering from Other Majors
Students may petition to enter the Computer Engineering pre-major at any time Option 1 below has been met, or they may petition to enter the full major when the requirements in Option 2 have been met.
Option 1:
-
An overall UCSB grade-point-average of at least 3.0; and,
-
Satisfactory completion at UCSB of at least four core classes required as preparation for the Computer Engineering major with a grade-point-average of at least 3.0 in all core classes completed. The core classes are: Mathematics 3A, 3B, 3C, 5A; Computer Science 10, 20, 40, 60; Electrical and Computer Engineering 2A, 2B, 2C, 15A, 15B. Once approved for the Computer Engineering pre-major, the student must meet the requirements above for advancing to the full major.
Option 2:
-
An overall UCSB grade-point-average of at least 3.0; and,
-
Satisfactory completion at UCSB of at least six of the core classes with a grade-point-average of at least 3.0. If the student has not attained the minimum 3.0 grade-point-average with the first six core classes completed, all core classes subsequently completed will be included in the grade-point-average computation; or,
-
Satisfactory completion of all thirteen core classes with a University of California grade-point-average of at least 2.75.
Please Note: Pre-major status does not guarantee admission to major status. To be admitted to the major, the student must meet the requirements described in Option A or B or 2 above. No exceptions will be made to the GPA rule.
Students who have completed more than 105 units will not be considered for a change of major/change of college unless they can demonstrate that they will be able to complete all the degree requirements for the proposed program without exceeding 200 total units.
Note: Schedules should be planned to meet both General Education and major requirements. Detailed descriptions of these requirements are presented in the College of Engineering Announcement and General Education booklet.
Bachelor of Science--Computer Engineering
The curriculum contains a core required of all computer engineers, a choice of at least 32 units of senior year elective courses including completion of two out of eight elective sequences and a senior year capstone design project.
Because the Computer Engineering degree program is conducted jointly by the Department of Computer Science and the Department of Electrical and Computer Engineering, several of the upper-division courses have equivalent versions offered by ECE or CMPSC. These courses are considered interchangeable, but only one such course of a given equivalent ECE/CMPSC pair may be taken for credit.
Courses required for the major, whether inside or outside of the Departments of Electrical and Computer Engineering or Computer Science, must be taken for letter grades. They cannot be taken for the passed/not passed grading option.
Preparation for the major
All undergraduate Computer Engineering majors are required to meet a set of minimum unit and grade-point requirements and a set of General Education requirements which are common to all undergraduate majors in the College of Engineering. In addition, required preparation for the major consists of the following lower-division courses (or their equivalents if taken elsewhere): Chemistry 1A-B, 1AL-BL; Computer Science 10, 20, 40, 60; ECE 2A-B-C, 15A-B; Mathematics 3A-B-C, 5A; Physics 1, 2, 3, 4, 3L, 4L.
The program academic advisor can suggest a recommended study plan for Computer Engineering freshmen and sophomores. Each student is assigned a departmental faculty advisor who must be consulted in planning the junior and senior year programs.
Upper-division major
The upper-division requirements consist of a set of required courses and a minimum of 32 units of additional departmental elective courses comprised of at least two sequences chosen from a set of eight specialty sequences. Each sequence must consist of two or more courses taken from the same course/sequence group. The department electives must also include a capstone design project (CMPSC 189A-B/ECE 189A-B). Upper-division courses required for the major are: Computer Science 130A, 170; ECE 152A-B, 154, either ECE 139 or PSTAT 120A; Engineering 101.
The required departmental electives are taken primarily in the senior year; they permit students to develop depth in specialty areas of their choice. A student’s elective course program and senior project must be approved by a departmental faculty advisor. A variety of elective programs will be considered acceptable. Sample programs include those with emphasis in: computer-aided design (CAD); computer systems design; computer networks; distributed systems; programming languages; real-time computing and control; multimedia; and very large-scale integrated (VLSI) circuit design.
The defined sequences from which upper-division departmental electives may be chosen are:
- Computer-Aided Design (CAD): ECE 156A-B
- Computer Systems Design: ECE/CMPSC 153A, ECE 153B
- Computer Networks: ECE 155A/CMPSC 176A, ECE 155B/CMPSC 176B
- Distributed Systems: ECE 151/CMPSC 171 and one or both of the Computer Networks courses
- Programming Languages: CMPSC 160, 162
- Real-Time Computing & Control: ECE 147A-B, 157
- Multimedia: ECE 178, ECE/CMPSC 181B, ECE 160/CMPSC 182
- VLSI: ECE 124A, 124D
Satisfactory Progress and Prerequisites
A majority of Computer Science and Electrical and Computer Engineering courses have prerequisites which must be completed successfully. Successful completion of prerequisite classes requires a grade of C or better in Mathematics 3A-B-C and a grade of C- or better in ECE classes. Students will not be permitted to take any ECE or CMPSC course if they received a grade of F in one or more of its prerequisites. Students who fail to maintain a grade-point average of at least 2.0 in the major may be denied the privilege of continuing in the major.
Five-Year Bachelor of Science/Master of Science Program
A combined B.S./M.S. program in Computer Engineering provides an opportunity for outstanding undergraduates to earn both degrees in five years. The M.S. degree will be earned in either the Department of Computer Science or the Department of Electrical and Computer Engineering, while the B.S. degree is earned in Computer Engineering. Additional information about this program is available from the undergraduate office. Interested students should contact the undergraduate office early in their junior year because they need to plan their junior year classes differently from other undergraduates. Transfer students should notify the office of their interest in the program at the earliest possible opportunity. In addition to fulfilling undergraduate degree requirements, B.S./M.S. degree candidates must meet Graduate Division degree requirements, including university requirements for academic residence and units of coursework as described in the section "Graduate Education at UCSB.”
Return to Top of Page
Computer Engineering Courses
See listings for Computer Science and Electrical and Computer Engineering Departments.

