New Course Announcements
Fall 2022: ENGR 490 Designing Your Engineering Future
ENGR 490.004 and 490.005 meet together for the first seven weeks of the semester. Then, ENGR 490.005 continues to the end of the semester. * Indicates information specific to ENGR 490.005.
As graduation approaches, you have engaged in a wealth of experiences and collected a bounty of stories. As you move forward to new experiences, you may have many questions about your future: What career do I want? What lifestyle? What jobs should I apply for? Accept? Should I attend graduate school? Am I an effective engineer?
This course will help you leverage your past experiences to create and use tools that will help you answer questions about your personal and professional futures. You’ll create a set of guiding principles and a professional statement and begin a vision for your future. You’ll then apply your principles and vision to make challenging decisions and create professional documents that will be useful in your near future. Throughout this course, you’ll use a set of competencies and collaborate with a group of peers and mentors from academia and industry alike.
* Then, you’ll develop and apply a project to meet your personal and professional goals. Examples of projects include a website, a LinkedIn profile, a vision, or a portfolio. You’ll further examine competencies, such as ethical reasoning, and apply them to examples that engineers often experience at work.More info
Fall 2022: Formal Verification of Systems Software
During this course, you will learn how to formally specify a system’s behavior, how to prove that the high-level design of the system meets that specification and finally how to show that the system’s low-level implementation retains those properties. The course does not assume any prior knowledge in formal verification. We will start from the basics of the Dafny language and build from there. In the end, you should be able to design and prove correct a complex system.More info (pdf)
Fall 2022: Power Semiconductor Devices
- Learn how power switches (transistors) and rectifiers (diodes) work
- Gain familiarity with the materials used for power devices
- Understand how device design determines performance
- Learn how to use commercial software to numerically model power devices through guided projects (Synopsys Sentaurus and Silvaco Atlas)
Fall 2022: Science of Deep Learning
This is a graduate-level research-oriented course focusing on fundamental principles (“science”) of deep learning, from both theoretical and empirical perspectives. We will aim to cover fundamental theory, ideas, phenomena, and challenges underlying recent advances in deep learning. Deep learning is a fast-evolving field, and anything can change at any moment, so it’s good to keep an open and critical mindset. If you see something that seems unsatisfactory, you are probably right and you should try to understand it better and improve it!
Note that the focus of this course is on the theoretical and scientific understanding of deep learning. It will not teach you how to use deep learning packages. It is also not about the applications of deep learning to scientific domains.
Fall 2022: Quantum Computing for the Computer Scientist
Quantum computing, should current technical barriers be overcome, makes bold promises to revolutionize key applications including cryptography, machine learning, and computational physics. This course will explore the potential impact and limitations of this paradigm shift from a computer science perspective. Lectures will cover the bare physics and mathematics needed to investigate how each layer of the computing stack (logic, system architecture, algorithm, and application design) is impacted. Labs and programming assignments will provide students a hands-on approach towards writing quantum programs, simulating their execution, deploying them to real quantum hardware available on the cloud, and analyzing their performance.More info (pdf)
Fall 2022: Intro to Quantum Information Science and Engineering
Are you interested in learning what a quantum computer is and how it can be built? Do you know that many technologies we take for granted today including computers, Internet, solar panels, LED lights will not be possible without the discovery of quantum phenomena 100 years ago? Are you curious in exploring how quantum information technologies can help revolutionize future computers, communication network, and sensing technologies with broad applications in cybersecurity, drug development, financial modeling, traffic optimization, weather forecasting, artificial intelligence, and materials discovery? The goal of this course is to develop a broad understanding, appreciation, and literacy for the concepts, applications, and societal impacts of quantum information science and engineering (QISE).More info
Fall 2022: Principles of Machine Learning
This is an entry-level machine learning course targeted for senior undergraduate and junior master students. This course is a little bit more emphasis on mathematical principles in comparison to EECS 445. Students outside of the ECE program interested in machine learning are welcome as well.More info (pdf)
Fall 2022: Approximation Algorithms and Hardness of Approximation
Approximation algorithms have been actively studied in both algorithms and complexity theory, culminating in optimal approximation algorithms for some fundamental problems; they achieve some approximation guarantees and no polynomial time algorithm can do better under some complexity conjectures. The theory of approximation algorithms also leads to beautiful connections between algorithms, complexity, and some areas of mathematics. This course will provide an overview of these connections, stressing techniques and tools required to prove both algorithms and complexity results.More info (pdf)
Fall 2022: Extended Reality and Society
See course flyer below.More info (pdf)
Fall 2022: Embedded Security
Designed for undergraduate and masters students seeking careers to help people with assistive
technology, this lab-based embedded security course teaches advanced methods to protect the
security of embedded computing systems from analog threats to the physics of sensing and computation. Master highly sought technical skills by employers on frequency-domain security analysis of signals, voice recognition, and fault injection testing of semiconductors with acoustics, RF, and lasers. Learn how to defend rather than attack systems with application to healthcare, autonomous vehicles, smartphones, medical devices, vaccine production, and orbiting satellite constellations.
Fall 2022: Randomized Numerical Linear Algebra in Machine Learning
Randomized Numerical Linear Algebra (RandNLA) describes a suite of algorithms which use randomness to construct small representations (sketches) of large data matrices. These sketches are then used to efficiently solve large-scale matrix problems at the core of many scientific, data science and machine learning tasks. This course will focus on algorithmic and theoretical foundations of RandNLA, including such topics as randomized dimensionality reduction and approximate matrix multiplication, as well as recent advances in the area with a particular focus on its applications to machine learning.More info (pdf)
Winter 2022: Artificial General Intelligence
This class will explore the computational structures and processes that can potentially support general intelligence. This will be a seminar course where students read, present, and discuss readings from AI and cognitive science, including psychology, linguistics, animal behavior, and neuroscience. Students will be evaluated on participation in class.More info (pdf)
Winter 2022: Identity and Trust On- and Off-Web
The class will be conducted seminar style and involve presentations by students, guest lecturers, discussions, and projects. Some topics of interest are as follows:
- Self-sovereign identity and verifiable claims: deep dive
- Implementing efficient and easy to use hardware and software wallets
- Mapping use-cases to the technology: trade-offs between coverage & complexity
- Issues inherent in a unified approach to people, services, things and data
- Blockchains & distributed ledgers: what role do they play?
- Designing for the real-world: security, usability, scale
- Co-existing with and leveraging legacy identity and security technologies
- Rethinking micropayments: is it different this time?
- Smart contracts: how do we trust a world that runs as code?
Winter 2022: Quantum Information, Probability and Computing
The failures of classical theories to explain important physical phenomena led to revolutionary and unprecedented changes in our thinking, and, in turn, to the develop-ment of quantum mechanics in the ﬁ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.