Course Descriptions

CYB500: Data Analytics for Cybersecurity

This course develops ideas for helping to make decisions based upon the examination of data. Topics include variability, data display and summary statistics, regression, and correlation, probability, probability distributions, sampling, the central limit theorem, confidence intervals and hypothesis testing. Attention is also given to the design of experiments and analysis of variance, frequency distributions, statistical inference and sampling theory.

CYB517: Cryptography I (Symmetric-Key Systems)

This course introduces the methods of transmitting information securely in the face of a malicious adversary deliberately trying to read or alter it. The first part of this three-course sequence deals with classic cryptosystems, basic number theory, and modern symmetric-key systems such as the Data Encryption Standard (DES) and the Advanced Encryption Standard (AES).

CYB518: Cryptography II (Public-Key Systems and Digital Signatures)

This course introduces the methods of transmitting information securely in the face of a malicious adversary deliberately trying to read or alter it. The second part of this three-course sequence deals with public-key systems such as the RSA algorithm and discrete logarithm techniques, cryptographic hashing, and digital signatures.
Pre-requisites: CYB517

CYB519: Cryptography III (Security Protocols and Advanced Topics)

This course introduces the methods of transmitting information securely in the face of a malicious adversary deliberately trying to read or alter it. The final part of this three-course sequence deals with security protocols, cryptocurrencies, information theory, elliptic curves, and error-correcting codes.
Pre-requisites: CYB518

CYB514: Theory of Computation I (Automata)

This course introduces the classical theory of computer science. The aim is to develop a mathematical understanding of the nature of computing by trying to answer one overarching question: "What are the fundamental capabilities and limitations of computers?" The first part of this three-course sequence deals with finite automate and formal languages, answering the question: "How do we define a model of computation?"

CYB515: Theory of Computation II (Computability)

This course introduces the classical theory of computer science. The aim is to develop a mathematical understanding of the nature of computing by trying to answer one overarching question: "What are the fundamental capabilities and limitations of computers?" The second part of this three-course sequence deals with computability, answering the question: "How do we prove something cannot be computed?"
Pre-requisites: CYB514

CYB516: Theory of Computation III (Complexity)

This course introduces the classical theory of computer science. The aim is to develop a mathematical understanding of the nature of computing by trying to answer one overarching question: "What are the fundamental capabilities and limitations of computers?" The final part of this three-course sequence deals with complexity, answering the question: "What makes some problems so much harder than others to solve?"
Pre-requisites: CYB515

CYB509: Operating Systems I (Processes)

This course introduces students to operating systems and the software to support these systems. The first part of this four-course sequence focuses on operating system principles and processes. Topics include the various types of operating systems, general parts of an operating system, the C programming language, process management and scheduling, threading, communication between processes/threads, and deadlock.

CYB510: Operating Systems II (Storage)

This course introduces students to operating systems and the software to support these systems. The second part of this four-course sequence focuses on memory and storage management. Topics include virtual memory, algorithms for page swapping, paging systems, file systems, directories, and the handling of input and output on various devices.
Pre-requisites: CYB509

CYB511: Operating Systems III (Performance)

This course introduces students to operating systems and the software to support these systems. The third part of this four-course sequence focuses on performance issues. Topics include virtualization, cloud-based computing, multiple-core systems, distributed processing, and load balancing.
Pre-requisites: CYB510

CYB610: Operating Systems IV (Security)

This course introduces students to operating systems and the software to support these systems. The final part of this four-course sequence focuses on OS security. Topics include threats and attacks on an OS, access control, use of cryptography in an OS, authentication, basic computer forensics, firewalls, and other OS defenses.
Pre-requisites: CYB503, CYB511, CYB550

CYB540: Networking I (Intro to Networking)

This course introduces students to the theoretical and practical aspects of designing, creating, using, and defending computer networks. The first part of this four-course sequence focuses on a basic introduction to networking and network layers. Topics include network models, network layers, programming at the application layer, the TCP/IP layer, routing algorithms, socket programming, and packet sniffing.

CYB541: Networking II (Networking Infrastructure)

This course introduces students to the theoretical and practical aspects of designing, creating, using, and defending computer networks. The second part of this four-course sequence focuses on the physical and data link layers. Topics include basic signal processing, wired/wireless transmission, multiplexing, the data link layer, error detection and correction, medium access control (MAC) sublayer, Ethernet, 802.11 wireless LANs, Bluetooth, and RFIDs.
Pre-requisites: CYB540

CYB640: Networking III (Intro to Network Defense)

This course introduces students to the theoretical and practical aspects of designing, creating, using, and defending computer networks. The third part of this four-course sequence focuses on basic network vulnerabilities and defense. Topics include network attacks such as man-in-the-middle, denial-of-service, and packet injections, message encryption, digital signatures and certificates, authentication, email with PGP, and remote access with SSH.
Pre-requisites: CYB541, CYB550

