Home > Academics > Course Information > Course Descriptions > New Course Announcements

New Course Announcements

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)