CPE-COMPUTER ENGINEERING -- 1999-2000 Catalog
Computer Engineering Department

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)
(formerly CSC 118)
(Also listed as CSC 101) GE F1

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)
(formerly CSC 218) (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 activity. Prerequisite: CPE 101. Corequisite: CSC 141.

CPE 103 Fundamentals of Computer Science III (4)
(formerly CSC 345) (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 activity. Prerequisite: CPE 102 and CSC 141.

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)
(formerly CSC 440) (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)
(formerly CSC 441) (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 231 Fortran for Engineering Students (2) GE F1
(formerly CSC 251) (Also listed as CSC 231)

Programming techniques and procedures with applications to engineering problems in FORTRAN. Introduction to numerical methods and simulation. 2 activities. Prerequisite: MATH 142 or MATH 132; PHYS 121 or PHYS 131.

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)
(formerly CSC 255) (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 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 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)
(formerly CSC 347) (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 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)
(formerly CSC 450) (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)
(formerly CSC 451) (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.

CPE 436 Microprocessor System Design Methodologies and Laboratory (4)
(Also listed as EE 436)

Classification hardware/software trade-offs, system economics and functional configurations of existing microprocessor and hardware system designs. Interface design techniques utilizing programmable I/O interfaces, real-time clocks, interrupts, and DMA channels. Representative applications. Design, construction, performance evaluation and laboratory testing of microprocessor based systems. 3 lectures, 1 laboratory. Prerequisite: CPE 215, CPE/EE 319/359, or consent of instructor.

CPE 437 Digital Computer Subsystems (3) (Also listed as EE 437)

Design of registers, counters, sequencers, encoders, decoders, memories, and other computer subsystems. Use of modern techniques and devices in implementation. Consideration given to cost, speed, and dependability. 3 lectures. Prerequisite: CPE 319. Concurrent: CPE 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 (paper devices, floppy disks, etc.) 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 436, 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)
(formerly CSC 401) (Also listed as CSC 459)

Analysis and synthesis of robust real-time systems including imbedded 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 (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 453.

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) (formerly CSC 447)
(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-3)

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 6 units. 1 to 3 lectures. Prerequisite: Consent of instructor.

CPE 471 Introduction to Computer Graphics (4)
(formerly CSC 455) (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)
(formerly CSC 456) (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)
(formerly CSC 484) (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 Systems Laboratory (1) (Also listed as EE 478)

Laboratory analysis and synthesis of digital computer subsystems. Microprogramming of a simple digital computer via computer simulation. Interfacing with digital systems. 1 laboratory. Prerequisite: CPE 359. Concurrent: CPE 437.

CPE 480 Artificial Intelligence (4)
(formerly CSC 420) (Also listed as CSC 480)

Programs and techniques that characterize artificial intelligence. Programming in LISP. 3 lectures, 1 laboratory. Prerequisite: CPE 103 and CSC 141.

CPE 481 Knowledge Based Systems (4)
(formerly CSC 421) (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 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 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)
(formerly CSC 504) (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)
(formerly CSC 506) (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 588 Computer Simulation II (4)
(formerly CSC 517) (Also listed as CSC 588)

Advanced topics in simulation. Simulation languages and systems, distributed simulation, training systems. Management of simulation projects. Verification and validation methodologies. 3 seminars, 1 laboratory. Prerequisite: CSC 587, graduate standing or consent of instructor.