Computer Science (COMP)

COMP1000  COMPUTER SCIENCE I  

An introductory course covering the fundamental concepts and skills of programming in a high-level language. Emphasis is placed on problem solving, algorithm development, program design and structure, code documentation and style, and testing and debugging. Topics include hardware and software systems, data types and variables, device/file input and output, flow control and functions, use of basic data structures, as well as principles and applications of object-oriented programming. (4 credits) fall, spring

COMP1010  FUNDAMENTALS OF IT  

This course covers the fundamental concepts and skills of information technology (IT) inclusive of computing systems, computer architecture, information management, programming and application developments, operating systems, IT infrastructure, and modern communication architectures. (4 Credits) fall

COMP1050  COMPUTER SCIENCE II  

This course is an advanced introduction to computer science. It focuses on object-oriented programming. Topics include abstraction and encapsulation, classes and methods, objects and references, overloading, inheritance, polymorphism, interfaces, console/file input/output, dynamic data structures, generics, and GUI applications. Prerequisite: COMP1000 or ELEC3150 (4 credits) fall, spring

COMP1100  INTRODUCTION TO NETWORKS  

This course provides an introduction to networking and computing systems including operating systems, technical aspects of the Internet and internetworking. (4 credits) fall, spring

COMP1150  ROUTING AND SWITCHING  

This course introduces the students to routing, packet forwarding, and switching technologies. Both static routing and dynamic routing protocols are covered as well as basic switching concepts. Students will learn how to configure industry standard networking equipment. Prerequisite: COMP1100 or COMP2100 (4 credits) fall, spring

COMP1200  COMPUTER ORGANIZATION  

This course covers binary number and codes, logic elements, combinational and sequential logic, architectural design of a computer using these elements, and introduces concepts such as process and memory management. Prerequisite: COMP1000 and MATH2300 (4 credits) fall, spring

COMP1500  FOUNDATIONS OF INFORMATION SECURITY  

Information security dates back t o the earliest times of human civilization. In more modern times, the concepts involved in information security discussions have taken on a digital, or cyber, connotation. Often missing from a discussion related to information security is context for those outside of the field of computing. This course provides that context in order for students to gain insight into the people, processes, and technologies related to information assurance, privacy, threats, vulnerabilities, and more. Students will apply concepts related to data confidentiality, integrity, utility, authenticity, and access controls as they relate to their discipline(s). (4 credits)

COMP2000  DATA STRUCTURES  

This course is an introduction to the analysis and implementation of data structures. Topics include bags, sets, lists, queues, trees, maps, recursion, sorting and searching. Prerequisites: COMP1050 and MATH2300 (4 credits) fall, spring

COMP2010  SYSTEM ANALYSIS & DESIGN  

This course covers the principles of information systems, including analysis, design, and implementation. Students will learn techniques and methodologies in system development, project management, system analysis including process and data modeling, and designing databases and the human interface. Object-oriented information system modeling will be explored. Prerequisite: COMP1010 (4 credits) fall

COMP2100  NETWORK PROGRAMMING  

This course provides an overview of how modern systems communicate over the Internet. An emphasis is placed on application programming interfaces common to all forms of network programming. Students will gain practical experience with several operating systems and network protocols relevant to computing. Prerequisite: COMP1050 (4 credits) fall, spring

COMP2110  INFRASTRUCTURE DESIGN  

This course introduces the design and required components that enable computing and communication between users, services, applications, and processes. The course focuses on the network core devices, such as routers and switches, as well as servers and network access devices, and how all these devices come together to make up a network infrastructure. Prerequisite: COMP1100 (4 credits) spring

COMP2150  NETWORK ADMINISTRATION  

Modern enterprise and business systems rely on a stable network and server infrastructure to function. This includes many network protocols and services that are required in any network operations environment. Students in this course will configure and manage these critical services in their own virtualized environment following best practices and standards from the operations community. Prerequisite: COMP1100 or COMP2100 (4 credits) spring

COMP2160  WIRELESS NETWORKS  

This course will give introduction to the state of the art wireless and mobile networks. This course will cover the fundamental principles, architectures, and standards of modern wireless communication systems, including their applications and uses. Prerequisite: COMP1100 or COMP2100 (4 credits) spring

COMP2210  FUNDAMENTALS OF INFORMATION & DATA MANAGEMENT  

This course introduces students to databases and information management. Topics include query languages, database organization and architecture, data modeling, managing the database environment, and special-purpose databases. Prerequisites:COMP1050; MATH2300 or MATH2800 (4 credits) spring

COMP2350  ALGORITHMS  

This course introduces algorithmic design and analysis: students assess the complexity of algorithms in terms of time and space requirements for large input sizes. Topics include searching, sorting, pattern matching, hashing and encryption. Prerequisites: COMP2000 (4 credits) spring