CYB641: Networking IV (Advanced Networking Defense)

This course introduces students to the theoretical and practical aspects of designing, creating, using, and defending computer networks. The final part of this four-course sequence focuses on advanced network vulnerabilities and defense. Topics include firewall configuration, intrusion detection and prevention, port mapping, snort configuration rules, VPNs, e-commerce using SSL, and wireless network security (WEP, WPA, WPA2).
Pre-requisites: CYB640

CYB524: Database I (Relational Databases)

This course introduces students to the theory, application, and securing of database systems. The first part of this four-course sequence focuses on the relational database model. Topics include data modeling, relational database schema, the structured query language (SQL), and relational algebra and calculus.

CYB525: Database II (Database Management Systems)

This course introduces students to the theory, application, and securing of database systems. The second part of this four-course sequence focuses on (relational) database management systems. Topics include the entity-relationship model, relational database design, database storage, database indexing and hasing, and the processing and optimization of queries.
Pre-requisites: CYB524

CYB526: Database III (NoSQL and BigData)

This course introduces students to the theory, application, and securing of database systems. The third part of this four-course sequence focuses on the emergence of big data and non-SQL and non-relational databases. Topics include a comparison between relational and non-relational database models, NoSQL storage types, MongoDB, Hadoop, Amazon DynamoDB, document databases, and graph databases.
Pre-requisites: CYB525

CYB625: Database IV (Database Security)

This course introduces students to the theory, application, and securing of database systems. The final part of this four-course sequence focuses on security issues involving database systems. Topics include database access controls, assessing access control, SQL injections, database inferences, and database auditing.
Pre-requisites: CYB525, CYB550

CYB 501: Security I (Intro to Security Design)

This course introduces students to fundamental security principles, and good security design. Information assurance and cyber defense are discussed and understanding their role in providing system security is explored.
Pre-requisites: CYB550

CYB502: Security II (Intro to Cyber Threats)

This course introduces students to the analysis of cyber threats. Students will be able to identify bad actors in cyberspace and compare and contrast their resources, capabilities/techniques, motivations, and aversion to risk. Students will be able to describe different types of attacks and their characteristics.
Pre-requisites: CYB501

CYB503: Security III (Intro to Cyber Defense)

Students will earn about potential system attacks and the actors that might perform them. Students will be able to describe cyber defense tools, methods and components, and apply cyber defense methods to prepare a system to repel attacks.
Pre-requisites: CYB502

CYB504: Systems I (Systems Administration)

This course introduces students to the configuration, installation, and maintenance of a computer system. Strategies for successful administration from user management to auditing to backup strategies and processes will be covered.

CYB505: Systems II (IT Infrastructure)

Students will study the hardware components of modern computing environments and their individual functions. Students will learn about the types of hardware, and their interconnection, in a modern data center.
Pre-requisites: CYB504

CYB506: Systems III (Systems Programming)

This course introduces students to various aspects of the design and implementation of a computer system. The final part of this three-course sequence focuses on systems-level programming. Topics include advanced shell scripting, the C-programming language, and the C system libraries.
Pre-requisites: CYB505

CYB550: Cyber Policy

Students learn about the applicable laws and policies related to cyber defense and describe the major components of each pertaining to the storage and transmission of data. This course also covers responsibilities related to the handling of information about vulnerabilities, and how the type of legal dispute (civil, criminal, private) affects the evidence used to resolve it.

CYB650: Cyber Operations

Students study the phases of a well-organized cyber operation and describe the goals and objectives of each phase. Emphasis is placed on identifying specific phases of a cyber operation in network traffic, and understanding potential motivations that might prompt an entity to perform a cyber operation.
Pre-requisites: CYB503, CYB506

CYB660: Scripting for Investigations

This course covers the command line as a tool for data analysis for cyber investigations. Emphasis is placed on a basic set of tools that can be used individually or together to analyze and visualize data.
Pre-requisites: BAN610

CYB670: Embedded Device Security

This course covers security as it pertains to the explosion of embedded devices embodied by the growth of the Internet of Things (IoT). Students will learn about the specific security issues related to embedded devices.

CYB691: Capstone I

This course enables students to explore the computer security profession by working independently or in teams, under the guidance of a mentor, on a significant security-related project. In the first part of this two-course sequence, students review professional literature and explore security ethics, as they work to develop and present a capstone project proposal in written and oral form.
Pre-requisites: By permission of director only

CYB692: Capstone II

This course enables students to explore the computer security profession by working independently or in teams, under the guidance of a mentor, on a significant security-related project. In the second part of this two-course sequence, students complete work on their project and create an appropriate formal presentation of their results.
Pre-requisites: CYB691