New Course Announcements
CSE Faculty: Submit new course information here.
Fall 2023: Quantum Computing Systems & Architecture
Description: With a number of quantum machines already available to researchers and scientists, the big question is when and how these machines will find their way into the mainstream. The challenge lies in improving these systems to be large enough, fast enough, and accurate enough to solve problems that are intractable for classical computers. This course will primarily focus on architectural and microarchitectural advancements that pertain to quantum error correction and control. In that regard, we will review recent literature on these topics, identify challenges that remain unsolved, and investigate potential solutions.
More info (pdf)Fall 2023: Solution Processed Optoelectronics
This is a multidisciplinary class that covers the optical and electronic properties of a wide range of solution-processed semiconductors, including inorganic nanomaterials, hybrid organicinorganic metal halide perovskite, conjugated polymer, etc.
More info (pdf)Fall 2023: Causality and Machine Learning
This course introduces the fundamental concepts of causality, and causal inference using machine learning models. Topics will include:counterfactuals (potential outcomes and graphs), identification and estimation of conditional average treatment effects from randomized control trials and observational data, as well as causal inference under hidden confounding and limited overlap.
More info (pdf)Fall 2023: Theory of Network Design
This is a proof-based course that lies at the intersection of algorithms and graph theory. We will tour through some classic algorithms and cutting-edge work in the area of network design. Topics will include distance oracles, spanners, emulators, preservers, shortcut sets, hopsets, algorithmic applications of these objects, and methods for making these objects tolerant to temporary failures in a network.
More info (pdf)Fall 2023: Quantum Computing, Information and Probability
The aim of the course is to develop the key concepts of quantum computing and information as well provide hands-on quantum programming skills (Qiskit platform). A basic working knowledge of linear algebra is a prerequisite, but no prior knowledge of quantum mechanics, classical computing or information theory is assumed. Graduate students in all areas of engineering, computer science, system theory, the physical sciences and mathematics should find this material of interest.
More info (pdf)Fall 2023: Machine Learning Basics for Optics & Photonics
AI is transforming many industries and has caused an explosion of applications. Areas that have been affected by ML and deep learning include self-driving cars, speech and image recognition, effective web searching, fraud detection, human genome analysis, and many other advances. Knowledge of AI, ML and Deep Learning is becoming a must for any engineer or scientist. This course is intended to give you exposure to the underlying theory and language. This is an introduction for non-experts, and it will enable you to go onto other AI, ML and deep learning courses offered in various departments.
More info (pdf)Fall 2023: Extended Reality and Society
Fall 2023: From 51 Billion to Zero: Challenges and Opportunities in Reducing Greenhouse Gas Emissions
EECS 298-051, Fall 2023, will be a seminar-type course with presentations by the instructor and invited speakers. The goal of this course is two-fold. First, the understanding of how human activities, from electricity generation to transportation, construction, agriculture, and heating/cooling, contribute to the release of greenhouse gases (GHG) in the Earth’s atmosphere. Second, the study of current and prospective engineering solutions for reducing and potentially eliminating GHG emissions, with several presentations by UM experts.
More info (pdf)Winter 2023: Machine Learning Theory
When do machine learning algorithms work and why? How do we formally characterize what it means to learn from data? This course will study the theoretical foundations of machine learning. Tentative topics include generalization, optimization, deep learning, online learning and bandits, and unsupervised learning.
More info
Winter 2023: Applied Machine Learning for Modeling Human Behavior
Machine learning, with a focus on human behavior, across multiple modalities including speech and text. Teams complete projects based primarily on their individual interests centered on modeling an aspect of human behavior. Prior experience with speech/language or other data modeling is not needed.
Winter 2023: CSE Seminar
Winter 2023: Data Centric Systems
Winter 2023: Human-AI Interaction & Systems
Human intelligence and artificial intelligence (AI) are intertwined, co-evolving and complementary. This course explores how to combine the complementary strengths of humans and AI to design intelligent interactive systems that are ethical, usable, and useful. We will discuss topics including ways to facilitate humans to interact with AI, systems that combine human and AI to solve complex challenges, crowdsourcing and human computation, explainable AI, and AI fairness and auditing.
Winter 2023: Introduction to the Social Consequences of Computing
Computing is now used in every facet of life affecting countless people, including making policy decisions about people in lending, policing, criminal justice, admissions, advertising, and hiring. In doing so, the process of computing and algorithm design now involves understanding the role of computing in society.
This class will introduce you to the ways in which applications of computing affect societal institutions and how these social consequences produce questions about how to conceptualize, critique, and ensure our all-too-human values in computing. To accomplish this, we will explore computing, particularly artificial intelligence (AI) and machine learning, including exploring the role of AI in everything from personalization to surveillance to online speech. We will critically examine the philosophical and sociological underpinnings of these values and the strategies commonly used to promote them, and seek to connect these conceptualizations to the emerging algorithmic tools proposed for promoting those values. In order to practice reasoning through these problems, this class will feature programming in Python. No previous programming experience in Python is needed.
Winter 2023: Action and Perception
In this graduate-level seminar course, we will study research papers on the development of visual, audio, and tactile perception and body control in humans, in comparison with the latest machine learning methods in computer vision and robotics, on tasks such as ocular motor control, reaching, grasping, manipulation, locomotion etc.
More infoWinter 2023: Extended Reality and Society
From pediatric medical care, advanced manufacturing, and commerce to film analysis, first-responder training, and unconscious bias training, the fledgling, immersive field of extended reality may take us far beyond the realm of traditional video games and entertainment, and into the realm of diverse social impact.
“EECS 498 : Extended Reality and Society” is a programming-intensive senior capstone / MDE course that empowers students with the knowledge and experience to…
– Implement medium-sized virtual and augmented reality experiences using industry-standard techniques and technologies (unity / unreal).
– Design socially-conscious, empowering user experiences that engage diverse audiences.
– Contribute to cultural discourse on the hopes, concerns, and implications of an XR-oriented future.
– Carry out user testing and employ feedback in an iterative design / development process.
– Work efficiently in teams of 2-4 using agile production methods and software (Jira)
Students will conclude the course with at least three significant, socially-focused XR projects in their public portfolios.
Winter 2023: Privacy Enhancing Technologies (PETS)
This course explores the latest advances in privacy-enhancing technologies (PETs).
More info (pdf)Winter 2023: Data Centric Systems
This special topics course will discuss recent advances and new directions that are being pursued to design data-centric computing systems.
More info (pdf)Winter 2023: Quantum Electromagnetics
This course will introduce students to the quantum theory of electromagnetic radiation, matter and their interactions, which underpins all new quantum technologies.
More info (pdf)Winter 2023: Algorithms for Data Science
This course will introduce algorithmic and theoretical aspects of data science. With the emergence of machine learning and data science, as well as the ever-increasing data sizes, providing theoretical foundations for these areas will become increasingly important. The course will cover several important algorithms in data science and see how their performances can be analyzed. While fundamental ideas covered in EECS 376 (e.g., design and analysis of algorithms) will be still important, some topics will introduce new concepts and ideas, including randomized dimensionality reduction, sketching algorithms, and algorithms for continuous optimization.
More infoWinter 2023: Formal Verification of Hardware and Software
This course explores the latest advances in automated proof methods for checking whether or not certain properties hold under all possible executions of a complex hardware or software system. Specifically, we focus on the class of “control-centric” properties, namely those properties that are weakly-dependent on the data state of the system.
More info (pdf)Fall 2022: Machine Learning Basics for Optics and Photonics
Please see flyer.
More info (pdf)Fall 2022: ENGR 490 Designing Your Engineering Future
ENGR 490.004 and 490.005 meet together for the first seven weeks of the semester. Then, ENGR 490.005 continues to the end of the semester. * Indicates information specific to ENGR 490.005.
As graduation approaches, you have engaged in a wealth of experiences and collected a bounty of stories. As you move forward to new experiences, you may have many questions about your future: What career do I want? What lifestyle? What jobs should I apply for? Accept? Should I attend graduate school? Am I an effective engineer?
This course will help you leverage your past experiences to create and use tools that will help you answer questions about your personal and professional futures. You’ll create a set of guiding principles and a professional statement and begin a vision for your future. You’ll then apply your principles and vision to make challenging decisions and create professional documents that will be useful in your near future. Throughout this course, you’ll use a set of competencies and collaborate with a group of peers and mentors from academia and industry alike.
* Then, you’ll develop and apply a project to meet your personal and professional goals. Examples of projects include a website, a LinkedIn profile, a vision, or a portfolio. You’ll further examine competencies, such as ethical reasoning, and apply them to examples that engineers often experience at work.
More infoFall 2022: Formal Verification of Systems Software
During this course, you will learn how to formally specify a system’s behavior, how to prove that the high-level design of the system meets that specification and finally how to show that the system’s low-level implementation retains those properties. The course does not assume any prior knowledge in formal verification. We will start from the basics of the Dafny language and build from there. In the end, you should be able to design and prove correct a complex system.
More info (pdf)Fall 2022: Power Semiconductor Devices
- Learn how power switches (transistors) and rectifiers (diodes) work
- Gain familiarity with the materials used for power devices
- Understand how device design determines performance
- Learn how to use commercial software to numerically model power devices through guided projects (Synopsys Sentaurus and Silvaco Atlas)
Fall 2022: Science of Deep Learning
This is a graduate-level research-oriented course focusing on fundamental principles (“science”) of deep learning, from both theoretical and empirical perspectives. We will aim to cover fundamental theory, ideas, phenomena, and challenges underlying recent advances in deep learning. Deep learning is a fast-evolving field, and anything can change at any moment, so it’s good to keep an open and critical mindset. If you see something that seems unsatisfactory, you are probably right and you should try to understand it better and improve it!
Note that the focus of this course is on the theoretical and scientific understanding of deep learning. It will not teach you how to use deep learning packages. It is also not about the applications of deep learning to scientific domains.
More info
Fall 2022: Quantum Computing for the Computer Scientist
Quantum computing, should current technical barriers be overcome, makes bold promises to revolutionize key applications including cryptography, machine learning, and computational physics. This course will explore the potential impact and limitations of this paradigm shift from a computer science perspective. Lectures will cover the bare physics and mathematics needed to investigate how each layer of the computing stack (logic, system architecture, algorithm, and application design) is impacted. Labs and programming assignments will provide students a hands-on approach towards writing quantum programs, simulating their execution, deploying them to real quantum hardware available on the cloud, and analyzing their performance.
More info (pdf)Fall 2022: Intro to Quantum Information Science and Engineering
Are you interested in learning what a quantum computer is and how it can be built? Do you know that many technologies we take for granted today including computers, Internet, solar panels, LED lights will not be possible without the discovery of quantum phenomena 100 years ago? Are you curious in exploring how quantum information technologies can help revolutionize future computers, communication network, and sensing technologies with broad applications in cybersecurity, drug development, financial modeling, traffic optimization, weather forecasting, artificial intelligence, and materials discovery? The goal of this course is to develop a broad understanding, appreciation, and literacy for the concepts, applications, and societal impacts of quantum information science and engineering (QISE).
More infoFall 2022: Principles of Machine Learning
This is an entry-level machine learning course targeted for senior undergraduate and junior master students. This course is a little bit more emphasis on mathematical principles in comparison to EECS 445. Students outside of the ECE program interested in machine learning are welcome as well.
More info (pdf)Fall 2022: Approximation Algorithms and Hardness of Approximation
Approximation algorithms have been actively studied in both algorithms and complexity theory, culminating in optimal approximation algorithms for some fundamental problems; they achieve some approximation guarantees and no polynomial time algorithm can do better under some complexity conjectures. The theory of approximation algorithms also leads to beautiful connections between algorithms, complexity, and some areas of mathematics. This course will provide an overview of these connections, stressing techniques and tools required to prove both algorithms and complexity results.
More info (pdf)Fall 2022: Extended Reality and Society
See course flyer below.
More info (pdf)Fall 2022: Embedded Security
Designed for undergraduate and masters students seeking careers to help people with assistive
technology, this lab-based embedded security course teaches advanced methods to protect the
security of embedded computing systems from analog threats to the physics of sensing and computation. Master highly sought technical skills by employers on frequency-domain security analysis of signals, voice recognition, and fault injection testing of semiconductors with acoustics, RF, and lasers. Learn how to defend rather than attack systems with application to healthcare, autonomous vehicles, smartphones, medical devices, vaccine production, and orbiting satellite constellations.
Fall 2022: Randomized Numerical Linear Algebra in Machine Learning
Randomized Numerical Linear Algebra (RandNLA) describes a suite of algorithms which use randomness to construct small representations (sketches) of large data matrices. These sketches are then used to efficiently solve large-scale matrix problems at the core of many scientific, data science and machine learning tasks. This course will focus on algorithmic and theoretical foundations of RandNLA, including such topics as randomized dimensionality reduction and approximate matrix multiplication, as well as recent advances in the area with a particular focus on its applications to machine learning.
More info (pdf)Winter 2022: Artificial General Intelligence
This class will explore the computational structures and processes that can potentially support general intelligence. This will be a seminar course where students read, present, and discuss readings from AI and cognitive science, including psychology, linguistics, animal behavior, and neuroscience. Students will be evaluated on participation in class.
More info (pdf)Winter 2022: Identity and Trust On- and Off-Web
The class will be conducted seminar style and involve presentations by students, guest lecturers, discussions, and projects. Some topics of interest are as follows:
- Self-sovereign identity and verifiable claims: deep dive
- Implementing efficient and easy to use hardware and software wallets
- Mapping use-cases to the technology: trade-offs between coverage & complexity
- Issues inherent in a unified approach to people, services, things and data
- Blockchains & distributed ledgers: what role do they play?
- Designing for the real-world: security, usability, scale
- Co-existing with and leveraging legacy identity and security technologies
- Rethinking micropayments: is it different this time?
- Smart contracts: how do we trust a world that runs as code?
Winter 2022: Quantum Information, Probability and Computing
The failures of classical theories to explain important physical phenomena led to revolutionary and unprecedented changes in our thinking, and, in turn, to the develop-ment of quantum mechanics in the first half of the twentieth century. It turns out that the laws of quantum mechanics lead to a new theory of probability (quantum probability) which is a non-commutative generalization of classical theory of probability. It was long believed that information processing and computing were solely mathematical constructs and as such were independent of nature and the laws of quantum mechanics. In the 1980’s this assumption was found to be untrue, and the consequences have been profound. The introduction of quantum mechanics into communications and computation has produced new paradigms (quantum infor-mation) and some unforeseen results in the fields of computation, communications and learning. For example, quantum algorithms have now been found for factoring composite numbers (Shor’s algorithms 1994). In contrast, there are no known practical (i.e., polynomial time) classical so-lutions for the problem. Moreover, recently quantum probability models have been proposed for human cognition to explain question-order-effects in polling and violations of rational decision theory. This course is an introduction to this general area. A basic working knowledge of linear algebra is a prerequisite, but no prior knowledge of quantum mechanics, classical computing or information theory is assumed. Graduate students in all areas of engineering, computer science, system theory, the physical sciences and mathematics should find this material of interest.
More info (pdf)Winter 2022: Introduction to Quantum Electromagnetics
This course is designed for upper level engineering students and students from the physical sciences who have had the usual first two semesters of introductory physics (e.g., 140/240) and the usual calculus classes up through differential equations. Some general knowledge of matrices and determinants is helpful. The course assumes no prior training in quantum mechanics. The course begins with a short introduction to the usual quantum mechanics and then a presentation of the postulates of quantum mechanics and an introduction to Dirac notation. After reviewing the basic ideas and results of classical electromagnetics, we then use the postulates to convert the classical picture of electromagnetics to the quantum picture. The rest of the semester is then used to explore how to create and detect the quantum field and the creation of new states of the quantum field for quantum communications, quantum sensing (lidar/radar), quantum encryption and quantum information. The impact of the quantum vacuum on devices is discussed as well as the interaction of quantized light with various kinds of quantum devices.
The performance metric in the class is focused on learning rather than assessment.
More info (pdf)Winter 2022: Internet Foundations
This course introduces students to the fundamentals of the internet. You use the internet every day, and in this course we permit you to “look under the hood” of the internet. We start by reviewing the differences between various applications, such as world wide web, skype, and Bit-Torrent. The 4-layer internet model will be explained, which includes the application, transport, network and link layers. Internet protocol and TCP/IP communication will be reviewed, along with a detailed discussion of how packet switching and routers work. The link and physical layer description will include explanations of how WiFi and Ethernet networks work. Other topics covered briefly include Network Address Translation, Wireless and Mobile Networks, Multimedia Networking, and Network Security. By taking this course you will have a better appreciation of how computer networks work and how your computer communicates over the internet.
More info (pdf)Winter 2022: Algorithms for Data Science
This course will introduce algorithmic and theoretical aspects of data science. With the emergence of machine learning and data science, providing theoretical foundations for them will become increasingly important. The course will cover several important algorithms in data science and see how their performances can be analyzed. While fundamental ideas covered in EECS 376 (e.g., design and analysis of algorithms, NP-hardness, etc.) will be important, some topics will introduce new concepts and ideas, including sublinear time algorithms, algorithms for continuous domains, and average-case analysis.
More info (pdf)Winter 2022: Social Consequences in Computer: Fairness, Privacy, and Other Values
This class will cover the ways in which applications of computing affect societal institutions and how these social consequences produce questions about how to conceptualize, critique, and ensure our all-too human values in computing. To accomplish this, we will explore computing — particularly artificial intelligence (AI) and machine learning — in online platforms, algorithms, and policy-making, including exploring the role of AI in everything from personalization to surveillance to online speech. We will focus on those values where recent advances in computing have demonstrated large societal challenges: privacy, fairness, justice, and related values. We will critically examine the philosophical and sociological underpinnings of these values and the strategies commonly used to promote them, and seek to connect these conceptualizations to the emerging algorithmic tools proposed for promoting those values. In doing so, we will develop a diverse toolbox of computational, social, and political ideas, with the end goal of developing the ability to thoroughly reason through these problems in our own projects.
More info (pdf)Winter 2022: Category Theory
This course will serve as an introduction to category theory for computer science students, especially those interested in applications to formal logic and programming languages. Tentative topics include categories, functors, natural transformations, adjunctions, universal properties, monads, multicategories, and functorial semantics. We will focus on the formal relationship between syntax and semantics as a unifying theme.
More info (pdf)Winter 2022: Artificial General Intelligence
This class will explore the computational structures and processes that can potentially support general intelligence. This will be a seminar course where students read, present, and discuss readings from AI and cognitive science, including psychology, linguistics, animal behavior, and neuroscience. Students will be evaluated on pre-class analyses of class topics, participation in class, and their final project/paper.
More info (pdf)Winter 2022: Encrypted Systems
The aim of this course is fourfold: first, to understand the cryptographic tools that have proven useful in encrypted systems, and how to design new ones; second, to study how encrypted systems have used them (successfully or not); third, to identify “design patterns” for encrypted systems; fourth, to navigate the complex ethical questions that can arise in encrypted systems research.
More info (pdf)Fall 2021: Randomized Numerical Linear Algebra in Machine Learning
This course will focus on numerical linear algebra (NLA), which describes a large suite of algorithms that power a huge number of scientific, data science, and machine learning applications. The use of randomization has been allowing these methods to scale to tremendous data sizes in efficient ways. We will study recent research results in randomized NLA, tradeoffs in terms of computation, data requirements, and accuracy, as well as some specific applications in machine learning and scientific computing.
More infoFall 2021: Automated Formal Verification of Hardware and Software
This course teaches students about a variety of automated formal verification techniques as well as how to apply such techniques to the verification of hardware and software systems. The course material will equip students to be capable of utilising formal verification tools in the field, and also forms a foundational understanding on top of which they can conduct formal verification research. A substantial component of the course grade will be a final research project (conducted in teams of 2 or 3 students), in which you are expected to conduct original research in formal verification. A list of project ideas will be provided by the instructor; students may also propose their own project ideas, subject to instructor approval.
More infoFall 2021: Machine Learning in Computational Biology
See flyer for more information!
More info (pdf)Fall 2021: Engineering Interactive Systems
This course teaches principles (e.g., human-centered systems design, usability, accessibility) and methods (e.g., requirements gathering, functional prototyping, user study evaluation) of technical Human-Computer Interaction (HCI) research. The course surveys HCI research threads including Human-AI Interaction, Social Computing, Behavior Modeling, Education Technologies. Group assignments give students exposure to HCI research methods.
Fall 2021: Introduction to CSE Graduate Studies
See flyer for details!
More info (pdf)Fall 2021: Conversational Artificial Intelligence
The science and art of creating conversational AI spans multiple areas in computer science. Learning about and leveraging advances in these areas to create state-of-the art conversational virtual assistants is the central focus of this course. Throughout the course, students will put into practice the end-to-end creation of a virtual assistant spanning natural language processing, dialogue management, response generation, and other applications. Students will also use tools that span both traditional techniques as well as cutting edge techniques for these AI with the goal of creating new experiences that go beyond existing virtual assistants. Students will be tasked with integrating the AI experiences they create with a set real APIs of their choosing (e.g., Spotify, Fitbit, Unity, etc.). The project culminates in a demo day where creations are shared for others to try, for this semester, these public demos will take the form of video submissions that will be posted on the course website.
More info (pdf)Fall 2021: Human-Computer Interaction
See flyer below for more information!
More info (pdf)Fall 2021: Introduction to Algorithmic Robotics
Build the foundation for your future in robotics! See flyer for more information.
More info (pdf)Fall 2021: VLSI for Wireless Communication and Machine Learning
This course will survey methodologies to design energy-efficient and/or highperformance VLSI systems for the state-of-the-art wireless communication, machine learning, and signal processing systems. The primary focus of the course is on designing hardware-efficient algorithms and energy-aware VLSI IC architectures to deliver the performance and efficiency required by various signal processing and machine learning applications. The course will be a mix of lectures and student-led presentations/projects. The content will be suitable for senior undergraduates or graduate students interested in hardware-efficient algorithms and their VLSI implementations.
More info (pdf)Fall 2021: Applied Parallel Programming with GPUs
The goal of this class is to teach parallel computing and developing applications for massively parallel processors (e.g. GPUs). Self-driving cars, machine learning and augmented reality are examples of applications involving parallel computing. The class focuses on computational thinking, forms of parallelism, programming models, mapping computations to parallel hardware, efficient data structures, paradigms for efficient parallel algorithms, and application case studies.
More info (pdf)Winter 2021: Adversarial Machine Learning
This is a new special topics course that will look at recent advances in the field of adversarial machine learning, both from an attack and defense perspective. Deep neural networks (DNNs) are widely used in computer vision for both detecting and classifying objects and are relevant to emerging systems for autonomous driving. Unfortunately, there is a question of trust, are machine learning (ML) models sufficiently robust to make correct decisions when human safety is at risk? This course will examine research papers in this field looking at vulnerabilities or defenses in machine learning systems with respect to various types of attacks including data poisoning attacks during training time or during online learning, data perturbation attacks on a trained model to cause misclassifications, and deepfake attacks. Papers on bias and fairness in machine learning systems are also within scope.
The class will be conducted seminar style and involve presentations by students, discussions, and projects to help everyone in the class up to speed on the foundations and cutting-edge research in the field. Each group will be expected to share a summary of one attack paper and one defense paper and present the paper to the class during the semester. The group should attempt to reproduce a subset of the results of the paper being presented (or in the rare case that is not possible due to lack of datasets, sufficient detail, lack of computational resources, or models, another paper that is presented in the class).
More infoWinter 2021: GaN-Based Electronic Devices
Device performances are driven by new materials, scaling, and new device concepts such as bandstructure and polarization engineering. Semiconductor devices have mostly relied on Si but increasingly GaAs, InGaAs and heterostructures made from Si/SiGe, GaAs/AlGaAs etc have become important. Over the last few years one of the most exciting new entries has been the GaN based devices that provide new possibilities for lighting, displays and wireless communications. New physics based on polar charges and polar interfaces has become important as a result of the nitrides. For students to be able to participate in this and other exciting arena, a broad understanding of physics, materials properties and device concepts is required.
More info (pdf)Winter 2021: Motion Planning
Winter 2021: Quantum Information, Probability and Computation
Winter 2021: Technologies to Optimize Human Learning
The advances in computing have changed the ways people learn. In this seminar, we will review educational technologies that draw a wide range of techniques from Augmented Reality, Computer Vision, Natural Language Processing, Crowdsourcing, etc. We will also discuss how these systems are guided by theories of how humans learn and the HCI methods used to design and evaluate them.
More info (pdf)Winter 2021: Introduction to Natural Language Processing
This course aims to introduce fundamental tasks in natural language processing, and its recent advances based on machine learning algorithms (e.g., neural networks) and applications for interdisciplinary subjects (e.g., computational social science). The course materials are mostly delivered as lectures, and accompanied with reading materials.
More info (pdf)Winter 2021: Applied Machine Learning for Affective Computing
This course covers the concepts and techniques that underlie machine learning of human behavior across multiple interaction modalities. Topics include: speech/text/gestural behavior recognition through applications of machine learning, including deep learning. The course will also include discussions of the cybersecurity challenges associated with this domain. Fluency in a standard object-oriented programming language is assumed. Prior experience with speech or other data modeling is neither required nor assumed.
More info (pdf)Winter 2021: Statistical Learning Theory
This course will cover statistical learning theory including the following topics: concentration inequalities, consistency of learning algorithms, Vapnik-Chervonenkis theory and Rademacher complexity, reproducing kernel Hilbert spaces and kernel methods, surrogate losses, and deep learning. Unsupervised and online learning may also be covered as time permits.
Students are expected to have (1) a strong background in probability at the level of EECS 501, (2) prior exposure to machine learning algorithms, such as EECS 545, Stat 601, or Stat 605, and (3) some experience with writing formal mathematical proofs as might be acquired in an upper level undergraduate mathematics course.
Grading will be based on occasional homework assignments and an individual end-of-semester report on a topic of the student’s choosing. There may also be a participation component to the grade. There will be no exams.
One desired outcome for students taking this course is an ability to read research articles in the field of machine learning and appreciate the significance of the theoretical performance guarantees describe in those articles. Students developing new algorithms as part of their research can also expect to learn techniques that will help them analyze their algorithms.
Winter 2021: Software Defined Radio
In this class you will learn basic concepts of software defined radio. You will learn the following:
How basic radios work
A: Upconversion and down conversion
B: Frequency and phase synchronization
C: Timing synchronization
D: Digital modulation and demodulation including BPSK, QPSK, QAM, FSK, OFDM (several of these are used in 5G cellular networks and WiFi).
E: How to implement in software the different modulation and demodulation schemes. Most of what we do is done via a graphical user interface (GUI) but some custom operation can be programmed using Python. No knowledge of Python is assumed.
Winter 2021: Succinct Graph Data Structures
From social networks to road maps to the internet, the modern world is dominated by data represented in enormously large graphs. An effective way to make sense of a massive graph is to create a much smaller one that is “similar” to the original in some critical ways. But how accurately can this be done? What methods of graph compression take on the least error? What structural properties of a network make it easy or hard to accurately express in small space? This class will develop the theoretical underpinnings of graph compression algorithms in a mathematically rigorous, proof-based way.
Fall 2020: Randomness and Computation
Along with time and memory, randomness is a fundamental resource in computation. In many cases, randomness can be used to speed up computational tasks or reduce the memory footprint, creating an entire area of randomized algorithms. In applications such as cryptography, randomness is a necessary aspect of computation and such system crucially rely on access to high quality random bits (for example to produce a perfectly random secret key). Moreover for such applications, the information-theoretic view of randomness is used to mathematically model uncertainty. In machine learning and computational learning, randomness and statistics are essential tools to model the computational task. The use of randomness and particularly the probabilistic method constitutes an important proof technique in discrete mathematics. The range of applications of randomness in computation is simply too broad to break down on a short list.
The aim of this course is to provide a mathematically rigorous exposition of the role of randomness in computation. The course will do so by showcasing examples from different application areas, such as those described above. Furthermore, time permitting, the question of simulating randomness by deterministic computation as well as extraction of randomness from weak random sources will be discussed. The precise choice of topics within the area will be flexible depending on the interests of the audience and active feedback from the students.
More info (pdf)Fall 2020: Program Synthesis Techniques and Applications
Fall 2020: Formal Verification of Hardware and Software Systems
The course will be based on reading classic papers on software and hardware verification as well as more recent papers that describe advances in automated reasoning algorithms and their applications to verification. A theme of the course will be to find common threads that tie together the seemingly‐disparate methods used in HW and SW verification. Students can expect to learn how to encode software programs and hardware circuits as transition systems, and how to develop suitable abstractions for checking control‐centric properties. Additionally, they will have hands‐on experience with a variety of existing reasoning and verification tools and the option of developing extensions to these tools. The course work will consist of a few short assignments to help the students master the main technical issues and semester‐long individual or group projects selected by the students.
More info (pdf)Fall 2020: Human-Computer Interaction
This course will teach students principles and methods of technical Human-Computer Interaction (HCI) research. It will also include a survey of important research threads. Short individual assignments will give students exposure to existing research methods in HCI. Midterm and final exams will test the student knowledge of the topic.
More info (pdf)Fall 2020: Approximation Algorithms and Hardness of Approximation
Approximation algorithms have been actively studied in both algorithms and complexity theory, culminating in optimal approximation algorithms for some fundamental problems; they achieve some approximation guarantees and no polynomial time algorithm can do better under some complexity conjectures. The theory of approximation algorithms also leads to beautiful connections between algorithms, complexity, and some areas of mathematics. This course will provide an overview of these connections, stressing techniques and tools required to prove both algorithms and complexity results.
More info (pdf)Fall 2020: Introduction to Algorithmic Robotics
Build the foundation for your future in robotics!
- Convex Optimization
- Motion Planning
- Point Cloud Processing
- Probabilistic Reasoning
- Kalmanand Particle Filters
Fall 2020: Semiconductor Power Devices
Power devices drive our society, from the power grid and renewable energy integration to hybrid and electric vehicles, trains, space exploration, and industrial and consumer electronics. This course will cover design and operating principles of semiconductor devices for discrete and integrated power electronics. Devices we will discuss include the power MOSFET, IGBT, HEMT, Schottky and PIN diodes, as well as emerging device architectures. We will study wide bandgap semiconductor materials, device fabrication and packaging required for power devices, including GaN, SiC, and Ga2O3. Students will be exposed to numerical device modeling using commercial TCAD software (Synopsys Sentaurus and Silvaco Atlas), and will do a final group presentation on a topic of their choice.
More info (pdf)Fall 2020: Cybersecurity for Future Leaders
This class will examine the broad landscape of cybersecurity from both a technical and policy perspective. It will introduce fundamental concepts of computing and cyber security, including information theory, computability, cryptography, networking fundamentals, how vulnerabilities arise, and how attacks work. In addition, it will explore foundational ideas including definitions, cyber norms, and ethics; identify existing U.S. laws, authorities and governmental constructs; and frame classic security concepts like deterrence, attribution, offense, defense, and retaliation. The course will also involve guest speakers, student panels, and writing assignments designed to capture technical and policy insights, and a simulated meeting where students assume different governmental or private sector roles to examine potential courses of action regarding a cybersecurity crisis scenario.
More info (pdf)Fall 2020: Election Cybersecurity
Elections, the foundation of democracy,are increasingly subject to electronic attacks. Manipulation of social media, hacks against campaigns, and vulnerabilities in voting equipment create unprecedented risks.
This special topics course will examine the past, present, and future of election security, informed by perspectives at the intersection of computer science, law and public policy, politics, and international affairs.
Fall 2020: Reinforcement Learning Theory
This course covers fundamental theories and principles of reinforcement learning.
More info (pdf)Winter 2020: Convex Optimization Methods in Control
Convex optimization plays a central role in the numerical solution of many design and analysis problems in control theory. This course focuses on the practical aspects of using convex optimization methods to solve these problems. See flyer for more information.
More info (pdf)Winter 2020: Quantum Information, Probability and Computing
See course flyer for more information.
More info (pdf)Winter 2020: Reinforcement Learning
This course covers fundamental theories and principles of reinforcement learning. Topics to be covered include:
- Dynamic programming and the principle of optimality
- Multi-armed bandit: epsilon-greedy, Upper Confidence Bound (UCB) algorithm, Thompson Sampling
- Markov chains and Markov Decision Process (MDP)
- Value iteration, policy iteration, and LP formulation
- Q-Learning: Model-based and model-free
- Linear function approximation and deep reinforcement learning
- Temporal-difference learning
- SARSA
- Policy gradient algorithm and variance reduction
- The ODE methods and convergence analysis
Winter 2020: Human-Computer Interaction
This course will teach students principles and methods of technical Human-Computer Interaction (HCI) research. It will also include a survey of important research threads. Short individual assignments will give students exposure to existing research methods in HCI. Midterm and final exams will test the student knowledge of the topic.
More info (pdf)Winter 2020: Applied Machine Learning for Affective Computing
This course covers the concepts and techniques that underlie machine learning of human behavior across multiple interaction modalities. Topics include: speech/text/gestural behavior recognition through applications of machine learning, including deep learning. Fluency in a standard object-oriented programming language is assumed. Prior experience with speech or other data modeling is neither required nor assumed.
More info (pdf)Winter 2020: Advanced Energy Storage
This course primarily focuses on introducing and comparing different energy storages, such as pumped-storage, compressed air energy storage, batteries, capacitive energy storage, fuel cells, and flywheels, with special applications to electrified vehicles and renewable energy systems where energy storage plays a crucial role.
The course will focus on reviewing principles and recent progress in energy storage systems, with the goals of improving the performance and lifespan of electrified vehicles as well as integrating renewable energy (e.g., wind and solar energy) into the grid.
More info (pdf)Winter 2020: Engineering Interactive Systems
Classroom instruction will focus on a review of current research topics and literature in technical HCI areas, including interactive technologies, augmented reality, haptics, wearables, shape-changing interfaces, and more. Homework assignments will take the form of mini-projects designed to build hands-on skills in the use of laser cutters, 3D printers, sensing and signal acquisition, embedded systems, and machine learning for event and activity recognition. The class will culminate in a final project where teams of students will pitch, build, and demo a self-defined project using the skills developed in this course.
More info (pdf)Winter 2020: Quantum Computers: Fundamentals, Architectures, and Programming
Quantum information has long outgrown the limits of academic exploration of a new kind of secure cryptography realized by quirky features of quantum systems. Theoretical investigations revealed that quantum computers while defying the common approach to programming may greatly outperform classical architectures. The emergent new generation of information processing has given birth to the emerging multi-billion-dollar industry by utilizing different approaches to processing quantum information. Quantum architectures designed by D-wave, IBM, Google, Rigetti Computing, Intel, and Ion-Q exploit a wide gamut of innovative technologies to implement disparate paradigms of quantum computation. On the application side, Google, NASA, Microsoft and other companies heavily invest into development of quantum artificial intelligence, machine learning, and complex optimization problems.
The present course aims to meet the industrial interest in engineers with a specialized training capable of creating and developing new applications utilizing quantum information processing architectures. An indispensable part of the course is a series of programming assignments that will be designed to impart practical experience with quantum computers: starting from basic operations with qubits utilizing individual quantum gates to applications with complex functionality. Students will use commercial graded simulators such as Qiskit, QX, and PyQu to implement their programming assignments. All technical formalism needed for the topics covered in the course will be introduced in the course.
More info (pdf)Winter 2020: The Ecological Approach to Visual Perception
Specifically, we will explore (in no particular order): the perception of affordances and spatial layout; perception of and for manipulation; agents and how they exist in their environment; visual navigation; learning from demonstration and natural supervision; learning of physical models and dynamics; and learning of agency and intentionality. While the primary focus and assumed background knowledge is learning-based visual perception, readings will come from a wide variety of fields and students should be prepared to read out of their comfort zone.
This is a graduate-level course incorporating two components. The first is weekly group-driven reading and active discussion and debating of related work in robotics, computer vision, machine learning, and psychology. This will be a roughly even split between recent work and classics. The second are projects that put ideas from the first component to the test. These are semester-long projects, ideally interdisciplinary, that: find a particular problem; make a concrete hypothesis and experiments to test it; and execute them computationally using realistic data.
More info (pdf)Winter 2020: Software Defined Radio
In this class you will learn basic concepts of software defined radio. You will learn the following
- How basic radios work
- Upconversion and down conversion
- Frequency and phase synchronization
- Timing synchronization
- Digital modulation and demodulation including BPSK, QPSK, QAM, FSK, OFDM (several of these are used in 5G cellular networks and WiFi).
- How to implement in software the different modulation and demodulation schemes. Most of what we do is done via a graphical user interface (GUI) but some custom operation can be programmed using Python. No knowledge of Python is assumed.
- How to implement these in software and hardware. We will use Universal Software Radio Peripheral (USRP) for the hardware and GNU Radio Companion (GRC) for the software. This hardware and software is used by many companies including Samsung, Nokia, AT&T, Navy, Sandia National Labs, MIT, Analog Devices, Oak Ridge National Laboratory, Xilinx, IBM, Northrop Grumman, NASA, IEEE.
Winter 2020: Quantum Optoelectronics
Optoelectronic devices are already being revolutionized by the prospects of quantum technology. Ever smaller and faster components will inevitably reach a level where a collective can outperform individual parts due to emergent quantum effects such as entanglement. This lecture welcomes you to the central concepts of quantum engineering of semiconductors to explore optoelectronic, quantum-optical, and many-body processes, relevant for state-of-the-art experiments and the future of quantum technology.
More info (pdf)Fall 2019: Building Computer-Based Supports for Student Learning Through Inquiry
In this 498, the goal will be to build software to support educational activities in K-12 and in higher education. Faculty in K-12 have suggested the need for specific pieces of software. For example, a 3rd grade teacher has been pleading for a T-Chart app one that is collabrified, i.e., it supports synchronous collaboration. In higher ed, in materials courses, there is a need for a VR app to help students visualize the atomic structure of the materials. In high school, there is a need for a tool to support historical inquiry. In past iterations of this project, students have built software that is actually used in schools, nationwide. Teams will be formed; they will use the agile software development methodology: cycles of design, build, user test. Be prepared to visit classrooms and hear first-hand what users think of your software!
More info (pdf)Fall 2019: Computational Modeling in HCI
This seminar style course will teach students methods to track, collect, and express human behavior data as computational models of behavior. The course will have a particular focus on computational approaches to describe, simulate, and predict human behavior from empirical behavior traces data. It will contrast computational modeling with other methodologies to understand human behavior and compare computational modeling with existing behavior modeling methodologies in Human-Computer Interaction (HCI). Short individual assignments will give students exposure to existing modeling methods in HCI. Large,group-based final project will give students an opportunity to push the boundaries of computational modeling in HCI by modeling behaviors of their choice from an existing data set to design and implement a novel Computational Modeling system from scratch.
More info (pdf)Fall 2019: Power System Markets and Optimization
This course covers the fundamentals of electric power system markets and the optimization methods required to solve planning and operational problems including economic dispatch, optimal power flow, and unit commitment. The course will highlight recent advances including convex relaxations of the optimal power flow problem, and formulations/solutions to stochastic dispatch problems. Problems will be placed in the context of actual electricity markets, and new issues, such as incorporation of renewable resources and demand response into markets, will be covered. All students will conduct an individual research project.
More info (pdf)Fall 2019: Applied Parallel Programming with GPUs
The goal of this class is to teach parallel computing anddeveloping applications for massively parallel processors (e.g.GPUs). Self driving cars, machine learning and augmentedreality are examples of applications involving parallel computing. The class focuses on computational thinking, forms of parallelism, programming models, mapping computations to parallel hardware, efficient data structures, paradigms for efficient parallel algorithms, and application case studies.
The course will cover popular programming interface for graphics processors (CUDA for NVIDIA processors), internal architecture of graphics processors and how it impacts performance, and implementations of parallel algorithms on graphics processors. The curriculum will be delivered in ~29 lectures. The class has heavy programming components, including six hands-on assignmentsand a final project.
More info (pdf)Fall 2019: Laser Plasma Diagnostics
High power laser pulses are used to both create and diagnose high-energy density systems. In this course, we will discuss the techniques used for creating, characterizing and timing high power laser pulses from megajoule-nanosecond pulses to relativistic-intensity femtosecond pulses. We will explore the diagnostics used to characterize high-energy density plasmas through opticaland other radiation measurements as well as backlighting techniques. Other important aspects of performing experiments, such as target positioning techniques, will be touched on. In addition to the material discussed in lectures, students will consider real experimental data and recent research publications to learn analysis techniques, gain appreciation for physical limitations (such as instrument resolution and background signals), and comparison with theoretical models. This course is suitable for graduate students studying plasma physics, optics and laser science and other related areas. A design project based aroundan experimental proposal will involve a peer review process, written proposal and oral presentation
More info (pdf)Fall 2019: VLSI for Communication and Machine Learning
This course will survey methodologies to design energy efficient and/or high-performance VLSI systems for the state-of-the-art wireless communication, machine learning, and signal processing systems. The primary focus of the course is on designing hardware efficient algorithms and energy-aware VLSI IC architectures to deliver the performance and efficiency required by various signal processing and machine learning applications. The course will be a mix of lectures and student-led presentations/projects. The content will be suitable for senior undergraduates or graduate students interested in hardware-efficient algorithms and their VLSI implementations.
More info (pdf)Fall 2019: Topics in Surveillance: Law and Technology
This unique seminar brings together students and faculty from computer science and law to address six current controversies in surveillance, chosen from topics like:-smartphone hacking by the FBI-internet and telephone metadata collection-border searches of electronic devices-mass surveillance of data and phone calls-cellphone geolocation tracking.
More info (pdf)Fall 2019: Brain-Inspired Computing: Models, Architectures, and Programming
Brain-inspired computing is a subset of AI-based machine learning and is generally referred to both deep and shallow artificial neural networks (ANN) and spiking neural networks (SNN). Deep convolutional neural networks (CNN) have made pervasive market inroads in numerous commercial applications and their software implementations are widely studied in computer vision, speech processing and other courses. The purpose of this course will be to study the wide gamut of shallow and deep neural network models, the methodologies for specialized hardware design of popular learning algorithms, as well as adapting hardware architectures on crossbar fabrics of emerging technologies such as memristors and spin torque nonmagnetic devices. Existing software development tools such as TensorFlow, Caffe, and PyTorch will be leveraged to teach various aspects of neuromorphic designs.
More info (pdf)Fall 2019: Crowdsourcing and Human-AI Interaction
This course will cover topics in Human-Computer Interaction, human computation and crowdsourcing, and the emerging literature in Human-AI Interaction, with a focus on techniques for creating interactive intelligent systems that leverage a combination of human and machine intelligence to accomplish tasks more effectively than either could alone. We will also touch on the theory underlying many of the current approaches (e.g., game theory, voting theory, reasoning under uncertainty, and machine learning), and potential ethical concerns raised by these systems (e.g., safety and end-user privacy).
Fall 2019: Conversational Artificial Intelligence
See flyer for more information!
More info (pdf)Fall 2019: Practical Skills for Teaching Computing
Are you a new IA looking for help getting started with teaching?Or are you an experienced IA who is curious about what goes on behind the scenes with organizing and teaching a computer science class? The new EECS 398 TA Practicum is a course offering designed just for you! This one-credit course will introduce students to, and allow students to develop practicalskills for, designing and teaching courses with significant computing aspects. Course content will both help prepare students for direct interaction with their peers as TAs andalso expose students to the research and scholarship of learning and teaching. Students will also have the opportunity to discuss challenges they face in the classroom with their peers. Ultimately, the goal of this course is to provide a place and time for TAsto explore their identity as teachers.
More info (pdf)Fall 2019: Cybersecurity for Future Leaders
Future leaders will need to understand the science, technology, and human considerations behind cybersecurity well enough to make informed decisions when provided advice and options for action. Over the last decade cybersecurity issues have risen in prominence from a U.S. national security perspective, as well as from the perspective of individuals and organizations.
This class will examine the broad landscape of cybersecurity from both a technical and policy perspective. It will introduce fundamental concepts of computing and cyber security, including information theory, computability, cryptography, networking fundamentals, how vulnerabilities arise, and how attacks work. In addition, it will explore foundational ideas including definitions, cyber norms, and ethics; identify existing U.S. laws, authorities and governmental constructs; and frame classic security concepts like deterrence, attribution, offense, defense, and retaliation. The course will also involve guest speakers, short assessments and writing assignments designed to capture technical and policy insights, and a simulated meeting where students assume different governmental or private sector roles to examine potential courses of action regarding a cybersecurity crisis scenario.
More info (pdf)Fall 2019: Coding Theory for Theoretical Computer Science
The aim of this course is to provide an introduction to coding theory from a theoretical computer science perspective, and showcase the fascinating interplay between the twotopics. A tentative list of topics to be covered includes: basics of codes, linear codes, fundamental bounds on codes, composition of codes, algebraic codes, combinatorial and algorithmic list decoding, applications to cryptography and learning theory, locallytestable and locally decodable codes, expander graphs and graph-based codes, hardness and randomness, list recovery and soft decision, randomness extractors, sparse signal processing and sparse transforms.
More info (pdf)Fall 2019: User Interfaces for Programming Languages
Programmers interact with programming languages by way of user interfaces of widely varying design. This course will provide a broad overview of the literature on user interfaces for programming languages, covering both notable historic and contemporary designs and ongoing research topics. Topics covered may include: structure editors and block languages, tools for exploratory data analysis, visual programming, advanced autocomplete, live coding tools for musicians and artists, interactive debuggers, interactive theorem provers, educational user interfaces, end-user programming, cognitive dimensions of notation, mental models, API usability, and programmable physical environments.
More info (pdf)Fall 2019: Electrical Engineering Systems Design II
EECS 398 – 002 (3 cr) is a new design-oriented course which is running for the first time this fall. It counts as an upper level EE technical elective for currently declared EE students, and will become a required part of the EE degree program for anyone who declares an EE major on or after fall 2019 (final course name will be EECS 300). In this course, students will work with embedded systems, signal processing, various analog and digital sensors, power systems, wireless, and more in their design project.
The purpose of this course is to apply knowledge gained in core EECS courses and stretch to include more advanced topics in a design project with real world relevance. This year, we will be improving and creating new sensing and support modules used to monitor water systems throughout the world. The node system we are basing our work on was created by the Open Storm lab, here at Michigan (http://open-storm.org/). The data these devices gather is used to prevent flooding, create healthier watersheds, and help respond more swiftly in the event a flood does happen. All design goals and specifications for the course project will be driven by the actual Open Storm projects needs
More info (pdf)