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: JOHNSON, DAVID
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 68

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

CS 1400 - 003 Intro Comp Programming

CS 1400 - 003 Intro Comp Programming

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

CS 1400 - 004 Intro Comp Programming

CS 1400 - 004 Intro Comp Programming

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

CS 1400 - 005 Intro Comp Programming

CS 1400 - 005 Intro Comp Programming

  • Class Number: 12572
  • Instructor: JOHNSON, DAVID
  • 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: 12979
  • Instructor: JOHNSON, DAVID
  • 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: 12980
  • Instructor: JOHNSON, DAVID
  • 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: BROWN, NOELLE
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 77

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: 14172
  • Instructor: BROWN, NOELLE
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 1400 - 023 Intro Comp Programming

CS 1400 - 023 Intro Comp Programming

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

CS 1400 - 024 Intro Comp Programming

CS 1400 - 024 Intro Comp Programming

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

CS 1400 - 025 Intro Comp Programming

CS 1400 - 025 Intro Comp Programming

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

CS 1400 - 026 Intro Comp Programming

CS 1400 - 026 Intro Comp Programming

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

CS 1400 - 027 Intro Comp Programming

CS 1400 - 027 Intro Comp Programming

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

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

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: 13938
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 8

CS 1410 - 004 Object-Oriented Prog

CS 1410 - 004 Object-Oriented Prog

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

CS 1410 - 005 Object-Oriented Prog

CS 1410 - 005 Object-Oriented Prog

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

CS 1410 - 006 Object-Oriented Prog

CS 1410 - 006 Object-Oriented Prog

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

CS 1410 - 007 Object-Oriented Prog

CS 1410 - 007 Object-Oriented Prog

  • Class Number: 13942
  • Instructor: PARKER, ERIN
  • 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: HEISLER, ERIC
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • 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.

CS 1420 - 002 Accel Obj-Orient Prog

CS 1420 - 002 Accel Obj-Orient Prog

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

CS 1420 - 003 Accel Obj-Orient Prog

CS 1420 - 003 Accel Obj-Orient Prog

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

CS 1420 - 004 Accel Obj-Orient Prog

CS 1420 - 004 Accel Obj-Orient Prog

  • Class Number: 13544
  • Instructor: HEISLER, ERIC
  • 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: 13545
  • Instructor: HEISLER, ERIC
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 2

CS 1420 - 006 Accel Obj-Orient Prog

CS 1420 - 006 Accel Obj-Orient Prog

  • Class Number: 13546
  • Instructor: HEISLER, ERIC
  • 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: 13547
  • Instructor: HEISLER, ERIC
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -1
  • Class Number:
  • Instructor: HEISLER, ERIC
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 40

CS 1420 - 021 Accel Obj-Orient Prog

CS 1420 - 021 Accel Obj-Orient Prog

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

CS 1420 - 022 Accel Obj-Orient Prog

CS 1420 - 022 Accel Obj-Orient Prog

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

CS 1420 - 023 Accel Obj-Orient Prog

CS 1420 - 023 Accel Obj-Orient Prog

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

CS 1420 - 024 Accel Obj-Orient Prog

CS 1420 - 024 Accel Obj-Orient Prog

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

CS 1420 - 025 Accel Obj-Orient Prog

CS 1420 - 025 Accel Obj-Orient Prog

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

CS 1960 - 002 Success in CS

CS 1960 - 002 Success in CS

  • Class Number: 16696
  • Instructor: LUCY, ERIN
  • Instructor: PHILLIPS, ALYSSA
  • Component: Lecture
  • Type: In Person
  • Units: 1.0
  • Wait List: No
  • Seats Available: 0

CS 1960 - 004 Success in CS

CS 1960 - 004 Success in CS

  • Class Number: 16828
  • Instructor: LANE, JORDAN
  • Instructor: RIGBY, VICKI
  • Component: Lecture
  • Type: In Person
  • Units: 1.0
  • Wait List: No
  • Seats Available: 3

CS 1960 - 005 Success in CS

CS 1960 - 005 Success in CS

  • Class Number: 16829
  • Instructor: PHILLIPS, ALYSSA
  • Instructor: VERSLUIS, TRACY
  • Component: Lecture
  • Type: In Person
  • Units: 1.0
  • Wait List: No
  • Seats Available: 1

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: WOOD, AARON
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 2

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: 12573
  • Instructor: WOOD, AARON
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 2

