Computer Science (COMP-SCI)

Courses

COMP-SCI 5101 Discrete Structures Review for Graduate Students Credits: 1-3

A review of mathematical logic, sets, relations, functions, mathematical induction, and algebraic structures with emphasis on computing applications. Recurrence relations and their use in the analysis of algorithms. Graphs, trees, and network flow models. Introduction to Finite state machines, grammars, and automata. Students must have completed College Algebra before taking this course and be in the School of Science and Engineering Graduate program.

COMP-SCI 5102 Operating Systems Review for Graduate Students Credits: 1-3

This course covers concurrency and control of asynchronous processes, deadlocks, memory management, processor and disk scheduling, parallel processing, and file system organization in operating systems.

Prerequisites: Data Structures, Computer Architecture.

COMP-SCI 5103 Advanced Data Structures and Analysis of Algorithms Review for Graduate Students Credits: 1-3

A review of linear and hierarchical data structures, including stacks, queues, lists, trees, priority queues, advanced tree structures, hashing tables, dictionaries and disjoint-sets. Asymptotic analysis techniques and algorithms: from design strategy (such as greedy, divide-and-conquer, and dynamic programming) to problem areas (such as searching, sorting, shortest path, spanning trees, transitive closures, graph algorithms, and string algorithms) arriving at classical algorithms with efficient implementation. Introduction to the basic concepts of complexity theory and NP-complete theory. Students must have taken courses in Linear Algebra, Discrete Structures, Data Structures, and Applied Probability before taking this course.

COMP-SCI 5514 Optical Fiber Communications Credits: 3

Fiber optic cable and its characteristics, optical sources and transmitters, optical detectors and receivers, optical components such as couplers and connectors, WDM and OFDM techniques, modulation and transmission of information over optical fibers, design of optical networks, single and multihop fiber LANs, optical carrier systems.

Prerequisites: COMP-SCI 411.

COMP-SCI 5520 Network Architecture Credits: 3

A study of the concepts and principles in the design and implementation of computer communication networks, their protocols, and architectures. Students will learn layering, and addressing, naming, routing, internetworking, Internet protocols, reliable transfer, congestion control, link control, multiple media access, and network measurement and management.

Prerequisites: COMP-SCI 320 or COMP-SCI 431.

COMP-SCI 5525 Cloud Computing Credits: 3

Cloud computing systems operate in a very large scale, and are impacting the economics and the assumptions behind computing significantly. This special topics course provides a comprehensive overview of the key technical concepts and issues behind cloud computing systems such as compute, storage and network resource virtualization and management. We will cover a range of topics of cloud computing including: Cloud system architectures and taxonomy, Computing virtualization techniques, Virtual machine resource management, Data center networking issues, Big data transfer protocols and management, Large scale distributed file system examples (Google File System), Cloud programming.

Prerequisites: CSEE 5110, COMP-SCI 431.

COMP-SCI 5530 Principles of Data Science Credits: 3

A study of the data science lifecycle and principles, including question formulation, data collection, data wrangling, exploratory data analysis and visualization, statistical inference and prediction, and decision-making. Students will learn quantitative critical thinking, key principles and techniques needed to carry out this cycle, and analysis of various data (e.g., text data and geospatial data).

Prerequisites: COMP-SCI 201.

COMP-SCI 5531 Advanced Operating Systems Credits: 3

Components of an operating system, scheduling/routing mechanisms, process control blocks, design and test various operating system components.

Prerequisites: COMP-SCI 431.

COMP-SCI 5533 Applied Cryptography Credits: 3

A study on the principles, algorithms, and applications of cryptography. Students will learn symmetric encryption, asymmetric encryption, hashing, and digital signatures and evaluate security protocols and privacy-preserving encryption techniques.

Prerequisites: MS CS or MS DS Student.

COMP-SCI 5540 Principles of Big Data Management Credits: 3

