Academic Catalog

Computer Science and Engineering (CSE)

CSE 5050.  Algorithms and Complexity.  (3 Credits)  
Design and analysis of efficient computer algorithms. Algorithm design techniques, including divide-and-conquer, depth-first search, and greedy approaches. Worst-case and average-case analysis. Models of computation. NP-complete problems.
Enrollment Requirements: Open to grad students in CSE, others with consent. Recommended preparation: Discrete math; fluency in a high-level programming language; data structures, algorithms at the level of CSE 2050. Students cannot receive credit for both CSE 3500 and 5050.  
  
CSE 5095.  Special Topics in Computer Science and Engineering.  (3 Credits)  
Classroom courses in special topics as announced in advance for each semester.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent.  
May be repeated for credit  
CSE 5097.  Seminar.  (1 Credit)  
Presentation and discussion of advanced computer science problems.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent.  
May be repeated for a total of 8 credits  
CSE 5099.  Independent Study in Computer Science and Engineering.  (1-6 Credits)  
Individual exploration of special topics as arranged by the student with an instructor.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent.  
May be repeated for a total of 24 credits  
CSE 5102.  Advanced Programming Languages.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 4102 and 3502 or the equivalent.  
  
CSE 5103.  Performance Engineering.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 3504 and 4500 or the equivalent.  
  
CSE 5299.  Computer Networks and Data Communication.  (3 Credits)  
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.
Enrollment Requirements: 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.  
  
CSE 5300.  Advanced Computer Networks.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 3300 or the equivalent. This course and ECE 6431 may not both be taken for credit.  
  
CSE 5302.  Computer Architecture.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 4302 or the equivalent.  
  
CSE 5305.  Operating Systems.  (3 Credits)  
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.
Enrollment Requirements: 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.  
  
CSE 5309.  Networked Embedded Systems.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 2300W, CSE 3300 and CSE 3666.  
  
CSE 5312.  Architecture of Internet of Things.  (3 Credits)  
(Also offered as SE 5402.) This course is designed to provide students and professional engineers with a thorough understanding of the design, development, validation and evaluation of IoT systems, especially in industrial domains with stringent timing and performance requirements. The student will develop skills in specifying the requirements for the target IoT systems, selecting the appropriate hardware and software platforms, and validating and evaluating the system performance. Special emphasis will be placed on the semester-based industrial projects that will be designed from selected industrial domains to address real-life problems.
Enrollment Requirements: Open to graduate students in the SE (Advanced Systems Engineering), CSE (Computer Science and Engineering), and ECE (Electrical and Computer Engineering) programs, others with consent. Recommended preparation: An undergraduate degree in electrical engineering, computer engineering, or computer science or completed a graduate level course in embedded or network systems.  
  
CSE 5400.  Computer Security.  (3 Credits)  
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.
Enrollment Requirements: 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.  
  
CSE 5402.  Network Security.  (3 Credits)  
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.
Enrollment Requirements: 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.  
  
CSE 5500.  Algorithms.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 3500 or the equivalent.  
  
CSE 5503.  Theory of Computation.  (3 Credits)  
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.
Enrollment Requirements: 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.  
  
CSE 5512.  Introduction to Quantum Computing.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 3500, CSE 3502, and MATH 2420Q.  
  
CSE 5520.  Data Visualization and Communication.  (3 Credits)  
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.
Enrollment Requirements: Only open to Computer Science and Engineering graduate students, others with permission. Recommended preparation: knowledge of algorithms, some programming experience required.  
  
CSE 5602.  Machine Learning for Physical Sciences and Systems.  (3 Credits)  
(Also offered as SE 5602.) 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.
Enrollment Requirements: Open to graduate students in Computer Science and Engineering, MEng in Advanced Systems Engineering, and MEng in Data Science, others with department consent. Recommended prep: Basic concepts in machine learning, linear algebra, optimization, statistics.  
  
CSE 5707.  Discrete Optimization.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 3500 and MATH 2210Q.  
  
CSE 5709.  Machine Learning for Data Science.  (3 Credits)  
An introduction to the techniques of machine learning, including models for both supervised and unsupervised learning, and related optimization techniques, covering topics such as regression, neural networks, clustering, model evaluation and selection, and implementation of learning algorithms from first principles.
Enrollment Requirements: GRAD 5100; Open to graduate students in the M.S. in Data Science program. Recommended preparation: Python programming, multivariable calculus, linear algebra, introductory statistics.  
  
CSE 5710.  Data Mining for Data Science.  (3 Credits)  
This course presents an introduction to data mining algorithms in the areas of classification, association analysis, clustering, and anomaly detection, with an emphasis on a conceptual understanding these algorithms along with their application in real-world problems and domains.
Enrollment Requirements: CSE 5709; Open to graduate students in the M.S. in Data Science program. Recommended preparation: Python programming including open-source libraries: scikit-learn, Numpy, Matplotlib, introductory statistics  
  
CSE 5713.  Data Mining.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent.  
  
