CPE-COMPUTER
ENGINEERING –
2005-07 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. Credit not available for students who have taken
CSC/CPE 108. 3 lectures, 1 laboratory. Prerequisite: MATH 118 (or equivalent)
with a grade of C- or better, and basic computer literacy (CSC 100 or CSC 232
or equivalent).
CPE 102 Fundamentals of Computer Science II (4)
(Also listed as CSC 102)
Basic design, implementation,
testing, and documentation of object-oriented software. Introduction to
classes, interfaces, inheritance, algorithms (sort, search, recursion), data
structures, abstract data types (lists, stacks, queues), file I/O, exceptions,
and graphical user interfaces. Credit not available for students who have taken
CSC/CPE 108. 3 lectures, 1 laboratory. Corequisite: CSC 141. Prerequisite:
CSC/CPE 101 with a C- grade or better and either MATH 141 or MATH 221 with a C-
grade or better.
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.
CPE 108 Accelerated Introduction to Computer Science
(4)
(Also listed as CSC 108)
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 (CSC/CPE 101), but who are not ready for
CSC/CPE 102. Credit not available for students who have taken CSC/CPE 102. 3
lectures, 1 laboratory. Prerequisite: Math 118 (or equivalent) with a grade of
C- or better, significant experience in computer programming, and consent of
instructor. Corequisite: CSC 141.
CPE 129 Digital Design (3) (Also listed as EE 129)
Number systems, Boolean
algebra, Boolean functions, and minimization. Analysis and design of
combinational logic circuits. Feedback circuits. Analysis and design of
sequential logic circuits. Applying Hardware Description Language (HDL) to
synthesize digital logic circuits in Programmable Logic Devices (PLDs). 3
lectures. Prerequisite: An orientation course in student’s major (EE 111/151
for EE students, CPE 100 for CPE students), CPE/CSC 101. Concurrent: CPE 169.
CPE 169 Digital Design Laboratory (1) (Also listed as
EE 169)
Experiments to analyze and
design combinational and sequential logic circuits with discrete ICs and PLDs.
Introduction to laboratory equipment such as the logic state analyzer for
testing circuits. Introduction to a hardware description language for logic
simulation and design. 1 laboratory. Prerequisite: An orientation course in
student’s major (EE 111/151 for EE students, CPE 100 for CPE students), CPE/CSC
101. Concurrent: CPE 129.
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
instructor.
CPE 229 Computer Design and Assembly Language
Programming (3) (Also listed as EE 229)
Design and implementation
of digital computer circuits via CAD tools for programmable logic devices
(PLDS). Basic computer design with its data path components and control unit.
Introduction to assembly language programming of an off-the-shelf RISC-based
microcontroller. 3 lectures. Pre-requisite: CPE 129&169 with a C- grade or
better. Concurrent: CPE 269.
CPE 235 Fundamentals of Computer Science for
Scientists and Engineers I (4) (Also listed as CSC 235)
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. Prerequisite: MATH 141 or MATH 161 with a grade of C- or better, or
consent of instructor.
CPE 236 Fundamentals of Computer Science for
Scientists and Engineers II (4) (Also listed as CSC 236)
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. Prerequisite: CSC/CPE 235 with a grade of
C- or better, or consent of instructor.
CPE 237 Introduction to Computer Science with
Applications I (4)
(Also listed as CSC 237)
Introduction to the
fundamentals of computer science using a modern programming language. Includes
principles of algorithmic problem solving, data types, elementary data
structures, input/output, control structures, classes and methods. Not a
substitute for CSC/CPE 101 for CSC/CPE majors or minors. 3 lectures, 1
laboratory. Prerequisite: MATH 221 or STAT 252 with a grade of C- or better, or
consent of instructor.
CPE 238 Introduction to Computer Science with
Applications II (4)
(Also listed as CSC 238)
Continuation of CPE 237.
Intermediate study of computer program development using a modern object
oriented (OO) programming language. Further study of OO principles including
inheritance and interfaces. Introduction to implementation of Graphical User Interfaces,
multi-media, streams, database connection, and scripting. Not a substitute for
CPE/CSC 102 or for CSC/CPE majors or minors. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 237 with a grade of C- or better.
CPE 269 Computer Design and Assembly Language
Programming Laboratory (1) (Also listed as EE 269)
Experiments to design and
test digital computer circuits and systems with programmable logic devices
(PLDs). Design projects to implement a basic computer with data path components
and control. Assembly language programming projects for an off-the-shelf
RISC-based microcontroller. 1 laboratory. Prerequisite: CPE 129&169 with a
C-grade or better. Concurrent: CPE 229.
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 300 Professional Responsibilities (4) (Also
listed as CSC 300)
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.
Prerequisite: CSC/CPE 307 or CSC/CPE 309.
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: CSC/CPE 353 or
CSC/CPE 357.
CPE 307 Introduction to Software Engineering (4)
(Also listed as CSC 307)
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. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 103 with a grade of C- or better, and CSC/CPE 357. Not
open to students with credit in CSC/CPE 308.
CPE 308 Software Engineering I (4) (Also listed as
CSC 308)
(formerly CPE 205)
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. Prerequisite: CSC/CPE 103 with a grade of C- or better, and CSC/CPE
357 or CSC/CPE 353.
CPE 309 Software Engineering II (4) (Also listed as
CSC 309)
(formerly CPE 206)
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.
Prerequisite: CSC/CPE 308.
CPE 315 Computer Architecture (4) (Also listed as CSC
315)
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.
Prerequisite: CPE 103, CPE 229.
CPE 316 Micro Controllers and Embedded Applications
(4) (Also listed as CSC 316)
Introduction to micro
controllers and their applications as embedded devices. Hardware/software
tradeoffs, micro controller selection, use of on-chip peripherals, interrupt
driven real-time operation, A/D conversion, serial and parallel communications,
watch-dog timers, low power operation and assembly language programming
techniques. 3 lectures, 1 laboratory. Prerequisite: CPE/CSC 315 or CPE/EE 329.
CPE 329 Programmable Logic and Microprocessor-Based
Systems Design (4) (Also listed as EE 329)
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. Prerequisite: EE 307&347 with a C- grade or better,
CPE 229&269 with a C- grade or better.
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 68HC12 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 129&169 with a C- grade or better.
CPE 350 CPE Capstone Preparation (1)
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.
1 laboratory. Prerequisite: CPE 329 and CPE/CSC 316; either or both may be
concurrent.
CPE 353 Systems Programming for Software Engineers
(4)
(Also listed as CSC 353)
Assembly language and C
programming; I/O and systems level programming; interrupt handlers. Technical
elective credit not allowed for CSC/CPE majors. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 103.
CPE 357 Systems Programming (4) (Also listed as CSC
357)
(formerly CPE 250)
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.
Prerequisite: CSC/CPE 103, and CPE 229.
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: CSC/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: CSC/CPE 365.
CPE 369 Distributed Computing I (4) (Also listed as
CSC 369)
Introduction to distributed
computing paradigms and protocols: interprocess communications, group
communications, the client-server model, distributed objects, and Internet
protocols. Emphasis on distributed software above the operating system and
network layers. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 103.
CPE 400 Special Problems for Advanced Undergraduates (1–2 1– 4)
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 instructor. Change effective Summer 2005.
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: CSC/CPE 307 or
CSC/CPE 309; CSC/CPE 305.
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. 3 lectures, 1 laboratory. Prerequisite: CPE/CSC
405.
CPE 409 Current Topics in Software Engineering (4)
(Also listed as CSC 409)
Selected topics in software
engineering. Topics may include program generation, quality assurance, formal
methods, software metrics, design methods, testing, or software development
processes. Class Schedule will list
topic selected. Total credit limited to 8 units. 3 lectures, 1 laboratory.
Prerequisite: CSC/CPE 309 or CSC/CPE 307.
CPE 415 Microcomputer Systems (4)
Recent advances in
microcomputer architectures. RISC, parallel processing advances, and component
communication. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 315.
CPE 427 Digital Computer Subsystems (3) (Also listed
as EE 427)
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 329 with a C- grade or better. Concurrent: CPE 467.
CPE 430 Programming Languages I (4) (Also listed as
CSC 430)
Theory of formal languages
and automata. Regular languages, finite automata, and lexical analysis.
Context-free languages, pushdown automata, and syntactic analysis. Type
checking and static semantics. Parsing: top-down (LL) and bottom-up (LR). 3
lectures, 1 laboratory. Prerequisite: CSC 349 and CSC/CPE 357.
CPE 431 Programming Languages II (4) (Also listed as
CSC 431)
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. Prerequisite: CSC/CPE 430.
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 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 427 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 329 with a C- grade or
better, or consent of instructor.
CPE 448 Bioinformatics Algorithms (4) (Also listed as
CSC 448)
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. Prerequisite: Consent
of instructor or the following: CSC/CPE 103 or BIO 447 and senior standing.
CPE 449 Current Topics in Algorithms (4) (Also listed
as CSC 449)
Selected aspects of the
verification, analysis and design of algorithms. Class Schedule will list topic selected. Total credit limited to 8
units. 3 lectures, 1 laboratory. Prerequisite: CSC 349.
CPE 450 CPE Capstone Project (4)
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. 3 lectures, 1 laboratory. Prerequisite: CPE
350.
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. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 353 or both CSC/CPE 315, CSC/CPE 357 .
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: CSC/CPE 453.
CPE 456 Introduction to Computer Security (4)
(Also listed as CSC 456)
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. Prerequisite: CSC/CPE 357 and CSC
300.
CPE 458 Current Topics in Computer Systems (4)
(Also listed as CSC 458)
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. Class Schedule will list topic selected.
Total credit limited to 8 units. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 453.
CPE 461, 462 Senior Project I, II (3) (2)
Selection and completion of
an individual or team project in laboratory environment. Project results are
presented in a formal report. CPE 461: 3 laboratories; prerequisite: CPE 350.
CPE 462: 2 laboratories; prerequisite: CPE 450.
CPE 464 Introduction to Computer Networks (4)
(Also listed as CSC 464)
Computer network
architectures; communications protocol standards; services provided by the
network; historical and current examples presented. 3 lectures, 1 laboratory.
Prerequisite: STAT 312 or STAT 321 or STAT 350; CSC/CPE 357; Software
Engineering majors and graduate students may substitute CSC/CPE 353 for CSC/CPE
357.
CPE 465 Advanced Computer Networks (4) (Also listed
as CSC 465)
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. Prerequisite: CSC/CPE 464 and CSC/CPE 453.
CPE 467 Digital Computer Subsystems Laboratory (1)
(Also listed as EE 467)
Introduction to industrial
grade CAD tools. Design and implementation of digital computer subsystems using
SPLDs, CPLDs, and FPGAs. 1 laboratory. Prerequisite: CPE 329 with a C- grade or
better. Concurrent: CPE 427.
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:
CSC/CPE 365.
CPE 469 Distributed Computing II (4) (Also listed as
CSC 469)
Continued exploration of
topics in distributed computing in greater depth, with emphasis on object-based
and component-based software development. Introduction to fault-tolerance and
distributed algorithms. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 369.
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. 3
lectures, 1 laboratory. Prerequisite: CSC/CPE 353 or CSC/CPE 357.
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: CSC/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. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 471.
CPE 476 Real-Time 3D Computer Graphics Software (4)
(Also listed as CSC 476)
Basic and advanced
algorithms for real-time, interactive, 3D graphics software. Modeling (polygon
mesh, height field, scene graph, LOD), real-time rendering (visibility
processing, shadows, multi-pass algorithms), complexity management, bounding
volumes and collision detection, interactive controls, multi-player game
technology, game engine architecture. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 471.
CPE 478 Current Topics in Computer Graphics (4)
(Also listed as CSC 478)
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. Class
Schedule will list topic selected. Total credit limited to 8 units. 3
lectures, 1 laboratory. Prerequisite: CSC/CPE 471.
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: CSC/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: CSC/CPE 480.
CPE 482 Advanced Topics in Systems for Computer
Engineering (4)
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. Prerequisite or concurrent: CPE 350, or consent of instructor.
CPE 483 Current Topics in Human-Computer Interaction
(4)
(Also listed as CSC 483)
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. Class Schedule
will list topic selected. Total credit limited to 8 units. 3 lectures, 1
laboratory. Prerequisite: CSC/CPE 484.
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: Junior standing and CSC/CPE 307 or CSC/CPE 308.
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: CSC/CPE 435.
CPE 489 Current Topics in Artificial Intelligence (4)
(Also listed as CSC 489)
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. Class Schedule will list topic selected. Total credit limited to 8
units. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 480.
CPE 493 Cooperative Education Experience (2) (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 6 units.
Prerequisite: Sophomore standing and consent of instructor.
CPE 494 Cooperative Education Experience (6) (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 18 units.
Prerequisite: Sophomore standing and 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. A more fully developed formal report and
evaluation by work supervisor required. Credit/No Credit grading only. Total
credit limited to 24 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 564 Computer Networks: Research Topics (4)
(Also listed as CSC 564)
Exploration of advanced
topics in emerging computer networking technologies; focus on leading edge
computer network research topics. 3 lectures, 1 laboratory. Prerequisite:
CSC/CPE 464 and graduate standing, or consent of instructor.
CPE 569 Distributed Computing (4) (Also listed as CSC
569)
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. Not open to students with credit in
CSC/CPE 369 or CSC/CPE 469. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 103
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.
CPE 581 Computer Support for Knowledge Management (4)
(Also listed as CSC 581)
Use 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.
Prerequisite: CSC/CPE 481.