Computer Engineering

Catalog Home

Engineering East Building (20), Room 215
Phone: 805.756.1229
https://cpe.calpoly.edu

Department Chair: Lynne Slivovsky

Engineering Student Services
Engineering South (40), Room 115
Phone: 805.756.1461

Academic Program

Program name Program type
Computer Engineering BS

The mission of the Computer Engineering Program (CPE) is to provide students with a well-rounded education encompassing the theory and practice of selected, balanced topics in electrical engineering and computer science, to enable students to contribute and continue their education in a wide range of computer-related engineering careers. The program seeks to emphasize “hands-on” experience, problem solving skills, the creative process and responsible action. Through professional development activities, faculty contribute to the advancement of the state-of-the-art, and strive to directly incorporate this experience in the classroom.

Four educational objectives inspire alumni of the Cal Poly Computer Engineering program to excel professionally:

  1. Make positive contributions to society and the practice of computer engineering by applying foundational knowledge and the engineering process to solve engineering problems.
  2. Work in an individual or team environment in a socially responsible manner.
  3. Engage in lifelong learning through continued professional development or graduate studies.
  4. Communicate effectively and demonstrate leadership.

The program prepares graduates for professional practice in industry, as well as continued study in graduate school. Cal Poly’s “learn by doing” philosophy is emphasized by integrating design throughout the curriculum, especially in the numerous design-centered laboratories. In the required senior capstone experience, which is a group-project based course completed over two quarters, students demonstrate their understanding of engineering knowledge and their ability to apply that knowledge creatively to practical problems.

This integrated approach allows students to work effectively in such diverse areas as digital systems simulation and digital control systems. Knowledge and laboratory experience in computer architecture and structures provide the understanding necessary to design and build computer systems, computer networks and digital communications systems. A thorough knowledge of modern microprocessors and microcontrollers enables the graduate to apply these techonolgies in applications such as robotics, medical and data acquisition. Twelve units of technical electives allow students the option to specialize in an area of special interest. Current areas of special interest include:

  • robotics
  • embedded systems
  • computer architecture
  • computer networks
  • computer based controls
  • software systems
  • graphics and multimedia
  • electronics implementation and VLSI

In addition to a sound theoretical background in computer engineering concepts, students experience practical design courses intended to build problem solving skills. Laboratory courses supplement the program to develop “hands on” skills in all areas of study. Students are exposed to a wide variety of computing equipment: microprocessor development systems, workstations and personal computers, and advanced network hardware and software.

Active student groups of interest to computer engineering majors include the Computer Engineering Society, the IEEE Student Branch, the Association for Computing Machinery, the Society of Women Engineers, Women Involved in Software and Hardware, and many other project-oriented student clubs and activities.

For more information about the CPE program, please visit https://eadvise.calpoly.edu.

Undergraduate Program

BS Computer Engineering

The Bachelor of Science in Computer Engineering prepares students interested in the design and application of computers and computer-based systems. The program incorporates a firm foundation in both electrical engineering and computer science, with a focus on the integration of hardware and software systems. 

Degree Requirements and Curriculum

Blended and Graduate Programs

Graduates of the Computer Engineering Program are qualified for admission to Cal Poly master’s degree programs in electrical engineering, computer science, general engineering, and biomedical engineering.

The opportunity also exists for advanced students to begin graduate study in these areas prior to completion of the BS degree, via a blended program. This provides a number of advantages to qualified students, and makes it possible for completion of both the BS and MS degrees in as little as five years. Computer engineering students participating in a blended program are permitted to fulfill the computer engineering senior project requirement with the master’s degree thesis. Students must be prepared for engineering practice via the curriculum which culminates in a major design experience based on the knowledge and skills acquired in earlier coursework and incorporating engineering standards and realistic constraints, as listed in the ABET Engineering Criteria. Further details are provided in the graduate study sections for each of these programs.

How to Read Course Descriptions

