Computer Engineering (CPE)

Catalog Home

How to Read Course Descriptions

CPE Courses

CPE 100. Computer Engineering Orientation. 1 unit

CR/NC

Term Typically Offered: F

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 I. 4 units

Term Typically Offered: F, W, SP

Prerequisite: Completion of ELM requirement, and passing score on MAPE 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 102. Fundamentals of Computer Science II. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC/CPE 101 with a grade of C- or better and either MATH 141 or MATH 221 with a grade of C- or better, or consent of instructor.

Basic design, implementation, testing, and documentation of object-oriented software. Introduction to classes, interfaces, inheritance, algorithms (sort, search, recursion), abstract data types, data structures (lists, stacks, queues), file I/O, and exceptions. Credit not available for students who have taken CSC/CPE 108. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 102.

CPE 103. Fundamentals of Computer Science III. 4 units

Term Typically Offered: F, W, SP

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

Introduction to data structures and analysis of algorithms. Abstract data types. Specification and implementation of advanced data structures. Theoretical and empirical analysis and proofs of properties of recursive and iterative algorithms. Software performance evaluation and testing techniques. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 103.

CPE 105. Fundamentals of Computer Science I Supplemental Instruction. 1 unit

CR/NC

Term Typically Offered: TBD

Concurrent: CPE/CSC 101.

Facilitated study and discussion of fundamental concepts of computer science and familiarization with programming environments. Credit/No Credit grading only. 1 laboratory. Crosslisted as CPE/CSC 105.

CPE 108. Accelerated Introduction to Computer Science. 4 units

Term Typically Offered: TBD

Prerequisite: MATH 118 (or equivalent) with a grade of C- or better, significant experience in computer programming, and consent of instructor. Corequisite: CSC 141 or CSC 348.

Accelerated introduction to basic principles of algorithmic and object-oriented problem solving and programming. Introduction to programming language concepts including control structures, data types, classes, and inheritance. Program design principles. Use and implementation of algorithms (searching, sorting, recursion) and data structures (lists, stacks, and queues). Intended for students with experience in algorithmic problem solving and using basic control structures and data types in a modern programming language (CPE/CSC 101), but who are not ready for CPE/CSC 102. Not open to students with credit in CPE/CSC 102. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 108.

CPE 123. Introduction to Computing. 4 units

Term Typically Offered: F

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 Schedule of Classes will list topic selected. No programming experience required. Not for students with credit in CPE/CSC 103. 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 & EE 151 for EE students, CPE 100 for CPE students), CPE/CSC 101.

Number systems, Boolean algebra, Boolean functions, and function minimization. Analysis and design of combinational and sequential logic circuits. Hardware Description Language (HDL) concepts and applications digital design and synthesis in Programmable Logic Devices (PLDs). Not open to students with credit in CPE/EE 129. Course may be offered in classroom-based or online 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 209. Problem Solving with Computers. 1 unit

CR/NC

Term Typically Offered: TBD

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

Reinforcement of computer science fundamentals. Review of important algorithms, language features, design, syntax, and testing techniques. Repeated application of techniques to solve problems in a constrained amount of time. Primarily intended to support students preparing for the Association for Computing Machinery's International Collegiate Programming Contest. Credit/No Credit grading only. Total credit limited to 15 units. 1 laboratory. Crosslisted as CPE/CSC 209.

CPE 225. Introduction to Computer Organization. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC/CPE 102.

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. 3 lectures, 1 laboratory. Crosslisted as CPE/EE 233.

CPE 235. Fundamentals of Computer Science for Scientists and Engineers I. 4 units

Term Typically Offered: TBD

Prerequisite: MATH 141 or MATH 161 with a grade of C- or better, or consent of instructor.

Introduction to the fundamentals of computer programming with an emphasis on mathematical, scientific and engineering applications: principles of algorithmic problem solving and procedural programming using a modern programming language, data types, elementary data structures, input/output and control structures. Not a substitute for CSC/CPE 101 for CSC/CPE majors or minors. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 235.

CPE 236. Fundamentals of Computer Science for Scientists and Engineers II. 4 units

Term Typically Offered: TBD

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

