Departmental Advisors
Undergraduate Studies Office
Vicki Jackson
MEB 3190
Graduate Studies Office
Jill Wilson
MEB 3190
Departmental Notes

For course descriptions and pre-requisite information click on the subject column next to the appropriate catalog number.

THIS DEPARTMENT ENFORCES UNDERGRADUATE PREREQUISITES. Please note that the registration system may not factor in transfer work when determining if prerequisites have been met. If you are unable to register for a course and think you have met the prerequisite(s), please contact an advisor from this department to inquire about obtaining a permission code. You may be administratively dropped from a course if the prerequisite has not been met.

CS 1400 - 001 Intro Comp Programming


This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section. Students may take CS 1400 or CS 1420 as a their first CS course. For a guide on choosing a course, see https://handbook.cs.utah.edu/2021-2022/Prospective_Students/choosing_between_1030_1400_1420.php.

CS 1400 - 001 Intro Comp Programming

  • Class Number:
  • Instructor: BROWN, NOELLE
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 138

This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section. Students may take CS 1400 or CS 1420 as a their first CS course. For a guide on choosing a course, see https://handbook.cs.utah.edu/2021-2022/Prospective_Students/choosing_between_1030_1400_1420.php.

CS 1400 - 003 Intro Comp Programming

CS 1400 - 003 Intro Comp Programming

  • Class Number: 11410
  • Instructor: BROWN, NOELLE
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

CS 1400 - 004 Intro Comp Programming

CS 1400 - 004 Intro Comp Programming

  • Class Number: 11411
  • Instructor: BROWN, NOELLE
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 14

CS 1400 - 005 Intro Comp Programming

CS 1400 - 005 Intro Comp Programming

  • Class Number: 11412
  • Instructor: BROWN, NOELLE
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 15

CS 1400 - 006 Intro Comp Programming

CS 1400 - 006 Intro Comp Programming

  • Class Number: 11413
  • Instructor: BROWN, NOELLE
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 23

CS 1400 - 007 Intro Comp Programming

CS 1400 - 007 Intro Comp Programming

  • Class Number: 11414
  • Instructor: BROWN, NOELLE
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

CS 1410 - 001 Object-Oriented Prog


This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 1410 - 001 Object-Oriented Prog

  • Class Number:
  • Instructor: MARTIN, TRAVIS B
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 50

This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 1410 - 002 Object-Oriented Prog

CS 1410 - 002 Object-Oriented Prog

  • Class Number: 11419
  • Instructor: MARTIN, TRAVIS B
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 1410 - 003 Object-Oriented Prog

CS 1410 - 003 Object-Oriented Prog

  • Class Number: 11420
  • Instructor: MARTIN, TRAVIS B
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 1410 - 004 Object-Oriented Prog

CS 1410 - 004 Object-Oriented Prog

  • Class Number: 11421
  • Instructor: MARTIN, TRAVIS B
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 1410 - 005 Object-Oriented Prog

CS 1410 - 005 Object-Oriented Prog

  • Class Number: 12256
  • Instructor: MARTIN, TRAVIS B
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 1410 - 006 Object-Oriented Prog

CS 1410 - 006 Object-Oriented Prog

  • Class Number: 11422
  • Instructor: MARTIN, TRAVIS B
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 1410 - 007 Object-Oriented Prog

CS 1410 - 007 Object-Oriented Prog

  • Class Number: 11423
  • Instructor: MARTIN, TRAVIS B
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 1410 - 008 Object-Oriented Prog

CS 1410 - 008 Object-Oriented Prog

  • Class Number: 11424
  • Instructor: MARTIN, TRAVIS B
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 1410 - 009 Object-Oriented Prog

CS 1410 - 009 Object-Oriented Prog

  • Class Number: 11425
  • Instructor: MARTIN, TRAVIS B
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 1420 - 001 Accel Obj-Orient Prog


This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section. Students may take CS 1400 or CS 1420 as a their first CS course. For a guide on choosing a course, seehttps://handbook.cs.utah.edu/2024-2025/CS/Prospective_Students/choosing_between_1400_1420.php

CS 1420 - 001 Accel Obj-Orient Prog

  • Class Number:
  • Instructor: JONES, BEN
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 145

This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section. Students may take CS 1400 or CS 1420 as a their first CS course. For a guide on choosing a course, seehttps://handbook.cs.utah.edu/2024-2025/CS/Prospective_Students/choosing_between_1400_1420.php

CS 1420 - 003 Accel Obj-Orient Prog

CS 1420 - 003 Accel Obj-Orient Prog

  • Class Number: 4796
  • Instructor: JONES, BEN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 17

CS 1420 - 004 Accel Obj-Orient Prog

CS 1420 - 004 Accel Obj-Orient Prog

  • Class Number: 4797
  • Instructor: JONES, BEN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 14

CS 1420 - 005 Accel Obj-Orient Prog

CS 1420 - 005 Accel Obj-Orient Prog

  • Class Number: 4798
  • Instructor: JONES, BEN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 23

CS 1420 - 006 Accel Obj-Orient Prog

CS 1420 - 006 Accel Obj-Orient Prog

  • Class Number: 4799
  • Instructor: JONES, BEN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 18

CS 1420 - 007 Accel Obj-Orient Prog

CS 1420 - 007 Accel Obj-Orient Prog

  • Class Number: 4800
  • Instructor: JONES, BEN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

CS 1810 - 001 Intro to Comp Systems

CS 1810 - 001 Intro to Comp Systems

  • Class Number:
  • Instructor: PARKER, ERIN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 32

CS 1810 - 002 Intro to Comp Systems

CS 1810 - 002 Intro to Comp Systems

  • Class Number: 14908
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Wait List: No
  • Seats Available: 10

CS 1810 - 003 Intro to Comp Systems

CS 1810 - 003 Intro to Comp Systems

  • Class Number: 14893
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Wait List: No
  • Seats Available: 2

CS 2100 - 001 Discrete Structures


This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 2100 - 001 Discrete Structures

  • Class Number:
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 35

This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 2100 - 002 Discrete Structures

CS 2100 - 002 Discrete Structures

  • Class Number: 6869
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2100 - 003 Discrete Structures

CS 2100 - 003 Discrete Structures

  • Class Number: 5637
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2100 - 004 Discrete Structures

CS 2100 - 004 Discrete Structures

  • Class Number: 5638
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 35

CS 2100 - 020 Discrete Structures

CS 2100 - 020 Discrete Structures

  • Class Number:
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 34

CS 2100 - 021 Discrete Structures

CS 2100 - 021 Discrete Structures

  • Class Number: 18957
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2100 - 022 Discrete Structures

CS 2100 - 022 Discrete Structures

  • Class Number: 18958
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2100 - 023 Discrete Structures

CS 2100 - 023 Discrete Structures

  • Class Number: 18959
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 34

CS 2420 - 001 Intro Alg & Data Struct


This course requires registration for a lab section. Students will be automatically registered for this lecture section when registering for the pertinent lab section.

CS 2420 - 001 Intro Alg & Data Struct

  • Class Number:
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 6

This course requires registration for a lab section. Students will be automatically registered for this lecture section when registering for the pertinent lab section.

CS 2420 - 002 Intro Alg & Data Struct

