CPE Courses
	
		CPE 1000 
		Computing Majors Orientation 
		(1 unit)
	
Term Typically Offered: F
Introduction to the computing majors. Community building, mentoring, personal well-being skills, academic success skills, and department, school, college, and university support resources. Importance of justice, equity, diversity, and inclusivity in computing. Societal responsibilities of computing practitioners. 1 lecture. Crosslisted as CPE/
CSC 1000. Formerly CPE 100.
	
		CPE 1024 
		Introduction to Computing 
		(2 units)
	
Term Typically Offered: F
Introduction to computing through hands-on activities. Highly supportive environment exploring authentic problems in computing topics developing skills and creating community. No programming experience required. The Class Schedule will list subtitle selected. Not open to students with credit in CPE/CSC 202 or 
CSC 2001. 1 lecture, 1 activity. Crosslisted as CPE/
CSC 1024. Formerly CPE/CSC 123.
	
		CPE 2050 
		System Software Mechanics 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 202 or CSC 2001 with a grade of C- or better. Systems-level considerations for software development. Tools for task automation, debugging, and program analysis. Introductory shell scripting. Explicit memory management and tracking errors. Programmatically interfacing with the operating system. Introductory process management. 2 lectures, 1 activity. Crosslisted as CPE/
CSC 2050. Replaced CPE/CSC 357.
	
		CPE 2300 
		Introduction to Computer Systems 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 101 or CSC 1001. Study of the instruction set architecture of a computer system. Mapping high-level programming language statements to assembly language. Representation of simple data types and structures. Numerical computation and errors. Combinational and sequential logic. Procedure calling conventions. Device I/O interactions. Course may be offered in classroom-based or online format. 3 lectures. Formerly CPE/CSC 225.
	
		CPE 2301 
		Introduction to HDL and Digital Design Laboratory 
		(1 unit)
	
Term Typically Offered: F, SPCorequisite: CPE/CSC 225 or CPE 2300. Introduction to Hardware Description Language (HDL) concepts and applications, digital design, and synthesis with Field-programmable Gate Arrays (FPGA). Course may be offered in classroom-based, online, or hybrid format. 1 laboratory. Formerly CPE/EE 133.
	
		CPE 3160 
		Microcontrollers and Embedded Applications 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; and CPE/CSC 225, CPE/EE 233, or CPE 2300. Introduction to microcontrollers and their applications as embedded devices. Hardware/software tradeoffs, use of on-chip and off-chip peripherals including GPIO, timers, analog to digital (ADC) and digital to analog (DAC) converters, and serial buses (SPI, I2C, and USART). Not open to students with credit in CPE 329, CPE 336, or 
EE 3329. Course may be offered in classroom-based, online, or hybrid format. 2 lectures, 1 activity. Formerly CPE 316.
	
		CPE 3201 
		Introduction to Computer Security 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050. Survey of computer security, including protection, access control, applied cryptography, network security, secure coding practices, secure machine learning, privacy, and case studies from real-world systems. Course may be offered in classroom-based or online format. 3 lectures. Crosslisted as CPE/
CSC 3201. Formerly CPE/CSC 321.
	
		CPE 3300 
		Computer Architecture 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 101 and CPE/EE 233; or CPE 2300 and CPE 2301. Recommended: CPE/CSC 357 or CPE/CSC 2050. Basic computer organization and design, combinational and sequential logic analysis and design, computer arithmetic, control unit design, pipelining, interconnects, memory organizations, I/O design, energy/reliability/performance evaluation, parallel processing; Design, implementation, simulation, and layout of a computer. Course may be offered in classroom-based, online, or hybrid format. 3 lectures, 1 laboratory. Formerly CPE 333.
	
		CPE 3345 
		Quantum Computing 
		(3 units)
	
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. 2 lectures, 1 activity. Crosslisted as CPE/
PHYS 3345. Formerly CPE/PHYS 345.
	
		CPE 4140 
		Robotic Systems Integration 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: One of the following: CPE 316, CPE 3160, CPE/EE 329, or EE 3329. 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. Course may be offered in classroom-based, online, or hybrid format. 2 lectures, 1 activity. Formerly CPE/EE 414.
	
		CPE 4160 
		Autonomous Mobile Robotics 
		(4 units)
	
