500

CPSC-50000 Computer Organization

This course provides a thorough study of the principles of operation for a computer system. It covers the principal subsystems of a computer, including the central processing unit (CPU), memory, input/output, and the communications bus. Number systems and various schemes for the digital representation of numbers are also discussed. Additional critical subjects covered include the principles of hierarchical computer organization, machine instruction sets, addressing modes, CISC vs RISC, input/output processing, and interrupt handling, as well as the application of many of these concepts to modern personal computers. The student will also gain insight into the boot process by installing multiple operating systems on a single PC.

3

CPSC-50100 Programming Fundamentals

This course introduces the fundamental concepts and approaches for problem solving and analysis using a standard, object-oriented programming language. Students will learn the skills of algorithm development, efficiency analysis, program implementation, testing, and debugging. Topics include data types, conditional statements, logical structures, loops, functional decomposition, recursion, methods, classes, arrays, files, exceptions, basic algorithms for searching and sorting, linked lists, and stacks.
3

CPSC-50200 Discrete Structures

An introduction to discrete structures, this course covers such topics as sets, functions, relations, basic logic, proof techniques, the basics of counting and probability, algorithms, graphs and trees.
3

CPSC-50300 Algorithms and Data Structures

This course is the study of the design and analysis of computer algorithms including the data structures used in these algorithms. Topics include design techniques, such as divide-and-conquer, dynamic programming, the greedy method and backtracking, sorting, searching, graph computations, pattern matching and NP-complete problems.
3

Prerequisites

CPSC 50100

CPSC-50400 Computer Architecture

This study of computer architecture covers the central processor unit, memory unit and I/0 unit, number systems, character codes and I/O programming. Programming assignments provide practice working with assembly language techniques, including looping, addressing modes, arrays, subroutines, and macros. Microsoft assembler is discussed and used for programming throughout the course.

3

Prerequisites

CPSC 50000

CPSC-50500 Communications and Networking

This course covers essential concepts of communications and networking using TCP/IP, and OSI reference models. Each layer of these models, and associated protocols, will be discussed in details. Special emphasis will be placed on Ethernet technology of the data link layer, IPv4 and IPv6 protocols of the network layer, TCP and UDP protocols of the transport layer, in additional to many protocols for the application layer including but not limited to HTTP, DNS, POP, and IMAP. Data transmission medium, signals types, and interfaces technologies will be discussed as essential components of the physical layer.
3

CPSC-50600 Cyber Security Essentials

Fundamentals of information, computer and network security are introduced. Topics include access control, authentication, trusted computing, software and hardware security and vulnerabilities, operating system security models, how various kinds of malware function, network security devices and architecture, database vulnerability and security, computer hacking techniques and countermeasures, intrusion detection, cryptography, wireless security, and network security protocols. Students will use software and tools they learn in this course to complete a graduate level final project/paper that reflects the skills and tools they learned in the course.
3

CPSC-50700 Advanced Cyber Security

This second course in cyber security explores advanced technological techniques and tools in cyber security. Students will use these technologies and skills to identify different categories of threats, and implement corresponding countermeasures. Student will build knowledge of the tools and protocols needed to perform, encryption and authentication of data, operating system and application security, malware operation and analysis, code-level exploits, reverse engineering, security design principles, techniques for reducing complexity, and formal security models. In addition students will gain insight into the legal, social, and political dynamics of the cyber universe. Students will use software and tools they learn in this course to complete a graduate level final project/paper that reflects the skills and tools they learned in the course.
3

Prerequisites

CPSC 50600

CPSC-50900 Database Systems

This course offers a thorough investigation of relational databases and DBMS, and provides a three-fold coverage of the topic: database design, programming and administration. Students will learn how to use Entity Relationship Diagrams (ERDs) to model a problem, and implement normalization in the process of database design. Structured Query Language (SQL) and database programming will be presented, students will work on lab activities involving writing SQL queries, and using high-level programming languages for accessing and manipulating databases. Students will learn about various database administration tasks including performance monitoring, user account management, query optimization, deadlock detection and resolution, and more. 
3

Prerequisites

CPSC 50100

CPSC-51500 Operating Systems

This course will present the concepts and principles of multiple user operating systems: memory, CPU, I/O device allocation, scheduling and security, memory hierarchies, performance evaluation, analytic models, simulation, concurrent programming and parallel processors. It will also discuss distributed computing principles, theory, implementations, and security. Security problems in distributed application environments will be analyzed and solutions will be discussed.

