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.


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.
  • Class Number:
  • Instructor: KOPTA, DANIEL
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 74

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 - 002 Intro Comp Programming

CS 1400 - 002 Intro Comp Programming

  • Class Number: 14029
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

CS 1400 - 003 Intro Comp Programming

CS 1400 - 003 Intro Comp Programming

  • Class Number: 13487
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 1400 - 004 Intro Comp Programming

CS 1400 - 004 Intro Comp Programming

  • Class Number: 13488
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 2

CS 1400 - 005 Intro Comp Programming

CS 1400 - 005 Intro Comp Programming

  • Class Number: 13489
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 2

CS 1400 - 006 Intro Comp Programming

CS 1400 - 006 Intro Comp Programming

  • Class Number: 13993
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 1400 - 007 Intro Comp Programming

CS 1400 - 007 Intro Comp Programming

  • Class Number: 13994
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

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.
  • Class Number:
  • Instructor: DE ST GERMAIN, H. James 'Jim'
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 78

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 - 022 Intro Comp Programming

CS 1400 - 022 Intro Comp Programming

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

CS 1400 - 023 Intro Comp Programming

CS 1400 - 023 Intro Comp Programming

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

CS 1400 - 024 Intro Comp Programming

CS 1400 - 024 Intro Comp Programming

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

CS 1400 - 025 Intro Comp Programming

CS 1400 - 025 Intro Comp Programming

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

CS 1400 - 026 Intro Comp Programming

CS 1400 - 026 Intro Comp Programming

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

CS 1400 - 027 Intro Comp Programming

CS 1400 - 027 Intro Comp Programming

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

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.
  • Class Number:
  • Instructor: MARTIN, TRAVIS B
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 7

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: 15339
  • Instructor: MARTIN, TRAVIS B
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 2

CS 1410 - 004 Object-Oriented Prog

CS 1410 - 004 Object-Oriented Prog

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

CS 1410 - 005 Object-Oriented Prog

CS 1410 - 005 Object-Oriented Prog

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

CS 1410 - 006 Object-Oriented Prog

CS 1410 - 006 Object-Oriented Prog

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

CS 1410 - 007 Object-Oriented Prog

CS 1410 - 007 Object-Oriented Prog

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

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.
  • Class Number:
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 32

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 1420 - 002 Accel Obj-Orient Prog

CS 1420 - 002 Accel Obj-Orient Prog

  • Class Number: 14767
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 3

CS 1420 - 003 Accel Obj-Orient Prog

CS 1420 - 003 Accel Obj-Orient Prog

  • Class Number: 14768
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 1420 - 004 Accel Obj-Orient Prog

CS 1420 - 004 Accel Obj-Orient Prog

  • Class Number: 14769
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -1

CS 1420 - 005 Accel Obj-Orient Prog

CS 1420 - 005 Accel Obj-Orient Prog

  • Class Number: 14770
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 1420 - 006 Accel Obj-Orient Prog

CS 1420 - 006 Accel Obj-Orient Prog

  • Class Number: 14771
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -1

CS 1420 - 007 Accel Obj-Orient Prog

CS 1420 - 007 Accel Obj-Orient Prog

  • Class Number: 14772
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 1420 - 008 Accel Obj-Orient Prog

CS 1420 - 008 Accel Obj-Orient Prog

  • Class Number: 14773
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 1420 - 009 Accel Obj-Orient Prog

CS 1420 - 009 Accel Obj-Orient Prog

  • Class Number: 14774
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 1420 - 010 Accel Obj-Orient Prog

CS 1420 - 010 Accel Obj-Orient Prog

  • Class Number: 14775
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 5

CS 1420 - 011 Accel Obj-Orient Prog

CS 1420 - 011 Accel Obj-Orient Prog

  • Class Number: 14776
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 1420 - 013 Accel Obj-Orient Prog

CS 1420 - 013 Accel Obj-Orient Prog

  • Class Number: 17023
  • Instructor: HEISLER, ERIC
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 2
  • Class Number: 17012
  • Instructor: LOPEZ, Cisco
  • Instructor: PHILLIPS, ALYSSA
  • Component: Lecture
  • Type: In Person
  • Units: 1.0
  • Wait List: No
  • Seats Available: 10
  • Class Number: 19630
  • Instructor: LUCY, ERIN
  • Instructor: PHILLIPS, ALYSSA
  • Component: Lecture
  • Type: In Person
  • Units: 1.0
  • Wait List: No
  • Seats Available: 2
  • Class Number: 19791
  • Instructor: PHILLIPS, ALYSSA
  • Instructor: VERSLUIS, TRACY
  • Component: Lecture
  • Type: In Person
  • Units: 1.0
  • Wait List: No
  • Seats Available: 1
  • Class Number: 19792
  • Instructor: PHILLIPS, ALYSSA
  • Component: Lecture
  • Type: In Person
  • Units: 1.0
  • Wait List: No
  • Seats Available: 2

Sections 002-005 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.
  • Class Number:
  • Instructor: Elhabian, Shireen
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 21

