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:
  • Component: Lecture
  • Type: In Person
  • Units: 4.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 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 - 002 Intro Comp Programming

CS 1400 - 002 Intro Comp Programming

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

CS 1400 - 003 Intro Comp Programming

CS 1400 - 003 Intro Comp Programming

  • Class Number: 4035
  • 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: 4032
  • 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: 4036
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 1400 - 020 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 - 020 Intro Comp Programming

  • Class Number:
  • Component: Lecture
  • Type: In Person
  • Units: 4.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 1400 - 025 Intro Comp Programming

CS 1400 - 025 Intro Comp Programming

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

CS 1400 - 026 Intro Comp Programming

CS 1400 - 026 Intro Comp Programming

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

CS 1400 - 027 Intro Comp Programming

CS 1400 - 027 Intro Comp Programming

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

CS 1400 - 028 Intro Comp Programming

CS 1400 - 028 Intro Comp Programming

  • Class Number: 4050
  • 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: Brown, Noelle
  • Component: Lecture
  • Type: In Person
  • Units: 4.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 1410 - 003 Object-Oriented Prog

CS 1410 - 003 Object-Oriented Prog

  • Class Number: 4056
  • Instructor: Brown, Noelle
  • 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: 4057
  • Instructor: Brown, Noelle
  • 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: 4058
  • Instructor: Brown, Noelle
  • 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: 4059
  • Instructor: Brown, Noelle
  • 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:
  • Component: Lecture
  • Type: In Person
  • Units: 4.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 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 - 003 Accel Obj-Orient Prog

CS 1420 - 003 Accel Obj-Orient Prog

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

CS 1420 - 004 Accel Obj-Orient Prog

CS 1420 - 004 Accel Obj-Orient Prog

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

CS 1420 - 007 Accel Obj-Orient Prog

CS 1420 - 007 Accel Obj-Orient Prog

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

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:
  • Instructor: Yang, Yin
  • 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 - 002 Discrete Structures

CS 2100 - 002 Discrete Structures

  • Class Number: 3792
  • Instructor: Yang, Yin
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 40

CS 2100 - 003 Discrete Structures

CS 2100 - 003 Discrete Structures

  • Class Number: 3793
  • Instructor: Yang, Yin
  • 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: 3794
  • Instructor: Yang, Yin
  • 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 and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion 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: 135

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

CS 2420 - 003 Intro Alg & Data Struct

  • Class Number: 4112
  • 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: 4113
  • 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: 4114
  • 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: 4115
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 2420 - 007 Intro Alg & Data Struct

CS 2420 - 007 Intro Alg & Data Struct

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

CS 2420 - 020 Intro Alg & Data Struct


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

  • 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 2420 - 022 Intro Alg & Data Struct

CS 2420 - 022 Intro Alg & Data Struct

  • Class Number: 4123
  • 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: 4124
  • 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: 4125
  • 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: 4126
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 2420 - 026 Intro Alg & Data Struct

CS 2420 - 026 Intro Alg & Data Struct

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

CS 3020 - 001 Research Forum

CS 3020 - 001 Research Forum

  • Class Number: 3847
  • Instructor: Brunvand, Erik
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 75

CS 3090 - 001 Ethics in Computing

CS 3090 - 001 Ethics in Computing

  • Class Number: 4067
  • Instructor: Phillips, Bei Wang
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 70

CS 3100 - 001 Models Of Computation

CS 3100 - 001 Models Of Computation

  • Class Number: 4569
  • Instructor: Kirby, Mike
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 120

CS 3130 - 001 Eng Prob Stats

CS 3130 - 001 Eng Prob Stats

  • Class Number: 3808
  • Instructor: Tasdizen, Tolga
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 60

CS 3130 - 002 Eng Prob Stats

CS 3130 - 002 Eng Prob Stats

  • Class Number: 3809
  • Instructor: Chen, Rong-Rong
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 101

CS 3190 - 001 Found. of Data Analysis

CS 3190 - 001 Found. of Data Analysis

  • Class Number: 3748
  • Instructor: Bhaskara, Aditya
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 164

CS 3200 - 001 Intro Sci Comp

CS 3200 - 001 Intro Sci Comp

  • Class Number: 4570
  • Instructor: Shankar, Varun
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 65

