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

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

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

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

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

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

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

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

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

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

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

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

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