Sections 002-005 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 2100 - 002 Discrete Structures

CS 2100 - 002 Discrete Structures

  • Class Number: 13490
  • Instructor: Elhabian, Shireen
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 6

CS 2100 - 003 Discrete Structures

CS 2100 - 003 Discrete Structures

  • Class Number: 13099
  • Instructor: Elhabian, Shireen
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 1

CS 2100 - 004 Discrete Structures

CS 2100 - 004 Discrete Structures

  • Class Number: 13098
  • Instructor: Elhabian, Shireen
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 0

CS 2100 - 005 Discrete Structures

CS 2100 - 005 Discrete Structures

  • Class Number: 13491
  • Instructor: Elhabian, Shireen
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 14

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.
  • Class Number:
  • Instructor: WOOD, AARON
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 56

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

CS 2420 - 002 Intro Alg & Data Struct

  • Class Number: 13101
  • Instructor: WOOD, AARON
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 2420 - 003 Intro Alg & Data Struct

CS 2420 - 003 Intro Alg & Data Struct

  • Class Number: 13102
  • Instructor: WOOD, AARON
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 3

CS 2420 - 004 Intro Alg & Data Struct

CS 2420 - 004 Intro Alg & Data Struct

  • Class Number: 13103
  • Instructor: WOOD, AARON
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -3

CS 2420 - 005 Intro Alg & Data Struct

CS 2420 - 005 Intro Alg & Data Struct

  • Class Number: 13104
  • Instructor: WOOD, AARON
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -1

CS 2420 - 006 Intro Alg & Data Struct

CS 2420 - 006 Intro Alg & Data Struct

  • Class Number: 13995
  • Instructor: WOOD, AARON
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2420 - 007 Intro Alg & Data Struct

CS 2420 - 007 Intro Alg & Data Struct

  • Class Number: 13996
  • Instructor: WOOD, AARON
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -2
  • Class Number:
  • Instructor: PARKER, ERIN
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 62

CS 2420 - 022 Intro Alg & Data Struct

CS 2420 - 022 Intro Alg & Data Struct

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

CS 2420 - 023 Intro Alg & Data Struct

CS 2420 - 023 Intro Alg & Data Struct

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

CS 2420 - 024 Intro Alg & Data Struct

CS 2420 - 024 Intro Alg & Data Struct

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

CS 2420 - 025 Intro Alg & Data Struct

CS 2420 - 025 Intro Alg & Data Struct

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

CS 2420 - 026 Intro Alg & Data Struct

CS 2420 - 026 Intro Alg & Data Struct

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

CS 2420 - 027 Intro Alg & Data Struct

CS 2420 - 027 Intro Alg & Data Struct

  • Class Number: 18449
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1
  • Class Number: 7185
  • Instructor: HENDERSON, THOMAS
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 24
  • Class Number: 4369
  • Instructor: WANG, HAITAO
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $39.82
  • Seats Available: 44

CS 3130 - 001 Eng Prob Stats

CS 3130 - 001 Eng Prob Stats

  • Class Number: 19903
  • Instructor: XIANG, YU
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 3

CS 3130 - 003 Eng Prob Stats

CS 3130 - 003 Eng Prob Stats

  • Class Number: 14166
  • Instructor: CHEN, RONG-RONG
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 2
  • Class Number: 10846
  • Instructor: REZIG, EL KINDI
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 15
  • Class Number: 13492
  • Instructor: PATIL, SAMEER
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

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.
  • Class Number:
  • Instructor: MARTIN, TRAVIS B
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 67

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

CS 3500 - 002 Software Practice

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

CS 3500 - 003 Software Practice

CS 3500 - 003 Software Practice

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

CS 3500 - 004 Software Practice

CS 3500 - 004 Software Practice

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

CS 3500 - 005 Software Practice

CS 3500 - 005 Software Practice

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

CS 3500 - 006 Software Practice

CS 3500 - 006 Software Practice

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

CS 3500 - 007 Software Practice

CS 3500 - 007 Software Practice

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

CS 3500 - 008 Software Practice

CS 3500 - 008 Software Practice

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

CS 3500 - 009 Software Practice

CS 3500 - 009 Software Practice

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

CS 3500 - 011 Software Practice

CS 3500 - 011 Software Practice

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

CS 3500 - 013 Software Practice

CS 3500 - 013 Software Practice

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

CS 3500 - 014 Software Practice

CS 3500 - 014 Software Practice

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

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.
  • Class Number:
  • Instructor: JOHNSON, DAVID
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 3

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: 8748
  • Instructor: JOHNSON, DAVID
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 004 Software Practice II

CS 3505 - 004 Software Practice II

  • Class Number: 8749
  • Instructor: JOHNSON, DAVID
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -1

CS 3505 - 005 Software Practice II

CS 3505 - 005 Software Practice II

  • Class Number: 9497
  • Instructor: JOHNSON, DAVID
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 006 Software Practice II

CS 3505 - 006 Software Practice II

  • Class Number: 14016
  • Instructor: JOHNSON, DAVID
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