COMP2499  SYSTEM ANALYSIS & BUSINESS APPLICATIONS  

This course covers the principle analysis, design and implementation methodologies, and tools to develop business applications using the system development life cycle (SDLC). Students will gain experience in the analysis, design, and development of business applications via a series of case studies. (4 credits)

COMP2500  SECURITY PRINCIPLES  

The course introduces computer and network security concepts and techniques. Theoretical concepts of security are examined as well as implementing system and network security. Prerequisite: COMP1100 or COMP2100 (4 credits) fall

COMP2540  ETHICAL HACKING  

This course teaches students how to properly secure a network by introducing them to various methodologies and techniques of attacking and disabling a network. Students will receive a simulated hands-on practical approach to penetration testing measures and ethical hacking.Coursework is supplemented by hands-on exercises of attacking and disabling a network, and the use of appropriate tools for defense and countermeasures, with emphasis on teaching students to use what they learn ethically and legally. Students will be required to sign the White Hat Oath. Prerequisites: COMP1000 and COMP2500 (4 credits) summer

COMP2650  DATABASES  

Concepts and methods for the design, creation, querying, and management of relational database management systems. Covers modeling the conceptual and logical organization of databases, including the entity-relationship model; the relational data model and SQL; as well as functional dependencies and normal forms. Students will further strengthen their database skills by developing a substantial project with a team. Prerequisite: COMP1050; MATH2300 or MATH2800 (4 credits) fall, spring

COMP2670  DATABASE MANAGEMENT SYSTEMS  

An introduction to the use of database management systems. Covers hierarchical networks and relational systems, and techniques for designing, creating, accessing and maintaining data bases. (4 credits) fall, spring

COMP3000  APPLICATIONS OF AI  

This course is an introduction to the concepts and methodologies of artificial intelligence (AI). Students are broadly exposed to data-science ideas and how AI contributes to making predictions and classifications. Students are also given the opportunity to use current AI and machine-learning tools to extract insights from both unstructured and structured data. Prerequisites: COMP1050 (4 credits)

COMP3010  IT SOFTWARE DEVELOPMENT & MANAGEMENT  

This is an introduction to software development and management in information technology. Students will learn how to integrate Agile application lifecycle management (ALM) and DevOps to build better software and systems at lower cost. Topics include, but are not limited to, ALM methodology, software development process, Agile ALM, Agile process maturity, rapid iterative development, building engineering in ALM, information technology operations, and DevOps. Prerequisites: COMP1050 and COMP2010 (4 credits) fall

COMP3100  SYSTEM ADMINISTRATION  

System administration is the practice of installing, configuring, and maintaining a computing system. This course provides students an overview of these and related concepts as well as the skills required to become an entry level system administrator. In particular, topics covered include file systems, process control, access control, account management, software management, and scripting. Prerequisite: COMP1000; COMP1100 or COMP2100 (4 credits) fall

COMP3125  DATA SCIENCE FUNDAMENTALS  

The aim of this course is to provide the fundamental knowledge and skills commonly required to solve data-driven problems. The course introduces computational and inferential approaches using set off skills that are cross-disciplinary. The course will train well-rounded professionals who can provide quantitative analysis, gather and analyze (big) data, and interpret and share results in a meaningful way. Prerequisites: COMP1000 or ELEC3150; and MATH1030 or MATH2100 (4 credits)

COMP3200  ASSEMBLY LANGUAGE  

An advanced course in assembly language, including data representation, data storage, arithmetic, control flow, stacks and procedures, integer and character I/O, encryption, and applications to embedded computing. Prerequisites: COMP1200, COMP2000 and COMP2350 (4 credits)

COMP3210  ADVANCED INFORMATION MANAGEMENT  

This course covers analysis of relational and non-relational databases and their corresponding database management system architectures. Complex database objects will be built to support a variety of needs from both the big data and traditional perspectives. Topics includes data systems performance, scalability, and security. Prerequisite: COMP2210 (4 credits) summer

COMP3220  DATA ANALYTICS  

This course will introduce the student to data analysis programming. The objective is for the student to develop programming and statistical computing skills to address data management and analysis issues. The course will also provide a survey of some of the most common data analysis tools in use today and provide decision-making strategies for selecting the appropriate methods for extracting information from data. Prerequisite: COMP2210 (4 credits) fall

COMP3225  GAME DEVELOPMENT  

This is an introductory course that covers the fundamental concepts and skills of programming using an industry standard game engine. Students will learn the tools to take a game from concept to polished program. This includes 2D/3D art, animation, sound and music, game AI, and visual effects. The semester will end with a game-jam-style final project. Prerequisite: COMP2000 (4 credits) fall

COMP3310  IT ECONOMICS  

