Home > Academics > Course Resources > New Course Announcements

New Course Announcements

CSE Faculty: Submit new course information here.

WN24: From Zero Towards One: Turn Ideas into Technologies and Products That Matter

Course No:
EECS 498-014/EECS 598-013
Credit Hours:
4 credits
Instructor:
Krisztian Flautner
Prerequisites:
EECS 281

“First comes thought; then organization of that thought, into ideas and plans; then transformation of those plans into reality. The beginning, as you will observe, is in your imagination.” – wrote Napoleon Hill, an entrepreneur, author of self-help books, and a conman, in the early 20th century. His point was that innovation requires a certain action-oriented but critical mindset for success and that starting on that journey can often be the hardest part. Whether trying to innovate inside an organization, working on an open source project, or attempting to get a startup off the ground, the tools and techniques discussed in this class will be applicable to increase the chances of success. Students will be expected to propose and critically evaluate project ideas, form groups, and execute autonomously to achieve objectives. The groups will report directly to the “general manager” (faculty), with biweekly project meetings.

More info (pdf)

Winter 2024: Introduction to Quantum Information Technologies

Course No:
EECS 398-001
Credit Hours:
4 credits
Instructor:
L. Jay Guo and Zheshen Zhang
Prerequisites:
An introductory optics course like EECS 334 or similar

This course will provide the students with the foundation knowledge to understand the development of this rapidly evolving field, leading to the discussion of new technologies. We will address how the mysterious quantum phenomena are brought to real world realizations that will further advance our knowledge. After introducing the founding principles of quantum science and quantum information, the second half of the semester will focus on photonic realization because of its appeal in delivering near-term quantum technologies that would create far-reaching societal impacts. By the end of the course, the students will grasp a fundamental understanding for quantum information and be able to bridge quantum physical phenomena and new technologies for communication, sensing, and computing.

More info (pdf)

Winter 2024: Introduction to the Social Consequences of Computing

Course No:
EECS 298-001
Credit Hours:
4 credits
Instructor:
Benjamin Fish
Prerequisites:
EECS 280 or permission of instructor

This class will introduce you to the ways in which applications of computing affect social institutions and how these social consequences produce questions about how to conceptualize, critique, and ensure our all-too-human values in computing.

More info (pdf)

Winter 2024: Systems for Generative AI

Course No:
EECS 598-004
Credit Hours:
4 credits
Instructor:
Mosharaf Chowdhury
Prerequisites:
At least one of EECS 482, EECS 484, EECS 491, or EECS 489

This class will introduce you to the key concepts and the state-of-the-art in practical, scalable, and fault-tolerant software systems for emerging Generative AI (GenAI) and encourage you to think about either building new tools or how to apply an existing one in your own research.

More info (pdf)

Winter 2024: Machine Learning Theory

Course No:
EECS 598-014
Credit Hours:
3 credits
Instructor:
Wei Hu
Prerequisites:
Familiarity with probability, multivariate calculus, and linear algebra is required

This course will study the theoretical foundations of machine learning. We will present the frameworks and rigorously analyze some of the most successful algorithms in machine learning that are extensively used. The course will prepare students for thinking rigorously about machine learning and doing research in a relevant area.

More info (pdf)

Winter 2024: Quantum Optoelectronics

Course No:
EECS 598-012
Credit Hours:
3 credits
Instructor:
Mackillo Kira
Prerequisites:
EECS 428 or 540 or equivalent

This lecture will provide a pragmatic and brief introduction to solid-state theory, many-body formalism, semiconductor quantum optics, and lightwave electronics to explore pragmatic possibilities for quantum technology.

More info (pdf)

Winter 2024: Machine Learning Algorithms

Course No:
EECS 598-003
Credit Hours:
3 credits
Instructor:
Raj Nadakuditi
Prerequisites:
EECS 551, programming experience, linear algebra

his course explores the theoretical and practical limitations of machine learning algorithms, such as computational complexity, data quality and quantity. The course covers both classical and modern results in algorithmic learning theory, as well as recent advances and challenges in deep learning. The course also discusses the implications of these limitations for the design and deployment of machine learning systems in various domains.

