ECE Special Topics Courses
Quantum mechanics is one of the most important discoveries in the 20thcentury and has reshaped today’s science and technology. The rapid development in quantum computation and information is calling for a revolution in engineering and computation. Quantum information and quantum computing is fundamentally different from the classical computers. In order to understand how to build and use a quantum computer, we will review the birth of quantum mechanics and introduce the basic ideas and principles of quantum mechanics. The fundamental concepts in quantum information and computing, such as qubit, entanglement and squeezing, will be discussed. Finally, we will take a quick tour at the physics platform candidates for quantum computing implementation, and the IBM Q quantum computing resources.
Course objectives:
- To expose our students to the basic concepts and principles of quantum mechanics.
- To provide students with the tool to solve simple quantum problems using Schrödinger equation.
- To introduce the ideas and concepts of quantum computation and quantum information.
Note: The course will differentiate itself from the Quantum Mechanics course (PHY 3650, 3660) taught in Physics department. We will not explore the contents where nontrivial mathematical formalism, such as complex Hilbert space, are required. Contents that are physics oriented will be avoided as well, such as identical particle statistics, the variational principle, the WKB approximation, scattering and partial wave analysis.
This course is an introduction to the foundations behind modern data analysis and machine learning. The first part of the course covers selected topics from probability theory and linear algebra that are key components of modern data analysis. Next, we cover multivariate statistical techniques for dimensionality reduction, regression, and classification. Finally, we survey recent topics in machine learning, in particular, deep neural networks.
Prerequisites: You should be comfortable programming in Python (CS 2110 or equivalent is sufficient)
The content of this course varies by instructor.
The Fall 2025 course is taught by Prof. Todd DeLong and will be an introduction to the use of Field Programmable Gate Arrays (FPGAs) to implement digital hardware designs using a Hardware Description Language (HDL). The course consists of a series of hand’s-on projects to promote experiential learning to achieve course learning objectives. For each project, students are provided with requirements, which define what is required to solve the problem. Students then develop a specification, which specifies how the requirements are satisfied by the solution implementation, with an emphasis on verification using simulation-based and experimental evidence.
Prerequisites: ECE 2330 Digital Logic Design
Description: The course covers photonic devices used in today’s fiber optic communication systems from a practical point of view. Its goal is to help students understand both, principles and advanced designs, such that device operation and performance can be understood and analyzed in the context of modern communication systems. The course briefly revisits fundamentals including photon interactions with matter and semiconductor junction devices.
Topics include: Lasers and modulation, electro-absorption modulator, Mach-Zehnder modulator, optical amplifiers, devices for filtering and switching, optical receivers for direct and coherent detection, photonic integrated circuits, component packaging, devices for 100G long-haul and Terabit-system.
Prerequisites: open to senior undergraduate or graduate students, courses on device physics and signals & systems (ECE 3103 and ECE 2700) recommended.
The objective of this course is to provide the basic concepts and algorithms required to develop mobile robots that act autonomously in complex environments. The main emphasis is on mobile robot locomotion and kinematics, control, sensing, localization, mapping, path and motion planning.
This course covers:
- Robot poses and transformations
- Kinematics
- PID controls and motion planning techniques
- Estimation, localization, and mapping
- using Gaussian based methods
- Kalman filter
- Particle filter
- SLAM (simultaneous localization and mapping)
- Quadrotor dynamics
- Swarming
- Planning under uncertainty
For some of the cool projects discussed in the course, see the Nicola Bezzo's website here.
The Internet of Things (IoT) is a computing platform where a large number of devices form a network to monitor, control, and optimize some physical system. To be scalable, these devices communicate wirelessly, both with each other and to the Internet at large. But what wireless protocols are available for IoT devices? How do they work? And why are there so many? This course will provide a hands-on introduction to the world of wireless in the Internet of Things. Over the course of the semester we will explore what wireless options we have available, how they differ and what the tradeoffs are, and how major IoT wireless protocols work. We will also build networks of devices using real-world wireless protocols. Our goal is for you to be able to build your own wireless devices with a wireless protocol that meets your application requirements and device constraints.
We will look at WiFi, Classic Bluetooth, Bluetooth Low Energy, IEEE 802.15.4, 2G/3G/4G/5G cellular, LTE-M, NB-IoT, LoRa, and Z-Wave. We will also explore some emerging wireless options, such as visible light communication (VLC), infrared communication (IR), ultrasonic, wake-up radios, and backscatter.
By the end of the course, you will be able to…
- explain, analyze, and compare different IoT wireless protocols.
- analyze and model the power draw and spectrum utilization of wireless protocols.
- develop hands-on skills using standards-compliant protocols.
- identify requirements for a wireless protocol for a specific application.
- recognize rationale for heterogeneity in wireless IoT protocols and how design choices impact both applications and users.
- work effectively in a group to build IoT networks while overcoming challenges.
Embedded systems are special-purpose computers at the core of Cyber-Physical Systems (CPS) that monitor and control the physical processes through real-time interactions with sensors and actuators. More than 90% of manufactured micro-processors go inside airplanes, automobiles, medical devices, digital cameras, toys, home appliances, and smart buildings. What are the building blocks of an embedded system? How can we design an embedded system and make sure it satisfies specific functionality, reliability, and timing requirements? How can we bridge the gap between the inherently sequential embedded software with the intrinsic concurrency in the physical world? How can we execute multiple data acquisition, processing, and control tasks on resource-constrained microcontrollers while satisfying real-time constraints?
This course will help you answer these questions by providing the foundational knowledge and hands-on experience in design and validation of embedded computing systems, with a focus on embedded C programming and real-time operating systems (RTOS) for ARM® Cortex™-M Microcontrollers. In the second half of the class, we will explore related topics and applications in safety and security, cyber-physical systems (CPS), internet of things (IoT), and robotics through paper presentations and discussions
Topics:
- Embedded system architectures
- Embedded input and output (I/O)
- Serial and parallel I/O
- Interrupts
- Asynchronous vs. synchronous interfaces
- Analog I/O
- Embedded software development
- Embedded C programming
- Memory management
- Toolchains, debugging and profiling
- Real-time operating systems
- Thread and process management
- Interrupt handling
- Real-time scheduling
- Quantitative analysis and validation
This course explores the fundamental principles and applications of sensor technology in ubiquitous computing systems. Topics include sensor design, data acquisition, signal processing, wireless communication, and integration into intelligent systems. Students will examine how sensors enable real-time data collection in various domains, including healthcare, smart environments, and wearable technology. Hands-on projects and case studies will provide practical experience with sensor-based systems.
For graduate students enrolled in the combined 4/6 section, additional coursework will include extended problem sets and a more open-ended final project that incorporates advanced concepts in sensor fusion and machine learning.
The course provides an in-depth understanding of matrix analysis concepts, algorithms, and applications, including eigenvalues and eigenvectors, linear transformation, similarity transformations, commonly used factorizations, canonical forms, and Hermitian and symmetric matrices. In particular, we will illustrate these concepts with specific applications in machine learning, control, signal processing, and optimization.
Suggested prerequisite: APMA 3080 Linear Algebra
Introduces newer machine learning concepts such as GANs, diffusion and flow models, explainable generative AI, in addition to classical concepts such as autoencoders. The applications will include image generation and post-processing.
Prerequisites: CS 2130. ECE 3502 Foundations of Data Analysis is strongly suggested.
This course aims to explore the intricate relationship between advanced machine learning algorithms and cutting-edge hardware technologies. It will start with a foundational review of machine learning concepts, including neural networks and deep learning architectures. Moreover, we will introduce hardware acceleration technologies such as GPUs and TPUs. We will highlight principles of dataflows, hardware-specific optimizations, and systolic arrays. More importantly, students will gain an understanding of how these technologies enhance machine learning performance. The course will cover distributed machine learning, various parallelism strategies, and communication protocols essential for large-scale AI deployments. Emerging technologies like ReRAM and critical case studies in sustainable computing provide students with a holistic view of the current state and future directions of hardware-software co-design. Graduate students will have additional reading tasks and presentation requirements.
Description: This course focuses on an in-depth study of advanced topics and interests in image data analysis. Students will learn practical image techniques and gain mathematical fundamentals in machine learning needed to build their own models for effective problem solving. Topics of image denoising/reconstruction, deformable image registration, numerical analysis, probabilistic modeling, data dimensionality reduction, and convolutional neural networks for image segmentation/classification will be covered. The main focus might change from semester to semester. The graduate students (ECE/CS 6501) will be given additional programming tasks and more advanced theoretical questions.
Prerequisite: CS 2130 and APMA 3080 Linear Algebra.
Mathematical background in linear algebra, multivariate calculus, probability and statistics, and programming skills are required in this class.
The world is full of constantly computing entities –humans processing internet data, machines computing stock prices and weather maps, even a wildebeest computing its odds of survival when crossing the mighty Mara river. But what underlies such a computational process, at its core? What unifies an inert piece of silicon conjuring up ChatGPT, vs a functioning biological brain writing poetry? A proper exposure to such a topic, especially in the light of today’s computing metaverse, must span multiple departments – physics to understand the quantum world, electrical and computer engineering for basics of signal processing, neurobiology for spiking chemistry, Computer Science for error coding or lossless data compression.
This course, aimed at senior undergraduates and beginning graduate students, will introduce basic concepts of computing, focusing on the fundamental science underpinning it – how coding works, the physical nature of information, the energetics of computing, how we implement them in hardware, why quantum entanglement and quantum computing are fundamentally different, and how Boltzmann physics governs minimum energy neurological processes and can be mapped onto optimization and learning algorithms
Prerequisites: The main background expected is proficiency with some ODEs and matrix algebra (which we will recap at the start of the course) and knowledge of Matlab or an equivalent mathematical package. A working knowledge of neural nets or quantum physics is not necessary, but can be helpful in identifying the broader context.
Previous course website with more information: http://www.ece.virginia.edu/~ag7rq/23comp/course_schedule.html
This course explores the intricacies of AI hardware, including the current landscape and anticipating the necessary developments in response to AI's rapid growth and widespread integration across all computing tiers. Through this exploration, you will gain an understanding of both the existing technologies and the future challenges in AI hardware design and implementation.
Prerequisites: ECE 2330 DLD or CS 2130 CSO1.
Suggested prerequisites or corequisites: Embedded, ECE 3780 Foundations of Data Analysis, ECE 4435 Computer Architecture, and/or ECE 4332 VLSI
Course objective: Graphs/networks are often used to represent a plethora of real-world phenomena: social relations among online users, hyperlinks among webpages, biological interactions among genes, brain activities among neurons, to name a few. How can we understand, characterize, and extract actionable knowledge from the deluge of graph data, to benefit high-impact applications from different disciplines? This course will introduce the fundamental problems and cover the recent research advances in analyzing and mining large-scale graphs. It will also discuss the practical applications and the broad impacts of graph mining algorithms in diverse settings (e.g., social media, e-commerce, education, and security). The following topics will be covered in the course: graph essentials, network measures, network models, data mining essentials, community analysis, information diffusion, recommendation, network representation learning, and graph neural networks.
Prerequisites: There are no official prerequisites for this course, but students are expected to : (1) have basic knowledge about data mining and machine learning; (2) be familiar with linear algebra, discrete mathematics, and statistics; (3) be comfortable to read research papers and give presentations; (4) have good programming skills, e.g., Python, C/C++, Java, Matlab, and R.
Why a probabilistic view? Information and uncertainty, which underlie both fields, can be represented via probability in a robust and versatile way. Unknown quantities can be cast as random variables and their relationships to available information as joint distributions. This provides a unifying framework for setting up estimation and machine learning problems, stating our assumptions clearly, designing methods, and evaluating performance.
What topics will we study? We will start with estimation, which can be defined as the problem of learning about the world from data (e.g., finding the chance of getting a disease given one’s genetic make-up) or drawing conclusions about relationships (e.g., what are the best predictors of academic success?). We will then learn about machine learning problems such as regression and classification, where the goal is to predict an unknown quantity, e.g., the price of a house, based on some relevant information. We will also learn how to deal with situations when part of the data is missing. Finally, we will discuss computational methods, which help tackle difficult problems via approximation.
Course objectives:
- Use joint distributions and graphical models to describe relationships between known and unknown quantities
- Describe, identify, and apply frequentist and Bayesian estimation
- Construct and apply learning models
- Apply computational methods such as expectation-maximization and Monte Carlo sampling
- Perform approximate inference using variational methods
- Quantify fundamental limits on estimation and learning given available data
Prerequisite: APMA 3100 Probability