A major set of tasks for IT leadership is to properly determine which projects and programs should be undertaken, when they should be initiated, and how they should be financially evaluated. This course provides insights into these facets of IT leadership by discussing how to select IT projects/programs using determining factors, real options, and IT vision vs. realization. The course also focuses on build vs. buy strategies, the RFP drafting process, and the evaluation of proposals for IT project success. Prerequisite: COMP3010 (4 credits) summer

COMP3350  PROGRAMMING LANGUAGES  

An introduction to programming language concepts, including language evaluation criteria, context free grammars, parse trees, syntax diagrams, symbol tables, data types, control structure, and language translators. Prerequisite: COMP2000 and COMP2350 (4 credits) summer

COMP3400  OPERATING SYSTEMS  

In this comprehensive course, we will study the basic facilities provided by the operating system. Students will cover the functions of operating systems, including process management (processes, threads, context switch, concurrency control, synchronization, scheduling, deadlocks, etc.), primary memory management, virtual memory management, file systems, resource allocation, and information protection. Prerequisites: COMP2000 (4 credits) fall

COMP3450  PARALLEL COMPUTING AND DISTRIBUTED COMPUTING  

This course covers topics related to parallel and distributed computing, including parallel and distributed architectures and systems, parallel and distributed programming paradigms, parallel algorithms, and applications of parallel and distributed computing. Prerequisites: COMP2000 and COMP2350 and COMP2100 (4 credits) summer

COMP3480  CLOUD COMPUTING  

This course presents an overview of the field of cloud computing, its enabling technologies, main building blocks, and tools. Students will learn state-of-the-art cloud-computing solutions and obtain hands-on experience in designing and implementing modern cloud applications utilizing public cloud infrastructures. Prerequisite: COMP2000 (4 credits) fall

COMP3499  OPERATING SYSTEMS FOR ENGINEERS  

This course covers the functions and organization of operating systems, including process management, input/output systems, memory management, resource allocation, data management, and information protection. Prerequisite: ELEC2850 (4 credits) spring

COMP3500  NETWORK SECURITY  

This course covers all aspects of securing and protecting a local area network from threats and vulnerabilities. Students will configure, test, and validate standard network services and devices at all layers of the network. Prerequisites: COMP2150 and COMP2500 (4 credits) fall

COMP3510  INTERNET OF THINGS SECURITY  

This course will examine the security and privacy concepts for Internet of Things (IoT) along with the current standards, protocols, and security measures. IoT devices sense, anticipate, and respond to our needs as we manage them remotely. Hence, they can act as the gateway between our cyber and physical world. Through this course, students will learn to recognize threats, vulnerabilities, and attacks that are possible on an IoT platform and its components. This course provides students with adequate skills to detect IoT attacks through formal modeling and forensics and to defend against such attacks. Prerequisites: COMP2500 (4 credits) Summer

COMP3550  COMPUTER SECURITY  

This course covers all aspects of securing and protecting a computer system from threats and vulnerabilities. Topics include password hashing and protection, virus detection, server security hardening, and application software protection. Prerequisites: COMP2500 and COMP3100 (4 credits) summer

COMP3555  EDGE SECURITY  

Edge computing devices are comprised of hardware devices that perform the two essential functions of providing physical connectivity and enabling traffic between networks. This course introduces the concepts of edge computing security. Students will explore the design and implementation of layered security systems using appliances like firewalls and intrusion detection systems / intrusion prevention systems. Cloud security concepts and components will be explored. Prerequisite: COMP2500 (4 credits) summer

COMP3575  SCRIPTING FOR CYBERSECURITY AND FORENSICS  

Cybersecurity and forensics are part of an ever-changing field of computing and all other things "cyber". This course intends to examine many of the challenges and current problems that exist within these fields. Specifically, this course will provide an overview of the distinct challenges that cybersecurity professionals and forensic investigators face, identify the appropriate platforms for tools to be created that resolve or remediate some of those challenges, and ensure that integrity of evidence is maintained for appropriate post-event actions. Existing and emerging research in the field of cybersecurity, digital forensics, law, human factors will be examined. Prerequisites: COMP3100 or COMP3400 (4 credits)

COMP3580  DIGITAL FORENSICS  

This course introduces the fundamentals of digital forensics and analysis of crime scenes that may involve computers, cell phones, and other digital devices. Formal methodologies, frameworks, processes and procedures for conducting digital forensic investigations are discussed in detail. Distinctions between Digital Forensics, eDiscover, and Incidence Response processes are explained. Relevant laws, regulations, and governance requirements dealing the different aspects of forensic investigations are examined as well. Prerequisites: COMP3100 or COMP3400 (4 credits)

COMP3590  APPLIED CRYPTOGRAPHY  

