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)
  • Two courses from the following:

 

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)
    • STAT 671: Statistical Learning I (3)
    • STAT 672: Statistical Learning II (3)
    • STAT 673: Statistical Learning III (3)
    • Any approved CS 510 Course in AI or Machine Learning

 

Languages & Programming: The Languages & Programming track focuses on the design, implementation, and use of programming languages. It includes exposure to a variety of programming paradigms, experience using programming languages to express the essential abstractions of a problem domain, courses on programming language implementation, and the study of formal methods for specifying and reasoning about programs and 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 approved CS 510 course in Languages & Programming

 

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)
  • Two courses from the following:
    • CS 576 Computer Security Seminar (3)**
    • CS 585 Cryptography (3)
    • CS 592 Malware (3)
    • CS 593 Digital Forensics (3)**
    • CS 595 Web Security (3) 
    • CS 596 Network Security (3)
    • Any approved 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 561 Open-source Software Development (3)
    • Any approved CS 510 course in Software Engineering

 

Systems & Networking*: The Systems and Networking track studies the design and implementation of operating systems, wired and wireless computer networks including 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 531 Introduction to Performance (3)
    • CS 535 Accelerated Computing (3)
    • CS 538 Computer Architecture (3)
    • CS 572 Operating Systems Internals (3)**
    • CS 598 Introduction to Wireless Network Protocols (3)
    • Any approved CS 510 course in Systems & Networking

*CS 532 does not count towards the track


 

**Courses typically offered only every other year

Icons made by Freepik from www.flaticon.com