Course Descriptions
Several models of computation (including finite automata, pushdown automata, and Turing machines) and their related languages. Topics include closure properties, regular languages, context‐free languages, decidability and recognizability, and time and space complexity (including NP‐completeness and randomized complexity).
Traditional machine learning algorithms, neural networks, etc., are pieces of a greater puzzle required for machines to qualitatively learn, rather than just statistically remember. Therefore, students learn new AI approaches and AI architectures: autonomy, deep sensing, measuring trust, complexity analysis, security, ethics, multi-state, and quantum for producing systems for challenging human settings like deep-sea, space, and disaster recovery
Pre-requisite(s): Students are expected to have competency equivalent to CSI 5301, or equivalent course. Advanced data structures, algorithm design, and analysis. Topics include common data structures, algorithms, implementation, classes of algorithms, algorithm analysis, computational tradeoffs, and adaptation of familiar algorithms to new problems.
Pre-requisite(s): Students are expected to have competency equivalent to CSI 5303, or equivalent course. Methods for developing and maintaining software systems; system software life cycle, requirements elicitation, specification and design methods, planning, maintenance, configuration management, documentation and coding standards, cost estimation, metrics and quality attributes; class project.
Pre-requisite(s): Students are expected to have competency equivalent to CSI 5304, or equivalent course. Survey of current and seminal research in networking.
Pre-requisite(s): Students are expected to have competency equivalent to CSI 5302, or equivalent course. A continuation of database system implementations to include object-oriented and knowledge-based systems. Additional topics covered are physical-data organization, database integrity, security, transaction management, and distributed database management.
Pre-requisite(s): CSI 3372 or consent of instructor
Advanced topics in software engineering research, including techniques used in software verification and validation with particular focus on software specification and testing.
Design and implementation of distributed systems with up-to-date software architecture and relevant development frameworks. Topics include inter-module communication, asynchronous processing, security, concurrency, parallelism, and an overview of contemporary enterprise technology and challenges.
Prerequisite(s): Consent of the instructor. Object-oriented design and development with best practices in solving recurring engineering problems. Topics include core object-oriented concepts, such as composition, inheritance, polymorphism, and templates; an overview of design pattern-based problem solving and design practices; and advanced design patterns applicable for enterprise solution development.
Advanced topics in software engineering research, including techniques used in the modeling and analysis of complex systems.
Introduction to concepts in cybersecurity, including cryptography; instruction detection/prevention; attacking/defending; cybersecurity tools; malware and reverse engineering; and defensive programming.