600
Tools, patterns, and principles of object-oriented software development that lead to high-quality, team-produced, extensible code for the enterprise; object-oriented testing strategies; UML modelling of software systems; source-code control; comparative approaches to software development; enterprise software architecture.
3
Prerequisites
CPSC 50300
This course examines undecidability, computational complexity, and models of computations. Topics include languages and automata, Turing machines, reductions, time and space complexity classes, and completeness.
3
Prerequisites
CPSC 50200 and CPSC 50300
This course provides an overview of display devices and applications, point-plotting techniques, two-dimensional transformations, clipping and windowing, lighting, and three-dimensional techniques. Students are also introduced to interactive computer graphics, animation and graphics applications. Students explore these concepts using C++ and the OpenGL programming interface.
3
Prerequisites
CPSC 50100
This course provides an overview of current cryptocurrency systems, including Bitcoin and Ethereum, and presents the algorithms that make them possible. Students will learn how a blockchain is constructed to produce a secure distributed ledger, and how wallets and mining work. Ethical and legal issues related to cryptocurrencies will be discussed. The course contains a project in which students will write code to implement their own cryptocurrency.
3
Prerequisites
CPSC 50100
The best way to defeat a hacker is to code like one. That means being able to build, extend, and manipulate scripts and applications that compromise systems. This course presents a number of techniques for exploiting vulnerabilities in a variety of computer systems. Students will build port scanners, construct botnets, write exploits, create their own forensic analysis and network traffic analysis tools, develop web reconnaissance applications, implement scripts for examining and exploiting a wireless network, and craft malware that evade antivirus tools.
3
Prerequisites
CPSC 50100, and CPSC 50600 or INSY 50500, or an undergraduate degree in Computer Science
While many tools exist for examining digital systems, the frenetic pace at which the cyber threat evolves means that hackers are constantly discovering new ways to hide their tracks. Digital forensics specialists who lack a programmer's understanding of how data are stored and hidden and how tools are written to examine these systems will forever be limited to using the tools others create. This course prepares digital forensics experts who can write their own digital forensics tools.
3
Prerequisites
CPSC 50100, and CPSC 50600 or INSY 50500, or an undergraduate degree in Computer Science
File storage structures, relational database management systems, entity relationship diagrams, relational algebra, relational calculus, SQL, database security, concurrency control, distributed and cloud storage solutions, coding database-supported web sites using PHP and XML.
3
Prerequisites
CPSC 50100
This course introduces the student to the modeling, identification, and control of robotic systems. The course focuses on the implementation of identification and control algorithms on a two-link robot. Topics include the mathematical modeling of robotic systems and the analysis, simulation, and implementation of both linear and nonlinear representations of such systems. The design and integration of sensors and actuators and algorithms for responding and controlling these devices will be pursued.
3
Prerequisites
CPSC 57100
An introduction to the concepts and techniques of implementing cloud computing through the use of virtualization and distributed data processing and storage. Topics include operating system virtualization, distributed network storage, distributed computing, cloud models (IAAS, PAAS, and SAAS), and cloud security.
3
Prerequisites
CPSC 51500 or an undergraduate degree in Computer Science
This course provides a study of the structures of selected programming languages related to ALGOL 60 and LISP. Emphasis is placed on semantics rather than syntax of the programming languages. Backus-Naur Form, recursion, parameter transmitting techniques, and an introduction to formal language theory is covered. Functional programming is also discussed. A term project is required.
3
Prerequisites
CPSC 50300
This course explores the security of wireless data networks. It describes the standards that govern wireless communications and security, the physics of the various approaches to wireless data security, the attacks against wireless systems, and techniques for thwarting such attacks. The course discusses the various 80.11 technologies as well as cell phone, satellite, and Bluetooth approach.
3
Prerequisites
CPSC 50600 or INSY 50500, or an undergraduate degree in Computer Science
The discovery, exploitation, and prevention of security flaws in web and mobile applications. This course examines vulnerabilities seen a wide variety of software technologies, including databases, file systems, and web services.
3
Prerequisites
CPSC 52500, and CPSC 50600 or INSY 50500, or an undergraduate degree in Computer Science
An introduction to the concepts and techniques of implementing and securing cloud computing through the use of virtualization and distributed data processing and storage. Topics include operating system virtualization, distributed network storage, distributed computing, cloud models (IAAS, PAAS, and SAAS), and techniques for securing cloud and virtual systems.
3
Prerequisites
CPSC 51500 or an undergraduate degree in Computer Science
This course focuses on the practice of digital forensics across multiple platforms and technologies. It emphasizes the role of forensics in countering advanced persistent threats (APTs), which are sophisticated, coordinated attacks that employ a variety of techniques to attempt to compromise a system. Students investigate case studies describing various kinds of attacks against an organization. In working through these case studies, students learn how to perform forensic analyses of network traffic, mobile device file systems, memory, and malware. Students learn how the engines of forensics tools work so that they can perform their analyses even as the use of anti-forensics techniques continues to grow.
3
Prerequisites
CPSC 52500 or an undergraduate degree in Computer Science
The critical infrastructures of a nation are those systems that provide the goods, resources, and services essential to modern life. These include utility systems like power, water, and natural gas delivery systems, as well as transportation networks, banking and finance, and emergency services. Historically, these infrastructures have been kept physically and logically separated from other networks and systems. They also have tended to use the same networking protocols as industrial and manufacturing control systems. However, the trend toward convergence and its promised efficiencies have introduced new vulnerabilities to both industrial and critical infrastructure systems. This course describes critical infrastructures and industrial control systems are supported by computer technology, identifies and explains in technical detail the vulnerabilities that affect this technology, and explain how to design solutions to counteract these vulnerabilities.
3
Prerequisites
CPSC 58000 or INSY 51000, or an undergraduate degree in Computer Science
This course will focus on how to configure and operate numerous networking devices such as a switches, routers, and firewalls. Students will create their own functioning network and be able to apply features such as port blocking, AAA security, ACLs and NAT, PKI/cryptography, and threat mitigation/containment. Students will be introduced to different types of routing such as static, RIP, and BGP. In addition, there will be a heavy emphasis on IPv4 and IPv6 subnetting.
3
Prerequisites
CPSC 58000, and CPSC 50600 or INSY 50500, or an undergraduate degree in Computer Science
Students design and conduct research in an area of Computer Science. Students will work closely with a faculty advisor according to the traditional mentor-student graduate model to produce a publication-worthy document and present it to their faculty and peers.
3
Prerequisites
CPSC 59700