This course will introduce the essential characteristics of Big Data and why it demands rethinking how we store, process, and manage massive amounts of structured and unstructured data. It will cover the core technical challenges in Big Data management i.e., the storage, retrieval, and analysis of Big Data. It will emphasize on fundamental concepts, analytical skills, critical thinking, and software skills necessary for solving real-world Big Data problems. Tools such as Apache Hadoop, Pig, Hive, HBase, and Apache Spark will be covered. Extensive reading of research papers and in-class presentations will be heavily emphasized in this class.

Prerequisites: COMP-SCI 431 and COMP-SCI 470.

COMP-SCI 5542 Big Data Analytics and Applications Credits: 3

Big Data analytics focus on analyzing large amounts of data to find useful information and to make use of the information for better business decisions. This course introduces students to the practice and potential of big data analytics and applications. In this course, students will have hand-on experience with Big Data technologies (Hadoop and its ecosystems) and tools (Cloudera, RMahout, HBase) for the analysis of large data sets across clustered systems. Students will learn how to develop highly interactive applications for business intelligence.

Prerequisites: COMP-SCI 451.

COMP-SCI 5543 Real-time Big Data Analytics Credits: 3

This course teaches students fundamental theory and practice in the field of big data analytics and real time distributed systems for real time big data applications. In this course, students will have hands-on experience for the development of real-time applications with various tools such as Twitter's Storm, Apache Flume, Apache Kafka for real time analysis of stream data such as twitter messages and Instagram images.

Prerequisites: COMP-SCI 451.

COMP-SCI 5546 Distributed Computing Systems Credits: 3

Advanced concepts and techniques of distributed computing and include inter-process communication, time synchronization, messaging, and remote invocation. Students will develop and investigate techniques and algorithms for distributed coordination and services, such as those involved in group communication, consensus, and replication. Familiarity and experience with Python is preferred, but not required.

Prerequisites: COMP-SCI 431.

COMP-SCI 5551 Advanced Software Engineering Credits: 3

An exploration of advanced software engineering principles and practices. Students will learn agile principles, object-oriented software design, design patterns & anti-patterns, refactoring, secure software development, and software assurance.

Prerequisites: COMP-SCI 451R.

COMP-SCI 5552A Formal Software Specification Credits: 3

Formal modeling including specification and deviation of abstract data types, completeness issues in the design of data types and data structures, implementation of data structures from a formal data type specification, verification of abstract to concrete data mapping.

Prerequisites: COMP-SCI 291, COMP-SCI 303.

COMP-SCI 5553 Software Architecture and Design Credits: 3

The course introduces a number of basic concepts and enabling technologies of software architecture, including architecture styles, architecture description languages, architecture-implementation mapping, and product line architectures. It also covers some advanced topics, such as the REST architecture style and Web Services. Students will read research papers, analyze the existing results, write critiques, give presentations, and exercise the research results with real examples. In addition, students will have an opportunity to work in groups and study the architecture of some real software systems.

Prerequisites: COMP-SCI 451R.

COMP-SCI 5555 Software Methods and Tools Credits: 3

Software methods and tools are extensively used in current software production to improve software productivity and quality. In this course, we are going to learn a number of popular software methods and tools being used in industry. These methods include object-oriented design and analysis (e.g. UML, design patterns), architecture styles, code generation, and unit testing. The covered software tools include Microsoft Project, IBM Rational Systems Developer, Eclipse Plug-ins, Emacs, JUnit, Subversion, and GIT. The course emphasizes practice, and students will be using these methods and tools to develop a software system, from the initial planning to the final deployment.

COMP-SCI 5558 Software Testing and Verification Credits: 3

An introduction to the principles and techniques of software testing and verification for software quality assurance. Students will learn white-box testing techniques (e.g., code coverage analysis and dynamic symbolic execution), black-box testing techniques (e.g., specification-based testing, and model-based testing), test automation, static code analysis, and formal verification. Prerequisites: MS CS student

COMP-SCI 5559 Parallel Algorithms Credits: 3

