CPE-COMPUTER
ENGINEERING -- 2001-03 Catalog
Computer Engineering Program
CPE
100 Computer Engineering Orientation
(1) (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 I
(4)
(Also
listed as CSC 101)
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. 3 lectures, 1
laboratory. Prerequisite: CSC 100 or CSC 111 or consent of instructor.
CPE
102 Fundamentals of Computer Science II
(4)
(Also listed as CSC 102)
Continuation
of the software development process: requirements analysis, specification,
design, implementation and testing of abstract data types. Application
development using abstract data types. Introduction to the analysis of
algorithms. Software design case studies and practice. 3 lectures, 1
laboratory. Prerequisite: CPE 101 with a C- grade or better and either MATH 141
or MATH 221 with a C- grade or better, or consent of instructor.
CPE
103 Fundamentals of Computer Science
III (4)
(Also listed as CSC 103)
Continuation
of material from CPE 102: abstract data types specification and implementation,
the analysis of algorithms and the software development process. Introduction
to a specific high level design notation. Recursive algorithms. Software design
case studies and practice. Software testing and program verification. 3
lectures, 1 laboratory. Prerequisite: CPE 102 with a C- grade or better and CSC
141 with a C- grade or better, or consent of instructor.
CPE
109 Accelerated Introduction to
Computer
Science (5) (Also listed as CSC 109)
Accelerated
coverage of the material in CPE 101, CPE 102, and CPE 103. 4 lectures, 1
activity. Corequisite: CSC 141, significant background in computer science, and
consent of instructor.
CPE
200 Special Problems for Undergraduates
(1–2)
Individual
investigation, research, studies, or surveys of selected problems. Total credit
limited to 4 units, with a maximum of 2 units per quarter. Prerequisite:
Consent of CPE Director.
CPE
205 Software Engineering I (4) (Also
listed as CSC 205)
Introduction
to the software lifecycle. Methods and tools for the analysis, design, and
specification of large, complex software systems. Project documentation,
organization and control, communication, and time and cost estimates. Group
laboratory project. Graphical User Interface Design. Technical presentation
methods and practice. Software design case studies and practices. Ethical and
societal issues in software engineering. Miscellaneous course fee may be
required-see Class Schedule. 3 lectures, 1 laboratory. Prerequisite: CPE 103.
CPE
206 Software Engineering II (4) (Also
listed as CSC 206)
Continuation
of the software lifecycle. Methods and tools for the implementation,
integration, testing and maintenance of large, complex software systems.
Program development and test environments. Group laboratory project. Technical
presentation methods and practice. Ethical and societal issues in software
engineering. 3 lectures, 1 laboratory. Prerequisite: CPE 205.
CPE
215 Computer Architecture I (4) (Also
listed as CSC 215)
Assembly
level computer organization. Basic machine representation of numeric and
non-numeric data. Assembly level instruction sets, address modes and the
underlying computer architecture. Intended for CPE and CSC majors.
Miscellaneous course fee required–see Class
Schedule. 3 lectures, 1 laboratory. Prerequisite: CPE 219 and CPE 102.
CPE
219 Logic and Switching Circuits (3)
(Also listed as EE 219)
Modulo-N
arithmetic and digital coding techniques. Fundamentals of Boolean algebra and
minimization techniques. Two-level logic realizations of SOP and POS functions,
and an introduction to multi-level logic. Multiple function synthesis using
PLDs and gate arrays. Combinational circuit design as it applies to computers.
Sequential circuit elements, flip-flops, counters and shift-registers. 3
lectures. Prerequisite: CPE 101 or CSC 234. Concurrent: CPE 259.
CPE
259 Logic and Switching Circuits
Laboratory (1)
(Also listed as EE 259)
Laboratory
synthesis of combinational logic circuits and counters. Introduction to
laboratory equipment such as logic state analyzers. Use of software (both
off-the-shelf and customized) for logic simulation and design. Introduction to
use of PLDs and hardware description languages in combinational design and
testing. 1 laboratory. Concurrent: CPE 219.
CPE
270 Computer Graphics Applications (4)
(Also listed as CSC 270)
Use
of common graphics applications packages. Business graphics, figure editing,
animation and image editing, photorealistic image generation, scientific visualization
and multimedia. 2 lectures, 2 activities.
CPE
305 Individual Software Design and
Development (4)
(Also listed as CSC 305)
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. Prerequisite: CPE
103.
CPE
315 Computer Architecture II (4) (Also
listed as CSC 315)
Intermediate
architecture topics. Levels of virtual machines and their languages. Special
emphasis on data paths and microprogramming. Design of conventional machines;
study of tradeoffs in various designs. Miscellaneous course fee required–see Class Schedule. 3 lectures, 1
laboratory. Prerequisite: CPE 103, CPE 215, CPE 219.
CPE
316 Computer Architecture III (4) (Also
listed as CSC 316)
Microprocessor
architecture and interfacing. Emphasis on study of one microprocessor and how
it interfaces with other logical components of a computer system. Serial and
parallel I/O, static and dynamic RAM, ROM, DMA and Disk Controllers. 3
lectures, 1 laboratory. Prerequisite: CPE 315.
CPE
319 Digital System Design (3) (Also
listed as EE 319)
Introduction
to the design of digital systems utilizing state-machines; analysis and
synthesis of state-machines. Design of synchronous, asynchronous, and pulse
mode sequential logic circuits. Practical considerations of digital system
design and implementation. Emphasis on the use of PLDs and hardware description
language for implementation technology. Considerations of testing of digital
systems as a part of design. 3 lectures. Prerequisite: CPE 219, EE 307. Concurrent:
CPE 359.
CPE
336 Microprocessor System Design (4)
(Also listed as EE 336)
Introduction
to microcontrollers and integrated microprocessor systems. Emphasis on the
Intel 8051 and Motorola 68HC11 families and derivatives. 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, and assembly language
programming techniques. Architecture and design of sampled data and digital
control systems. Case studies of representative applications. 3 lectures, 1
laboratory. Prerequisite: CPE/EE 219/259.
CPE
348 Bioinformatics (4) GE Area F
(Also listed as BIO/CHEM/CSC 348)
Introduction
to problems in molecular biology and the use of computers to address them. The
computational perspectives on problems involving nucleic acid and protein
analysis, and the algorithmic and database approaches to their solution. The
ethical and societal challenges of genetic manipulation. 3 lectures, 1
laboratory. Prerequisite: Consent of instructor, or the following: CPE 103,
completion of GE Area B, and junior standing.
CPE
353 Computer Systems Programming (3)
Design
of assemblers, macroprocessors, linkers and loaders. Advanced macrowriting, I/O
programming, and interrupt handlers. 3 lectures. Prerequisite: CPE 215, CPE
103.
CPE
359 Digital System Design Laboratory
(1)
(Also listed as EE 359)
Laboratory
synthesis of combination and sequential logic circuits. Implementation with
PLDs and hardware description language. Sequential analysis with the logic
state analyzer. Fault testing and automated checkout procedures.
Familiarization with the characteristics of SSI and MSI logic components. 1
laboratory. Prerequisite: CPE 259, EE 347. Concurrent: CPE 319.
CPE
365 Introduction to Database Systems
(4)
(Also listed as CSC 365)
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. Prerequisite: CPE 103.
CPE
366 Database Modeling, Design and
Implementation (4) (Also listed as CSC 366)
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.
Prerequisite: CPE 365.
CPE
369 Introduction to Distributed
Computing (4)
(Also listed as CSC 369)
Introduction
to distributed systems as a computing paradigm, the client-server model,
distributed algorithms, interprocess communication, distributed computing
environment, data replication and fault tolerance. Emphasis on distributed
software above the operating system layer. 3 lectures, 1 laboratory.
Prerequisite: CPE 103.
CPE
400 Special Problems for Advanced
Undergraduates (1–2)
Individual
investigation, research, studies, or surveys of selected problems. Total credit
limited to 4 units, with a maximum of 2 units per quarter. Prerequisite:
Consent of CPE coordinator.
CPE
402 Software Requirements Engineering
(4)
(Also listed as CSC 402)
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. Prerequisite: CPE/CSC 206,
CPE/CSC 305, CPE/CSC 494 or CPE/CSC 495.
CPE
405 Software Construction (4) (Also listed as CSC 405)
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. Prerequisite: CPE/CSC 402.
CPE
406 Software Deployment (4) (Also
listed as CSC 406)
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. CPE/CSC 406 is the capstone software
engineering course. 3 lectures, 1 laboratory. Prerequisite: CPE/CSC 405.
CPE
415 Microcomputer Systems (4)
Recent
advances in microcomputer architectures. RISC, parallel processing advances,
and component communication. 3 lectures, 1 laboratory. Prerequisite: CPE 316.
CPE
430 Programming Languages II (4) (Also
listed as CSC 430)
Regular
languages and finite automata. Table-driven lexical analysis. Recognition of
reserved words. Symbol table construction. Parsing: top-down (LL) and bottom-up
(LR). Table-driven versus recursive descent parsing. Context-free languages and
pushdown automata. 3 lectures, 1 laboratory. Prerequisite: CSC 330 and CSC 445.
CPE
431 Programming Languages III (4) (Also
listed as CSC 431)
Intermediate
translation forms. Runtime representations. Generation of object code by
compilers. Local optimization: constant propagation, folding, common
subexpression removal. Global optimization, invariant code removal, operator
strength reduction. Register allocation. 3 lectures, 1 laboratory.
Prerequisite: CPE 430.
CPE
434 Compilers – Hardware/Software
Interface (4)
(Also listed as CSC 434)
Block
structured programming languages, their design and implementation via
retargetable compilers, with emphasis on code generation for a variety of
contemporary computer architectures. 3 lectures, 1 laboratory. Prerequisite:
CPE 205 and CPE 315.
CPE
435 Introduction to Object Oriented
Design Using Graphical User Interfaces (4) (Also listed as CSC 435)
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. 3 lectures, 1 laboratory. Prerequisite:
CPE 103 or equivalent and CPE 305.
CPE
437 Digital Computer Subsystems (3)
(Also listed as EE 437)
Design
of components and subsystems in digital computers. Use of modern techniques and
devices (CPLDs and FPGAs) in implementation. Consideration given to cost/speed
tradeoffs. Implementation of a basic digital computer using pre-designed
subsystems. 3 lectures. Prerequisite: CPE/EE 319. Concurrent: CPE/EE 478.
CPE
438 Digital Computer Systems (3) (Also
listed as EE 438)
Design
of computer ALU's, microprogram controllers, memory systems, and I/0
controllers. Use of LSI components in CPU design. Microprogram and nanoprogram
development. 3 lectures. Prerequisite: CPE 437 or consent of instructor.
CPE
439 Computer Peripheral Interfacing (3)
(Also listed as EE 439)
Design
of the more common computer peripherals with the emphasis on the controller and
interfacing aspects. Use of microprocessors and/or LSI controller chips in the
design of intelligent peripherals. 3 lectures. Prerequisite: CPE 336, or consent
of instructor.
CPE
453 Introduction to Operating Systems
(4)
(Also listed as CSC 453)
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. Miscellaneous course fee may be
required-see Class Schedule. 3 lectures, 1 laboratory. Prerequisite: CPE 315.
CPE
454 Implementation of Operating Systems
(4)
(Also listed as CSC 454)
Design
and implementation of multiprogramming kernels, systems programming
methodology, interprocess communications, synchronization, device drivers and
network access methods. 3 lectures, 1 laboratory. Prerequisite: CPE 453.
CPE
459 Real-Time Systems (4) (Also listed
as CSC 459)
Analysis
and synthesis of robust real-time systems including embedded systems, real-time
architectures, and programming, parallel processing, specification techniques,
algorithms for guaranteeing stringent timing constraints. Understanding of the
trade-offs between robustness and response times of time-critical systems. 3
lectures, 1 laboratory. Prerequisite: CPE 315.
CPE
461, 462 Senior Project (3) (2)
Selection
and completion of a project under faculty supervision. Project results are
presented in a formal report. Miscellaneous course fee required–see Class Schedule. Minimum 150 hours total
time. Prerequisite: CPE 315, CPE 319, CPE 359.
CPE
464 Computer Networks I (4) (Also
listed as CSC 464)
Communications
architectures and distributed systems; multicomputer complexes and
interprocessor communications; communications media, message switching, and
communications protocol standards. 3 lectures, 1 laboratory. Prerequisite: CSC
141 and CPE 315.
CPE
465 Computer Networks II (4) (Also
listed as CSC 465)
Network
architectures and protocols; network performance analysis; the theory of error
detection and correction; other advanced topics such as routing, network
management, integrated services, satellite networks, fiber optics. 3 lectures,
1 laboratory. Prerequisite: CPE 464.
CPE
468 Database Management Systems
Implementation (4)
(Also listed as CSC 468)
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.
Prerequisite: CPE 365.
CPE
470 Selected Advanced Topics (1–4)
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. Prerequisite: Consent of instructor.
CPE
471 Introduction to Computer Graphics
(4)
(Also listed as CSC 471)
Graphics
hardware and primitives. Modeling and rendering, geometric transforms,
hidden-surface removal, the graphics pipeline, scan-conversion and graphics
applications. Miscellaneous course fee may be required-see Class
Schedule. 3 lectures, 1 laboratory. Prerequisite: CPE 103 and CSC 141.
CPE
473 Advanced Rendering Techniques (4)
(Also listed as CSC 473)
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. Prerequisite: CPE 471.
CPE
474 Computer Animation (4) (Also listed
as CSC 474)
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. Miscellaneous course
fee may be required-see Class Schedule. 3 lectures, 1 laboratory. Prerequisite: CPE 471.
CPE
475 Multimedia Tool Development (4)
(Also listed as CSC 475)
Algorithms
and techniques for creating multimedia applications. Topics include audio and
video compression techniques, multimedia network architectures, synchronization
of audio and video, multimedia toolkits, user interfaces and file systems. 3
lectures, 1 laboratory. Prerequisite: CPE 471.
CPE
477 Computer Vision (4) (Also listed as
CSC 477)
Fundamental
issues in computer vision. Convolution, edge detection and image segmentation.
Pattern classification methods and neural networks. Stereoscopic vision and
optical flow. 3 lectures, 1 laboratory. Prerequisite: CPE 103 and MATH 206.
CPE
478 Digital Computer Subsystems
Laboratory (1)
(Also listed as EE 478)
Introduction
to industrial grade CAD tools. Design and implementation of digital computer
subsystems using SPLDs, CPLDs, and FPGAs. 1 laboratory. Prerequisite: CPE/EE
359. Concurrent: CPE/EE 437.
CPE
480 Artificial Intelligence (4) (Also
listed as CSC 480)
Programs
and techniques that characterize artificial intelligence. Programming in a high
level language. 3 lectures, 1 laboratory. Prerequisite: CPE 103 and CSC 141.
CPE
481 Knowledge Based Systems (4) (Also
listed as CSC 481)
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. Prerequisite:
CPE 480.
CPE
484 User-Centered Interface Design and
Development (4)
(Also listed as CSC 484)
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. Prerequisite:
CPE 205.
CPE
485 Cooperative Education Experience
(6) (CR/NC)
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. Total
credit limited to 16 units. Prerequisite: Sophomore standing and consent of
instructor.
CPE
487 Graphical User Interface Systems
(4)
(Also listed as CSC 487)
Further
study of graphical user interface (GUI) programming systems. Structure of tools
and underlying systems to build such interfaces. Human factors including
considerations of good and bad interfaces. 3 lectures, 1 laboratory.
Prerequisite: CPE 435.
CPE
488 Performance Analysis (4) (Also
listed as CSC 488)
Statistical
and mathematical techniques for modeling and analyzing the performance of
computer and communication systems. Tools and techniques for measuring
performance of operational systems. Theory and methodologies for the design,
procurement and evaluation of systems. Introduction to elementary concepts of
discrete event simulation. 3 lectures, 1 laboratory. Prerequisite: STAT 321 or
consent of instructor.
CPE
495 Cooperative Education Experience
(12) (CR/NC)
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. Total
credit limited to 16 units. Prerequisite: Sophomore standing and consent of
instructor.
CPE
520 Computer Architecture (4) (Also
listed as CSC 520)
Comparative
study and design of multiprocessor, dataflow, RISC, high level language and
other new computer architectures. VLSI processor design techniques. 3 seminars,
1 laboratory. Prerequisite: CPE 315 and graduate standing, or consent of
instructor.
CPE
580 Artificial Intelligence (4) (Also
listed as CSC 580)
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. Prerequisite: CPE 481.