More info (pdf)

Winter 2024: Plasma Chemistry and Plasma Surface Interactions

Course No:
EECS 598-001
Credit Hours:
3 credits
Instructor:
Mark Kushner
Prerequisites:
Prior coursework in plasmas or permission of instructor
This course addresses the plasma initiated chemistry and plasma surface interactions of these systems.
More info (pdf)

Winter 2024: Introduction to Model Checking

Course No:
EECS 498-018 / EECS 598-018
Credit Hours:
4 credits
Instructor:
Ali Movaghar
Prerequisites:
EECS 281 or EECS 403 or graduate standing

See link below for more information.

More info (pdf)

Winter 2024: Foundations of Large Language Models

Course No:
EECS 498-016 / EECS 598-016
Credit Hours:
4 credits
Instructor:
Samet Oymak
Prerequisites:
EECS 445 or 453 or 505 or 545 or 553

See link below for more information.

More info (pdf)

Winter 2024: Mobile Interactive Multimedia Systems

Course No:
EECS 498-015 / EECS 598-015
Credit Hours:
4 credits
Instructor:
Jiasi Chen
Prerequisites:
EECS 280

See link below for more information.

More info (pdf)

Winter 2024: Sustainable Energy Solutions

Course No:
EECS 498-010
Credit Hours:
4 credits
Instructor:
Stephen Forrest
Prerequisites:
EECS 230 and EECS 320

This course is focused on describing the technologies available or envisioned that can replace fossil fuels with alternative renewable sources of energy.

More info (pdf)

Winter 2024: Formal Verification of Systems Software

Course No:
EECS 498-009
Credit Hours:
4 credits
Instructor:
Manos Kapritsos
Prerequisites:
None

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. The experience of doing so will make you a more careful and effective programmer, even when you don’t write formally verified code.

More info (pdf)

Winter 2024: Architecting Hybrid Quantum-Classical Systems

Course No:
EECS 498-006/EECS 598-006
Credit Hours:
4 credits
Instructor:
Gokul Subramanian Ravi
Prerequisites:
EECS 370 or permission of instructor

This course will primarily focus on learning and research at the intersection of quantum and classical computing.

More info (pdf)

Winter 2024: Algorithms for Data Science

Course No:
EECS 498-005
Credit Hours:
4 credits
Instructor:
Michal Derezinski
Prerequisites:
EECS 376 (advisory), linear algebra and probability

The course will cover several im-portant algorithms in data science and demonstrate how their performances can be analyzed. While fun-damental ideas covered in EECS 376 (e.g., design and analysis of algorithms) will be important, some topics will introduce new concepts and ideas, includ-ing randomized dimensionality reduction, sketching algorithms, and optimization algorithms (e.g., for training machine learning models).

More info (pdf)

Winter 2024: Quantum Electromagnetics

Course No:
EECS 498-004
Credit Hours:
3 credits
Instructor:
Alexander Burgers
Prerequisites:
PHYSICS 240, MATH 215, and MATH 216

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 2024: Quantum Computing for the Computer Scientist

Course No:
EECS 498-001
Credit Hours:
4 credits
Instructor:
Jonathan Beaumont
Prerequisites:
EECS 203, EECS 281, EECS 370

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 2023: Quantum Computing Systems & Architecture

Course No:
EECS 498-010 / EECS 598-010
Credit Hours:
4 credits
Instructor:
Georgios Tzimpragos
Prerequisites:
EECS 470 or permission of instructor

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

Course No:
EECS 598-012
Credit Hours:
3 credits
Instructor:
Xiwen Gong
Prerequisites:
Senior or graduate standing

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

Course No:
EECS 598-009
Credit Hours:
3 credits
Instructor:
Maggie Makar
Prerequisites:
Familiarity with statistics, probability and machine learning. Knowledge of python.

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

Course No:
EECS 598-003
Credit Hours:
3 credits
Instructor:
Greg Bodwin
Prerequisites:
EECS 376 with a B+ or better, graduate standing or permission of instructor

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

Course No:
EECS 598-005
Credit Hours:
3 credits
Instructor:
Sandeep Pradhan
Prerequisites:
Undergraduate linear algebra 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