CS 2100 - 003 Discrete Structures

CS 2100 - 003 Discrete Structures

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

CS 2100 - 004 Discrete Structures

CS 2100 - 004 Discrete Structures

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

CS 2100 - 020 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 - 020 Discrete Structures

  • Class Number:
  • Instructor: YANG, YIN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • 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.

CS 2100 - 021 Discrete Structures

CS 2100 - 021 Discrete Structures

  • Class Number: 19035
  • Instructor: YANG, YIN
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 2100 - 022 Discrete Structures

CS 2100 - 022 Discrete Structures

  • Class Number: 19036
  • Instructor: YANG, YIN
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 2100 - 023 Discrete Structures

CS 2100 - 023 Discrete Structures

  • Class Number: 19037
  • Instructor: YANG, YIN
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

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

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: 12228
  • Instructor: WOOD, AARON
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 3

CS 2420 - 003 Intro Alg & Data Struct

CS 2420 - 003 Intro Alg & Data Struct

  • Class Number: 12229
  • 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: 12230
  • Instructor: WOOD, AARON
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 2420 - 005 Intro Alg & Data Struct

CS 2420 - 005 Intro Alg & Data Struct

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

CS 2420 - 006 Intro Alg & Data Struct

CS 2420 - 006 Intro Alg & Data Struct

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

CS 2420 - 007 Intro Alg & Data Struct

CS 2420 - 007 Intro Alg & Data Struct

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

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: 15743
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

CS 2420 - 023 Intro Alg & Data Struct

CS 2420 - 023 Intro Alg & Data Struct

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

CS 2420 - 024 Intro Alg & Data Struct

CS 2420 - 024 Intro Alg & Data Struct

  • Class Number: 15752
  • 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: 15753
  • Instructor: PARKER, ERIN
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 6

CS 2420 - 026 Intro Alg & Data Struct

CS 2420 - 026 Intro Alg & Data Struct

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

CS 2420 - 027 Intro Alg & Data Struct

CS 2420 - 027 Intro Alg & Data Struct

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

CS 3020 - 001 Research Forum

CS 3020 - 001 Research Forum

  • Class Number: 6862
  • Instructor: KABIR, KAZI SINTHIA
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 16
  • Class Number: 19718
  • Instructor: PHILLIPS, BEI WANG
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13
  • Class Number: 4239
  • Instructor: GOPALAKRISHNAN, GANESH
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 64

CS 3130 - 001 Eng Prob Stats

CS 3130 - 001 Eng Prob Stats

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

CS 3130 - 002 Eng Prob Stats

CS 3130 - 002 Eng Prob Stats

  • Class Number: 13130
  • Instructor: CHEN, RONG-RONG
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 3190 - 001 Found. of Data Analysis

CS 3190 - 001 Found. of Data Analysis

  • Class Number: 10267
  • Instructor: REZIG, EL KINDI
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 2
  • Class Number: 12575
  • Instructor: PATIL, SAMEER
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 5

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

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: 12233
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

CS 3500 - 003 Software Practice

CS 3500 - 003 Software Practice

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

CS 3500 - 004 Software Practice

CS 3500 - 004 Software Practice

  • Class Number: 12235
  • Instructor: KOPTA, DANIEL
  • 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: 12985
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

CS 3500 - 006 Software Practice

CS 3500 - 006 Software Practice

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

CS 3500 - 007 Software Practice

CS 3500 - 007 Software Practice

  • Class Number: 12987
  • Instructor: KOPTA, DANIEL
  • 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: 12988
  • Instructor: KOPTA, DANIEL
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 0

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:
  • Instructor: DE ST GERMAIN, H. James 'Jim'
  • Component: Lecture
  • Type: In Person
  • Units: 4.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.

CS 3500 - 022 Software Practice

CS 3500 - 022 Software Practice

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

CS 3500 - 023 Software Practice

CS 3500 - 023 Software Practice

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

CS 3500 - 024 Software Practice

CS 3500 - 024 Software Practice

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

CS 3500 - 025 Software Practice

CS 3500 - 025 Software Practice

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

CS 3500 - 026 Software Practice

CS 3500 - 026 Software Practice

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

CS 3500 - 027 Software Practice

CS 3500 - 027 Software Practice

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

CS 3500 - 028 Software Practice

CS 3500 - 028 Software Practice

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

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

CS 3505 - 003 Software Practice II

CS 3505 - 003 Software Practice II

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