CS 3505 - 007 Software Practice II

CS 3505 - 007 Software Practice II

  • Class Number: 14017
  • Instructor: JOHNSON, DAVID
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3505 - 008 Software Practice II

CS 3505 - 008 Software Practice II

  • Class Number: 14018
  • Instructor: JOHNSON, DAVID
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0
  • Class Number: 18453
  • Instructor: FLATT, Matthew
  • Instructor: GREENMAN, BENJAMIN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 0
  • Class Number: 9486
  • Instructor: PANDEY, VINEET
  • Instructor: WIESE, Jason
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 8

Students who have completed CS 4540: Web Software Architecture should not enroll in CS 3550 due to significant overlap in the course material. CS 4540 satisfies the pre-requisite for CS 4550: Web Software Development II (to be offered in Spring 2024).
  • Class Number: 18443
  • Instructor: PANCHEKHA, PAVEL
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 2

Students who have completed CS 4540: Web Software Architecture should not enroll in CS 3550 due to significant overlap in the course material. CS 4540 satisfies the pre-requisite for CS 4550: Web Software Development II (to be offered in Spring 2024).

CS 3700 - 001 Digital System Design

CS 3700 - 001 Digital System Design

  • Class Number:
  • Instructor: TAJALLI, ARMIN
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $60.00
  • Seats Available: 13

CS 3700 - 002 Digital System Design

CS 3700 - 002 Digital System Design

  • Class Number: 12609
  • Instructor: TAJALLI, ARMIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $60.00
  • Seats Available: 1

CS 3700 - 004 Digital System Design

CS 3700 - 004 Digital System Design

  • Class Number: 14308
  • Instructor: TAJALLI, ARMIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $60.00
  • Seats Available: 3

CS 3700 - 005 Digital System Design

CS 3700 - 005 Digital System Design

  • Class Number: 14309
  • Instructor: TAJALLI, ARMIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • 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: 3360
  • Instructor: BAIRD, RICH
  • Instructor: STEVENS, KENNETH S
  • Component: Laboratory
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $60.00
  • Seats Available: 15

Laboratories scheduled during first week of classes.
  • Class Number: 13109
  • Instructor: KOPTA, DANIEL
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 36

CS 3991 - 001 CE Junior Seminar

CS 3991 - 001 CE Junior Seminar

  • Class Number: 4209
  • Instructor: BERZINS, MARTIN
  • Instructor: CARP, SHERI L
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 28
  • Class Number: 9356
  • Instructor: BHASKARA, ADITYA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $13.83
  • Seats Available: 3
  • Class Number: 10843
  • Instructor: SADAYAPPAN, SADAY
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 45
  • Class Number: 15349
  • Instructor: KUNTZ, ALAN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 16

This course requires registration for a lab and/or discussion section. Students will be automatically registered for this lecture section when registering for the pertinent lab and/or discussion section. The course fee covers digital course materials through the Inclusive Access program. Students may request to opt out here: https://portal.verba.io/utah/login
  • Class Number:
  • Instructor: ZHANG, MU
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $32.94
  • Seats Available: 70

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

CS 4400 - 002 Computer Systems

CS 4400 - 002 Computer Systems

  • Class Number: 9487
  • Instructor: ZHANG, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: -3

CS 4400 - 003 Computer Systems

CS 4400 - 003 Computer Systems

  • Class Number: 9488
  • Instructor: ZHANG, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: -1

CS 4400 - 004 Computer Systems

CS 4400 - 004 Computer Systems

  • Class Number: 12606
  • Instructor: ZHANG, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 3

CS 4400 - 005 Computer Systems

CS 4400 - 005 Computer Systems

  • Class Number: 14019
  • Instructor: ZHANG, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: -1

CS 4400 - 006 Computer Systems

CS 4400 - 006 Computer Systems

  • Class Number: 14315
  • Instructor: ZHANG, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 4
  • Class Number: 18433
  • Instructor: NAGY, STEFAN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 31

CS 4500 - 001 Senior Capstone Project

CS 4500 - 001 Senior Capstone Project

  • Class Number: 10054
  • Instructor: DE ST GERMAIN, JOHN
  • Instructor: REGEHR, JOHN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0
  • Class Number: 8355
  • Instructor: YANG, YIN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 55
  • Class Number: 3660
  • Instructor: BRUNVAND, ERIK
  • Component: Special Projects
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

Prereqs: CS 3500 AND MATH 1220 AND MATH 2270 AND CS 3130. Algorithmic Foundations of Robotics explores the algorithms that help robots operate in the real world from autonomous cars to manipulators in factories. It covers a range of topics including forward/inverse kinematics, motion planning, simultaneous localization and mapping (SLAM), and optimal control. Students will learn about the algorithms and mathematical principles that enable robots to perceive, reason, and act in the world. By the end of the course, students will have an understanding of the fundamental concepts that drive robotic systems, and will be equipped with the skills to design and implement their own robotic algorithms.
  • Class Number: 18431
  • Instructor: HERMANS, Tucker
  • Instructor: TABOR, GRIFFIN
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 27