Course No:
EECS 498-004
Credit Hours:
3 credits
Instructor:
Mohammed Islam
Prerequisites:
None

 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

Course No:
EECS 498-003
Credit Hours:
4 credits
Instructor:
Austin Yarger
Prerequisites:
EECS 281

Fall 2023: From 51 Billion to Zero: Challenges and Opportunities in Reducing Greenhouse Gas Emissions

Course No:
EECS 298
Credit Hours:
1 credit
Instructor:
Stephane Lafortune
Prerequisites:
None

 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

Course No:
EECS 598-014
Credit Hours:
3
Instructor:
Wei Hu
Prerequisites:
Mathematical maturity. Familiarity with probability, multivariate calculus, and linear algebra is required. Knowledge of machine learning is recommended but not required.

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

Course No:
EECS 448
Credit Hours:
4
Instructor:
Emily Provost
Prerequisites:
“Enforced Prerequisite: EECS 281 and (MATH 214 or 217 or 296 or 417 or 419, or ROB 101); (C or better; No OP/F) or Graduate Standing in CSE Advisory Prerequisite: EECS 445”

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.

More info

Winter 2023: CSE Seminar

Course No:
EECS 598-007
Credit Hours:
1
Instructor:
Nikhil Bansal and Satish Narayanasamy
Prerequisites:
Graduate standing

Winter 2023: Data Centric Systems

Course No:
EECS 598-013
Credit Hours:
3
Instructor:
Reetuparna Das
Prerequisites:
EECS 281, EECS 370, or graduate standing

Winter 2023: Human-AI Interaction & Systems

Course No:
EECS 598-003
Credit Hours:
3
Instructor:
Anhong Guo
Prerequisites:
Graduate standing; or permission from instructor

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.

More info

Winter 2023: Introduction to the Social Consequences of Computing

Course No:
EECS 298-001
Credit Hours:
4
Instructor:
Benjamin Fish
Prerequisites:
EECS 280 or permission of instructor

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.

More info

Winter 2023: Action and Perception

Course No:
EECS 598-010
Credit Hours:
3
Instructor:
Stella Yu
Prerequisites:
Basic knowledge of machine learning, computer vision, and robotics.

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 info

Winter 2023: Extended Reality and Society

Course No:
EECS 498-003
Credit Hours:
4
Instructor:
Austin Yarger
Prerequisites:
EECS 281

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.

More info

Winter 2023: Privacy Enhancing Technologies (PETS)

Course No:
EECS 598-009
Credit Hours:
3 credits
Instructor:
Todd Austin
Prerequisites:
Graduate standing in CSE

This course explores the latest advances in privacy-enhancing technologies (PETs).

More info (pdf)

Winter 2023: Data Centric Systems

Course No:
EECS 598-013
Credit Hours:
3 credits
Instructor:
Reetuparna Das
Prerequisites:
EECS 281, EECS 370 or graduate standing

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

Course No:
EECS 498-004
Credit Hours:
3 credits
Instructor:
Alex Burger
Prerequisites:
PHYSICS 240, MATH 215, and MATH 216

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

Course No:
EECS 498-005
Credit Hours:
4
Instructor:
Michal Derezinski
Prerequisites:
EECS 376, linear algebra and probability

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 info

Winter 2023: Formal Verification of Hardware and Software

Course No:
EECS 598-002
Credit Hours:
4 credits
Instructor:
Karem Sakallah
Prerequisites:
Graduate standing in CSE

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

Course No:
EECS 498-014
Credit Hours:
2 credits
Instructor:
Mohammed Islam
Prerequisites:
See instructor

Please see flyer.

More info (pdf)

Fall 2022: ENGR 490 Designing Your Engineering Future

Course No:
ENGR 490-005
Credit Hours:
2 credits
Instructor:
Joanna Millunchick and Mike Dailey
Prerequisites:
At least one experiential (i.e., active, concrete, contextual) experience

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 info

Fall 2022: Formal Verification of Systems Software

Course No:
EECS 498-008
Credit Hours:
4 credits
Instructor:
Manos Kapritsos
Prerequisites:
EECS 491

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