CS 3505 - 004 Software Practice II

CS 3505 - 004 Software Practice II

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

CS 3505 - 005 Software Practice II

CS 3505 - 005 Software Practice II

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

CS 3505 - 006 Software Practice II

CS 3505 - 006 Software Practice II

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

CS 3505 - 007 Software Practice II

CS 3505 - 007 Software Practice II

  • Class Number: 13001
  • 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: 13002
  • Instructor: JOHNSON, DAVID
  • Component: Discussion
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1
  • Class Number: 15750
  • Instructor: FLATT, Matthew
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 19

CS 3540 - 001 Design Human Center Sys

CS 3540 - 001 Design Human Center Sys

  • Class Number: 9024
  • Instructor: PANDEY, VINEET
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 1
  • Class Number: 15740
  • Instructor: PANCHEKHA, PAVEL
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 3

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: No
  • Fees: $105.88
  • Seats Available: 5

CS 3700 - 002 Digital System Design

CS 3700 - 002 Digital System Design

  • Class Number: 11818
  • Instructor: Fayazi, Morteza
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $105.88
  • Seats Available: 2

CS 3700 - 004 Digital System Design

CS 3700 - 004 Digital System Design

  • Class Number: 13245
  • Instructor: Fayazi, Morteza
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $105.88
  • Seats Available: 1

CS 3700 - 005 Digital System Design

CS 3700 - 005 Digital System Design

  • Class Number: 13246
  • Instructor: Fayazi, Morteza
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Fees: $105.88
  • Seats Available: 1

CS 3710 - 001 Computer Design Lab


Laboratories scheduled during first week of classes.

CS 3710 - 001 Computer Design Lab

  • Class Number: 3283
  • Instructor: BRUNVAND, ERIK
  • Component: Laboratory
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $60.00
  • Seats Available: 7

Laboratories scheduled during first week of classes.

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: 12236
  • Instructor: KOPTA, DANIEL
  • Component: Seminar
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $56.45
  • Seats Available: 26

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 3960 - 001 Effective Comm in Computing


Effective Communication in Writing will count for your CW requirement and not a CS Elective. Digital technology has revolutionized the way we share information, but the fundamentals of clear, effective, and compelling communication remain the same. Whether writing a design proposal or a social media post, or speaking to a potential investor or a coworker, professionals in the computing field need to accurately convey complex information to help their audiences make better decisions. This course is designed to develop students’ written, visual, and oral communication skills, overall media literacy, and their ability to identify the specific information needs of those they are communicating with. Through in-class writing exercises and discussions, as well as short take-home assignments, the course will build to a group-based final project that will help students prepare for their senior capstone.

CS 3960 - 001 Effective Comm in Computing

  • Class Number: 19915
  • Instructor: LERNER, EVAN
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: -4

Effective Communication in Writing will count for your CW requirement and not a CS Elective. Digital technology has revolutionized the way we share information, but the fundamentals of clear, effective, and compelling communication remain the same. Whether writing a design proposal or a social media post, or speaking to a potential investor or a coworker, professionals in the computing field need to accurately convey complex information to help their audiences make better decisions. This course is designed to develop students’ written, visual, and oral communication skills, overall media literacy, and their ability to identify the specific information needs of those they are communicating with. Through in-class writing exercises and discussions, as well as short take-home assignments, the course will build to a group-based final project that will help students prepare for their senior capstone.

CS 3991 - 001 CE Junior Seminar

CS 3991 - 001 CE Junior Seminar

  • Class Number: 4087
  • Instructor: STEVENS, KENNETH S
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 31

CS 4150 - 001 Algorithms

CS 4150 - 001 Algorithms

  • Class Number: 8898
  • Instructor: BHASKARA, ADITYA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20

CS 4230 - 001 Parallel Programming

CS 4230 - 001 Parallel Programming

  • Class Number: 10264
  • Instructor: SADAYAPPAN, SADAY
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 40

CS 4300 - 001 Artificial Intelligence

CS 4300 - 001 Artificial Intelligence

  • Class Number: 13948
  • Instructor: HERMANS, Tucker
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $41.18
  • 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. 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
  • Class Number:
  • Instructor: ZHANG, MU
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Fees: $41.18
  • Seats Available: 10

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: 9025
  • Instructor: ZHANG, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 0

CS 4400 - 003 Computer Systems

CS 4400 - 003 Computer Systems

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