CPE Courses

CPE 100. Computer Engineering Orientation. 1 unit

Term Typically Offered: F

CR/NC

Introduction to the computer engineering discipline. Success skills and curricular information. Career paths and opportunities. Professional aspects of engineering and computer science. Interaction with upper division students, alumni, faculty and staff. Introduction to computer software and hardware. Credit/No Credit grading only. 1 lecture.

CPE 101. Fundamentals of Computer Science. 4 units

Term Typically Offered: F, W, SP

Prerequisite: Appropriate Math Placement Level; or MATH 117 with a grade of C- or better; or MATH 118 with a grade of C- or better; or consent of instructor.

Basic principles of algorithmic problem solving and programming using methods of top-down design, stepwise refinement and procedural abstraction. Basic control structures, data types, and input/output. Introduction to the software development process: design, implementation, testing and documentation. The syntax and semantics of a modern programming language. Credit not available for students who have taken CSC/CPE 108. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 101.

CPE 123. Introduction to Computing. 4 units

Term Typically Offered: F, W

Prerequisite: Basic computer literacy.

Use of a supportive software development environment to design, develop, and test applications in a selected topic domain that demonstrates the potential of careers in computing. An introduction to computing and to the selected topic domain. The Class Schedule will list topic selected. No programming experience required. Not for students with credit in CPE/CSC 103 or CPE/CSC 203. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 123.

CPE 133. Digital Design. 4 units

Term Typically Offered: F,W,SP,SU

Prerequisite: An orientation course in student's major (EE 111 and EE 151; or CPE 100) and CPE/CSC 101.

Number systems, Boolean algebra, Boolean functions, and function minimization. Analysis and design of combinational and sequential digital logic circuits. Hardware Description Language (HDL) concepts and applications digital design and synthesis in FPGAs. Course may be offered in classroom-based, online, or hybrid format. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 133.

CPE 200. Special Problems for Undergraduates. 1-2 units

Term Typically Offered: F,W,SP,SU

Prerequisite: Consent of instructor.

Individual investigation, research, studies, or surveys of selected problems. Total credit limited to 4 units, with a maximum of 2 units per quarter.

CPE 202. Data Structures. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CPE/CSC 101 with a grade of C- or better; or consent of instructor.

Introduction to data structures and analysis of algorithms. Abstract datatypes. Specification and implementation of advanced data structures. Theoretical and empirical analysis of recursive and iterative algorithms. Software performance evaluation and testing techniques. Not open to students with credit in CSC/CPE 108. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 202.

CPE 203. Project-Based Object-Oriented Programming and Design. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CPE/CSC 202 with a grade of C- or better or consent of instructor.

Object-oriented programming and design with applications to project construction. Introduction to class design, interfaces, inheritance, generics, exceptions, streams, and testing. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 203.

CPE 225. Introduction to Computer Organization. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CPE/CSC 202.

Introduction to computer systems. Simple instruction set architecture and the computer hardware needed to implement that architecture. Machine and assembly language programming. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 225.

CPE 233. Computer Design and Assembly Language Programming. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CPE/EE 133.

Design and implementation of digital computer circuits via CAD tools for programmable logic devices (PLDs). Basic computer design with its datapath components and control unit. Introduction to assembly language programming of an off-the-shelf RISC-based microcontroller. Not open to students with credit in CPE/EE 229. Course may be offered in classroom-based, online, or hybrid format. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 233.

CPE 290. Selected Topics. 1-4 units

Term Typically Offered: TBD

Prerequisite: Open to undergraduate students and consent of instructor.

Directed group study of selected topics. The Class Schedule will list topic selected. Total credit limited to 8 units. 1 to 4 lectures.

CPE 315. Computer Architecture. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC/CPE 102 and CSC/CPE 103, or CSC/CPE 202 and CSC/CPE 203; and one of the following: CSC 225, CPE/EE 229, or CPE/EE 233.