Course No:
EECS 598-005
Credit Hours:
4 credits
Instructor:
Becky Peterson
Prerequisites:
EECS 320 and EECS 421 or graduate standing
  • 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)
More info (pdf)

Fall 2022: Science of Deep Learning

Course No:
EECS 598-007
Credit Hours:
3 credits
Instructor:
Wei Hu
Prerequisites:
Knowledge of machine learning (EECS 545 or 445 or equivalent) and mathematical maturity

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

Course No:
EECS 498-001
Credit Hours:
4 credits
Instructor:
Jonathan Beaumont
Prerequisites:
EECS 203, EECS 281, EECS 370

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

Course No:
298
Credit Hours:
4
Instructor:
Prof. P.C. Ku
Prerequisites:
None. (The course is designed for undergraduate engineering students at all levels. Students are expected to be fluent in high-school level math (pre-calculus), physics, and chemistry.)

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 info

Fall 2022: Principles of Machine Learning

Course No:
EECS 498-010
Credit Hours:
3 credits
Instructor:
Qing Qu
Prerequisites:
EECS 301 or EECS 351 or linear algebra

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

Course No:
EECS 598-001
Credit Hours:
3 credits
Instructor:
Euiwoong Lee
Prerequisites:
EECS 376 and EECS 477

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

Course No:
EECS 498-003
Credit Hours:
4 credits
Instructor:
Austin Yarger
Prerequisites:
EECS 281. Computer Science students only.

See course flyer below.

More info (pdf)

Fall 2022: Embedded Security

Course No:
EECS 498-009 and EECS 598-009
Credit Hours:
4 credits
Instructor:
Kevin Fu
Prerequisites:
EECS 216 and EECS 370. Advisory course EECS 373.

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.

More info (pdf)

Fall 2022: Randomized Numerical Linear Algebra in Machine Learning

Course No:
EECS 498-003
Credit Hours:
3 credits
Instructor:
Michal Derezinski
Prerequisites:
EECS 501 and EECS 551

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

Course No:
EECS 598-014
Credit Hours:
1 credit
Instructor:
John Laird
Prerequisites:
EECS 492/592 or permission of instructor

 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

Course No:
EECS 498-009/EECS 598-012
Credit Hours:
3 credits
Instructor:
Krisztian Flautner
Prerequisites:
See instructor

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?
More info (pdf)

Winter 2022: Quantum Information, Probability and Computing

Course No:
EECS 598-005
Credit Hours:
3 credits
Instructor:
Sandeep Pradhan

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

Course No:
EECS 498-005
Credit Hours:
3 credits
Instructor:
Duncan Steele
Prerequisites:
See instructor

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

Course No:
EECS 498-006
Credit Hours:
3 credits
Instructor:
Mohammed Islam
Prerequisites:
ENGR 101 or EECS 183

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

Course No:
EECS 498-004
Credit Hours:
4 credits
Instructor:
Euiwoong Lee
Prerequisites:
EECS 376 and linear algebra

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

Course No:
EECS 598-009
Credit Hours:
3 credits
Instructor:
Benjamin Fish
Prerequisites:
Graduate standing or permission of instructor

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

Course No:
EECS 598-006
Credit Hours:
3 credits
Instructor:
Max New
Prerequisites:
EECS 376 and EECS 490

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

Course No:
EECS 598-011
Credit Hours:
3 credits
Instructor:
John Laird
Prerequisites:
EECS 492/592 or permission of instructor

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

Course No:
EECS 598-007
Credit Hours:
4 credits
Instructor:
Paul Grubbs
Prerequisites:
Strongly suggested: EECS 475/575 or EECS 388

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

Course No:
EECS 598-005
Credit Hours:
3 credits
Instructor:
Laura Balzano
Prerequisites:
EECS 501 and 551 (or related courses)

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 info

Fall 2021: Automated Formal Verification of Hardware and Software

Course No:
EECS 498/598
Credit Hours:
4 credits
Instructor:
Yatin Manerkar
Prerequisites:
EECS 203 and EECS 281 or grad standing

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 info

Fall 2021: Machine Learning in Computational Biology

