Computer Science Undergraduate Handbook (2019-2020) - Tracks
University of Utah, School of Computing

Tracks - Related Courses in Computer Science

The computer science degree is comprised of required courses and electives. The overall degree provides a broad understanding of the topics and theory of computer science. Students who wish to pursue a sub-area of CS more deeply are encouraged to take several classes from a "track". Completion of the required number of courses entitles a student to a track certificate upon graduation.

Software Development (Choose 5)

  • CS 3470 - Scripting Language and Implementation Design
  • CS 3540 - Human/Computer Interaction
  • CS 4230 - Parallel Programming
  • CS 4470 - Compiler Principles and Techniques
  • CS 4480 - Computer Networks
  • CS 4540 - Web Software Architecture
  • CS 5140 - Data Mining
  • CS 5460 - Operating Systems
  • CS 5530 - Database Systems
  • CS 5785 - Advanced Embedded Software

Web/Mobile Development (Choose 4)

  • CS 3470 - Scripting Language and Implementation Design
  • CS 3540 - Human/Computer Interaction
  • CS 4480 - Computer Networks
  • CS 4530 - Mobile Application Programming
  • CS 4540 - Web Software Architecture
  • CS 5530 - Database Systems

Computer Systems (Choose 4)

  • CS 4230 - Parallel Programming
  • CS 4440 - Introduction To Computer Security
  • CS 4470 - Compiler Principles and Techniques
  • CS 4480 - Computer Networks
  • CS 5460 - Operating Systems
  • CS 5490 - Network Security
  • CS 5530 - Database Systems

Programming Languages (Choose 3)

  • CS 3470 - Scripting Language and Implementation Design
  • CS 3520 - Programming Language Concepts
  • CS 4470 - Compiler Principles and Techniques
  • CS 5100 - Theory of Computation

Robotics (Choose 3)

  • CS 4300 - Artificial Intelligence
  • CS 5310 - Robotics
  • CS 5350 - Machine Learning
  • CS 5320 - Computer Vision
  • CS 6330 - Introduction to Robot Control
  • CS 6370 - Motion Planning

Artificial Intelligence (Choose 4)

  • CS 4300 - Artificial Intelligence
  • CS 4640 - Image Processing Basics
  • CS 5100 - Theory of Computation
  • CS 5130 - Computational Statistics
  • CS 5140 - Data Mining
  • CS 5320 - Computer Vision
  • CS 5340 - Natural Language Processing
  • CS 5350 - Machine Learning

Information (Choose 4)

  • CS 4300 - Artificial Intelligence
  • CS 5140 - Data Mining
  • CS 5150 - Advanced Algorithms
  • CS 5340 - Natural Language Processing
  • CS 5350 - Machine Learning
  • CS 5530 - Database Systems
  • CS 5630 - Visualization for Data Science

Theory (Choose 4)

  • CS 3100 - Models of Computation
  • CS 5100 - Theory of Computation
  • CS 5130 - Computational Statistics
  • CS 5140 - Data Mining
  • CS 5150 - Advanced Algorithms
  • CS 5350 - Machine Learning

Visual Computing (Choose 4)

  • CS 3200 - Introduction to Scientific Computing and Data Computing
  • CS 4600 - Introduction to Computer Graphics
  • CS 4640 - Image Processing Basics
  • CS 5320 - Computer Vision
  • CS 5350 - Machine Learning
  • CS 5610 - Interactive Comp Graphics
  • CS 5630 - Visualization for Data Science
  • CS 5650 - Perception for Graphics

Computer Organization (Choose 4)

  • CS 3700 - Foundations of Digital System Design
  • CS 3710 - Computer Design Laboratory
  • CS 5460 - Operating Systems
  • CS 5710 - Digital VLSI Design
  • CS 5830 - VLSI Architecture

Embedded Systems (Choose 4)

  • CS 3710 - Computer Design Laboratory
  • CS 4470 - Compiler Principles and Techniques
  • CS 4480 - Computer Networks
  • CS 5780 - Embedded System Design
  • CS 5785 - Advanced Embedded Software
  • CS 5789 - Embedded Systems and Kinetic Art

CAD for Digital Systems (Choose 4)

  • CS 5710 - Digital VLSI Design
  • CS 5740 - Computer-Aidied Design of Digital Circuits
  • CS 5745 - Testing and Verification of Digital Circuits
  • CS 5750 - Synthesis and Verification of Asynchronous VLSI Systems
  • CS 5830 - VLSI Architecture

Note: 6000-level courses require instructor consent.