Computer Science
Department of Computer Science
Chairperson: Greg Hamerly
Graduate Program Director: Eunjee Song
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 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)
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)
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)
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)
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)
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.