Department of Engineering, Computing, and Mathematical Sciences
Computer Science
CPSC 50000 - Computer Organization (3)
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.
CPSC 50100 - Programming Fundamentals (3)
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.
CPSC 50200 - Discrete Structures (3)
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.
CPSC 50300 - Algorithms and Data Structures (3)
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.
Prerequisite: (CPSC 50100 (may be taken concurrently))
CPSC 50400 - Computer Architecture (3)
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.
Prerequisite: (CPSC 50000 (may be taken concurrently))
CPSC 50500 - Communications and Networking (3)
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.
CPSC 50600 - Cyber Security Essentials (3)
The course introduces and discusses elements of information, computer and network security, and its security operations. Topics include information assurance, symmetric/asymmetric encryption, security software (vulnerability) assessment, modern operating system security, access control, and authentication. Furthermore, the course introduces various malware behaviors, intrusion detection/prevention, security intelligence, and network security protocols. Students will use and develop software, virtual systems, programming, and tools to complete a graduate-level project or work on a research paper that reflects the skills they learned in the course.
CPSC 50700 - Advanced Cyber Security (3)
This second course in cyber security explores advanced technological techniques and tools in cybersecurity. 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.
Prerequisite: CPSC 50600 (may be taken concurrently)
CPSC 50900 - Database Systems (3)
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.
Prerequisite: CPSC 50100 (may be taken concurrently)
CPSC 51500 - Operating Systems (3)
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.
CPSC 51700 - Pervasive Application Development (3)
Development of web- and mobile-based front ends for large-scale data systems; with a focus of portability, accessibility, and intuitiveness.
Prerequisite: CPSC 50100 (may be taken concurrently) or CPSC 51100 (may be taken concurrently) or DATA 51100 (may be taken concurrently)
CPSC 52000 - Network Security Essentials (3)
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.
Prerequisite: (CPSC 50600 (may be taken concurrently) or INSY 50500 (may be taken concurrently))
CPSC 52500 - Encryption and Authentication (3)
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.
Prerequisite: INSY 50500 (may be taken concurrently) or CPSC 50100 (may be taken concurrently) or CPSC 51100 (may be taken concurrently) or DATA 51100 (may be taken concurrently)
CPSC 55500 - Distributed Computing Systems (3)
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.
Prerequisite: (CPSC 51100 (may be taken concurrently) or DATA 51100 (may be taken concurrently) or CPSC 51500 (may be taken concurrently))
CPSC 56000 - Securing Operating Systems (3)
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.
Prerequisite: CPSC 51500 (may be taken concurrently)
CPSC 57100 - Artificial Intelligence 1 (3)
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.
Prerequisite: (CPSC 50200 (may be taken concurrently) or DATA 50000 (may be taken concurrently) or MATH 51000 (may be taken concurrently) ) and (CPSC 50100 (may be taken concurrently) or CPSC 51100 (may be taken concurrently) or DATA 51100 (may be taken concurrently))
CPSC 57200 - Artificial Intelligence 2 (3)
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.
Prerequisite: CPSC 57100 (may be taken concurrently)
CPSC 57400 - Natural Language Processing (3)
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.
Prerequisite: CPSC 57100 (may be taken concurrently)
CPSC 57500 - Ethics in Artificial Intelligence (1)
This one-credit seminar explores the ethical dimensions of Artificial Intelligence (AI) and its growing influence on society. The course begins with a brief overview of the history of ethics in AI, highlighting seminal thinkers and key papers that have shaped the field. Students will then engage with core ethical concepts—such as fairness, transparency, and justice—and apply them to real-world scenarios involving AI technologies.
CPSC 57600 - Applied AI for Business Apps (3)
This course offers a comprehensive overview of the strategic applications of Artificial Intelligence (AI), emphasizing generative AI’s transformative impact across industries. It educates business leaders and technologists on how to leverage AI to enhance business outcomes, drive innovation, and secure competitive advantages. The curriculum covers the evolution of AI, its operational integration, and strategic implementation in various business contexts. Participants will explore practical tools, frameworks, and real-world case studies to develop a robust understanding of AI’s.
CPSC 57700 - Machine Learning Operations (3)
This course provides a comprehensive overview of Machine Learning Operations (MLOps) and its lifecycle phases, including alignment to business objectives, development, testing, deployment, monitoring, continuous training, and governance.
CPSC 57900 - Generative Artificial Intelligence (3)
This course delves into the internals of foundation models with a particular focus on large language models (LLMs). Students will learn the fundamental techniques behind building foundation models, including pre-training and fine-tuning for downstream tasks. The course will guide students through developing a basic LLM from scratch to gain hands-on understanding of these models' architecture and functionality. The course will then focus on using LLMs as building blocks in real-world applications. Students will explore how to augment LLMs with proprietary knowledge bases, extend their functionality using agents and external tools, and integrate them within larger systems such as chainapps, and RAG applications. Prior completion of DATA 56000 is recommended but not required.
CPSC 59100 - Cybersecurity Project (3)
This is the culminating experience for students in the Technical Track of the MSIS major, 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 MSIS students and faculty.
CPSC 59609 - ST: Quantum Computing (3)
This course will provide students with lecture and/or lab experiences presenting topics of current interest in Computer Science. The course may be repeated for credit. Topics will vary. Topics are selected to enhance student learning and complement, not duplicate, material used in Readings, Seminar, and Thesis.
1-3 credit(s)
CPSC 59610 - ST: Machine Learning with Graphs (1)
This course will provide students with lecture and/or lab experiences presenting topics of current interest in Computer Science. The course may be repeated for credit. Topics will vary. Topics are selected to enhance student learning and complement, not duplicate, material used in Readings, Seminar, and Thesis.
1-3 credit(s)
CPSC 59700 - Research in Computer Science (3)
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.
Prerequisite: (CPSC 50000 (may be taken concurrently) and CPSC 50100 (may be taken concurrently) and CPSC 50200 (may be taken concurrently) and CPSC 50300 (may be taken concurrently))
CPSC 59900 - Independent Study (1-3)
This is an advanced course that enables students to carry out independent study under the supervision of a faculty member.
CPSC 60000 - Object Oriented Development (3)
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.
Prerequisite: CPSC 50300 (may be taken concurrently)
CPSC 60500 - Software Engineering (3)
This course starts by introducing students to basic software engineering concepts. Activities performed at each stage of the software development life cycle are introduced and discussed. Students will be introduced to the tasks and models a development team needs to successfully complete a software project. Topics will include software development processes, software requirements and specification, system design and analysis, configuration management, quality assurance activities, software project management, project release planning, and software engineering ethics.
Prerequisite: CPSC 50300 (may be taken concurrently)
CPSC 61000 - Theory of Computation (3)
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.
Prerequisite: (CPSC 50200 (may be taken concurrently)) and (CPSC 50300 (may be taken concurrently))
CPSC 61200 - Software Architecture and Design (3)
This course offers a thorough investigation of principles, techniques, and tools used in designing and structuring complex software systems. Several architectural styles will be investigated including Service Oriented Architectures, microservices, pipes and filters, Model-View-Controller, and more. Course will shed light on different ways software architecture impacts and is impacted by technology stack, software process, evolving business needs, business model, etc. Other topics such as architecture modeling, documentation and architectural quality measures will be introduced.
Prerequisite: CPSC 60000 (may be taken concurrently)
CPSC 61300 - Software Testing and Quality Assurance (3)
This course covers software testing principles, techniques and best practices used in the development of high-quality software systems. Course will follow a hands-on approach to various types of functional testing including unit, integration and user acceptance testing as well as non-functional testing including load, performance and security testing. Code reviews, requirements walk-throughs, code quality metrics and other process related quality assurance concepts will be investigated.
Prerequisite: CPSC 60000 (may be taken concurrently)
CPSC 61400 - Software Production Process (3)
This course teaches concepts, processes and techniques of Agile Software Development. Topics include managing small scrum teams, running effective stand ups and post-mortems meetings, measuring team velocity, and several others. Course touches briefly on traditional project methodology, leadership skills, conflict management, software maturity framework, legal and ethical codes, etc.
Prerequisite: CPSC 60000 (may be taken concurrently)
CPSC 61500 - Computer Graphics (3)
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.
Prerequisite: CPSC 50100 (may be taken concurrently)
CPSC 62000 - Video Game Programming (3)
This course covers the concepts and tools required to write a 2D video game. Topics include the main game loops, coordinate systems, game design, user input, bitmaps, sprites, particle systems, sound effects, music and AI. Algorithms and data structures for video games are discussed in depth, including state machines, collision detection, and sorting. The C++ language, modern tools and libraries are used to create an arcade game.
Prerequisite: CPSC 61200 (may be taken concurrently)
CPSC 62100 - Advanced Video Game Programming (3)
In this course, concepts learned in CPSC 57600 are expanded with the creation of a larger project. Students create a video game in a group setting using an IDE, SDK and platform of their choice. Advanced topics such as modern tools, 3D engines and physics are discussed. A survey a relevant collaboration tools is explored, as well as advanced debugging and regression techniques.
Prerequisite: CPSC 62000 (may be taken concurrently)
CPSC 62600 - Blockchain and Cryptocurrency (3)
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.
Prerequisite: CPSC 50100 (may be taken concurrently)
CPSC 62800 - Programming for Digital Forensics (3)
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.
Prerequisite: (CPSC 50100 (may be taken concurrently)) and (CPSC 50600 (may be taken concurrently) or INSY 50500 (may be taken concurrently))
CPSC 65000 - Robotics (3)
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.
Prerequisite: CPSC 57100 (may be taken concurrently)
CPSC 65100 - Reinforcement Learning (3)
This course covers the implementation of intelligent agents that learn over time through interaction, while optimizing decision-making. Students in this course will study the framework for reinforcement learning and algorithms used to implement agents for solving real-world problems. Many of these algorithms and frameworks are inspired by nature, and the sources of these inspiration will also be discussed. This includes research from neuroscience, psychology, and other relevant fields. The course involves application of the reinforcement learning algorithms to current problems in fields such as robotics, gaming, autonomous driving, and the development of large language models.
Prerequisite: CPSC 57100
CPSC 65500 - Cloud Computing and Virtualization (3)
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.
Prerequisite: CPSC 51500 (may be taken concurrently)
CPSC 66000 - Programming Languages (3)
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.
Prerequisite: CPSC 50300 (may be taken concurrently)
CPSC 66400 - Wireless Security (3)
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.
Prerequisite: CPSC 50600 (may be taken concurrently) or INSY 50500 (may be taken concurrently)
CPSC 66500 - Application Security (3)
This course examines vulnerabilities seen in a wide variety of software technologies, including databases, file systems, and web services. Examples on the discovery, exploitation, and prevention of security flaws in web and mobile applications will be provided. Students will learn how to build, extend and manipulate scripts and applications that compromise systems. They will use 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.
Prerequisite: CPSC 52500 (may be taken concurrently) and CPSC 50600 (may be taken concurrently)
CPSC 67000 - Cloud and Virtualization Security (3)
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.
Prerequisite: CPSC 51500 (may be taken concurrently)
CPSC 67300 - Digital Forensics (3)
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.
Prerequisite: CPSC 52500 (may be taken concurrently)
CPSC 67500 - Network Forensics (3)
This course presents essential concepts and hands-on techniques for conducting analysis of Network Intrusions and Cybercrime in an organization. This course discusses log file analysis, gathering evidence from all networked devices, and router forensics. It also covers principles and practice related to examination of internal and external cyber-attacks, cybercrimes, e-mail crimes and violations, corporate espionage, copyright and trademark violations.
Prerequisite: CPSC 67300 (may be taken concurrently)
CPSC 67600 - Mobile Device Forensics (3)
This course presents the essential concepts and hands-on techniques for recovering evidence, data and corporate assets from mobile devices such as iPhones, windows mobile phones, Android phones, iPads, Tablet PCs, and iPods. The course discusses forensics acquisition, analysis and reporting of evidence retrieved from mobile devices. Students will learn how to recover passwords, deleted voicemails, photos and text messages, geotagged metadata from camera phones, and data from various apps that run on mobile devices.
Prerequisite: CPSC 67300 (may be taken concurrently)
CPSC 68000 - Advanced Network Security (3)
The critical infrastructures of a nation include utility systems like power, water, and natural gas delivery systems, as well as transportation networks, banking and finance, and emergency services.To operate more efficiently, the computer systems supporting these infrastructures are converging, and this has introduced new vulnerabilities to 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.
Prerequisite: CPSC 50600 (may be taken concurrently) and (CPSC 50500 (may be taken concurrently) )
CPSC 68500 - Enterprise Network Security (3)
This course focuses on security functions and requirements for enterprise networks, and how to manage and operate advanced network security infrastructures. The course offers a hands-on approach by demonstrating how to configure and operate numerous network devices and security controls such as switches, routers, firewalls, IDS/IPS, and SIEM. Students will create their own functioning network, assess its security, and apply numerous security features such as port blocking, AAA security, ACLs and NAT, Cryptography, Intrusion detection/prevention, and security data analytics.
Prerequisite: CPSC 50600 (may be taken concurrently) and (CPSC 50500 (may be taken concurrently) )
CPSC 69100 - Computer Science Master's Project (3)
This course provides graduate students with an opportunity to put into practice the theoretical knowledge they learned, and the skills they have earned during their program of study in the area of computer science. Students work in teams to define a problem, or select a problem introduced by their faculty advisor to design, develop, and provide a substantial solution, then deploy a real-world system, demonstrate the system, and present their methodology and final product to faculty and peers.
Prerequisite: CPSC 59700 (may be taken concurrently)
CPSC 69300 - Artificial Intelligence Master’s Project (3)
This is the capstone experience for students in the M.S. Artificial Intelligence, 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 area of artificial intelligence, or they will design and implement a project that incorporates artificial intelligence in the solution. Students will document their work in a scholarly report and present their methodology and results to faculty and peers.
CPSC 69700 - Master's Thesis (3)
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.
Prerequisite: CPSC 59700 (may be taken concurrently)
Data Science
DATA 50000 - Mathematics for Data Scientists (3)
Differentiation and integration of functions; basic matrix operations; linearization; linear and nonlinear optimization techniques; clustering and similarity measures, introduction to probability and statistics, basic computational algorithms. Includes frequent illustration of concepts using mathematical computation tools.
DATA 50100 - Probability and Statistics for Data Scientists (3)
This course covers aspects of probability theory and statistical analysis used in data science. Students will study elementary probability theory, basic combinatorics, conditional probability and independence, Bayes’ rule, random variables, mathematical expectation, discrete and continuous distributions, estimation theory, and tests of hypotheses. This course requires the use of statistical computing with the R programming language for solving sample problems.
Prerequisite: DATA 50000 (may be taken concurrently) or MATH 51000 (may be taken concurrently)
DATA 51000 - Data Mining and Analytics (3)
This course covers techniques for knowledge extraction in very large-scale data. Students will learn how to analyze real-world datasets using different data mining techniques like document similarity detection, association rule mining, clustering, link analysis, and predictive modeling. Topics also include applications for e-advertising and recommendation systems.
Prerequisite: (CPSC 50200 (may be taken concurrently) or DATA 50000 (may be taken concurrently) or MATH 51000 (may be taken concurrently) ) and (CPSC 50100 (may be taken concurrently) or DATA 51100 (may be taken concurrently) or CPSC 51100 (may be taken concurrently) )
DATA 51100 - Statistical Programming (3)
Programming structures and algorithms for large-scale statistical data processing and visualization. Students will use commonly available data analysis software packages to apply concepts and skills to large data sets and will also develop their own code using an objectoriented programming language.
Prerequisite: CPSC 50100 (may be taken concurrently) or DATA 50100 (may be taken concurrently)
DATA 51200 - Multivariate Data Analysis (3)
This course explores statistical techniques for analysis of multivariate data. It covers exploratory factor analysis, multiple regression analysis, multiple discriminant analysis, logistic regression, multivariate analysis of variance and covariance, general linear models, and cluster analysis. Extensive use of statistical software is required.
Prerequisite: DATA 50100 (may be taken concurrently)
DATA 53000 - Data Visualization (3)
The theory and practice of visualizing large, complicated data sets to clarify areas of emphasis. Human factors best practices will be presented. Programming with advanced visualization frameworks and practices will be demonstrated and used in group programming projects.
Prerequisite: CPSC 50100 (may be taken concurrently) or CPSC 51100 (may be taken concurrently) or DATA 51100 (may be taken concurrently)
DATA 54000 - Large-Scale Data Storage Systems (3)
The design and operation of large-scale, cloud-based systems for storing data. Topics include operating system virtualization, distributed network storage; distributed computing, cloud models (IAAS, PAAS, and SAAS), and techniques for securing cloud and virtual systems.
Prerequisite: CPSC 50100 (may be taken concurrently) or CPSC 51100 (may be taken concurrently) or DATA 51100 (may be taken concurrently)
DATA 55000 - Supervised Machine Learning (3)
This course covers methods and theory related to generating predictive models from labeled datasets. Students will get introduced to computational learning theory, study algorithms for generating predictive models, perform feature selection and hyperparameter tuning, and learn how to evaluate model performance. Examples of supervised machine learning techniques covered in the course include naïve Bayes learning, logistic regression, decision tree induction, support vector machines, and deep neural networks. Other, recent developments and state-of-the art methods related to supervised learning may also be covered. Students will be required to write programs that demonstrate machine learning techniques on real-world datasets.
Prerequisite: (CPSC 50200 (may be taken concurrently) or DATA 50000 (may be taken concurrently) or MATH 51000 (may be taken concurrently) ) and (CPSC 50100 (may be taken concurrently) or CPSC 51100 (may be taken concurrently) or DATA 51100 (may be taken concurrently))
DATA 55100 - Unsupervised Machine Learning (3)
This course will survey leading algorithms for unsupervised learning and high dimensional data analysis. The first part of the course will cover clustering algorithms and generative models of high dimensional data, such as distance/similarity measures, k-means clustering, hierarchical clustering, Fuzzy C-Means (FCM), Possibilistic C-Means (PCM), Principal Components Analysis (PCA), and Linear Discriminant Analysis (LDA). The second part of the course will cover spectral methods for dimensionality reduction, including multidimensional scaling, spectral clustering, and manifold learning. The third part of the course will cover self-organizing maps (SOMs) as well as an introduction to semi-supervised learning. Other, recent developments and state-of-the art methods related to unsupervised learning may also be covered.
Prerequisite: or CPSC 50200 (may be taken concurrently) or DATA 50000 (may be taken concurrently)) or CPSC 50100 (may be taken concurrently) or DATA 51100 (may be taken concurrently))
DATA 55200 - Semantic Web (3)
Expressing relationships among items in a way that enables automated, distributed analysis in an application-independent way; text mining to derive meaning from semantic networks; algorithms for processing semantic networks; developing a web of things.
Prerequisite: (CPSC 50100 (may be taken concurrently)) and DATA 51100 (may be taken concurrently)
DATA 56000 - Neural Networks and Deep Learning (3)
This course will survey leading algorithms and methods for neural networks and deep learning. The first part of the course will cover the basics of neural networks through the backpropagation algorithm. Then, the fundamentals of neural networks will be discussed through radial-basis function (RBF) networks and restricted Boltzmann machines. The second part of the course will cover deep learning methods through recurrent neural networks, convolutional neural networks (CNNs), generative adversarial networks (GANs), and transformer networks. Other recent developments and state-of-the art methods related to deep learning such as attention mechanisms and pre-trained language models may also be covered.
Prerequisite: DATA 50000 and DATA 51100 or CPSC 50100
DATA 56600 - Digital Image Processing (3)
This course provides an introduction to basic concepts, methodologies, and algorithms of digital image processing focusing on the following two major problems concerned with digital images: image enhancement and restoration for easier interpretation of images, and image analysis and object recognition. Some advanced image processing and computer vision techniques (e.g., object detection and tracking or camera models and stereo vision) might also be studied in this course. The primary goal of this course is to lay a solid foundation for students to study advanced image analysis topics such as computer vision systems, biomedical image analysis, and multimedia processing and retrieval.
Prerequisite: (DATA 50000 (may be taken concurrently)) and (CPSC 50100 )
DATA 59000 - Data Science Project for Computer Scientists (3)
The capstone experience for students pursuing the Computer Science concentration in Data Science. Students will develop a solution for a real-world problem in data mining and analytics, document their work in a scholarly report, and present their methodology and results to faculty and peers.
DATA 59500 - Data Science Thesis Research (3)
In this course, students will work with a faculty advisor on research in the field of Data Science or its applications. The student will research open problems in data science, select a topic for their thesis, and implement novel solutions, which will be documented in a formal thesis. The course will require students to form a thesis committee and defend their thesis before graduating from the program. This course is meant to be repeated three times to fulfill the concentration requirements.
DATA 61000 - Advanced Data Mining and Prescriptive Analytics (3)
In this course, students will learn how to utilize advanced data mining techniques for use in improving decision making. The topics covered include generation of predictive models, optimal decision making, computational simulation systems, expert and recommendation systems.
Prerequisite: DATA 51000 (may be taken concurrently) and DATA 51100 (may be taken concurrently)
DATA 62500 - Data Mining for Cyber Security (3)
The application of Data Science techniques is of increasing importance in computer security. Data mining and machine learning algorithms are now extensively employed in detecting cyber-attacks, developing authentication methods that distinguish legitimate from illegitimate users, and testing the strength of existing security technologies. In this course, students will learn how to use data mining techniques to solve real-world security problems, processing datasets, training models, and deploying solutions to strengthen a system’s defenses.
Prerequisite: DATA 55000 (may be taken concurrently)
DATA 64000 - Data Engineering (3)
This course covers the theory and practice of Data engineering. Students will learn about the data engineer role, data lineage, privacy and governance. Students will learn how to stitch together various technologies to securely serve the needs of downstream data consumers such as analysts, data scientists, and machine learning engineers. Students will be introduced to popular tools and techniques, such as Nifi, Spark, GraphQL, ORC/Parquet, that are used by data engineers in the industry.
Prerequisite: DATA 54000 (may be taken concurrently) or CPSC 50900 (may be taken concurrently)
DATA 75000 - Network Data Analysis (3)
this course, students will learn how various types of network data can be represented and analyzed using link analysis, node centrality measures, community detection algorithms, and other techniques. Much of the course will be spent on applications of the techniques to specific types of networks, such as biological networks, transportation networks, and social networks. Network data represents the relationships between various entities (nodes) and their connections. These could be neurons in the brain (connectomes), airports connected by airline routes (transportation networks), or people connected by their relationships (social networks).By analyzing network data, we can determine important nodes and connections, discover community structures, and make predictions.
Prerequisite: DATA 51000 and DATA 51100
DATA 76000 - Spatial and Temporal Data Analysis (3)
This course introduces students to the methods and techniques used to analyze spatial and temporal data such as GPS traces, traffic conditions, stock prices, geographic information, and brain connectome. The course emphasizes uncertainty management, machine learning approaches, visualization techniques, and applied case studies. The course covers the unique challenges that arise when data is influenced by both spatial (positional and structural) and temporal (time-based) factors, and teaches students how to model, interpret, and visualize such data. Topics include spatial indexing, spatial clustering, spatial autocorrelation, time-series forecasting, trajectory computing, geospatial visualization, machine learning for spatial and temporal data, and applications in fields such as transportation, urban planning, epidemiology, and the understanding of human brain.
Prerequisite: DATA 51100
DATA 77000 - Recommender Systems (3)
This course teaches the underlying techniques for building such systems and their implementation. Topics include content-based recommendations, collaborative filtering, knowledge-based systems and hybrid systems, evaluation issues, implementation design, trustworthiness and fairness. Making recommendations is important in many current industries. Recommendation systems are built to provide optimal, personalized recommendations using large datasets about user preferences and item features.
Prerequisite: DATA 51000 and DATA 51100
DATA 78000 - Data Protection and Ethics (3)
This course provides an in-depth exploration of the technical and ethical aspects of data protection and privacy, emphasizing privacy-preserving algorithms and methods used in data science. Students will learn how to develop, apply, and evaluate techniques for protecting data privacy and security in machine learning, data analysis, and data sharing, while addressing ethical considerations. Key topics include data anonymity, data validity, differential privacy, homomorphic encryption, federated learning, algorithmic fairness, the Fair Information Principles (FIPs), and data privacy regulations. The course also covers practical approaches to mitigating privacy risks and ethical concerns in real-world data science applications.
Prerequisite: DATA 55000
DATA 79001 - Doctoral Project Proposal 1 (3)
In this course, doctoral students in data science will work with the instructor to choose an appropriate project and identify members that can serve on the project advisory committee. Students will work on developing a formal proposal and perform preliminary work on the project.
DATA 79002 - Doctoral Project Proposal 2 (3)
In this course, students will continue working on their proposed project and defend their proposal in front of their advisory committee.
Prerequisite: DATA 79001
DATA 79501 - Doctoral Project Implementation 1 (3)
the implementation of their project, in coordination with their advisory committee members and any external collaborators.
Prerequisite: DATA 79002
DATA 79502 - Doctoral Project Implementation 2 (3)
In this course, students will continue the implementation of their project, in coordination with their advisory committee members and any external collaborators.
Prerequisite: DATA 79501
DATA 79503 - Doctoral Project Implementation 3 (3)
In this course, students will complete the implementation of their project, in coordination with their advisory committee members and any external collaborators.
Prerequisite: DATA 79502
DATA 79900 - Doctoral Project Presentation (3)
In this course, students will work on documenting their work throughout the project and preparing a formal report. They will also defend their project with an oral presentation in front of the advisory committee.
Prerequisite: DATA 79503
Electrical and Computer Engineering
ECEN 50000 - Electrical and Computer Engineering Mathematics (4)
This course reviews the fundamental mathematical modules that are applied in various areas of electrical and computer engineering (ECE). Emphasis will be placed on the engineering approach to solving practical problems through the application of mathematical principles and techniques. This course also covers common tools used in mathematical analysis of electrical and computer engineering designs and solutions, such as Matlab. Students are expected to have had undergraduate education in science or engineering mathematical foundation topics; this course serves to review or strengthen student understanding on these topics.
ECEN 50100 - Foundations of Electric and Electronic Circuits (4)
This course reviews the fundamental theories, concepts, and techniques in the analysis, design, and construction of electric and electronics circuits. Topics include dc and ac circuits fundamentals, electrical energy and power, circuit analysis, semiconductor devices, signals and systems, and electromagnetics. Students are expected to have had introductory background in electric and electronic circuits; this course serves to review or strengthen student understanding on these topics.
Prerequisite: (ECEN 50000 (may be taken concurrently))
ECEN 50200 - Fundamentals of Engineering Electrical and Computer Exam Review (3)
This course reviews materials covered in the Fundamentals of Engineering (FE) exam for Electrical and Computer Engineering, the first step towards becoming a professional licensed engineer (P.E.). This course will review foundational engineering topics such as math, physics, engineering ethics and engineering economics, as well as core ECE topics such as circuit analysis, electronics and software engineering. It is assumed that the student has already completed coursework in these areas. Students will be required to complete a practice FE exam at the end of the course.
ECEN 52000 - Advanced Circuit Design (3)
This course provides an in-depth treatment of analog and digital circuits. The course covers the design, testing, and optimization of electric and electronic circuits that consider real-world modern constraints, tradeoffs, low power, performance, reliability, and efficiency objectives, as well as the industry-standard tools used in the design process and analyses. This course focuses on the integrated circuits used in various modern systems, including digital, analog, mixed-signal ICs, and RFICs.
Prerequisite: (ECEN 50100 (may be taken concurrently))
ECEN 52100 - Formal Methods, Modelling, and Simulation of Circuits (3)
This course covers tools and software applications used for creating CAD and mathematical models and simulation of analog, digital, and mixed-signal circuits, as well as formal methods for verification of circuits under practical constraints and tradeoffs. The course covers simulation, modelling, and analysis of circuits at various levels of design entry, including circuit-level, gate-level, digital/analog/mixed-level (e.g. VHDL, VHDL-AMS), and system-level designs.
Prerequisite: (ECEN 50100 (may be taken concurrently)) and (CPSC 50100 (may be taken concurrently))
ECEN 52200 - Reliability and Performance Analysis of Analog and Digital Systems (3)
This course focuses on the theories, methods, and techniques for designing and building systems that meet commercial and industry standards. Topics include reliability theory and methods of reliability analysis, as well as determining, evaluating, and improving system performance to produce solutions that meet specified quality and standards.
Prerequisite: (ECEN 50100 (may be taken concurrently))
ECEN 52300 - Engineering Projects and Research (3)
his course covers the fundamentals of the two options for completing the culminating experience requirement for MSECE – project or research thesis. To prepare students for the project culminating experience, fundamentals of engineering project management and systems engineering are covered, including requirements analysis and development, design, integration and system validation and formal architecture modelling (e.g. SysML). Additionally, the course covers formal methods and processes for conducting engineering research, such as defining research problems, conducting literature search, collecting, analyzing and evaluating data, and presentation of research results. Fundamentals of technical writing for both project documentation and research dissemination are also covered.
ECEN 54000 - Fundamentals of the Internet of Things and Cyber-Physical Systems (3)
This course introduces students to the fundamentals of Internet of Things (IoT) and Cyber-Physical systems (CPS), including definitions, history, standards, technologies, and trends. In-depth discussions on functional and architecture models of IoT and CPS are covered, as well as enabling technologies such as identification, communication, sensor and actuator capabilities, cloud computing, and security.
Prerequisite: (ECEN 50100 ) and (CPSC 50100 )
ECEN 54500 - Real-Time Embedded Systems (3)
This course covers concepts and techniques to design, implement, maintain, and analyze computer and electronic systems with real-time response requirements. It contrasts design factors of real time and embedded systems with those of more traditional computer systems, and highlights applications with critical timing requirements such as vehicle and aircraft controls. Topics such as peripheral interfacing, device drivers, real-time scheduling, concurrency, synchronization, and real-time controls are also discussed.
Prerequisite: ECEN 50100 and CPSC 50100
ECEN 55000 - Robotics and Automation (3)
This course covers fundamental topics in the design, development, and analysis of automation systems and robotic mechanics and control, including tools and techniques and design processes. Focus is placed on the industrial applications of automation systems and robotics.
Prerequisite: (ECEN 50100 ) and (CPSC 50100 )
ECEN 55400 - Control Systems (3)
This course covers the fundamental principles and methodologies of classical feedback control of linear systems and its applications. Emphasis is on understanding the principles in feedback systems, practical problem formulation and the analysis and synthesis of feedback control systems using frequency and time domain techniques.
ECEN 55500 - Safety and Security of Internet of Things and Cyber-Physical Systems (3)
This course covers the security and ethical issues of securing Internet of Things (IoT) systems that are becoming increasingly embedded in modern society, potentially creating privacy, data security, and ethical issues. The course also covers safety design requirements and standards of industrial IoT, automation systems, and cyber-physical systems.
Prerequisite: (ECEN 50100 ) and (CPSC 50100 )
ECEN 55600 - Intelligent Internet of Things and Cyber-physical Systems (3)
Artificial intelligence is increasingly being integrated into Internet of Things (IoT) and Cyber-physical Systems (CPS). This course covers intelligent control of IoT and CPS and surveys current applications and capabilities of state-of-the-art intelligent IoT and CPS systems. Additionally, enabling technologies and their integration are discussed in-depth.
Prerequisite: ECEN 50100 and CPSC 50100
ECEN 57000 - Fundamentals of Electric Power Systems (3)
This course provides a graduate treatment of electric power systems and covers fundamental power engineering topics such as the analysis of power flows in delivery networks, electro-mechanical energy conversion technologies, dynamic system response to disturbances, power systems control, fault modelling and calculations, and stability analysis of power networks.
Prerequisite: (ECEN 50100 )
ECEN 57500 - Advanced Power Electronics (3)
This course provides advanced treatment of power electronics and the analysis and operation of electronic circuits for conditioning and managing large electric power signals such as those found in power supplies, motor controls, and smart electrical grid devices. Topics include advanced power electronic converters, resonant converters, switching circuits, and methods.
Prerequisite: (ECEN 50100 )
ECEN 58000 - Renewable and Sustainable Energies (3)
This course covers conversion principles and technologies behind various sources of renewable energy, with significant focus on the mathematics and physics behind the generation and distribution of electricity from these sources. The technical and sustainability advantages and disadvantages of the sources are compared.
Prerequisite: (ECEN 50100 )
ECEN 58500 - Power System Design, Operation, and Planning (3)
This course focuses on the design, planning, and operation of large scale power systems. Topics include model development, interchange capability, interconnections, and pooling. Technical aspects of design and implementation are studied in-depth, as well as practical planning considerations such as economic factors and site selection.
Prerequisite: (ECEN 50100 )
ECEN 58600 - Smrt Grd Dsgn & Operation (3)
This course focuses on the design and operating principles of state-of-the-art and next generation smart grids. Topics include enabling technologies, integration of different energy sources, distributed generation, integration of flexible loads, distribution automation, and advanced metering infrastructure.
Prerequisite: (ECEN 50100 )
ECEN 69700 - Master's Project (1-6)
This course is the capstone experience for students pursuing the non-thesis option in the MSECE program. Students will design, develop, implement and analyze the performance of a solution for a real-world problem related to the area of Electrical and/or Computer Engineering. Students are expected to apply formal engineering design process methodologies to develop, document, and present project results. This course is repeatable and can be taken in 1-6 credit hour chunks; students in the non-thesis option must accumulate at least six credit hours of the Master’s Project course in order to graduate.
Prerequisite: ECEN 52300
ECEN 69800 - Master's Thesis (1-6)
Students design and conduct research in the area of Electrical and/or Computer Engineering. Students will work closely with a faculty adviser to produce a publication-worthy document to be formally presented to a panel of faculty and peers. This course is repeatable and can be taken in 1-6 credit hour chunks; students in the thesis option must accumulate at least six credit hours of the Master’s Thesis course in order to graduate.
Prerequisite: ECEN 52300
Information Systems
INSY 50500 - Introduction to Information Security (3)
This course provides a broad overview of the threats to the security of information systems, the responsibilities and basic tools for information security, and the levels of training and expertise needed in organizations to reach and maintain a state of acceptable security. Topics include an introduction to confidentiality, integrity, and availability; authentication models and protection models; security kernels; secure programming; intrusion detection and response; operational security issues; physical security issues; and personnel security. Additional topics include policy formation and enforcement; access controls and information flow; legal and social issues; identification and authentication in local and distributed systems; classification and trust modeling; and risk assessment.
INSY 51000 - Business Data Networking (3)
This course will cover fundamental concepts, principles, and practical issues relevant to the design, analysis, and implementation of enterprise-level trusted networked information systems. Topics include networking and security architectures and techniques and the protocols defined at the various layers of the Internet model.
Prerequisite: (CPSC 50000 (may be taken concurrently)) or (INSY 50600 (may be taken concurrently))
INSY 52300 - Computer Forensics for Business Applications (3)
This course presents tools for conducting a hands-on computer forensics investigation in a business setting. Common business cybercrimes such as financial fraud, data leakage, harassment, and intellectual property violations will be investigated in this course. Students will gain an in-depth understanding of the tools and techniques used by computer forensics experts such as evidence imaging, data recovery, e-mail investigations, graphics investigations, registry analysis, password recovery, and decryption of encrypted data.
INSY 53000 - Legal and Ethical Issues in Information Security (3)
Legal and ethical issues are important concepts in this field. This course covers the following topics: policy implications of the use of computers and in particular of the security of computers in modern society; fundamentals of American law with particular regard to the legal aspects of the use of computers and of computer security; the organization and use of the American legal system; ethical challenges in a technological environment; identification of organizations and materials that can be of assistance in resolving or responding to policy, legal, and ethical issues; and social and public policy issues pertaining to the commercial development, availability, and marketing of both software and hardware for encryption.
INSY 55000 - Operations and Organization Security (3)
This course discusses cyber-attacks and security practices that are used to protect individuals, organizations and the national infrastructure. The course will focus on 10 strategies organizations supporting national infrastructure should implement to improve security posture. The concepts discussed in this course are relevant to operations security of all organizations.
INSY 55100 - Information Security Strategies and Risk Management (3)
This course covers the strategies, procedures and policies to manage and mitigate risk in information systems. It also covers risk analysis techniques that can be used to identify and quantify both accidental and malicious threats to computer systems within an organization. In addition to technical solutions, the course considers strategies and policies that will provide cost effective and highly secure systems.
INSY 55200 - IT Governance and Compliance (3)
This course uses case studies to teach students how to implement an IT Governance process in a company using COBiT (Control Objectives for IT andamp; related technology), align IT strategy with the business planning process, and monitor and measure the IT internal controls to meet internal and external compliance legislation like Sarbanes Oxley and FTC (Federal Trade Commission) requirements. The course will also introduce students to the planning and conducting of an IT Audit.
Prerequisite: INSY 53000 (may be taken concurrently) or INSY 50600 (may be taken concurrently)
INSY 55600 - Disaster Recovery and Business Continuity Planning (3)
This course examines detailed aspects of incident response and contingency planning consisting of incident response planning, disaster recovery planning, and business continuity planning. Developing and executing plans to deal with incidents in the organization is a critical function of information security management. This course focuses on the planning processes for all three areas of contingency planning: incident response, disaster recovery and business continuity. The course also covers the execution of response to human and non-human incidents in compliance with organizational policies and contingency plans.
INSY 56600 - Cybercrime Prevention Tools (3)
This course provides students with the hands-on skills required to manage and mitigate cybercrime at businesses, organizations, and government entities. The successful protection of digital assets of an organization requires a solid understanding of such techniques used by hackers to be better prepared against those kinds of attacks. By deploying a Risk Management approach, students will also learn policy management, identify data assets and verify the effectiveness of existing controls.
Prerequisite: or CPSC 50000 (may be taken concurrently) or INSY 59400 (may be taken concurrently)
INSY 59100 - Information Security Practicum: Management (3)
This capstone course in the MSIS curriculum enables a student to integrate the expertise gained in all other courses in the development of an information security strategy. Through a series of assignments that simulate real-world information security threats and incidents, students will apply the key concepts from each MSIS course to design, develop and implement solutions that mitigate these threats. This course must be taken as the last course or in the final semester of the MSIS program.
Prerequisite: INSY 51000 (may be taken concurrently) and INSY 53000 (may be taken concurrently) and CPSC 51500 (may be taken concurrently) and CPSC 52000 (may be taken concurrently) and CPSC 52500 (may be taken concurrently)
INSY 59700 - Wksp: Information Security Certification Prep 1 (1)
Information Security Certification.
Attributes: College of Business Seminar, Workshop/Seminar
INSY 59710 - Wksp: Information Security Certification Prep 2 (1)
Information Security Certification.
Attributes: College of Business Seminar, Workshop/Seminar
INSY 59900 - Independent Study (3)
This is an advanced course that enables students to carry out independent study under the supervision of a faculty member.
INSY 65500 - Quality Management in Healthcare (3)
This course in Quality Management provides a systematic approach to improving and managing quality in healthcare organizations. It is designed for healthcare managers and executives. Students will learn both the conceptual and practical aspects of health care quality. A number of quality management and performance tools and techniques will also be introduced. These include Failure Mode and Effect Analysis, Cause-Effect diagrams, Flow Charts, Pareto Diagrams, Function Deployment Matrices, Histograms, Data Sheets, and Control Spreadsheets.
Prerequisite: (BSAD 50800 (may be taken concurrently)) or (BSAD 52000 (may be taken concurrently))