Notes: CSE 492 seminars are credit/no credit and generally do not apply to CSE senior elective credit. New: CSE majors may opt for one of the following to apply to CSE senior electives (CSE 301 internship 2 credits, OR ENGR 321 internship 2 credits OR one credit of 492).

490s that are graded DO count as CSE senior electives. Occasionally a CSE 490 will be allowed as a Core Course, but that is on a case by case basis.

Autumn 2020

CSE 490C: Cryptography: (CSE Core Course and CSE Senior Elective)

Cryptography Course – CSE 490c  (Core Course, 4 credits)

Prereqs: 312 and 332

Cryptography provides important tools for ensuring the confidentiality and integrity of sensitive digital data. Core cryptographic tools, such as encryption and digital signature, are used daily behind millions of online transactions, and form the basis for more advanced cryptographic systems, such as, cryptocurrency.

This course gives an introduction to cryptography, by focusing on the design and application of selected important cryptographic objects. For each cryptographic object, we formalize its functionality and security requirements (also known as security definitions), present schemes that achieve the desired functionality, and explain why they are secure.

Overall, we aim to survey the cryptography landscape, train cryptographic thinking, and convey proper usage of important cryptographic tools.

 

CSE 490 G1, 4 credits, (linked to CSE 599): Introduction to Deep Learning: (CSE Core Course and CSE Senior Elective)

Prereqs: 446 OR 455 OR 416

Description: A survey class of neural network implementation and applications. Topics include: optimization – stochastic gradient descent, adaptive and 2nd order methods, normalization; convolutional neural networks – image processing, classification, detection, segmentation; recurrent neural networks – semantic understanding, translation, question-answering; cross-domain applications – image captioning, vision and language.

 

CSE 490N: Neural Engineering (CSE Core Course and CSE Senior Elective)

Prerequisites:either BIOL 130, BIOL 162, or BIOL 220; and one of the following: MATH
308, AMATH 301, or AMATH 352. Offered: jointly with BIOEN/EE 460.

Time: WF 03:00-04:20


Introduces the field of Neural Engineering: overview of neurobiology,
recording and stimulating the nervous system, signal processing,
machine learning, powering and communicating with neural devices,
invasive/non-invasive brain-computer interfaces, spinal interfaces,
smart prostheses, deep-brain stimulators, cochlear implants and
neuroethics. Heavy emphasis on primary literature. Prerequisite:
either BIOL 130, BIOL 162, or BIOL 220; and one of the following: MATH
308, AMATH 301, or AMATH 352. Offered: jointly with BIOEN/EE 460.

 

CSE 490Q: Quantum Computation - 3 credits (CSE Senior Elective)

Prereqs:Math 308 and (CSE 312 or Math/Stat 391)

Description:
 
This course provides an introduction to the quantum model of computation. After describing the model, we will survey a number of examples where quantum computation provides an advantage over classical computation such as efficiently factoring large numbers, efficiently learning from exponentially large data sets, and generating certifiably random numbers.
 
The class assumes no physics background. However, we may briefly discuss areas where quantum computation provides useful applications or insights to physics or other sciences, such as using quantum computers to determine how molecules interact (e.g., for vaccine development), quantum communication to "teleport" data over long distances, quantum information to understand black holes, or quantum error correction to understand quantum gravity.
 
The only requirements for the course are MATH 308 (linear algebra) and CSE 312 or MATH 394 (probability), as these are necessary to describe the standard models of quantum computation. We may also discuss alternative descriptions of quantum computation using diagrams rather than linear algebra.
 
The course will have weekly or bi-weekly homework assignments of a mathematical nature, and a final project that involves reading literature in the field.

 

 

Autumn 2020 Seminars

 

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 Career Counselor 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

2 credits, CR/NC

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.

Winter 2021 CSE Special Topics/Seminar Courses

TBD


Spring 2021 CSE Special Topics/Seminar Courses

Physical Computing

Prereq: CSE 333

In this course, we will learn how to build interactive systems that capture and react to the wonderfully complex physicality and expressivity of humans and the world around us. Students will work in teams to design their own end-to-end games, including custom input controllers, digitally fabricated cases, and reactive 2D or 3D game environments. The games themselves will be student-proposed—with feedback from peers and the teaching staff—but must support at least two simultaneous players with one controller that requires physical input (e.g., button presses, joystick controls) and the other that responds to a player’s physical movement, sounds, or other body articulations (e.g., by using a webcam, microphone, or remote sensors). While we assume no previous experience with electronics or microcontrollers, you should feel comfortable and confident in at least one programming language.

The assignments will be a mixture of individual and team-based with a greater focus on the latter as the quarter progresses. Individual assignments will be based on our website: https://makeabilitylab.github.io/physcomp/.

While the focus this quarter is on producing an interactive game, the games themselves are a vehicle for learning. This is not a game design course, this is a physical computing course. Games provide a wonderfully rich, flexible, and fun medium for learning as they enable you to design the entire interactive experience from custom input controllers to the multimedia game itself.

Core Modules 

  • Module 1: Electronics, Microcontrollers, I/O

  • Module 2: Games and human-centered design (intro to graphics programming, sound, game loops, user testing)

  • Module 3: Digital fabrication (form design, 3D printing, embedding electronics)

  • Module 4: Advanced I/O (applied signal processing and machine learning using web APIs).


 



Spring 2020 CSE Special Topics Courses: 

  • Graded undergraduate courses (CSE 390, 490):

    • Incentives in Computer Science, Anna Karlin (also available as CSE M599)

    • Wireless Communication, Josh Smith

    • Advanced Programming Languages, James Wilcox

    • Academic Skill Building Through Bottom-Up Computing, Dan Grossman & Leslie Ikeda & Aaron Johnston

  • CR/NC undergraduate seminars (CSE 390, CSE 492)

    • Mathematics for Computation Workshop, instructor tbd, CSE390Z

    • Career Seminar, Kim Nguyen and Katherine Siyu Wang

    • Computer Ethics, Dan Grossman

  • Graded graduate courses (CSE 599):

    • Reinforcement Learning, Byron Boots

    • Molecular Information Systems, Luis Ceze and Jeff Nivala

    • Topics in Natural Language Understanding, Luke Zettlemoyer

    • Computing for Social Good, Kurtis Heimerl

    • Intro to Quantum Computing, Nathan Wiebe

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 Career Counselor 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 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.