An exploration of the design and analysis of parallel algorithms. Students will learn the methodologies, design paradigms, and analysis techniques of parallel algorithms through selected examples. Although most of the sample problems appear in the traditional algorithm course, their parallel algorithms are non-trivial and very elegant.

Prerequisites: Computer Science MS Student.

COMP-SCI 5560 Knowledge Discovery and Management Credits: 3

This course teaches students fundamental theory and practice in the field of knowledge discovery and management and also provides them with hands-on experience through application development.

Prerequisites: COMP-SCI 5551, COMP-SCI 461.

COMP-SCI 5561 Advanced Artificial Intelligence Credits: 3

AI systems and their languages, implementations and applications, case studies of various expert systems, current research topics in AI, logic programming using PROLOG.

Prerequisites: COMP-SCI 461.

COMP-SCI 5563 Natural Language Processing Credits: 3

Students learn to employ and analyze linguistic and textual data for solving Natural Language Processing (NLP) problems. They will be introduced to theories, methods, technologies, strategies, algorithms, data structure, and toolkits for NLP, with a primary focus on the Python programming language.

Prerequisites: CS 461 or consent of instructor.

COMP-SCI 5565 Introduction to Statistical Learning Credits: 3

Introduction to Machine Learning; Multivariate Distributions; Information Theory; Linear Algebra (Eigenanalysis); Supervised/Unsupervised Learning, Classification/Regression; Linear/Non-linear Learning; Introduction to Bayesian Learning (Bayes rule, Prior, Posterior, Maximum Likelihood); Parametric/Non-parametric Estimation. Recommended preparation: MATH 300; Familiarity with MATLAB.

Prerequisites: COMP-SCI 394R.

COMP-SCI 5566 Introduction to Bioinformatics Credits: 3

This course introduces students to the field of Bioinformatics with a focus on understanding the motivation and computer science behind existing Bioinformatic resources, as well as learning the skills to design and implement new ideas.

Prerequisites: COMP-SCI 303, a course or background in Biology (Genomics or Meta Models preferred).

COMP-SCI 5567 Deep Learning Credits: 3

An exploration of neural networks and deep learning, a branch of machine learning concerned with the development and application of modern neural networks. Students will delve into computational practice and tools needed for classification, function approximation, supervised and unsupervised learning and time series analysis. A strong background in calculus, probability, and linear algebra is encouraged and basic competency in Python and MATLAB is required.

Prerequisites: COMP-SCI 5565 or E&C-ENGR 5586.

COMP-SCI 5568 Fundamentals of Probabilistic Graphical Models Credits: 3

Many real world systems are probabilistic in nature. Probability theory gives us the basic tools for modeling many real world systems, allowing us to understand complex behavior. Probabilistic graphical models allow us to model complex probabilistic relationships using graphs. This framework, which spans methods such as Bayesian networks and Markov networks, allows us to manipulate complex probability distributions that often involve hundreds or even many thousands of variables. These methods have been used for an enormous range of applications, which include: web search, turbo coding, robot navigation, image identification, epidemic identification in complex networks, medical diagnosis and speech recognition. Recommended preparation: COMP-SCI 5565.

Prerequisites: COMP-SCI 303, COMP-SCI 394R.

COMP-SCI 5570 Architecture of Database Management Systems Credits: 3

Covers in detail, architecture of centralized database systems, database processing, management of concurrent transactions, query processing, query optimization, data models, database recovery, datawarehousing, workflow, World Wide Web and Database performance, and reviews the architecture of some commercial centralized database systems.

Prerequisites: COMP-SCI 431, COMP-SCI 470.

COMP-SCI 5572 Mobile Computing Credits: 3

This course covers in detail the architecture of mobile and wireless network. It discusses and develops reveland concepts and algorithms for building mobile database systems (MDS), which is necessary for managing information on the air and E-commerce.

Prerequisites: COMP-SCI 5570.

COMP-SCI 5573 Information Security and Assurance Credits: 3

