Senior Sequence Courses

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.

drawing of computer networks

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
drawing 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
drawing 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: 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
drawing 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 or CMPSC 182
  • Fundamentals of Computer Image Processing: ECE 178
  • Introduction to Computer Vision: ECE 181 or CMPSC 181
drawing 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)
drawing 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 130ABC - Junior Year)
  • Digital Control Systems - Theory and Design: ECE 147B, 5 units
drawing of vlsi

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
illustration of Robotics

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

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
drawing of CAD

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
illustration of artificial intelligence

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 systems software architecture

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