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.
![illustration of networking points](/sites/default/files/styles/medium/public/2020-08/computer-networks-pb.jpg?itok=7CjY0UpO)
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
![illustration of Computer Systems Design](/sites/default/files/styles/medium/public/2019-05/computer-systems-for-integrated-circuits_is-up_0.jpg?h=244e00f6&itok=3-4WT4G9)
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
![illustration of Design and Test Automation](/sites/default/files/styles/medium/public/2019-06/design-test-automation-09-800.jpg?h=3fcd4e04&itok=7PlHLLBM)
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
![illustration of Distributed Systems](/sites/default/files/styles/medium/public/2019-06/distributed-systems-800_0.jpg?itok=Ut7qDteV)
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
![illustration of brain from pixaby](/sites/default/files/styles/medium/public/2019-05/machine-learning-2-pixabay.jpg?itok=b1390WwN)
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
![illustration of multimedia](/sites/default/files/styles/medium/public/2019-06/multimedia-new-800.jpg?itok=PQWO0ReV)
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
![illustration of programming languages](/sites/default/files/styles/medium/public/2019-05/program-languages-up.jpg?itok=hJlUKE-g)
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)
![illustration of real time computing](/sites/default/files/styles/medium/public/2019-06/real-time-computing-800.jpg?itok=lpyO7u3i)
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
![photo of robosimian](/sites/default/files/styles/medium/public/2019-05/robosimian-kb-up.jpg?itok=gfJl75kh)
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
![illustration of signals and systems](/sites/default/files/styles/medium/public/2019-05/sig-sys-hl-up.jpg?itok=mvoCrVWv)
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
![image of a computer screen with code](/sites/default/files/styles/medium/public/2019-05/sys-sw-arch-unsplash-2_0.jpg?itok=nKrY2aIA)
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
![illustration of VLSI board](/sites/default/files/styles/medium/public/2019-06/vlsi-800.jpg?itok=XZiF_e5-)
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