CS 3350 - 001 Intro to Practical ML

CS 3350 - 001 Intro to Practical ML

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

CS 3350 - 020 Intro to Practical ML

CS 3350 - 020 Intro to Practical ML

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

CS 3390 - 001 Ethics in Data Science

CS 3390 - 001 Ethics in Data Science

  • Class Number: 4025
  • Instructor: Patil, Sameer
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 48

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

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

CS 3500 - 020 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 - 020 Software Practice

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

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 - 025 Software Practice

CS 3500 - 025 Software Practice

  • Class Number: 17521
  • 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: 4145
  • 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: 4146
  • 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: Johnson, David
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 198

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 - 003 Software Practice II

CS 3505 - 003 Software Practice II

  • Class Number: 3830
  • Instructor: Johnson, David
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 3505 - 004 Software Practice II

CS 3505 - 004 Software Practice II

  • Class Number: 3831
  • Instructor: Johnson, David
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 3505 - 005 Software Practice II

CS 3505 - 005 Software Practice II

  • Class Number: 3832
  • Instructor: Johnson, David
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 3505 - 006 Software Practice II

CS 3505 - 006 Software Practice II

  • Class Number: 3833
  • Instructor: Johnson, David
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 3505 - 007 Software Practice II

CS 3505 - 007 Software Practice II

  • Class Number: 3834
  • Instructor: Johnson, David
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 3505 - 008 Software Practice II

CS 3505 - 008 Software Practice II

  • Class Number: 3835
  • Instructor: Johnson, David
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 3520 - 001 Programming Languages

CS 3520 - 001 Programming Languages

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

CS 3540 - 001 Design Human Center Sys

CS 3540 - 001 Design Human Center Sys

  • Class Number: 4583
  • Instructor: Pandey, Vineet
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 160

CS 3545 - 001 Des Human-Centered Exp

CS 3545 - 001 Des Human-Centered Exp

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

CS 3550 - 001 Web Software Dev I

CS 3550 - 001 Web Software Dev I

  • Class Number: 4068
  • Instructor: De St Germain, H. James 'Jim'
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 150

CS 3700 - 001 Digital System Design

CS 3700 - 001 Digital System Design

  • Class Number:
  • Instructor: Fayazi, Morteza
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $60.00
  • Seats Available: 10

CS 3700 - 002 Digital System Design

CS 3700 - 002 Digital System Design

  • Class Number: 4084
  • Instructor: Fayazi, Morteza
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $60.00
  • Seats Available: 3

CS 3700 - 004 Digital System Design

CS 3700 - 004 Digital System Design

  • Class Number: 4085
  • Instructor: Fayazi, Morteza
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $60.00
  • Seats Available: 3

CS 3700 - 005 Digital System Design

CS 3700 - 005 Digital System Design

  • Class Number: 4086
  • Instructor: Fayazi, Morteza
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $60.00
  • Seats Available: 3

CS 3710 - 001 Computer Design Lab


Laboratories scheduled during first week of classes.

CS 3710 - 001 Computer Design Lab

  • Class Number: 4091
  • Component: Laboratory
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $60.00
  • Seats Available: 10

Laboratories scheduled during first week of classes.

CS 3810 - 001 Computer Organization

CS 3810 - 001 Computer Organization

  • Class Number: 4573
  • Instructor: Balasubramonian, Rajeev
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 220

CS 3960 - 001 Ethics in AI


This course examines the ethical dimensions of contemporary artificial intelligence. It introduces students to the core ideas behind technologies such as machine learning, large language models, autonomous agents, generative media systems, and large-scale computational infrastructures, and places them in conversation with major traditions in moral and political philosophy. Topics include fairness and discrimination in automated prediction, authorship and ownership in generative media, environmental costs of computation, and the impact of automation on work and human flourishing. Throughout, the course emphasizes careful ethical reasoning about agency, responsibility, and social impacts in a world increasingly shaped by intelligent systems. Students will leave with a deeper understanding how ethical reflection and philosophical analysis can guide their responsible development and use of AI. Prerequisites: Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing).

CS 3960 - 001 Ethics in AI

  • Class Number: 4554
  • Instructor: Srikumar, Vivek
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 100