This course is an introduction to the basic theory and practice application of cryptographic techniques used in modern information security systems. Cryptography provides important tools for ensuring the privacy, authenticity, confidentiality, an integrity of data involved in modern information systems, and frames the approach used in this course. This course examines the progress from historical symmetric encryption standards and protocols to the modern public key encryption processes. Basic concepts of ciphers, blocks, hashes, MACs, and key rotation strategies are discussed. Different implementation approaches are presented along with their performance impacts, along with potential attach strategies and their efficacy are discussed. Prerequisites: COMP3100 or COMP3400 (4 credits)

COMP3600  SOFTWARE SECURITY  

This course covers the foundations of software security, focusing on practical applications. It thoroughly examines critical software vulnerabilities and the attacks that exploit them. It then explores strategies, including advanced testing and program analysis techniques, that can be used to discover new, unknown vulnerabilities in software. Mitigation strategies are discussed and implemented to reduce the risk of attacks against software. The application of mitigations is not just a theoretical concept, but a practical approach that can significantly strengthen the security of software systems. Prerequisite: COMP1050 (4 credits)

COMP3610  INTRODUCTION TO HEALTH INFORMATICS  

This course provides students with the fundamental knowledge of the concepts of health informatics and how technology can be used in the delivery of health care. The emphasis is on conceptual frameworks as well as a deeper level of engagement with system applications in public health and healthcare. This course also provides a basic understanding of data standards and requirements, and the critical concepts and practice in mapping and interpreting health information. Prerequisites: COMP1000 and MATH2300 (4 credits) fall

COMP3620  MOBILE HEALTH SYSTEMS  

This is an introduction to mobile health systems. It introduces the design of mobile health systems and homecare medical devices, and it guides students to apply learned knowledge to build their own mobile health systems. Topics include microcontroller systems and programming, medical devices and mobile health, homecare medical devices, sensors and systems for medical devices, clinical study using mobile technology, and basic mobile app development. Prerequisite: COMP1050 (4 credits) summer

COMP3660  MOBILE APP DEVELOPMENT  

This course is an introduction to mobile application development. It focuses on the creation of software systems for mobile devices. Topics include: platform introduction, environment setup, version control system, system prototyping, project structure and resources, application lifecycle, UI components, system services, sensors, security and permissions, data storage, testing and debugging, and application deployment. Prerequisite: COMP1050 (4 credits)

COMP3672  INTRODUCTION TO BIOINFORMATICS  

This course introduces software tools used in biology for gene sequencing, pattern matching, etc. Tools may include database, data mining, statistical analysis, algorithms and visualization. (4 credits)

COMP3725  SOCIAL NETWORK ANALYSIS  

This course provides students with essential analyzing and modeling techniques for understanding and extracting information from online social networks such as Facebook, LinkedIn, and Twitter. Students will learn how to apply the basics of social network analysis at the node (ego) level (degree, betweenness, closeness, eigenvector centralities, PageRank, neighbors, and bridges); at the group (sub-graph) level (cliques, clustering coefficient, triadic analysis, structural holes, brokerage, transitivity, and hierarchical clustering); and at the network level (degree distribution, components and isolates, cores and periphery, network density, shortest paths, reciprocity, affiliation networks and two-mode networks, and homophily). Prerequisites: COMP2000 (4 credits)

COMP3750  INTRODUCTION TO BIOSTATISTICS  

This course covers practical applications of descriptive and inferential statistics with an emphasis on principles and methods of summarizing biological data using statistical software package. Prerequisites: COMP1000 and MATH2100 (4 credits) summer

COMP3800  SPECIAL TOPICS IN COMPUTER NETWORKING OR COMPUTER SCIENCE  

Presents topics that are not covered by existing courses and are likely to change from semester to semester. Refer to the Class Schedule for a specific semester for details of offerings for the semester. (4 credits)

COMP4050  MACHINE LEARNING  

Introduction to the field of machine learning. This course focuses on algorithms to help identify patterns in data and predict or generalize rules from these patterns. Topics include supervised learning (parametric/non-parametric algorithms, kernels, support vector machines), model selection, and applications (such as speech and handwriting recognition, medical imaging, and drug discovery). Students who have basic programming skills and who have taken a course in probability are encouraged to take this course. Prerequisite: MATH2100 and COMP1000 (4 credits)

COMP4060  BLOCKCHAIN TECHNOLOGIES  

Blockchain technologies enable a digital decentralized society where people can contribute, collaborate, and transact without having to second-guess trust and transparency. As a result, blockchain is revolutionizing the way applications are built to serve people. This course covers fundamentals of blockchain, cryptocurrency, smart contracts, alternative blockchains, and the challenges and future of blockchain development. Students will work in teams to gain hands-on experience building decentralized applications using blockchain technologies and tools. Prerequisite: COMP2000 (4 credits)

COMP4110  NETWORK DESIGN & MANAGEMENT  