This course deals with information security and assurance and covers the concepts necessary to secure the cyberspace. It introduces security models, assurance policies, security policies and procedures, and technology. It enables students to understand the need for information assurance, identify security vulnerabilities, and devise security solutions that meaningfully raise the level of confidence in computer systems. It teaches students how to design secured database and computer systems.

Prerequisites: COMP-SCI 470.

COMP-SCI 5574 Large Scale Semistructured Data Management Credits: 3

This course will cover topics related to managing large scale semistructured data modeled using the Extensible Markup Language XML and the Resource Description Framework (RDF). This will include storing XML (e.g. natively, using a relational database), indexing XML (e.g. numbering schemes, structural indexes, sequencing paradigms), XML query processing algorithms (e.g. join-based, subsequence-based), RDF DATA STORAGE (e.g. triple stores, graph stores), RDF indexing and SPARQL query processing algorithms. The course will also cover emerging many core processor architectures (e.g. Intel Single-chip Cloud Computer) and the opportunities they provide for building next-generation semistructured data management solutions. Extensive reading of research papers and in-class presentations will be a core part of this class. Grades will be based on in-class presentations of research papers, exams, and a research project (to be done in groups).

Prerequisites: COMP-SCI 470.

COMP-SCI 5576 Blockchain Technologies Credits: 3

An exploration of the essential concepts of blockchain and recent advancements in blockchain technologies. Students will also apply blockchain technologies through a set of hands-on activities, such as exploring blockchains, creating wallets, trading cryptocurrency, creating own cryptocurrency, and building a blockchain application.

Prerequisites: COMP-SCI 431.

COMP-SCI 5577 Internet of Things Credits: 3

Students learn to design, develop, and analyze the latest advances in networking smart things and embedded systems by conducting a substantial reading, team discussions, mini-projects, and team-based research projects. They will be introduced to topics including the Internet of Things (IoT), edge computing, machine learning (ML), mobile computing, and sensor applications.

Prerequisites: Computer Science MS Student

COMP-SCI 5578 Multimedia Communication Credits: 3

A study of visual communication, currently, dominating the Internet and mobile networks. Selected topics include image and video signal processing, modeling, compression, and communication along with info theory foundations on source coding, lossless coding schemes, video coding framework as well as the current status of video coding standards and multimedia communication systems.

Prerequisites: Computer Science MS Student.

COMP-SCI 5581 Parallel Computer Architecture I Credits: 3

Parallelism in computer architecture, pipelined processors, array processors and multi-processor systems, algorithms for SISD, SIMD, MISD and MIMD organizations, vectorization, pipelining algorithms.

COMP-SCI 5582 Computer Vision Credits: 3

The image is an essential form of information representation and communication in modern society. This course focuses on topics of computer vision, teaching computer how to understand images. Topics include image formation, color and texture features, key points detection, aggregation, subspace methods in image modeling, and deep learning image classification, with many applications in photography, media and entertainment, education, defense and medicine.

COMP-SCI 5583 Software Security Credits: 3

A formal study of the principles, techniques, and best practices for developing secure software. It emphasizes the security ramifications for different activities of software development processes. Topics include security policies, security requirements analysis, threat modeling, secure design, secure programming, and security testing and verification.

Prerequisites: MS CS admission

COMP-SCI 5588 Data Science Capstone Credits: 3

Students will work on a team to produce and present an end-to-end solution to a real-world data science problem that addresses critical business and societal issues. It applies suitable analytic techniques and tools, such as statistical, machine learning, computational, and engineering methods. The project development follows a rigorous process, including data acquisition, design, modeling, implementation, and evaluation.

Prerequisites: COMP-SCI 5530 and COMP-SCI 5567.

COMP-SCI 5590 Special Topics Credits: 1-6

Selected topics in specific areas of computer science. May be repeated for credit when the topic varies.

COMP-SCI 5590AW Special Topics Credits: 1-3

COMP-SCI 5590BD Special Topics Credits: 1-3

COMP-SCI 5590CC Special Topics In Computer Science Credits: 1-3

COMP-SCI 5590CI Special Topics Credits: 1-3

