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. CS 1400 is the common and recommended first CS course. Students with prior experience may choose the accelerated and advanced alternative CS 1420. For advice on choosing your first CS course, see https://utah.sjc1.qualtrics.com/jfe/form/SV_4Iz3s5lM7eLYncO

CS 1400 - 001 Intro Comp Programming

  • Class Number:
  • Instructor: DE ST GERMAIN, H. James 'Jim'
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 210

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 1400 is the common and recommended first CS course. Students with prior experience may choose the accelerated and advanced alternative CS 1420. For advice on choosing your first CS course, see https://utah.sjc1.qualtrics.com/jfe/form/SV_4Iz3s5lM7eLYncO

CS 1400 - 003 Intro Comp Programming

CS 1400 - 003 Intro Comp Programming

  • Class Number: 11296
  • Instructor: DE ST GERMAIN, H. James 'Jim'
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 1400 - 004 Intro Comp Programming

CS 1400 - 004 Intro Comp Programming

  • Class Number: 11297
  • Instructor: DE ST GERMAIN, H. James 'Jim'
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 1400 - 005 Intro Comp Programming

CS 1400 - 005 Intro Comp Programming

  • Class Number: 11298
  • Instructor: DE ST GERMAIN, H. James 'Jim'
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

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: PARKER, ERIN
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 270

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 - 003 Object-Oriented Prog

CS 1410 - 003 Object-Oriented Prog

  • Class Number: 11308
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 1410 - 004 Object-Oriented Prog

CS 1410 - 004 Object-Oriented Prog

  • Class Number: 11309
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 1410 - 005 Object-Oriented Prog

CS 1410 - 005 Object-Oriented Prog

  • Class Number: 11310
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 1410 - 006 Object-Oriented Prog

CS 1410 - 006 Object-Oriented Prog

  • Class Number: 11311
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 1410 - 007 Object-Oriented Prog

CS 1410 - 007 Object-Oriented Prog

  • Class Number: 11312
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 1410 - 008 Object-Oriented Prog

CS 1410 - 008 Object-Oriented Prog

  • Class Number: 11313
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

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. CS 1400 is the common and recommended first CS course. Students with prior experience may choose the accelerated and advanced alternative CS 1420. For advice on choosing your first CS course, see https://utah.sjc1.qualtrics.com/jfe/form/SV_4Iz3s5lM7eLYncO

CS 1420 - 001 Accel Obj-Orient Prog

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

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 1400 is the common and recommended first CS course. Students with prior experience may choose the accelerated and advanced alternative CS 1420. For advice on choosing your first CS course, see https://utah.sjc1.qualtrics.com/jfe/form/SV_4Iz3s5lM7eLYncO

CS 1420 - 004 Accel Obj-Orient Prog

CS 1420 - 004 Accel Obj-Orient Prog

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

CS 1420 - 005 Accel Obj-Orient Prog

CS 1420 - 005 Accel Obj-Orient Prog

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

CS 1420 - 006 Accel Obj-Orient Prog

CS 1420 - 006 Accel Obj-Orient Prog

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

CS 1810 - 001 Intro to Comp Systems

CS 1810 - 001 Intro to Comp Systems

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

CS 1810 - 003 Intro to Comp Systems

CS 1810 - 003 Intro to Comp Systems

  • Class Number: 11324
  • Instructor: JONES, BEN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Wait List: Yes
  • Seats Available: 20

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: Yes
  • Seats Available: 120

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 - 003 Discrete Structures

CS 2100 - 003 Discrete Structures

  • Class Number: 11055
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 40

CS 2100 - 004 Discrete Structures

CS 2100 - 004 Discrete Structures

  • Class Number: 11056
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 40

CS 2100 - 020 Discrete Structures

CS 2100 - 020 Discrete Structures

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

CS 2100 - 022 Discrete Structures

CS 2100 - 022 Discrete Structures

  • Class Number: 11060
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 40

CS 2100 - 023 Discrete Structures

CS 2100 - 023 Discrete Structures

  • Class Number: 11061
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 40

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: Yes
  • Seats Available: 210

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 - 003 Intro Alg & Data Struct