CS 2420 - 002 Intro Alg & Data Struct

  • Class Number: 4808
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 6

CS 2420 - 003 Intro Alg & Data Struct

CS 2420 - 003 Intro Alg & Data Struct

  • Class Number: 4809
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2420 - 004 Intro Alg & Data Struct

CS 2420 - 004 Intro Alg & Data Struct

  • Class Number: 4810
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2420 - 005 Intro Alg & Data Struct

CS 2420 - 005 Intro Alg & Data Struct

  • Class Number: 4811
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2420 - 006 Intro Alg & Data Struct

CS 2420 - 006 Intro Alg & Data Struct

  • Class Number: 4812
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2420 - 007 Intro Alg & Data Struct

CS 2420 - 007 Intro Alg & Data Struct

  • Class Number: 5751
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2420 - 008 Intro Alg & Data Struct

CS 2420 - 008 Intro Alg & Data Struct

  • Class Number: 7179
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2420 - 020 Intro Alg & Data Struct

CS 2420 - 020 Intro Alg & Data Struct

  • Class Number:
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 98

CS 2420 - 021 Intro Alg & Data Struct

CS 2420 - 021 Intro Alg & Data Struct

  • Class Number: 14562
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 2420 - 022 Intro Alg & Data Struct

CS 2420 - 022 Intro Alg & Data Struct

  • Class Number: 14563
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

CS 2420 - 023 Intro Alg & Data Struct

CS 2420 - 023 Intro Alg & Data Struct

  • Class Number: 14564
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 9

CS 2420 - 024 Intro Alg & Data Struct

CS 2420 - 024 Intro Alg & Data Struct

  • Class Number: 14565
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 9

CS 2420 - 025 Intro Alg & Data Struct

CS 2420 - 025 Intro Alg & Data Struct

  • Class Number: 14566
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

CS 2420 - 026 Intro Alg & Data Struct

CS 2420 - 026 Intro Alg & Data Struct

  • Class Number: 14567
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 16

CS 3011 - 001 Industry Forum

CS 3011 - 001 Industry Forum

  • Class Number: 5306
  • Instructor: WIESE, Jason
  • Component: Lecture
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 33

CS 3090 - 001 Ethics in Computing

CS 3090 - 001 Ethics in Computing

  • Class Number: 12892
  • Instructor: BROWN, NOELLE
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 18

CS 3100 - 001 Models Of Computation


The course fee covers digital course materials through the Inclusive Access program. Students may request to opt out here: https://portal.verba.io/utah/login

CS 3100 - 001 Models Of Computation

  • Class Number: 10307
  • Instructor: WANG, HAITAO
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $45.65
  • Seats Available: -1

The course fee covers digital course materials through the Inclusive Access program. Students may request to opt out here: https://portal.verba.io/utah/login

CS 3130 - 001 Eng Prob Stats

CS 3130 - 001 Eng Prob Stats

  • Class Number: 6544
  • Instructor: Zhe, Shandian
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 151

CS 3200 - 001 Intro Sci Comp

CS 3200 - 001 Intro Sci Comp

  • Class Number: 4813
  • Instructor: BERZINS, MARTIN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 32

CS 3500 - 001 Software Practice


This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 3500 - 001 Software Practice

  • Class Number:
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 99

This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 3500 - 003 Software Practice

CS 3500 - 003 Software Practice

  • Class Number: 7330
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 22

CS 3500 - 004 Software Practice

CS 3500 - 004 Software Practice

  • Class Number: 7331
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

CS 3500 - 005 Software Practice

CS 3500 - 005 Software Practice

  • Class Number: 7469
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 12

CS 3500 - 006 Software Practice

CS 3500 - 006 Software Practice

  • Class Number: 8739
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 22

CS 3500 - 020 Software Practice

CS 3500 - 020 Software Practice

  • Class Number:
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 126

CS 3500 - 023 Software Practice

CS 3500 - 023 Software Practice

  • Class Number: 18979
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 19

CS 3500 - 024 Software Practice

CS 3500 - 024 Software Practice

  • Class Number: 18980
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 27

CS 3500 - 025 Software Practice

CS 3500 - 025 Software Practice

  • Class Number: 18981
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 28

CS 3500 - 026 Software Practice

CS 3500 - 026 Software Practice

  • Class Number: 18982
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 22

CS 3505 - 001 Software Practice II


This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 3505 - 001 Software Practice II

  • Class Number:
  • Instructor: HEISLER, ERIC
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 22

This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 3505 - 002 Software Practice II

CS 3505 - 002 Software Practice II

  • Class Number: 4815
  • Instructor: HEISLER, ERIC
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 003 Software Practice II

CS 3505 - 003 Software Practice II

  • Class Number: 4816
  • Instructor: HEISLER, ERIC
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 004 Software Practice II

CS 3505 - 004 Software Practice II

  • Class Number: 4817
  • Instructor: HEISLER, ERIC
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 005 Software Practice II

CS 3505 - 005 Software Practice II

  • Class Number: 4818
  • Instructor: HEISLER, ERIC
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 006 Software Practice II

CS 3505 - 006 Software Practice II

  • Class Number: 5025
  • Instructor: HEISLER, ERIC
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 007 Software Practice II

CS 3505 - 007 Software Practice II

  • Class Number: 6430
  • Instructor: HEISLER, ERIC
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 008 Software Practice II

CS 3505 - 008 Software Practice II

  • Class Number: 13601
  • Instructor: HEISLER, ERIC
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 009 Software Practice II

CS 3505 - 009 Software Practice II

  • Class Number: 14554
  • Instructor: HEISLER, ERIC
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 22

CS 3540 - 001 Design Human Center Sys

CS 3540 - 001 Design Human Center Sys

  • Class Number: 13213
  • Instructor: WIESE, Jason
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 49

CS 3550 - 001 Web Software Dev I

CS 3550 - 001 Web Software Dev I

  • Class Number: 18975
  • Instructor: JOHNSON, DAVID
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 0

CS 3700 - 001 Digital System Design


Section 2 belongs to this lecture. This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section. The course fee covers digital course materials through the Inclusive Access program. Students may request to opt out here: https://portal.verba.io/utah/login

CS 3700 - 001 Digital System Design

  • Class Number:
  • Instructor: GARCIA, LUIS
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $60.00
  • Seats Available: 11

Section 2 belongs to this lecture. This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section. The course fee covers digital course materials through the Inclusive Access program. Students may request to opt out here: https://portal.verba.io/utah/login

CS 3700 - 002 Digital System Design


This class meets in MEB 3133.

CS 3700 - 002 Digital System Design

  • Class Number: 5050
  • Instructor: GARCIA, LUIS
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 11

This class meets in MEB 3133.

CS 3810 - 001 Computer Organization

CS 3810 - 001 Computer Organization

  • Class Number: 7333
  • Instructor: BALASUBRAMONIAN, RAJEEV
  • Component: Seminar
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 161

CS 3960 - 001 Human-Centered Data Management


