Graduate Course Descriptions

The following directory lists the graduate courses which the University expects to offer, although the University in no way guarantees that all such courses will be offered in any given academic year, and reserves the right to alter the list if conditions warrant. Click on the links below for a list of courses in that subject area. You may then click “View Classes” to see scheduled classes for individual courses.

5095. Special Topics in Computer Science and Engineering

3.00 credits | May be repeated for credit.

Prerequisites: Open to graduate students in the CSE program, others with permission. (RG 5600)

Grading Basis: Graded

Classroom courses in special topics as announced in advance for each semester.

View Classes »

5097. Seminar

1.00 credits | May be repeated for a total of 8 credits.

Prerequisites: Open to graduate students in the CSE program, others with permission. (RG 5600)

Grading Basis: Satisfactory/Unsatisfactory

Presentation and discussion of advanced computer science problems.

View Classes »

5099. Independent Study in Computer Science and Engineering

1.00 - 6.00 credits | May be repeated for a total of 24 credits.

Prerequisites: Open to graduate students in the CSE program, others with permission. (RG 5600)

Grading Basis: Graded

Individual exploration of special topics as arranged by the student with an instructor.

View Classes »

5102. Advanced Programming Languages

3.00 credits

Prerequisites: Recommended Preparation: CSE 4102 and 3502 or the equivalent. Open to graduate students in the CSE program, others with permission.(RG 5397)

Grading Basis: Graded

The theory and pragmatics of modern programming languages. Topics include syntax, semantics, type systems and control mechanisms. Key contributions from Functional and Logic Programming including first-order functions, closures, continuations, non-determinism and unification are studied. Study of declarative and operational semantics of recent entries in the field like Constraint Programming and Aspect Oriented Programming.

View Classes »

5103. Performance Engineering

3.00 credits

Prerequisites: Recommended Preparation: CSE 3504 and 4500 or the equivalent. Open to graduate students in the CSE program, others with permission. (RG 5398)

Grading Basis: Graded

Study of performance engineering techniques for the development of software systems to meet performance objectives. Software performance principles, hierarchical performance modeling, and current research trends related to Software Performance Engineering. Methods for computer performance evaluation and analysis with emphasis on direct measurement and analytic modeling, including queuing networks, computation structure models, state charts, probabilistic languages, and Petri-nets. Case studies for the evaluation and analysis of software architecture and design alternatives.

View Classes »

5105. Software Reliability Engineering

3.00 credits

Prerequisites: Recommended Preparation: CSE 3504 and 4500 or the equivalent. Open to graduate students in the CSE program, others with permission. (RG 5399)

Grading Basis: Graded

State-of-the-art as well as emerging reliability assessment techniques. Topics covered will include reliability modeling paradigms, software reliability growth models, software metrics and reliability, software testing and reliability, and architecture-based reliability assessment. Hands-on experience in the application of these techniques.

View Classes »

5299. Computer Networks and Data Communication

3.00 credits

Prerequisites: Department consent; open to graduate students in the Computer Science and Engineering program, others with permission. Not open for credit to students who have passed CSE 3300. Recommended preparation: CSE 2304 or 3666.

Grading Basis: Graded

Introduction to computer networks and data communications. Network types, components and topology, protocol architecture, routing algorithms, and performance. Case studies including LAN and other architectures.

View Classes »

5300. Advanced Computer Networks

3.00 credits

Prerequisites: This course and ECE 6431 may not both be taken for credit. Recommended Preparation: CSE 3300 or the equivalent. Open to graduate students in the CSE program, others with permission.(RG5905)

Grading Basis: Graded

Advanced fundamental principles of computer networks. Topics include network design and optimization, protocol design and implementation, network algorithms, advanced network architectures, network simulation, performance evaluation, and network measurement.

View Classes »

5302. Computer Architecture

3.00 credits

Prerequisites: Recommended preparation: CSE 4302 or the equivalent. Open to graduate students in the CSE program, others with permission. (RG 5401)

Grading Basis: Graded

Provides an in-depth understanding of the inner workings of modern digital computer systems. Traditional topics on uniprocessor systems such as performance analysis, instruction set architecture, hardware/software pipelining, memory hierarchy design and input-output systems will be discussed. Modern features of parallel computer systems such as memory consistency models, cache coherence protocols, and latency reducing/hiding techniques will also be addressed. Some experimental and commercially available parallel systems will be presented as case studies.

View Classes »

5304. High-Performance Parallel Computing

3.00 credits

Prerequisites: Recommended Preparation: CSE 4302 and 4500. Open to graduate students in the CSE program, others with permission. (RG 5402)

Grading Basis: Graded

