Computer Science (CSI)

CSI 5010  Graduate Seminar  (0)  
Pre-requisite(s): Graduate standing in computer science  

Research presentations by the graduate faculty, outside speakers, and select advanced graduate students. Attendance at various functions is also required.

CSI 5199  Non-Thesis Degree Completion  (1)  

To fulfill requirements for non-thesis master's students who need to complete final degree requirements other than coursework during their last semester. This may include such things as a comprehensive examination, oral examination, or foreign language requirement. Students are required to be registered during the semester they graduate.

CSI 5301  Foundations of Algorithms  (3)  

This course provides a comprehensive introduction to computer algorithms taken from diverse areas of application. The course concentrates on algorithms of fundamental importance and on analyzing the efficiency of these algorithms.

CSI 5302  Foundations of Database  (3)  

The course covers current relational database design concepts including ER diagrams, database access techniques such as SQL, database issues including performance and security, and web-database applications.

CSI 5303  Foundations of Software Engineering  (3)  
Pre-requisite(s): Consent of instructor  

Fundamentals of software engineering; software development processes, requirements analysis, modular design, design patterns, software testing and evolution, configuration management, and implementation of software systems. A small project to illustrate and extend concepts from lectures.

CSI 5304  Foundations of Data Communications  (3)  

Introduction to the the fundamentals of computer networking, including communication issues/solutions at various layers, socket programming, and internet protocols.

CSI 5305  Foundations of Operating Systems  (3)  

Online only. Operating system design and implementation. Topics include process control and synchronization, memory management, processor scheduling, file systems, and security. Course projects implement parts of an operating system.

CSI 5306  Foundations of Mathematics for Computer Science  (3)  

A survey of mathematical topics for computer scientists. An introduction to differential and integral calculus, matrices, proof techniques, and statistics.

CSI 5310  Introduction to Computation Theory  (3)  

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).

CSI 5321  Advanced Data Communications  (3)  
Pre-requisite(s): CSI 4321 or equivalent  

Survey of current and seminal research in networking.

CSI 5324  Software Engineering  (3)  
Pre-requisite(s): Consent of instructor  

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.

CSI 5325  Introduction to Machine Learning  (3)  
Pre-requisite(s): CSI 4336 or consent of instructor  

An introduction to topics in machine learning, including supervised and unsupervised learning, modeling for regression and classification, naive Bayes methods, kernel-based learning, support vector machines, statistical and mathematical models for learning, and model assessment and prediction.

CSI 5330  Advanced Computational Biology  (3)  
Cross-listed as BINF 5330  

Advanced course of computational methods for understanding biological systems. Topics include string matching, suffix tree analysis, sequence alignment, and other graph theoretic algorithms for gene mapping and sequencing, phylogenetic inference, and biological network analysis.

CSI 5335  Advanced Database  (3)  
Pre-requisite(s): CSI 3334 and 3335  

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.

CSI 5336  Data Models  (3)  
Pre-requisite(s): CSI 4334 and 4335  

Conceptual and abstract parts of databases. Topics include commonly used data models (hierarchical, network, relational, semantic network and infological) and the use of data models for database design and operation.

CSI 5337  Advanced Operating Systems  (3)  
Pre-requisite(s): CSI 4337 and STA 4385; or PSY 4300  

Advanced topics in operating systems including queuing models, performance measurement and evaluation, security and protection, and design issues involved in operating system design.

CSI 5338  Advanced Computer Organization  (3)  
Pre-requisite(s): CSI 3338 or consent of instructor  

Advanced topics in computer systems organization, including techniques used in large-scale computer systems, parallel and pipeline architectures, stack machines, and other non-von Neumann architectures.

CSI 5342  Software Verification and Validation  (3)  
Pre-requisite(s): Consent of instructor  

Advanced topics in software engineering research, including techniques used in software verification and validation with a particular focus on software specification and testing.

CSI 5343  Introduction to Human Computer Interaction  (3)  

Introduction to Human Computer Interaction is a research seminar designed to explore the issues of design, organization, implementation, communication, training, and management which confront humans as users of computer environments.

CSI 5344  Analytic Models  (3)  
Pre-requisite(s): STA 3381  

Computer modeling of a variety of systems. Topics include selections from: linear programming, network analysis, queuing theory, game theory, and statistical methods and models.

CSI 5345  Parallel Systems  (3)  

Description and evaluation of parallel hardware and software. Distributed-memory versus shared-memory. Design and implementation of parallel programs using parallel hardware and software.

CSI 5346  Design Automation  (3)  

This course is about automating the design of Very Large Scale Integrated circuits. The curriculum covers compiled and event driven simulation algorithms, differential simulation techniques, current literature in electronic simulation, channel routing algorithms, Lee routers, partitioning, current literature in placement and routing, synthesis algorithms, and current literature in logic and circuit synthesis.