CS 2420 - 003 Intro Alg & Data Struct

  • Class Number: 11347
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 2420 - 004 Intro Alg & Data Struct

CS 2420 - 004 Intro Alg & Data Struct

  • Class Number: 11348
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 2420 - 005 Intro Alg & Data Struct

CS 2420 - 005 Intro Alg & Data Struct

  • Class Number: 11349
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 2420 - 006 Intro Alg & Data Struct

CS 2420 - 006 Intro Alg & Data Struct

  • Class Number: 11350
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

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: Yes
  • Seats Available: 210

CS 2420 - 022 Intro Alg & Data Struct

CS 2420 - 022 Intro Alg & Data Struct

  • Class Number: 11356
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 2420 - 023 Intro Alg & Data Struct

CS 2420 - 023 Intro Alg & Data Struct

  • Class Number: 11357
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 2420 - 024 Intro Alg & Data Struct

CS 2420 - 024 Intro Alg & Data Struct

  • Class Number: 11358
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 2420 - 025 Intro Alg & Data Struct

CS 2420 - 025 Intro Alg & Data Struct

  • Class Number: 11359
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 3090 - 001 Ethics in Computing

CS 3090 - 001 Ethics in Computing

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

CS 3100 - 001 Models Of Computation


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

CS 3100 - 001 Models Of Computation

  • Class Number: 11744
  • Instructor: HENDERSON, THOMAS
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 211

The course fee covers digital course materials through the Instant 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: 11078
  • Instructor: BHASKARA, ADITYA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 200

CS 3190 - 001 Found. of Data Analysis

CS 3190 - 001 Found. of Data Analysis

  • Class Number: 11286
  • Instructor: PHILLIPS, JEFF
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 170

CS 3200 - 001 Intro Sci Comp

CS 3200 - 001 Intro Sci Comp

  • Class Number: 11745
  • Instructor: SHANKAR, VARUN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 110

CS 3350 - 001 Intro to Practical ML

CS 3350 - 001 Intro to Practical ML

  • Class Number: 17541
  • Instructor: TAO, GUANHONG
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: Yes
  • Seats Available: 100

CS 3390 - 001 Ethics in Data Science

CS 3390 - 001 Ethics in Data Science

  • Class Number: 11287
  • Instructor: KIRBY, ROBERT
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 45

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: Yes
  • Seats Available: 150

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: 11365
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 3500 - 004 Software Practice

CS 3500 - 004 Software Practice

  • Class Number: 11366
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 3500 - 005 Software Practice

CS 3500 - 005 Software Practice

  • Class Number: 11367
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 3500 - 020 Software Practice

CS 3500 - 020 Software Practice

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

CS 3500 - 025 Software Practice

CS 3500 - 025 Software Practice

  • Class Number: 11376
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 3500 - 026 Software Practice

CS 3500 - 026 Software Practice

  • Class Number: 11377
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 3500 - 027 Software Practice

CS 3500 - 027 Software Practice

  • Class Number: 11378
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

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: Yes
  • Seats Available: 256

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: 11101
  • Instructor: HEISLER, ERIC
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 32

CS 3505 - 003 Software Practice II

CS 3505 - 003 Software Practice II

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

CS 3505 - 004 Software Practice II

CS 3505 - 004 Software Practice II

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

CS 3505 - 006 Software Practice II

CS 3505 - 006 Software Practice II

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

CS 3505 - 007 Software Practice II

CS 3505 - 007 Software Practice II

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

CS 3505 - 008 Software Practice II

CS 3505 - 008 Software Practice II

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

CS 3540 - 001 Design Human Center Sys

CS 3540 - 001 Design Human Center Sys

  • Class Number: 11764
  • Instructor: WIESE, ELIANE
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 120

CS 3550 - 001 Web Software Dev I

CS 3550 - 001 Web Software Dev I

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

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 Instant 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: Yes
  • Fees: $60.00
  • Seats Available: 18

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 Instant 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: 11332
  • Instructor: GARCIA, LUIS
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $60.00
  • Seats Available: 18

This class meets in MEB 3133.

CS 3810 - 001 Computer Organization