Prereqs: CS 3500 AND MATH 1220 AND MATH 2270 AND CS 3130. Algorithmic Foundations of Robotics explores the algorithms that help robots operate in the real world from autonomous cars to manipulators in factories. It covers a range of topics including forward/inverse kinematics, motion planning, simultaneous localization and mapping (SLAM), and optimal control. Students will learn about the algorithms and mathematical principles that enable robots to perceive, reason, and act in the world. By the end of the course, students will have an understanding of the fundamental concepts that drive robotic systems, and will be equipped with the skills to design and implement their own robotic algorithms.

CS 4991 - 001 CE Senior Thesis I

CS 4991 - 001 CE Senior Thesis I

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

CS 5150 - 001 Advanced Algorithms

CS 5150 - 001 Advanced Algorithms

  • Class Number: 9354
  • Instructor: PASCUCCI, VALERIO
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 14

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.
  • Class Number: 19241
  • Instructor: AL HALAH, ZIAD
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 17

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 5350 - 001 Machine Learning

CS 5350 - 001 Machine Learning

  • Class Number: 8744
  • Instructor: Zhe, Shandian
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 32
  • Class Number: 15346
  • Instructor: FARIHA, ANNA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 8

CS 5360 - 001 Virtual Reality

CS 5360 - 001 Virtual Reality

  • Class Number: 18437
  • Instructor: Cardona-Rivera, Rogelio E
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 13
  • Class Number: 15348
  • Instructor: ROSEN, PAUL
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 17

CS 5710 - 001 Digital VLSI Design


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

CS 5710 - 001 Digital VLSI Design

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

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

CS 5745 - 001 Test/Verif Digital Ckts

CS 5745 - 001 Test/Verif Digital Ckts

  • Class Number: 18706
  • Instructor: KALLA, PRIYANK
  • Component: Activity
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 6

This course is structured to train students to reason about the design of efficient parallel algorithms. We will study parallel programing models and analysis of parallel algorithms as well as fundamental parallel data structures and algorithms. This course is appropriate for those that want transform serial algorithms into parallel algorithms, want to modify currently existing parallel algorithms, or want to write parallel algorithms from scratch. While formally prerequisites are CS 2420 and CS 3500, basic understanding of linear algebra, sequential algorithms and data structures is expected. Additionally, reasonable programming skills (preferably C/C++) and familiarity with Linux or Unix is also expected. Prerequisite: CS 3500.
  • Class Number: 19844
  • Instructor: Sundar, Hari
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 27

This course is structured to train students to reason about the design of efficient parallel algorithms. We will study parallel programing models and analysis of parallel algorithms as well as fundamental parallel data structures and algorithms. This course is appropriate for those that want transform serial algorithms into parallel algorithms, want to modify currently existing parallel algorithms, or want to write parallel algorithms from scratch. While formally prerequisites are CS 2420 and CS 3500, basic understanding of linear algebra, sequential algorithms and data structures is expected. Additionally, reasonable programming skills (preferably C/C++) and familiarity with Linux or Unix is also expected. Prerequisite: CS 3500.

AI systems are becoming increasingly capable and increasingly commonplace in our society. How do we get these AI systems to do what we, as humans, actually want them to do? How do we ensure that increasingly powerful AI systems are safe and beneficial? How can we efficiently leverage human input to improve AI systems and how can we use AI to empower people? We will explore a range of topics including interactive reinforcement learning, shared autonomy, human intent and preference learning, and AI safety and existential risk. Classes will be a mix of lectures covering foundational materials as well as hands-on analysis and exploration of both seminal and recent research papers. Throughout the semester, students will engage in a novel research project, culminating in a final presentation and written technical report. By taking this course, students will develop a broad understanding of the common techniques and unique research challenges involved in building safe and beneficial AI systems that learn from, interact with, and assist humans. Prerequisites: CS 3500 and Calculus II. Full Major Status in Computer Science OR Software Development or Full Minor Status in Computer Science
  • Class Number: 16547
  • Instructor: BROWN, DANIEL
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 0

AI systems are becoming increasingly capable and increasingly commonplace in our society. How do we get these AI systems to do what we, as humans, actually want them to do? How do we ensure that increasingly powerful AI systems are safe and beneficial? How can we efficiently leverage human input to improve AI systems and how can we use AI to empower people? We will explore a range of topics including interactive reinforcement learning, shared autonomy, human intent and preference learning, and AI safety and existential risk. Classes will be a mix of lectures covering foundational materials as well as hands-on analysis and exploration of both seminal and recent research papers. Throughout the semester, students will engage in a novel research project, culminating in a final presentation and written technical report. By taking this course, students will develop a broad understanding of the common techniques and unique research challenges involved in building safe and beneficial AI systems that learn from, interact with, and assist humans. Prerequisites: CS 3500 and Calculus II. Full Major Status in Computer Science OR Software Development or Full Minor Status in Computer Science