CSI 5347  Distributed Systems  (3)  
Pre-requisite(s): Consent of the instructor  

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.

CSI 5350  Advanced Algorithms  (3)  
Pre-requisite(s): CSI 3344 or graduate standing  

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.

CSI 5351  Data Visualization  (3)  

An in-depth exploration of the techniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, psychology, and cognitive sciences. Explores how to better understand data, present clear findings, and tell engaging data stories.

CSI 5352  Advanced Object-Oriented Development  (3)  
Pre-requisite(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.

CSI 5353  Multimedia Systems  (3)  

Overview of systems requirements to handle multimedia information. Topics include synchronization, content-based information retrieval, protocols, and media type definitions. Theory and applications are covered.

CSI 5354  Advanced Software Engineering  (3)  
Pre-requisite(s): CSI 5324 or consent of instructor  

Advanced topics in software engineering research, including techniques used in the modeling and analysis of complex systems.

CSI 5355  Data Mining and Analysis  (3)  
Pre-requisite(s): Graduate standing  

Advanced topics in Data Mining are presented. These include the pattern analysis of numerical, categorical, time, and textual data. The course focuses on algorithms for clustering and predictive modeling with special attention to extracting useful information from raw data, and methods for data validation.

CSI 5357  Cloud Computing  (3)  

Programming and data storage with cloud architectures. Topics include the Apache Hadoop Ecosystem and related programming frameworks.

CSI 5360  Information Retrieval & Natural Language Processing  (3)  
Pre-requisite(s): CSI 3344, MTH 2311 or equivalent  

Introduce fundamental and advanced algorithms in Information Retrieval and Natural Language Algorithms. Topics include Language Modelling, Retrieval Algorithms and Evaluation, and Language Processing techniques such as tagging, parsing, and lexical semantics. Applications and research topics are also covered.

CSI 5361  Cybersecurity Concepts  (3)  

Introduction to concepts in cybersecurity, including cryptography; instruction detection/prevention; attacking/defending; cybersecurity tools; malware and reverse engineering; and defensive programming.

CSI 5362  Advanced Cybersecurity Concepts  (3)  
Pre-requisite(s): CSI 5361  

Advanced topics in cybersecurity, including threat modeling, policy, hardware systems, network/wireless/protocol security, cloud security, risk analysis/management/mitigation, and compliance.

CSI 5365  Secure Systems, Software Architecture, Development, and Operations  (3)  
Pre-requisite(s): CSI 5361 Development and analysis of secure system lifecycles, software and hardware flaws and detection, secure repository/deployment, secure supply chain, and compromise mitigation architectures  
CSI 5367  Cybersecurity Analytics  (3)  
Pre-requisite(s): CSI 5362  

Fundamentals of data analytics approaches and applications for cybersecurity; algorithms for analysis of structured and unstructured data; applications of machine learning to anomaly detection in software and system; exploration of automated detection techniques, various attacks, and post-compromise activities.

CSI 5388  Advanced Topics in Human-Computer Interaction  (3)  

This class investigates the “emerging” next generation of user interaction with a focus on the design and evolution of interaction techniques. Variety of user interaction styles may include gesture, virtual reality, augmented reality, ubiquitous, tangible, lightweight, tacit, passive, affective, perceptual, context-aware, and multi-modal interfaces.

CSI 5V90  Special Problems  (1-9)  
Pre-requisite(s): Consent of instructor  
CSI 5V92  Master's Research  (1-3)  
Pre-requisite(s): Consent of instructor  

Concentrated research for the purpose of determining whether the thesis or project option is most appropriate, and for the initial selection of a topic area.

CSI 5V93  Special Topics in Computer Science  (1-4)  

May be repeated for credit, provided topic is not duplicated, for a maximum of eighteen semester hours total.

CSI 5V95  Internship Experience  (1-3)  
Pre-requisite(s): Graduate program director approval required  

Provides graduate students opportunity for internship work experience in computer science-related positions with consent of major advisor.

CSI 5V96  Master's Project  (1-3)  
Pre-requisite(s): Consent of instructor  
CSI 5V99  Thesis  (1-9)  
Pre-requisite(s): Consent of instructor  

Research, data analysis, writing, and oral defense of an approved master's thesis. At least three hours of CSI 5V99 are required.

CSI 6V10  Doctoral Prospectus Research  (1-6)  
Pre-requisite(s): Instructor approval  

Supervised research for developing a dissertation prospectus. Prepares students for the preliminary exam required for students to advance to candidacy. A student may repeat this course for credit with a maximum of ten total hours. Registration for this course is sufficient for achieving full-time status.

CSI 6V90  Special Topics in Computer Science  (1-3)  

Special topics in Computer Science. This course may be taken up to 6 times, on a different topic each time, for up to 18 hours of credit.

CSI 6V99  Dissertation  (1-12)  

Research, data analysis, writing, and oral defense of an approved doctoral dissertation topic.