This course covers network design life cycle, initially starting with PDIOOR (Plan, Design, Implement, Operate, Optimize, Retire Network Segments and Components) focusing on wireless network design and data center design. Then this course introduces network management methods based on FCAPS (Fault, Configuration, Administration, Performance, and Security), SNMP (Simple Network Management Protocol), and other contemporary management and design models. Prerequisites: COMP2110 or COMP1150 (4 credits) summer

COMP4150  ADVANCED SYSTEM ADMINISTRATION  

This course is a follow-on course to System Administration that dives deeper into system and network environments found in modern enterprises. Students will build fully functional virtual networks, configure shared storage, deploy network account systems, utilize configuration management tools, monitor system health and set up a variety of standard applications. Scripting is used throughout the course to solve problems and automate common tasks. Prerequisites: COMP3100 (4 credits)

COMP4225  GAME DESIGN PROJECTS  

In this course, students will strengthen their game design and development abilities by developing an original game from concept to completion using the conventional game-development approach. Throughout the semester, students will take on individual duties within teams of 2-3 students, developing a proposal, prototyping their concepts, playtesting, and iteratively refining their games with the help of peers and play-testers. Prerequisite: COMP3225 (4 credits) fall

COMP4310  QUALITY MANAGEMENT OF IT SYSTEMS  

As information technology and operations technology continue to merge within the modern enterprise, it has become increasingly important to properly manage their joined functions and operations. Inclusive of the software, hardware, and people that make up these systems, implementing an IT quality management framework is necessary for long-term success. This course covers the foundations of different IT quality standards, provides insight into implementing appropriate controls and measures, and specifies activities to ensure that each system is meeting its operational expectation. This course is framed in the context of IT service management. Prerequisite: COMP3010 (4 credits) fall

COMP4450  SYSTEMS PROGRAMMING  

Systems programming involves writing software that is intended to interact with the Operating System rather that with the user directly. This course covers UNIX/Linux systems programming including system calls, file I/O, memory management, processes, threading, and other related topics. Students will rewrite fundamental parts of the UNIX/Linux userspace. Prerequisite: COMP3400 (4 credits)

COMP4460  COMPILERS  

This course covers the principles and techniques used in the design of compilers. Compilers are the programs that translate code written in higher level languages into executable code. Topics include lexical and semantic analysis, transition, code generation and optimization. Prerequisite: COMP3350 (4 credits)

COMP4500  OFFENSIVE SECURITY  

This course identifies the tools, techniques, strategies, and motivations of system intruders. In doing so, this course provides students with the skills necessary to ethically search, identify, and perform active assessment of enterprise systems, typically called penetration testing. Thus, students are able to preemptively identify the mechanisms by which attacks are perpetrated and the methods by which they can be prevented, defended or remediated. The hands-on activities will be based on environment(s) that minimize risk, and possible legal, ethical or network availability issues. Prerequisites: COMP3500 (4 credits) spring

COMP4550  INCIDENT RESPONSE & BUSINESS CONTINUITY  

This course covers the process and implementation of incident response plans that adhere to appropriate business continuity plans. Students will design, implement, and test incident response processes for a variety of scenarios to ensure that the recovery time of their systems is within the limits specified in a continuity plan for an organization. Different incident response strategies, such as SAN PICERL, Lockheed Cyber Kill Chain, MITRE ATT&CK, etc. will be investigated. The tools, techniques and methodologies for enacting the incident response plan, processes, and procedures will be utilized. Critical documents such as Disaster Recovery Plan, Business Impact Analysis Plan, and Business Continuity Plans will be analyzed, developed and assessed. Prerequisites: COMP4500 (4 credits) summer

COMP4580  NETWORK FORENSICS  

Network forensics is the intersection of network and communication principles, security, investigative processes, and the law. This course examines many different types of network protocols and technologies as the foundation of criminal or civil investigations. Critical concepts, such as forensic models, chain of custody, Daubert criteria, and verification and validation, are presented, discussed, and experienced through performing and replicating network forensics investigations. Different acquisition approaches and systems are identified and utilized. Existing and emerging research in the field of network forensics will be introduced as required readings. Prerequisites: COMP3100 or COMP3400 (4 credits)

COMP4590  PUBLIC KEY CRYPTOGRAPHY  

This course covers the principles of cryptography, system security and network security. The necessary mathematical background ( principles of number theory, prime numbers and modular arithmetic) and resulting system and network security implementations ( protocols, techniques, and architectures) are treated in parallel throughout the course. The primary focus of the course is Public Key Cryptography (PKC), key management, hash functions, digital signatures, and certificates. Advanced topics on Elliptic Curve Cryptography (ECC) and quantum security will also be covered. Prerequisite: COMP1050 (4 credits)

COMP4600  QUANTUM COMPUTING FOR SECURITY  