Prerequisite: CS 4150. Cryptography is used at scale to secure information at rest or in transit and, recently, to secure computations. This course is a graduate-level course on the foundations of modern cryptography. It is also open to advanced undergraduates. We will cover basic cryptographic tools, their applications for building advanced systems, and a formal mathematical framework to argue about security. The course will have two parts: In Part 1, we will cover basic tools like pseudorandom functions, pseudorandom generators, digital signatures, encryption schemes, hash functions, and their instantiations in practice. In Part 2, we will briefly cover advanced topics, including zero-knowledge proofs, multi-party computation, fully-homomorphic encryption, and the role of cryptography in blockchains. The course will not assume any prior background in cryptography. However, basic mathematical maturity is expected; exposure to undergraduate-level probability, elementary number/group theory, proofs by contradiction, and hardness reductions (in complexity theory) is highly recommended.
  • Class Number: 19139
  • Instructor: SONI, PRATIK
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

Prerequisite: CS 4150. Cryptography is used at scale to secure information at rest or in transit and, recently, to secure computations. This course is a graduate-level course on the foundations of modern cryptography. It is also open to advanced undergraduates. We will cover basic cryptographic tools, their applications for building advanced systems, and a formal mathematical framework to argue about security. The course will have two parts: In Part 1, we will cover basic tools like pseudorandom functions, pseudorandom generators, digital signatures, encryption schemes, hash functions, and their instantiations in practice. In Part 2, we will briefly cover advanced topics, including zero-knowledge proofs, multi-party computation, fully-homomorphic encryption, and the role of cryptography in blockchains. The course will not assume any prior background in cryptography. However, basic mathematical maturity is expected; exposure to undergraduate-level probability, elementary number/group theory, proofs by contradiction, and hardness reductions (in complexity theory) is highly recommended.

Cyber-physical Systems and Internet of Things Security.The widespread deployment of Cyber-physical Systems (CPS) and Internet of Things (IoT) systems has revolutionized the way we interact with the physical world, from smart homes to self-driving cars. However, these systems are also susceptible to cyber attacks, posing a threat to the safety, security, and privacy of users across safety-critical applications. This course provides an introduction to the fundamentals of IoT-CPS security, privacy, and safety, covering real-world attacks and defenses, embedded systems security, cryptography, safety verification, sensors and perception security, and more. Knowledge of Software Practice and C++ (CS 3505) is required. Knowledge of Computer Security (CS 4440) is strongly recommended.
  • Class Number: 19545
  • Instructor: GARCIA, LUIS
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 27

Cyber-physical Systems and Internet of Things Security.The widespread deployment of Cyber-physical Systems (CPS) and Internet of Things (IoT) systems has revolutionized the way we interact with the physical world, from smart homes to self-driving cars. However, these systems are also susceptible to cyber attacks, posing a threat to the safety, security, and privacy of users across safety-critical applications. This course provides an introduction to the fundamentals of IoT-CPS security, privacy, and safety, covering real-world attacks and defenses, embedded systems security, cryptography, safety verification, sensors and perception security, and more. Knowledge of Software Practice and C++ (CS 3505) is required. Knowledge of Computer Security (CS 4440) is strongly recommended.
  • Class Number: 18430
  • Instructor: KOGAN, MARINA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

Local Explanations for Deep Learning Models: Today it is not unusual to ask chatbots such as ChatGPT to answer something as well as explain the answer in plain English. In this course, we will review five types of methods for explaining individual predictions of deep learning models for NLP/computer vision tasks that preceded this remarkable achievement. We will then revisit evaluations of these methods and focus on how to develop and evaluate explainability methods that best accomplish a concrete, real-world utility. For more information read FAQ: https://utah-explainability.github.io/#faq-before-enrolling.
  • Class Number: 16916
  • Instructor: MARASOVIC, ANA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

Local Explanations for Deep Learning Models: Today it is not unusual to ask chatbots such as ChatGPT to answer something as well as explain the answer in plain English. In this course, we will review five types of methods for explaining individual predictions of deep learning models for NLP/computer vision tasks that preceded this remarkable achievement. We will then revisit evaluations of these methods and focus on how to develop and evaluate explainability methods that best accomplish a concrete, real-world utility. For more information read FAQ: https://utah-explainability.github.io/#faq-before-enrolling.

CS 6150 - 001 Graduate Algorithms

CS 6150 - 001 Graduate Algorithms

  • Class Number: 5546
  • Instructor: PASCUCCI, VALERIO
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 25
  • Class Number: 16243
  • Instructor: BERZINS, MARTIN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 7
  • Class Number: 12607
  • Instructor: SADAYAPPAN, SADAY
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 24
  • Class Number: 1414
  • Instructor: HOLLERBACH, JOHN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 33

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.
  • Class Number: 19242
  • Instructor: AL HALAH, ZIAD
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -5

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 6350 - 001 Machine Learning

CS 6350 - 001 Machine Learning

  • Class Number: 8745
  • Instructor: Zhe, Shandian
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 41
  • Class Number: 15347
  • Instructor: FARIHA, ANNA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: Yes
  • Seats Available: 20