This course will cover recent trends and practices in data management with a particular focus on human-centered aspects. We will emphasizes the central role of humans in data management. The course will cover: spreadsheet systems, data cleaning and transformation systems, notebook-centric analysis tools, explanation and provenance systems, data discovery systems, approximate query processing systems, speech and natural language querying systems, text and video analysis systems, semi-structured data systems. The emphasis will be on a mix of human-centric concerns, interface ideas, and scalable data processing ideas with a focus towards the end user. Topics will include NoSQL and other structured data systems, data systems usability and accessibility tools such as visual query languages, speech-based query languages, query by example, etc. The course will cover best practices for user interface (UI) design for data-management systems, user interactions, user modeling, and user experience (UX). The course will also cover recent tools and techniques for enhancing data quality such data cleaning, wrangling, transformation, meta-data management, and tools and techniques for data discovery, exploration, visualization, debugging, and data provenance. The course will have an emphasis on building usable tools for data analysis tasks and how data systems should be designed to assist their users in computation and analysis. The pre-requisite is CS 3500.

CS 3960 - 001 Human-Centered Data Management

  • Class Number: 13039
  • Instructor: FARIHA, ANNA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

This course will cover recent trends and practices in data management with a particular focus on human-centered aspects. We will emphasizes the central role of humans in data management. The course will cover: spreadsheet systems, data cleaning and transformation systems, notebook-centric analysis tools, explanation and provenance systems, data discovery systems, approximate query processing systems, speech and natural language querying systems, text and video analysis systems, semi-structured data systems. The emphasis will be on a mix of human-centric concerns, interface ideas, and scalable data processing ideas with a focus towards the end user. Topics will include NoSQL and other structured data systems, data systems usability and accessibility tools such as visual query languages, speech-based query languages, query by example, etc. The course will cover best practices for user interface (UI) design for data-management systems, user interactions, user modeling, and user experience (UX). The course will also cover recent tools and techniques for enhancing data quality such data cleaning, wrangling, transformation, meta-data management, and tools and techniques for data discovery, exploration, visualization, debugging, and data provenance. The course will have an emphasis on building usable tools for data analysis tasks and how data systems should be designed to assist their users in computation and analysis. The pre-requisite is CS 3500.

CS 3992 - 002 Pre-Thesis/Clinic/Proj

CS 3992 - 002 Pre-Thesis/Clinic/Proj

  • Class Number: 16043
  • Instructor: PATWARI, NEAL
  • Component: Seminar
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 12

CS 4000 - 001 Senior Capstone Design

CS 4000 - 001 Senior Capstone Design

  • Class Number: 7850
  • Instructor: DE ST GERMAIN, JOHN
  • Instructor: WANG, FENGJIAO
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 14

CS 4150 - 001 Algorithms

CS 4150 - 001 Algorithms

  • Class Number: 4847
  • Instructor: MARTIN, TRAVIS B
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 33

CS 4400 - 001 Computer Systems


This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 4400 - 001 Computer Systems

  • Class Number:
  • Instructor: REGEHR, JOHN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $41.18
  • Seats Available: 60

This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 4400 - 002 Computer Systems

CS 4400 - 002 Computer Systems

  • Class Number: 8383
  • Instructor: REGEHR, JOHN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 20

CS 4400 - 003 Computer Systems

CS 4400 - 003 Computer Systems

  • Class Number: 8384
  • Instructor: REGEHR, JOHN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 0

CS 4400 - 004 Computer Systems

CS 4400 - 004 Computer Systems

  • Class Number: 8385
  • Instructor: REGEHR, JOHN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 0

CS 4400 - 005 Computer Systems

CS 4400 - 005 Computer Systems

  • Class Number: 8386
  • Instructor: REGEHR, JOHN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 17

CS 4400 - 006 Computer Systems

CS 4400 - 006 Computer Systems

  • Class Number: 12283
  • Instructor: REGEHR, JOHN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 8

CS 4400 - 007 Computer Systems

CS 4400 - 007 Computer Systems

  • Class Number: 13605
  • Instructor: REGEHR, JOHN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: -1

CS 4400 - 008 Computer Systems

CS 4400 - 008 Computer Systems

  • Class Number: 14552
  • Instructor: REGEHR, JOHN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 15

CS 4440 - 001 Computer Security

CS 4440 - 001 Computer Security

  • Class Number: 9207
  • Instructor: XU, JUN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 19

CS 4470 - 001 Compilers

CS 4470 - 001 Compilers

  • Class Number: 18984
  • Instructor: GREENMAN, BENJAMIN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

CS 4480 - 001 Computer Networks

CS 4480 - 001 Computer Networks

  • Class Number: 5640
  • Instructor: VAN DER MERWE, Jacobus
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 72

CS 4500 - 001 Senior Capstone Project

CS 4500 - 001 Senior Capstone Project

CS 4530 - 001 Mobile App Programming

CS 4530 - 001 Mobile App Programming

  • Class Number: 8379
  • Instructor: JONES, BEN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 104

CS 4550 - 001 Web Software Dev II

CS 4550 - 001 Web Software Dev II

  • Class Number: 14558
  • Instructor: WOOD, AARON
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 50

CS 4960 - 001 Theory of Machine Learning


Learning algorithms are ubiquitous in our daily lives, but as it turns out, reasoning about them can be very challenging. In this course, we will study some of the fundamental notions in ML such as learnability and generalization. We will also study optimization algorithms, which are the backbone of modern ML. Finally, we will look at some modern (and not so modern) architectures used in learning and discuss how we can reason about them, their robustness, etc. A couple of notes on pre-requisites and logistics: the course will assume a background in calculus, probability, and linear algebra. Some knowledge of implementing common ML algorithms will help, though it is not required.

CS 4960 - 001 Theory of Machine Learning

  • Class Number: 11877
  • Instructor: BHASKARA, ADITYA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

Learning algorithms are ubiquitous in our daily lives, but as it turns out, reasoning about them can be very challenging. In this course, we will study some of the fundamental notions in ML such as learnability and generalization. We will also study optimization algorithms, which are the backbone of modern ML. Finally, we will look at some modern (and not so modern) architectures used in learning and discuss how we can reason about them, their robustness, etc. A couple of notes on pre-requisites and logistics: the course will assume a background in calculus, probability, and linear algebra. Some knowledge of implementing common ML algorithms will help, though it is not required.

CS 4961 - 001 Parallel Num Software Crctness


ParFloat : Formal Reasoning and Testing Approaches Safeguarding Parallelism and Numerics Varieties in HPC and AI/ML. Prerequisites for CS 4961: CS 3100 and CS 4400, plus wanting to do cool explorations as in this book: https://smt.st/ . Today's levels of performance in high-performance computing (HPC), artificial intelligence, and machine learning (AI/ML) are being achieved through increasing usage of parallelism models (message passing, threading, tasking, etc.) and ``numerics'' (number representation schemes from hardware through libraries and applications). While performance is always the central goal in HPC and AI/ML, ignoring correctness causes significant losses of productivity: a scientist may be pulled away from doing science to debug a software issue for a month. Debugging tools – always a step behind being able to support programmer aspirations and needs – are more steps behind in HPC and AI/ML. A typical Grad or Undergrad may not have encountered these situations in core classes, and this course is designed to correct that. A recent DOE/NSF national study (https://arxiv.org/abs/2312.15640) further highlights the importance of this subject. In the first half of this course, we will discuss conceptual models such as happens-before relations (parallelism) and automatic differentiation (floating-point error). In the second half of this course, you'll be able to do a project either targeting HPC and AI/ML correctness, or use AI/ML within newer forms of correctness tools (active research area).