CS 3810 - 001 Computer Organization

  • Class Number: 11747
  • Instructor: BALASUBRAMONIAN, RAJEEV
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 234

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: 11729
  • Instructor: FARIHA, ANNA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 55

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 - 003 Vibe Coding


Prerequisites: CS 3505 and Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing). LLMs can now one-shot simple algorithms and homework assignments. How will they affect real-world software development? It turns out LLMs can help you code much faster—but only if you create an environment for the LLM to succeed. You’re no longer spending time writing code. But you must still define the problems to be solved, design and maintain a coherent software architecture, specify what correctness and performance means, and test the resulting code. The LLM handles the code, but you must handle the context. This class is not about how LLMs work—it’s about how to fit LLM-driven development into a bigger software engineering picture. Students will work in groups using LLMs to build a substantial software project and will be responsible for the correctness, usability, and maintainability of the resulting system. Students will share best practices for using LLMs, while lectures will cover the foundations of LLM coding agents, context engineering and its pitfalls, and LLM-specific software engineering practices.

CS 3960 - 003 Vibe Coding

  • Class Number: 11731
  • Instructor: PANCHEKHA, PAVEL
  • Instructor: REGEHR, JOHN
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 60

Prerequisites: CS 3505 and Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing). LLMs can now one-shot simple algorithms and homework assignments. How will they affect real-world software development? It turns out LLMs can help you code much faster—but only if you create an environment for the LLM to succeed. You’re no longer spending time writing code. But you must still define the problems to be solved, design and maintain a coherent software architecture, specify what correctness and performance means, and test the resulting code. The LLM handles the code, but you must handle the context. This class is not about how LLMs work—it’s about how to fit LLM-driven development into a bigger software engineering picture. Students will work in groups using LLMs to build a substantial software project and will be responsible for the correctness, usability, and maintainability of the resulting system. Students will share best practices for using LLMs, while lectures will cover the foundations of LLM coding agents, context engineering and its pitfalls, and LLM-specific software engineering practices.

CS 3992 - 001 Pre-Thesis/Clinic/Proj

CS 3992 - 001 Pre-Thesis/Clinic/Proj

  • Class Number: 11076
  • Instructor: Fayazi, Morteza
  • Component: Seminar
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 15

CS 4000 - 001 Senior Capstone Design

CS 4000 - 001 Senior Capstone Design

CS 4150 - 001 Algorithms

CS 4150 - 001 Algorithms

  • Class Number: 11746
  • Instructor: WANG, HAITAO
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 211

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: Basu Roy, Rohan
  • Instructor: KOPTA, DANIEL
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 225

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 - 003 Computer Systems

CS 4400 - 003 Computer Systems

  • Class Number: 11093
  • Instructor: Basu Roy, Rohan
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 32

CS 4400 - 004 Computer Systems

CS 4400 - 004 Computer Systems

  • Class Number: 11094
  • Instructor: Basu Roy, Rohan
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 32

CS 4400 - 005 Computer Systems

CS 4400 - 005 Computer Systems

  • Class Number: 11095
  • Instructor: Basu Roy, Rohan
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 32

CS 4400 - 006 Computer Systems

CS 4400 - 006 Computer Systems

  • Class Number: 11096
  • Instructor: Basu Roy, Rohan
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 32

CS 4400 - 007 Computer Systems

CS 4400 - 007 Computer Systems

  • Class Number: 11097
  • Instructor: Basu Roy, Rohan
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 32

CS 4400 - 009 Computer Systems

CS 4400 - 009 Computer Systems

  • Class Number: 17449
  • Instructor: Basu Roy, Rohan
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 32

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: 11275
  • Instructor: MAKAREM, NABIL
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 145

CS 4550 - 001 Web Software Dev II

CS 4550 - 001 Web Software Dev II

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

CS 4961 - 001 AI for HCC


Prerequisites: 'C-' or higher in CS 3350 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing. This course is designed for students interested in learning how artificial intelligence can improve human-computer interaction. We will explore how AI techniques can support better user experiences by modeling users, predicting behaviors, and adapting interfaces. Students will engage with paper readings, participate in class discussions, and complete hands-on projects. By the end of the course, students will be able to identify interaction challenges and apply AI-based methods such as analysis, simulation, and optimization to address them. Topics include adaptive interface design, personalization, and multimodal interaction (e.g., gaze, voice, and gesture).