CS 6360 - 001 Virtual Reality

CS 6360 - 001 Virtual Reality

  • Class Number: 18457
  • Instructor: Cardona-Rivera, Rogelio E
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 10
  • Class Number: 18434
  • Instructor: STUTSMAN, Ryan
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 1
  • Class Number: 18454
  • Instructor: VAN DER MERWE, Jacobus
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 16
  • Class Number: 18435
  • Instructor: FLATT, Matthew
  • Instructor: GREENMAN, BENJAMIN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 6

This course is a comprehensive study of the internals of the modern database systems and challenges of indexing and querying large-scale data in the context of continuously evolving hardware. It will cover the core concepts and fundamentals of indexing and hashing data structures, concurrency control, storage, file organization, and query processing. The course will study both the in-memory and disk-based database systems and will use examples from modern key-value stores as database systems. All the class projects will be in context of real in-memory and disk-based database systems. The course is appropriate for graduate students in software systems and for advanced undergraduates with systems programming skills. Unofficial pre-requisites: CS 5530 (Undergrad databases), CS 3505 software practice in C/C++
  • Class Number: 16532
  • Instructor: PANDEY, PRASHANT
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 47

This course is a comprehensive study of the internals of the modern database systems and challenges of indexing and querying large-scale data in the context of continuously evolving hardware. It will cover the core concepts and fundamentals of indexing and hashing data structures, concurrency control, storage, file organization, and query processing. The course will study both the in-memory and disk-based database systems and will use examples from modern key-value stores as database systems. All the class projects will be in context of real in-memory and disk-based database systems. The course is appropriate for graduate students in software systems and for advanced undergraduates with systems programming skills. Unofficial pre-requisites: CS 5530 (Undergrad databases), CS 3505 software practice in C/C++

CS 6540 - 001 Human/Computer Interact

CS 6540 - 001 Human/Computer Interact

  • Class Number: 13495
  • Instructor: ISAACS, KATE E
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -4
  • Class Number: 15350
  • Instructor: ROSEN, PAUL
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 55

CS 6640 - 001 Image Processing


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

CS 6640 - 001 Image Processing

  • Class Number: 6232
  • Instructor: WHITAKER, ROSS
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $32.94
  • Seats Available: 20

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

CS 6710 - 001 Digital VLSI Design


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

CS 6710 - 001 Digital VLSI Design

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

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

CS 6745 - 001 Test/Verif Digital Ckts

CS 6745 - 001 Test/Verif Digital Ckts

  • Class Number: 18707
  • Instructor: KALLA, PRIYANK
  • Component: Activity
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 3

CS 6810 - 001 Computer Architecture

CS 6810 - 001 Computer Architecture

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

Natural Language Processing with Deep Learning. Natural Language Processing (NLP) addresses the questions of how to build programs that can read, understand, generate and act upon textual inputs. In recent years, we have seen remarkable advances in the state-of-the-art in NLP, which are powered by deep neural networks. This course gives a thorough overview of recent advances in the use of deep learning for NLP. We will focus on challenges inherent in designing neural models for processing textual inputs. To this end, we will use several example NLP tasks to study modeling strategies, network architectures and learning paradigms. Students should have knowledge of Machine Learning (CS 5350/6350) prior to enrolling.
  • Class Number: 18436
  • Instructor: SRIKUMAR, Vivek
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 3

Natural Language Processing with Deep Learning. Natural Language Processing (NLP) addresses the questions of how to build programs that can read, understand, generate and act upon textual inputs. In recent years, we have seen remarkable advances in the state-of-the-art in NLP, which are powered by deep neural networks. This course gives a thorough overview of recent advances in the use of deep learning for NLP. We will focus on challenges inherent in designing neural models for processing textual inputs. To this end, we will use several example NLP tasks to study modeling strategies, network architectures and learning paradigms. Students should have knowledge of Machine Learning (CS 5350/6350) prior to enrolling.

This course is structured to train students to reason about the design of efficient parallel algorithms. We will study parallel programing models and analysis of parallel algorithms as well as fundamental parallel data structures and algorithms. This course is appropriate for those that want transform serial algorithms into parallel algorithms, want to modify currently existing parallel algorithms, or want to write parallel algorithms from scratch. While formally prerequisites are CS 2420 and CS 3500, basic understanding of linear algebra, sequential algorithms and data structures is expected. Additionally, reasonable programming skills (preferably C/C++) and familiarity with Linux or Unix is also expected.
  • Class Number: 19864
  • Instructor: Sundar, Hari
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 19

This course is structured to train students to reason about the design of efficient parallel algorithms. We will study parallel programing models and analysis of parallel algorithms as well as fundamental parallel data structures and algorithms. This course is appropriate for those that want transform serial algorithms into parallel algorithms, want to modify currently existing parallel algorithms, or want to write parallel algorithms from scratch. While formally prerequisites are CS 2420 and CS 3500, basic understanding of linear algebra, sequential algorithms and data structures is expected. Additionally, reasonable programming skills (preferably C/C++) and familiarity with Linux or Unix is also expected.