Further study of computer program development with an emphasis on mathematical, scientific and engineering applications. Introduction to more complicated data types and structures. Practice of more complicated techniques of procedural programming. Introduction to the principles of object-oriented programming using a modern programming language. Detailed discussion of lists and classic list algorithms, algorithm analysis, multidimensional arrays, records, dynamic data structures, file input/output, classes. Not a substitute for CSC/CPE 102 for CSC/CPE majors or minors. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 236.

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 Schedule of Classes will list title selected. Total credit limited to 8 units. 1 to 4 lectures.

CPE 300. Professional Responsibilities. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC/CPE 357 and junior standing.

The responsibilities of the computer science professional. The ethics of science and the IEEE/ACM Software Engineering Code of Ethics. Quality tradeoffs, software system safety, intellectual property, history of computing and the social implications of computers in the modern world. Applications to ethical dilemmas in computing. Technical presentation methods and practice. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 300.

CPE 301. Personal Software Process. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 103.

Principles and practices for defining and applying software processes to individual software development tasks. Quantitative methods for the measurement and analysis of software development cost and quality. Interpretation and evaluation of process metrics for creation of improvement plans. Adaptation of processes to individual styles. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 301.

CPE 305. Individual Software Design and Development. 4 units

Term Typically Offered: F

Prerequisite: CSC/CPE 357.

Practical software development skills needed for construction of mid-sized production-quality software modules, using the CSC upper division programming language. Topics include inheritance, exceptions, and memory and disk-based dynamic data structures. Students must complete an individual programming project of mid-level complexity. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 305.

CPE 307. Introduction to Software Engineering. 4 units

Term Typically Offered: F, SP

Prerequisite: CPE/CSC 357; and CSC 141 or CSC 348.

Requirements, specification, design, implementation, testing and verification of large software systems. Study and use of the software process and software engineering methodologies; working in project teams. Not open to students with credit in CPE/CSC 308. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 307.

CPE 308. Software Engineering I. 4 units

Term Typically Offered: F, W

Prerequisite: CPE/CSC 357; and CSC 141 or CSC 348.

Principles for engineering requirements analysis and design of large complex software systems. Software process models. Methods of project planning, tracking, documentation, communication, and quality assurance. Analysis of engineering tradeoffs. Group laboratory project. Technical oral and written presentations. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 308.

CPE 309. Software Engineering II. 4 units

Term Typically Offered: W, SP

Prerequisite: CSC/CPE 308.

Continuation of the software lifecycle. Methods and tools for the implementation, integration, testing and maintenance of large software systems. Software development and test environments. Software quality assurance. Group laboratory project. Technical presentation methods and practice. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 309.

CPE 315. Computer Architecture. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC/CPE 103, and CPE/EE 229 or CSC 225 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. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 315.

CPE 321. Introduction to Computer Security. 4 units

Term Typically Offered: TBD

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. Formerly CPE/CSC 456.

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. 3 lectures. Crosslisted as CPE/EE 328.

CPE 329. Programmable Logic and Microprocessor-Based Systems Design. 4 units

Term Typically Offered: F, SP

Prerequisite: EE 307&347, EE 229&269 or CPE/EE 233.

Design, implementation and testing of programmable logic microprocessor-based systems. Hardware/software tradeoffs (such as timing analysis and power considerations), system economics of programmable logic and microprocessor-based system design. Interfacing hardware components (such as ADCs/DACs, sensors, transducers). 3 lectures, 1 laboratory. Not open to students with credit in CPE/EE 336. Crosslisted as CPE/EE 329.

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 344. Music Programming. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/CSC 357; and CSC 141 or CSC 348.

Music-producing programs. Software synthesizers: oscillators, coupled oscillators, wavetable synthesis. Sound processing units/filters: LTI, FIR, IIR, nonlinear. Physics of sound, mathematical foundations of sound synthesis and filtering, existing sound formats (both sampled and MIDI). 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 344.

CPE 349. Design and Analysis of Algorithms. 4 units

Term Typically Offered: F, SP

Prerequisite: CSC 141 or CSC 348, and MATH 142; or CPE/CSC 103 and MATH 248.