CS 4961 - 001 AI for HCC

  • Class Number: 11071
  • Instructor: JIANG, YUE
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

Prerequisites: 'C-' or higher in CS 3350 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing. This course is designed for students interested in learning how artificial intelligence can improve human-computer interaction. We will explore how AI techniques can support better user experiences by modeling users, predicting behaviors, and adapting interfaces. Students will engage with paper readings, participate in class discussions, and complete hands-on projects. By the end of the course, students will be able to identify interaction challenges and apply AI-based methods such as analysis, simulation, and optimization to address them. Topics include adaptive interface design, personalization, and multimodal interaction (e.g., gaze, voice, and gesture).

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: 11063
  • Instructor: REZIG, EL KINDI
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 31

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: 11074
  • Instructor: KALLA, PRIYANK
  • Component: Special Projects
  • Type: In Person
  • Units: 2.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 20

CS 5110 - 001 Software Verification

CS 5110 - 001 Software Verification

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

CS 5460 - 001 Operating Systems

CS 5460 - 001 Operating Systems

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

CS 5493 - 001 Applied S/W Secur Test

CS 5493 - 001 Applied S/W Secur Test

  • Class Number: 17447
  • Instructor: NAGY, STEFAN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: Yes
  • Seats Available: 30

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: 11763
  • Instructor: KOPTA, DANIEL
  • Component: Lecture
  • Type: Online
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 300

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: 11765
  • Instructor: Lin, Jenny
  • Instructor: YUKSEL, CEM
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 50

CS 5635 - 001 Vis for Scientific Data

CS 5635 - 001 Vis for Scientific Data

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

CS 5780 - 001 Embedded Sys Design


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
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $35.00
  • Seats Available: 11

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: 11750
  • Instructor: GAILLARDON, PIERRE-EMMANUEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $35.00
  • Seats Available: 1

CS 5780 - 003 Embedded Sys Design

CS 5780 - 003 Embedded Sys Design

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

CS 5780 - 004 Embedded Sys Design

CS 5780 - 004 Embedded Sys Design

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

CS 5780 - 005 Embedded Sys Design

CS 5780 - 005 Embedded Sys Design

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

CS 5780 - 006 Embedded Sys Design

CS 5780 - 006 Embedded Sys Design

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

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 deep learning-based methods and human-AI interaction. 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, reinforcement learning, imitation learning, inverse reinforcement learning, reinforcement learning from human feedback, and AI safety and alignment.

CS 5955 - 001 Adv Artificial Intelligence

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

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 deep learning-based methods and human-AI interaction. 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, reinforcement learning, imitation learning, inverse reinforcement learning, reinforcement learning from human feedback, and AI safety and alignment.

CS 5962 - 001 Auto Speech Recog & Accent


This course provides a cross-disciplinary view of speech transcription services, known as automatic speech recognition (ASR) services. Students will read research papers that describe ASR services’ performance as a function of the accent of the speaker. The course covers the context of historical and current cultural attitudes about accent and spoken language as relevant to ASR. Students will build ASR models and evaluate them using available datasets. Students will read, critically evaluate, and discuss current published research on the topics of ASR and accent, and research suggesting or testing methods to improve ASR performance by accent.

CS 5962 - 001 Auto Speech Recog & Accent

  • Class Number: 18135
  • Instructor: PATWARI, NEAL
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 10

This course provides a cross-disciplinary view of speech transcription services, known as automatic speech recognition (ASR) services. Students will read research papers that describe ASR services’ performance as a function of the accent of the speaker. The course covers the context of historical and current cultural attitudes about accent and spoken language as relevant to ASR. Students will build ASR models and evaluate them using available datasets. Students will read, critically evaluate, and discuss current published research on the topics of ASR and accent, and research suggesting or testing methods to improve ASR performance by accent.

CS 5965 - 001 Social Computing

CS 5965 - 001 Social Computing

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

CS 5966 - 001 Interpretability of LLMs