In-depth study of the instruction set architecture and hardware design of a specific CPU. Introduction to pipelines, input/output and multi-processors. Computer abstractions and performance measurement. Not open to students with credit in CPE 333. 3 lectures, 1 laboratory.

CPE 316. Microcontrollers and Embedded Applications. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CPE 357. Corequisite: EE 211 or EE 215.

Introduction to microcontrollers and their applications as embedded devices. Hardware/software tradeoffs, microcontroller selection, use of on-chip and off-chip peripherals, interrupt driven real-time operation, A/D conversion, serial and parallel communications, watch-dog timers, and low power operation. Not open to students with credit in CPE 329 or CPE 336. 3 lectures, 1 laboratory.

CPE 321. Introduction to Computer Security. 4 units

Term Typically Offered: F, W

Prerequisite: CPE/CSC 357.

Survey of topics in computer system and network security, including protection, access control, distributed access control, operating system security, applied cryptography, network security, firewalls, secure coding practices, and case studies from real-world systems. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 321.

CPE 327. Digital Signals and Systems. 3 units

Term Typically Offered: F, W

Prerequisite: EE 212 or EE 215; and MATH 244. Concurrent: CPE 367.

Signal and system description and analysis, with emphasis on discrete-time signals and linear time-invariant (LTI) systems. Sampling theorem. Frequency spectrum, Convolution and its application to LTI systems. The z transform, discrete-time Fourier transform, and discrete Fourier transform. Introduction to digital filters. 3 lectures. Crosslisted as CPE/EE 327.

CPE 328. Discrete Time Signals and Systems. 3 units

Term Typically Offered: F, W, SP

Prerequisite: BMED 355 or EE 228. Concurrent: CPE/EE 368.

Discrete-time systems and analysis, with emphasis on linear time-invariant (LTI) systems. Sampling theorem. Classification of discrete-time systems. Convolution and its application to LTI systems. The z transform, discrete-time Fourier transform, and discrete Fourier transform. Introduction to digital filters. Not open to students with credit in CPE 327. 3 lectures. Crosslisted as CPE/EE 328.

CPE 329. Microcontroller-Based Systems Design. 4 units

Term Typically Offered: F, SP

Prerequisite: CPE/EE 233; EE 307 and EE 347.

Design, implementation and testing of microcontroller-based systems. Hardware and C software for embedded systems to sense and actuate external devices. I/O common embedded systems to interface I/O devices and protocols. Analysis of power consumption. Ethics. Not open to students with credit in CPE/EE 336. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 329.

CPE 333. Computer Hardware Architecture and Design. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CPE 101, CPE 233.

Study of a hardware design of a specific CPU. Pipelining, input/output, multi-processors, and performance measurement. Implementation of CPU architectural and computer components using hardware-description languages and development board platforms. Not open to students with credit in CPE 315. 3 lectures, 1 laboratory.

CPE 336. Microprocessor System Design. 4 units

Term Typically Offered: F, SP

Prerequisite: CPE/EE 233.

Introduction to microcontrollers and integrated microprocessor systems. Hardware/software trade-offs, system economics, and functional configurations. Interface design, real-time clocks, interrupts, A/D conversion, serial and parallel communications, watch-dog timers, low power operation, event-based inter-peripheral communication, and assembly and higher-level language programming techniques. Architecture and design of sampled data and low-power systems. Not open to students with credit in CPE/EE 329. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 336.

CPE 345. Quantum Computing. 4 units

Term Typically Offered: SP

Prerequisites: MATH 206 or MATH 244; and CHEM 353 or PHYS 211.

Quantum mechanical wave functions. Principle of superposition and entanglement. States of one or more quantum bits. Quantum gates and circuits. Application of quantum gates on simulators and quantum computers. Quantum computer architectures. Quantum algorithms. Ethics of quantum computing. 3 lectures, 1 activity. Crosslisted as CPE/PHYS 345.