Intermediate and advanced algorithms and their analysis. Mathematical, geometrical, and graph algorithms. NP-complete problems. Additional topics will be chosen from pattern matching, file compression, cryptology, dynamic and linear programming, and exhaustive search. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 349.

CPE 350. Capstone I. 4 units

Term Typically Offered: F

Prerequisite: CPE 329, may be concurrent.

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 103 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 365. Introduction to Database Systems. 4 units

Term Typically Offered: TBD

Prerequisite: CSC 348 or CSC 141; or CPE/CSC 103 and MATH 248.

Basic principles of database management systems (DBMS) and of DBMS application development. DBMS objectives, systems architecture, database models with emphasis on Entity-Relationship and Relational models, data definition and manipulation languages, the Structured Query Language (SQL), database design, application development tools. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 365.

CPE 366. Database Modeling, Design and Implementation. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 365.

The database modeling problem. Database modeling levels: external, conceptual, logical and physical. Database models: entity-relationship, relational, object-oriented, semantic, and object-relational. Normal forms. Distributed database design. Functional analysis of database applications and transaction specification, design, and implementation. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 366.

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. 1 laboratory. Crosslisted as CPE/EE 368.

CPE 369. Introduction to Distributed Computing. 4 units

Term Typically Offered: F, SP

Prerequisite: CSC 103; and one of the following: STAT 301, STAT 312, STAT 321 or STAT 350.

Introduction to distributed computing paradigms and cloud computing. Modern distributed computing infrastructures. Problem-solving in a distributed computing environment. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 369.

CPE 378. Interactive Entertainment Engineering. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/CSC 103.

Project-based, software oriented, design of interactive entertainment applications. Topics may include interactive storytelling, game physics, game AI, scripting, and development of virtual worlds using modeling and rendering tools. Projects require significant programming. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 378.

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 402. Software Requirements Engineering. 4 units

Term Typically Offered: F

Prerequisite: CPE/CSC 307 or CPE/CSC 309.

Software requirements elicitation, analysis and documentation. Team process infrastructure and resource estimation to support appropriate levels of quality. Software architectural design. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 402.

CPE 405. Software Construction. 4 units

Term Typically Offered: W

Prerequisite: CPE/CSC 305 and CPE/CSC 402.

Design and construction of sizeable software products. Technical management of software development teams. Software development process models, software design, documentation, quality assurance during development, software unit and integration testing; CASE tools, development environments, test tools, configuration management. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 405.

CPE 406. Software Deployment. 4 units

Term Typically Offered: SP

Prerequisite: CPE/CSC 405.

Deployment of a sizeable software product by a student team. Software maintenance and deployment economic issues. Management of deployed software: version control, defect tracking and technical support. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 406.

CPE 409. Current Topics in Software Engineering. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 309 or CSC/CPE 307.

Selected topics in software engineering. Topics may include program generation, quality assurance, formal methods, software metrics, design methods, testing, or software development processes. The Schedule of Classes will list topic selected. Total credit limited to 8 units. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 409.

CPE 416. Autonomous Mobile Robotics. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/EE 329 or CPE/EE 336 or both CSC/CPE 315 and CSC/CPE 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. Crosslisted as CPE/CSC 416.

CPE 419. Applied Parallel Computing. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/CSC 357. Corequisite: CSC 141 or CSC 348. Recommended: CPE/CSC 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. Crosslisted as CPE/CSC 419.

CPE 428. Computer Vision. 4 units

Term Typically Offered: W

Prerequisite: EE 328 or CPE/CSC 357 or ME 305 or consent of instructor.

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 430. Programming Languages I. 4 units

Term Typically Offered: F, W, SP

Prerequisite: CSC 349 and CSC/CPE 357.

Construction of the front end of a compiler including lexical analysis, syntactic analysis, type checking, and formal semantics. Introduction to regular languages, finite automata, and context-free grammars. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 430.

CPE 431. Programming Languages II. 4 units

Term Typically Offered: SP

Prerequisite: CSC/CPE 430.

Language principles and design issues: bindings, conversion, parameter passing, and dynamic semantics. Language implementation: intermediate code representation, memory management, code optimization, and code generation. Functional programming languages. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 431.

CPE 432. Digital Control Systems. 3 units

Term Typically Offered: F