Term Typically Offered: TBDPrerequisite: CPE/EE 329, CPE 316, or CPE 3160. 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. Formerly CPE 416.
	
		CPE 4180 
		Advanced Microcontrollers and Embedded Applications 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: One of the following: CPE 316, CPE 3160, CPE/EE 329 or EE 3329. Advanced use of microcontrollers and application development as embedded devices. Hardware/software tradeoffs, DMA, low power modes, watchdog timers, using optimized libraries (ARM CMSIS). Data filtering for accelerometers, gyroscopes, and magnetometers. Wireless networking. Course may be offered in classroom-based, online, or hybrid format. 2 lectures, 1 activity. Replaced CPE/EE 522.
	
		CPE 4190 
		Applied Parallel Computing 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050. Corequisite: MATH 248 or MATH 2031. Recommended: CPE 333 or CPE 3300. 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. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Formerly CPE 419.
	
		CPE 4220 
		Network Security 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: One of the following: CSC 364, CSC 3001, CPE 464, or CPE 4464. Introduction to network security, exploring vulnerabilities and defenses in all layers of the OSI stack including the physical layer, link layer, network layer, transport layer, session layer, and applications. 2 lectures, 1 activity. Formerly CPE/CSC 422.
	
		CPE 4250 
		Wireless Security 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: CPE/CSC 321 or CPE/CSC 3201. Corequisite: PHIL 323 or PHIL 3323. 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. 2 lectures, 1 activity. Formerly CPE/CSC 425.
	
		CPE 4260 
		Interdisciplinary Privacy and Security Capstone I 
		(3 units)
	
Term Typically Offered: FPrerequisite: Senior standing; one of the following: CSC 320, CPE/CSC 321, CPE/CSC 3201, or CSC 3200; and PHIL 323 or PHIL 3323. Interdisciplinary security and privacy engineering with a customer. Design and implementation of a penetration testing plan with consideration of ethics, usability, and cost. Documentation, presentation, and communications to customers. Focus on managing security teams. 2 lectures, 1 laboratory. Crosslisted as CPE/
CSC 4260.
	
		CPE 4261 
		Senior Project - Privacy and Security Capstone II 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 4260. Interdisciplinary testing, analysis, and construction of a secure solution including analysis of the ethical, policy, and usability implications. Focus on effective documentation and communication with various customers and stakeholders. 2 lectures, 1 laboratory. Crosslisted as CPE/
