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 530 Internet, Web, & Cloud Systems (3)
- CS 576 Computer Security Seminar (3)**
- CS 585 Cryptography (3)
- CS 592 Malware Reverse Engineering (3)
- CS 593 Digital Forensics (3)**
- CS 595 Web and Cloud 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 530 Internet, Web, & Cloud Systems (3)
- 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)
- CS 565 Full Stack Web 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 515 Parallel Programming (3)
- CS 530 Internet, Web, & Cloud Systems (3)
- CS 531 Introduction to Performance (3)
- CS 535 Accelerated Computing (3)
- CS 538 Computer Architecture (3)
- CS 572 Operating Systems Internals (3)**
- CS 590 Introduction to Multimedia Computing and Networking (3)
- CS 598 Introduction to Wireless Network Protocols (3)
- ECE 586 Computer Architecture (4)
- Any approved CS 510 course in Systems & Networking
*CS 532 does not count towards the track
Theory
Focuses on the theoretical foundations of computer science. Examples of topics include algorithmic design and analysis, computational complexity, learning theory, cryptography, and quantum computing.
- CS 581 Theory of Computation
- CS 584 Algorithm Design and Analysis
- One course from the following:
- CS 549 Computational Geometry
- CS 550 Parallel Algorithms
- CS 578 Programming Language Semantics
- CS 580 Randomized Algorithms and Probabilistic Analysis
- CS 582 Theory of Computation: Advanced Topics
- CS 583 Introduction to Quantum Computer Science
- CS 585 Cryptography
- Any approved CS 510 course in Theory