CS 4961 - 001 Parallel Num Software Crctness

  • Class Number: 14904
  • Instructor: GOPALAKRISHNAN, GANESH
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 19

ParFloat : Formal Reasoning and Testing Approaches Safeguarding Parallelism and Numerics Varieties in HPC and AI/ML. Prerequisites for CS 4961: CS 3100 and CS 4400, plus wanting to do cool explorations as in this book: https://smt.st/ . Today's levels of performance in high-performance computing (HPC), artificial intelligence, and machine learning (AI/ML) are being achieved through increasing usage of parallelism models (message passing, threading, tasking, etc.) and ``numerics'' (number representation schemes from hardware through libraries and applications). While performance is always the central goal in HPC and AI/ML, ignoring correctness causes significant losses of productivity: a scientist may be pulled away from doing science to debug a software issue for a month. Debugging tools – always a step behind being able to support programmer aspirations and needs – are more steps behind in HPC and AI/ML. A typical Grad or Undergrad may not have encountered these situations in core classes, and this course is designed to correct that. A recent DOE/NSF national study (https://arxiv.org/abs/2312.15640) further highlights the importance of this subject. In the first half of this course, we will discuss conceptual models such as happens-before relations (parallelism) and automatic differentiation (floating-point error). In the second half of this course, you'll be able to do a project either targeting HPC and AI/ML correctness, or use AI/ML within newer forms of correctness tools (active research area).

CS 4962 - 001 Introduction to Graph Theory


Prerequisites: Full Major Status in Computer Science, Data Science, Software Development or Mathematics and CS 2100 or Math 2200. Introduction to graph theory. Starting from the fundamentals, this course will cover essential theorems and algorithms from across the field of graphtheory. Topics will include Connectivity, Matchings, Planar Graphs, Coloring, Directed Graphs, Extremal Problems, Ramsey Theory, Random Graphs, and (time permitting) Structural Graph Theory. Where relevant, applications and algorithmic considerations, including data structures, will be highlighted.

CS 4962 - 001 Introduction to Graph Theory

  • Class Number: 18966
  • Instructor: Sullivan, Blair
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 15

Prerequisites: Full Major Status in Computer Science, Data Science, Software Development or Mathematics and CS 2100 or Math 2200. Introduction to graph theory. Starting from the fundamentals, this course will cover essential theorems and algorithms from across the field of graphtheory. Topics will include Connectivity, Matchings, Planar Graphs, Coloring, Directed Graphs, Extremal Problems, Ramsey Theory, Random Graphs, and (time permitting) Structural Graph Theory. Where relevant, applications and algorithmic considerations, including data structures, will be highlighted.

CS 4963 - 001 Instructional Design for Comp


This course is about how students learn computing, how we can design effective instruction, and how we can draw on research to help us understand both of those things. We will start with a scientific foundation of how learning happens in general, across topics. We will proceed to computing-specific instructional strategies, including for incorporating ethics, and learn a process for instructional design. The centerpiece of the course is a semester-long instructional design project on a computing topic of your choice. This course is highly interactive and collaborative: you will annotate readings with your peers, discuss ideas in class, and give each other constructive feedback on your projects. This course involves lots of writing, reading, and class participation. The 4963 and 6965 expectations will be the same except that 6965 students will be required to incorporate ethics into their instructional design projects, and will have an additional annotated bibliography assignment. Pre-requisites: CS 3540 or instructor permission and full major status in Computer Science OR Software Development

CS 4963 - 001 Instructional Design for Comp

  • Class Number: 18967
  • Instructor: WIESE, ELIANE S
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 14

This course is about how students learn computing, how we can design effective instruction, and how we can draw on research to help us understand both of those things. We will start with a scientific foundation of how learning happens in general, across topics. We will proceed to computing-specific instructional strategies, including for incorporating ethics, and learn a process for instructional design. The centerpiece of the course is a semester-long instructional design project on a computing topic of your choice. This course is highly interactive and collaborative: you will annotate readings with your peers, discuss ideas in class, and give each other constructive feedback on your projects. This course involves lots of writing, reading, and class participation. The 4963 and 6965 expectations will be the same except that 6965 students will be required to incorporate ethics into their instructional design projects, and will have an additional annotated bibliography assignment. Pre-requisites: CS 3540 or instructor permission and full major status in Computer Science OR Software Development

CS 4964 - 001 Manage Data for & with ML


This course provides a broad exploration of the practical skills essential for handling, preparing, ingesting, indexing, and analyzing large datasets for machine learning applications. Students will explore various topics, including relational databases, optimizing dataset storage, data cleansing techniques, and large-scale data processing systems (e.g., Spark). The class also covers learned indexes and large-scale data visualization. This hands-on course aims to equip participants with the knowledge and proficiency to effectively manage and analyze vast datasets for machine learning applications. The prerequisite is CS 3500.

CS 4964 - 001 Manage Data for & with ML

  • Class Number: 13780
  • Instructor: REZIG, EL KINDI
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

This course provides a broad exploration of the practical skills essential for handling, preparing, ingesting, indexing, and analyzing large datasets for machine learning applications. Students will explore various topics, including relational databases, optimizing dataset storage, data cleansing techniques, and large-scale data processing systems (e.g., Spark). The class also covers learned indexes and large-scale data visualization. This hands-on course aims to equip participants with the knowledge and proficiency to effectively manage and analyze vast datasets for machine learning applications. The prerequisite is CS 3500.

CS 4992 - 001 CE Senior Thesis II

CS 4992 - 001 CE Senior Thesis II

  • Class Number: 4851
  • Instructor: STEVENS, KENNETH S
  • Component: Special Projects
  • Type: In Person
  • Units: 2.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 5140 - 001 Data Mining

CS 5140 - 001 Data Mining

  • Class Number: 18971
  • Instructor: PHILLIPS, JEFF
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $15.00
  • Seats Available: 24

CS 5460 - 001 Operating Systems

CS 5460 - 001 Operating Systems

  • Class Number: 6370
  • Instructor: BURTSEV, ANTON
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 26

CS 5530 - 090 Database Systems


This is an online course, which does not have a specific meeting time or location throughout the semester. For additional information, please visit https://online.utah.edu/about-online-learning/

CS 5530 - 090 Database Systems

  • Class Number: 5592
  • Instructor: KOPTA, DANIEL
  • Component: Lecture
  • Type: Online
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 43

This is an online course, which does not have a specific meeting time or location throughout the semester. For additional information, please visit https://online.utah.edu/about-online-learning/

CS 5610 - 001 Interactive Comp Graph

CS 5610 - 001 Interactive Comp Graph

  • Class Number: 7334
  • Instructor: YUKSEL, CEM
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 7

CS 5635 - 001 Vis for Scientific Data

CS 5635 - 001 Vis for Scientific Data

  • Class Number: 9201
  • Instructor: JOHNSON, CHRISTOPHER
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 26

CS 5780 - 001 Embedded Sys Design


Sections 2-4 belong to this lecture. This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 5780 - 001 Embedded Sys Design

  • Class Number:
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $35.00
  • Seats Available: 0

Sections 2-4 belong to this lecture. This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 5780 - 002 Embedded Sys Design

CS 5780 - 002 Embedded Sys Design

  • Class Number: 6605
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 5780 - 003 Embedded Sys Design