Prerequisites: 'C-' or higher in CS 3960 OR CS 5340 OR CS 5353 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE). Cracking the interpretability of large language models (LLMs) could be as transformative for AI as the decoding of the genome was for biology. Once a distant aspiration, this grand scientific challenge is now edging toward possibility. In this course, we will explore a spectrum of interpretability methods, ranging from earlier techniques such as highlighting salient inputs and tracing influential training examples, to two advanced directions. First, mechanistic interpretability that seeks to decompose LLMs into interpretable units and trace how their interactions give rise to model behavior. Second, reasoning in natural language, which is both a frontier in interpretability and a core mechanism underlying agentic AI systems. We will focus not only on how these methods work, but also on how to evaluate them rigorously.

CS 5966 - 001 Interpretability of LLMs

  • Class Number: 11065
  • Instructor: MARASOVIC, ANA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 10

Prerequisites: 'C-' or higher in CS 3960 OR CS 5340 OR CS 5353 AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing OR ECE). Cracking the interpretability of large language models (LLMs) could be as transformative for AI as the decoding of the genome was for biology. Once a distant aspiration, this grand scientific challenge is now edging toward possibility. In this course, we will explore a spectrum of interpretability methods, ranging from earlier techniques such as highlighting salient inputs and tracing influential training examples, to two advanced directions. First, mechanistic interpretability that seeks to decompose LLMs into interpretable units and trace how their interactions give rise to model behavior. Second, reasoning in natural language, which is both a frontier in interpretability and a core mechanism underlying agentic AI systems. We will focus not only on how these methods work, but also on how to evaluate them rigorously.

CS 5967 - 001 Critical HCI and Visualization


Prerequisites CS 3540 or DS 4630 OR CS 5630 OR other experience in HCI or Visualization AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing. 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 5967 - 001 Critical HCI and Visualization

  • Class Number: 11066
  • Instructor: MCNUTT, ANDREW
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 3

Prerequisites CS 3540 or DS 4630 OR CS 5630 OR other experience in HCI or Visualization AND Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing. 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 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: 30

CS 6013 - 002 MSD: Computer Systems

CS 6013 - 002 MSD: Computer Systems

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

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: 30

CS 6014 - 002 MSD: Netwrks & Security

CS 6014 - 002 MSD: Netwrks & Security

  • Class Number: 11283
  • Instructor: Flatt, Matthew
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Wait List: No
  • Seats Available: 30

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: 30

CS 6015 - 002 MSD: Software Engineer

CS 6015 - 002 MSD: Software Engineer

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

CS 6019 - 001 MSD Project

CS 6019 - 001 MSD Project

CS 6020 - 001 Early-Career Research

CS 6020 - 001 Early-Career Research

  • Class Number: 11072
  • Instructor: PHILLIPS, BEI WANG
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

CS 6110 - 001 Software Verification

CS 6110 - 001 Software Verification

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

CS 6170 - 001 Computational Topology

CS 6170 - 001 Computational Topology

  • Class Number: 11142
  • Instructor: PHILLIPS, BEI WANG
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 30

CS 6330 - 001 Robotics II: Control

CS 6330 - 001 Robotics II: Control

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

CS 6370 - 001 Motion Planning

CS 6370 - 001 Motion Planning

  • Class Number: 11109
  • Instructor: Hermans, Tucker
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 34

CS 6460 - 001 Operating Systems

CS 6460 - 001 Operating Systems

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

CS 6491 - 001 Software & Sys Security

CS 6491 - 001 Software & Sys Security

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

CS 6493 - 001 Applied S/W Secur Test

CS 6493 - 001 Applied S/W Secur Test

  • Class Number: 17448
  • Instructor: NAGY, STEFAN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 30

CS 6545 - 001 HCI Origin&Perspectives

CS 6545 - 001 HCI Origin&Perspectives

  • Class Number: 11325
  • Instructor: Wiese, Jason
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 6610 - 001 Interactive Comp Graph

CS 6610 - 001 Interactive Comp Graph

  • Class Number: 11803
  • Instructor: Lin, Jenny
  • Instructor: YUKSEL, CEM
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 30

CS 6635 - 001 Vis for Scientific Data