This course examines the ethical dimensions of contemporary artificial intelligence. It introduces students to the core ideas behind technologies such as machine learning, large language models, autonomous agents, generative media systems, and large-scale computational infrastructures, and places them in conversation with major traditions in moral and political philosophy. Topics include fairness and discrimination in automated prediction, authorship and ownership in generative media, environmental costs of computation, and the impact of automation on work and human flourishing. Throughout, the course emphasizes careful ethical reasoning about agency, responsibility, and social impacts in a world increasingly shaped by intelligent systems. Students will leave with a deeper understanding how ethical reflection and philosophical analysis can guide their responsible development and use of AI. Prerequisites: Foundational Courses complete AND (Major OR Minor in Kahlert School of Computing).

CS 3960 - 002 Scalable Software Systems


This course introduces the design and implementation of applications that operate at cloud and data center scale. Students learn to build software systems that provision, scale, and manage compute, storage, and network resources on public cloud platforms (e.g., AWS). The course emphasizes both the principles and practical techniques underlying elasticity, sharding, and resource management in large-scale systems. Topics include multi-tier service architectures, storage and caching strategies, workload-driven scaling, performance modeling, and production monitoring. Students evaluate tradeoffs among reliability, latency, throughput, and cost. Course projects require students to design, implement, deploy, and measure cloud-based applications that demonstrate end-to-end scalability, observability, and cost awareness. Prerequisite: CS 3505 and Foundational Courses complete AND Major OR Minor in Kahlert School of Computing.

CS 3960 - 002 Scalable Software Systems

  • Class Number: 4555
  • Instructor: Stutsman, Ryan
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

This course introduces the design and implementation of applications that operate at cloud and data center scale. Students learn to build software systems that provision, scale, and manage compute, storage, and network resources on public cloud platforms (e.g., AWS). The course emphasizes both the principles and practical techniques underlying elasticity, sharding, and resource management in large-scale systems. Topics include multi-tier service architectures, storage and caching strategies, workload-driven scaling, performance modeling, and production monitoring. Students evaluate tradeoffs among reliability, latency, throughput, and cost. Course projects require students to design, implement, deploy, and measure cloud-based applications that demonstrate end-to-end scalability, observability, and cost awareness. Prerequisite: CS 3505 and Foundational Courses complete AND Major OR Minor in Kahlert School of Computing.

CS 3991 - 001 CE Junior Seminar

CS 3991 - 001 CE Junior Seminar

  • Class Number: 3807
  • Instructor: Stevens, Kenneth
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 10

CS 4000 - 001 Senior Capstone Design

CS 4000 - 001 Senior Capstone Design

CS 4000 - 002 Senior Capstone Design

CS 4000 - 002 Senior Capstone Design

  • Class Number: 17546
  • Instructor: Bean, David
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 4150 - 001 Algorithms

CS 4150 - 001 Algorithms

  • Class Number: 4571
  • Instructor: Martin, Travis
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 211

CS 4230 - 001 Parallel Programming

CS 4230 - 001 Parallel Programming

  • Class Number: 3849
  • Instructor: Sadayappan, Saday
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 40

CS 4300 - 001 Artificial Intelligence

CS 4300 - 001 Artificial Intelligence

  • Class Number: 4579
  • Instructor: Heisler, Eric
  • Instructor: Liu, Weiyu
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 155

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. 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 4400 - 001 Computer Systems

  • Class Number:
  • Instructor: Zhang, MU
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 262

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 4400 - 002 Computer Systems

CS 4400 - 002 Computer Systems

  • Class Number: 3820
  • Instructor: Zhang, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 4400 - 003 Computer Systems

CS 4400 - 003 Computer Systems

  • Class Number: 3821
  • Instructor: Zhang, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 4400 - 004 Computer Systems

CS 4400 - 004 Computer Systems

  • Class Number: 3818
  • Instructor: Zhang, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 4400 - 005 Computer Systems

CS 4400 - 005 Computer Systems

  • Class Number: 3822
  • Instructor: Zhang, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 4400 - 006 Computer Systems

CS 4400 - 006 Computer Systems

  • Class Number: 3823
  • Instructor: Zhang, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 4400 - 007 Computer Systems

