CSE 490Z Incentives in Computer Science, Anna Karlin (also available as CSE M599)
Pre-requisite: CSE 312
3 credits
Many modern applications require the design of software or systems that interact with multiple self-interested participants. This course will teach students how to model and reason about such systems using economic and game theoretic principles. Topics include auctions (e.g., Facebook’s advertising system), equilibrium analysis, cryptocurrencies (e.g. the incentive structure of Bitcoin), two-sided markets (online labor markets, dating markets, etc.), reputation systems and social choice.
CSE 490W Wireless Communication, Josh Smith
Pre-requisites: CSE 333, MATH 308
4 credits
Lecture Mon, Weds (80 minute lectures)
TA lab hours Thurs and TBA: Lab activities are self-directed. There is dedicated lab space and equipment you can access at any time. TAs will be in lab at specific times, but you are not expected to be in lab at those times unless you need to see the TAs
The course is a self-contained introduction to Wireless Communication. It does not assume any prior experience with the subject. The emphasis is on understanding the principles underlying wireless communication, construed broadly: how can messages be sent reliably through noisy, unreliable communication channels? The assignments consist of a series of programming exercises that allow you to engage in a hands on fashion with the material, culminating in a project of your choosing. (There are no exams.) We will use simulation, Software Defined Radios, and other programmable platforms to engage with wireless communication techniques through software. We will explore mainstream applications such as Wi-Fi, Bluetooth, and cellular communication, as well as emerging applications such as Internet of Things. We will also discuss applications of wireless techniques in areas adjacent to communication, such as storage, sensing, perception, and communication in biological systems. Topics to be discussed include signal to noise ratio, frequency domain analysis, bandwidth, capacity of noisy communication channels, modulation, channel coding, error detection, error correction, and connections between machine learning and communication (eg decoding as inference, learning as compression, etc).
CSE 490P Advanced Programming Languages, James Wilcox
Pre-requisite: CSE 341
4 credits
A good programming language changes the way you think about solving problems. Building on our intuition as competent *users* of various programming languages, this course peeks behind the curtain into the art and science of language design and implementation, allowing us to create languages that help people think about problems in new ways. Topics to be covered include semantics, interpreters, type systems, type safety proofs, type checkers, constraint solving, and program correctness proofs. A major aspect of this course will be building a working REPL for an SML-like language.
Instructor bio: James Wilcox defended his PhD in programming languages and verification at UW in 2019. He now works on applying formal methods in industry settings. James taught 341 in Winter 2017 very successfully, making various additions to that course, notably its second homework.
CSE 390Z Mathematics for Computation Workshop, instructor tbd
For students also enrolled in CSE 311
1 credit
Similar motivation to offerings in Fall and Winter
CSE 492J Career Seminar, Kim Nguyen and Katherine Siyu Wang
Pre/co-requisite: CSE 332
1 credit, CR/NC
CSE 492 J: Landing a Job in the Software Industry
Taught By: Kim Nguyen, Allen School Alumni and Recruiter and Katherine Wang, Interviewing Extraordinaire
Tuesdays 12:30 – 1:20
This seminar is targeted at students who have already completed 332 (or are taking it during Autumn 2019) and need help building their confidence for pursuing software engineering jobs (internship and full-time). Kim and Kat will take you through the recruiting process end-to-end: resumes, applying, career fairs, interacting with recruiters, INTERVIEWING, negotiating, etc. The bulk of the course will be focused on software engineering interview techniques.
This pass/fail seminar will include an optional weekly workshop on Thursdays @ 12:30 PM.
Note that this seminar is not a good fit for anyone who has already had multiple internships or has had multiple successful experiences interviewing for software opportunities. There will be no exceptions for students that do not meet the CSE 332 pre/co-req.
If you have any questions about the course, please reach out to Kim Nguyen: kim@cs.washington.edu
CSE 492E Computer Ethics, Dan Grossman
2 credits, CR/NC
Course will be similar to the 20wi offering, but with a new instructor.
Be it social media platforms, robots, or big data systems, the code Allen School students write—the decisions they make—influences the world in which it operates. This is a survey course about those influences and how to think about them. We recognize “the devil is in the implementation details.”
The course is divided into two parts: In the first part, we survey historical and local issues in tech, particularly those concerning data. We then engage with critical perspectives from disciplines such as machine ethics and science and technology studies as a framework for students to articulate their own beliefs concerning these systems. In the second part, we apply these perspectives to urgent issues in emerging technologies, such as facial recognition and misinformation.
Throughout students hone their critical reading and discussion skills, preparing them for a life-long practice of grappling with the—often unanticipated—consequences of innovation.
We cover topics such as: AI ethics, social good, utopianism, governance, inclusion, facial recognition, classification, privacy, automation, platforms, speculative design, identity, fairness, power and control, activism, and subversive technologies.
See the 20wi website for additional information on what the course is about, though some details are likely to change for Spring.
CSE 599 Reinforcement Learning, Byron Boots
This course is likely to count for PhD quals in the AI area; faculty approval is pending.
4 credits
A growing number of state-of-the-art systems including field robots, acrobatic aerial vehicles, walking robots, and the leading computer Go player rely upon machine learning techniques to make decisions. The machine learning problems in these domains represent a fundamental departure from traditional classification and regression problems. The learner must contend with: a) the effect of their own actions on the world; b) sequential decision making and credit assignment; and c) the tradeoffs between exploration and exploitation. In the past ten years, the
understanding of these problems has developed dramatically. One key to the advance
of learning methods has been a tight integration with optimization techniques, and we
will focus on this throughout the course.
Topics may include Markov Decision Processes, Value Iteration, Policy Iteration, Approximate
Dynamic Programming, Temporal Difference Learning, Q-Learning, Policy Gradients,
and Imitation Learning.
CSE 599 Molecular Information Systems, Luis Ceze and Jeff Nivala
4 credits
Come hang out with the Molecular Information Systems Lab (MISL) crowd
and learn about building systems with molecular, electronic and computational components. We will look closely into:
- Storing and retrieving data into/from DNA. We will dissect the state-of-the-art in encoding/decoding algorithms, DNA “writing”, manipulation, and “reading” (sequencing).
- Nanopore DNA sequencing and protein sensing. We will read about the state-of-the-art in molecular sensing, nanopore signal and data analysis and molecular design using machine learning.
- Fluidics automation using liquid handling robots and digital microfluidics devices.
The class will read and discuss papers, as well as do a project involving a mix of molecular biology, fluidics automation, sequencing, and machine learning. Here are some initial project ideas:
- Build an error model from DNA synthesis+sequencing data — MISL has a gigantic amount of data
- Cas9 binding affinity with nanopores
- Similarity search with Cas9 + nanopores
- Wine (or anything!) analysis with nanopores
- Molecular tagging — molecular QR codes?
- Nanopore Signal Analysis/Classification with ML
- Implement a protocol in in PurpleDrop (MISL’s digital microfluidics system) — allergen or pathogen detection?
- Make color “cocktails”!
CSE 599 Topics in Natural Language Understanding, Luke Zettlemoyer
4 credits
The vast majority of research in natural language processing (NLP) has focused exclusively on English language texts. However, there are thousands of languages in the world and recent advances in deep learning for NLP have introduced models that should, in theory, work for any language. In this class, we will review and discuss ideas in multi-lingual NLP, including but not limited to morphological analysis, character-level models, cross-lingual transfer, language model pre-training, and massively multi-lingual machine translation. We will read foundational and advanced papers on these topics, with a focus on more recent work.
CSE 599 Computing for Social Good, Kurtis Heimerl
4 credits
As the role of technology has grown, from mainframes to laptops to mobile phones and pervasive AI, so has the desire to leverage these advances for the good of society. This class will explore the broad, ongoing themes around Computing for Social Good, inclusive of advances in HCI, computer networks, artificial intelligence, and sustainability. We will read about national- and global-scale challenges and more specific subproblems, and relevant technology projects. While we will examine some conventional engineering ethics topics, our aim is much broader: we will start with fundamental social and ecological challenges and then consider what role, if any, technology should play in responding to them. One of our aims will be to differentiate between nice-sounding-but-ineffective tech-for-good solutions and those that have a chance for real impact. As a result, we will take a systems perspective — to trace root causes and find the right place(s) to make lasting change.
While a working knowledge of critical tech theory is important to doing good work, this is a class for builders and designers. All students will complete a project and end up with an artifact; potentially a tool (designed and/or built) for solving a real-world problem that they bring to the class or a fictional narrative elucidating the potentials and dangers of new ongoing advances.
This is a graduate-level computer science class but particularly motivated and experienced students (including undergrads) from other disciplines can reach out if they’d like to participate.
CSE 599 Intro to Quantum Computing, Nathan Wiebe
4 credits
Also cross-listed in Physics
Prerequisites: For students from a CSE background: Background in linear algebra, algorithms, and basic complexity theory. No prior knowledge of quantum mechanics needed.
For students coming from a physics background: 1 quarter or equivalent of graduate-level quantum mechanics.
Aimed at PhD students, but open to Masters students or suitably advanced/enthusiastic undergraduates
This course provides an introduction to the techniques and theory that underlie modern quantum computer science. It will cover quantum complexity theory, quantum query complexity, the quantum circuit model as well as fundamental techniques such as the quantum Fourier transform, amplitude amplification, quantum error correction, linear-combinations of unitaries as well as their applications to cryptography and quantum simulation.