CS 6635 - 001 Vis for Scientific Data

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

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
  • 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: 11114
  • Instructor: GAILLARDON, PIERRE-EMMANUEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $35.00
  • Seats Available: 2

CS 6780 - 004 Embed Sys Design

CS 6780 - 004 Embed Sys Design

  • Class Number: 11116
  • Instructor: GAILLARDON, PIERRE-EMMANUEL
  • 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: 11117
  • Instructor: GAILLARDON, PIERRE-EMMANUEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $35.00
  • Seats Available: 1

CS 6800 - 001 MSD Capstone Internship

CS 6800 - 001 MSD Capstone Internship

CS 6953 - 001 Deep Learning Capstone

CS 6953 - 001 Deep Learning Capstone

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

CS 6955 - 001 Adv Artificial Intelligence


This course focuses on advanced algorithms for intelligent sequential decision making with a focus on deep learning-based methods and human-AI interaction. 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, reinforcement learning, imitation learning, inverse reinforcement learning, reinforcement learning from human feedback, and AI safety and alignment.

CS 6955 - 001 Adv Artificial Intelligence

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

This course focuses on advanced algorithms for intelligent sequential decision making with a focus on deep learning-based methods and human-AI interaction. 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, reinforcement learning, imitation learning, inverse reinforcement learning, reinforcement learning from human feedback, and AI safety and alignment.

CS 6958 - 001 Advanced Computer Vision


This course will cover the recent advances in computer vision, with focus on understanding state-of-the-art methods, analyzing their strengths and weaknesses, and identifying future research opportunities. Example topics covered in this course: object and action recognition, video understanding, self-supervised representation learning, zero- and few-shot learning, transfer learning, language and vision, audio and vision, vision for robotics, image generation, image manipulation, and egocentric perception. This is an advanced vision course for graduate students, previous knowledge of machine learning or deep learning (e.g., CS 5350/6350 or CS 5353/6353) is recommended.

CS 6958 - 001 Advanced Computer Vision

  • Class Number: 11130
  • Instructor: AL HALAH, ZIAD
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 20

This course will cover the recent advances in computer vision, with focus on understanding state-of-the-art methods, analyzing their strengths and weaknesses, and identifying future research opportunities. Example topics covered in this course: object and action recognition, video understanding, self-supervised representation learning, zero- and few-shot learning, transfer learning, language and vision, audio and vision, vision for robotics, image generation, image manipulation, and egocentric perception. This is an advanced vision course for graduate students, previous knowledge of machine learning or deep learning (e.g., CS 5350/6350 or CS 5353/6353) is recommended.

CS 6959 - 001 Human-Centered Data Management

CS 6959 - 001 Human-Centered Data Management

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

CS 6960 - 001 Multimodal LLM Agents


This course will explore the rapidly developing area of Multimodal Large Language Models in embodied settings. Students will learn the foundations of Reinforcement Learning and Large Language Models to understand how large-scale models can be deployed to multimodal environments. Topics will include control flow and scaffolding for agents such as ReAct, Tool use LLMs, coding agents, game-playing agents, computer use and robotics. As part of the course, students will complete programming assignments, read recent papers in the field and complete a significant project. While there are no formal prerequisites, students are expected to be familiar with Machine Learning and the basics of Natural Language Processing (CS 5340) before taking the course.

CS 6960 - 001 Multimodal LLM Agents

  • Class Number: 11732
  • Instructor: Marino, Kenneth
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 20

This course will explore the rapidly developing area of Multimodal Large Language Models in embodied settings. Students will learn the foundations of Reinforcement Learning and Large Language Models to understand how large-scale models can be deployed to multimodal environments. Topics will include control flow and scaffolding for agents such as ReAct, Tool use LLMs, coding agents, game-playing agents, computer use and robotics. As part of the course, students will complete programming assignments, read recent papers in the field and complete a significant project. While there are no formal prerequisites, students are expected to be familiar with Machine Learning and the basics of Natural Language Processing (CS 5340) before taking the course.

CS 6961 - 001 AI for HCC