CS 4400 - 007 Computer Systems

  • Class Number: 3824
  • Instructor: Zhang, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 4400 - 008 Computer Systems

CS 4400 - 008 Computer Systems

  • Class Number: 3825
  • Instructor: Zhang, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 33

CS 4440 - 001 Computer Security

CS 4440 - 001 Computer Security

  • Class Number: 4022
  • Instructor: Xu, Jun
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 145

CS 4470 - 001 Compilers

CS 4470 - 001 Compilers

  • Class Number: 4577
  • Instructor: Greenman, Benjamin
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 80

CS 4480 - 001 Computer Networks

CS 4480 - 001 Computer Networks

  • Class Number: 4578
  • Instructor: Awan, Basit
  • Instructor: Van Der Merwe, Jacobus
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 130

CS 4500 - 001 Senior Capstone Project

CS 4500 - 001 Senior Capstone Project

  • Class Number: 4366
  • Instructor: Gopalakrishnan, Ganesh
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 105

CS 4530 - 001 Mobile App Programming

CS 4530 - 001 Mobile App Programming

  • Class Number: 4015
  • Instructor: Makarem, Nabil
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 145

CS 4600 - 001 Computer Graphics

CS 4600 - 001 Computer Graphics

  • Class Number: 4585
  • Instructor: Yuksel, Cem
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 150

CS 4640 - 001 Image Processing Basics

CS 4640 - 001 Image Processing Basics

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

CS 4710 - 001 Comptr Eng Sr Project

CS 4710 - 001 Comptr Eng Sr Project

  • Class Number: 4575
  • Instructor: Stevens, Kenneth
  • Component: Special Projects
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 25

CS 4960 - 001 Computational Fabrication


Today, computation is a critical part of design and manufacturing. This course explores the use of computational tools for the design and creation of physical objects. By exploring the mathematical, algorithmic, and physical principles that underly different fabrication techniques such as 3D printing, laser cutting, and machine knitting, students will learn how computation is used to automate design processes, convert object representations into fabrication instructions, and evaluate object properties. This is a project-based course with multiple hands on assignments where students design and fabricate objects using computational tools, culminating in a final project where students build their own computational fabrication workflow. Prerequisites for CS 4960 are CS 3500 and (MATH 2250 or MATH 2270).

CS 4960 - 001 Computational Fabrication

  • Class Number: 4556
  • Instructor: Lin, Jenny
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 8

Today, computation is a critical part of design and manufacturing. This course explores the use of computational tools for the design and creation of physical objects. By exploring the mathematical, algorithmic, and physical principles that underly different fabrication techniques such as 3D printing, laser cutting, and machine knitting, students will learn how computation is used to automate design processes, convert object representations into fabrication instructions, and evaluate object properties. This is a project-based course with multiple hands on assignments where students design and fabricate objects using computational tools, culminating in a final project where students build their own computational fabrication workflow. Prerequisites for CS 4960 are CS 3500 and (MATH 2250 or MATH 2270).

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: 17455
  • Instructor: Jiang, Yue
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 50

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 4962 - 001 Sustainable Computing


We are witnessing exponential growth in computing hardware along with resource-intensive applications such as HPC and AI/ML workloads. This is increasing the environmental footprint of computing, risking global sustainability. In this course, we will first understand how computing affects various sustainability metrics like carbon footprint, water footprint, impact on public health and biodiversity. Next, we will discuss strategies for designing hardware and scheduling algorithms for data centers and other large scale computing platforms to reduce computing's environmental footprint. We will focus on developing energy-efficient software and making existing LLMs, HPC, and AI applications sustainable. Finally, we will look into emerging frontiers in sustainable computing, including space-based and quantum systems, as long-term solutions. This course assumes a background in computer systems and architecture. Prerequisite: CS 3810 and Full Major Status in Kahlert School of Computing.

CS 4962 - 001 Sustainable Computing

  • Class Number: 3803
  • Instructor: Basu Roy, Rohan
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 21

