During the junior year the student will select two sequence topics to satisfy CE Program Electives (CMPEN) during his/her senior year (see Degree Requirements > Major Requirements > Senior Elective Study Plan). 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 - ECE 155A & ECE 155B or 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
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: ECE 151 or CMPSC 171
and one or both of the following courses
- Introduction to Computer Networks: ECE 155A or CMPSC 176A
- Network Computing : ECE 155B or CMPSC 176B
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 or CMPSC 182
- 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 130ABC - Junior Year)
- Digital Control Systems - Theory and Design: ECE 147B, 5 units
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 /124A OR High Performance Digital Circuit Design: ECE 123
- VLSI Architecture and Design: ECE 122B / ECE 124D
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
"Robosimian" image is Courtesy of NASA/JPL-Caltech
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
Design and Test Automation
- System design and verification through use of software tools: simplify complex designs and ensure testability of systems
- Design aids in the form of analysis and optimization tools: potential for undergraduate research at UCSB
Sequence Coursework:
- Digital Design with VHDL and Synthesis: ECE 156A
- Computer-Aided Design of VLSI Circuits: ECE 156B
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
System Software Architecture
- The notion of a process; interprocess communication and synchronization; input-output, file systems, memory managemen
- 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: ECE 151 / CMPSC 171