This course is designed for students interested in learning how artificial intelligence can improve human-computer interaction. We will explore how AI techniques can support better user experiences by modeling users, predicting behaviors, and adapting interfaces. Students will engage with paper readings, participate in class discussions, and complete hands-on projects. By the end of the course, students will be able to identify interaction challenges and apply AI-based methods such as analysis, simulation, and optimization to address them. Topics include adaptive interface design, personalization, and multimodal interaction (e.g., gaze, voice, and gesture).

CS 6961 - 001 AI for HCC

  • Class Number: 11770
  • Instructor: JIANG, YUE
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

This course is designed for students interested in learning how artificial intelligence can improve human-computer interaction. We will explore how AI techniques can support better user experiences by modeling users, predicting behaviors, and adapting interfaces. Students will engage with paper readings, participate in class discussions, and complete hands-on projects. By the end of the course, students will be able to identify interaction challenges and apply AI-based methods such as analysis, simulation, and optimization to address them. Topics include adaptive interface design, personalization, and multimodal interaction (e.g., gaze, voice, and gesture).

CS 6962 - 001 Auto Speech Recog & Accent


This course provides a cross-disciplinary view of speech transcription services, known as automatic speech recognition (ASR) services. Students will read research papers that describe ASR services’ performance as a function of the accent of the speaker. The course covers the context of historical and current cultural attitudes about accent and spoken language as relevant to ASR. Students will build ASR models and evaluate them using available datasets. Students will read, critically evaluate, and discuss current published research on the topics of ASR and accent, and research suggesting or testing methods to improve ASR performance by accent.

CS 6962 - 001 Auto Speech Recog & Accent

  • Class Number: 11771
  • Instructor: PATWARI, NEAL
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 30

This course provides a cross-disciplinary view of speech transcription services, known as automatic speech recognition (ASR) services. Students will read research papers that describe ASR services’ performance as a function of the accent of the speaker. The course covers the context of historical and current cultural attitudes about accent and spoken language as relevant to ASR. Students will build ASR models and evaluate them using available datasets. Students will read, critically evaluate, and discuss current published research on the topics of ASR and accent, and research suggesting or testing methods to improve ASR performance by accent.

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: 11773
  • Instructor: REZIG, EL KINDI
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 39

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 Social Computing

CS 6965 - 001 Social Computing

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

CS 6966 - 001 Interpretability of LLMs


Prerequisites: CS 6340 Natural Language Processing or CS 6353 Deep Learning Can be substituted with a qualifying exam. Cracking the interpretability of large language models (LLMs) could be as transformative for AI as the decoding of the genome was for biology. Once a distant aspiration, this grand scientific challenge is now edging toward possibility. In this course, we will explore a spectrum of interpretability methods, ranging from earlier techniques such as highlighting salient inputs and tracing influential training examples, to two advanced directions. First, mechanistic interpretability that seeks to decompose LLMs into interpretable units and trace how their interactions give rise to model behavior. Second, reasoning in natural language, which is both a frontier in interpretability and a core mechanism underlying agentic AI systems. We will focus not only on how these methods work, but also on how to evaluate them rigorously.

CS 6966 - 001 Interpretability of LLMs

  • Class Number: 11068
  • Instructor: MARASOVIC, ANA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 40

Prerequisites: CS 6340 Natural Language Processing or CS 6353 Deep Learning Can be substituted with a qualifying exam. Cracking the interpretability of large language models (LLMs) could be as transformative for AI as the decoding of the genome was for biology. Once a distant aspiration, this grand scientific challenge is now edging toward possibility. In this course, we will explore a spectrum of interpretability methods, ranging from earlier techniques such as highlighting salient inputs and tracing influential training examples, to two advanced directions. First, mechanistic interpretability that seeks to decompose LLMs into interpretable units and trace how their interactions give rise to model behavior. Second, reasoning in natural language, which is both a frontier in interpretability and a core mechanism underlying agentic AI systems. We will focus not only on how these methods work, but also on how to evaluate them rigorously.

CS 6967 - 001 Critical HCI and Visualization


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 6967 - 001 Critical HCI and Visualization

  • Class Number: 11069
  • Instructor: MCNUTT, ANDREW
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 20

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 6969 - 001 Fast and Verified GPU Code