AI systems are becoming increasingly capable and increasingly commonplace in our society. How do we get these AI systems to do what we, as humans, actually want them to do? How do we ensure that increasingly powerful AI systems are safe and beneficial? How can we efficiently leverage human input to improve AI systems and how can we use AI to empower people? We will explore a range of topics including interactive reinforcement learning, shared autonomy, human intent and preference learning, and AI safety and existential risk. Classes will be a mix of lectures covering foundational materials as well as hands-on analysis and exploration of both seminal and recent research papers. Throughout the semester, students will engage in a novel research project, culminating in a final presentation and written technical report. By taking this course, students will develop a broad understanding of the common techniques and unique research challenges involved in building safe and beneficial AI systems that learn from, interact with, and assist humans.
  • Class Number: 16555
  • Instructor: BROWN, DANIEL
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: Yes
  • Seats Available: 13

AI systems are becoming increasingly capable and increasingly commonplace in our society. How do we get these AI systems to do what we, as humans, actually want them to do? How do we ensure that increasingly powerful AI systems are safe and beneficial? How can we efficiently leverage human input to improve AI systems and how can we use AI to empower people? We will explore a range of topics including interactive reinforcement learning, shared autonomy, human intent and preference learning, and AI safety and existential risk. Classes will be a mix of lectures covering foundational materials as well as hands-on analysis and exploration of both seminal and recent research papers. Throughout the semester, students will engage in a novel research project, culminating in a final presentation and written technical report. By taking this course, students will develop a broad understanding of the common techniques and unique research challenges involved in building safe and beneficial AI systems that learn from, interact with, and assist humans.

Cryptography is used at scale to secure information at rest or in transit and, recently, to secure computations. This course is a graduate-level course on the foundations of modern cryptography. It is also open to advanced undergraduates. We will cover basic cryptographic tools, their applications for building advanced systems, and a formal mathematical framework to argue about security. The course will have two parts: In Part 1, we will cover basic tools like pseudorandom functions, pseudorandom generators, digital signatures, encryption schemes, hash functions, and their instantiations in practice. In Part 2, we will briefly cover advanced topics, including zero-knowledge proofs, multi-party computation, fully-homomorphic encryption, and the role of cryptography in blockchains. The course will not assume any prior background in cryptography. However, basic mathematical maturity is expected; exposure to undergraduate-level probability, elementary number/group theory, proofs by contradiction, and hardness reductions (in complexity theory) is highly recommended. CS 6150 is a prerequisite.
  • Class Number: 19144
  • Instructor: SONI, PRATIK
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 19

Cryptography is used at scale to secure information at rest or in transit and, recently, to secure computations. This course is a graduate-level course on the foundations of modern cryptography. It is also open to advanced undergraduates. We will cover basic cryptographic tools, their applications for building advanced systems, and a formal mathematical framework to argue about security. The course will have two parts: In Part 1, we will cover basic tools like pseudorandom functions, pseudorandom generators, digital signatures, encryption schemes, hash functions, and their instantiations in practice. In Part 2, we will briefly cover advanced topics, including zero-knowledge proofs, multi-party computation, fully-homomorphic encryption, and the role of cryptography in blockchains. The course will not assume any prior background in cryptography. However, basic mathematical maturity is expected; exposure to undergraduate-level probability, elementary number/group theory, proofs by contradiction, and hardness reductions (in complexity theory) is highly recommended. CS 6150 is a prerequisite.

Researchers in a variety of fields collect measurements, observe data, perform simulations and use a wide range of techniques to describe, classify, analyze and draw conclusions from these data. Selecting appropriate techniques and understanding their advantages and disadvantages is an important component of data analysis. In this class, we will survey several decomposition techniques for data and computational science applications including: Principle component analysis, independent component analysis, singular value decomposition, non-negative matrix factorization, low-rank methods, and probabilistic factorization methods.
  • Class Number: 19418
  • Instructor: JOHNSON, CHRISTOPHER
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 10

Researchers in a variety of fields collect measurements, observe data, perform simulations and use a wide range of techniques to describe, classify, analyze and draw conclusions from these data. Selecting appropriate techniques and understanding their advantages and disadvantages is an important component of data analysis. In this class, we will survey several decomposition techniques for data and computational science applications including: Principle component analysis, independent component analysis, singular value decomposition, non-negative matrix factorization, low-rank methods, and probabilistic factorization methods.

Cyber-physical System and Internet of Things Security. The widespread deployment of Cyber-physical Systems (CPS) and Internet of Things (IoT) systems has revolutionized the way we interact with the physical world, from smart homes to self-driving cars. However, these systems are also susceptible to cyber attacks, posing a threat to the safety, security, and privacy of users across safety-critical applications. This course provides an introduction to the fundamentals of IoT-CPS security, privacy, and safety, covering real-world attacks and defenses, embedded systems security, cryptography, safety verification, sensors and perception security, and more. Knowledge of Software Practice and C++ (CS 3505) is required. Knowledge of Computer Security (CS 4440) is strongly recommended.
  • Class Number: 19552
  • Instructor: GARCIA, LUIS
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 18