CPE 350. Capstone I. 4 units

Term Typically Offered: F

Corequisite: CPE 316 or EE 329.

Definition and specification of a system to be constructed in CPE 450; requirements elicitation techniques, research and data gathering methods; project planning, time and budget estimating; project team organization. Ethics and professionalism. 3 lectures, 1 laboratory.

CPE 357. Systems Programming. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC/CPE 102 and CSC/CPE 103 with a grade of C- or better or consent of instructor, or CSC/CPE 202 and CSC/CPE 203 with a grade of C- or better or consent of instructor; and CSC 225 or CPE/EE 229 or CPE/EE 233.

C programming language from a system programming perspective. Standard C language including operators, I/O functions, and data types in the context of system functions. Unix commands, shell scripting, file system, editors. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 357.

CPE 367. Digital Signals and Systems Laboratory. 1 unit

Term Typically Offered: F, W

Prerequisite: EE 242 or EE 245. Concurrent: CPE 327.

Laboratory work pertaining to discrete-time signals and linear systems; including frequency response and Fourier spectral analysis, signal sampling and aliasing, digital signal processing techniques, and digital filter design and implementation. 1 laboratory. Crosslisted as CPE/EE 367.

CPE 368. Signals and Systems Laboratory. 1 unit

Term Typically Offered: F, W, SP

Prerequisite: BMED 355 or EE 228. Concurrent: CPE/EE 328.

Laboratory work pertaining to linear systems, including Fourier analysis, time and frequency responses, and system transfer function. Not open to students with credit in CPE 367. 1 laboratory. Crosslisted as CPE/EE 368.

CPE 400. Special Problems for Undergraduates. 1-4 units

Term Typically Offered: F,W,SP,SU

Prerequisite: Consent of instructor.

Individual investigation, research, studies, or surveys of selected problems. Total credit limited to 4 units.

CPE 414. Robotic Systems Integration. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/EE 329 or CPE/CSC 357 or ME 305.

Integration of sensors, actuators, chassis, and Linux-based computational platforms into functioning autonomous robotic systems. Embedded Linux system programming, inter-process software communication, basic sensor fusion techniques, Pulse Width Modulation (PWM) motor actuation, and web-based interfacing for remote system way-pointing and monitoring. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 414.

CPE 416. Autonomous Mobile Robotics. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/EE 329 or CPE 316; or CPE 315 and CPE/CSC 357.

Theory and application of concepts relevant to autonomous mobile robots. Sensor and actuator interfacing, programming mobile robots, mobile robot configurations, software architectures and algorithms. 3 lectures, 1 laboratory.

CPE 419. Applied Parallel Computing. 4 units

Term Typically Offered: F, SP

Prerequisite: CPE/CSC 357. Corequisite: CSC 248 or CSC 348. Recommended: CPE 315.

Introduction to applied parallel computing paradigms: software models, resource allocation, performance measurement, and data sharing. Emphasis on massively parallel computation and performance improvement for a real-world application of significant scope. 3 lectures, 1 laboratory.

CPE 422. Network Security. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC 364 or CPE 464.

Introduction to network security, including denial of service, botnets, access control, routing attacks, transport layer attacks, tunneling mechanisms, VPNs, IDS, firewalls, penetration testing, key distribution, email security, jamming, and wireless security. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 422.

CPE 425. Wireless Security. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/CSC 321. Recommended: CSC 300 or PHIL 323; CSC 364 or CPE 464.

Comprehensive overview of wireless networks and system security. Security issues and solutions in emerging wireless access networks and systems as well as multi-hop wireless networks. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 425.

CPE 426. Introduction to Hardware Security. 4 units

Term Typically Offered: SP

Prerequisite: CPE 315 or CPE 333; and CPE 233.

