Senior Elective Sequences
During their junior year students select two sequence topics to satisfy CE Program Electives (CMPEN) taken during their senior year. For a sequence to be valid, a student must take at least two courses in the sequence topic.
Computer Networks
- Network architectures and protocols, wired and wireless networks, physical transmission media
- Multiplexing, switching, framing, error detection and correction, routing, flow control, congestion control, network security
- Network programming in C/C++ and Java
Sequence Coursework:
- Computer Networks - CMPSC 176A & CMPSC 176B
Computer Systems Design
- Technology from which modern embedded computer systems are built
- Major software and hardware components, system design issues as well as mechanisms and policies for interfacing between these components
Sequence Coursework:
- Hardware/Software Interface: ECE 153A or CMPSC 153A
- Sensor and Peripheral Interface Design: ECE 153B
Design and Test Automation
- Hardware design and verification through use of software tools: applying machine learning for data analytics in hardware design and verification process
- Design workflows to model engineering processes in hardware test and verification: capturing human perception in an engineering workflow with AI approaches
Sequence Coursework:
- Machine Learning in Design and Test Automation: ECE 157A
- Artificial Intelligence in Design and Test Automation: ECE 157B
Distributed Systems
- Distributed systems architecture, processes, communication, naming
- Synchronization, consistency and replication, fault tolerance, security
- Distributed object-based systems, file systems, web-based systems, coordination-based systems
Sequence Coursework:
- Distributed Systems: CMPSC 171
and one or both of the following courses
- Introduction to Computer Networks: CMPSC 176A
- Network Computing : CMPSC 176B
Machine Learning
- Intelligent agents; problem solving and heuristic search; knowledge representation and reasoning; uncertainty, probabilistic reasoning, and applications of AI
- Artificial neural networks; concept learning and general to specific ordering; decision tree learning; genetic algorithms; Bayesian learning; analytical learning; and others
Sequence Coursework:
- Artificial Intelligence: CMPSC 165A
- Machine Learning: CMPSC 165B
Multimedia
- Multimedia concepts and technologies, computer image processing, computer vision
- Audio and video representation, compression and standards: JPEG, MPEG, MP3, Dolby
- Use of multimedia tools for image editing, music synthesis, rendering and animation
Sequence Coursework:
Two or more of the following courses
- Multimedia Computing: ECE 160
- Fundamentals of Computer Image Processing: ECE 178
- Introduction to Computer Vision: ECE 181 or CMPSC 181
Programming Languages
- Basic techniques used in compiler construction such as lexical analysis, top-down and bottom-up parsing, context-sensitive analysis and intermediate code generation
- Data structures used in compiler construction such as abstract syntax trees, symbol tables, three-address code and stack machines
- Software tools used in compiler construction such as lexical analyzer generators (JLex) and parser generators (Java CUP)
- Construction of a compiler for a small language using the above techniques and tools
Sequence Coursework:
- Translation of Programming Languages: CMPSC 160 (NOTE: Prerequisite CMPSC 138 - Junior Year)
- Programming Languages: CMPSC 162 (NOTE: Prerequisite CMPSC 138 - Junior Year)
Real-Time Computing & Control
- Real-time embedded computing
- Theoretical understanding of real-time computing and control technology
- Clock synchronization, preplanned, rate monotonic, deadline and least-laxity scheduling, application-specific languages, timed input and output, jitter, smoothing and debouncing, safety and fault tolerance
- Lab experiments on feedback and digital control systems
Sequence Coursework:
- Feedback Control Systems - Theory and Design: ECE 147A, 5 units (NOTE: Prerequisite ECE 130AB - Junior Year)
- Digital Control Systems - Theory and Design: ECE 147B, 5 units
Robotics
- Dynamic modeling and control methods for robotic systems including
- Lagrangian method, introduction to the Jacobian, and modeling and control of forces and contact dynamics at a robotic end effector
- Motion planning and kinematics topics with an emphasis on geometric reasoning, programming, and matrix computations
Sequence Coursework:
- Introduction to Robotics - Dynamics and Control: ECE 179D
- Introduction to Robotics - Planning and Kinematics: ECE 179P
Signals and Systems
- Analysis of continuous time linear systems in the time and frequency domains
- Superposition and convolution
- Bilateral and unilateral Laplace transforms
- Fourier series and transforms
- Filtering, modulation, and feedback
- Analysis of discrete time linear systems in the time and frequency domains
- Z transforms and Discrete Fourier transforms
- Sampling and aliasing
Sequence Coursework:
- Signal Analysis & Processing: ECE 130A & ECE 130B
System Software Architecture
- The notion of a process; interprocess communication and synchronization; input-output, file systems, memory management
- Architecture; distributed programming; network of computer; message passing; remote procedure calls; group communication; naming and membership problems; asynchrony; logical time; consistency; fault tolerance; and recovery
Sequence Coursework:
- Operating Systems: CMPSC 170
- Distributed Systems: CMPSC 171
Very Large Scale Integration (VLSI)
- Modern VLSI design from devices through systems
- FET circuit design, device parasitics, high performance, low power, large-scale systems
- Enabling technology for embedded systems
- Constrained and targeted design problems
- Individual design projects using state-of-the art tools
Sequence Coursework:
- VLSI Principles: ECE 122A OR High Performance Digital Circuit Design: ECE 123
- VLSI Architecture and Design: ECE 122B