Cyber-physical System and Internet of Things Security. The widespread deployment of Cyber-physical Systems (CPS) and Internet of Things (IoT) systems has revolutionized the way we interact with the physical world, from smart homes to self-driving cars. However, these systems are also susceptible to cyber attacks, posing a threat to the safety, security, and privacy of users across safety-critical applications. This course provides an introduction to the fundamentals of IoT-CPS security, privacy, and safety, covering real-world attacks and defenses, embedded systems security, cryptography, safety verification, sensors and perception security, and more. Knowledge of Software Practice and C++ (CS 3505) is required. Knowledge of Computer Security (CS 4440) is strongly recommended.
  • Class Number: 18608
  • Instructor: KOGAN, MARINA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -1

Local Explanations for Deep Learning Models: Today it is not unusual to ask chatbots such as ChatGPT to answer something as well as explain the answer in plain English. In this course, we will review five types of methods for explaining individual predictions of deep learning models for NLP/computer vision tasks that preceded this remarkable achievement. We will then revisit evaluations of these methods and focus on how to develop and evaluate explainability methods that best accomplish a concrete, real-world utility. For more information read FAQ: https://utah-explainability.github.io/#faq-before-enrolling.
  • Class Number: 16965
  • Instructor: MARASOVIC, ANA
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 18

Local Explanations for Deep Learning Models: Today it is not unusual to ask chatbots such as ChatGPT to answer something as well as explain the answer in plain English. In this course, we will review five types of methods for explaining individual predictions of deep learning models for NLP/computer vision tasks that preceded this remarkable achievement. We will then revisit evaluations of these methods and focus on how to develop and evaluate explainability methods that best accomplish a concrete, real-world utility. For more information read FAQ: https://utah-explainability.github.io/#faq-before-enrolling.

CS 6967 - 001 Security Operations

CS 6967 - 001 Security Operations

  • Class Number: 15333
  • Instructor: XU, JUN
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 3

CS 6968 - 001 Bus Asp of Sec & Privacy


Business Aspects of Security and Privacy. Successful security programs utilize risk management techniques to make effective security control decisions. Regulations, such as GDPR, force companies into adopting security best practices to protect sensitive data. This course covers many compliance and risk management topics, which are necessary to understand in order to be an effective cybersecurity leader and build an effective cybersecurity program.

CS 6968 - 001 Bus Asp of Sec & Privacy

  • Class Number: 15332
  • Instructor: MOHR, HENNER
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

Business Aspects of Security and Privacy. Successful security programs utilize risk management techniques to make effective security control decisions. Regulations, such as GDPR, force companies into adopting security best practices to protect sensitive data. This course covers many compliance and risk management topics, which are necessary to understand in order to be an effective cybersecurity leader and build an effective cybersecurity program.

CS 7320 - 001 Sys Indentif. Robotics

CS 7320 - 001 Sys Indentif. Robotics

  • Class Number: 14690
  • Instructor: MINOR, MARK ANDREW
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 7

Please contact the graduate advisors to obtain a permission code.
  • Class Number: 4588
  • Instructor: BALASUBRAMONIAN, RAJEEV
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 7

Please contact the graduate advisors to obtain a permission code.

CS 7932 - 001 Human-Centered Computing

CS 7932 - 001 Human-Centered Computing

  • Class Number: 17179
  • Instructor: ISAACS, KATE E
  • Component: Seminar
  • Type: Interactive Video Conferencing
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 12
  • Class Number: 15885
  • Instructor: YANG, YIN
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 8
  • Class Number: 4871
  • Instructor: EIDE, ERIC N
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 17

CS 7936 - 001 Research Chlng in Computing

CS 7936 - 001 Research Chlng in Computing

  • Class Number: 20856
  • Instructor: SADAYAPPAN, SADAY
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 36

CS 7937 - 002 Arch/VLSI


Meets in MEB 2170.

CS 7937 - 002 Arch/VLSI

  • Class Number: 14763
  • Instructor: BALASUBRAMONIAN, RAJEEV
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

Meets in MEB 2170.

CS 7938 - 001 Image Analysis Seminar

CS 7938 - 001 Image Analysis Seminar

  • Class Number: 6092
  • Instructor: WHITAKER, ROSS
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 24

CS 7939 - 001 Robotics

CS 7939 - 001 Robotics

  • Class Number: 5087
  • Instructor: DREW, DANIEL S
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

CS 7941 - 001 Data Science Seminar

CS 7941 - 001 Data Science Seminar

  • Class Number: 8377
  • Instructor: BHASKARA, ADITYA
  • Instructor: PANDEY, PRASHANT
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 23

CS 7942 - 001 Visualization Seminar


This class meets in WEB 3780.

CS 7942 - 001 Visualization Seminar

  • Class Number: 14907
  • Instructor: JOHNSON, CHRISTOPHER
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

This class meets in WEB 3780.