Computer Science Courses (CS)
CS 5545 - Computer Architecture (3)
Functional descriptions of the major components of digital computer architectures are explored, explored, such as arithmetic and control units, memory hierarchies, channels and characterizations and interactions of individual major components of small and large computers. Also included are minicomputer architectures, specialized computer architectures, and distributed data processing architectures.
CS 5549 - Analysis of Algorithms (3)
This course discusses various algorithms that solve problems in computing. Advanced design and analysis techniques are discussed to understand the trade-offs involving when choosing an algorithm. Topics include but not limited to dynamic programming, graph algorithms, string matching, NP- Completeness, approximation algorithm, number theory.
CS 5550 - Operating Systems Principles (3)
This course discusses what operating systems are, what they do, how they are designed and organized. Topics discussed include: process management, storage management, I/O systems, file systems, virtual machines. Applications of these concepts in modern operating systems such as Windows and Unix are presented.
CS 6622 - Introduction to Cyber Security (3)
This course provides an introduction to cyber security. Topics include security protocols and cryptography; cyber threats and defenses; attack modeling and risk analysis: cybercrime: cyber law, ethics and policies.
CS 6625, 6626, 6627 - Specialized Study in Computer Science (1-3)
This course involves the study of a problem or problems using research techniques. Selection of problem is to be approved by the student’s advisor, instructor, college dean, and Dean of the Graduate School. The study should contribute to a student’s program. Preparation of a scholarly paper is required and may involve an oral defense. Total credit for any combination of enrollments in the specialized study courses may not exceed three (3) semester hours. The course may not be substituted for a required course. See semester hour limits listed under Course Restrictions in General Regulations.
CS 6630 - Introduction to Bioinformatics (3)
This course covers the computational methods for analyzing information about the sequence, structure, and function of biological molecules and systems, including DNA, RNA, proteins, metabolites, and other small molecules. Topics include: multiple sequence alignment, Hidden Markov Models, mathematical analysis of phylogenetic trees, physical mapping and assembly of sequences, genome rearrangement.
CS 6632 - Computer Vision (3)
Computer Vision is a topic that combines techniques from several different subfields of applied mathematics and computer science. Broadly, computer vision algorithms are used to process, analyze, and understand static and motion picture data. Frequency/time-domain transformations and Machine Learning algorithms serve as the backbone of Computer Vision.
CS 6634 - Cloud Computing (3)
This course will cover a wide range of cloud computing related concepts. Topics include but not limited to cloud computing principles, economics, protocols, infrastructures, components, services architectures and implementations. In addition, popular cloud solutions such as AWS, and Azure are discussed. Students will become familiar with the details of the major services related to Compute, Storage, Network and Security.
CS 6635 - Image Processing (3)
This course introduces fundamentals and research directions in image processing. Topics include but are not limited to image representation and description, image transformation and filtering, image enhancement, restoration and reconstruction, image segmentation, image compression, object recognition, as well as image information retrieval.
CS 6636 - Data Visualization and Exploration (3)
Science of data visualization and exploration are discussed to understand data. Various visualization methods are compared for their applications and effectiveness. Data visualization techniques are applied to various application domains.
CS 6640 - Advanced Database Concepts (3)
This course discusses design and implementation issues associated with relational and object-oriented databases. Topics include E-R modeling, relational modeling, normal forms, data storage, and concepts of object-oriented data modeling.
CS 6643 - Theory and Design of Compilers (3)
The formal properties of grammars, lexical and syntactic analysis, macro generators, and code selection are presented. Additional topics include hardwire compilers, extensibility of languages, and implementation of simple compilers.
CS 6645 - Performance in Analytical Models (3)
The fundamental concepts and structures for understanding the different approaches in analytical structures. Techniques such as Indexing, Distributed Databases, Parallel Queries, Virtualization, Fitness Function Optimization, and Biological Computing will be covered.
CS 6646 - Information Systems for Operations and Management (3)
Conceptual and practical foundations of information processing systems’ support for management and decision-making functions are examined. Computer system project management, economic and legal considerations of management information systems, systems implementation and evaluation are additional topic areas covered in this course.
CS 6647 - Simulation and Modeling (3)
The theory and design of modeling problems, validation and verification of simulation models for dynamic queuing and static Monte Carlo problems are reviewed. Discrete event and continuous simulation models are analyzed. Random number generation used in simulation languages and the implementation of models on computer hardware and software engineering using general purpose and simulation languages represented in this course.
CS 6648 - Optimization Modeling (3)
A systems approach is explored as it relates to using various algorithms to solve different classes of managerial problems with a computer.
CS 6649 - Special Topics in Computer Science (3)
A series of advanced topics in areas of computer science is offered. The course details a structured discussion of varied subjects to include technological updates, a more intense study of topics covered in other course offerings, and an introduction to advanced concepts such as artificial intelligence, the theory of computability, and formal languages.
CS 6660 - Algorithmic Graph Theory (3)
Theory and algorithms for solving computational problems in graphs and hyper-graphs. The topics may include minimum transversals, maximum matchings, trees and bipartite graphs, chordal graphs, planar graphs and graph coloring, hyper-trees, chordal hyper-graphs, planar hyper-graphs and hyper-graph coloring, colorability, perfection, and chromatic spectrum.
CS 6661 - Big Data Algorithms and Systems (3)
Algorithmic techniques and information system plat-forms to handle big data are discussed in this course. Topics include but not limited to randomized methods, data stream algorithms, various big data plat-forms, such as Hadoop, and Spark.
CS 6664 - High-Performance Computing (3)
This course teaches the methods and technology of high-performance computing and its usage in solving scientific problems. Topics focus on advanced computer architectures, parallel algorithms, parallel languages, performance-oriented computing, and grid and cluster computing.
CS 6666 - Computer Graphics (3)
This course covers the theory, design, implementation and applications of computer graphics. Topics include common graphics hardware, 2D and 3D transformations and viewing, basic raster graphics, concepts image processing, modeling, rendering, illumination, shadows, textures, programmable shaders, and animation.
CS 6668 - Network Security (3)
The course covers theory and practice of communication security in computer systems and networks. Topics include authentication and access control, virtual networks, shared key encryption, public key encryption, and digital signature.
CS 6670 - Applied System Analysis and Design (3)
Introduction to information systems development process. Systems analysis methods, covering activities, tools, and techniques for requirements gathering, modeling and specification. Systems design methods, including activities, tools and techniques for design, with an emphasis on architecture, rapid development and prototyping, and detailed design. Introduces classical approaches such as information engineering as well as object-oriented analysis and design.
CS 6672 - Distributed Algorithms (3)
This course will study issues in distributed computing through models, algorithms and bounds, with an emphasis on fundamental problems. Topics in this course will include but not limited to basic models and complexity measures, leader election, mutual exclusion, consensus, fault-tolerance, broadcast and multicast, causality, synchronization, simulations among models.
CS 6674 - Network and Information Security (3)
The goal for students in this course is to learn the fundamentals of network and information security. The topics include introduction to network security, basic cryptography, authentication, cipher techniques, attacks and defenses on computer systems, overview of essential concepts and methods for providing and evaluating security in information processing systems, importance of management and administration, social issues such as individual privacy and public policy.
CS 6676 - Advanced Computer Network (3)
The goal of this course is to discuss contemporary issues of computer networks such as Wireless net-works, Sensor networks, Optical Networks etc. Students are expected to review research papers and work on semester long projects. Topics will cover issues related to network communication protocol stacks and simulation of these computer networks. This course assumes good knowledge of object-oriented programming.
CS 6678 - Advanced Artificial Intelligence (3)
Intelligent agents, problem-solving, search, knowledge representation and reasoning, planning, and reasoning with uncertain knowledge. Machine learning. Design and implementation of artificial intelligence systems including expert systems, planning, logic and constraint programming.
CS 6679 - Advanced Penetration Testing and Network Defense (3)
The course focuses on modern state of art information system technologies, their security vulnerabilities and possible defense strategies. Topics include but not limited to penetration tools, cyber security strategies, threat intelligence, log analysis.
CS 6680 - Advanced Software Engineering (3)
This course covers advanced theoretical concepts of software engineering. Topics include software development models, requirement analysis, project planning and management, software architecture and design, implementation, and testing and validation.
CS 6681 - Video Game Design and Development (3)
This course introduces students to digital game design. Broad topics include but not limited to design, prototyping, coding, and testing of digital games. The course emphasizes on the use of modern tools, techniques, and game development engines.
CS 6682 - Machine Learning (3)
Introduction to Machine Learning, covering key algorithms in supervised, unsupervised, and reinforcement learning, such as Kernel Methods, Bayesian Networks, Hidden Markov Models, K-Means, etc. The class will also address key concepts and challenges in Machine Learning, such as the bias-variance tradeoff, generalization, regularization, boosting, etc. The course is project-based, with a focus on application in computational biology/bioinformatics. A basic knowledge of statistics and probability is a must.
CS 6699 - Research and Thesis (1-6)
Guided research in Computer Science results in the preparation of a scholarly thesis. The thesis includes a discussion of the research design and methodology available to plan and conduct a systematic, thorough, critical, interpretive and analytical research in an area appropriate to the interest of the individual student and consistent with the degree program. The course requires students to prepare a thesis within guidelines provided by the faculty member and to defend it before a thesis committee.