Computer Science (CSI)

CSI 4321  Data Communications  (3)  
Pre-requisite(s): Minimum grade of C in CSI 3336  
Fundamentals of computer networking including data transmission, communication software, protocols, simple networks and internetworking.
CSI 4322  Numerical Analysis  (3)  
Cross-listed as MTH 4322  
See MTH 4322 for course information.
CSI 4328  Numerical Linear Algebra  (3)  
Cross-listed as MTH 4328  
See MTH 4328 for course information.
CSI 4335  Database Design I  (3)  
Pre-requisite(s): CSI 3342  
Concepts for current relational database design and implementation, including SQL, ER diagrams, normalization, JDBC, XML and DBMS components. Semester project designing a relational database.
CSI 4337  Introduction to Operating Systems  (3)  
Pre-requisite(s): C or better in CSI 3336  
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 4341  Computer Graphics  (3)  
Pre-requisite(s): C or better in CSI 3334 and MTH 2311 or 2321  
Introduction to graphic representation and display of information and objects by computer. Topics include hardware display technology and algorithms for two-dimensional and three-dimensional graphics. A current graphic system model will be used for programming assignments.
CSI 4344  Object-Oriented Development  (3)  
Pre-requisite(s): CSI 3342  
Object-oriented analysis and design methods. Group software projects.
CSI 4352  Introduction to Data Mining  (3)  
Pre-requisite(s): Minimum grade of C in CSI 3335, Minimum grade of C in CSI 3344  
Introduction to the concepts, techniques, and applications of data warehousing and data mining. Topics include design and implementation of data warehouse and OLAP operations; data mining concepts and methods such as association rule mining, pattern mining, classification, and clustering; applications of data mining techniques to complex types of data in various fields.
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 5328  Applied Artificial Intelligence  (3)  
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.
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 5358  Applied Data Science  (3)  
This course surveys practical areas of data science using an applicationbased approach. Additionally, students are introduced to new content and coding paradigms for developing more intelligent data processing environments. Students participate in guided projects intended to replicate the integration of scalable computing, integration of very large passive and active high-speed data sets, and new analytic approaches.
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 6347  Research Issues in Distributed Computing  (3)  
Seminar course on research issues in distributed computing. Issues include correctness, performance, security, fault tolerance, applications and algorithms. Students will read a collection of research papers on one or more topics and present information related to a topic.
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 eighteen 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.