We are witnessing exponential growth in computing hardware along with resource-intensive applications such as HPC and AI/ML workloads. This is increasing the environmental footprint of computing, risking global sustainability. In this course, we will first understand how computing affects various sustainability metrics like carbon footprint, water footprint, impact on public health and biodiversity. Next, we will discuss strategies for designing hardware and scheduling algorithms for data centers and other large scale computing platforms to reduce computing's environmental footprint. We will focus on developing energy-efficient software and making existing LLMs, HPC, and AI applications sustainable. Finally, we will look into emerging frontiers in sustainable computing, including space-based and quantum systems, as long-term solutions. This course assumes a background in computer systems and architecture. Prerequisite: CS 3810 and Full Major Status in Kahlert School of Computing.

CS 5140 - 001 Data Mining

CS 5140 - 001 Data Mining

  • Class Number: 3927
  • Instructor: Phillips, Jeff
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $15.00
  • Seats Available: 42

CS 5150 - 001 Advanced Algorithms

CS 5150 - 001 Advanced Algorithms

  • Class Number: 3868
  • Instructor: Wang, Haitao
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 5310 - 001 Robotics I: Mechanics

CS 5310 - 001 Robotics I: Mechanics

  • Class Number: 4208
  • Instructor: Abbott, Jake
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 15

CS 5320 - 001 Computer Vision


The course is an introduction to fundamental problems of Computer Vision and main concepts and techniques to solve those. The course starts with the fundamentals of processing and transforming images, extracting features and descriptors, estimating camera pose, and stereo matching. After that, the course covers developing advanced algorithms and machine learning-based techniques, including an introduction to deep neural networks, to address high-level computer vision tasks like 3D reconstruction, detecting and segmenting objects in images, and classifying activities in videos.

CS 5320 - 001 Computer Vision

  • Class Number: 4580
  • Instructor: Al Halah, Ziad
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 34

The course is an introduction to fundamental problems of Computer Vision and main concepts and techniques to solve those. The course starts with the fundamentals of processing and transforming images, extracting features and descriptors, estimating camera pose, and stereo matching. After that, the course covers developing advanced algorithms and machine learning-based techniques, including an introduction to deep neural networks, to address high-level computer vision tasks like 3D reconstruction, detecting and segmenting objects in images, and classifying activities in videos.

CS 5340 - 001 Natural Language

CS 5340 - 001 Natural Language

  • Class Number: 4212
  • Instructor: Marasovic, Ana
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 50

CS 5494 - 001 CPS/IoT Security

CS 5494 - 001 CPS/IoT Security

  • Class Number: 17552
  • Instructor: Garcia, Luis
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 5495 - 001 Human Asp of Sec & Priv

CS 5495 - 001 Human Asp of Sec & Priv

  • Class Number: 4071
  • Instructor: Patil, Sameer
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: Yes
  • Seats Available: 40

CS 5496 - 001 Modern Crypto and Apps

CS 5496 - 001 Modern Crypto and Apps

  • Class Number: 4080
  • Instructor: Soni, Pratik
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 28

CS 5630 - 001 Vis for Data Science

CS 5630 - 001 Vis for Data Science

  • Class Number: 5119
  • Instructor: Rosen, Paul
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 5710 - 001 Digital VLSI Design

CS 5710 - 001 Digital VLSI Design

  • Class Number: 4581
  • Instructor: Gaillardon, Pierre-Emmanuel
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $30.00
  • Seats Available: 2

CS 5745 - 001 Test/Verif Digital Ckts

CS 5745 - 001 Test/Verif Digital Ckts

  • Class Number: 3837
  • Instructor: Kalla, Priyank
  • Component: Activity
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 2

CS 5959 - 001 Ray Tracing Hardware


This is a project-based course for investigating hardware architectures for accelerating ray tracing. We will discuss how hardware acceleration for ray tracing is handled on modern GPUs and alternative research hardware designs that offer different approaches for hardware ray tracing. We will simulate different hardware designs using Arches, a cycle-level hardware simulator, providing alternative computing systems to contemporary GPUs, centered around ray tracing-based workloads. After a few introductory projects, intended to get students familiar with the Arches simulation framework, each student will pick a different topic to explore hardware/software modifications on existing techniques to accelerate ray tracing workloads on custom hardware designs, simulated using Arches. Students taking this course are expected to have a fundamental understanding of rendering with ray tracing. A detailed circuit/hardware design knowledge is not required, but the course will explore hardware enhancements to support ray tracing, so some familiarity with basic computer organization and microarchitecture will be helpful. CS 5959 prerequisite: CS 3810 AND (CS 4600 OR CS 5610 OR CS 5620)