Course No:
EECS 598-011
Credit Hours:
4 credits
Instructor:
Jie Liu, Joshua Welch

See flyer for more information!

More info (pdf)

Fall 2021: Engineering Interactive Systems

Course No:
EECS 598-002
Credit Hours:
3 credits
Instructor:
Alanson Sample
Prerequisites:
Graduate standing

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.

 

More info (pdf)

Fall 2021: Introduction to CSE Graduate Studies

Course No:
EECS 598-006
Credit Hours:
1 credit
Instructor:
Alanson Sample
Prerequisites:
Graduate standing in CSE

See flyer for details!

More info (pdf)

Fall 2021: Conversational Artificial Intelligence

Course No:
EECS 498-006
Credit Hours:
4 credits
Instructor:
Jason Mars
Prerequisites:
EECS 280 and EECS 281

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

Course No:
EECS 598-002
Credit Hours:
3 credits
Instructor:
Nikola Banovic
Prerequisites:
Programming experience in Java, Python, MATLAB or R. Enrollment by override only.

See flyer below for more information!

More info (pdf)

Fall 2021: Introduction to Algorithmic Robotics

Course No:
EECS 498-001
Credit Hours:
3 credits
Instructor:
Dmitry Berenson
Prerequisites:
EECS 280 and MATH 215 (EECS 281 and linear algebra are recommended)

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

Course No:
EECS 598-001
Credit Hours:
4 credits
Instructor:
Hunseok Kim
Prerequisites:
EECS 351 and (EECS 312 or 370 or 427 or 470) or grad standing

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 2021: Applied Parallel Programming with GPUs

Course No:
EECS 498-003 and EECS 598-003
Credit Hours:
4 credits
Instructor:
Reetuparna Das
Prerequisites:
EECS 281 and EECS 370

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

Course No:
EECS 598-007
Credit Hours:
3 credits
Instructor:
Atul Prakash
Prerequisites:
Grad standing or permission of instructor; familiarity with machine learning (e.g. EECS 445)

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 info

Winter 2021: GaN-Based Electronic Devices

Course No:
EECS 598-004
Credit Hours:
3 credits
Instructor:
Elaheh Ahmadi
Prerequisites:
EECS 320 or permission of instructor

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

Course No:
EECS 598-006
Credit Hours:
3 credits
Instructor:
Dmitry Berenson
Prerequisites:
Linear algebra (e.g. MATH 214) and significant programming (e.g. EECS 281)

Winter 2021: Quantum Information, Probability and Computation

Course No:
EECS 598-005
Credit Hours:
3 credits
Instructor:
Sandeep Pradhan
Prerequisites:
Permission of instructor

Winter 2021: Technologies to Optimize Human Learning

Course No:
EECS 598-011
Credit Hours:
3 credits
Instructor:
Xu Wang
Prerequisites:
Grad standing or permission of instructor

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

Course No:
EECS 498-004
Credit Hours:
4 credits
Instructor:
Lu Wang

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

Course No:
EECS 598-010
Credit Hours:
4 credits
Instructor:
Emily Mower Provost
Prerequisites:
Grad Standing – enrollment is by override only; to request an override please waitlist for the course

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

Course No:
EECS 598-008
Credit Hours:
3 credits
Instructor:
Clayton Scott
Prerequisites:
EECS 501 and EECS 545 (advisory)

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.

More info (pdf)

Winter 2021: Software Defined Radio

Course No:
EECS 398-002
Credit Hours:
4 credits
Instructor:
Achilleas Anastasopoulous
Prerequisites:
EECS 216 or permission of instructor

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.

More info (pdf)

Winter 2021: Succinct Graph Data Structures

Course No:
EECS 598-003
Credit Hours:
3 credits
Instructor:
Gregory Bodwin
Prerequisites:
EECS 203 and EECS 281 and MATH 217 (or equivalent), grad standing, or permission of instructor

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.

Topics will include graph spanners and distance preservers (which compress graph distances), block models and regularity lemmas (which compress graph cuts), and spectral sparsiers (which compress graph spectra). Other topics may be set dynamically, based on active student interest and feedback.
More info (pdf)