Topics in high-performance computing such as the following (1) Parallel Algorithms and Parallel Computation: including programming models (Circuits and PRAMs), complexity analysis, modern parallel platforms and programming libraries; (2) Shared- and Distributed-Memory Parallel Architectures: including cache coherence, Memory consistency, processor synchronization, latency tolerance and hiding; (3) Interconnection Networks: including quantitative measures, topologies, switch architectures, routing strategies; as well as (4) Contemporary and Future HPC Systems.

View Classes »

5305. Operating Systems

3.00 credits

Prerequisites: Department consent required; open to graduate students in the Computer Science and Engineering program, others with permission. Not open for credit to students who have passed CSE 4300. Recommended preparation: CSE 3100, 2304 or 3666.

Grading Basis: Graded

Introduction to the theory, design, and implementation of software systems to support the management of computing resources. Topics include the synchronization of concurrent processes, memory management, processor management, scheduling, device management, file systems, and protection.

View Classes »

5306. Advanced Operating Systems

3.00 credits

Prerequisites: Recommended Preparation: CSE 4300 or the equivalent. Open to graduate students in the CSE program, others with permission.(RG 5403)

Grading Basis: Graded

Topics in modern operating systems with the focus on distributed computing, communication, and concurrency. Selected topics from current research in the theory, design, implementation, and verification of operating systems.

View Classes »

5309. Networked Embedded Systems

3.00 credits

Prerequisites: Recommended preparation: CSE2300W, CSE3300 and CSE3666. Open to graduate students in the CSE program, others with permission. (RG 6000)

Grading Basis: Graded

Introduction to the design, analysis and implementation of networked embedded systems that interact with the physical environment. Applications of such systems include environmental monitoring, consumer electronics, medical devices, automotive systems, industrial process control, distributed robotics, and smart structures. Topics covered include concepts, technologies and protocols for low-power and resource-restricted wireless networks; models of computation and physical systems; embedded system architectures; and real-time system concepts, theory and design principles.

View Classes »

5400. Computer Security

3.00 credits

Prerequisites: Department consent; open to graduate students in the Computer Science and Engineering program, others with permission. Not open for credit to students who have passed CSE 4400. Recommended preparation: CSE 3400.

Grading Basis: Graded

Computer security and the design of secure systems. Cryptographic tools. Operating system security and access control. Network, software and database security. Randomness generation. Malicious software. Anonymity and privacy. Various attacks and countermeasures. Ethical, legal and business aspects.

View Classes »

5402. Network Security

3.00 credits

Prerequisites: Open to graduate students in the Computer Science and Engineering program, others with permission; department consent required. Recommended preparation: CSE 3300 and 3400. Not open for credit to students who have passed CSE 4402.

Grading Basis: Graded

The principle and practices of how to provide secure communication between computer systems. Includes protection techniques at the physical, network, transport layers, and major approaches in Internet security. How cryptography is applied in network security. Topics include: denial-of-service, DNS, BGP, IPSec, SSL/TLS, Authentication/Kerberos, VPNs, PKI, firewalls, intrusion detection/prevention systems, and wireless security.

View Classes »

5500. Algorithms

3.00 credits

Prerequisites: Prerequisite: Open to graduate students in the CSE program, others with permission. Recommended Preparation: CSE 3500 or the equivalent. (RG5907)

Grading Basis: Graded

Introduction to the design and analysis of algorithms. The course will discuss fundamental design techniques and related issues such as amortized analysis, linear programming, network flow, NP-Completeness, approximation algorithms, randomized algorithms, advanced data structures, and parallel algorithms.

View Classes »

5503. Theory of Computation

3.00 credits

Prerequisites: Department consent required; open to graduate students in the Computer Science and Engineering program, others with permission. Not open for credit to students who have passed CSE 3502. Recommended preparation: CSE 2050 and 2500.

Grading Basis: Graded

Formal models of computation, such as finite state automata, pushdown automata, and Turing machines, and their corresponding elements in formal languages (regular, context-free,recursively enumerable). The complexity hierarchy. Church's thesis and undecidability. NP completeness. Theoretical basis of design and compiler construction.

View Classes »

5506. Computational Complexity

3.00 credits

Prerequisites: Prerequisite: Open to graduate students in the CSE program, others with permission. Recommended preparation: CSE 3502 and 3500; MATH 3160 or the equivalent. (RG5908)

Grading Basis: Graded

Systematic study of resource-bounded computation, including time and space complexity, hierarchy theorems, nondeterministic and randomized computation, and reduction and completeness. Advanced topics may be introduced such as relativized computation, derandomization, communication complexity, lower bounds on circuit complexity, and probabilistically checkable proofs.