An introduction to hardware security from embedded systems to secure VHDL design. Topics may include digital rights management, hardware based trojans, hardware implementation of cryptography, sidechannel attacks, secure communication protocols, hardware based overflow detection, physical device verification, and physically unclonable functions. 3 lecture, 1 laboratory.

CPE 428. Computer Vision. 4 units

Term Typically Offered: F, W

Prerequisite: CPE 327 or CPE/CSC 357 or EE 328 or ME 305.

Introduction to the concepts of 2D and 3D computer vision: low-level image processing methods such as filtering and edge detection; feature extraction; segmentation and clustering; stereo vision; appearance-based and model-based algorithms. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 428.

CPE 431. Compiler Construction. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC 430.

Intermediate code representations, memory management, functions and parameter passing, code transformations and optimizations, code generation, register allocation. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 431.

CPE 432. Digital Control Systems. 3 units

Term Typically Offered: F

Prerequisite: EE 302 and EE 342; or CPE 327 and CPE 367. Concurrent: CPE/EE 472. Recommended: EE 328 and EE 368.

Theory and applications of digital computers in linear control systems. Analysis and design of microprocessor-based controls. Introduction of continuous and discrete transform methods for design of closed-loop dynamic systems. Applications in robotics, automotive, aircraft and industrial process control. 3 lectures. Crosslisted as CPE/EE 432.

CPE 439. Introduction to Real-Time Operating Systems. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/EE 329 or CPE 316.

Theory, design and implementation of real-time operating system-based embedded systems. Scheduling algorithms, operating system resources, peripheral device interfacing and embedded system architecture. Resource management issues in a resource-limited (microcontroller-based) environment. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 439.

CPE 441. Computer-Aided Design of VLSI Devices. 4 units

Term Typically Offered: F

Prerequisite: EE 307 and EE 347. Recommended: EE 308 and EE 348, for students interested in analog design.

Design of VLSI circuits using state-of-the-art CAD software. Design issues and algorithms related to design using CAD. Full custom design through automated design and a major multi-week chip design project in lab. 3 lectures, 1 laboratory. Crosslisted as CPE 441/EE 431.

CPE 442. Real Time Embedded Systems. 4 units

Term Typically Offered: F

Prerequisite: CPE/EE 329 or CPE/EE 336 or CPE 316.

Theory, design and implementation of modern embedded systems. Scheduling algorithms and operating system resources. System on Chip (SoC) design issues such as interfacing with custom hardware description language (HDL) peripherals, high-performance chip interconnect standards, energy use, area, and hardware versus software performance trade-offs. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 442.

CPE 446. Design of Fault-Tolerant Digital Systems. 4 units

Term Typically Offered: F

Prerequisite: CPE/EE 329 or CPE/EE 336 or CPE 316. Recommended: STAT 350.

Hardware and software fault tolerance concepts: fault models, coding in computer systems, module and system level fault detection mechanisms, reconfiguration techniques for general purpose processors and ASICs, and software fault tolerance techniques such as recovery blocks, N-version programming, checkpointing, and recovery. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 446.

CPE 447. Stringed Musical Instrument Acoustics, Mechanics, and Transducer Design. 4 units

Term Typically Offered: TBD

Prerequisite: EE/CPE 329 or EE/CPE 336 or CPE 316 or ME 305.

Acoustics, sound production, and transducer design in the context of stringed musical instruments. Introduces music theory, scales and temperament, sound radiation, structural dynamics of stringed instruments. Integrates engineering topics including frequency spectrum analysis, electromagnetics, properties of materials, digital and analog circuit design. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 447.

CPE 450. Capstone II. 3 units

Term Typically Offered: W

Prerequisite: CPE 350.

Team-based design, construction and deployment of an embedded system that includes a custom-built computer. Technical management of product development teams. Technical documentation, configuration management, quality assurance, integration and systems testing. Professionalism. 1 lecture, 2 laboratories.