CS 5959 - 001 Ray Tracing Hardware

  • Class Number: 17456
  • Instructor: Yuksel, Cem
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

This is a project-based course for investigating hardware architectures for accelerating ray tracing. We will discuss how hardware acceleration for ray tracing is handled on modern GPUs and alternative research hardware designs that offer different approaches for hardware ray tracing. We will simulate different hardware designs using Arches, a cycle-level hardware simulator, providing alternative computing systems to contemporary GPUs, centered around ray tracing-based workloads. After a few introductory projects, intended to get students familiar with the Arches simulation framework, each student will pick a different topic to explore hardware/software modifications on existing techniques to accelerate ray tracing workloads on custom hardware designs, simulated using Arches. Students taking this course are expected to have a fundamental understanding of rendering with ray tracing. A detailed circuit/hardware design knowledge is not required, but the course will explore hardware enhancements to support ray tracing, so some familiarity with basic computer organization and microarchitecture will be helpful. CS 5959 prerequisite: CS 3810 AND (CS 4600 OR CS 5610 OR CS 5620)

CS 6010 - 001 MSD: Intro Software Dev

CS 6010 - 001 MSD: Intro Software Dev

  • Class Number: 4016
  • Instructor: Jones, Ben
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 60

CS 6011 - 001 MSD: Comp Programming

CS 6011 - 001 MSD: Comp Programming

  • Class Number: 4017
  • Instructor: De St Germain, John
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 60

CS 6012 - 001 MSD: Data Struct Algo

CS 6012 - 001 MSD: Data Struct Algo

  • Class Number: 4018
  • Instructor: Jones, Ben
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 60

CS 6018 - 001 MSD: App System Design

CS 6018 - 001 MSD: App System Design

  • Class Number: 4020
  • Instructor: Makarem, Nabil
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 60

CS 6019 - 001 MSD Project

CS 6019 - 001 MSD Project

CS 6020 - 001 Early-Career Research

CS 6020 - 001 Early-Career Research

  • Class Number: 3802
  • Instructor: Phillips, Bei Wang
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 6140 - 001 Data Mining

CS 6140 - 001 Data Mining

  • Class Number: 3928
  • Instructor: Phillips, Jeff
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Fees: $15.00
  • Seats Available: 42

CS 6150 - 001 Graduate Algorithms

CS 6150 - 001 Graduate Algorithms

  • Class Number: 3838
  • Instructor: Pascucci, Valerio
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 126

CS 6160 - 001 Computational Geometry

CS 6160 - 001 Computational Geometry

  • Class Number: 3840
  • Instructor: Wang, Haitao
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 30

CS 6210 - 001 Sci. and Data Comp. I

CS 6210 - 001 Sci. and Data Comp. I

  • Class Number: 17433
  • Instructor: Berzins, Martin
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 30

CS 6230 - 001 Parallel Computing HPC

CS 6230 - 001 Parallel Computing HPC

  • Class Number: 3826
  • Instructor: Sadayappan, Saday
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 6300 - 001 Artificial Intelligence

CS 6300 - 001 Artificial Intelligence

  • Class Number: 4614
  • Instructor: Heisler, Eric
  • Instructor: Liu, Weiyu
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 106

CS 6310 - 001 Robotics I: Mechanics

CS 6310 - 001 Robotics I: Mechanics

  • Class Number: 4598
  • Instructor: Abbott, Jake
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 2

CS 6320 - 001 Computer Vision


The course is an introduction to fundamental problems of Computer Vision and main concepts and techniques to solve those. The course starts with the fundamentals of processing and transforming images, extracting features and descriptors, estimating camera pose, and stereo matching. After that, the course covers developing advanced algorithms and machine learning-based techniques, including an introduction to deep neural networks, to address high-level computer vision tasks like 3D reconstruction, detecting and segmenting objects in images, and classifying activities in videos.

CS 6320 - 001 Computer Vision

  • Class Number: 4612
  • Instructor: Al Halah, Ziad
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 41