CS 5780 - 003 Embedded Sys Design

  • Class Number: 6606
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 5780 - 004 Embedded Sys Design

CS 5780 - 004 Embedded Sys Design

  • Class Number: 6607
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 5780 - 005 Embedded Sys Design

CS 5780 - 005 Embedded Sys Design

  • Class Number: 7485
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -1

CS 5780 - 006 Embedded Sys Design

CS 5780 - 006 Embedded Sys Design

  • Class Number: 9383
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 5955 - 001 Adv Artificial Intelligence


Prerequisites: CS 4300 OR CS 5350 OR CS 5353 and Full Major Status in Computer Science OR Software Development OR Data Science This course focuses on advanced algorithms for intelligent sequential decision making with a focus on modern deep learning-based methods. The class will cover both the theory and practical details of the algorithms behind recent breakthroughs in many types of AI decision making, including game playing, robotics, recommendation systems, and large language models. Topics include bandit algorithms, Markov decision processes, partially observable Markov decision processes, reinforcement learning, imitation learning, inverse reinforcement learning, and reinforcement learning from human feedback.

CS 5955 - 001 Adv Artificial Intelligence

  • Class Number: 18968
  • Instructor: BROWN, DANIEL
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 6

Prerequisites: CS 4300 OR CS 5350 OR CS 5353 and Full Major Status in Computer Science OR Software Development OR Data Science This course focuses on advanced algorithms for intelligent sequential decision making with a focus on modern deep learning-based methods. The class will cover both the theory and practical details of the algorithms behind recent breakthroughs in many types of AI decision making, including game playing, robotics, recommendation systems, and large language models. Topics include bandit algorithms, Markov decision processes, partially observable Markov decision processes, reinforcement learning, imitation learning, inverse reinforcement learning, and reinforcement learning from human feedback.

CS 5956 - 001 Intro to Machine Learning


'C-' or better in CS 3190 Found. of Data Analysis AND CS 3500 Software Practice. Full Major status in Computer Science OR Software Development OR Data Science. This course is designed to build a groundwork for both machine learning and deep learning early on in undergraduate studies. Each lecture is grounded in practical application, using Python and machine learning libraries such as PyTorch to implement and experiment with the discussed concepts; including various training paradigms, loss functions, optimization, evaluation measurements, hyperparameter tuning, generalization, overfitting, simple neural networks, backpropagation, featurization, and more. The course will cover topics in probability and linear algebra which are fundamental to understanding machine learning basics. By the end of the course, students will be prepared to take more advanced courses to deepen their theoretical and applied knowledge of machine learning and deep learning.

CS 5956 - 001 Intro to Machine Learning

  • Class Number: 19439
  • Instructor: TAO, GUANHONG
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 54

'C-' or better in CS 3190 Found. of Data Analysis AND CS 3500 Software Practice. Full Major status in Computer Science OR Software Development OR Data Science. This course is designed to build a groundwork for both machine learning and deep learning early on in undergraduate studies. Each lecture is grounded in practical application, using Python and machine learning libraries such as PyTorch to implement and experiment with the discussed concepts; including various training paradigms, loss functions, optimization, evaluation measurements, hyperparameter tuning, generalization, overfitting, simple neural networks, backpropagation, featurization, and more. The course will cover topics in probability and linear algebra which are fundamental to understanding machine learning basics. By the end of the course, students will be prepared to take more advanced courses to deepen their theoretical and applied knowledge of machine learning and deep learning.

CS 5963 - 001 Applied S/W Secur Test


This class will prepare students to become effective software testers capable of automating vulnerability discovery in today’s large and complex software systems. This course will cover the fundamental design considerations behind today’s state-of-the-art software testing tools, and equip students with the know-how to soundly evaluate their results and effectiveness. Students will team up to target a software or system of their choice, and devise their own testing strategies to find new vulnerabilities in it, analyze their severity, and report them to its developers. Prerequisites CS 3505 and CS 4400

CS 5963 - 001 Applied S/W Secur Test

  • Class Number: 14578
  • Instructor: NAGY, STEFAN
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 6

This class will prepare students to become effective software testers capable of automating vulnerability discovery in today’s large and complex software systems. This course will cover the fundamental design considerations behind today’s state-of-the-art software testing tools, and equip students with the know-how to soundly evaluate their results and effectiveness. Students will team up to target a software or system of their choice, and devise their own testing strategies to find new vulnerabilities in it, analyze their severity, and report them to its developers. Prerequisites CS 3505 and CS 4400

CS 5968 - 001 Designing Digital Health Sys


Pre-requisites: Full Major Status in Computer Science OR Data Science. This special topics class in Human-centered Computing (HCC) will provide PhD, MS, and BS students (in Computing and other fields) with the concepts and skills to answer the question "How might digital tools augment existing healthcare processes?" Our goals in this class are threefold: 1) Understand how healthcare processes work; 2) Identify possibilities for digital tools; 3) Imagine new designs and create prototypes. Programming skills are useful but not required. We will critically evaluate research literature and build background knowledge in fields including human-computer interaction, neurology, microbiome, public health, occupational health, and medical sociology. We will work on concrete problems for health disorders like Parkinsonism, ALS, cognitive disorders, gastrointestinal disorders, chronic pain, and sleep issues. We will understand processes including clinical examination, diagnosis, treatment, self-experimentation, and clinical research. After taking this course, students will be able to develop digital tools that intervene at an appropriate point in the healthcare process in ways that benefit all stakeholders. For topics, class structure, and methods, see https://vineetp13.github.io/DesigningHealth.html

CS 5968 - 001 Designing Digital Health Sys

  • Class Number: 13487
  • Instructor: PANDEY, VINEET
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 15

Pre-requisites: Full Major Status in Computer Science OR Data Science. This special topics class in Human-centered Computing (HCC) will provide PhD, MS, and BS students (in Computing and other fields) with the concepts and skills to answer the question "How might digital tools augment existing healthcare processes?" Our goals in this class are threefold: 1) Understand how healthcare processes work; 2) Identify possibilities for digital tools; 3) Imagine new designs and create prototypes. Programming skills are useful but not required. We will critically evaluate research literature and build background knowledge in fields including human-computer interaction, neurology, microbiome, public health, occupational health, and medical sociology. We will work on concrete problems for health disorders like Parkinsonism, ALS, cognitive disorders, gastrointestinal disorders, chronic pain, and sleep issues. We will understand processes including clinical examination, diagnosis, treatment, self-experimentation, and clinical research. After taking this course, students will be able to develop digital tools that intervene at an appropriate point in the healthcare process in ways that benefit all stakeholders. For topics, class structure, and methods, see https://vineetp13.github.io/DesigningHealth.html

CS 6013 - 001 MSD: Computer Systems

CS 6013 - 001 MSD: Computer Systems

  • Class Number:
  • Instructor: DE ST GERMAIN, JOHN
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 6

CS 6013 - 002 MSD: Computer Systems

CS 6013 - 002 MSD: Computer Systems

  • Class Number: 9203
  • Instructor: DE ST GERMAIN, JOHN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Wait List: No
  • Seats Available: 6

CS 6014 - 001 MSD: Netwrks & Security

CS 6014 - 001 MSD: Netwrks & Security

  • Class Number:
  • Instructor: FLATT, Matthew
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 6

