Graduate Courses - Computer Engineering
CMPE 200: Research and Teaching in Computer Science and Engineering (3 credits).F
Basic teaching techniques for teaching assistants including responsibilities and rights of teaching assistants, resource materials, computer security, leading discussion or lab sessions, presentation techniques, maintaining class records, electronic handling of homework, and grading. Examines research and professional training, including use of the library and online databases, technical typesetting, writing journal and conference papers, publishing in computer science and computer engineering, giving talks in seminars and conferences, and ethical issues in science and engineering. Required for all T.A.s. Enrollment restricted to graduate students. T. Larrabee, S. Brandt, A. Brandwajn, M. Schlag
CMPE 202: Computer Architecture. F
Provides a thorough and fundamental treatment of the art of computer architecture. Topics include concepts of von Neumann architectures, methods of evaluating CPU performance, instruction-set design and examples, compiler issues, instruction pipelining, superscalar processors, methods for reduction of branch penalty, memory hierarchies, I/O systems, floating-point arithmetic, and current issues in parallel processing. Prerequisite(s): course 110. Enrollment restricted to graduate students; undergraduates may enroll if they have completed course 110 and with consent of instructor. Enrollment limited to 30. P. Chan, R. Hughey, A. Varma, J. Renau
CMPE 220: Parallel Processing. W
Introduction to programming advanced parallel computer architecture. Topics may include: SIMD massively parallel processor arrays; streaming parallel coprocessors, such as graphics cards used for general-purpose processing (GPGPU); or other hybrid MIMD/SIMD architectures. Course has programming lab component, a project, and student presentation on related topics. Enrollment restricted to graduate students; undergraduates may enroll with permission of instructor. A. Di Blas, R. Hughey
CMPE 221: Advanced Microprocessor Design.
Introduction to latest advances in computer architecture. Focuses on processor core design. Topics include simultaneous multithreading, thread level speculation, trace caches, novel out-of-order mechanisms, and energy-efficient processor core designs. Final project is modification/enhancement of an out-of-order processor on an FPGA development system. Prerequisite(s): course 202; and course 125, 225, or equivalent Verilog experience. Concurrent enrollment in course 221L required. Enrollment restricted to graduate students. Enrollment limited to 20. J. Renau
CMPE 221L: Advanced Microprocessor Design Laboratory (3 credits).
Laboratory sequence illustrating topics covered in course 221. Prerequisite(s): course 202; and course 125, 225, or equivalent Verilog experience. Concurrent enrollment in course 221 required. Enrollment restricted to graduate students. Enrollment limited to 20. J. Renau
CMPE 222: VLSI Digital System Design. F
Introduction to Very Large Scale Integrated (VLSI) design, focusing on custom integrated circuits. Topics include logic families, FETs, interconnect models, simulation, and RC timing. Course covers the design flow from logic design to layout, with a focus on high performance and low power. Students should be familiar with RC circuit analysis. Enrollment restricted to seniors and graduate students. Undergraduates may enroll with permission of instructor. C. Bazeghi, M. Guthaus
CMPE 223: VLSI System-on-a-Chip Design. W
Design methodologies for Application Specific Integrated Circuits (ASICs). Topics include: behavioral specification; logic synthesis; standard-cell libraries; advanced timing analysis; and physical design automation tools. Familiarizes students with real-world tools during the design of a small system-on-a-chip project. Students are encouraged to fabricate and test their chips in an independent study. Prerequisite(s): course 222 or permission of instructor. Enrollment restricted to graduate students. C. Bazeghi, M. Guthaus
CMPE 224: Testing Digital Circuits. S
An introduction to the theory and practice of testing. Topics are chosen from fault and defect models, test generation for combinational and sequential circuits, fault simulation, scan-design and built-in self-test. Enrollment restricted to graduate students; undergraduates may enroll if they have completed Computer Science 101. T. Larrabee, F. Ferguson
CMPE 225: Introduction to ASIC Systems Design. S
Introduction to system prototyping using field-programmable gate arrays (FPGAs). Topics include architectures of FPGAs, behavioral design specification, system partitioning, synthesis tools, design verification, and studies of novel systems implemented with FPGAs. Intended to familiarize students with the techniques and tools in ASIC designs. Final project is the complete design of a small system using FPGAs. Enrollment restricted to graduate students; undergraduates may enroll if they have completed courses 100/L and 202. Enrollment limited to 10. Offered in alternate academic years. P. Chan
CMPE 226: Computer-Aided Analysis of Electrical Circuits.
Covers issues involved in building an electrical circuit simulator. Topics include formulation of circuit equations, device modeling, solution of systems of linear and nonlinear equations, numerical integration techniques, and switch-level timing simulation. Enrollment restricted to graduate students; undergraduates may enroll if they have completed courses 171/L. Offered in alternate academic years. P. Chan
CMPE 229: Field-Programmable Gate Arrays Computer-Assisted Design.
Design methods for Field-Programmable Gate Arrays (FGPAs), including algorithms for technology mapping, routability estimation, placement, and routing. The relationship between FPGA architectures and their computer-aided design tools. Course project involves the modification and analysis of an FPGA tool. Enrollment restricted to graduate students or by consent of instructor. Courses 100, 125, 126, 222, 225, or other digital design experience recommended. Enrollment limited to 20. M. Schlag
CMPE 230: Computer Performance Evaluation. W
Introduction to methods of analysis of computer system performance. Predictive performance models with emphasis on queuing models; exact and appropriate solution methods, discrete-event simulation, and numeric iterative approaches; analytical solutions and their computation; separable queuing networks, decomposition approaches; examples of practical application; and performance measurement, model validation, robustness of models, and operational analysis. Enrollment restricted to graduate students. Enrollment limited to 20. Offered in alternate academic years. A. Brandwajn
CMPE 232: Arithmetic Processors.
Concept of number systems: binary additions, multiplications, divisions; elementary function evaluations; algorithm acceleration; floating-point and significant arithmetics; IEEE standards; technology related issues; algorithm evaluation by implementation with gate arrays. Prerequisite(s): course 202. Enrollment restricted to graduate students. Enrollment limited to 15. P. Chan
CMPE 240: Introduction to Linear Dynamical Systems. F
Introduction to applied linear algebra and linear dynamical systems with applications to circuits, signal processing, communications, and control systems. Topics include the following: Least-squares approximations of over-determined equations and least-norm solutions of underdetermined equations. Symmetric matrices, matrix norm and singular value decomposition. Eigenvalues, left and right eigenvectors, and dynamical interpretation. Matrix exponential, stability, and asymptotic behavior. Multi-input multi-output systems, impulse and step matrices; convolution and transfer matrix descriptions. Control, reachability, state transfer, and least-norm inputs. Observability and least-squares state estimation. Enrollment restricted to graduate students; undergraduates may enroll if they have completed Electrical Engineering 103 and Applied Math and Statistics 147. G. Elkaim, K. Ross, W. Dunbar, J. Cortes
CMPE 241: Introduction to Feedback Control Systems. W
Graduate-level introduction to control of continuous linear systems using classical feedback techniques. Design of feedback controllers for command-following error, disturbance rejection, stability, and dynamic response specifications. Root locus and frequency response design techniques. Extensive use of Matlab for computer-aided controller design. Course has concurrent lectures with Electrical Engineering 154. (Also offered as Electrical Engineering 241. Students cannot receive credit for both courses.) Enrollment restricted to graduate students. G. Elkaim, W. Dunbar, J. Cortes
CMPE 242: Applied Feedback Control. *
Sequel to Electrical Engineering 154. After reviewing control design techniques examined in EE 154, this course explores state space control, discrete time control, and two case studies in control design. Students design and implement feedback controllers on an inverted pendulum experiment. Prerequisite(s): Electrical Engineering 154 or course 241. Enrollment restricted to juniors, seniors, and graduate students. W. Dunbar
CMPE 243: System Identification. *
Course provides introduction to the construction of linear dynamical models from experimental data using parametric and non-parametric identification techniques. Theoretical and practical aspects of these techniques addressed. Prerequisite(s): course 240, or by permission of instructor. G. Elkaim, W. Dunbar
CMPE 248: Games in Design and Control. S
Graduate-level introduction to game theory and its applications to system design, verification, analysis, and optimal control. Enrollment restricted to graduate students. Computer Science 101, 201, or equivalent recommended. L. De Alfaro
CMPE 250: Multimedia Systems. W
Study of state-of-the-art technology for networked multimedia systems. Topics include audio, image, and video acquisition and compression standards (JPEG, MPEG, and ITU families); networking for multimedia; and digital television. Proficiency in C or C++ required. Prerequisite(s): Enrollment restricted to graduate students. R. Manduchi
CMPE 251: Error-Control Coding.
Overview of coding to protect messages against error during transmission or storage. Topics include channel models, linear algebra over finite fields, linear block codes and bounds, cyclic codes (BCH and RS), decoding algorithms, spectral analysis, codes on graphs, and low-complexity algorithms. Enrollment restricted to graduate students or consent of instructor. H. Sadjadpour
CMPE 252A: Computer Networks. F
Issues resulting from organizing communication among autonomous computers. Includes network models and switching techniques; medium access control protocols and local area networks; error control and retransmission strategies; routing algorithms and protocols; congestion control mechanisms and end-to-end protocols; application-level protocols; and application of concepts to wireless and wireline networks, with emphasis on the Internet. Enrollment restricted to graduate students. J. Garcia-Luna-Aceves
CMPE 252B: Modeling of Communications Protocols.
Theory and practice of computer communication networks. Emphasis is on verification and performance analysis of network control processes. Topics include protocols for channel access, point-to-point and multipoint reliable transmission, routing, congestion control, network management, multicasting, and ATM networks. Prerequisite(s): courses 107 and 252A. J. Garcia-Luna-Aceves, A. Varma
CMPE 253: Network Security.
Fundamental mechanisms for network security and their application in widely deployed protocols. In-depth treatment of security mechanism at the data-link, network, and transport layers for both wired and wireless networks. Covers mechanisms for privacy and integrity, and methods for intrusion detection. Prerequisite(s): course 252A and Computer Science 201. Enrollment restricted to graduate students. A. Varma
CMPE 254: High Speed Computer Networks. S
Fiber-optic technology; fiber-optic link design; network protocol concepts; coding and error control; high-speed local area and metropolitan area networks; gigabit networks; error and congestion control; photonic networks; research topics. Prerequisite(s): course 252B. Offered in alternate academic years. A. Varma
CMPE 256: Design Project in Computer Networks. W
Students develop a working implementation of a network protocol with the goal of obtaining hands-on experience in implementing real-world network protocols. Prerequisite(s): course 252A; enrollment restricted to graduate students. A. Varma
CMPE 257: Wireless and Mobile Networks. W
An interdisciplinary course on wireless communication and mobile computing. Covers the physical aspects of wireless communication but emphasizes higher protocol layers. Topics include cellular networks, packet radio and ad hoc networks, wireless transport protocols, security, and application-level issues. Prerequisite(s): course 252A or permission of instructor. Enrollment limited to 20. J. Garcia-Luna-Aceves, K. Obraczka
CMPE 258: Unix Networking Internals.
In-depth treatment of the implementation of network protocols in typical open-source Unix systems. Topics include implementation of send and receive functions, buffer management, interrupt handling, locking, scheduling and timer management. Major implementation project required. Prerequisite(s): course 252A. Computer Science 111 recommended. Enrollment restricted to graduate students. A. Varma
CMPE 259: Sensor Networks. S
Focus is on the networking aspects of sensor networks: protocols at the various layers and how they answer the specific requirements posed by these networks (e.g., data driven, energy efficient, etc.) and their applications (monitoring, tracking, etc.). Explore how physical layer and hardware issues may influence protocol design. Courses 252A and 257 recommended. K. Obraczka
CMPE 263: Data Compression. F
Introduction to information theory and data compression. Lossless coding (Huffman, arithmetic, dictionary codes). Lossy coding (scalar and vector quantization, differential coding, transform coding). Applications to the compression of real data sets (DNA sequences, biological time series, multimedia streams). Concurrent lectures with course 108. Students cannot receive credit for both this course and course 108. Students must have basic knowledge of probability theory. Enrollment restricted to graduate students. R. Manduchi
CMPE 264: Image Analysis and Computer Vision. S
Brief review of image processing. Binary images, thresholding, morphological operations; edge detection and segmentation; contours: digital curves and curve fitting; statistical texture analysis, shape from texture; depth cues, stereo matching, depth from stereo; color perception and segmentation; and shading and image radiance, surface orientation, and shape from shading. Electrical Engineering 264 encouraged, but not required. Undergraduate students who are interested in enrolling should meet with the instructor first. H. Tao
CMPE 276: Software Engineering.
Introduction to the general principles of software engineering. Covers current and classical topics from both practical and theoretical viewpoints. Topics include software evolution, project management, software inspections, design methods, requirements analysis and specification, software testing, maintenance, software implementation, human interfaces, and software engineering experimentation. Enrollment restricted to graduate students; undergraduates may enroll in this course if they have completed Computer Science 115. The Staff
CMPE 277: Graph Algorithms. W
Explores graph theory and algorithms for solving problems in engineering. A review of basic graph concepts and algorithms is followed by topics in network flow, partitioning, spectral analysis of graphs, graph isomorphism, and intractability. Prerequisite(s): Computer Science 101 and 102; or course 177; or Computer Science 201; or equivalent. Enrollment restricted to graduate students. Enrollment limited to 20. M. Schlag
CMPE 278: Introduction to the Theory of Discrete Systems. F
Introduction to methods for modeling, analyzing, and reasoning about discrete systems, such as hardware and software designs. First part of course presents basic models for hardware and software systems and introduces methods for system specification, verification, abstraction, and stepwise refinement of a design into an implementation. Second part discusses role of structure: hierarchy, system composition, and interface specification. Prerequisite(s): some mathematical background is assumed. Enrollment restricted to graduate students or by permission of instructor. L. De Alfaro
CMPE 280C: Seminar on Control (2 credits).F,W,S
Weekly seminar series covering topics of current research in theory and application of control to engineering systems. Current research work and literature in these areas discussed. Enrollment restricted to graduate students; undergraduates may enroll with permission of instructor. May be repeated for credit. G. Elkaim, K. Ross, W. Dunbar, J. Cortes
CMPE 280N: Seminar on Networks (2 credits).F,W,S
Weekly seminar series covering topics of current research in networks and networked systems. Current research work and literature in these areas are discussed. Prerequisite(s): permission of instructor. Enrollment restricted to graduate students. May be repeated for credit. J. Garcia-Luna-Aceves, K. Obraczka
CMPE 280P: Seminar on Parallel Processing (2 credits).F,W,S
Weekly seminar series covering topics of current research in parallel systems, architectures, and algorithms. Current research work and literature in these areas are discussed. Enrollment restricted to graduate students. Enrollment limited to 20. May be repeated for credit. R. Hughey, J. Renau, M. Guthaus
CMPE 280T: Seminar on New Technologies (2 credits).*
Weekly seminar series in which distinguished speakers from industry, universities, and government discuss current developments in networking and computer technology. The emphasis is on open research questions that may lead to collaborative work with faculty and graduate students. The Staff
CMPE 280V: Seminar on Computer Vision (2 credits).F,W,S
Weekly graduate-level seminar series discussing advanced topics in computer vision and image analysis. Current research and literature presented during each meeting. Enrollment limited to 20. May be repeated for credit. H. Tao, R. Manduchi
CMPE 285: Technical Writing for Engineering Graduates.
Writing skills development for graduate engineers. Students produce a major writing project with many subtasks. Exercises includes fellowship application; mathematical and algorithmic description; use of tables and graphs; experiment description; and producing technical web sites, presentations, and posters. Enrollment restricted to graduate biomolecular engineering, computer engineering, computer science, and electrical engineering majors. (Open to all School of Engineering graduate students.) Enrollment limited to 20. T. Larrabee, (S) The Staff
CMPE 290L: Advanced Topics in VLSI Computer-Aided Design.
A graduate course on a research topic in VLSI computer-aided design. Topic varies according to instructor. Possible topics include, but are not limited to specification languages and formal verification, logic minimization, testing and verification, electrical simulation, layout synthesis, and behavioral synthesis. Course 100, 125, 126, 222, or 225 recommended. Offered in alternate academic years. P. Chan, T. Larrabee, F. Ferguson, M. Schlag
CMPE 290M: Topics in Parallel Computation.
Investigates selected topics in applied parallel computation. Topics may include numerical methods, artificial intelligence and machine learning algorithms, graphics and image processing, systolic algorithms, and the interplay between hardware and algorithms. Students are encouraged to investigate and discuss the parallelization of their own research. Enrollment restricted to graduate students. R. Hughey
CMPE 290N: Topics in Computer Performance.
Selected topics of current interest in the area of computer system performance. Subjects may include aspects of large systems, performability, computer networks, storage subsystems, and nontraditional approaches and are subject to periodic revision. Enrollment restricted to graduate students. Offered in alternate academic years. A. Brandwajn
CMPE 290V: Advanced Topics in Visual Computing.
Advanced course in image analysis and computer vision. Topics include motion analysis, multiple view geometry, 3D reconstruction, image-based rendering, vision-based graphics, face detection and recognition, tracking, image and video retrieval, and human-computer interface. Enrollment restricted to seniors and graduate students. Enrollment limited to 20. H. Tao, S. Lodha
CMPE 293: Advanced Topics in Computer Engineering. S
A graduate seminar on a research topic in computer engineering which varies according to instructor. Possible topics include, but are not limited to, communication networks, data compression, special-purpose architectures, computer arithmetic, software reliability and reusability, systolic arrays. The Staff
CMPE 297: Independent Study or Research. F,W,S
Independent study or research under faculty supervision. Students submit petition to sponsoring agency. The Staff
CMPE 299: Thesis Research. F,W,S
Thesis research conducted under faculty supervision. Students submit petition to sponsoring agency. The Staff* - Not currently offered.

