Computer Science
Department of Computer Science
Chairperson: Erich J. Baker
Graduate Program Director: G. Michael Poor
Computer Science (CSI)
Research presentations by the graduate faculty, outside speakers, and select advanced graduate students. Attendance at various functions is also required.
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.
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.
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.
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.
Introduction to the the fundamentals of computer networking, including communication issues/solutions at various layers, socket programming, and internet protocols.
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.
A survey of mathematical topics for computer scientists. An introduction to differential and integral calculus, matrices, proof techniques, and statistics.
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).
Survey of current and seminal research in networking.
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.
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.
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.
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.
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.
Advanced topics in operating systems including queuing models, performance measurement and evaluation, security and protection, and design issues involved in operating system design.
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.
Advanced topics in software engineering research, including techniques used in software verification and validation with a particular focus on software specification and testing.
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.
Computer modeling of a variety of systems. Topics include selections from: linear programming, network analysis, queuing theory, game theory, and statistical methods and models.
Description and evaluation of parallel hardware and software. Distributed-memory versus shared-memory. Design and implementation of parallel programs using parallel hardware and software.
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.
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.
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.
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.
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.
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.
Advanced topics in software engineering research, including techniques used in the modeling and analysis of complex systems.
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.
Programming and data storage with cloud architectures. Topics include the Apache Hadoop Ecosystem and related programming frameworks.
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.
Introduction to concepts in cybersecurity, including cryptography; instruction detection/prevention; attacking/defending; cybersecurity tools; malware and reverse engineering; and defensive programming.
Advanced topics in cybersecurity, including threat modeling, policy, hardware systems, network/wireless/protocol security, cloud security, risk analysis/management/mitigation, and compliance.
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.
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.
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.
May be repeated for credit, provided topic is not duplicated, for a maximum of eighteen semester hours total.
Provides graduate students opportunity for internship work experience in computer science-related positions with consent of major advisor.
Research, data analysis, writing, and oral defense of an approved master's thesis. At least three hours of CSI 5V99 are required.
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.
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.
Research, data analysis, writing, and oral defense of an approved doctoral dissertation topic.