Modern ML and HPC systems depend on carefully crafted computational primitives (GPU kernels, functions) for performance, yet these components often contain subtle functional and performance bugs despite extensive testing. This project-centered course examines the numeric and scheduling abstractions needed to build correct, fast primitives while introducing systematic design tools like data-flow languages and MLIR. Co-taught with a visiting systems expert, students will design primitives using program semantics, verification methods, and performance measurement, then evaluate them in realistic ML/HPC frameworks. Students will produce research papers and software artifacts based on their work.

CS 6969 - 001 Fast and Verified GPU Code

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

Modern ML and HPC systems depend on carefully crafted computational primitives (GPU kernels, functions) for performance, yet these components often contain subtle functional and performance bugs despite extensive testing. This project-centered course examines the numeric and scheduling abstractions needed to build correct, fast primitives while introducing systematic design tools like data-flow languages and MLIR. Co-taught with a visiting systems expert, students will design primitives using program semantics, verification methods, and performance measurement, then evaluate them in realistic ML/HPC frameworks. Students will produce research papers and software artifacts based on their work.

CS 7520 - 001 Program Lang Semantics

CS 7520 - 001 Program Lang Semantics

  • Class Number: 17425
  • Instructor: Flatt, Matthew
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 28

CS 7640 - 001 Adv Image Processing


Artificial intelligence is rapidly transforming image analysis across domains like biomedical imaging, robotics, and industrial automation. This advanced graduate course explores emerging paradigms at the intersection of artificial intelligence and image analysis, emphasizing methods beyond traditional deep learning. Topics rotate to reflect current research trends and may include foundation models, generative AI, self- and weakly-supervised learning, AI for 3D/4D imaging, explainable and trustworthy AI, privacy-preserving learning, human-AI collaboration, and real-time edge AI applications. Designed for students in CS, ECE, BME, and related fields, the course balances lectures, paper discussions, and a research project. Topics may vary each semester to reflect the evolving landscape of AI for image analysis.

CS 7640 - 001 Adv Image Processing

  • Class Number: 11112
  • Instructor: Elhabian, Shireen
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 40

Artificial intelligence is rapidly transforming image analysis across domains like biomedical imaging, robotics, and industrial automation. This advanced graduate course explores emerging paradigms at the intersection of artificial intelligence and image analysis, emphasizing methods beyond traditional deep learning. Topics rotate to reflect current research trends and may include foundation models, generative AI, self- and weakly-supervised learning, AI for 3D/4D imaging, explainable and trustworthy AI, privacy-preserving learning, human-AI collaboration, and real-time edge AI applications. Designed for students in CS, ECE, BME, and related fields, the course balances lectures, paper discussions, and a research project. Topics may vary each semester to reflect the evolving landscape of AI for image analysis.

CS 7810 - 001 Adv Computer Arch

CS 7810 - 001 Adv Computer Arch

  • Class Number: 11099
  • Instructor: NAGARAJAN, VIJAYANAND
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 7932 - 001 Human Centered Comp Seminar

CS 7932 - 001 Human Centered Comp Seminar

  • Class Number: 11090
  • Component: Seminar
  • Type: Remote Real-Time
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 15

CS 7933 - 001 Graphics Seminar

CS 7933 - 001 Graphics Seminar

  • Class Number: 11089
  • Instructor: Lin, Jenny
  • 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: 11088
  • Instructor: EIDE, ERIC N
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

CS 7936 - 001 Type Theory Foundations

CS 7936 - 001 Type Theory Foundations

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

CS 7937 - 001 Arch/VLSI


Meets in MEB 2170

CS 7937 - 001 Arch/VLSI

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

Meets in MEB 2170

CS 7939 - 001 Robotics Seminar

CS 7939 - 001 Robotics Seminar

  • Class Number: 11081
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

CS 7941 - 001 Data Science Seminar

CS 7941 - 001 Data Science Seminar

  • Class Number: 11080
  • Instructor: PHILLIPS, JEFF
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 40

CS 7942 - 001 Visualization Seminar

CS 7942 - 001 Visualization Seminar

  • Class Number: 11079
  • Instructor: MCNUTT, ANDREW
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 15