This course introduces students to quantum security. Quantum security is a multidisciplinary field and intersects with computer science, mathematics, and physics. This course covers the theory to understand quantum computing and then presents and analyzes many of the most important algorithms that provide exponential speed up compared to their counterpart algorithms that execute on classical computers. Prerequisites: COMP2350, MATH2100, and MATH2860 (4 credits)

COMP4650  WEB DEVELOPMENT  

In-depth project-oriented work in modern web development including page organization, interactive databases, responsive design, security, and client and server side scripting. Students will create robust, effective, and secure web applications. Prerequisite: COMP2650 (4 credits) spring

COMP4700  ARTIFICIAL INTELLIGENCE  

This course introduces the philosophical foundations of the underlying techniques involved with the design and implementation of intelligent computer systems. Topics include problem-solving via search, knowledge representation, reasoning in deterministic and stochastic tasks, as well as learning. Prerequisites: COMP2000 and COMP2350 and MATH2100 and MATH2860 (4 credits)

COMP4725  BIG DATA PROGRAMMING  

Students in this course learn big data technologies such as Apache Spark and Apache Hadoop, mastering low-level application program interfaces (APIs), structured APIs, and streaming APIs. This interdisciplinary course offers insights into big data applications, blending practical skills with theoretical understanding applicable across various domains. Prerequisite: COMP3125 (4 credits) fall

COMP4750  EMBEDDED ARTIFICIAL INTELLIGENCE  

This course covers artificial intelligence algorithms that can be ported to embedded systems. The course can be divided into four categories: background materials, embedded systems, artificial intelligence (AI), and the final project. Prerequisites: COMP3125 (4 credits)

COMP4760  IMAGE PROCESSING  

This course provides an introduction to basic theories, algorithms, and machine learning methods (convolutional neural network) used in image processing and computer vision. Students will learn programming and develop hands-on experience in image processing and computer vision. Prerequisite: COMP1000 (4 credits) spring

COMP4770  ARTIFICIAL INTELLIGENCE FOR GAMING  

The aim of this course is to teach artificial intelligence (AI) techniques for implementing realistic and believable agents and their environments in computer games in order to create a realistic, fun, and engaging experience for players. Students will engage in several readings, discussions, and programming assignments. Students will also work on a final project that demonstrates most of the game AI techniques learned in this course. Prerequisites: COMP1050 (4 credits) Summer

COMP4775  ADVANCED PARALLEL COMPUTING  

This course will expand the fundamental concepts related to parallel and distributed computing. This includes the examination of multicore and manycore architectures, methods for solving real world problems on massively distributed systems and performance analysis of parallel algorithms. Prerequisites: COMP3450 (4 credits) spring

COMP4950  PROJECT MANAGEMENT  

This course provides students with a detailed understanding of the Systems Development Life Cycle (SDLC) and the methodologies to manage computing, networking, and security projects. Prerequisite: COMP2650 (4 credits) spring

COMP4960  SOFTWARE ENGINEERING  

This course presents a formal approach to state-of-the-art techniques in software design and development. Students work in teams on an externally collaborative software projects. Prerequisites: COMP2000 (4 credits) spring

COMP5050  MODERN COMPUTING  

This is a survey course of modern computing topics. The purpose of this course is to provide students with a fast-paced experience with several key concepts and associated technologies that provides context for applications, systems and information flow in modern computing environments. Each topic is presented in a modularized approach, as faculty with specific expertise will deliver each module. Each student will gain hands-on experience with projects related to each module. Prerequisite: Enrollment in MSACS graduate program. (4 credits) spring

COMP5100  NATURAL LANGUAGE PROCESSING  

This course offers an introduction to natural language processing (NLP), a multidisciplinary field focused on the automatic interpretation of human languages. It covers both foundational principles and cutting-edge techniques, enabling students to gain hands-on experience in text analysis, machine translation, and speech processing. Emphasizing current, widely-used toolkits, the course equips students to tackle practical NLP challenges such as named entity recognition, topic modeling, and sentiment analysis. (4 credits)

COMP5500  SENIOR PROJECT  

This course provides the opportunity for students to participate in design and implementation of solutions to large project in a team-based environment. Projects will in general be interdisciplinary in nature. Students will be required to provide written documentation and give oral presentations about their projects. The projects will be chosen in conjunction with the instructor for the course. Prerequisites: COMP4950 or COMP4960 (4 credits) summer

COMP5555  Computer and Network Security  

The course offers a comprehensive overview of the principles, techniques, and practices necessary to protect computer networks from potential threats and vulnerabilities. Students explore topics such as secure communication protocols, intrusion detection and prevention systems, firewall technologies, and wireless network security. Through a set of practical exercises, students develop the skills required to assess risk and vulnerabilities. They acquire adequate expertise to implement security methodologies to protect enterprise-level networks. (3 credits)