CS 6014 - 002 MSD: Netwrks & Security

CS 6014 - 002 MSD: Netwrks & Security

  • Class Number: 9205
  • Instructor: FLATT, Matthew
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Wait List: No
  • Seats Available: 6

CS 6015 - 001 MSD: Software Engineer

CS 6015 - 001 MSD: Software Engineer

  • Class Number:
  • Instructor: MAKAREM, NABIL
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 6

CS 6015 - 002 MSD: Software Engineer

CS 6015 - 002 MSD: Software Engineer

  • Class Number: 9200
  • Instructor: MAKAREM, NABIL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Wait List: No
  • Seats Available: 6

CS 6019 - 001 MSD Project

CS 6019 - 001 MSD Project

CS 6020 - 001 Early-Career Research

CS 6020 - 001 Early-Career Research

  • Class Number: 5741
  • Instructor: LEX, ALEXANDER
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 8

CS 6140 - 001 Data Mining

CS 6140 - 001 Data Mining

  • Class Number: 18972
  • Instructor: PHILLIPS, JEFF
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Fees: $15.00
  • Seats Available: 10

CS 6330 - 001 Robotics II: Control

CS 6330 - 001 Robotics II: Control

  • Class Number: 6611
  • Instructor: MASCARO, STEPHEN A
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $40.00
  • Seats Available: 5

CS 6350 - 001 Machine Learning

CS 6350 - 001 Machine Learning

  • Class Number: 12894
  • Instructor: SRIKUMAR, Vivek
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 40

CS 6370 - 001 Motion Planning

CS 6370 - 001 Motion Planning

  • Class Number: 18990
  • Instructor: KUNTZ, ALAN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 6460 - 001 Operating Systems

CS 6460 - 001 Operating Systems

  • Class Number: 6435
  • Instructor: BURTSEV, ANTON
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 46

CS 6490 - 090 Network Security

CS 6490 - 090 Network Security

  • Class Number: 10817
  • Instructor: KASERA, SNEHA K
  • Component: Lecture
  • Type: Online
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

CS 6491 - 001 Software & Sys Security

CS 6491 - 001 Software & Sys Security

  • Class Number: 14903
  • Instructor: ZHANG, MU
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 19

CS 6610 - 001 Interactive Comp Graph

CS 6610 - 001 Interactive Comp Graph

  • Class Number: 7335
  • Instructor: YUKSEL, CEM
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 14

CS 6635 - 001 Vis for Scientific Data

CS 6635 - 001 Vis for Scientific Data

  • Class Number: 9206
  • Instructor: JOHNSON, CHRISTOPHER
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 24

CS 6660 - 001 Physics-based Animation

CS 6660 - 001 Physics-based Animation

  • Class Number: 18970
  • Instructor: YANG, YIN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 26

CS 6780 - 001 Embed Sys Design


Sections 2-4 belong to this lecture. This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 6780 - 001 Embed Sys Design

  • Class Number:
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $35.00
  • Seats Available: 4

Sections 2-4 belong to this lecture. This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section.

CS 6780 - 002 Embed Sys Design

CS 6780 - 002 Embed Sys Design

  • Class Number: 6608
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $35.00
  • Seats Available: 1

CS 6780 - 004 Embed Sys Design

CS 6780 - 004 Embed Sys Design

  • Class Number: 6610
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $35.00
  • Seats Available: 1

CS 6780 - 005 Embed Sys Design

CS 6780 - 005 Embed Sys Design

  • Class Number: 7486
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $35.00
  • Seats Available: 1

CS 6953 - 001 Deep Learning Capstone

CS 6953 - 001 Deep Learning Capstone

  • Class Number: 13051
  • Instructor: AL HALAH, ZIAD
  • Instructor: HENDERSON, THOMAS
  • Component: Practicum
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 5

CS 6955 - 001 Adv Artificial Intelligence


This course focuses on advanced algorithms for intelligent sequential decision making with a focus on modern deep learning-based methods. The class will cover both the theory and practical details of the algorithms behind recent breakthroughs in many types of AI decision making, including game playing, robotics, recommendation systems, and large language models. Topics include bandit algorithms, Markov decision processes, partially observable Markov decision processes, reinforcement learning, imitation learning, inverse reinforcement learning, and reinforcement learning from human feedback.

CS 6955 - 001 Adv Artificial Intelligence

  • Class Number: 18969
  • Instructor: BROWN, DANIEL
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 8

This course focuses on advanced algorithms for intelligent sequential decision making with a focus on modern deep learning-based methods. The class will cover both the theory and practical details of the algorithms behind recent breakthroughs in many types of AI decision making, including game playing, robotics, recommendation systems, and large language models. Topics include bandit algorithms, Markov decision processes, partially observable Markov decision processes, reinforcement learning, imitation learning, inverse reinforcement learning, and reinforcement learning from human feedback.

CS 6956 - 001 Probabilistic Deep Learning


This course will cover both theoretical and practical aspects of probabilistic approaches to machine learning with contemporary neutral network architectures. Example topics that may be covered include ensembles, Bayesian neural networks, variational autoencoders, normalizing flows, active learning, and diffusion networks among others.

CS 6956 - 001 Probabilistic Deep Learning

  • Class Number: 11404
  • Instructor: HERMANS, Tucker
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 10

This course will cover both theoretical and practical aspects of probabilistic approaches to machine learning with contemporary neutral network architectures. Example topics that may be covered include ensembles, Bayesian neural networks, variational autoencoders, normalizing flows, active learning, and diffusion networks among others.

CS 6959 - 001 Human-Centered Data Management

CS 6959 - 001 Human-Centered Data Management

  • Class Number: 16108
  • Instructor: FARIHA, ANNA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 1

CS 6960 - 001 Theory of Machine Learning


Learning algorithms are ubiquitous in our daily lives, but as it turns out, reasoning about them can be very challenging. In this course, we will study some of the fundamental notions in ML such as learnability and generalization. We will also study optimization algorithms, which are the backbone of modern ML. Finally, we will look at some modern (and not so modern) architectures used in learning and discuss how we can reason about them, their robustness, etc. A couple of notes on pre-requisites and logistics: the course will assume a background in calculus, probability, and linear algebra. Some knowledge of implementing common ML algorithms will help, though it is not required.

CS 6960 - 001 Theory of Machine Learning

  • Class Number: 11910
  • Instructor: BHASKARA, ADITYA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 4

Learning algorithms are ubiquitous in our daily lives, but as it turns out, reasoning about them can be very challenging. In this course, we will study some of the fundamental notions in ML such as learnability and generalization. We will also study optimization algorithms, which are the backbone of modern ML. Finally, we will look at some modern (and not so modern) architectures used in learning and discuss how we can reason about them, their robustness, etc. A couple of notes on pre-requisites and logistics: the course will assume a background in calculus, probability, and linear algebra. Some knowledge of implementing common ML algorithms will help, though it is not required.

CS 6961 - 001 Parallel Num Software Crctness


