New Course Announcements
Winter 2020: Reinforcement Learning
This course covers fundamental theories and principles of reinforcement learning. Topics to be covered include:
- Dynamic programming and the principle of optimality
- Multi-armed bandit: epsilon-greedy, Upper Confidence Bound (UCB) algorithm, Thompson Sampling
- Markov chains and Markov Decision Process (MDP)
- Value iteration, policy iteration, and LP formulation
- Q-Learning: Model-based and model-free
- Linear function approximation and deep reinforcement learning
- Temporal-difference learning
- Policy gradient algorithm and variance reduction
- The ODE methods and convergence analysis
Winter 2020: Human-Computer Interaction
This course will teach students principles and methods of technical Human-Computer Interaction (HCI) research. It will also include a survey of important research threads. Short individual assignments will give students exposure to existing research methods in HCI. Midterm and final exams will test the student knowledge of the topic.More info (pdf)
Winter 2020: Applied Machine Learning for Affective Computing
This course covers the concepts and techniques that underlie machine learning of human behavior across multiple interaction modalities. Topics include: speech/text/gestural behavior recognition through applications of machine learning, including deep learning. Fluency in a standard object-oriented programming language is assumed. Prior experience with speech or other data modeling is neither required nor assumed.More info (pdf)
Winter 2020: Advanced Energy Storage
This course primarily focuses on introducing and comparing different energy storages, such as pumped-storage, compressed air energy storage, batteries, capacitive energy storage, fuel cells, and flywheels, with special applications to electrified vehicles and renewable energy systems where energy storage plays a crucial role.
The course will focus on reviewing principles and recent progress in energy storage systems, with the goals of improving the performance and lifespan of electrified vehicles as well as integrating renewable energy (e.g., wind and solar energy) into the grid.More info (pdf)
Winter 2020: Engineering Interactive Systems
Classroom instruction will focus on a review of current research topics and literature in technical HCI areas, including interactive technologies, augmented reality, haptics, wearables, shape-changing interfaces, and more. Homework assignments will take the form of mini-projects designed to build hands-on skills in the use of laser cutters, 3D printers, sensing and signal acquisition, embedded systems, and machine learning for event and activity recognition. The class will culminate in a final project where teams of students will pitch, build, and demo a self-defined project using the skills developed in this course.More info (pdf)
Winter 2020: Quantum Computers: Fundamentals, Architectures, and Programming
Quantum information has long outgrown the limits of academic exploration of a new kind of secure cryptography realized by quirky features of quantum systems. Theoretical investigations revealed that quantum computers while defying the common approach to programming may greatly outperform classical architectures. The emergent new generation of information processing has given birth to the emerging multi-billion-dollar industry by utilizing different approaches to processing quantum information. Quantum architectures designed by D-wave, IBM, Google, Rigetti Computing, Intel, and Ion-Q exploit a wide gamut of innovative technologies to implement disparate paradigms of quantum computation. On the application side, Google, NASA, Microsoft and other companies heavily invest into development of quantum artificial intelligence, machine learning, and complex optimization problems.
The present course aims to meet the industrial interest in engineers with a specialized training capable of creating and developing new applications utilizing quantum information processing architectures. An indispensable part of the course is a series of programming assignments that will be designed to impart practical experience with quantum computers: starting from basic operations with qubits utilizing individual quantum gates to applications with complex functionality. Students will use commercial graded simulators such as Qiskit, QX, and PyQu to implement their programming assignments. All technical formalism needed for the topics covered in the course will be introduced in the course.More info (pdf)
Winter 2020: The Ecological Approach to Visual Perception
Specifically, we will explore (in no particular order): the perception of affordances and spatial layout; perception of and for manipulation; agents and how they exist in their environment; visual navigation; learning from demonstration and natural supervision; learning of physical models and dynamics; and learning of agency and intentionality. While the primary focus and assumed background knowledge is learning-based visual perception, readings will come from a wide variety of fields and students should be prepared to read out of their comfort zone.
This is a graduate-level course incorporating two components. The first is weekly group-driven reading and active discussion and debating of related work in robotics, computer vision, machine learning, and psychology. This will be a roughly even split between recent work and classics. The second are projects that put ideas from the first component to the test. These are semester-long projects, ideally interdisciplinary, that: find a particular problem; make a concrete hypothesis and experiments to test it; and execute them computationally using realistic data.More info (pdf)
Winter 2020: Software Defined Radio
In this class you will learn basic concepts of software defined radio. You will learn the following
- How basic radios work
- Upconversion and down conversion
- Frequency and phase synchronization
- Timing synchronization
- Digital modulation and demodulation including BPSK, QPSK, QAM, FSK, OFDM (several of these are used in 5G cellular networks and WiFi).
- How to implement in software the different modulation and demodulation schemes. Most of what we do is done via a graphical user interface (GUI) but some custom operation can be programmed using Python. No knowledge of Python is assumed.
- How to implement these in software and hardware. We will use Universal Software Radio Peripheral (USRP) for the hardware and GNU Radio Companion (GRC) for the software. This hardware and software is used by many companies including Samsung, Nokia, AT&T, Navy, Sandia National Labs, MIT, Analog Devices, Oak Ridge National Laboratory, Xilinx, IBM, Northrop Grumman, NASA, IEEE.
Winter 2020: Quantum Optoelectronics
Optoelectronic devices are already being revolutionized by the prospects of quantum technology. Ever smaller and faster components will inevitably reach a level where a collective can outperform individual parts due to emergent quantum effects such as entanglement. This lecture welcomes you to the central concepts of quantum engineering of semiconductors to explore optoelectronic, quantum-optical, and many-body processes, relevant for state-of-the-art experiments and the future of quantum technology.More info (pdf)
Fall 2019: Building Computer-Based Supports for Student Learning Through Inquiry
In this 498, the goal will be to build software to support educational activities in K-12 and in higher education. Faculty in K-12 have suggested the need for specific pieces of software. For example, a 3rd grade teacher has been pleading for a T-Chart app one that is collabrified, i.e., it supports synchronous collaboration. In higher ed, in materials courses, there is a need for a VR app to help students visualize the atomic structure of the materials. In high school, there is a need for a tool to support historical inquiry. In past iterations of this project, students have built software that is actually used in schools, nationwide. Teams will be formed; they will use the agile software development methodology: cycles of design, build, user test. Be prepared to visit classrooms and hear first-hand what users think of your software!More info (pdf)
Fall 2019: Computational Modeling in HCI
This seminar style course will teach students methods to track, collect, and express human behavior data as computational models of behavior. The course will have a particular focus on computational approaches to describe, simulate, and predict human behavior from empirical behavior traces data. It will contrast computational modeling with other methodologies to understand human behavior and compare computational modeling with existing behavior modeling methodologies in Human-Computer Interaction (HCI). Short individual assignments will give students exposure to existing modeling methods in HCI. Large,group-based final project will give students an opportunity to push the boundaries of computational modeling in HCI by modeling behaviors of their choice from an existing data set to design and implement a novel Computational Modeling system from scratch.More info (pdf)
Fall 2019: Power System Markets and Optimization
This course covers the fundamentals of electric power system markets and the optimization methods required to solve planning and operational problems including economic dispatch, optimal power flow, and unit commitment. The course will highlight recent advances including convex relaxations of the optimal power flow problem, and formulations/solutions to stochastic dispatch problems. Problems will be placed in the context of actual electricity markets, and new issues, such as incorporation of renewable resources and demand response into markets, will be covered. All students will conduct an individual research project.More info (pdf)
Fall 2019: Applied Parallel Programming with GPUs
The goal of this class is to teach parallel computing anddeveloping applications for massively parallel processors (e.g.GPUs). Self driving cars, machine learning and augmentedreality are examples of applications involving parallel computing. The class focuses on computational thinking, forms of parallelism, programming models, mapping computations to parallel hardware, efficient data structures, paradigms for efficient parallel algorithms, and application case studies.
The course will cover popular programming interface for graphics processors (CUDA for NVIDIA processors), internal architecture of graphics processors and how it impacts performance, and implementations of parallel algorithms on graphics processors. The curriculum will be delivered in ~29 lectures. The class has heavy programming components, including six hands-on assignmentsand a final project.More info (pdf)
Fall 2019: Laser Plasma Diagnostics
High power laser pulses are used to both create and diagnose high-energy density systems. In this course, we will discuss the techniques used for creating, characterizing and timing high power laser pulses from megajoule-nanosecond pulses to relativistic-intensity femtosecond pulses. We will explore the diagnostics used to characterize high-energy density plasmas through opticaland other radiation measurements as well as backlighting techniques. Other important aspects of performing experiments, such as target positioning techniques, will be touched on. In addition to the material discussed in lectures, students will consider real experimental data and recent research publications to learn analysis techniques, gain appreciation for physical limitations (such as instrument resolution and background signals), and comparison with theoretical models. This course is suitable for graduate students studying plasma physics, optics and laser science and other related areas. A design project based aroundan experimental proposal will involve a peer review process, written proposal and oral presentationMore info (pdf)
Fall 2019: VLSI for Communication and Machine Learning
This course will survey methodologies to design energy efficient and/or high-performance VLSI systems for the state-of-the-art wireless communication, machine learning, and signal processing systems. The primary focus of the course is on designing hardware efficient algorithms and energy-aware VLSI IC architectures to deliver the performance and efficiency required by various signal processing and machine learning applications. The course will be a mix of lectures and student-led presentations/projects. The content will be suitable for senior undergraduates or graduate students interested in hardware-efficient algorithms and their VLSI implementations.More info (pdf)
Fall 2019: Topics in Surveillance: Law and Technology
This unique seminar brings together students and faculty from computer science and law to address six current controversies in surveillance, chosen from topics like:-smartphone hacking by the FBI-internet and telephone metadata collection-border searches of electronic devices-mass surveillance of data and phone calls-cellphone geolocation tracking.More info (pdf)
Fall 2019: Brain-Inspired Computing: Models, Architectures, and Programming
Brain-inspired computing is a subset of AI-based machine learning and is generally referred to both deep and shallow artificial neural networks (ANN) and spiking neural networks (SNN). Deep convolutional neural networks (CNN) have made pervasive market inroads in numerous commercial applications and their software implementations are widely studied in computer vision, speech processing and other courses. The purpose of this course will be to study the wide gamut of shallow and deep neural network models, the methodologies for specialized hardware design of popular learning algorithms, as well as adapting hardware architectures on crossbar fabrics of emerging technologies such as memristors and spin torque nonmagnetic devices. Existing software development tools such as TensorFlow, Caffe, and PyTorch will be leveraged to teach various aspects of neuromorphic designs.More info (pdf)
Fall 2019: Crowdsourcing and Human-AI Interaction
This course will cover topics in Human-Computer Interaction, human computation and crowdsourcing, and the emerging literature in Human-AI Interaction, with a focus on techniques for creating interactive intelligent systems that leverage a combination of human and machine intelligence to accomplish tasks more effectively than either could alone. We will also touch on the theory underlying many of the current approaches (e.g., game theory, voting theory, reasoning under uncertainty, and machine learning), and potential ethical concerns raised by these systems (e.g., safety and end-user privacy).More info (pdf)
Fall 2019: Conversational Artificial Intelligence
See flyer for more information!More info (pdf)
Fall 2019: Practical Skills for Teaching Computing
Are you a new IA looking for help getting started with teaching?Or are you an experienced IA who is curious about what goes on behind the scenes with organizing and teaching a computer science class? The new EECS 398 TA Practicum is a course offering designed just for you! This one-credit course will introduce students to, and allow students to develop practicalskills for, designing and teaching courses with significant computing aspects. Course content will both help prepare students for direct interaction with their peers as TAs andalso expose students to the research and scholarship of learning and teaching. Students will also have the opportunity to discuss challenges they face in the classroom with their peers. Ultimately, the goal of this course is to provide a place and time for TAsto explore their identity as teachers.More info (pdf)
Fall 2019: Cybersecurity for Future Leaders
Future leaders will need to understand the science, technology, and human considerations behind cybersecurity well enough to make informed decisions when provided advice and options for action. Over the last decade cybersecurity issues have risen in prominence from a U.S. national security perspective, as well as from the perspective of individuals and organizations.
This class will examine the broad landscape of cybersecurity from both a technical and policy perspective. It will introduce fundamental concepts of computing and cyber security, including information theory, computability, cryptography, networking fundamentals, how vulnerabilities arise, and how attacks work. In addition, it will explore foundational ideas including definitions, cyber norms, and ethics; identify existing U.S. laws, authorities and governmental constructs; and frame classic security concepts like deterrence, attribution, offense, defense, and retaliation. The course will also involve guest speakers, short assessments and writing assignments designed to capture technical and policy insights, and a simulated meeting where students assume different governmental or private sector roles to examine potential courses of action regarding a cybersecurity crisis scenario.More info (pdf)
Fall 2019: Coding Theory for Theoretical Computer Science
The aim of this course is to provide an introduction to coding theory from a theoretical computer science perspective, and showcase the fascinating interplay between the twotopics. A tentative list of topics to be covered includes: basics of codes, linear codes, fundamental bounds on codes, composition of codes, algebraic codes, combinatorial and algorithmic list decoding, applications to cryptography and learning theory, locallytestable and locally decodable codes, expander graphs and graph-based codes, hardness and randomness, list recovery and soft decision, randomness extractors, sparse signal processing and sparse transforms.More info (pdf)
Fall 2019: User Interfaces for Programming Languages
Programmers interact with programming languages by way of user interfaces of widely varying design. This course will provide a broad overview of the literature on user interfaces for programming languages, covering both notable historic and contemporary designs and ongoing research topics. Topics covered may include: structure editors and block languages, tools for exploratory data analysis, visual programming, advanced autocomplete, live coding tools for musicians and artists, interactive debuggers, interactive theorem provers, educational user interfaces, end-user programming, cognitive dimensions of notation, mental models, API usability, and programmable physical environments.More info (pdf)
Fall 2019: Electrical Engineering Systems Design II
EECS 398 – 002 (3 cr) is a new design-oriented course which is running for the first time this fall. It counts as an upper level EE technical elective for currently declared EE students, and will become a required part of the EE degree program for anyone who declares an EE major on or after fall 2019 (final course name will be EECS 300). In this course, students will work with embedded systems, signal processing, various analog and digital sensors, power systems, wireless, and more in their design project.
The purpose of this course is to apply knowledge gained in core EECS courses and stretch to include more advanced topics in a design project with real world relevance. This year, we will be improving and creating new sensing and support modules used to monitor water systems throughout the world. The node system we are basing our work on was created by the Open Storm lab, here at Michigan (http://open-storm.org/). The data these devices gather is used to prevent flooding, create healthier watersheds, and help respond more swiftly in the event a flood does happen. All design goals and specifications for the course project will be driven by the actual Open Storm projects needsMore info (pdf)