Prerequisite: EE 302 & EE 342. Concurrent: CPE/EE 472. Recommended: Prior background in discrete time systems, for example EE 328, EE 368.

Theory and applications of digital computers in linear control systems. Discrete time methods are used in analysis and design studies. Digital control systems are synthesized. 3 lectures. Crosslisted as CPE/EE 432.

CPE 435. Introduction to Object Oriented Design Using Graphical User Interfaces. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/CSC 305.

Principles of object-oriented design, with emphasis on use of these principles in the design of graphical interfaces. Comparison and contrasting of two major object-oriented languages and their corresponding GUI class libraries. Language-independent object-oriented design methods, and application of these methods in the construction of a GUI-based project. Course may be offered in classroom-based or online format. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 435.

CPE 436. Mobile Application Development. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 357.

Inception, development, testing, and deployment of mobile applications. Introduction to tools, libraries, and frameworks for one or more mobile platforms and devices. Emphasis on software engineering best practices for developing entrepreneurial or humanitarian mobile-centric applications. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 436.

CPE 437. Dynamic Web Development. 4 units

Term Typically Offered: TBD

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

Project-based study of web-based three-tiered applications, including current best practices and tools for design, implementation and testing of browser interface, serverside business logic, object-relational mapping, databases, and web services. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 437.

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

Term Typically Offered: F

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

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 448. Bioinformatics Algorithms. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/CSC 349.

Introduction to the use of computers to solve problems in molecular biology. The algorithms, languages, and databases important in determining and analyzing nucleic and protein sequences and their structure. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 448.

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/CPE 225 or 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. 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 Schedule of Classes 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 in laboratory environment. Project results are presented in a formal report. 3 laboratories.

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 in laboratory environment. Project results are presented in a formal report. 2 laboratories.

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. Crosslisted as CPE/CSC 464.

CPE 465. Advanced Computer Networks. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 464 and CSC/CPE 453.

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. Crosslisted as CPE/CSC 465.

CPE 466. Knowledge Discovery from Data. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/CSC 349 and one of the following: STAT 302, STAT 312, STAT 321 or STAT 350.

Overview of modern knowledge discovery from data (KDD) methods and technologies. Topics in data mining (association rules mining, classification, clustering), information retrieval, web mining. Emphasis on use of KDD techniques in modern software applications. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 466.

CPE 468. Database Management Systems Implementation. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 365.

Data structures and algorithms used in the implementation of database systems. Implementation of data and transaction managers: access methods interfaces, concurrency control and recovery, query processors and optimizers. Introduction to implementation of distributed database systems. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 468.

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. 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: TBD

Prerequisite: CPE/CSC 103.

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 473. Advanced Rendering Techniques. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 471.

Illumination models, reflectance, absorption, emittance, Gouraud shading, Phong shading, raytracing polyhedra and other modeling primitives, coherence, acceleration methods, radiosity, form factors, advanced algorithms. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 473.

CPE 474. Computer Animation. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 471.

Basic and advanced algorithms for generating sequences of synthetic images. Interpolation in time and space, procedural and keyframe animation, particle systems, dynamics and inverse kinematics, morphing and video. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 474.

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 478. Current Topics in Computer Graphics. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 471.

Selected aspects of the design, implementation and analysis of computer graphics. Topics may include rendering, modeling, visualization, animation, virtual reality, computer vision, multimedia, and perception issues. The Schedule of Classes will list topic selected. Total credit limited to 8 units. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 478.

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 Schedule of Classes will list title selected. Total credit limited to 8 units. 1 to 4 laboratories.

CPE 480. Artificial Intelligence. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 103 with a grade of C- or better.

Programs and techniques that characterize artificial intelligence. Programming in a high level language. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 480.

CPE 481. Knowledge Based Systems. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 480.

In-depth treatment of knowledge representation, utilization and acquisition in a programming environment. Emphasis on the use of domain-specific knowledge to obtain expert performance in programs. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 481.

CPE 482. Advanced Topics in Systems for Computer Engineering. 4 units

Term Typically Offered: TBD

Corequisite: CPE 350, or consent of instructor.