ParFloat : Formal Reasoning and Testing Approaches Safeguarding Parallelism and Numerics Varieties in HPC and AI/ML. Today's levels of performance in high-performance computing (HPC), artificial intelligence, and machine learning (AI/ML) are being achieved through increasing usage of parallelism models (message passing, threading, tasking, etc.) and ``numerics'' (number representation schemes from hardware through libraries and applications). While performance is always the central goal in HPC and AI/ML, ignoring correctness causes significant losses of productivity: a scientist may be pulled away from doing science to debug a software issue for a month. Debugging tools – always a step behind being able to support programmer aspirations and needs – are more steps behind in HPC and AI/ML. A typical Grad or Undergrad may not have encountered these situations in core classes, and this course is designed to correct that. A recent DOE/NSF national study (https://arxiv.org/abs/2312.15640) further highlights the importance of this subject. In the first half of this course, we will discuss conceptual models such as happens-before relations (parallelism) and automatic differentiation (floating-point error). In the second half of this course, you'll be able to do a project either targeting HPC and AI/ML correctness, or use AI/ML within newer forms of correctness tools (active research area).

CS 6961 - 001 Parallel Num Software Crctness

  • Class Number: 14913
  • Instructor: GOPALAKRISHNAN, GANESH
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 36

ParFloat : Formal Reasoning and Testing Approaches Safeguarding Parallelism and Numerics Varieties in HPC and AI/ML. Today's levels of performance in high-performance computing (HPC), artificial intelligence, and machine learning (AI/ML) are being achieved through increasing usage of parallelism models (message passing, threading, tasking, etc.) and ``numerics'' (number representation schemes from hardware through libraries and applications). While performance is always the central goal in HPC and AI/ML, ignoring correctness causes significant losses of productivity: a scientist may be pulled away from doing science to debug a software issue for a month. Debugging tools – always a step behind being able to support programmer aspirations and needs – are more steps behind in HPC and AI/ML. A typical Grad or Undergrad may not have encountered these situations in core classes, and this course is designed to correct that. A recent DOE/NSF national study (https://arxiv.org/abs/2312.15640) further highlights the importance of this subject. In the first half of this course, we will discuss conceptual models such as happens-before relations (parallelism) and automatic differentiation (floating-point error). In the second half of this course, you'll be able to do a project either targeting HPC and AI/ML correctness, or use AI/ML within newer forms of correctness tools (active research area).

CS 6962 - 001 Introduction to Graph Theory


Introduction to graph theory. Starting from the fundamentals, this course will cover essential theorems and algorithms from across the field of graphtheory. Topics will include Connectivity, Matchings, Planar Graphs, Coloring, Directed Graphs, Extremal Problems, Ramsey Theory, Random Graphs, and (time permitting) Structural Graph Theory. Where relevant, applications and algorithmic considerations, including data structures, will be highlighted.

CS 6962 - 001 Introduction to Graph Theory

  • Class Number: 18985
  • Instructor: Sullivan, Blair
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 6

Introduction to graph theory. Starting from the fundamentals, this course will cover essential theorems and algorithms from across the field of graphtheory. Topics will include Connectivity, Matchings, Planar Graphs, Coloring, Directed Graphs, Extremal Problems, Ramsey Theory, Random Graphs, and (time permitting) Structural Graph Theory. Where relevant, applications and algorithmic considerations, including data structures, will be highlighted.

CS 6963 - 001 Applied S/W Secur Test


This class will prepare students to become effective software testers capable of automating vulnerability discovery in today’s large and complex software systems. This course will cover the fundamental design considerations behind today’s state-of-the-art software testing tools, and equip students with the know-how to soundly evaluate their results and effectiveness. Students will team up to target a software or system of their choice, and devise their own testing strategies to find new vulnerabilities in it, analyze their severity, and report them to its developers.

CS 6963 - 001 Applied S/W Secur Test

  • Class Number: 14579
  • Instructor: NAGY, STEFAN
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 7

This class will prepare students to become effective software testers capable of automating vulnerability discovery in today’s large and complex software systems. This course will cover the fundamental design considerations behind today’s state-of-the-art software testing tools, and equip students with the know-how to soundly evaluate their results and effectiveness. Students will team up to target a software or system of their choice, and devise their own testing strategies to find new vulnerabilities in it, analyze their severity, and report them to its developers.

CS 6964 - 001 Manage Data for & with ML


This course provides a broad exploration of the practical skills essential for handling, preparing, ingesting, indexing, and analyzing large datasets for machine learning applications. Students will explore various topics, including relational databases, optimizing dataset storage, data cleansing techniques, and large-scale data processing systems (e.g., Spark). The class also covers learned indexes and large-scale data visualization. This hands-on course aims to equip participants with the knowledge and proficiency to effectively manage and analyze vast datasets for machine learning applications.

CS 6964 - 001 Manage Data for & with ML

  • Class Number: 13779
  • Instructor: REZIG, EL KINDI
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

This course provides a broad exploration of the practical skills essential for handling, preparing, ingesting, indexing, and analyzing large datasets for machine learning applications. Students will explore various topics, including relational databases, optimizing dataset storage, data cleansing techniques, and large-scale data processing systems (e.g., Spark). The class also covers learned indexes and large-scale data visualization. This hands-on course aims to equip participants with the knowledge and proficiency to effectively manage and analyze vast datasets for machine learning applications.

CS 6965 - 001 Instructional Design for Comp


This course is about how students learn computing, how we can design effective instruction, and how we can draw on research to help us understand both of those things. We will start with a scientific foundation of how learning happens in general, across topics. We will proceed to computing-specific instructional strategies, including for incorporating ethics, and learn a process for instructional design. The centerpiece of the course is a semester-long instructional design project on a computing topic of your choice. This course is highly interactive and collaborative: you will annotate readings with your peers, discuss ideas in class, and give each other constructive feedback on your projects. This course involves lots of writing, reading, and class participation. The 4963 and 6965 expectations will be the same except that 6965 students will be required to incorporate ethics into their instructional design projects, and will have an additional annotated bibliography assignment.

CS 6965 - 001 Instructional Design for Comp

  • Class Number: 18962
  • Instructor: WIESE, ELIANE S
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

This course is about how students learn computing, how we can design effective instruction, and how we can draw on research to help us understand both of those things. We will start with a scientific foundation of how learning happens in general, across topics. We will proceed to computing-specific instructional strategies, including for incorporating ethics, and learn a process for instructional design. The centerpiece of the course is a semester-long instructional design project on a computing topic of your choice. This course is highly interactive and collaborative: you will annotate readings with your peers, discuss ideas in class, and give each other constructive feedback on your projects. This course involves lots of writing, reading, and class participation. The 4963 and 6965 expectations will be the same except that 6965 students will be required to incorporate ethics into their instructional design projects, and will have an additional annotated bibliography assignment.

CS 6966 - 001 Advanced Data Visualization

CS 6966 - 001 Advanced Data Visualization

  • Class Number: 18963
  • Instructor: PHILLIPS, BEI WANG
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 35

This course aims to equip students with skills for critically analyzing data and data related systems in the context of human-computer interaction (HCI) and visualization research, as well as in computer science more broadly. Via readings, projects, and discussions students will develop conceptual tools for evaluating, interpreting, and critiquing data, interfaces, and systems—critical thinking in data writ large. Relevant questions include: what is data? How do we evaluate the quality and relevance of systems for interacting with data? What biases might be inherent in these designs? To serve this goal we will explore perspectives from critical theory, science and technology studies, and HCI/VIS research (such as Data Feminism). Students will gain experience in reading, understanding, and applying ideas from other fields to problems in familiar data domains.
  • Class Number: 18964
  • Instructor: MCNUTT, ANDREW
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 4

