Computer Engineering - Undergraduate Courses
CMPE 001: Hands-On Computer Engineering (2 credits).F,W,S
Hands-on introduction to computer engineering practice and research, including digital systems, computer networks, robotics, multimedia systems, embedded systems, and computer architecture. Designed for students without previous background in computer engineering. Preference given to students considering the computer engineering major. Enrollment restricted to first-year students and sophomores. Other students may contact faculty for permission number. Enrollment limited to 30. T. Larrabee, R. Hughey, S. Petersen
CMPE 003: Personal Computer Concepts: Software and Hardware. F,W,S
Provides an introduction to computers. Personal computing is emphasized, and students are introduced to word processing, spreadsheets, database management, graphics, and programming. Covers fundamentals of computing and current and future uses of computer technology, PC hardware, Windows operating system, applications software, networking and the Internet, and developments in the computer industry. Designed for students with little or no experience using computers. Students cannot receive credit for this course and Computer Science 2. (General Education Code(s): IN.) The Staff
CMPE 008: Robot Automation: Intelligence through Feedback Control. F
Introduction to dynamical systems, feedback control, and robotics. Fundamental concepts in dynamical systems, modeling, stability analysis, robustness to uncertainty, feedback as it occurs naturally, and the design of feedback-control laws to engineer desirable static and dynamic response. Course includes an introduction to MATLAB and programming in MATLAB. Enrollment restricted to first-year students and sophomores. (General Education Code(s): Q.) W. Dunbar
CMPE 012: Computer Systems and Assembly Language. F,W,S
Introduction to computer systems and assembly language and how computers compute in hardware and software. Topics include digital logic, number systems, data structures, compiling/assembly process, basics of system software, and computer architecture. May include C language. Prerequisite(s): course 3 or 8, or Computer Science 10 or 12A or 60G or 60N, or Biomolecular Engineering 60, or suitable programming experience; previous or concurrent enrollment in course 12L required. (General Education Code(s): IN, Q.) T. Larrabee, R. Hughey, F. Ferguson, G. Elkaim
CMPE 012L: Computer Systems and Assembly Language Laboratory (2 credits).F,W,S
Laboratory sequence in assembly language programming. The basics of logic design, both RISC and microcontroller programming. May include C language programming. Two two-hour laboratories per week . Prerequisite(s): course 3 or 8, or Computer Science 10 or 12A or 60G or 60N, or Biomolecular Engineering 60, or suitable programming experience; previous or concurrent enrollment in course 12 required. T. Larrabee, R. Hughey, F. Ferguson, G. Elkaim
CMPE 016: Applied Discrete Mathematics. F,W
Introduction to applications of discrete mathematical systems. Topics include sets, functions, relations, graphs, trees, switching algebra, first order predicate calculus, mathematical induction, permutations, combinations, summation, and recurrences. Examples drawn from computer science and computer engineering. Prerequisite(s): eligibility to enroll in Mathematics 19A (completion of Mathematics 2B or 3 or Mathematics Placement Exam score of 40 or higher) or completion of Mathematics 19A or 11A. (General Education Code(s): Q.) H. Tao, T. Larrabee, M. Schlag, L. De Alfaro
CMPE 080A: Universal Access: Disability, Technology, and Society. W
Overview of human-centered technology and of its potential for increasing the quality of life and independence of disabled individuals. A substantial portion of the course is devoted to studying physical, psychological, and psychosocial aspects of disability. Topics include: diversity and integration, legislation, accessibility, and universal design. (FormerlyAssistive Technology and Universal Access.) (General Education Code(s): T7-Natural Sciences or Social Sciences.) R. Manduchi
CMPE 080E: Engineering Ethics. S
Ethical theories, analysis, and their application to issues in the practice of engineering, such as safety and liability, professional responsibility to clients and employers, codes of ethics, legal obligations, environmental issues, and social issues. Emphasis on developing independent ethical analysis through the use of case studies. (General Education Code(s): T6-Natural Sciences or Humanities and Arts.) The Staff
CMPE 080H: History of Modern Computing.
Presents a history of the development of computing technologies (CPUs and I/O devices, operating systems, and languages) through the latter half of the 20th century in order to build an understanding of how today's computing environment evolved. (General Education Code(s): T2-Natural Sciences.) D. Pease
CMPE 080N: Introduction to Networking and the Internet. F,S
Introduction to the evolution, technological basis, and services of the Internet, with descriptions of its underlying communications structure, routing algorithms, peer-to-peer hierarchy, reliability, and packet switching. Network security, mail, multimedia and data compression issues, HTML, and digital images. Students who have completed course 150 cannot receive credit for this course. (General Education Code(s): T2-Natural Sciences.) R. Manduchi, K. Obraczka, A. Varma
CMPE 080U: Ubiquitous and Mobile Computing. W
Ubiquitous computing integrates computer and communication technology with day-to-day life. Ubiquitous and mobile technology includes: MP-3 players, camera cell phones, Bluetooth headsets, sensor networks, and new emerging technologies. Course provides an overview of the technology and economics of ubiquitous computing. (General Education Code(s): T2-Natural Sciences.) H. Tao, R. Manduchi
CMPE 094: Group Tutorial. F,W,S
Provides a means for a small group of students to study a particular topic in consultation with a faculty sponsor. Students submit petition to sponsoring agency. May be repeated for credit. The Staff
CMPE 094F: Group Tutorial (2 credits).F,W,S
Provides a means for a small group of students to study a particular topic in consultation with a faculty sponsor. Students submit petition to sponsoring agency. May be repeated for credit. The Staff
CMPE 099: Tutorial. F,W,S
Students submit petition to sponsoring agency. May be repeated for credit. The Staff
CMPE 099F: Tutorial (2 credits).F,W,S
Students submit petition to sponsoring agency. May be repeated for credit. The Staff
CMPE 100: Logic Design. W,S
Boolean algebra, logic minimization, finite-state machine design, sequential circuits, common logic elements, programmable logic devices, and an introduction to system level design. The electrical behavior of circuits including three state outputs, propagation delay, logic levels, and fanout. Prerequisite(s): courses 12 and 12L; previous or concurrent enrollment in course 100L required. Enrollment limited to 60. T. Larrabee, M. Schlag, S. Petersen
CMPE 100L: Logic Design Laboratory (2 credits).W,S
Laboratory sequence illustrating topics covered in course 100. One two-hour laboratory session per week. Weekly laboratory assignments which require the use of the oscilloscopes, TTL circuits, computer-aided design and simulation tools, and programmable logic. Students are billed a materials fee. Prerequisite(s): courses 12 and 12L; previous or concurrent enrollment in course 100 required. Enrollment limited to 60. T. Larrabee, M. Schlag, S. Petersen
CMPE 107: Mathematical Methods of Systems Analysis: Stochastic. F,W
Introduction to fundamental tools of stochastic analysis. Probability, conditional probability, Bayes Theorem, random variables, independence, Poisson processes, Bernnoulli trials, and Markov chains. Instructor's choice of additional topics, most likely drawn from confidence measures, difference equations, transform methods, stability issues, applications to reliability, queues, and hidden Markov models. Students cannot receive credit for this course and Applied Mathematics and Statistics 131. Prerequisite(s): course 16 or 16H and Mathematics 22 or 23A. R. Manduchi, A. Brandwajn
CMPE 108: Data Compression. F
Basics of information theory, lossless coding (Huffman coding, arithmetic coding, dictionary coding), lossy coding (PCM, predictive coding, transform coding). Application to the compression of specific data set, which may include biological time series, DNA sequences, and multimedia streams. Prerequisite(s): course 107 or Applied Mathematics and Statistics 131; and Computer Science 101. R. Manduchi
CMPE 110: Computer Architecture. W
Introduction to computer architecture including examples of current approaches and the effect of technology and software. Computer performance evaluation, basic combinatorial and sequential digital components, different instruction set architectures with a focus on the MIPS ISA and RISC paradigm. Evolution of CPU microarchitecture from single-cycle to multi-cycle pipelines, with overview of super-scalar, multiple-issue and VLIW. Memory system, cache, virtual memory and relationship between memory and performance. Evolution of PC system architecture. May include advanced topics, such as parallel processing, MIMD, and SIMD. Prerequisite(s): courses 12, 12L, and 16. A. Di Blas, R. Hughey, F. Ferguson, A. Brandwajn, J. Renau
CMPE 113: Parallel and Concurrent Programming.
Introduction to parallel and concurrent programming. Topics include types of parallel computers and programming platforms, basic and advanced programming techniques in C with MPI and OpenMP, performance analysis and load balancing, and selected parallel algorithms. Students must have a discrete working knowledge of the C programming language and a user-level familiarity with the Unix operating system. Prerequisite(s): Computer Science 12B. A. Di Blas, R. Hughey, K. Obraczka, L. De Alfaro
CMPE 117: Embedded Software. S
Introduction to software design for embedded systems. Emphasis on real-time embedded systems as follows: fundamentals of scheduling for real-time systems, real-time operating systems, and real-time protocols for distributed real-time systems; time-triggered and event-triggered paradigms for embedded software development, their tradeoffs, and languages and tools for development of embedded software. Prerequisite(s): course 121 or Computer Science 111; previous or concurrent enrollment in course 117L required. Enrollment limited to 20. L. De Alfaro
CMPE 117L: Embedded Software Laboratory (2 credits).S
Gain experience in the practical aspects of embedded programming by writing several programs for small robots. Emphasis is to provide experience in a spectrum of programming paradigms (even-triggered, time-triggered), communication paradigms (synchronous and asynchronous programming), and programming languages (both C/C++ and more specialized languages for embedded programming). Students are billed a materials fee. Concurrent enrollment in course 117 is required. Enrollment limited to 30. L. De Alfaro
CMPE 118: Introduction to Mechatronics. W
Technologies involved in mechatronics (intelligent electro-mechanical systems) and techniques necessary to integrate these technologies into mechatronic systems. Topics include electronics (A/D, D/A converters, opamps, filters, power devices), software program design (event-driven programming, state machine-based design), DC and stepper motors, basic sensing, and basic mechanical design (machine elements and mechanical CAD). Combines lab component of structured assignments with a large and open-ended team project. Prerequisite(s): Electrical Engineering 70/L and course 12/L or equivalent. Concurrent enrollment in course 118L is required. Enrollment limited to 36. G. Elkaim
CMPE 118L: Introduction to Mechatronics Laboratory (2 credits).W
Technologies involved in mechatronics (intelligent electro-mechanical systems) and techniques necessary to integrate these technologies into mechatronic systems. Topics include electronics (A/D, D/A converters, opamps, filters, power devices), software program design (event-driven programming, state machine-based design), DC and stepper motors, basic sensing, and basic mechanical design (machine elements and mechanical CAD). Combines lab component of structured assignments with a large and open-ended team project. Students are billed a materials fee. Prerequisite(s): Electrical Engineering 70/L and course 12/L or equivalent. Concurrent enrollment in course 118 is required. Enrollment limited to 36. G. Elkaim
CMPE 121: Microprocessor System Design. F,S
The design and use of microprocessor-based systems. Covers microprocessor and microcontroller architecture, programming techniques, bus and memory organization, DMA, timing issues, interrupts, peripheral devices, serial and parallel communication, and interfacing to analog and digital systems. Prerequisite(s): courses 12/L and 100/L; Electrical Engineering 70/L; previous or concurrent enrollment in course 121L required. Enrollment limited to 40. P. Chan, R. Hughey, S. Petersen
CMPE 121L: Microprocessor System Design Laboratory (2 credits).F,S
Laboratory sequence illustrating topics covered in course 121. One two-hour laboratory session per week. Students design, build, program, debug, document, and demonstrate a microprocessor-based system. Students are billed a materials fee. Prerequisite(s): courses 12C/L and 100/L; Electrical Engineering 70/L; previous or concurrent enrollment in course 121 required. Enrollment limited to 40. P. Chan, R. Hughey, S. Petersen
CMPE 123A: Engineering Design Project I. F,W
First of a two-course sequence that is the culmination of the engineering program. Students apply knowledge and skills gained in elective track to complete a major design project. Students complete research, specification, planning, and procurement for a substantial project. Includes technical discussions, design reviews, and formal presentations; engineering design cycle, engineering teams, and professional practices. Formal technical specification of the approved project is presented to faculty. Prerequisite(s): Electrical Engineering 171 or Computer Engineering 121; previous or concurrent enrollment in Computer Engineering 185; permission of department and instructor. Students are billed a materials fee. (Also offered as Electrical Engineering 123A. Students cannot receive credit for both courses.) The Staff
CMPE 123B: Engineering Design Project II (7 credits).W,S
Second of two-course sequence in engineering system design. Students fully implement and test system designed and specified in course 123A. Formal written report, oral presentation, and demonstration of successful project to review panel of engineering faculty required. Students are billed a materials fee. (Also offered as Electrical Engineering 123B. Students cannot receive credit for both courses.) Prerequisite(s): courses 123A and 185. Enrollment limited to 35. The Staff
CMPE 125: Logic Design with Verilog. F
Verilog digital logic design with emphasis on ASIC and FPGA design. Students design and verify large-scale systems. Assignments and project use the Verilog Hardware Description Language with emphasis on verification and high-frequency ASIC/FPGA targets. Prerequisite(s): courses 100 and 100L; and electrical engineering 70 and 70L. Concurrent enrollment in course 125L required. Enrollment limited to 40. P. Chan, A. Varma, M. Schlag, J. Renau, M. Guthaus
CMPE 125L: Logic Design with Verilog Laboratory (2 credits).F
Laboratory sequence illustrating topics covered in course 125. One two-hour laboratory session per week. Students are billed a materials fee. Prerequisite(s): courses 100 and 100L; electrical engineering 70 and 70L. Concurrent enrollment in course 125 is required. Enrollment limited to 40. P. Chan, A. Varma, M. Schlag, J. Renau, M. Guthaus
CMPE 126: Advanced Logic Design. S
Digital logic and system-level design using state-of-the-art FPGA tools. Students design large-scale logic circuits from fundamental building blocks and methods using design-automation tools. All examples and assignments use the Verilog Hardware Description Language with emphasis on FPGA systems. Prerequisite(s): courses 100 and 100L; electrical engineering 70 and 70L. Concurrent enrollment in course 126L is required. Enrollment limited to 20. P. Chan, A. Varma, M. Schlag, J. Renau, M. Guthaus
CMPE 126L: Advanced Logic Design Laboratory (2 credits).S
Laboratory sequence illustrating topics in course 126. One four-hour laboratory session per week. Students use computer-aided design tools for the specification, design, and verification of digital systems. Students implement and realize a digital system using field-programmable gate arrays. Students are billed a materials fee. Prerequisite(s): courses 100 and 100L; electrical engineering 70 and 70L. Concurrent enrollment in course 126 is required. Enrollment limited to 20. P. Chan, A. Varma, M. Schlag, J. Renau, M. Guthaus
CMPE 150: Introduction to Computer Networks. F
Addresses issues arising in organizing communications among autonomous computers. Network models and conceptual layers; Internet-working; characteristics of transmission media; switching techniques (packet switching, circuit switching, cell switching); medium access control (MAC) protocols and local area networks; error-control strategies and link-level protocols; routing algorithms for bridges and routers; congestion control mechanisms; transport protocols; application of concepts to practical wireless and wireline networks and standard protocol architectures. Students who have completed course 80N can take this course for credit. Students are billed for a materials fee. Prerequisite(s): courses 12, 12L, and 16 or 16H. J. Garcia-Luna-Aceves, K. Obraczka, A. Varma
CMPE 151: Network Administration.
Projects include installing and configuring (client and server) machines, configuring network routing, setting up firewalls and network appliances, and setting up and using wireless networks. Includes lectures, projects presented, and discussions. Requires formal written reports, oral presentations, and demonstrations of projects. Students are billed a materials fee. Prerequisite(s): course 150. Enrollment limited to 30. K. Obraczka
CMPE 152: Analysis and Design of Communication Protocols.
Analysis and design of communication protocols for computer networks. Random processes and queueing theory applied to performance analysis of communication protocols, protocol verification methods, channel access protocols, protocols for point-to-point and point-to-multipoint reliable transmission, routing protocols, multicast protocols, and congestion control protocols. Prerequisite(s): courses 107 and 150. J. Garcia-Luna-Aceves
CMPE 153: Digital Signal Processing. S
Introduction to the principles of signal processing, including discrete-time signals and systems, the z-transform, sampling of continuous-time signals, transform analysis of linear time-invariant systems, structures for discrete-time systems, the discrete fourier transform, computation of the discrete fourier transform, and filter design techniques. Taught in conjunction with Electrical Engineering 250. Students cannot receive credit for this course and Electrical Engineering 250. (Also offered as Electrical Engineering 153. Students cannot receive credit for both courses.) Prerequisite(s): Electrical Engineering 103. The Staff
CMPE 156: Network Programming.
Methods and tools used for network programming. Topics include inter-process communication (IPC), facilities such as pipes, shared memory, semaphores, sockets, and remote procedure call (RPC); design of client and server sides of network applications; CGI programming; and programming projects. Prerequisites: course 150 and Computer Science 111. Concurrent enrollment in course 156L required. K. Obraczka, A. Varma
CMPE 156L: Network Programming Laboratory (2 credits).
Laboratory sequence illustrating concepts taught in course 156. Learn use of network programming tools and methods via programming exercises. Students are billed a materials fee. Prerequisites: course 150 and Computer Science 111. Concurrent enrollment in course 156 required. K. Obraczka, A. Varma
CMPE 167: Sensing and Sensor Technologies.
Introduces the fundamental issues in sensing and various sensor technologies including motion sensors, velocity sensors, GPS sensors, acoustic sensors, light and image sensors, and range sensors. Also demonstrates sensor technologies using a system approach to show how they can be integrated into a complete digital system. Prerequisite(s): course 100 and Electrical Engineering 70. Concurrent enrollment in course 167L is required. H. Tao, G. Elkaim
CMPE 167L: Sensing and Sensor Technologies Lab (2 credits).
Lab assignments reinforce the concepts and techniques learned in course 167. Assignments include measurement and estimation techniques, experiments with various sensors, and a course project in which students build digital sensing systems. Students are billed a materials fee. Prerequisite(s): course 100 and Electrical Engineering 70. Concurrent enrollment in course 167 is required. H. Tao, G. Elkaim
CMPE 173: High-Speed Digital Design. W
Studies of analog circuit principles relevant to high-speed digital design: signal propagation, crosstalk, and electromagnetic interference. Topics include electrical characteristics of digital circuits, interfacing different logic families, measurement techniques, transmission lines, ground planes and grounding, terminations, power systems, connectors/ribbon cables, clock distribution, shielding, electromagnetic compatibility and noise suppression, and bus architectures. Prerequisite(s): Electrical Engineering 70, 70L and course 174. Electrical Engineering 171 and course 121 recommended. Previous or concurrent enrollment in course 173L required. Enrollment limited to 30. P. Chan, S. Petersen
CMPE 173L: High-Speed Digital Design Laboratory (2 credits).W
Laboratory sequence illustrating topics covered in course 173. One two-hour laboratory session per week. Students are billed a materials fee. Prerequisite(s): Electrical Engineering 70, 70L and course 174. Electrical Engineering 171 and course 121 recommended. Previous or concurrent enrollment in course 173 required. Enrollment limited to 30. P. Chan, S. Petersen
CMPE 174: Introduction to EDA Tools for PCB Design (3 credits).F
Focus on EDA tools for design of printed-circuit boards. Elements of design flow covered: schematic capture and simulation to final PCB layout. Final project is required. Students are billed a materials fee. Prerequisite(s): Electrical Engineering 70 or consent of instructor. S. Petersen
CMPE 177: Applied Graph Theory and Algorithms.
Basic concepts and algorithms are reviewed including trees, Eulerian and Hamiltonian graphs, and graph transversal. Algorithms are explored to solve problems in connectivity, routing, matching, and embedding of graphs. Graph theory and algorithms are developed around applications in computer engineering. Prerequisite(s): Computer Science 101. M. Schlag
CMPE 185: Technical Writing for Computer Engineers. F,W
Writing by engineers and computer scientists, not to general audiences, but to engineers, engineering managers, and technical writers. Exercises include job application and resume, in-code documentation, algorithm description, naive-user documentation, library puzzle, survey article, proposal, progress report, formal technical report, and oral presentation. Offered in alternate quarters. Prerequisite(s): satisfaction of Entry Level Writing and Composition requirements; Computer Science 12B or 13H or Computer Engineering 12. Enrollment restricted to School of Engineering majors. Enrollment limited to 60. (General Education Code(s): W.) G. Moulds, T. Larrabee
CMPE 193: Field Study. F,W,S
Provides for individual programs of study with specific academic objectives carried out under the direction of a faculty member of the Computer Engineering Department and a willing sponsor at the field site using resources not normally available on campus. Credit is based on the presentation of evidence of achieving the objectives by submitting a written and oral presentation. May not normally be repeated for credit. Students submit petition to sponsoring agency. The Staff
CMPE 193F: Field Study (2 credits).F,W,S
Provides for individual programs of study with specific academic objectives carried out under the direction of a faculty member of the Computer Engineering Department and a willing sponsor at the field site using resources not normally available on campus. Credit is based on the presentation of evidence of achieving the objectives by submitting a written and oral presentation. May not normally be repeated for credit. Students submit petition to sponsoring agency. The Staff
CMPE 194: Group Tutorial. F,W,S
A program of independent study arranged between a group of students and a faculty member. Students submit petition to sponsoring agency. May be repeated for credit. The Staff
CMPE 194F: Group Tutorial (2 credits).F,W,S
A program of independent study arranged between a group of students and a faculty member. Students submit petition to sponsoring agency. May be repeated for credit. The Staff
CMPE 195: Senior Thesis Research. F,W,S
Students submit petition to sponsoring agency. Prerequisite: course 123A. The Staff
CMPE 195F: Senior Thesis Research (2 credits).F,W,S
Students submit petition to sponsoring agency. Consent of instructor required. Prerequisite: course 123A. The Staff
CMPE 198: Individual Study or Research. F,W,S
Students submit petition to sponsoring agency. May be repeated for credit. The Staff
CMPE 198F: Individual Study or Research (2 credits).F,W,S
Students submit petition to sponsoring agency. May be repeated for credit. The Staff
CMPE 199: Tutorial. F,W,S
For fourth-year students majoring in computer engineering. Students submit petition to sponsoring agency. May be repeated for credit. The Staff* - Not currently offered.

