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.

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 5510 Information Theory Credits: 3

Representation, transmission and transformation of information, information compression and protection, generation, storage, processing and transmission of information.

Prerequisites: BS in Computer Science, Engineering, or Mathematics.

COMP-SCI 5511 Advanced Telecommunications Networks Credits: 3

Efficient source coding and channel coding techniques, principles of switching, digital transmission over microwave, copper and optical media, T-carrier and SONET systems, traffic consideration in telecommunications networks, network synchronization, control and management, ATM concepts.

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

COMP-SCI 5513 Digital Cellular Communications Credits: 3

Principles of microwave communications, performance metrics, mobile communications and cellular topology, co-channel and adjacent channel interference, fading and shadowing, various types of diversity, TDMA, FDMA and CDMA and other techniques for channel assignment, cellular network architectures, design considerations, PCN concepts.

Prerequisites: COMP-SCI 411.

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 5514A Optical Networking Credits: 3

Components of optical networks such as OADM, OXC, optical switches, DWDM, and their functions and interactions. Design, analysis and routing over all-optical networks to include waveband, wavelength and lightpath routing.

Prerequisites: COMP-SCI 411.

COMP-SCI 5517 Digital Switching: Techniques and Architectures Credits: 3

Integration of transmission and switching, single and multistage switching principles, space and time division switching, conventional switch architectures such as 4ESS, integration of circuit and packet switching, ATM switching and design considerations, ATM switch architectures, evaluation and comparison, future trends.

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

COMP-SCI 5520 Network Architecture I Credits: 3

Principles, protocols, and architectures of data networks, internetworking, routing, layering, and addressing, with specific investigation of the Internet Protocol (IP), Mobile IP, Multiprotocol Label Switching (MPLS), IP over Asynchronous Transfer Mode (ATM) networks, and virtual private networks.

Prerequisites: COMP-SCI 420 (or COMP-SCI 421A), COMP-SCI 431.

COMP-SCI 5521 Network Architecture II Credits: 3

Principles, protocols and architectural issues of computer networks for transport layer and above, with specific emphasis on TCP/IP for best-effort services as well as for emerging multi-media services.

Prerequisites: COMP-SCI 5520.

COMP-SCI 5522 Computer Network Design and Analysis Credits: 3

Topological design, capacity and flow assignment problem-modeling and algorithms, and their analysis, issues in network control.

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

COMP-SCI 5523 Capacity Planning for Service-Oriented Architectures Credits: 3

Web site, cloud service, and data center administrators are faced with the task of adequately sizing their Information Technology (IT) infrastructure so that they can provide quality of service required by users at an affordable cost. In this class we will explore the Internet's complex relationships and how these relationships impact performance and availability of Web and cloud services. The fundamentals of service oriented architectures will be presented and we will develop performance models based on probability fundamentals and the theory of queuing networks and apply these models toward the design and analysis of large scale information systems.

Prerequisites: COMP-SCI 394R, COMP-SCI 421A.

COMP-SCI 5524 Protocol Design Credits: 3

Protocols as formal algorithms, architectural definition, protocol specification languages and models and their translation to implementation languages, overview of verification methods, symbolic execution.

Prerequisites: COMP-SCI 421A.

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 5526 Network Routing Credits: 3

Algorithms, protocols and analysis for network routing. Routing in different networks such as circuit-switched networks, Internet, broadband networks, and transmission networks are covered.

Prerequisites: COMP-SCI 5520, COMP-SCI 5522.

COMP-SCI 5528 Local Area Networks: Analysis and Design Credits: 3

Definition of local area networks (LAN), LAN architecture and protocols, topology, transmission media, channel access protocols, modeling, simulation and performance evaluation of LANs, considerations in design and implementation, examples.

Prerequisites: COMP-SCI 421A, COMP-SCI 494R.

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 5532 Discrete Event Simulation Credits: 3

Review of statistical distributions, generation of pseudorandom variates and stochastic processes, basic queueing systems such as M/M/m and Jackson Networks, simulation project.

Prerequisites: COMP-SCI 5594.

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 IBM Jaql will be covered. Extensive reading of research papers and in-class presentations will be heavily emphasized in this class.