The course is an introduction to fundamental problems of Computer Vision and main concepts and techniques to solve those. The course starts with the fundamentals of processing and transforming images, extracting features and descriptors, estimating camera pose, and stereo matching. After that, the course covers developing advanced algorithms and machine learning-based techniques, including an introduction to deep neural networks, to address high-level computer vision tasks like 3D reconstruction, detecting and segmenting objects in images, and classifying activities in videos.

CS 6340 - 001 Natural Language

CS 6340 - 001 Natural Language

  • Class Number: 4602
  • Instructor: Marasovic, Ana
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 50

CS 6465 - 001 Adv OS Implementation

CS 6465 - 001 Adv OS Implementation

  • Class Number: 4023
  • Instructor: Burtsev, Anton
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 30

CS 6475 - 001 Advanced Compilers

CS 6475 - 001 Advanced Compilers

  • Class Number: 3846
  • Instructor: Regehr, John
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 30

CS 6494 - 001 CPS/IoT Security

CS 6494 - 001 CPS/IoT Security

  • Class Number: 17554
  • Instructor: Garcia, Luis
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 30

CS 6495 - 001 Human Asp of Sec & Priv

CS 6495 - 001 Human Asp of Sec & Priv

  • Class Number: 4072
  • Instructor: Patil, Sameer
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 30

CS 6496 - 001 Modern Crypto and Apps

CS 6496 - 001 Modern Crypto and Apps

  • Class Number: 4079
  • Instructor: Soni, Pratik
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 28

CS 6520 - 001 Programming Language

CS 6520 - 001 Programming Language

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

CS 6540 - 001 Human/Computer Interact

CS 6540 - 001 Human/Computer Interact

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

CS 6630 - 001 Vis for Data Science

CS 6630 - 001 Vis for Data Science

  • Class Number: 4606
  • Instructor: Isaacs, Kate E
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 105

CS 6640 - 001 Image Processing

CS 6640 - 001 Image Processing

  • Class Number: 3863
  • Instructor: Joshi, Sarang
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 53

CS 6710 - 001 Digital VLSI Design

CS 6710 - 001 Digital VLSI Design

  • Class Number: 4622
  • Instructor: Gaillardon, Pierre-Emmanuel
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $30.00
  • Seats Available: 2

CS 6745 - 001 Test/Verif Digital Ckts

CS 6745 - 001 Test/Verif Digital Ckts

  • Class Number: 3864
  • Instructor: Kalla, Priyank
  • Component: Activity
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 8

CS 6800 - 001 MSD Capstone Internship

CS 6800 - 001 MSD Capstone Internship

CS 6810 - 001 Computer Architecture

CS 6810 - 001 Computer Architecture

  • Class Number: 4604
  • Instructor: Nagarajan, Vijayanand
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 78

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 will be covered include ensembles, conformal prediction, variational autoencoders, normalizing flows, active learning, and diffusion networks among others.

CS 6956 - 001 Probabilistic Deep Learning

  • Class Number: 3842
  • Instructor: Hermans, Tucker
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 40

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

CS 6958 - 001 Computational Fabrication


Today, computation is a critical part of design and manufacturing. This course explores the use of computational tools for the design and creation of physical objects. By exploring the mathematical, algorithmic, and physical principles that underly different fabrication techniques such as 3D printing, laser cutting, and machine knitting, students will learn how computation is used to automate design processes, convert object representations into fabrication instructions, and evaluate object properties. This is a project-based course with multiple hands on assignments where students design and fabricate objects using computational tools, culminating in a final project where students build their own computational fabrication workflow.

CS 6958 - 001 Computational Fabrication

  • Class Number: 3844
  • Instructor: Lin, Jenny
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 16

Today, computation is a critical part of design and manufacturing. This course explores the use of computational tools for the design and creation of physical objects. By exploring the mathematical, algorithmic, and physical principles that underly different fabrication techniques such as 3D printing, laser cutting, and machine knitting, students will learn how computation is used to automate design processes, convert object representations into fabrication instructions, and evaluate object properties. This is a project-based course with multiple hands on assignments where students design and fabricate objects using computational tools, culminating in a final project where students build their own computational fabrication workflow.

CS 6959 - 001 Ray Tracing Hardware


