Track Courses

Track substitutions with other courses in the topic area may be permitted with the approval of the graduate advisor.


 

Databases: The Database track covers concepts, languages, implementation and application of  database management systems. Other topics that have been offered in the track include formal  foundations of databases, databases for cloud and cluster environments, and data stream systems.

  • CS 586 Introduction to Database Management Systems (3)
  • CS 587 Database Management System Implementation (3)
  • One course from the following:
    • CS 588 Distributed Database Systems (3)
    • CS 589 Principles of Database Systems (3)
    • CS 510 Information Integration (3)
    • CS 510 Data Streams (3)
    • CS 510 Cloud & Cluster Databases (3)
    • Any CS 510 course in Databases

 

Artificial Intelligence and Machine Learning: The Artificial Intelligence and Machine Learning track covers modern algorithms underlying intelligent and learning systems.  Examples of topics covered in courses on this track include knowledge representation, planning, reasoning, combinatorial and adversarial search methods, natural language processing, computer vision, statistical machine learning, and evolutionary and reinforcement learning.

 

  • CS 541 Artificial Intelligence (3)
  • CS 545 Machine Learning (3)
  • One course from the following:
    • CS 542 Advanced Artificial Intelligence: Combinatorial Games (3)
    • CS 543 Advanced Artificial Intelligence: Combinatorial Search (3)
    • CS 546 Advanced Topics in Machine Learning (3) 
    • CS 570: Machine Learning Seminar (3)
    • CS 510 TOP: Intro to Visual Computing (3) 
    • STAT 610 Supervised Statistical Learning (3) 
    • Any CS 510 Course in AI or Machine Learning

 

Languages: The Languages track focuses on topics related to the design, implementation, and application of programming languages.  It includes courses on compiler and interpreter construction, explorations of language paradigms, and foundational approaches to specifying and reasoning about programming languages.

  • CS 558 Programming Languages (3)
  • Two courses from the following:
    • CS 515 Parallel Programming (3)
    • CS 520 Object Oriented Programming (3)
    • CS 553 Design Patterns (3)
    • CS 557 Functional Languages (3)
    • CS 568 Functional Logic Planning (3)
    • CS 577 Modern Language Processors (3)
    • CS 578 Program Language Semantics (3)
    • Any CS 510 course in Programming Languages

 

Security: The Security track focuses on protecting computing systems and user data from unauthorized access and use.  Topics include cryptography, network and host-based access control, vulnerability analysis, penetration testing, and reverse engineering.

 

  • CS 591 Introduction to Computer Security (3)
  • CS 585 Cryptography (3)
  • One course from the following:
    • CS 592 Malware (3)
    • CS 593 Digital Forensics (3)
    • CS 596/696 Network Management & Security (3)
    • Any CS 510 course in Security

 

Software Engineering: The Software Engineering track studies the principles, processes, techniques, and tools for building software systems.  Topics include software requirement, design, development, validation, and maintenance.

 

  • CS 554 Software Engineering (3)
  • Two courses from the following:
    • CS 552 Building Software Systems w/ Components (3)
    • CS 553 Design Patterns (3)
    • CS 555 Software Specification & Verification (3)
    • CS 556 Software Implementation and Testing (3)
    • CS 559 Software Measurement & Models (3)
    • CS 510 Software Quality Analysis (3)
    • Any CS 510 course in Software Engineering

 

Systems: The Systems track studies the design and implementation of operating systems, wired and wireless computer networks including sensor networks, high performance computer systems, data centers, cloud computing architectures, distributed systems, fault tolerance, concurrency, systems programming, and theoretical topics related to these areas.

  • CS 533 Concepts of Operating Systems (3)
  • CS 594 Internetworking Protocols (3)
  • One course from the following:
    • CS 538 Computer Architecture (3)
    • CS 572 Operating Systems Internals (3)
    • CS 597 Sensor Networks (3)
    • CS 598 Introduction to Wireless Network Protocols (3)
    • Any CS 510 course in Systems*

*OS Foundations does not count towards the track


 

Theory: The Theory track studies the fundamental computational techniques, their capabilities and limitations.  Topics include models of computation, computational complexity, data structures, and techniques for the design and analysis of algorithms.

 

  • CS 581Theory of Computation (3)
  • CS 584 Algorithm Design (3) or CS 582 Theory of Computation: Advanced Topics (3)
  • One course from the following:
    • CS 510 Scheduling, Planning and Search (3)
    • CS 584 Algorithm Design (3)
    • CS 582 Theory of Computation: Advanced Topics (3)
    • CS 585 Cryptography (3)

 

 

 

 

Icons made by Freepik from www.flaticon.com