Winter 2023 Course Offerings

All courses offered in Winter 2023 will be delivered in-person (unless historically offered online).

For delivery method and date and time of offer please look at the schedule of classes.

Instructor

Recommended Background

Area

Number

Course Title

Dan Holtby    

CS 631

Data-Intensive Dist. Analytics

Noura Limam    

CS 636

Intro to Networks & Distr Syst

Gregor Richards Familiarity with parsing and compiler basics, e.g. as taught in CS 241, is expected.  Basic familiarity with object oriented and functional languages, e.g. as taught in CS 246 and CS 135 respectively, is recommended. Programming Languages

CS 642

Principles of Prog Languages

Yizhou Zhang   Programming Languages

CS 644

Compiler Construction

Victoria Sakhnini Knowledge of finite-state machines (eg as used in CS 241 or ECE 351); experience with object-orientation (eg experience with OO programming languages like Java or C#); knowledge of propositional and predicate logic (eg as used in CS 245 or ECE 108) Software Engineering

CS 645 (PDF)

Sotware Req Specif & Anylysis

Mahmoud Alfadel; Shane McIntosh Experience with team collaboration tools for software development (eg Git, GitHub, Issue Tracking), data sturctures, algorithms, and basic UML diagrams Sotware Engineering

CS 646 - 001 (PDF)

Software Design, Architectures

Mahmoud Alfadel Experience with team collaboration tools for software development (eg Git, GitHub, Issue Tracking), data sturctures, algorithms, and basic UML diagrams Software Engineering CS 646 - 002 (PDF) Software Design, Architectures
Patrick Lam   Software Engineering

CS 647

Software Test, QA & Maint

Habib-ur Rehman   Databases CS 648 - 001 (PDF) Database Sys Implementation
Habib-ur Rehman   Databases CS 648 - 002 (PDF) Database Sys Implementation
Maran Ran Ma   Hardware and Software Systems

CS 650

Computer Architecture

Dan Holtby   Hardware and Software Systems

CS 651 -001

Data-Intensive Distrib Computing

Dan Holtby   Hardware and Software Systems CS 651 - 002 Data-Intensive Distrib Computing
Martin Karsten

C/C++ programming (CS 246); operating systems (CS 350)

Hardware and Software Systems

CS 652

Real-Time Programming

Khuzaima Daudjee   Hardware and Software Systems

CS 654 - 001

Distributed Systems

Khuzaima Daudjee   Hardware and Software Systems

CS 654 - 002

Distributed Systems

Noura Limam   Hardware and Software Systems

CS 656 - 001

Computer Networks

Noura Limam   Hardware and Software Systems

CS 656 – 002

Computer Networks

Meng Xu; Yousra Aafer   Hardware and Software Systems

CS 658 - 001

Computer Security and Privacy

Meng Xu; Yousra Aafer   Hardware and Software Systems CS 658 - 002

Computer Security and Privacy

Yuying Li Good background in linear algebra, basic statistics, and calculus, and to have taken an introduction course in numberical computing (similar to CS 370 or 371 at UW) Scientific and Symbolic Computing

CS 676

Num Computation: Fin Modeling

Ali Ayub Numerical analysis, basic statistics SciCom or AI CS 679

Neural Networks

Pascal Poupart Pre-requisites: CM 339/CS 341 or SE 240; Computer Science students only Computational Statistics

CS 680 – 001

Intro to Machine Learning

Pascal Poupart Pre-requisites: CM 339/CS 341 or SE 240; Computer Science students only Computational Statistics

CS 680 – 002

Intro to Machine Learning

    Bioinformatics

CS 682

Comp Tech: Biol Sequence Analysis

Yuri Boykov   Artificial Intelligence

CS 684

Computational Vision

Wenhu Chen Basic calculus, probability, and algorithms Artificial Intelligence

CS 686 - 001

Intro to Artificial Intelligence

Wenhu Chen Basic calculus, porbability, and algorithms Artificial Intelligence

CS 686 - 002

Intro to Artificial Intelligence

Arne Storjohann Undergrad level knowledge of algorithm design and analysis. Scientific and Symbolic Computing

CS 687

Intro to Symbolic Computation

Gladimir Baranoski   Graphics and User Interfaces

CS 688

Intro to Computer Graphics

Shane McIntosh   Software Engineering CS 698 - 001 Advanced Topics
Bailey Kacsmar & Thomas Humphries   Hardware and Software Systems CS 698 - 002 Advanced Topics

Hans De Sterck

  Scientific and Symbolic Computing

CS 778 (PDF)

Numerical Sol of PDEs

Helen Chen

  Health Informatics

CS 792 - 001 (PDF)

Data Structures and Standards

Helen Chen   Health Informatics CS 792 - 081 Data Structures and Standards

Raouf Boutaba

Computer Networks, Operating Systems

Hardware and Software Systems

CS 798 - 001 (PDF)

Network Softwarization: Principles and Foundations

Raouf Boutaba

Computer Networks, Operating Systems

Hardware and Software Systems

CS 798 - 002 (PDF)

Network Softwarization: Technologies and Enablers

Trevor Brown Familiarity with C/C++ strongly recommended, some familiarity with concurrency will be a plus but not needed Hardware/Software Systems/Algorithms and Complexity CS 798 - 003 (PDF) Advanced Research Topics: Multicore Programming
Mike Godfrey   Software Engineering CS 846 -001 Advanced Topics in Software Eng: Empirical Software Evolution
Shane McIntosh Open background (but a basic understanding of software release practices, inferential statistics, and machine learning will help) Software Engineering CS 846 - 002 Advanced Topics in Software Eng: Software Analytics for Release Pipelines
Mina Tahmasbi Arashlo   Hardware and Software Systems CS 856 Advanced Topics in Distrib Computing: Programmable Networks

Diogo Barradas

Undergrad security course, familiarity with machine learning

Hardware and Software Systems / Algorithms and Complexity

CS 858 – 001

Advanced Topics in Crypto Secur Priv: Internet Censorship & Surveillance

N. Asokan

Students should have prior experience with C and C++.
Undergraduate CS courses in operating systems (equivalent to CS 350) and security (equivalent to CS 458) are required
Hardware and Software Systems

CS 858 – 002

Advanced Topcs in Crypto Secur Priv: Selected topics in systems security
Mohammad Hajiabadi   Algorithms & Complexity; and Hardware & Software Systems CS 858 - 003 Advanced Topcs in Crypto Secur Priv: Encrypted Computation

Eric Blais

Undergraduate level knowledge of algorithms design and analysis and of probability theory

Algorithms and Complexity

CS 860

Advanced Topics in Algorith & Complex: Probabilistic Methods in CS

Kimon Fountoulakis

Open

Artificial Intelligence

CS 886

Advanced Topics in Artificial Intelligence: Graph Neural Networks

Toshiya Hachisuka

Enthusiasm for computer graphics and rendering is a must. Linear algebra, calculus, and statistics will be required depending on the paper we read. Experience with both numerical computing (e.g. CS370/371, CS475) and computer graphics (e.g., CS488) are recommended. Familiarity with some numerical techniques will be useful, though you are likely to learn new techniques as you read papers. Computer Graphics, Scientific Computing, Systems, HCI

CS 888 - 001

Advanced Topics in Computer Graphics: Rendering

Christopher Batty Undergraduate-level knowledge of numerical computing and computer graphics Graphics & User Interfaces; Scientific & Symbolic Computing CS 888 - 002 (PDF) Advanced Topics in Computer Graphics: Physics-Based Animation
Jian Zhao Open Graphics and User Interfaces CS 889 (PDF) InfoVis for AI Explainability
Ming Li CS341, and some familiarity of deep learning Algorithms and Complexity; Artificial Intelligence CS 898 - 001 Advanced Spec Topics in Comp Sci: Kolmogorov Complexity & Appl.
Yuri Boykov   Artificial Intelligence CS 898 - 002 Topics in Computer Vision