CS 4400 - 004 Computer Systems

CS 4400 - 004 Computer Systems

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

CS 4400 - 005 Computer Systems

CS 4400 - 005 Computer Systems

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

CS 4400 - 007 Computer Systems

CS 4400 - 007 Computer Systems

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

CS 4400 - 008 Computer Systems

CS 4400 - 008 Computer Systems

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

CS 4400 - 009 Computer Systems

CS 4400 - 009 Computer Systems

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

CS 4400 - 010 Computer Systems

CS 4400 - 010 Computer Systems

  • Class Number: 20451
  • Instructor: ZHANG, MU
  • Component: Laboratory
  • Type: In Person
  • Units: --
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1
  • Class Number: 15730
  • Instructor: NAGY, STEFAN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 3

CS 4500 - 001 Senior Capstone Project

CS 4500 - 001 Senior Capstone Project

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

CS 4530 - 001 Mobile App Programming

CS 4530 - 001 Mobile App Programming

  • Class Number: 19045
  • Instructor: SHANKAR, VARUN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 35
  • Class Number: 7964
  • Instructor: YUKSEL, CEM
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 19
  • Class Number: 19044
  • Instructor: Elhabian, Shireen
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

CS 4710 - 001 Comptr Eng Sr Project

CS 4710 - 001 Comptr Eng Sr Project

  • Class Number: 3578
  • Instructor: STEVENS, KENNETH S
  • Component: Special Projects
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 23

'C-' or better in CS 3190 Found. of Data Analysis AND CS 3500 Software Practice. Full Major status in Computer Science OR Software Development OR Data Science. Machine learning (ML) has been widely integrated into various real-world systems, such as facial recognition, object detection, and autonomous driving. However, the security and safety of these ML-based systems are still of great concern, as adversaries can easily manipulate their behaviors. This course will provide an introduction to the intersection of two ubiquitous concepts: security and machine learning. It will cover key learning algorithms and techniques, the security problems of modern ML models (i.e., adversarial attacks and backdoor threats), practical defense solutions against various attacks, and more.
  • Class Number: 21198
  • Instructor: TAO, GUANHONG
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 8

'C-' or better in CS 3190 Found. of Data Analysis AND CS 3500 Software Practice. Full Major status in Computer Science OR Software Development OR Data Science. Machine learning (ML) has been widely integrated into various real-world systems, such as facial recognition, object detection, and autonomous driving. However, the security and safety of these ML-based systems are still of great concern, as adversaries can easily manipulate their behaviors. This course will provide an introduction to the intersection of two ubiquitous concepts: security and machine learning. It will cover key learning algorithms and techniques, the security problems of modern ML models (i.e., adversarial attacks and backdoor threats), practical defense solutions against various attacks, and more.

CS 4991 - 001 CE Senior Thesis I

CS 4991 - 001 CE Senior Thesis I

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

CS 4999 - 005 Honors Thesis/Project

CS 4999 - 005 Honors Thesis/Project

  • Class Number: 21616
  • Instructor: HERMANS, Tucker
  • Component: Honors Thesis Project
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

CS 5150 - 001 Advanced Algorithms

CS 5150 - 001 Advanced Algorithms

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

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: 16434
  • Instructor: AL HALAH, ZIAD
  • Component: Lecture
  • Type: Remote Real-Time
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 26

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: 19063
  • Instructor: MARASOVIC, ANA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 24

CS 5350 - 001 Machine Learning

CS 5350 - 001 Machine Learning

  • Class Number: 8322
  • Instructor: Zhe, Shandian
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 9
  • Class Number: 13945
  • Instructor: FARIHA, ANNA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13
  • Class Number: 15869
  • Instructor: PATIL, SAMEER
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 3

CS 5630 - 001 Vis for Data Science

CS 5630 - 001 Vis for Data Science

  • Class Number: 13947
  • Instructor: ROSEN, PAUL
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 15

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: 14470
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $66.71
  • Seats Available: 0

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

This course is a graduate-level introductory course on modern cryptography and its applications. The course will be broad and is also open to advanced undergraduates. We will introduce several basic and advanced cryptographic tools and see their applications across a variety of CS disciplines, including but not limited to blockchains, digital-media provenance (and preventing deepfakes), verifiable delegation of computations, memory integrity checking, and game theory. By the end of this course, you will understand the syntax of several cryptographic tools, how they are constructed, develop the necessary formalism to argue about their security, and become familiar with their practical applications. The covered tools will include block ciphers, symmetric and asymmetric encryption schemes, digital signatures, zero-knowledge proofs, and homomorphic encryption. The course will not assume any prior background in cryptography. However, basic mathematical maturity is expected; exposure to undergraduate-level probability is strongly recommended, and knowledge of elementary number-theory and group-theory is preferred.
  • Class Number: 16352
  • Instructor: SONI, PRATIK
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 6