Prerequisites: COMP-SCI 431 (or equivalent) and COMP-SCI 470 (or equivalent).

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: Software Engineering (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: Software Engineering (COMP-SCI 451).

COMP-SCI 5551 Advanced Software Engineering Credits: 3

Current concepts in software architecture and design, comparative analysis for design, object-oriented software design, software quality criteria for evaluation of software design. Introduction to metrics, project management and managerial ethics.

Prerequisites: COMP-SCI 451R.

COMP-SCI 5552 Advanced Data Structures 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 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: CS451R or equivalent.

COMP-SCI 5554 Software Tools and Programming Environments Credits: 3

Taxonomy of software tools and environments, generic software tool architecture, interface techniques for users, intra-system and stand-alone systems, integration of heterogeneous systems components.

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.

Prerequisites: COMP-SCI 349.

COMP-SCI 5556 Human Factors in Computer Systems Credits: 3

Design of "user friendly" man-machine interface, survey of recent psychological studies in man-machine interaction, user interface design, instrumentation and testing, analytic models of man-machine interaction.

Prerequisites: COMP-SCI 451R.

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 (or COMP-SCI 464).

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 5564 Inference Techniques and Knowledge Representation Credits: 3

Inference Techniques is an in-depth course of logic and automatic theorem proving, intended for Computer Science graduate students, with particular importance to those students interested in Artificial Intelligence. The main areas of study will be concerned with the principals and techniques used for automatic theorem proving. An overview of the representation of knowledge and logic, a detailed appreciation of theorem proving methods, and implementation techniques will be provided in the course. The course will provide background for further study in varying fields of A.I.

Prerequisites: COMP-SCI 461.

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.

Prerequisites: Required - Applied Probability (COMP-SCI 394R). Recommended - Linear Algebra (MATH 300); Familiarity with MATLAB or R. OR Consent of instructor.

Cross Listings: COMP-SCI 465R.

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 Machine Learning for Data Scientists Credits: 3

This course teaches the theoretical basis of methods for learning from data, illustrated by examples of applications to several domains. Recommended preparation: COMP-SCI 5565.

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

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 5571 Distributed Database Management Systems Credits: 3

Detailed study of distributed database systems architecture, in-depth study of distributed transaction management, distributed concurrency control and recovery algorithms, database distribution, distributed query optimization and analysis of database system design, and intelligent network databases.

Prerequisites: COMP-SCI 5570.

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 (or equivalent).

COMP-SCI 5575 Advanced Computer Graphics Credits: 3

Review of transformations, 3D viewing, curve fitting in 3D, generation of surfaces, hidden surface elimination, scan-line coherence, rigid solid representation, shading, color theory.

Prerequisites: COMP-SCI 475.

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 5590 Special Topics Credits: 1-3

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

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

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

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

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

COMP-SCI 5591 Concurrency Models Credits: 3

Concurrency control constructs, P/V primitives, cobegin/coend, monitors, message transmission, rendezvous systems, underlying mathematics of concurrent systems, Petri Nets, liveness (deadlock), reachability, boundedness, invariants, system modeling.

Prerequisites: COMP-SCI 431.

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 5594 Introduction to Queuing Theory Credits: 3

Review of statistics and probability, stochastic processes, Markov Processes, the basic Poisson process, equilibrium conditions, M/M/1 system with variations local and global balance in networks of queues, open and closed networks.

Prerequisites: COMP-SCI 494R.

COMP-SCI 5595 Mathematical Foundations of Computer Science Credits: 3

Study of the theory, and algorithmic techniques, of the fields of graph theory, combinatorics and number theory, as they relate to their application in the field of computer science.

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

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-3

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.

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.

COMP-SCI 5622 Advanced Network Analysis Credits: 3

Design and analysis of data networks, comparative analysis of capacity and flow strategies, time-delay/cost trade offs, concentration and buffering in store and forward networks, random access techniques, pure, slotted and reservation type Aloha schemes, carrier sense multiple access.

Prerequisites: COMP-SCI 5522.

COMP-SCI 5623 Network Simulation and Modeling Credits: 3

Simulation and modeling of network topologies and protocols, evaluation of the physical layer, data-link layer, network layer routing algorithms, local and long-haul networks.

Prerequisites: COMP-SCI 5522, COMP-SCI 5532.

COMP-SCI 5651 Distributed Computing for Software Systems Credits: 3

Formal descriptions of problems encountered in distributed computing for architecture. Parameters to formal requirements, operating system support, communications support, process synchronization, and system verification, distinctions between real time and concurrent time. The nature of life cycles, project organization and use of automated tools.

Prerequisites: COMP-SCI 5531 (or COMP-SCI 5551 or COMP-SCI 5570).

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.

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

COMP-SCI 5694 Advanced Queueing Theory Credits: 3

Non-Markovian systems such as M/G/1, G/M/1 and G/G/1, solutions of networks of non-Markovian nodes, queuing network approximate solution techniques.

Prerequisites: COMP-SCI 5594.

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.

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

Doctoral research in computer science.

COMP-SCI 5899 Required Grad Enrollment Credit: 1