COMP5600  FOUNDATIONS OF CYBERSECURITY  

The course introduces a wide range of fundamental cybersecurity concepts and techniques, providing students with a comprehensive understanding of the field. Students explore theoretical concepts such as threat modeling, risk assessment, and cryptographic foundations. In addition, the course delves into the practical implementation of these concepts, teaching students how to apply security measures to real-world systems. This includes hands-on experience with configuring secure networks, deploying encryption protocols, and enforcing security policies to protect against various cyber threats. Topics include password hashing and protection, virus detection, server security hardening, and application software protection. (3 credits) summer

COMP5700  CLASSICAL ARTIFICIAL INTELLIGENCE  

This course is a graduate-level overview of fundamental techniques for building intelligent systems. Topics include combinatorial search, decision making, knowledge representation, planning, reasoning under uncertainty, and learning. Students will implement algorithms using each of these techniques to build fully functional programs. (4 credits) summer

COMP5705  DATA MINING  

Data mining is the process of finding hidden patterns and rules in large datasets. This course is a graduate-level survey of basic concepts, methods, tools, and techniques related to data mining. Topics include data preprocessing; data warehousing and online analytical processing; data cube technology; mining frequent patterns, associations, and correlations; advanced pattern mining; and outlier detection. Prerequisite: COMP5700 (3 credits)

COMP5710  PRINCIPLES OF MACHINE LEARNING  

Machine learning is a rapidly growing field that powers many of the services we use today. This is a graduate-level course that covers advanced machine-learning concepts in depth. The topics in this course include (but are not limited to) global/local optimization, gradient descent/ascent, regression, categorical cross entropy, classification, logistic regression, matrix factorization, feature engineering, feature selection, boosting, and regularization. Prerequisite: COMP5700 (3 credits)

COMP5725  Applications of Cryptography  

This course comprehensively covers the theory and practice of cryptographic application techniques used in modern computing information security systems. It explores the main problems of cryptographic standards, their solutions, and the crucial tools for safeguarding privacy, authenticity, secrecy, and integrity. The course also reviews a variety of cryptographic implementation tactics and compares them regarding effectiveness, potential attack strategies, and performance impacts. (3 credits)

COMP5750  EMBEDDED ARTIFICIAL INTELLIGENCE  

This course covers artificial intelligence algorithms that can be ported to embedded systems. The course can be divided into four categories: background materials, embedded systems, artificial intelligence (AI) and a final project. (4 credits)

COMP5775  ADVANCED PARALLEL COMPUTING  

This course will expand on the fundamental concepts related to parallel and distributed computing. This includes the examination of multicore and manycore architectures, methods for solving real world problems on massively distributed systems and performance analysis of parallel algorithms. (4 credits) spring

COMP5900  PROGRAMMING FUNDAMENTALS  

A gateway course into the MSACS program covering the fundamental concepts and skills of programming in a high-level language. Emphasis is placed on problem solving, algorithm development, program design and structure, code documentation and style, and testing and debugging. Topics include object-oriented programming, GUI development, and basic data structure usage. (6 credits) fall

COMP5925  DATA STRUCTURES & ALGORITHMS  

This course introduces fundamental data structures and algorithms as a gateway into the MSACS program. Students study features and differences of these constructs, including theoretical analysis, implementation, and applications. Topics include lists, queues, trees, graphs, sorting, computational complexity, and algorithm strategies. Prerequisites: COMP5900 (6 credits) spring

COMP5950  NETWORK AND SYSTEM ADMINISTRATION  

This course offers a comprehensive overview of network and system administration, including operating systems, technical aspects of the Internet and inter-networking, and installing, configuring, and maintaining a computing system. Furthermore, the course explores fault tolerance in systems, shell scripting, and the working of firewalls. (4 credits) spring

COMP6000  INTRUSION DETECTION AND PREVENTION SYSTEM  

This course explores the use of network and host-based intrusion detection and intrusion prevention systems (IDS/IPS) as part of an organization’s overall security environment. A variety of systems, deployment architectures, and identification algorithms are discussed. These are presented with a focus on the practical concerns of deploying these systems in an enterprise environment. The progress in this discipline towards a robust and complete network security monitoring (NSM) program is discussed, along with the integration of network-based and host-based security systems. A critical facet of the course is the methods and techniques used to identify and mitigate false positives and false negatives while ensuring high-precision true positive and true negative detection of events. The trade-offs of the performance vs. precision of these systems complete the course. (3 credits)

COMP6100  SECURE SOFTWARE DEVELOPMENT  

This course reviews the secure software development process and provides practice using that process to solve software-security problems. The first half of the course studies software vulnerabilities, attacks that exploit them, and defenses against such attacks. In the second half of the course, students research a novel software security problem and apply the competencies from the classroom to find a solution. Prerequisites: COMP5900 (3 credits)