CSC 4261.
	
		CPE 4280 
		Introduction to Hardware Security 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE 333 or CPE 3300; and CPE/EE 233, CPE/CSC 321, or CPE/CSC 3201. An introduction to hardware security from embedded systems to secure hardware design including hardware Trojans, hardware cryptography, side-channel attacks, physical device verification, and physically unclonable functions. 2 lectures, 1 activity. Formerly CPE 426.
	
		CPE 4300 
		Advanced Computer Architecture 
		(4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE 333 or CPE 3300. Advanced concepts in computer architecture. Design for thread-level parallelism, data-level parallelism, domain specific languages, large-scale computing, memory systems, and virtualization. Energy, reliability, security, and performance evaluation. Design and implementation of a custom computing system. Course may be offered in classroom-based, online, or hybrid format. 3 lectures, 1 laboratory. Formerly CPE 315.
	
		CPE 4310 
		Compiler Construction 
		(3 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; and CPE/CSC 225, CPE/EE 233, or CPE 2300. Design and construction of compilers. Concepts include syntactic analysis, semantics, code generation, and code transformations. Examine problems in processing languages. A complete compiler for a small language will be implemented. 2 lectures, 1 activity. Crosslisted as CPE/
CSC 4310. Formerly CPE/CSC 431.
	
		CPE 4390 
		Introduction to Real-Time Operating Systems 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: One of the following: CPE 316, CPE 3160, CPE/EE 329, or EE 3329. Theory, design, and implementation of embedded systems using a real-time operating system (RTOS). Real-time principles include multi-tasking, scheduling, and synchronization. Peripheral device interfacing and resource management issues in a resource-limited environment. Debugging complications and strategies with RTOS. Course may be offered in classroom-based, online, or hybrid format. 2 lectures, 1 activity. Formerly CPE 439.
	
		CPE 4400 
		Special Problems for Undergraduates 
		(1-4 units)
	
Term Typically Offered: F, SP, SU
Prerequisite: Consent of instructor.
Individual investigation, research, studies, or surveys of special problems. Repeatable up to 4 units. Formerly CPE 400.
	
		CPE 4420 
		High-Performance Embedded Systems 
		(3 units)
	
Term Typically Offered: FPrerequisite: One of the following: CPE 316, CPE 3160, CPE/EE 329, or EE 3329. Design and implementation of modern embedded systems. Operating system resources. Software optimization using threading and SIMD. Efficient use of modern multi-level computer memory systems from L1 cache to DRAM. Course may be offered in classroom-based, online, or hybrid format. 2 lectures, 1 activity. Formerly CPE/EE 442.
	
		CPE 4455 
		Design of Fault-Tolerant Systems 
		(4 units)
	
Term Typically Offered: FPrerequisite: One of the following: CPE 316, CPE 3160, CPE/EE 329, or EE 3329. Recommended: One of the following: STAT 350, STAT 3310, STAT 312, or STAT 3210. 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; software fault tolerance techniques such as recovery blocks, N-version programming, and checkpointing and recovery. Course may be offered in classroom-based, online, or hybrid format. 3 lectures, 1 laboratory. Crosslisted as CPE/
EE 4455. Formerly CPE/EE 446.
	
		CPE 4460 
		Capstone Senior Project I 
		(3 units)
	
Term Typically Offered: FPrerequisite: Senior standing; and one of the following: CPE 316, CPE 3160, CPE 333, CPE 3300, CPE/CSC 321, or CPE/CSC 3201. Team-based senior design project. Team development, customer development, and project development. Definition and system specification; requirements elicitation techniques, research and data gathering methods; project planning, time, and budget estimating; project team organization; prototyping. Ethics and professionalism. Course may be offered in classroom-based or online format. 1 lecture, 2 laboratories. Replaced CPE 350.
	
		CPE 4461 
		Capstone Senior Project II 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: CPE 350 or CPE 4460. Second of two courses taken sequentially in a team-based senior design project. Team development, customer development, and project development. Team-based design; project planning, time, and budget estimating; project team organization; prototyping; integration and testing. User and technical documentation. Ethics and professionalism. Course may be offered in classroom-based or online format. 1 lecture, 2 laboratories. Formerly CPE 450.
	
		CPE 4464 
		Introduction to Computer Networks 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050. Introduction to networks; network architectures, layer abstraction model, local area networks, wide area networks, internet architecture, communications protocol standards at OSI layers 2 - 4, wireless network protocols, historical and current examples presented. Application of network concepts. Course may be offered in classroom-based, online, or hybrid format. 2 lectures, 1 laboratory. Formerly CPE 464.
	
		CPE 4465 
		Advanced Computer Networks 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: One of the following: CSC 364, CSC 3001, CPE 464, or CPE 4464. Advanced topics in computer networks; greater detail of protocol standards and services provided by the network; focus on current industry trends. Course may be offered in classroom-based, online, or hybrid format. 2 lectures, 1 activity. Formerly CPE 465.
	
		CPE 4470 
		Special Advanced Topics 
		(1-4 units)
	
Term Typically Offered: TBD
Prerequisite: Consent of instructor.
Directed group study of special topics for advanced students. The Class Schedule will list topic selected. Repeatable up to 8 units. Course may be offered in classroom-based, online, or hybrid format. 1 to 4 lectures. Formerly CPE 470.
	
		CPE 4471 
		Special Advanced Laboratory 
		(1-2 units)
	
Term Typically Offered: TBD
Prerequisite: Consent of instructor.
Directed group laboratory study of special topics for advanced students. The Class Schedule will list topic selected. Repeatable up to 8 units. Course may be offered in classroom-based, online, or hybrid format. 1 to 2 laboratories. Formerly CPE 479.
	
		CPE 4472 
		Special Advanced Activity 
		(1-3 units)
	
Term Typically Offered: F
Prerequisite: Consent of instructor.
Directed group study of special topics for advanced students. The Class Schedule will list topic selected. Repeatable up to 8 units. Course may be offered in classroom-based, online, or hybrid format. 1 to 3 activities.
	
		CPE 4491 
		Seminar in Computer Engineering 
		(1 unit)
	
Term Typically Offered: F, SPPrerequisite: Consent of instructor. Recommended: CPE/CSC 357 or CPE/CSC 2050; and CPE/CSC 225, CPE/EE 233, or CPE 2300. Faculty supervised readings and discussion in Computer Engineering. Literature review, paper critique, searching academic databases, and preparing an annotated bibliography. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 seminar.
	
		CPE 4492 
		Research Experience in Computer Engineering 
		(1-2 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; and CPE/CSC 225, CPE/EE 233, or CPE 2300; and consent of instructor. Collaborative research activity under faculty supervision on a defined problem. Literature review, prototype development, analysis, documentation. Repeatable up to 4 units. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CPE 4493 
		Projects in Computer Engineering 
		(1-2 units)
	
Term Typically Offered: F, SP, SUCR/NCPrerequisite: CPE/CSC 357 or CPE/CSC 2050; and CPE/CSC 225, CPE/EE 233, or CPE 2300; and consent of instructor. Instructor-guided design and implementation of advanced projects in computer engineering. Projects selected from real-world computing problems. Focus on implementation, testing, and analysis of team-based projects. Each offering will select a different project. Repeatable up to 4 units. Credit/No Credit grading only. Course may be offered in classroom-based or online format. 1 to 2 lectures.
	
		CPE 4495 
		Cooperative Education Experience 
		(1-2 units)
	
Term Typically Offered: F, SP, SU
CR/NC
Prerequisite: 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. Formal report and evaluation by work supervisor required. Repeatable up to 4 units. Credit/No Credit grading only. Formerly CPE 493.
	
		CPE 4553 
		Introduction to Operating Systems 
		(3 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; and CPE/CSC 225, CPE/EE 233, or CPE 2300. Recommended: CSC 308 or CSC 3001; and CPE 316 or CPE 3160. Sequential and multiprogramming operating systems; system calls, scheduling, synchronization, files and storage systems, virtual memory, security. Course may be offered in classroom-based or online format. 2 lectures, 1 activity. Crosslisted as CPE/
CSC 4553. Formerly CPE/CSC 453.
	
		CPE 4570 
		Special Advanced Topics in Computer Systems 
		(1-4 units)
	
Term Typically Offered: F, SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; and consent of instructor. Special 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. Repeatable up to 8 units. 1 to 4 lectures. Crosslisted as CPE/
CSC 4570. Formerly CPE/CSC 458.
	
		CPE 4650 
		Scalable Server Implementation and Testing 
		(3 units)
	
Term Typically Offered: FPrerequisite: One of the following: CPE/CSC 453, CPE/CSC 4553, CPE/EE 442, or CPE/EE 4420; and one of the following: CSC 364, CSC 3001, CPE 464, or CPE 4464. Implementation and testing of network servers with an emphasis on high client volume. Concepts include concurrency models, asynchronous I/O, edge and level triggered notifications, system call batching, testing, and performance measurement. Multiple server architectures will be implemented and evaluated. Course may be offered in classroom-based, online, or hybrid format. 2 lectures, 1 laboratory.
	
		CPE 4669 
		Distributed Systems 
		(4 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050. Foundations in distributed computing. Distributed programming languages. Distributed algorithms. Leader election consensus protocols. Failure detection with gossip protocol. Fault tolerance and replication. Consistency protocols. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Crosslisted as CPE/
CSC 4669. Formerly CPE/CSC 469.
	
		CPE 5300 
		Computer Microarchitecture 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: CPE 333, CPE 3300, or graduate standing. Advanced computer architecture and design, with a specific focus on designing, building, and implementing systems on modern FPGAs and VLSI process technologies. Custom hardware design, system integration, and fabrication methodologies through hands-on-projects and real-world applications. Course may be offered in classroom-based, online, or hybrid format. 3 lectures. Formerly CPE/CSC 515.
	
		CPE 5350 
		Digital Systems Design 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: One of the following: CPE 333, CPE 3300, CPE 316, CPE 3160, CPE/EE 329, EE 3329, or 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. Course may be offered in classroom-based, online, or hybrid format. 2 seminars, 1 activity. Formerly CPE/EE 523.
	
		CPE 5420 
		Advanced High-Performance Embedded Systems 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: CPE/EE 442, CPE/EE 4420, or graduate standing. 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. Course may be offered in classroom-based, online, or hybrid format. 3 lectures, 1 laboratory. Formerly CPE/EE 542.
	
		CPE 5564 
		Research Topics in Computer Networks 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: One of the following: CPE/CSC 422, CPE 464, CPE 4464, CPE 4220, or graduate standing; and consent of instructor. Exploration of advanced topics in emerging network technologies; focus on leading edge networks research. Course may be offered in classroom-based, online, or hybrid format. 3 lectures. Formerly CPE/CSC 564.
	
		CPE 5660 
		Computer Systems 
		(3 units)
	
Term Typically Offered: TBDPrerequisite: CPE 333, CPE 3300, or graduate standing. 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. Course may be offered in classroom-based, online, or hybrid format. 2 seminars, 1 activity. Formerly CPE/EE 521.
	
		CPE 5669 
		Distributed Computing 
		(4 units)
	
Term Typically Offered: SPPrerequisite: CPE/CSC 357 or CPE/CSC 2050; or graduate standing and consent of instructor. Principles and practices in distributed computing. Distributed algorithms. Leader Election consensus protocols. Failure Detection with Gossip Protocol. Fault tolerance and replication. Consistency protocols. Distributed File Systems. Distributed Systems for Scientific Applications. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Crosslisted as CPE/
CSC 5669. Formerly CPE/CSC 569.