CPE 453. Introduction to Operating Systems. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC/CPE 357; and CSC 225, CPE/EE 229, or CPE/EE 233.

Introduction to sequential and multiprogramming operating systems; kernel calls, interrupt service mechanisms, scheduling, files and protection mechanisms, conventional machine attributes that apply to operating system implementation, virtual memory management, and I/O control systems. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 453.

CPE 454. Implementation of Operating Systems. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 453.

Design and implementation of multiprogramming kernels, systems programming methodology, interprocess communications, synchronization, device drivers and network access methods. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 454.

CPE 458. Current Topics in Computer Systems. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 357.

Selected aspects of design, implementation and analysis of networks, advanced operating and distributed systems. Topics may include process management, virtual memory, process communication, context switching, file system designs, persistent objects, process and data migration, load balancing, security and networks. The Class Schedule will list topic selected. Total credit limited to 8 units. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 458.

CPE 461. Senior Project I. 3 units

Term Typically Offered: F,W,SP,SU

Prerequisite: CPE 350.

Selection and completion of an individual or team project. Project results are presented in a formal report.

CPE 462. Senior Project II. 2 units

Term Typically Offered: F,W,SP,SU

Prerequisite: CPE 450.

Selection and completion of an individual or team project. Project results are presented in a formal report.

CPE 464. Introduction to Computer Networks. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC/CPE 357. Recommended: STAT 312 or STAT 321 or STAT 350.

Computer network architectures; communications protocol standards; services provided by the network; historical and current examples presented. 3 lectures, 1 laboratory.

CPE 465. Advanced Computer Networks. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 453; and CSC 364 or CPE 464.

Advanced topics in computer networks; greater detail of protocol standards and services provided by the network; focus on current industry and research topics. 3 lectures, 1 laboratory.

CPE 469. Distributed Systems. 4 units

Term Typically Offered: SP

Prerequisite: CSC/CPE 357.

Foundations of distributed systems, distributed hash tables (peer-to-peer systems), failure detectors, synchronization, election, inter-process communication, consensus, replication, key-value stores, and measurements. 3 lectures, 1 laboratory. Crosslisted as CSC/CPE 469.

CPE 470. Selected Advanced Topics. 1-4 units

Term Typically Offered: TBD

Prerequisite: Consent of instructor.

Directed group study of selected topics for advanced students. Open to undergraduate and graduate students. The Class Schedule will list topic selected. Total credit limited to 8 units. 1 to 4 lectures.

CPE 471. Introduction to Computer Graphics. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CPE/CSC 357.

Graphics software development and use of application programming interfaces for 3D graphics. The graphics pipeline, modeling, geometric and viewing transforms, lighting and shading, rendering, interaction techniques and graphics hardware. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 471.

CPE 472. Digital Control Systems Laboratory. 1 unit

Term Typically Offered: F

Concurrent: CPE/EE 432.

Design and programming of microprocessor-based digital controls for electro-mechanical plants. Topics include digital control laws, translation of transfer functions into algorithms, assembly language programming, real-time software design, sample rate selection, finite word-length considerations. 1 laboratory. Crosslisted as CPE/EE 472.

CPE 476. Real-Time 3D Computer Graphics Software. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 471.

Basic and advanced algorithms for real-time, interactive, 3D graphics software. Modeling (polygon mesh, height field, scene graph), real-time rendering and shading (visibility processing, LOD, texture and light maps), collision detection (bounding volumes, complexity management), interactive controls, multi-player game technology, game engine architecture. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 476.

CPE 479. Selected Advanced Laboratory. 1-4 units

Term Typically Offered: TBD

Prerequisite: Consent of instructor.

Directed group laboratory study of selected topics for advanced students. Open to undergraduate and graduate students. The Class Schedule will list topic selected. Total credit limited to 8 units. 1 to 4 laboratories.

CPE 488. Microelectronics and Electronics Packaging. 4 units

Term Typically Offered: F, W, SP