COMP6420  REVERSE ENGINEERING  

This course introduces the concepts for reverse engineering of both binary (compiles) and interpreted software. Key concepts and tools for analysis of the construction and operation of software are critical to the course. Students will gain practical experience with assemblers and disassemblers, source code debugging, hex editors, code auditing, and different binary file formats. This course focuses on 32- and 64-bit architectures (Intel and AMD) for the Microsoft Windows platform. Alternative architectures, such as ARM and Power, will be covered as contrasting options. Prerequisites: COMP6500 (3 credits)

COMP6500  ADVANCED NETWORK SECURITY  

This course addresses network security concepts from perimeter to zero-trust. Topics such as defense-in-depth, cryptography and key management, wireless security, secure routing, and secure management are addressed with specific focus on real-world application and implementation. These topics are presented with the goal of collecting, evaluating, and analyzing events that provide sufficient security visibility and posture in order to rapidly respond to events and incidents. Prerequisite: Enrollment in MSCA Program (3 credits) fall

COMP6520  MALWARE ANALYSIS  

This course introduces fundamental concepts of active malware analysis. The course defines and develops the skills needed to analyze and dissect modern malicious software threats. Students develop a workflow that includes the use of static and dynamic tools to assess and reverse engineer a variety of file formats commonly used by threat actors. Assemblers and disassemblers for 32-bit and 64-bit architectures are utilized to analyze files and code samples. Basic reporting strategies and outlets are discussed. Prerequisites: COMP6500 (3 credits)

COMP6550  THREAT INTELLIGENCE  

This course addresses the evolving discipline of threat intelligence as it applies to threat hunting. The course focuses on the challenges of threat hunting in enterprise-scale networks, and the options available to address these challenges. Different threat hunting models are presented and discussed for usage in strategic, operational, and tactical environments. The course also addresses threat actor motivations, capabilities, and tactics in order to better implement data-driven collection, evaluation, identification, collation, correlation, and action. Prerequisites: COMP6500 and DATA6150 (3 credits) spring

COMP6580  DIGITAL FORENSICS AND INCIDENT RESPONSE  

This course introduces the fundamentals of digital forensics and incident response investigations. While these investigations follow similar processes and utilize similar tools, their desired outcomes differ: legal attribution and prosecution vs. return to operations. Formal methodologies, frameworks, processes, and procedures for conducting DFIR investigations are discussed and evaluated. The relevant legal framework requirements for DFIR investigations are examined as well. Prerequisites: COMP6500 (3 credits)

COMP6760  COMPUTER VISION  

This course introduces both fundamental and advanced topics in the field of computer vision. The topics in this course include image filtering, segmentation, image feature extraction, and deep neural network application in computer vision. Students will learn how to use computer vision and machine learning to solve real-world problems. (3 credits) fall

COMP7025  Sports Analytics  

This course applies statistics, probability, and machine learning to sports analysis. These tools are used to analyze in-game strategy, player performance, team management, fantasy competitions, and game outcomes. (3 credits)

COMP7350  BIG DATA SYSTEMS  

As the digital realm evolves into the age of big data, advanced understanding and skills are imperative. This course delves deep into the intricacies of contemporary big data systems, tackling the challenges and solutions in big data processing. It fosters a critical perspective on storage systems, dataflow engines, and cluster resource management. The course culminates in an exploration of the nuances of batch processing, stream processing, and large-scale graph processing. (3 credits) fall

COMP7500  THESIS I  

This course prepares students for research and activities related to a graduate-level thesis. This includes identification of valid research questions, detailed literature review processes, determining appropriate variables necessary for a detailed examination of the stated research question, and aligning a methodology to a stated research problem. Students will develop the ability to clearly and concisely state the significance of a problem and indicate why the problem should be studied in more depth. The final output of the course is a thesis proposal and its successful defense. Prerequisite: COMP5700 (3 credits) fall

COMP7550  THESIS II  

This course provides students the ability to perform their approved thesis research. Students will gain experience with leading a research project that addresses a specific hypothesis, managing any experimental process(es), gathering outputs, analyzing and interpreting results, and reporting findings. Documentation of each step of the research project will be completed for both written and oral presentation and defense of the project. Students will gain real-world experiences with identifying and working within limitations and delimitations of their defined project goals. Finally, students will identify where potential improvements or corrections could be made to their work, as well as defining a path for future work to continue on their defined research problem. Prerequisite: COMP7500 (3 credits) spring

COMP7800  GRADUATE SPECIAL TOPICS IN APPLIED COMPUTER SCIENCE  

Presents topics that are not covered by existing courses and are likely to change from semester to semester. Refer to the Class Schedule for a specific semester for details of special topics course offerings.