View Classes »

5510. Distributed Computing and Fault Tolerance

3.00 credits

Prerequisites: Recommended Preparation: CSE4300 and/or CSE4500. Open to graduate students in the CSE program, others with permission. (RG 5145)

Grading Basis: Graded

Topics in the design and analysis of robust distributed algorithms that combine efficiency and fault tolerance. Models of distributed computation and failures. Inherent limitation in achieving fault tolerance in distributed systems. Basic problems considered include communication services, robust cooperation, agreement, consistent distributed memory.

View Classes »

5512. Introduction to Quantum Computing

3.00 credits

Prerequisites: Recommended Preparation: CSE 3500, CSE 3502, and MATH 2420Q. Open to graduate students in the CSE program, others with permission. (RG 5146)

Grading Basis: Graded

Introduction to quantum computing, quantum algorithms, and quantum information theory. Quantum mechanics including elementary aspects of its mathematical formalism; quantum circuit model and quantum complexity theory; development and analysis of several fundamental quantum algorithms, focusing on Grover?s algorithm for database search and Shor?s number-theoretic algorithms. Second half covers the density matrix formalism of quantum mechanics, von Neumann entropy, quantum channels, and quantum error-correction. If time permits, some implementations of quantum computers and current progress will be discussed.

View Classes »

5514. Computational Geometry

3.00 credits

Prerequisites: Recommended Preparation: MATH 2110Q and 2210Q or the equivalent. Open to graduate students in the CSE program, others with permission. (RG 5406)

Grading Basis: Graded

Algorithms and data structures for constructing geometric objects, computing geometric properties, and answering geometric queries as well as techniques for the analysis of their correctness and complexity.

View Classes »

5520. Data Visualization and Communication

3.00 credits

Prerequisites: Only open to Computer Science and Engineering graduate students, others with permission. Recommended preparation: knowledge of algorithms, some programming experience required.

Grading Basis: Graded

This course will focus on fundamental theory and practice of data visualization and communication. Topics to be covered include different data types, algorithms for data visualization, design of effective visualization for analysis and communication, exploratory and explanatory data analysis (for discovery of new information, detecting flaws, etc.), using data visualization to convey different messages, existing tools for data visualization, and making presentations with data. Several case studies, such as engineering, economics, or health, will be discussed.

View Classes »

5600. Computer Science and Engineering Research Laboratory

3.00 credits | May be repeated for a total of 9 credits.

Prerequisites: Open to graduate students in the CSE program, others with permission. (RG 5600)

Grading Basis: Graded

Experimental investigation of current research topics in computer science.

View Classes »

5707. Discrete Optimization

3.00 credits

Prerequisites: Prerequisites: Open to graduate students in the CSE program, others with permission. Recommended preparation: CSE3500 and MATH2210. (RG5910)

Grading Basis: Graded

Methods and techniques used to solve combinatorial optimization problems with examples drawn from industry such as scheduling, resource allocation, and routing. Features a mix of theory and practice using state-of-the-art tools to solve classic problems.

View Classes »

5713. Data Mining

3.00 credits

Prerequisites: Open to graduate students in the CSE program, others with permission. (RG 5600)

Grading Basis: Graded

Introduction to data mining algorithms and their analysis. Application of and experimentation with data mining algorithms on real-world problems and domains, with a dual focus on addressing the solution quality issue and the time efficiency issue.

View Classes »

5717. Big Data Analytics

3.00 credits

Prerequisites: Prerequisites: Open to graduate students in the CSE program, others with permission. Recommended preparation: CSE3500 and MATH2210. (RG5910)

Grading Basis: Graded

Focuses on data science and big data analytics. Introduces basic concepts of data science and analytics. Different algorithmic techniques employed to process data will be discussed. Specific topics include: Parallel and out-of-core algorithms and data structures, Rules mining, Clustering algorithms, Text mining, String algorithms, Data reduction techniques, and Learning algorithms. Applications such as motif search, k-locus association, k-mer counting, error correction, sequence assembly, genotype-phenotype correlations, etc. will be investigated.

View Classes »

5800. Bioinformatics

3.00 credits

Prerequisites: Open to graduate students in the CSE program, others with permission. (RG 5600)

Grading Basis: Graded

Advanced mathematical models and computational techniques in bioinformatics. Topics covered include genome mapping and sequencing, sequence alignment, database search, gene prediction, genome rearrangements, phylogenetic trees, and computational proteomics.

View Classes »

5810. Introduction to Biomedical Informatics

3.00 credits

Prerequisites: Recommended Preparation: CSE 4102, CSE 4701 or CSE 4300. Open to graduate students in the CSE program, others with permission. (RG 5144)