Prerequisite: EE 112 or EE 113 or EE 201. Recommended: MATE 210.

Materials, processes, and reliability of microelectronics and electronics packaging, surface mount assembly and printed circuit board fabrication. Organic substrates and ceramic substrates. Mechanical design, thermal, and electrical considerations in electronic packaging. Design for manufacturability. Overview of optoelectronics packaging and other emerging technologies in microelectronics and electronic packaging. Project on design and manufacture of an electronic device. 3 lectures, 1 laboratory. Crosslisted as CPE 488/IME 458/MATE 458.

CPE 493. Cooperative Education Experience. 2 units

Term Typically Offered: F,W,SP,SU

CR/NC

Prerequisite: Sophomore standing and consent of instructor.

Part-time work experience in business, industry, government, and other areas of student career interest. Positions are paid and usually require relocation and registration in course for two consecutive quarters. Formal report and evaluation by work supervisor required. Credit/No Credit grading only. No major credit allowed; total credit limited to 6 units.

CPE 494. Cooperative Education Experience. 6 units

Term Typically Offered: F,W,SP,SU

CR/NC

Prerequisite: Sophomore standing and consent of instructor.

Full-time work experience in business, industry, government, and other areas of student career interest. Positions are paid and usually require relocation and registration in course for two consecutive quarters. Formal report and evaluation by work supervisor required. Credit/No Credit grading only. No major credit allowed; total credit limited to 18 units.

CPE 495. Cooperative Education Experience. 12 units

Term Typically Offered: F,W,SP,SU

CR/NC

Prerequisite: Sophomore standing and consent of instructor.

Full-time work experience in business, industry, government, and other areas of student career interest. Positions are paid and usually require relocation and registration in course for two consecutive quarters. A more fully developed formal report and evaluation by work supervisor required. Credit/No Credit grading only. No major credit allowed; total credit limited to 24 units.

CPE 515. Computer Architecture. 4 units

Term Typically Offered: W

Prerequisite: CPE 315 or CPE 333, and graduate standing; or consent of instructor.

Comparative study and design of multiprocessor, dataflow, RISC, high level language and other new computer architectures. VLSI processor design techniques. 3 seminars, 1 laboratory. Crosslisted as CPE/CSC 515.

CPE 521. Computer Systems. 4 units

Term Typically Offered: TBD

Prerequisite: CPE 316 or CPE/EE 329; and CPE 315 or CPE 333; graduate standing or consent of instructor.

Organization of modern general purpose, high speed digital computer systems. Design of arithmetic units, control units, memories and memory subsystems. Cost, power and speed trade-offs in the design of such systems. 3 seminars, 1 laboratory. Crosslisted as CPE/EE 521.

CPE 522. Advanced Real-Time Operating Systems Design. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/EE 439.

Define and implement a microcontroller-based Real-Time Operating System (RTOS). Advanced real-time concepts, kernel structure, task and time management, various intertask communication constructs including semaphores, queues and mailboxes. Scheduler design, memory management and shared resource management in a resource-constrained microcontroller environment. 3 seminars, 1 laboratory. Crosslisted as CPE/EE 522.

CPE 523. Digital Systems Design. 4 units

Term Typically Offered: TBD

Prerequisite: CPE 316 or CPE/EE 329; and graduate standing.

Full-custom design and analysis of digital circuits using full CMOS, pass-transistor and dynamic circuit topologies. Transistor sizing for minimizing power consumption, delay and other design criteria. 3 seminars, 1 laboratory. Crosslisted as CPE/EE 523.

CPE 532. VLSI Circuit Testing. 1 unit

Term Typically Offered: F

Prerequisite: EE 531/CPE 541.

Characterization, testing and documentation of custom-fabricated Very Large Scale Integrated (VLSI) circuits. Use of specialized test equipment. 1 laboratory. Crosslisted as CPE/EE 532.