CSE 5717.  Big Data Analytics.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 3500 and MATH 2210Q.  
  
CSE 5800.  Bioinformatics.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent.  
  
CSE 5810.  Introduction to Biomedical Informatics.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 4102, CSE 4701 or CSE4300.  
  
CSE 5819.  Introduction to Machine Learning.  (3 Credits)  
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.
Enrollment Requirements: 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.  
  
CSE 5820.  Machine Learning.  (3 Credits)  
Enables students to understand and use machine learning methods across a wide range of settings. 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, introduces advanced topics such as dimension reduction; structured data learning; kernel learning; imprecisely supervised learning; longitudinal data analysis; causal inference, etc.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 3500, MATH 2110Q, MATH 2210Q, and MATH 3160 or the equivalent.  
  
CSE 5825.  Bayesian Machine Learning.  (3 Credits)  
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.
Enrollment Requirements: 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.  
  
CSE 5830.  Probabilistic Graphical Models.  (3 Credits)  
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.
Enrollment Requirements: Department consent required; open to graduate students in the Computer Science and Engineering program, others with permission.  
  
CSE 5832.  Embedded/Networked Systems Modeling Abstractions.  (3 Credits)  
(Also offered as SE 5832.) Students will become cognizant of the role of embedded controllers and devices in the system design process, as they relate to event-driven and data- driven systems, and supervisory control of hybrid (continuous and discrete-time) systems. This will include exposure to platform-based design principles with an emphasis on requirements capture and refinement to platform architecture mapping, analysis and verification. Students will learn the technical aspects of modeling principles relevant to embedded systems – specifically modeling system architecture, system functions, computation, software, real-time systems, and distributed systems. Use of software engineering tools (Rhapsody, Simulink, Stateflow and Simulink/MATLAB coder) in the embedded system design flows is emphasized.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent.  
  
CSE 5835.  Machine Learning for Physical Sciences and Systems.  (3 Credits)  
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.
Enrollment Requirements: 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.  
  
CSE 5837.  Embedded Machine Learning.  (3 Credits)  
This course will focus on the recent advances in efficient processing of machine learning. Topics include (1) basic machine learning models (inference and training), including deep convolutional neural networks (DCNN), recurrent neural networks (LSTM, GRU, etc.), Transformer (BERT, RoBERTa, DistilBERT, etc.); (2) different applications including object recognition/detection, super resolution, neural machine translation, etc.; (3) effective machine learning accelerations including model compression, quantization, neural architecture search (NAS), GPU and FPGA implementations, dedicated hardware such as Google TPU or IBM TrueNorth; (4) emerging topics, such as federated learning for edge computing systems.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: CSE 3500; MATH 2210Q; STAT 3025, 3345, 3375, or MATH 3160.  
  
CSE 5840.  String Algorithms and Applications in Bioinformatics.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent.  
  
CSE 5850.  Introduction to Cyber-Security.  (3 Credits)  
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.
Enrollment Requirements: 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.  
  
CSE 5852.  Modern Cryptography: Foundations.  (3 Credits)  
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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: MATH 3160, CSE 3500, and CSE 3502 or the equivalent.  
  
CSE 5854.  Modern Cryptography: Primitives and Protocols.  (3 Credits)  
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, 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.
Enrollment Requirements: Open to graduate students in the CSE program, others with consent. Recommended preparation: MATH 3160, CSE 3500, CSE 3502, and CSE 4702 or the equivalent.  
  
CSE 5860.  Computational Problems in Evolutionary Genomics.  (3 Credits)  
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.
Enrollment Requirements: CSE 5800; open to graduate students in the CSE program, others with consent.  
  
CSE 5910.  Information Ecosystem Threats.  (3 Credits)  
Review of the recent literature and in-depth discussions of the near and medium term risks to the online information ecosystem, and will engage in a student-directed, publication-quality project to analyze social media discourse using ML, NLP, and network science approaches. Topics covered will include mis- and disinformation, controversy and polarization, malinformation (e.g. doxxing), bots and bot-human partnerships, and conspiracy theories. Guest speakers will provide unique perspectives on these issues, including in CSE and from other disciplines. We will briefly touch on philosophical questions of knowability and epistemology, and discuss the connection between Information Disorders and the emerging field of AI alignment.
Enrollment Requirements: Open to graduate students in the Computer Science and Engineering program, others with consent.  
  
CSE 6512.  Randomization in Computing.  (3 Credits)  
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.
Enrollment Requirements: CSE 5500. Open to graduate students in the CSE program, others with consent.  
  
CSE 6514.  Computational Topology.  (3 Credits)  
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. Includes perspectives from traditional topology and show how these need to be modified for realistic use in modern computing environments. Topics and emphases will vary.
Enrollment Requirements: MATH 5310 and 5311; open to graduate students in the CSE program, others with consent.  
  
CSE 6800.  Computational Genomics.  (3 Credits)  
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.
Enrollment Requirements: CSE 5800 or BME 5800. Open to graduate students in the CSE program, others with consent.