Grading Basis: Graded

Introduction to biomedical informatics theory and practice with an emphasis on data management for information classification (ontologies), collection, storage, analysis, dissemination, etc., applied to medical, clinical, and public health domains. Topics include: software architectures, security and privacy, interoperabilty and data exchange, standards and the semantic web, health care systems, clinical decision support, data mining, health care systems, monitoring and sensor devices, and cloud/grid computing.

View Classes »

5815. Systems Biology: Constructing Biological Knowledgebase

3.00 credits

Prerequisites: Open to graduate students in the CSE program, others with permission. (RG 5600)

Grading Basis: Graded

Design and architecture of biological knowledge base. Topics covered include biological/biomedical data modeling, knowledge representation techniques of biological and biomedical information, review of existing inference methods, methods of assessing evidence quality, design of inference-enabling genomics annotation system, various meta-data analysis methods involving genomics and biomedical data.

View Classes »

5819. Introduction to Machine Learning

3.00 credits

Prerequisites: Department consent required; open to graduate students in the Computer Science and Engineering program, others with permission. Recommended preparation: MATH 2210Q; STAT 3025, or 3345, or 3375, or MATH 3160; CSE 3500.

Grading Basis: Graded

An introduction to the basic tools and techniques of machine learning, including models for both supervised and unsupervised learning, related optimization techniques, and methods for model validation. Topics include linear and logistic regression, SVM classification and regression, kernels, regularization, clustering, and on-line algorithms for regret minimization.

View Classes »

5820. Machine Learning

3.00 credits

Prerequisites: Prerequisite: Open to graduate students in the CSE program, others with permission. Recommended preparation: CSE3500, MATH2110, MATH2210, and MATH3160 or the equivalent. (RG5909)

Grading Basis: Graded

The objective of the course is to enable students to understand and use machine learning methods across a wide range of settings. The course will be a mixture of theory, algorithms, and hands-on projects with real data. Besides traditional machine learning topics, e.g., supervised learning, unsupervised learning and semi-supervised learning, the course will also introduce advanced topics such as dimension reduction; structured data learning; kernel learning; imprecisely supervised learning; longitudinal data analysis; causal inference, etc.

View Classes »

5825. Bayesian Machine Learning

3.00 credits

Prerequisites: Department consent required; open to graduate students in the CSE program, others with permission. Recommended preparation: CSE3500; MATH 2110, 3160 or STAT 3345Q, or the equivalent; CSE 4820 or 5819 are also desirable but not as critical.

Grading Basis: Graded

Bayesian machine learning is a unifying methodology for reasoning about uncertainty when modelling complex data. This course begins by covering the foundations of probabilistic modelling, Monte Carlo and variational inference algorithms, and model checking. We build on these foundations by considering essential models, e.g., mixed-membership and hierarchical models, and their applications. The course concludes with a survey of recent advances in Bayesian machine learning focusing on Bayesian nonparametrics and other advanced topics.

View Classes »

5830. Probabilistic Graphical Models

3.00 credits

Prerequisites: Department consent required; open to graduate students in the Computer Science and Engineering program, others with permission.

Grading Basis: Graded

Probabilistic graphical models provide a flexible framework for analyzing large, complex, heterogeneous, and noisy data. They are the basis for state-of-the-art analysis methods in a wide variety of application domains, from autonomous robotics and computer vision to medical diagnosis and social networks. This course covers (a) representation, including Bayesian and Markov networks, (b) inference, both exact and approximate, and (c) estimation of both parameters and structure of graphical models.

View Classes »

5835. Machine Learning for Physical Sciences and Systems

3.00 credits

Prerequisites: Open to graduate students in the Computer Science and Engineering program, others with department consent. Recommended preparation: Familiarity with basic concepts in machine learning, linear algebra, optimization, and statistics (optional supplementary material will be provided for review). A background and interest in applications in the physical sciences is preferable.

Grading Basis: Graded

Foundational knowledge in applied aspects of machine learning, including methods for handling uncertain, small, and imbalanced data; feature selection and representation learning; and model selection and assessment. Students will also gain exposure to state-of-the-art research on interpretability of machine learning models, stability of machine learning algorithms, and meta-learning. Topics will be discussed in the context of recent advances in machine learning for materials, chemistry, and physics applications, with an emphasis on the unique opportunities and challenges at the intersection of machine learning and these fields.

View Classes »

5840. String Algorithms and Applications in Bioinformatics

3.00 credits

Prerequisites: Open to graduate students in the CSE program, others with permission. (RG 5600)

Grading Basis: Graded