This course is a graduate-level introductory course on modern cryptography and its applications. The course will be broad and is also open to advanced undergraduates. We will introduce several basic and advanced cryptographic tools and see their applications across a variety of CS disciplines, including but not limited to blockchains, digital-media provenance (and preventing deepfakes), verifiable delegation of computations, memory integrity checking, and game theory. By the end of this course, you will understand the syntax of several cryptographic tools, how they are constructed, develop the necessary formalism to argue about their security, and become familiar with their practical applications. The covered tools will include block ciphers, symmetric and asymmetric encryption schemes, digital signatures, zero-knowledge proofs, and homomorphic encryption. The course will not assume any prior background in cryptography. However, basic mathematical maturity is expected; exposure to undergraduate-level probability is strongly recommended, and knowledge of elementary number-theory and group-theory is preferred.

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: 16632
  • Instructor: GARCIA, LUIS
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 17

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.

Prerequisites: CS 3190 and CS 4150. In modern data analysis, it is common to deal with data represented as high-dimensional vectors. This course will cover the curse of dimensionality, as well as various methods to partially overcome it, including dimensionality reduction, margin-based approaches, locality sensitive hashing, and no-dimensional coresets. The course will focus on methods with mathematically rigorous proofs, including analysis of correctness and efficiency. But it will stick to methods that work in practice and show how to use these approaches on real data.
  • Class Number: 19472
  • Instructor: PHILLIPS, JEFF
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

Prerequisites: CS 3190 and CS 4150. In modern data analysis, it is common to deal with data represented as high-dimensional vectors. This course will cover the curse of dimensionality, as well as various methods to partially overcome it, including dimensionality reduction, margin-based approaches, locality sensitive hashing, and no-dimensional coresets. The course will focus on methods with mathematically rigorous proofs, including analysis of correctness and efficiency. But it will stick to methods that work in practice and show how to use these approaches on real data.

CS 6010 - 001 MSD: Intro Software Dev


Also meets in MEB 3255 11am-12pm

CS 6010 - 001 MSD: Intro Software Dev

  • Class Number: 9927
  • Instructor: ALSALEEM, AHMAD
  • Instructor: JONES, BEN
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 26

Also meets in MEB 3255 11am-12pm

CS 6011 - 001 MSD: Comp Programming

CS 6011 - 001 MSD: Comp Programming

CS 6012 - 001 MSD: Data Struct Algo

CS 6012 - 001 MSD: Data Struct Algo

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

CS 6014 - 001 MSD: Netwrks & Security

CS 6014 - 001 MSD: Netwrks & Security

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

CS 6015 - 001 MSD: Software Engineer

CS 6015 - 001 MSD: Software Engineer

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

CS 6016 - 001 MSD: Database Sys & App

CS 6016 - 001 MSD: Database Sys & App

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

CS 6017 - 001 MSD: Data Analytics&Vis

CS 6017 - 001 MSD: Data Analytics&Vis

  • Class Number: 14904
  • Instructor: DE ST GERMAIN, JOHN
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 10
  • Class Number: 10606
  • Instructor: MAKAREM, NABIL
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Wait List: No
  • Seats Available: 30

CS 6019 - 001 MSD Project

CS 6019 - 001 MSD Project

CS 6150 - 001 Graduate Algorithms

CS 6150 - 001 Graduate Algorithms

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

CS 6160 - 001 Computational Geometry

CS 6160 - 001 Computational Geometry

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

CS 6210 - 002 Sci. and Data Comp. I

CS 6210 - 002 Sci. and Data Comp. I

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

CS 6230 - 001 Parallel Computing HPC

CS 6230 - 001 Parallel Computing HPC

  • Class Number: 11816
  • Instructor: SADAYAPPAN, SADAY
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 24

CS 6300 - 001 Artificial Intelligence

CS 6300 - 001 Artificial Intelligence

  • Class Number: 19065
  • Instructor: HERMANS, Tucker
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $41.18
  • Seats Available: 59