This course aims to equip students with skills for critically analyzing data and data related systems in the context of human-computer interaction (HCI) and visualization research, as well as in computer science more broadly. Via readings, projects, and discussions students will develop conceptual tools for evaluating, interpreting, and critiquing data, interfaces, and systems—critical thinking in data writ large. Relevant questions include: what is data? How do we evaluate the quality and relevance of systems for interacting with data? What biases might be inherent in these designs? To serve this goal we will explore perspectives from critical theory, science and technology studies, and HCI/VIS research (such as Data Feminism). Students will gain experience in reading, understanding, and applying ideas from other fields to problems in familiar data domains.

CS 6968 - 001 Designing Digital Health Sys


This special topics class in Human-centered Computing (HCC) will provide PhD, MS, and BS students (in Computing and other fields) with the concepts and skills to answer the question "How might digital tools augment existing healthcare processes?" Our goals in this class are threefold: 1) Understand how healthcare processes work; 2) Identify possibilities for digital tools; 3) Imagine new designs and create prototypes. Programming skills are useful but not required. We will critically evaluate research literature and build background knowledge in fields including human-computer interaction, neurology, microbiome, public health, occupational health, and medical sociology. We will work on concrete problems for health disorders like Parkinsonism, ALS, cognitive disorders, gastrointestinal disorders, chronic pain, and sleep issues. We will understand processes including clinical examination, diagnosis, treatment, self-experimentation, and clinical research. After taking this course, students will be able to develop digital tools that intervene at an appropriate point in the healthcare process in ways that benefit all stakeholders. For topics, class structure, and methods, see https://vineetp13.github.io/DesigningHealth.html

CS 6968 - 001 Designing Digital Health Sys

  • Class Number: 13490
  • Instructor: PANDEY, VINEET
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 6

This special topics class in Human-centered Computing (HCC) will provide PhD, MS, and BS students (in Computing and other fields) with the concepts and skills to answer the question "How might digital tools augment existing healthcare processes?" Our goals in this class are threefold: 1) Understand how healthcare processes work; 2) Identify possibilities for digital tools; 3) Imagine new designs and create prototypes. Programming skills are useful but not required. We will critically evaluate research literature and build background knowledge in fields including human-computer interaction, neurology, microbiome, public health, occupational health, and medical sociology. We will work on concrete problems for health disorders like Parkinsonism, ALS, cognitive disorders, gastrointestinal disorders, chronic pain, and sleep issues. We will understand processes including clinical examination, diagnosis, treatment, self-experimentation, and clinical research. After taking this course, students will be able to develop digital tools that intervene at an appropriate point in the healthcare process in ways that benefit all stakeholders. For topics, class structure, and methods, see https://vineetp13.github.io/DesigningHealth.html

CS 6969 - 001 HCC Research Methods


This course will focus on common quantitative research methods for human-centered computing, including statistics and study design, and the role of quantitative methods in mixed-methods approaches. This course complements 6540 and 6545, which focus on qualitative methods.

CS 6969 - 001 HCC Research Methods

  • Class Number: 18965
  • Instructor: KOGAN, MARINA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 17

This course will focus on common quantitative research methods for human-centered computing, including statistics and study design, and the role of quantitative methods in mixed-methods approaches. This course complements 6540 and 6545, which focus on qualitative methods.

Frontier AI models, such as large language models (LLMs), function as black boxes: their solutions are hidden in internal parameters rather than explicitly specified, preventing us from testing them like conventional code and from applying established safety engineering. Mechanistic interpretability aims to reverse-engineer frontier AI models by breaking their functionality into basic components—effectively writing the code for their solutions. This seminar is for anyone eager to learn mechanistic interpretability, collaboratively with others. Topics will include transformer circuits, superposition, monosemanticity, sparse autoencoders, distributed alignment search, activation patching, and narrow circuits. Each topic is explored over two weeks: the first features a detailed presentation on the core technical aspects, and the second-week shifts to a more interactive approach with a paper discussion. Expected background: A strong understanding of the transformer architecture and training stages of large language models (pretraining, instruction finetuning, alignment, finetuning).
  • Class Number: 19846
  • Instructor: MARASOVIC, ANA
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 16

Frontier AI models, such as large language models (LLMs), function as black boxes: their solutions are hidden in internal parameters rather than explicitly specified, preventing us from testing them like conventional code and from applying established safety engineering. Mechanistic interpretability aims to reverse-engineer frontier AI models by breaking their functionality into basic components—effectively writing the code for their solutions. This seminar is for anyone eager to learn mechanistic interpretability, collaboratively with others. Topics will include transformer circuits, superposition, monosemanticity, sparse autoencoders, distributed alignment search, activation patching, and narrow circuits. Each topic is explored over two weeks: the first features a detailed presentation on the core technical aspects, and the second-week shifts to a more interactive approach with a paper discussion. Expected background: A strong understanding of the transformer architecture and training stages of large language models (pretraining, instruction finetuning, alignment, finetuning).

CS 7931 - 001 Mental Health & Technology

CS 7931 - 001 Mental Health & Technology

  • Class Number: 11175
  • Instructor: IMEL, ZAC
  • Instructor: SRIKUMAR, Vivek
  • Component: Seminar
  • Type: Remote Real-Time
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 7

CS 7932 - 001 Human-Centered Computing

CS 7932 - 001 Human-Centered Computing

  • Class Number: 10811
  • Instructor: KOGAN, MARINA
  • Component: Seminar
  • Type: Remote Real-Time
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 14

CS 7933 - 001 Graphics Seminar

CS 7933 - 001 Graphics Seminar

  • Class Number: 5436
  • Instructor: YANG, YIN
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 7934 - 001 Computer Systems Seminar

CS 7934 - 001 Computer Systems Seminar

  • Class Number: 5347
  • Instructor: EIDE, ERIC N
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

CS 7936 - 001 Types, Inference, & Proof Sear

CS 7936 - 001 Types, Inference, & Proof Sear

  • Class Number: 20062
  • Instructor: GREENMAN, BENJAMIN
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 12

CS 7937 - 001 Arch/VLSI


Meets in MEB 2170

CS 7937 - 001 Arch/VLSI

  • Class Number: 6275
  • Instructor: NAGARAJAN, VIJAYANAND
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

Meets in MEB 2170

CS 7938 - 001 Image Analysis Seminar

CS 7938 - 001 Image Analysis Seminar

  • Class Number: 5527
  • Instructor: JOSHI, SARANG
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 7939 - 001 Robotics Seminar

CS 7939 - 001 Robotics Seminar

  • Class Number: 5028
  • Instructor: ZHANG, HAOHAN
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 7

CS 7941 - 001 Data Science Seminar

CS 7941 - 001 Data Science Seminar

  • Class Number: 6441
  • Instructor: BHASKARA, ADITYA
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 40

CS 7942 - 001 Visualization Seminar


This class meets in WEB 3780.

CS 7942 - 001 Visualization Seminar

  • Class Number: 6476
  • Instructor: PHILLIPS, BEI WANG
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 30

This class meets in WEB 3780.