Classic string matching algorithms (e.g. Knuth-Morris-Pratt, Karp-Rabin, suffix tree and arrays) and more advanced string algorithms (e.g. Burrows-Wheeler transform). With a particular focus on rigorous treatment of string processing algorithms and their analysis. Applications of string algorithms to bioinformatics problems. Students are expected to have basic prior knowledge of algorithm design and analysis.

View Classes »

5850. Introduction to Cyber-Security

3.00 credits

Prerequisites: Department consent; open to graduate students in the Computer Science and Engineering program, others with permission. Not open for credit to students who have passed CSE 3400. Recommended preparation: CSE 2500.

Grading Basis: Graded

Introductory to the area of cyber-security. The course focuses on applied cryptography, and some of its applications and related areas in cyber security, including network and web security, usable security, privacy/anonymity, and block-chains. The course is systems-oriented; we will discuss many practical vulnerabilities, attacks and defenses. However, esp. in the beginning, we will also learn some theory - mainly, few definitions, and (fewer) proofs.

View Classes »

5852. Modern Cryptography: Foundations

3.00 credits

Prerequisites: rerequisite: Open to graduate students in the CSE program, others with permission. Recommended Preparation: MATH3160, CSE 3500, and CSE3502 or the equivalent. (RG 5906)

Grading Basis: Graded

The foundations of modern cryptography introducing basic topics such as one-way functions, pseudorandom generators, and computational hardness assumptions based on number theory. Fundamental cryptographic constructions such as hard-core predicates, secure symmetric encryption and message-authentication codes, and public-key cryptography.

View Classes »

5854. Modern Cryptography: Primitives and Protocols

3.00 credits

Prerequisites: Prerequisite: Open to graduate students in the CSE program, others with permission. Recommended Preparation: MATH3160, CSE 3500, CSE3502, and CSE4702 or the equivalent. (RG5919)

Grading Basis: Graded

This course covers modern cryptography emphasizing provable security and concrete constructions based on the hardness of specific computational problems. After surveying some basic cryptographic primitives and associated number-theoretic constructions, the course focuses on public-key infrastructure and protocols: it will cover such topics as digital signatures, identification and key-exchange schemes, distributed key generation, blind signatures, zero-knowledge proofs, and private function computation.

View Classes »

5860. Computational Problems in Evolutionary Genomics

3.00 credits

Prerequisites: Prerequisite: CSE 5800. Open to graduate students in the CSE program, others with permission.(RG 5159)

Grading Basis: Graded

Computational and algorithmic approaches for problems arising in evolutionary genomics. Topics may include phylogenetic trees inference, population evolutionary models and theory, understanding complex evolutionary processes and other related topics. Both combinatorial optimization and stochastic approaches will be covered.

View Classes »

6300. Research Topics in Computer Networks

3.00 credits

Prerequisites: Prerequisite: CSE 5300. Open to graduate students in the CSE program, others with permission. (RG252).

Grading Basis: Graded

Current research issues in the Internet, wireless and mobile networks, as well as emerging concepts such as sensor networks. Overview of the fundamental design principles underlying these networks. Discussion and exploration of the advanced research topics in these and other areas.

View Classes »

6512. Randomization in Computing

3.00 credits

Prerequisites: Prerequisite: CSE 5500. Open to graduate students in the CSE program, others with permission. (RG 3877)

Grading Basis: Graded

Introduction to the theory and practice of randomization and randomized algorithms as a technique for science and engineering problem solving. Topics to be covered include: probability theory, types of randomization, sorting and selection, hashing and skip list, finger-printing, packet routing, geometry and linear programming, graph algorithms, combinatorial optimization, and external memory algorithms.

View Classes »

6514. Computational Topology

3.00 credits

Prerequisites: Prerequisite: MATH 5310 and 5311. Open to graduate students in the CSE program, others with permission. (RG3085)

Grading Basis: Graded

Topology has traditionally generalized concepts of real analysis to metric spaces and set axioms. The new field of computational topology has great potential for encompassing abstractions to unify domain-specific techniques now used in computational geometry, geometric modeling, visualization, image processing, engineering analyses and molecular simulation. The course will include perspectives from traditional topology and show how these need to be modified for realistic use in modern computing environments. Topics and emphases will vary.

View Classes »

6800. Computational Genomics

3.00 credits

Prerequisites: Prerequisite: CSE 5800 or BME 5800. Open to graduate students in the CSE program, others with permission. (RG3876)

Grading Basis: Graded

Advanced computational methods for genomic data analysis. Topics covered include motif finding, gene expression analysis, regulatory network inference, comparative genomics, genomic sequence variation and linkage analysis

View Classes »