Computer Science
Department of Computer Science
Chairperson: Erich J. Baker
Graduate Program Director: G. Michael Poor
Computer Science (CSI)
Fundamentals of computer networking including data transmission, communication software, protocols, simple networks and internetworking.
Concepts for current relational database design and implementation, including SQL, ER diagrams, normalization, JDBC, XML and DBMS components. Semester project designing a relational database.
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.
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.
Object-oriented analysis and design methods. Group software projects.
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.
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.
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.
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.