COMP-SCI 5590CN Special Topics Credits: 1-3

COMP-SCI 5590HI Special Topics Credits: 1-3

COMP-SCI 5590MT Special Topics Credits: 1-3

COMP-SCI 5590NN Special Topics Credits: 1-3

Selected topics in specific areas of computer science. May be repeated for credit when the topic varies.

COMP-SCI 5590OS Special Topics Credits: 1-3

Prerequisite: You must be in the School of Science and Engineering Graduate program.

COMP-SCI 5590PB Special Topics Credits: 1-3

Special Topics

COMP-SCI 5590PG Special Topics In Computer Science Credits: 1-3

COMP-SCI 5590SA Special Topics In Computer Science Credits: 1-3

COMP-SCI 5590WW Special Topics Credits: 1-3

Prerequisite: You must be in the School of Science and Engineering Graduate program.

COMP-SCI 5590WX Special Topics Credits: 1-3

COMP-SCI 5590XX Special Topics Credits: 1-3

Prerequisite: You must be in the School of Science and Engineering Graduate program.

COMP-SCI 5590YL Special Topics Credits: 1-3

COMP-SCI 5592 Design and Analysis of Algorithms Credits: 3

Combinatorial analysis, searching and sorting, shortest path algorithms, spanning trees, search and traversal techniques, backtracking, branch and bound, heuristics, algebraic simplification and transformation.

Prerequisites: COMP-SCI 303 and COMP-SCI 404.

COMP-SCI 5596 Graduate Internship Credits: 0-1

Practical industry experience that may be tied to a traditional internship, externship research or Curricular Practical Training (CPT) for international students.

COMP-SCI 5596A Computer Security I: Cryptology Credits: 3

Study of theory, and algorithmic techniques, of the fields of number theory and cryptology, as they are applied in the general area of computer and network security.

Prerequisites: COMP-SCI 291.

COMP-SCI 5596B Computer Security II: Applications Credits: 3

Application of the algorithmic techniques learned in COMP-SCI 5596A to provide suitable security countermeasures to the variety of security threats across the spectrum of computing.

Prerequisites: COMP-SCI 5596A.

COMP-SCI 5597 Directed Readings Credits: 1-6

Readings in an area selected by the graduate student in consultation with a faculty member. Arrangements must be made prior to registration.

COMP-SCI 5598 Research Seminar Credits: 1-3

Graduate research based on intensive readings from the current research literature under the direction of a faculty member. Arrangements must be made prior to registration.

Prerequisite: You must be in the School of Science and Engineering Graduate program.

COMP-SCI 5599 Research and Thesis Credits: 1-6

A project investigation leading to a thesis, or written report under the direction of a faculty member. A prospectus must be accepted prior to registration.

Prerequisite: You must be in the School of Science and Engineering Graduate program.

COMP-SCI 5690 Advanced Special Topics Credits: 1-3

A lecture course presenting advanced research level topics. This course is intended to allow faculty and visiting scholars to offer special courses in selected research areas.

Prerequisites: Ph.D. Candidacy and you must be in the School of Science and Engineering Graduate program.

COMP-SCI 5690ND Advanced Special Topics Credits: 1-3

COMP-SCI 5697 Directed Readings Credits: 1-3

Readings in an area selected by the doctoral student in consultation with a doctoral faculty member. Arrangements must be made prior to registration.

COMP-SCI 5698 Advanced Research Seminar Credits: 1-3

Advanced research by a group of doctoral students based on intensive readings from the current research literature under the direction of one or more doctoral faculty. Original research results of each student are exchanged by presentations and group discussion. Arrangements must be made prior to registration.

Prerequisite: You must be in the School of Science and Engineering Graduate program.

COMP-SCI 5699A Research And Dissertation Research In Computer Science Credits: 1-12

Doctoral research in computer science.

Prerequisite: You must be in the School of Science and Engineering Graduate program.

COMP-SCI 5899 Required Grad Enrollment Credit: 1

Prerequisite: You must be in the School of Science and Engineering Graduate program.