New Course Announcements
Winter 2022: Artificial General Intelligence
This class will explore the computational structures and processes that can potentially support general intelligence. This will be a seminar course where students read, present, and discuss readings from AI and cognitive science, including psychology, linguistics, animal behavior, and neuroscience. Students will be evaluated on participation in class.More info (pdf)
Winter 2022: Identity and Trust On- and Off-Web
The class will be conducted seminar style and involve presentations by students, guest lecturers, discussions, and projects. Some topics of interest are as follows:
- Self-sovereign identity and verifiable claims: deep dive
- Implementing efficient and easy to use hardware and software wallets
- Mapping use-cases to the technology: trade-offs between coverage & complexity
- Issues inherent in a unified approach to people, services, things and data
- Blockchains & distributed ledgers: what role do they play?
- Designing for the real-world: security, usability, scale
- Co-existing with and leveraging legacy identity and security technologies
- Rethinking micropayments: is it different this time?
- Smart contracts: how do we trust a world that runs as code?
Winter 2022: Quantum Information, Probability and Computing
The failures of classical theories to explain important physical phenomena led to revolutionary and unprecedented changes in our thinking, and, in turn, to the develop-ment of quantum mechanics in the ﬁrst 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 ﬁelds 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-eﬀects 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 ﬁnd this material of interest.More info (pdf)
Winter 2022: Introduction to Quantum Electromagnetics
This course is designed for upper level engineering students and students from the physical sciences who have had the usual first two semesters of introductory physics (e.g., 140/240) and the usual calculus classes up through differential equations. Some general knowledge of matrices and determinants is helpful. The course assumes no prior training in quantum mechanics. The course begins with a short introduction to the usual quantum mechanics and then a presentation of the postulates of quantum mechanics and an introduction to Dirac notation. After reviewing the basic ideas and results of classical electromagnetics, we then use the postulates to convert the classical picture of electromagnetics to the quantum picture. The rest of the semester is then used to explore how to create and detect the quantum field and the creation of new states of the quantum field for quantum communications, quantum sensing (lidar/radar), quantum encryption and quantum information. The impact of the quantum vacuum on devices is discussed as well as the interaction of quantized light with various kinds of quantum devices.
The performance metric in the class is focused on learning rather than assessment.More info (pdf)
Winter 2022: Internet Foundations
This course introduces students to the fundamentals of the internet. You use the internet every day, and in this course we permit you to “look under the hood” of the internet. We start by reviewing the differences between various applications, such as world wide web, skype, and Bit-Torrent. The 4-layer internet model will be explained, which includes the application, transport, network and link layers. Internet protocol and TCP/IP communication will be reviewed, along with a detailed discussion of how packet switching and routers work. The link and physical layer description will include explanations of how WiFi and Ethernet networks work. Other topics covered briefly include Network Address Translation, Wireless and Mobile Networks, Multimedia Networking, and Network Security. By taking this course you will have a better appreciation of how computer networks work and how your computer communicates over the internet.More info (pdf)
Winter 2022: Algorithms for Data Science
This course will introduce algorithmic and theoretical aspects of data science. With the emergence of machine learning and data science, providing theoretical foundations for them will become increasingly important. The course will cover several important algorithms in data science and see how their performances can be analyzed. While fundamental ideas covered in EECS 376 (e.g., design and analysis of algorithms, NP-hardness, etc.) will be important, some topics will introduce new concepts and ideas, including sublinear time algorithms, algorithms for continuous domains, and average-case analysis.More info (pdf)
Winter 2022: Social Consequences in Computer: Fairness, Privacy, and Other Values
This class will cover the ways in which applications of computing affect societal institutions and how these social consequences produce questions about how to conceptualize, critique, and ensure our all-too human values in computing. To accomplish this, we will explore computing — particularly artificial intelligence (AI) and machine learning — in online platforms, algorithms, and policy-making, including exploring the role of AI in everything from personalization to surveillance to online speech. We will focus on those values where recent advances in computing have demonstrated large societal challenges: privacy, fairness, justice, and related values. We will critically examine the philosophical and sociological underpinnings of these values and the strategies commonly used to promote them, and seek to connect these conceptualizations to the emerging algorithmic tools proposed for promoting those values. In doing so, we will develop a diverse toolbox of computational, social, and political ideas, with the end goal of developing the ability to thoroughly reason through these problems in our own projects.More info (pdf)
Winter 2022: Category Theory
This course will serve as an introduction to category theory for computer science students, especially those interested in applications to formal logic and programming languages. Tentative topics include categories, functors, natural transformations, adjunctions, universal properties, monads, multicategories, and functorial semantics. We will focus on the formal relationship between syntax and semantics as a unifying theme.More info (pdf)
Winter 2022: Artificial General Intelligence
This class will explore the computational structures and processes that can potentially support general intelligence. This will be a seminar course where students read, present, and discuss readings from AI and cognitive science, including psychology, linguistics, animal behavior, and neuroscience. Students will be evaluated on pre-class analyses of class topics, participation in class, and their final project/paper.More info (pdf)
Winter 2022: Encrypted Systems
The aim of this course is fourfold: first, to understand the cryptographic tools that have proven useful in encrypted systems, and how to design new ones; second, to study how encrypted systems have used them (successfully or not); third, to identify “design patterns” for encrypted systems; fourth, to navigate the complex ethical questions that can arise in encrypted systems research.More info (pdf)
Fall 2021: Randomized Numerical Linear Algebra in Machine Learning
This course will focus on numerical linear algebra (NLA), which describes a large suite of algorithms that power a huge number of scientific, data science, and machine learning applications. The use of randomization has been allowing these methods to scale to tremendous data sizes in efficient ways. We will study recent research results in randomized NLA, tradeoffs in terms of computation, data requirements, and accuracy, as well as some specific applications in machine learning and scientific computing.More info
Fall 2021: Automated Formal Verification of Hardware and Software
This course teaches students about a variety of automated formal verification techniques as well as how to apply such techniques to the verification of hardware and software systems. The course material will equip students to be capable of utilising formal verification tools in the field, and also forms a foundational understanding on top of which they can conduct formal verification research. A substantial component of the course grade will be a final research project (conducted in teams of 2 or 3 students), in which you are expected to conduct original research in formal verification. A list of project ideas will be provided by the instructor; students may also propose their own project ideas, subject to instructor approval.More info
Fall 2021: Machine Learning in Computational Biology
See flyer for more information!More info (pdf)
Fall 2021: Engineering Interactive Systems
This course teaches principles (e.g., human-centered systems design, usability, accessibility) and methods (e.g., requirements gathering, functional prototyping, user study evaluation) of technical Human-Computer Interaction (HCI) research. The course surveys HCI research threads including Human-AI Interaction, Social Computing, Behavior Modeling, Education Technologies. Group assignments give students exposure to HCI research methods.
Fall 2021: Introduction to CSE Graduate Studies
See flyer for details!More info (pdf)
Fall 2021: Conversational Artificial Intelligence
The science and art of creating conversational AI spans multiple areas in computer science. Learning about and leveraging advances in these areas to create state-of-the art conversational virtual assistants is the central focus of this course. Throughout the course, students will put into practice the end-to-end creation of a virtual assistant spanning natural language processing, dialogue management, response generation, and other applications. Students will also use tools that span both traditional techniques as well as cutting edge techniques for these AI with the goal of creating new experiences that go beyond existing virtual assistants. Students will be tasked with integrating the AI experiences they create with a set real APIs of their choosing (e.g., Spotify, Fitbit, Unity, etc.). The project culminates in a demo day where creations are shared for others to try, for this semester, these public demos will take the form of video submissions that will be posted on the course website.More info (pdf)
Fall 2021: Human-Computer Interaction
See flyer below for more information!More info (pdf)
Fall 2021: Introduction to Algorithmic Robotics
Build the foundation for your future in robotics! See flyer for more information.More info (pdf)
Fall 2021: VLSI for Wireless Communication and Machine Learning
This course will survey methodologies to design energy-efficient and/or highperformance VLSI systems for the state-of-the-art wireless communication, machine learning, and signal processing systems. The primary focus of the course is on designing hardware-efficient algorithms and energy-aware VLSI IC architectures to deliver the performance and efficiency required by various signal processing and machine learning applications. The course will be a mix of lectures and student-led presentations/projects. The content will be suitable for senior undergraduates or graduate students interested in hardware-efficient algorithms and their VLSI implementations.More info (pdf)
Fall 2021: Applied Parallel Programming with GPUs
The goal of this class is to teach parallel computing and developing applications for massively parallel processors (e.g. GPUs). Self-driving cars, machine learning and augmented reality are examples of applications involving parallel computing. The class focuses on computational thinking, forms of parallelism, programming models, mapping computations to parallel hardware, efficient data structures, paradigms for efficient parallel algorithms, and application case studies.More info (pdf)
Winter 2021: Adversarial Machine Learning
This is a new special topics course that will look at recent advances in the field of adversarial machine learning, both from an attack and defense perspective. Deep neural networks (DNNs) are widely used in computer vision for both detecting and classifying objects and are relevant to emerging systems for autonomous driving. Unfortunately, there is a question of trust, are machine learning (ML) models sufficiently robust to make correct decisions when human safety is at risk? This course will examine research papers in this field looking at vulnerabilities or defenses in machine learning systems with respect to various types of attacks including data poisoning attacks during training time or during online learning, data perturbation attacks on a trained model to cause misclassifications, and deepfake attacks. Papers on bias and fairness in machine learning systems are also within scope.
The class will be conducted seminar style and involve presentations by students, discussions, and projects to help everyone in the class up to speed on the foundations and cutting-edge research in the field. Each group will be expected to share a summary of one attack paper and one defense paper and present the paper to the class during the semester. The group should attempt to reproduce a subset of the results of the paper being presented (or in the rare case that is not possible due to lack of datasets, sufficient detail, lack of computational resources, or models, another paper that is presented in the class).More info
Winter 2021: GaN-Based Electronic Devices
Device performances are driven by new materials, scaling, and new device concepts such as bandstructure and polarization engineering. Semiconductor devices have mostly relied on Si but increasingly GaAs, InGaAs and heterostructures made from Si/SiGe, GaAs/AlGaAs etc have become important. Over the last few years one of the most exciting new entries has been the GaN based devices that provide new possibilities for lighting, displays and wireless communications. New physics based on polar charges and polar interfaces has become important as a result of the nitrides. For students to be able to participate in this and other exciting arena, a broad understanding of physics, materials properties and device concepts is required.More info (pdf)
Winter 2021: Motion Planning
Winter 2021: Quantum Information, Probability and Computation
Winter 2021: Technologies to Optimize Human Learning
The advances in computing have changed the ways people learn. In this seminar, we will review educational technologies that draw a wide range of techniques from Augmented Reality, Computer Vision, Natural Language Processing, Crowdsourcing, etc. We will also discuss how these systems are guided by theories of how humans learn and the HCI methods used to design and evaluate them.More info (pdf)
Winter 2021: Introduction to Natural Language Processing
This course aims to introduce fundamental tasks in natural language processing, and its recent advances based on machine learning algorithms (e.g., neural networks) and applications for interdisciplinary subjects (e.g., computational social science). The course materials are mostly delivered as lectures, and accompanied with reading materials.More info (pdf)
Winter 2021: Applied Machine Learning for Affective Computing
This course covers the concepts and techniques that underlie machine learning of human behavior across multiple interaction modalities. Topics include: speech/text/gestural behavior recognition through applications of machine learning, including deep learning. The course will also include discussions of the cybersecurity challenges associated with this domain. Fluency in a standard object-oriented programming language is assumed. Prior experience with speech or other data modeling is neither required nor assumed.More info (pdf)
Winter 2021: Statistical Learning Theory
This course will cover statistical learning theory including the following topics: concentration inequalities, consistency of learning algorithms, Vapnik-Chervonenkis theory and Rademacher complexity, reproducing kernel Hilbert spaces and kernel methods, surrogate losses, and deep learning. Unsupervised and online learning may also be covered as time permits.
Students are expected to have (1) a strong background in probability at the level of EECS 501, (2) prior exposure to machine learning algorithms, such as EECS 545, Stat 601, or Stat 605, and (3) some experience with writing formal mathematical proofs as might be acquired in an upper level undergraduate mathematics course.
Grading will be based on occasional homework assignments and an individual end-of-semester report on a topic of the student’s choosing. There may also be a participation component to the grade. There will be no exams.
One desired outcome for students taking this course is an ability to read research articles in the field of machine learning and appreciate the significance of the theoretical performance guarantees describe in those articles. Students developing new algorithms as part of their research can also expect to learn techniques that will help them analyze their algorithms.
Winter 2021: Software Defined Radio
In this class you will learn basic concepts of software defined radio. You will learn the following:
How basic radios work
A: Upconversion and down conversion
B: Frequency and phase synchronization
C: Timing synchronization
D: Digital modulation and demodulation including BPSK, QPSK, QAM, FSK, OFDM (several of these are used in 5G cellular networks and WiFi).
E: How to implement in software the different modulation and demodulation schemes. Most of what we do is done via a graphical user interface (GUI) but some custom operation can be programmed using Python. No knowledge of Python is assumed.
Winter 2021: Succinct Graph Data Structures
From social networks to road maps to the internet, the modern world is dominated by data represented in enormously large graphs. An effective way to make sense of a massive graph is to create a much smaller one that is “similar” to the original in some critical ways. But how accurately can this be done? What methods of graph compression take on the least error? What structural properties of a network make it easy or hard to accurately express in small space? This class will develop the theoretical underpinnings of graph compression algorithms in a mathematically rigorous, proof-based way.
Fall 2020: Randomness and Computation
Along with time and memory, randomness is a fundamental resource in computation. In many cases, randomness can be used to speed up computational tasks or reduce the memory footprint, creating an entire area of randomized algorithms. In applications such as cryptography, randomness is a necessary aspect of computation and such system crucially rely on access to high quality random bits (for example to produce a perfectly random secret key). Moreover for such applications, the information-theoretic view of randomness is used to mathematically model uncertainty. In machine learning and computational learning, randomness and statistics are essential tools to model the computational task. The use of randomness and particularly the probabilistic method constitutes an important proof technique in discrete mathematics. The range of applications of randomness in computation is simply too broad to break down on a short list.
The aim of this course is to provide a mathematically rigorous exposition of the role of randomness in computation. The course will do so by showcasing examples from different application areas, such as those described above. Furthermore, time permitting, the question of simulating randomness by deterministic computation as well as extraction of randomness from weak random sources will be discussed. The precise choice of topics within the area will be flexible depending on the interests of the audience and active feedback from the students.More info (pdf)
Fall 2020: Program Synthesis Techniques and Applications
Fall 2020: Formal Verification of Hardware and Software Systems
The course will be based on reading classic papers on software and hardware verification as well as more recent papers that describe advances in automated reasoning algorithms and their applications to verification. A theme of the course will be to find common threads that tie together the seemingly‐disparate methods used in HW and SW verification. Students can expect to learn how to encode software programs and hardware circuits as transition systems, and how to develop suitable abstractions for checking control‐centric properties. Additionally, they will have hands‐on experience with a variety of existing reasoning and verification tools and the option of developing extensions to these tools. The course work will consist of a few short assignments to help the students master the main technical issues and semester‐long individual or group projects selected by the students.More info (pdf)
Fall 2020: Human-Computer Interaction
This course will teach students principles and methods of technical Human-Computer Interaction (HCI) research. It will also include a survey of important research threads. Short individual assignments will give students exposure to existing research methods in HCI. Midterm and final exams will test the student knowledge of the topic.More info (pdf)
Fall 2020: Approximation Algorithms and Hardness of Approximation
Approximation algorithms have been actively studied in both algorithms and complexity theory, culminating in optimal approximation algorithms for some fundamental problems; they achieve some approximation guarantees and no polynomial time algorithm can do better under some complexity conjectures. The theory of approximation algorithms also leads to beautiful connections between algorithms, complexity, and some areas of mathematics. This course will provide an overview of these connections, stressing techniques and tools required to prove both algorithms and complexity results.More info (pdf)
Fall 2020: Introduction to Algorithmic Robotics
Build the foundation for your future in robotics!
- Convex Optimization
- Motion Planning
- Point Cloud Processing
- Probabilistic Reasoning
- Kalmanand Particle Filters
Fall 2020: Semiconductor Power Devices
Power devices drive our society, from the power grid and renewable energy integration to hybrid and electric vehicles, trains, space exploration, and industrial and consumer electronics. This course will cover design and operating principles of semiconductor devices for discrete and integrated power electronics. Devices we will discuss include the power MOSFET, IGBT, HEMT, Schottky and PIN diodes, as well as emerging device architectures. We will study wide bandgap semiconductor materials, device fabrication and packaging required for power devices, including GaN, SiC, and Ga2O3. Students will be exposed to numerical device modeling using commercial TCAD software (Synopsys Sentaurus and Silvaco Atlas), and will do a final group presentation on a topic of their choice.More info (pdf)
Fall 2020: Cybersecurity for Future Leaders
This class will examine the broad landscape of cybersecurity from both a technical and policy perspective. It will introduce fundamental concepts of computing and cyber security, including information theory, computability, cryptography, networking fundamentals, how vulnerabilities arise, and how attacks work. In addition, it will explore foundational ideas including definitions, cyber norms, and ethics; identify existing U.S. laws, authorities and governmental constructs; and frame classic security concepts like deterrence, attribution, offense, defense, and retaliation. The course will also involve guest speakers, student panels, and writing assignments designed to capture technical and policy insights, and a simulated meeting where students assume different governmental or private sector roles to examine potential courses of action regarding a cybersecurity crisis scenario.More info (pdf)
Fall 2020: Election Cybersecurity
Elections, the foundation of democracy,are increasingly subject to electronic attacks. Manipulation of social media, hacks against campaigns, and vulnerabilities in voting equipment create unprecedented risks.
This special topics course will examine the past, present, and future of election security, informed by perspectives at the intersection of computer science, law and public policy, politics, and international affairs.
Fall 2020: Reinforcement Learning Theory
This course covers fundamental theories and principles of reinforcement learning.More info (pdf)