CS 6310 - 001 Robotics I: Mechanics

CS 6310 - 001 Robotics I: Mechanics

  • Class Number: 1377
  • Instructor: HOLLERBACH, JOHN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 36

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: 16435
  • Instructor: AL HALAH, ZIAD
  • Component: Lecture
  • Type: Remote Real-Time
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

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: 19064
  • Instructor: MARASOVIC, ANA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 13

CS 6350 - 001 Machine Learning

CS 6350 - 001 Machine Learning

  • Class Number: 8323
  • Instructor: Zhe, Shandian
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 29
  • Class Number: 13946
  • Instructor: FARIHA, ANNA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: Yes
  • Seats Available: 18
  • Class Number: 13933
  • Instructor: STUTSMAN, Ryan
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: Yes
  • Seats Available: -1

CS 6465 - 001 Adv OS Implementation

CS 6465 - 001 Adv OS Implementation

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

CS 6475 - 001 Advanced Compilers

CS 6475 - 001 Advanced Compilers

  • Class Number: 19043
  • Instructor: REGEHR, JOHN
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 20
  • Class Number: 15751
  • Instructor: VAN DER MERWE, Jacobus
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 33
  • Class Number: 15871
  • Instructor: PATIL, SAMEER
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 17
  • Class Number: 15732
  • Instructor: FLATT, Matthew
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 15

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: 14698
  • Instructor: PANDEY, PRASHANT
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 39

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: 12577
  • Instructor: ISAACS, KATE E
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 24

CS 6630 - 001 Vis for Data Science

CS 6630 - 001 Vis for Data Science

  • Class Number: 13949
  • Instructor: ROSEN, PAUL
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 48

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: 5971
  • Instructor: TASDIZEN, TOLGA
  • Component: Lecture
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $36.71
  • Seats Available: 3

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: 14469
  • Instructor: GAILLARDON, PIERRE-EMMANUEL J
  • Component: Lecture
  • Type: In Person
  • Units: 4.0
  • Requisites: Yes
  • Wait List: No
  • Fees: $66.71
  • Seats Available: 13

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 6800 - 001 MSD Capstone Internship

CS 6800 - 001 MSD Capstone Internship

CS 6810 - 001 Computer Architecture

CS 6810 - 001 Computer Architecture

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

Machine learning (ML) has been widely integrated into various real-world systems, such as facial recognition, object detection, and autonomous driving. However, the security and safety of these ML-based systems are still of great concern, as adversaries can easily manipulate their behaviors. This course will provide an introduction to the intersection of two ubiquitous concepts: security and machine learning. It will cover key learning algorithms and techniques, the security problems of modern ML models (i.e., adversarial attacks and backdoor threats), practical defense solutions against various attacks, and more.
  • Class Number: 16885
  • Instructor: TAO, GUANHONG
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Wait List: No
  • Seats Available: 2

Machine learning (ML) has been widely integrated into various real-world systems, such as facial recognition, object detection, and autonomous driving. However, the security and safety of these ML-based systems are still of great concern, as adversaries can easily manipulate their behaviors. This course will provide an introduction to the intersection of two ubiquitous concepts: security and machine learning. It will cover key learning algorithms and techniques, the security problems of modern ML models (i.e., adversarial attacks and backdoor threats), practical defense solutions against various attacks, and more.

This course is a graduate-level introductory course on modern cryptography and its applications. The course will be broad and is also open to advanced undergraduates. We will introduce several basic and advanced cryptographic tools and see their applications across a variety of CS disciplines, including but not limited to blockchains, digital-media provenance (and preventing deepfakes), verifiable delegation of computations, memory integrity checking, and game theory. By the end of this course, you will understand the syntax of several cryptographic tools, how they are constructed, develop the necessary formalism to argue about their security, and become familiar with their practical applications. The covered tools will include block ciphers, symmetric and asymmetric encryption schemes, digital signatures, zero-knowledge proofs, and homomorphic encryption. The course will not assume any prior background in cryptography. However, basic mathematical maturity is expected; exposure to undergraduate-level probability is strongly recommended, and knowledge of elementary number-theory and group-theory is preferred.
  • Class Number: 16357
  • Instructor: SONI, PRATIK
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: Yes
  • Seats Available: 7