Fall 2020: Randomness and Computation

Course No:
EECS 598-013
Instructor:
Mahdi Cheraghchi
Prerequisites:
Grad standing or permission of instructor

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

Course No:
EECS 598-006
Instructor:
Xinyu Wang
Machine programming aims to achieve this goal by automatically turning the “problem definition” into “instructions” that can be executed on machines. It has the potential to revolutionize the way software is developed. In fact, this revolution has already begun. For example, deep learning has reshaped our lives in many aspects, where the “problem definition” is expressed using data and “instructions” are machine learned models.
This special topics course will cover another important and emerging class of machine programming techniques, namely program synthesis, which is an area that sits at the intersection of programming languages, formal methods, artificial intelligence, programming systems, and has a wide spectrum of applications, e.g., in end-user programming, data science, databases, systems, software engineering, architecture, robotics, human-computer interaction, etc. In this course, we will study state-of-the-art program synthesis techniques as well as their applications and implementations.
More info (pdf)

Fall 2020: Formal Verification of Hardware and Software Systems

Course No:
EECS 598-008
Instructor:
Karem Sakallah
Prerequisites:
Graduate standing in CSE

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

Course No:
EECS 598-002
Instructor:
Nikola Banovic
Prerequisites:
Graduate standing

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

Course No:
EECS 598-010
Instructor:
Euiwoong Lee
Prerequisites:
EECS 376 and 477

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

Course No:
EECS 498-001
Instructor:
Dmitry Berenson
Prerequisites:
EECS 280 is required; EECS 281 and MATH 214 are recommended

 Build the foundation for your future in robotics!

  • Convex Optimization
  • Motion Planning
  • Point Cloud Processing
  • Probabilistic Reasoning
  • Kalmanand Particle Filters
More info (pdf)

Fall 2020: Semiconductor Power Devices

Course No:
EECS 598-001
Instructor:
Becky Peterson
Prerequisites:
EECS 320 or 421 or grad standing

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

Course No:
EECS 498-004
Instructor:
Mustafa Jave Ali
Prerequisites:
None

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

Course No:
EECS 498-005
Instructor:
J. Alex Halderman
Prerequisites:
EECS 388 or permission of instructor

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.

We will study how elections can be attacked and work to help defend them, using a broad range of technical and public policy tools.
More info (pdf)

Fall 2020: Reinforcement Learning Theory

Course No:
EECS 598-003
Instructor:
Lee Ying
Prerequisites:
EECS 501 or equivalent or grad standing

This course covers fundamental theories and principles of reinforcement learning.

More info (pdf)

Winter 2020: Convex Optimization Methods in Control

Course No:
EECS 598-017
Credit Hours:
3 credits
Instructor:
Peter Seiler
Prerequisites:
EECS 560 (AERO 550)(MECHENG 564) Linear Systems Theory or permission of instructor

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

Course No:
EECS 598-005
Credit Hours:
3 credits
Instructor:
S. Sandeep Pradhan

See course flyer for more information.

More info (pdf)

Winter 2020: Reinforcement Learning

Course No:
EECS 598-002
Credit Hours:
3 credits
Instructor:
Lei Ying
Prerequisites:
EECS 502 or equivalent

This course covers fundamental theories and principles of reinforcement learning. Topics to be covered include:

  1. Dynamic programming and the principle of optimality
  2. Multi-armed bandit: epsilon-greedy, Upper Confidence Bound (UCB) algorithm, Thompson Sampling
  3. Markov chains and Markov Decision Process (MDP)
  4. Value iteration, policy iteration, and LP formulation
  5. Q-Learning: Model-based and model-free
  6. Linear function approximation and deep reinforcement learning
  7. Temporal-difference learning
  8. SARSA
  9. Policy gradient algorithm and variance reduction
  10. The ODE methods and convergence analysis
More info (pdf)

Winter 2020: Human-Computer Interaction

Course No:
EECS 598-012
Credit Hours:
3 credits
Instructor:
Nikola Banovic
Prerequisites:
Grad standing or permission of instructor

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