This is a project-based course for investigating hardware architectures for accelerating ray tracing. We will discuss how hardware acceleration for ray tracing is handled on modern GPUs and alternative research hardware designs that offer different approaches for hardware ray tracing. We will simulate different hardware designs using Arches, a cycle-level hardware simulator, providing alternative computing systems to contemporary GPUs, centered around ray tracing-based workloads. After a few introductory projects, intended to get students familiar with the Arches simulation framework, each student will pick a different topic to explore hardware/software modifications on existing techniques to accelerate ray tracing workloads on custom hardware designs, simulated using Arches. Students taking this course are expected to have a fundamental understanding of rendering with ray tracing. A detailed circuit/hardware design knowledge is not required, but the course will explore hardware enhancements to support ray tracing, so some familiarity with basic computer organization and microarchitecture will be helpful.

CS 6959 - 001 Ray Tracing Hardware

  • Class Number: 17479
  • Instructor: Yuksel, Cem
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 50

This is a project-based course for investigating hardware architectures for accelerating ray tracing. We will discuss how hardware acceleration for ray tracing is handled on modern GPUs and alternative research hardware designs that offer different approaches for hardware ray tracing. We will simulate different hardware designs using Arches, a cycle-level hardware simulator, providing alternative computing systems to contemporary GPUs, centered around ray tracing-based workloads. After a few introductory projects, intended to get students familiar with the Arches simulation framework, each student will pick a different topic to explore hardware/software modifications on existing techniques to accelerate ray tracing workloads on custom hardware designs, simulated using Arches. Students taking this course are expected to have a fundamental understanding of rendering with ray tracing. A detailed circuit/hardware design knowledge is not required, but the course will explore hardware enhancements to support ray tracing, so some familiarity with basic computer organization and microarchitecture will be helpful.

CS 6962 - 001 Sustainable Computing


We are witnessing exponential growth in computing hardware along with resource-intensive applications such as HPC and AI/ML workloads. This is increasing the environmental footprint of computing, risking global sustainability. In this course, we will first understand how computing affects various sustainability metrics like carbon footprint, water footprint, impact on public health and biodiversity. Next, we will discuss strategies for designing hardware and scheduling algorithms for data centers and other large scale computing platforms to reduce computing's environmental footprint. We will focus on developing energy-efficient software and making existing LLMs, HPC, and AI applications sustainable. Finally, we will look into emerging frontiers in sustainable computing, including space-based and quantum systems, as long-term solutions. This course assumes a background in computer systems and architecture.

CS 6962 - 001 Sustainable Computing

  • Class Number: 4596
  • Instructor: Basu Roy, Rohan
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

We are witnessing exponential growth in computing hardware along with resource-intensive applications such as HPC and AI/ML workloads. This is increasing the environmental footprint of computing, risking global sustainability. In this course, we will first understand how computing affects various sustainability metrics like carbon footprint, water footprint, impact on public health and biodiversity. Next, we will discuss strategies for designing hardware and scheduling algorithms for data centers and other large scale computing platforms to reduce computing's environmental footprint. We will focus on developing energy-efficient software and making existing LLMs, HPC, and AI applications sustainable. Finally, we will look into emerging frontiers in sustainable computing, including space-based and quantum systems, as long-term solutions. This course assumes a background in computer systems and architecture.

CS 7930 - 001 Intro to Computing PhD


Please contact the graduate advisors to obtain a permission code.

CS 7930 - 001 Intro to Computing PhD

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

Please contact the graduate advisors to obtain a permission code.

CS 7933 - 002 Graphics Seminar

CS 7933 - 002 Graphics Seminar

  • Class Number: 3816
  • Instructor: Yuksel, Cem
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 15

CS 7934 - 001 Computer Systems Seminar

CS 7934 - 001 Computer Systems Seminar

  • Class Number: 3815
  • Instructor: Eide, Eric N
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 7939 - 001 Robotics

CS 7939 - 001 Robotics

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

CS 7941 - 002 Data Science Seminar

CS 7941 - 002 Data Science Seminar

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

CS 7942 - 001 Visualization Seminar

CS 7942 - 001 Visualization Seminar

  • Class Number: 3810
  • Instructor: Isaacs, Kate E
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20