This course is a graduate-level introductory course on modern cryptography and its applications. The course will be broad and is also open to advanced undergraduates. We will introduce several basic and advanced cryptographic tools and see their applications across a variety of CS disciplines, including but not limited to blockchains, digital-media provenance (and preventing deepfakes), verifiable delegation of computations, memory integrity checking, and game theory. By the end of this course, you will understand the syntax of several cryptographic tools, how they are constructed, develop the necessary formalism to argue about their security, and become familiar with their practical applications. The covered tools will include block ciphers, symmetric and asymmetric encryption schemes, digital signatures, zero-knowledge proofs, and homomorphic encryption. The course will not assume any prior background in cryptography. However, basic mathematical maturity is expected; exposure to undergraduate-level probability is strongly recommended, and knowledge of elementary number-theory and group-theory is preferred.

The solution of an inverse problem entails determining unknown causes based on observation of their effects. Inverse problems can be found in virtually all engineering and scientific sub-disciplines from applications in geophysics to mechanical engineering to medicine. The latest medical imaging devices are essentially inverse problem solvers; they reconstruct two- or three-dimensional objects from projections. After an introduction and overview of inverse problems, we will concentrate on computational algorithms for solving inverse problems.
  • Class Number: 16537
  • Instructor: JOHNSON, CHRISTOPHER
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 11

The solution of an inverse problem entails determining unknown causes based on observation of their effects. Inverse problems can be found in virtually all engineering and scientific sub-disciplines from applications in geophysics to mechanical engineering to medicine. The latest medical imaging devices are essentially inverse problem solvers; they reconstruct two- or three-dimensional objects from projections. After an introduction and overview of inverse problems, we will concentrate on computational algorithms for solving inverse problems.

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: 16638
  • Instructor: GARCIA, LUIS
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 25

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: 19480
  • Instructor: SRIKUMAR, Vivek
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 1

In modern data analysis, it is common to deal with data represented as high-dimensional vectors. This course will cover the curse of dimensionality, as well as various methods to partially overcome it, including dimensionality reduction, margin-based approaches, locality sensitive hashing, and no-dimensional coresets. The course will focus on methods with mathematically rigorous proofs, including analysis of correctness and efficiency. But it will stick to methods that work in practice and show how to use these approaches on real data.
  • Class Number: 19473
  • Instructor: PHILLIPS, JEFF
  • Component: Special Topics
  • Type: In Person
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 11

In modern data analysis, it is common to deal with data represented as high-dimensional vectors. This course will cover the curse of dimensionality, as well as various methods to partially overcome it, including dimensionality reduction, margin-based approaches, locality sensitive hashing, and no-dimensional coresets. The course will focus on methods with mathematically rigorous proofs, including analysis of correctness and efficiency. But it will stick to methods that work in practice and show how to use these approaches on real data.

CS 6967 - 001 Security Operations

CS 6967 - 001 Security Operations

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

CS 6968 - 090 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 - 090 Bus Asp of Sec & Privacy

  • Class Number: 19994
  • Instructor: MOHR, HENNER
  • Component: Special Topics
  • Type: Online
  • Units: 3.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 4

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.

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

Please contact the graduate advisors to obtain a permission code.
  • Class Number: 19858
  • Instructor: MARASOVIC, ANA
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 23
  • Class Number: 15076
  • Instructor: ISAACS, KATE E
  • Component: Seminar
  • Type: Remote Real-Time
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 17
  • Class Number: 14298
  • Instructor: YUKSEL, CEM
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 8
  • Class Number: 4710
  • Instructor: EIDE, ERIC N
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 19

CS 7936 - 001 Research Chlng in Computing

CS 7936 - 001 Research Chlng in Computing

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

CS 7937 - 002 Arch/VLSI


Meets in MEB 2170.

CS 7937 - 002 Arch/VLSI

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

Meets in MEB 2170.
  • Class Number: 5839
  • Instructor: Elhabian, Shireen
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 18

CS 7939 - 001 Robotics

CS 7939 - 001 Robotics

  • Class Number: 4902
  • Instructor: LENZI, TOMMASO
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 12

CS 7941 - 002 Data Science Seminar

CS 7941 - 002 Data Science Seminar

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

CS 7942 - 001 Visualization Seminar


This class meets in WEB 3780.

CS 7942 - 001 Visualization Seminar

  • Class Number: 13660
  • Instructor: LEX, ALEXANDER
  • Component: Seminar
  • Type: In Person
  • Units: 1.0
  • Requisites: Yes
  • Wait List: No
  • Seats Available: 18

This class meets in WEB 3780.