Course No:
EECS 498-005 / EECS 598-010
Credit Hours:
3 credits
Instructor:
Emily Mower Provost
Prerequisites:
EECS 281 and (MATH 214 or MATH 217 or MATH 296 or MATH 417) or graduate standing

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

Course No:
EECS 598-014
Credit Hours:
3 credits
Instructor:
Ziyou Song
Prerequisites:
EECS 560 or equivalent

 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

Course No:
EECS 598-015
Credit Hours:
3 credits
Instructor:
Alanson Sample
Prerequisites:
General programming skills

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

Course No:
EECS 498-006 / EECS 598-013
Credit Hours:
3-4 credits
Instructor:
Pinaki Mazumder
Prerequisites:
Basic knowledge of linear algebra

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

Course No:
EECS 598-007
Credit Hours:
3 credits
Instructor:
David Fouhey
Prerequisites:
Graduate standing in EECS or Robotics or permission of instructor

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

Course No:
EECS 398-001
Credit Hours:
4 credits
Instructor:
Wayne Stark
Prerequisites:
EECS 216 or permission of instructor

In this class you will learn basic concepts of software defined radio.  You will learn the following

  1. 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.
  2. 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.
More infoMore info (pdf)

Winter 2020: Quantum Optoelectronics

Course No:
EECS 598-004
Credit Hours:
3 credits
Instructor:
Mackillo Kira
Prerequisites:
PHYSICS 240 AND (EECS 334 or EECS 434 or EECS 320 or EECS 520 or EECS 540)

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

Course No:
EECS 498-009
Credit Hours:
4 credits
Instructor:
Elliot Soloway and Mark Guzdial
Prerequisites:
Senior standing

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

Course No:
EECS 598-002
Credit Hours:
3 credits
Instructor:
Nikola Banovic
Prerequisites:
Programming experience in Java, Python, MATLAB or R

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

Course No:
EECS 598-004
Credit Hours:
3 credits
Instructor:
Johanna Mathieu
Prerequisites:
EECS 463 or permission of instructor

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

Course No:
EECS 498-003
Credit Hours:
4 credits
Instructor:
Reetuparna Das
Prerequisites:
EECS 281 and EECS 370

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

Course No:
EECS 598-004
Credit Hours:
3 credits
Instructor:
Louise Willingale
Prerequisites:
EECS 537 or permission of instructor

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

Course No:
EECS 598-006
Credit Hours:
3-4 credits
Instructor:
Hunseok Kim
Prerequisites:
EECS 351 and (EECS 312 or EECS 370) or grad standing

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

Course No:
EECS 598-007
Credit Hours:
1 credit
Instructor:
J. Alex Halderman and Margo Schlanger
Prerequisites:
Grad standing or permission of instructor

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

Course No:
EECS 598-001
Credit Hours:
3-4 credits
Instructor:
Pinaki Mazumder
Prerequisites:
Permission of instructor

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

Course No:
EECS 598-008
Credit Hours:
4 credits
Instructor:
Walter Lasecki
Prerequisites:
Graduate standing in CSE or SI

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

Course No:
EECS 498-001
Credit Hours:
4 credits
Instructor:
Jason Mars
Prerequisites:
EECS 284 (required) and MATH 214 or equivalent (advisory)

See flyer for more information!

More info (pdf)

Fall 2019: Practical Skills for Teaching Computing

Course No:
EECS 398-003
Credit Hours:
1 credit
Instructor:
Kevin Angstadt
Prerequisites:
Permission of instructor

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

Course No:
498.005
Credit Hours:
3
Instructor:
Javed Ali and Dr. Carl Landwehr
Prerequisites:
None

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

Course No:
EECS 498-009/EECS598-013
Credit Hours:
4 credits
Instructor:
Mahdi Cheraghchi
Prerequisites:
Graduate or senior standing or permission of instructor

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

Course No:
EECS 598
Credit Hours:
TBD
Instructor:
Cyrus Omar
Prerequisites:
Grad standing in CSE or SI or permission of instructor

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

Course No:
EECS 398-002
Credit Hours:
3
Instructor:
Brian Gilchrist and Shai Revzen
Prerequisites:
At least 3 of 4 (215, 216, 230, 280) or permission of instructor

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)