Selected aspects of design, implementation, verification and analysis of advanced computer systems. Topics may include computer systems, embedded systems, robotics, mechatronics, haptics, human computer interfaces, digital control, digital signal processing, wireless computing, real time operating systems, and networks. Class Schedule will list topic selected. Total credit limited to 8 units, repeatable in same term. 3 lectures, 1 laboratory.

CPE 483. Current Topics in Human-Computer Interaction. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 484.

Selected aspects of the field of human-computer interaction. Topics may include dynamic information visualization, universal access, social impact of technology usage, educational technology, human cognition and performance studies, and extended usability evaluation techniques. The Schedule of Classes will list topic selected. Total credit limited to 8 units. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 483.

CPE 484. User-Centered Interface Design and Development. 4 units

Term Typically Offered: W

Prerequisite: Junior standing and CSC/CPE 307 or CSC/CPE 308.

Introduction to the importance of user-centered principles in the design of good interfaces and effective human-computer interaction. Topics include: study of human characteristics affected by interface design, effective requirements data collection and analysis, user-centered approaches to software engineering, and evaluation of interface and interaction quality. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 484.

CPE 485. Autonomous Robot Navigation. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 357 or consent of instructor.

Overview of existing autonomous mobile robot systems, basic kinematic modeling, control structures, sensing and sensor modeling, localization, and motion planning algorithms. Implementation of autonomous navigation capabilities. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 485.

CPE 486. Human-Computer Interaction Theory and Design. 4 units

Term Typically Offered: TBD

Corequisite: CSC/CPE 484.

Application of the theories of human-computer interaction to the task of user-centered design. Survey of techniques for studying and involving users in different aspects of the design process, and demonstration of where and when applicable. Combining of theoretical understanding with practical experience to design solutions to problems facing interactive systems designers. 3 lectures, 1 laboratory. Crosslisted as CSC/CPE 486.

CPE 488. Microelectronics and Electronics Packaging. 4 units

Term Typically Offered: F, W, SP

Prerequisite: EE 112 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 489. Current Topics in Artificial Intelligence. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 480.

Selected aspects of the design, implementation and analysis of advanced systems and concepts in the area of artificial intelligence. Topics may include knowledge representation, reasoning, learning, or planning, and specific techniques like intelligent agents, genetic algorithms, semantic web, or robotics. The Schedule of Classes will list topic selected. Total credit limited to 8 units. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 489.

CPE 493. Cooperative Education Experience. 2 units

CR/NC

Term Typically Offered: F,W,SP,SU

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

CR/NC

Term Typically Offered: F,W,SP,SU

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

CR/NC

Term Typically Offered: F,W,SP,SU

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: TBD

Prerequisite: CPE 315 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. Formerly CPE/CSC 520.

CPE 521. Computer Systems. 4 units

Term Typically Offered: SP

Prerequisite: CPE/EE 329 or CPE/EE 336, or equivalent, and 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: W

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: F

Prerequisite: CPE/EE 329 or CPE/EE 336, 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 564. Computer Networks: Research Topics. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/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 141 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.

CPE 580. Artificial Intelligence. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/CSC 480 and graduate standing, or consent of instructor.

Current research in the field of artificial intelligence with emphasis on cooperative agents, distributed agents, and decision making in complex, concurrent environments. AI programming in a distributed environment. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 580.

CPE 581. Computer Support for Knowledge Management. 4 units

Term Typically Offered: TBD

Prerequisite: CSC/CPE 480 or CSC/CPE 484 or consent of instructor.

Methods and techniques that computer-based systems can provide to make the management of knowledge and information in digital form easier for the user. Emphasis on support for knowledge-intensive activities performed by users. 3 lectures, 1 laboratory. Crosslisted as CPE/CSC 581.

CPE 582. Introduction to Natural Language Processing. 4 units

Term Typically Offered: TBD

Prerequisite: CPE/CSC 480 or CPE/CSC 466 or graduate standing. Recommended: CSC/CPE 580.

Classic Natural Language Processing systems and techniques; review of recent advancements in the subject. Topics selected from: parsing, tagging, word-sense disambiguation, natural language generation, data mining, voice recognition, vocalization, knowledge management, semantic networks, stylistics and machine learning. 3 lectures, 1 laboratory.