3

CPSC-51700 Pervasive Application Development

Development of web- and mobile-based front ends for large-scale data systems; with a focus of portability, accessibility, and intuitiveness.

3

Prerequisites

CPSC 50100, DATA 51100, or prior programming experience

CPSC-52000 Network Security Essentials

Information security ultimately depends on identifying and applying available security features appropriately. This course discusses the development of a secure information infrastructure consisting of servers, networks, firewalls, workstations, and intrusion detection systems. It also covers principles and practice related to secure operation of existing distributed systems. Principles of penetration testing for assessment of system security are also addressed. This course will also cover network security management systems that gather and analyze information to identify possible security breaches. It includes intrusions (attacks from outside the organization) and misuse (attacks from within the organization). Students learn the use of vulnerability assessment and scanning technologies to determine the security of a network.

3

Prerequisites

CPSC 50600, or an undergraduate degree in Computer Science

CPSC-52500 Encryption and Authentication

This course will present key cryptologic terms, concepts, and principles. Traditional cryptographic and cryptanalytic techniques are covered plus perspective on successes and failures in cryptologic history, including both single-key algorithms and double-key algorithms. Issues in network communications, network security, and security throughout the different layers of the OSI model for data communications will also be discussed in depth, as well as the use of cryptologic protocols to provide a variety of security services in a networked environment. Authentication, access control, non­ repudiation, data integrity, and confidentiality issues will also be covered, plus key generation, control, distribution, and certification issues.

3

Prerequisites

CPSC 50100, DATA 51100, or prior programming experience.

CPSC-55500 Distributed Computing Systems

Architecture and programming of parallel processing systems; distributed data storage techniques; multithreading and multitasking; redundancy; load balancing and management; distributed system event logging; programming techniques for maximizing the importance of distributed systems.

3

Prerequisites

DATA 51100 or CPSC 51500, or an undergraduate degree in Computer Science

CPSC-56000 Securing Operating Systems

This is a hands-on course that focuses on current strategies crackers use to attack Linux and Windows operating systems and how system administrators may counteract such attacks. Students will test their security strategies using scripts they create.

3

Prerequisites

CPSC 51500 or an undergraduate degree in Computer Science

CPSC-57100 Artificial Intelligence 1

Introduction to the field of artificial intelligence. This course covers the study of intelligent agent design and rational decision making. Topics include: goal-driven agents, search techniques, optimization, constraint satisfaction problems, logic, knowledge-based agents, probability and utility theory, Bayesian networks, and the basics of machine learning.

3

Prerequisites

CPSC 50200 or DATA 50000, and CPSC 50100, DATA 51100, or prior programming experience

CPSC-57200 Artificial Intelligence 2

Techniques for planning, learning, and decision making under uncertainty and in multi-agent environments. Topics include Markov Decision Processes (MDPs), partially observable MDPs, reinforcement learning, game theory, Bayesian networks, and special topics.
3

Prerequisites

CPSC 57100

CPSC-57400 Natural Language Processing

Methods and algorithms for natural language processing (NLP).  This course will present the linguistic, probabilistic, and statistical foundation that underlies NLP and introduce algorithms used in NLP with an emphasis on applying these algorithms in developing computer applications.
3

Prerequisites

CPSC 57100

CPSC-59100 Cybersecurity Project

This is the culminating experience for students in the M.S. Cybersecurity, and it is designed to give students an opportunity to integrate all that they have learned from prior coursework in the program. Students will select and explore a topic of current research interest in the information security field, or they will implement a project germane to information security. In either case, the student will document their findings and accomplishments in a well-researched scholarly paper and present it to their faculty and peers. Students will work closely with a faculty advisor according to the traditional mentor-student graduate model to produce a publication-worthy document that can serve as a reference for future students and faculty.

3

Prerequisites

A student must have earned at least 21 credit hours in the M.S. Cybersecurity program to take this course.

CPSC-59700 Research in Computer Science

Introduction to research in Computer Science. Topics include literature review, common mathematical proof techniques, and basic algorithm analysis.  Additionally, the research process will be presented, including design, methodology, and ethics.
3

Prerequisites

Completion of all required foundation courses or an undergraduate degree in Computer Science

CPSC-59900 Independent Study

This is an advanced course that enables students to carry out independent study under the supervision of a faculty member.

1-3