CPE 541. Advanced VLSI Design. 4 units

Term Typically Offered: W

Prerequisite: CPE 441/EE 431.

Advanced Very Large Scale Integrated (VLSI) design using state-of-the-art software. Advanced topics in digital, analog and mixed signal circuit design to enable a quarter-long design project culminating in a tapeout-ready integrated circuit design. 3 lectures, 1 laboratory. Crosslisted as CPE 541/EE 531.

CPE 542. Advanced Real Time Embedded Systems. 4 units

Term Typically Offered: W

Prerequisite: CPE/EE 442.

Advanced study and application of modern embedded systems. Memory bandwidth matching, clock-domain crossing, IP creation and verification, and student-led lectures on modern System on Chip (SoC) design topics. Building a prototype embedded system. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 542.

CPE 564. Computer Networks: Research Topics. 4 units

Term Typically Offered: TBD

Prerequisite: CSC 364 or CPE 464, and graduate standing; or consent of instructor.

Exploration of advanced topics in emerging computer networking technologies; focus on leading edge computer network research topics. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 564.

CPE 569. Distributed Computing. 4 units

Term Typically Offered: TBD

Prerequisite: CSC 248 or CSC 348; and CPE/CSC 357; or graduate standing and consent of instructor.

Principles and practices in distributed computing: interprocess communications, group communications, client-server model, distributed objects, message queue system, distributed services, mobile agents, object space, Internet protocols. Distributed algorithms: consensus protocols, global state protocols. Fault tolerance: classification of faults, replication. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 569.

Stephen Beard
B.S., California Polytechnic State University, San Luis Obispo, 2010 ; M.S., Princeton, 2011; Ph.D., 2019.

John M. Bellardo
B.S., California Polytechnic State University, San Luis Obispo, 1999; M.S., University of California, San Diego, 2001; Ph.D., 2006.

Bridget G. Benson
B.S., California Polytechnic State University, San Luis Obispo, 2005; M.S., University of California Santa Barbara, 2007; Ph.D., University of California, San Diego, 2010

Joseph Callenes-Sloan
B.S., Iowa State University of Science and Technology, Ames, 2007; M.S., University of Illinois at Urbana-Champaign, 2011; Ph.D., University of Illinois at Urbana-Champaign, 2013

John Clements
B.A., Princeton University, 1996; M.S., Rice University, 2001; Ph.D., Northeastern University, 2005.

Andrew R. Danowitz
B.S., Harvey Mudd College, Claremont, 2008; M.S., Stanford University, 2010; Ph.D., Stanford University, 2014.

Bruce E. DeBruhl
B.S. Kettering University, 2009; M.S. Carnegie Mellon University, 2013; Ph.D. 2015.

Fred DePiero
B.S., Michigan State University, 1985; M.S., Michigan State University, 1987; Ph.D., University of Tennessee, 1996

Dongfeng Fang
B.S., Harbin Institute of Technology, China, 2009; M.S., Shanghai University, China, 2014; Ph.D., University of Nebraska, 2019.

Foaad Khosmood
B.S., California Polytechnic State University, San Luis Obispo, 1999; M.S., 2005; Ph.D., University of California, Santa Cruz, 2011.

Bryan J. Mealy
B.S., California Polytechnic State University, San Luis Obispo, 1990; M.S., 1993; M.S., University of California, Santa Cruz, 1999; Ph.D., 2002.

John Y. Oliver
B.S., Boston University, 1998; M.S., University of California, Davis, 2006; Ph.D., University of California, Davis, 2007

John S. Seng
B.S., Northwestern University, 1997; M.S., University of California, San Diego, 1999; Ph.D., 2003.

Lynne A. Slivovsky
B.S., Purdue University, 1992; M.S., 1993; Ph.D., 2001.

Hugh M. Smith
B.S., Xavier University, 1985; M.S., Michigan State University, 1994; Ph.D., 1999.