During the past two decades, society has experienced unprecedented growth in digital technology. This revolution continues to redefine our way of life, our culture and our economy. Computer science and engineering education plays an irreplaceable role in this trend by preparing future technology leaders and innovators. It opens our minds to new horizons, unlocks doors to a broad range of career paths, accelerates professional advancement, and exposes us to ideas that are advancing the frontiers of science and technology beyond the field of computing. Alumni and students continually remind us that pursuing a degree in the Department of Computer Science & Engineering is an experience rarely matched elsewhere.

Master's Programs

The Department of Computer Science & Engineering offers four master's degrees: Master of Science in Computer Science, Master of Science in Computer Engineering, Master of Science in Cybersecurity Engineering, and Master of Engineering in Computer Science and Engineering. We accept both full-time and part-time students, offering class schedules that are flexible enough for part-time students but that provide enough classes for students to attend full-time. Obtaining a master's degree from the Department of Computer Science & Engineering can be done as a pure course option (MS in Computer Science and MS in Computer Engineering degrees only), or it can incorporate a specialized research experience. Master's research is a great way for our students to easily transition into future doctoral studies. Graduates of our program are also prepared to enter the industry, with many accepting positions at companies like Boeing, Google and Microsoft. Applicants to our master's programs are expected to have completed an undergraduate degree. A major or minor in computer science or computer engineering is helpful, but it is not required. Background requirements are listed within each degree program, along with options for meeting them.

PhD Programs

The Department of Computer Science & Engineering offers PhD programs in Computer Science and in Computer Engineering. Computer science research encompasses the fundamentals of software and algorithm design, machine learning and bioinformatics, visual and cyber-physical computing, and human-computer interaction. Computer engineering focuses on the interaction of software and hardware in the design of computing systems and networks. Our research groups have extensive interdisciplinary ties across the university, with collaborations in medicine, science, the humanities and social work. Recent graduates have accepted research and teaching faculty positions as well as research and engineering positions in leading technology companies.

Both PhD programs require a combination of courses, research and teaching. The required courses are often completed early in the program, since students are integrated into research groups during their first year and the program's emphasis is on creative research. The program has milestones that involve both written and oral components, and these provide structure for the five- to six-year degree. The program considers applicants with either bachelor's or master's degrees and has had successful applicants in the past whose backgrounds were outside of the field of computer science.

Contact Info

Phone:314-935-6132
Email:admissions@cse.wustl.edu
Website:https://cse.wustl.edu/academics/graduate/index.html

CSE 5100 Deep Reinforcement Learning

Deep Reinforcement Learning (RL) is a cutting-edge field at the intersection of artificial intelligence and decision-making. This course provides an in-depth exploration of the fundamental principles, algorithms, and applications of deep reinforcement learning. It covers basic algorithms, including value-based, policy-based, actor-critic, and model-based methods, as well as advanced topics, such as meta RL, offline RL, and multi-agent RL. By combining deep learning techniques with reinforcement learning, this course equips students with the necessary skills to build intelligent systems that can learn from experiences and make optimal decisions in complex environments. Evaluation of this course is based on written and programming assignments, and a final course project.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5101 Introduction to Artificial Intelligence

The discipline of artificial intelligence (AI) is concerned with building systems that think and act like humans or rationally on some absolute scale. This course is an introduction to the field, with special emphasis on sound modern methods. The topics include knowledge representation, problem solving via search, game playing, logical and probabilistic reasoning, planning, dynamic programming, and reinforcement learning. Programming exercises concretize the key methods. The course targets graduate students and advanced undergraduates. Evaluation is based on written and programming assignments, a midterm exam and a final exam.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5103 Theory of Artificial Intelligence and Machine Learning

Mathematical foundations for Artificial Intelligence and Machine Learning. An introduction to the PAC-Semantics (Probably Approximately Correct) as a common semantics for knowledge obtained from learning and declarative sources, and the computational problems underlying the acquisition and processing of such knowledge. We emphasize the design and analysis of efficient algorithms for these problems, and examine for which representations these problems are known or believed to be tractable.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5104 Data Mining

With the vast advancements in science and technology, the acquisition of large quantities of data is routinely performed in many fields. Examples of large data include various types of data on the internet, high-throughput sequencing data in biology and medicine, extraterrestrial data from telescopes in astronomy, and images from surveillance cameras in security settings. Analyzing a large amount of data through data mining has become an effective means of extracting knowledge from data. This course introduces the basic concepts and methods of data mining and provides hands-on experience for processing, analyzing and modeling structured and unstructured data. Homework problems, exams, and programming assignments will be administrated throughout the course to enhance students' learning.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5105 Bayesian Methods in Machine Learning

This course will cover machine learning from a Bayesian probabilistic perspective. Bayesian probability allows us to model and reason about all types of uncertainty. The result is a powerful, consistent framework for approaching many problems that arise in machine learning, including parameter estimation, model comparison, and decision making. We will begin with a high-level introduction to Bayesian inference and then proceed to cover more advanced topics. These will include inference techniques (e.g., exact, MAP, sampling methods, the Laplace approximation), Bayesian decision theory, Bayesian model comparison, Bayesian nonparametrics, and Bayesian optimization.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5106 Multi-Agent Systems

This course introduces the foundations and methods of multi-agent systems, with a focus on how autonomous agents can plan, coordinate, and reason effectively in shared environments. Core topics include distributed problem solving, cooperative planning, task and resource allocation, and algorithms for coordination under uncertainty. The course also examines emerging directions in agentic AI, highlighting how large language models (LLMs) and other AI techniques can enhance multi-agent reasoning, communication, and collaboration.

Credit 3 units.

Typical periods offered: Fall


CSE 5107 Machine Learning

This course is the second course of a two course sequence on machine learning. It assumes a fundamental understanding of the machine learning foundations (both theoretical and practical) and introduces probabilistic machine learning approaches in-depth as well as advanced topics at the frontier of the field. Topics to be covered include discriminative and generative probabilistic models, kernel methods (e.g., support vector machines, Gaussian processes), neural networks (deep learning), unsupervised learning techniques, and practical machine learning (e.g., feature engineering, dimensionality reduction, model comparison).

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5108 Human-In-The-Loop Computation

This course is an exploration of the opportunities and challenges of human-in-the-loop computation, an emerging field that examines how humans and computers can work together to solve problems neither can solve alone yet. We will explore ways in which techniques from machine learning, game theory, optimization, online behavioral social science, and human-computer interactions can be used to model and analyze human-in-the-loop systems such as crowdsourcing markets, prediction markets, and user-generated content platforms. We will also look into recent developments in the interactions between humans and AIs, such as learning with the presence of strategic behavior and ethical issues in AI systems.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5109 Advanced Machine Learning

This course provides a close look at advanced machine learning algorithms, including their theoretical guarantees (computational learning theory) and tricks to make them work in practice. In addition, this course focuses on more specialized learning settings, including unsupervised learning, semi-supervised learning, domain adaptation, multi-task learning, structured prediction, metric learning, and learning of data representations. Learning approaches may include graphical models, non-parametric Bayesian statistics, and technical topics such as sampling, approximate inference, and non-linear function optimization. Mathematical maturity and general familiarity with machine learning are required.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5114 Data Manipulation and Management at Scale

Harnessing the full potential of large-scale data requires advanced techniques and robust tools. This course delves into the methodologies and technologies essential for managing and manipulating substantial data volumes efficiently and responsibly. In taking this course, students will learn key concepts about storing, organizing, transforming, and using large quantities of data and will get hands-on experience using industry-standard tools such as Spark, Airflow, and Kafka.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5180 Heuristic Search and Constraint Processing

The course has three main parts and covers the main topics of heuristic search and constraint processing. The first part focuses on single-agent heuristic search problems and algorithms. The second part deals with adversary game playing problems, strategies and algorithms. The third part considers constraint problems and constraint processing techniques. The course will cover basic and advanced search techniques as well as their performance analysis. It will also provide ample examples of real-world problems and applications. The students will have opportunity to write programs to solve some selected search problems. Prerequisites: CSE 247 and CSE 511A.

Credit 3 units.


CSE 5200 Real-Time Systems

This course covers software systems and network technologies for real-time applications such as automobiles, avionics, industrial automation, and the Internet of Things. Topics include real-time scheduling, real-time operating systems and middleware, quality of service, industrial networks, and real-time cloud computing.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5201 Wireless Sensor Networks

Dense collections of smart sensors networked to form self-configuring pervasive computing systems provide a basis for a new computing paradigm that challenges many classical approaches to distributed computing. Naming, wireless networking protocols, data management, and approaches to dependability, real-time, security, and middleware services all fundamentally change when confronted with this new environment. Embedded sensor networks and pervasive computing are among the most exciting research areas with many open research questions. This course will study a large number of research papers that deal with various aspects of wireless sensor networks. Students will perform a project on a real wireless sensor network comprised of tiny devices, each consisting of sensors, a radio transceiver, and a microcontroller.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5202 Advanced Operating Systems

This course offers an in-depth hands-on exploration of advanced uses of key OS abstractions, mechanisms and policies, with an increasing focus on understanding and evaluating their behaviors and interactions. Readings, lecture material, studio exercises, and a semester-long project chosen by students are closely integrated in an active-learning environment in which students gain experience and proficiency writing, tracing, and evaluating user-space and kernel-space code. Topics include how memory, processes and threads, virtual file systems, and other mechanisms can be used by hypervisors, containers, and other advanced OS abstractions, as well as forensic techniques for examining and managing system behavior.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5203 Systems Security

This course examines the intersection between computer design and information security. While performance and efficiency in digital systems have improved markedly in recent decades, computer security has worsened overall in this time frame. To understand why, we will explore the role that design choices play in the security characteristics of modern computer and network systems. Students will use and write software to illustrate mastery of the material. Projects will include identifying security vulnerabilities, exploiting vulnerabilities, and detecting and defending against exploits.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5205 Computation in Economics and Social Choice

This course covers the mathematical and algorithmic foundations of problems of reconciling agent preferences. By specifying the kinds of agents, alternatives, and objectives, this captures algorithm design problems as diverse as how to sell goods to buyers, how to match medical residents to hospitals, and how to elect representatives to legislatures. Topics include algorithm and mechanism design for the allocation of private goods; choosing public goods and shared alternatives; and participatory budgeting.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5270 Natural Language Processing

Natural language processing (NLP) is an important part of artificial intelligence (AI), endowing computers with the ability to process human language. NLP techniques are used in applications such as question answering, automatic language translation, and extracting structured information from text. This course will introduce fundamental ideas and recent research trends in NLP. Students will gain theoretical and practical experience with various NLP techniques (e.g., deep learning) and applications.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5271 Data-Driven Privacy and Security

It is becoming increasingly hard for users to use the internet while keeping their privacy and security intact. It is a routine practice for online services to surreptitiously collect excessive amounts of user data, use user data for undisclosed purposes, and even engage in blatant trading of user data. This research-oriented course takes a deep-dive into surfacing data collection by online services and its harms to users, exploring solutions that aim to mitigate these harms, investigating emerging threats that still need to be addressed, and reviewing new directions to systematically improve the state of user privacy and security on the internet. Major topics: Web privacy and security, IoT privacy and security, Large language model (LLM) security and privacy, and Technology policy.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5300 Database Management Systems

A study of data models and the database management systems that support these data models. The design theory for databases is developed and various tools are utilized to apply the theory. General query languages are studied and techniques for query optimization are investigated. Integrity and security requirements are studied in the context of concurrent operations on a database, where the database may be distributed over one or more locations. The unique requirements for engineering design databases, image databases, and long transaction systems are analyzed.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5302 Advanced Multiparadigm Software Development

Intensive focus on advanced design and implementation of concurrent and distributed system software in C++. Topics covered include concurrency and synchronization features and software architecture patterns.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5306 Rapid Prototype Development and Creative Programming

This course uses web development as a vehicle for developing skills in rapid prototyping. Students acquire the skills to build a Linux web server in Apache, to write a web site from scratch in PHP, to run an SQL database, to perform scripting in Python, to employ various web frameworks, and to develop modern web applications in client-side and server-side JavaScript. The course culminates with a creative project in which students are able to synthesize the course material into a project of their own interest. The course implements an interactive studio format: after a formal presentation of a topic, students develop a related project under the supervision of the instructor.

Credit 3 units.

Typical periods offered: Fall, Spring, Summer


CSE 5307 Software Security

In this course, students will be introduced to the foundations of software security. We will explore different classes of software vulnerabilities and analyze the fundamental problems behind these vulnerabilities, and we will study the methods and techniques used to discover, exploit, prevent, and mitigate these vulnerabilities. Topics of interest include buffer overflow, integer overflow, type confusion, use-after-free, and so on. Throughout the course, we take a defense-in-depth mentality and see how systems can be protected. Students are expected to have a solid understanding of assembly language, C/C++, and operating systems. Prerequisite: CSE 361S.

Credit 3 units.


CSE 5308 Modeling and Performance Evaluation of Computer Systems

Modern computing systems consist of multiple interconnected components that all influence performance. The focus of this course is on developing modeling tools aimed at understanding how to design and provision such systems to meet certain performance or efficiency targets and the trade-offs involved. The course covers Markov chains and their applications to simple queues, and it proceeds to explore more complex systems, including server farms and how to optimize their performance through scheduling and task assignment policies. The course includes a brief review of the necessary probability and mathematical concepts.

Credit 3 units.

Typical periods offered: Fall


CSE 5309 Concepts in Multicore Computing

Nowadays, the vast majority of computer systems are built using multicore processor chips. This fundamental shift in hardware design impacts all areas of computer science - one must write parallel programs in order to unlock the computational power provided by modern hardware. The goal of this course is to study concepts in multicore computing. We will examine the implications of the multicore hardware design, discuss challenges in writing high performance software, and study emerging technologies relevant to developing software for multicore systems. Topics include memory hierarchy, cache coherence protocol, memory models, scheduling, high-level parallel language models, concurrent programming (synchronization and concurrent data structures), algorithms for debugging parallel software, and performance analysis.

Credit 3 units.

Typical periods offered: Spring


CSE 5310 AI for Health

Artificial Intelligence (AI) has emerged as a powerful tool for solving complex health problems using advanced data-driven techniques. AI for health is fueled by both the advancement in AI methods and the availability of health data provided by electronic health records (EHR) and wearables. This course will cover recent literature in the interdisciplinary field of AI for health. Students will read and critique research papers and perform a project on AI for health.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5313 Coding and Information Theory for Data Science

Coding/information theory emerged in mid 20'th century as a mathematical theory of communication with noise. In latter decades it has developed to a vast topic encompassing most aspects of handling large datasets. The course will begin by surveying the classical mathematical theory and its basic applications in communication, and continue to contemporary applications in storage, computation, privacy, machine learning, and emerging technologies such as networks, blockchains, and DNA storage. There will be 4-5 homework assignments, one in-person midterm, and a final reading assignment.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5360 Distributed System Design: Models and Languages

Modern computing environments are highly distributed. This has been the result of major advances in networking technology and their rapid assimilation by a society that functions in a highly distributed and decentralized manner. The goal of this course is to familiarize students with basic concepts, models, and languages that shaped recent developments in distributed computing. The focus is on exploring new ways of thinking about computing and communication that made the development of distributed software systems possible. Competing concepts and design strategies will be examined both from a theoretical and a practical perspective.

Credit 3 units.

Typical periods offered: Fall


CSE 5370 Trustworthy Autonomy

Cyber-physical systems are becoming increasingly capable. These are systems consisting of digital and physical components. They are deployed to increase autonomy in critical settings where failure is costly, such as driving, aviation, medicine, and manufacturing. This course covers several approaches for assuring that such systems meet their specifications. We will discuss: (1) how to mathematically model these systems and their specifications, (2) how to formally verify and synthesize models which meet their specifications, and (3) how to address the challenges resulting from incorporating machine-learned components, such as neural networks, as perception and control components in these systems.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5401 Advanced Algorithms

Provides a broad coverage of fundamental algorithm design techniques with the focus on developing efficient algorithms for solving combinatorial and optimization problems. The topics covered include: review of greedy algorithms, dynamic programming, NP-completeness, approximation algorithms, use of linear and convex programming for approximation, and on-line algorithms. Throughout this course there is an emphasis on correctness proofs and the ability to apply the techniques taught to design efficient algorithms for problems from a wide variety of application areas.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5402 Concurrency and Memory Safe System Software Development

As multi-core processors and multi-threaded programming are ever more prevalent in modern computing systems, ensuring correctness of programs depends strongly on avoiding hazards that may arise from concurrency and memory management semantics in those contexts. This course focuses on the memory safety and concurrency safety models in Rust, with an emphasis on the language's syntax and semantics related to those models, both separately and in combination, as well as a general coverage of the language as a whole. Lectures and assigned readings will be augmented with studio exercises and laboratory assignments in which key language features will be explored and applied hands-on.

Credit 3 units.

Typical periods offered: Fall


CSE 5403 Algorithms for Nonlinear Optimization

The course will provide an in-depth coverage of modern algorithms for the numerical solution of multidimensional optimization problems. Unconstrained optimization techniques including Gradient methods, Newton's methods, Quasi-Newton methods, and conjugate methods will be introduced. The emphasis is on constrained optimization techniques: Lagrange theory, Lagrangian methods, penalty methods, sequential quadratic programming, primal-dual methods, duality theory, nondifferentiable dual methods, and decomposition methods. The course will also discuss applications in engineering systems and use of state-of-the-art computer codes. Special topics may include large-scale systems, parallel optimization, and convex optimization.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5404 Special Topics in Computer Science Theory

The material for this course varies among offerings, but this course generally covers advanced or specialized topics in computer science theory.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5406 Computational Geometry

Computational geometry is the algorithmic study of problems that involve geometric shapes such as points, lines, and polygons. Such problems appear in computer graphics, vision, robotics, animation, visualization, molecular biology, and geographic information systems. This course covers data structures that are unique to geometric computing, such as convex hull, Voronoi diagram, Delaunay triangulation, arrangement, range searching, KD-trees, and segment trees. Also covered are algorithms for polygon triangulation, path planning, and the art gallery problem.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5409 Theory of Parallel Systems

The course covers various aspects of parallel programming such as algorithms, schedulers and systems from a theoretical perspective. We will cover both classic and recent results in parallel computing. Topics include parallel algorithms and analysis in the work/span model, scheduling algorithms, external memory algorithms and their analysis, cache-coherence protocols etc. The focus will be on design and analysis.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5414 Special Topics in Application

The material for this course varies among offerings, but this course generally covers advanced or specialized topics in computer application.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5430 Advanced Secure Software Engineering

The aim of this course is to provide students with broader and deeper knowledge as well as hands-on experience in understanding security techniques and methods needed in software development. Students complete an independent research project which will involve synthesizing multiple software security techniques and applying them to an actual software program or system.

Credit 3 units.


CSE 5440 Special Topics in Machines:

The material for this course varies among offerings, but this course generally covers advanced or specialized topics in computer science machines.

Credit 0 units.

Typical periods offered: Fall, Spring


CSE 5445 Special Topics in Systems

The material for this course varies among offerings, but this course generally covers advanced or specialized topics in computer science systems.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5500 Mobile Robotics

An introduction to the design and implementation of intelligent mobile robot systems. This course will cover the fundamental elements of mobile robot systems from a computational standpoint. Issues such as software control architectures, sensor interpretation, map building and navigation will be covered, drawing from current research in the field. Students will also design and build a small mobile robot and program it to perform simple tasks in real-world environments. Prerequisites: CSE 247 and either ESE 326 or Math 320.

Credit 3 units.


CSE 5504 Geometric Computing for Biomedicine

With the advance of imaging technologies deployed in medicine, engineering and science, there is a rapidly increasing amount of spatial data sets (e.g., images, volumes, point clouds) that need to be processed, visualized, and analyzed. This course will focus on a number of geometry-related computing problems that are essential in the knowledge discovery process in various spatial-data-driven biomedical applications. These problems include visualization, segmentation, mesh construction and processing, and shape representation and analysis. This course consists of lectures that cover theories and algorithms, and it includes a series of hands-on programming projects using real-world data collected by various imaging techniques (e.g., CT, MRI, electron cryomicroscopy).

Credit 3 units.

Typical periods offered: Fall


CSE 5505 Adversarial AI

This course will introduce students to concepts, theoretical foundations, and applications of adversarial reasoning in Artificial Intelligence. Topics will include the use of machine learning in adversarial settings, such as security, common attacks on machine learning models and algorithms, foundations of game theoretic modeling and analysis in security, with a special focus on algorithmic approaches, and foundations of adversarial social choice, with a focus on vulnerability analysis of elections.

Credit 3 units.

Typical periods offered: Spring


CSE 5506 Human-Computer Interaction Methods

An introduction to user centered design processes. The course covers a variety of HCI techniques for use at different stages in the software development cycle, including techniques that can be used with and without users. Students will gain experience using these techniques through in-class exercises and then apply them in greater depth through a semester long interface development project. Students who enroll in this course are expected to be comfortable with building user interfaces in at least one framework and be willing to learn whatever framework is most appropriate for their project. Over the course of the semester, students will be expected to present their interface evaluation results through written reports and in class presentations.

Credit 3 units.

Typical periods offered: Fall


CSE 5507 Advanced Visualization

We are in an era where it is possible to have all of the world's information at our fingertips. However, the more information we can access, the more difficult it is to obtain a holistic view of the data or to determine what's important to make decisions. Computer-based visualization systems provide the opportunity to represent large or complex data visually to aid comprehension and cognition. In this course, we learn about the state of the art in visualization research and gain hands-on experience with the research pipeline. We also learn how to critique existing work and how to formulate and explore sound research questions. We will cover advanced visualization topics including user modeling, adaptation, personalization, perception, and visual analytics for non-experts.

Credit 3 units.

Typical periods offered: Spring


CSE 5509 Computer Vision

This course introduces the fundamentals of designing computational systems that can look at images and reason about the physical objects and scenes they represent. Topics include the estimation of color, shape, geometry, and motion from images; image classification, segmentation, and object detection; and image restoration, enhancement, and synthesis. The focus of this course will be on mathematical foundations and practical algorithmic approaches, including: the physics and geometry of image formation; robust methods for estimating image motion and geometry; and deep-learning approaches for semantic image understanding. Students will be required to program in Python.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5515 Computational Photography

Computational Photography describes the convergence of computer graphics, computer vision, and the Internet with photography. Its goal is to overcome the limitations of traditional photography using computational techniques to enhance the way we capture, manipulate, and interact with visual media. In this course we will study many interesting, recent image based algorithms and implement them to the degree that is possible. Topics may include: cameras and image formation, human visual perception, image processing (filtering, pyramids), image blending and compositing, image retargeting, texture synthesis and transfer, image completion / inpainting, super-resolution, deblurring, denoising, image based lighting and rendering, high dynamic range, depth and defocus, flash / no flash photography, coded aperture photography, single / multi view reconstruction, photo quality assessment, non photorealistic rendering, modeling and synthesis using Internet data, and others. Pre-requisites: CSE 452A, CSE 554A, or CSE 559A

Credit 3 units.


CSE 5519 Advances in Computer Vision

Computer vision is a fast-moving field, with the past few years seeing tremendous advances in the development of computational algorithms for solving visual tasks. This course is designed to introduce students to advanced and recently published techniques, including work in the areas of attention-based architectures, self-supervised/few-shot/zero-shot learning, explainable models, deep geometric methods, neural fields, generative image modeling, and vision language models.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5550 Multimedia Signals and Systems

An exploration of algorithms, architectures, and compilers for media processing. Introduces algorithms in image, video, audio, and graphics processing. Examines the characteristics of multimedia (e.g. the extensive data parallelism) and how those characteristics facilitate the design of efficient multimedia systems. Contrasts media processors with general-purpose processors, distinguishing specialized media processing features, including subword parallelism and application-specific hardware. Coursework includes written assignments, some lab and programming exercises, and a final project. Formerly CS 525M. Prerequisites: CSE 361S or equivalent.

Credit 3 units.


CSE 5600 Computer Systems Architecture I

An exploration of the central issues in computer architecture: instruction set design, addressing and register set design, control unit design, memory hierarchies (cache and main memories, virtual memory), pipelining, instruction scheduling, and parallel systems. The course emphasizes understanding the performance implications of design choices, using architecture modeling and evaluation using simulation techniques.

Credit 3 units.

Typical periods offered: Fall


CSE 5601 Computer Systems Architecture II

Advanced techniques in computer system design. Selected topics from: processor design (multithreading, VLIW, data flow, chip-multiprocessors, application specific processors, vector units, large MIMD machines), memory systems (topics in locality, prefetching, reconfigurable and special-purpose memories), system specification and validation, and interconnection networks. Prerequisites: CSE 560M

Credit 3 units.


CSE 5605 Acceleration of Algorithms in Reconfigurable Logic

Reconfigurable logic, in the form of Field-Programmable Gate Arrays (FPGAs), enables the deployment of custom hardware for individual applications. To exploit this capability, the application developer is required to specify the design at the register-transfer level. This course explores techniques for designing algorithms that are amenable to hardware acceleration as well as provides experience in actual implementation. Example applications are drawn from a variety of fields, such as networking, computational biology, etc.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5606 High Performance Computer Systems

Many applications make substantial performance demands upon the computer systems upon which those applications are deployed. In this context, performance is frequently multidimensional, including resource efficiency, power, execution speed (which can be quantified via elapsed run time, data throughput, or latency), etc. Modern computing platforms exploit parallelism and architectural diversity (e.g., co-processors such as graphics engines and/or reconfigurable logic) to achieve the desired performance goals. This course addresses the practical aspects of achieving high performance on modern computing platforms. This includes questions ranging from how the computing platform is designed to how are applications and algorithms expressed to exploit the platform's properties. Particular attention is given to the role of application development tools.

Credit 3 units.

Typical periods offered: Spring


CSE 5607 Computer Systems Analysis

A comprehensive course on performance analysis techniques. The topics include common mistakes, selection of techniques and metrics, summarizing measured data, comparing systems using random data, simple linear regression models, other regression models, experimental designs, 2**k experimental designs, factorial designs with replication, fractional factorial designs, one factor experiments, two factor full factorial design w/o replications, two factor full factorial designs with replications, general full factorial designs, introduction to queueing theory, analysis of single queues, queueing networks, operational laws, mean-value analysis, time series analysis, heavy tailed distributions, self-similar processes, long-range dependence, random number generation, analysis of simulation results, and art of data presentation. Prerequisites: CSE 260M

Credit 3 units.


CSE 5608 Imaging Sensors

This course will cover topics on digital imaging sensors including basic operations of silicon photodetectors; CCD and CMOS passive and active sensor operation; temporal and spatial noise in CMOS sensors; spatial resolution and MTF; SNR and dynamic range; high dynamic range architectures and application specific imaging sensors such as polarization imaging and fluorescent imaging sensors. Prereqs: CSE 260M and ESE 232

Credit 3 units.


CSE 5610 Large Language Models

Large Language Models (LLMs) have revolutionized the field of artificial intelligence, offering unprecedented capabilities in understanding and generating human-like text. This is a research-oriented course that explores the capabilities and challenges of LLMs. Students will gain a comprehensive understanding of the underlying mechanisms that power these models, as well as reading frontier papers and working on projects to gain hands-on experience. Topics to be covered include LLM training, LLM capabilities, safety, ethical considerations, approaches to augment LLMs, efficiency of modeling and training LLMs, etc.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5619 Recent Advances in Computer Security and Privacy

The aim of this course is to provide students with knowledge and hands-on experience in understanding the security techniques and methods needed for IoT, real-time, and embedded systems. Students complete an independent research project which will involve synthesizing multiple security techniques and applying them to an actual IoT, real-time, or embedded system or device.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5700 Recent Advances in Networking

This course covers the latest advances in networking. The topics include Networking Trends, Data Center Network Topologies, Data Center Ethernet, Server Virtualization, Storage Virtualization, Carrier Ethernet, Application Delivery Networking, Virtual Bridging, Big Data, Networking Issues for Big Data, LAN Extension and Virtualization using Layer 3 Protocols, Multi-Tenant Isolation and Network Virtualization in Cloud Data Centers, OpenFlow, OpenFlow Controllers and Tools, Software Defined Networking (SDN), Network Function Virtualization (NFV), Internet of Things (IoT), Networking Protocols for IoT, Blockchains, and Quantum Communications. Students also do a project/survey involving application of these topics.

Credit 3 units.

Typical periods offered: Fall


CSE 5701 Network Security

This course covers principles and techniques in securing computer networks. Real world examples will be used to illustrate the rationales behind various security designs. There are three main components in the course, preliminary cryptography, network protocol security and network application security. Topics include IPSec, SSL/TLS, HTTPS, network fingerprinting, network malware, anonymous communication, and blockchain. The class project allows students to take a deep dive into a topic of choice in network security.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5703 Protocols for Computer Networks

An introduction to the design, performance analysis, and implementation of existing and emerging computer network protocols. Protocols include multiple access protocols (e.g., CSMA/CD, token ring), internetworking with the Internet Protocol (IP), transport protocols (e.g., UDP, TCP), high-speed bulk transfer protocols, and routing protocols (e.g., BGP, OSPF). General topics include error control, flow control, packet switching, mechanisms for reliable, ordered and bounded-time packet delivery, host-network interfacing and protocol implementation models. Substantial programming exercises supplement lecture topics. Prerequisite: CSE 473S or permission of the instructor.

Credit 3 units.


CSE 5704 Recent Advances in Wireless and Mobile Networking

This course provides a comprehensive treatment of wireless data and telecommunication networks. Topics include recent trends in wireless and mobile networking, wireless coding and modulation, wireless signal propagation, IEEE 802.11a/b/g/n/ac wireless local area networks, 60 GHz millimeter wave gigabit wireless networks, vehicular wireless networks, white spaces, Bluetooth and Bluetooth Smart, wireless personal area networks, wireless protocols for the Internet of Things, cellular networks: 1G/2G/3G, LTE, LTE-Advanced, and 5G.

Credit 3 units.

Typical periods offered: Fall


CSE 5801 Approximation Algorithms

Numerous optimization problems are intractable to solve optimally. The intractability of a problem could come from the problem's computational complexity, for instance the problem is NP-Hard, or other computational barriers. To cope with the inability to find an optimal algorithm, one may desire an algorithm that is guaranteed to return a solution that is comparable to the optimum. Such an algorithm is known as an approximation algorithm. Approximation algorithms are a robust way to cope with intractability and they are widely used in practice or are used to guide the development of practical heuristics. The area of approximation algorithms has developed a vast theory, revealing the underlying structure of problems as well as their different levels of difficulty. The majority of this course will focus on fundamental results and widely applicable algorithmic and analysis techniques for approximation algorithms.Prerequisite: CSE 347

Credit 3 units.


CSE 5802 Complexity Theory

An introduction to the quantitative theory of computation with limited resources. The course examines the relative power of limited amounts of basic computational resources, such as time, memory, circuit size, and random bits, as well as parallel, nondeterministic, alternating, and interactive machine models. Models that capture special kinds of computational problems, such as counting problems or approximate solutions, will also be introduced and related to the standard models. This examination will emphasize surprising relationships between seemingly disparate resources and kinds of computational problems. The course will also discuss some meta-theory, illuminating the weaknesses of standard mathematical techniques of the field against its notorious open conjectures. Prerequisites: CSE 347

Credit 3 units.


CSE 5804 Algorithms for Biosequence Comparison

This course surveys algorithms for comparing and organizing discrete sequential data, especially nucleic acid and protein sequences. Emphasis is on tools to support search in massive biosequence databases and to perform fundamental comparison tasks such as DNA short-read alignment. Prerequisite: CSE 347 or permission of instructor. These techniques are also of interest for more general string processing and for building and mining textual databases. Algorithms are presented rigorously, including proofs of correctness and running time where feasible. Topics include classical string matching, suffix array string indices, space-efficient string indices, rapid inexact matching by filtering (including BLAST and related tools), and alignment-free algorithms. Students complete written assignments and implement advanced comparison algorithms to address problems in bioinformatics. This course does not require a biology background.

Credit 3 units.

Typical periods offered: Spring


CSE 5805 Sparse Modeling for Imaging and Vision

Sparse modeling is at the heart of modern imaging, vision, and machine learning. It is a fascinating new area of research that seeks to develop highly effective data models. The core idea in sparse modeling theory is a novel redundant transform, where the number of transform coefficients is larger compared to the original data dimension. Together with redundancy comes an opportunity of seeking the sparsest possible representation, or the one with the fewest non-zeros. This core idea leads to a series of beautiful theoretical and practical results with many applications such as regression, prediction, restoration, extrapolation, compression, detection, and recognition. In this course, we will explore sparse modeling by covering theoretical as well as algorithmic aspects with applications in computational imaging and computer vision. Prerequisites: ESE 318, Math 233, Math 309, and Math 429, or equivalents. Coding with MATLAB or Python.

Credit 3 units.


CSE 5806 Analysis of Imaging Data

This course focuses on an in-depth study of advanced topics and interests in image data analysis. Students will learn about hardcore imaging techniques and gain the mathematical fundamentals needed to build their own models for effective problem solving. Topics of deformable image registration, numerical analysis, probabilistic modeling, data dimensionality reduction, and convolutional neural networks for image segmentation will be covered. The main focus might change from semester to semester. Prerequisites: Math 309, ESE 326, and CSE 247.

Credit 3 units.


CSE 5807 Algorithms for Computational Biology

This course is a survey of algorithms and mathematical methods in biological sequence analysis (with a strong emphasis on probabilistic methods) and systems biology. Sequence analysis topics include introduction to probability, probabilistic inference in missing data problems, hidden Markov models (HMMs), sequence alignment, and identification of transcription-factor binding sites. Systems biology topics include the mapping of gene regulatory networks, quantitative modeling of gene regulatory networks, synthetic biology, and applications of deep learning in computational biology.

Credit 3 units.

Typical periods offered: Fall


CSE 5990 Introduction to Graduate Study in CSE

Introduces students to the different areas of research conducted in the department. Provides an introduction to research skills, including literature review, problem formulation, presentation, and research ethics. Lecture and discussion are supplemented by exercises in the different research areas and in critical reading, idea generation, and proposal writing.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 5999 Independent Study

Master's Graduate Independent Study registrations are rare for the CSE Department, as this registration does not count toward CSE Master's Degrees. Students will need to email the CSE Graduate Coordinator to confirm that they would be eligible to do an Ind. Study. If they are confirmed as eligible, they will then receive the departmental proposal form, which must be completed in order for them to then be enrolled .

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 7900 Research Seminar On Computer Science Pedagogy

This seminar will examine research, techniques, approaches, and strategies for teaching computer science at the undergraduate and graduate levels. Participants will take turns presenting a particular paper or concept and then leading an ensuing discussion. While this seminar may be especially helpful for those contemplating an academic career, the seminar is open to all interested participants.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7901 Research Seminar On AI for Medicine

Artificial intelligence (AI) has emerged as a powerful tool for solving complex medical problems using advanced data-driven techniques. AI for medicine is fueled by both the advancement in AI methods and the availability of clinical data provided by electronic health records (EHR) and wearables. This seminar will discuss recent literature in the interdisciplinary field of AI for medicine.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7905 Research Seminar On Machine Learning

Research seminars examine publications, techniques, approaches, and strategies within an area of computer science and engineering. Seminars are highly participational: students are expected to take turns presenting material, to prepare for seminar by reading any required material, and to contribute to the group's discussions. The actual topics covered in a seminar will vary by semester and instructor. Interested students are encouraged to obtain a syllabus from the instructor's web page or by contacting the instructor.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7910 Research Seminar On Robotics and Human-Computer Interaction

Research seminars examine publications, techniques, approaches, and strategies within an area of computer science and engineering. Seminars are highly participational: students are expected to take turns presenting material, to prepare for seminar by reading any required material, and to contribute to the group's discussions. The actual topics covered in a seminar will vary by semester and instructor. Interested students are encouraged to obtain a syllabus from the instructor's web page or by contacting the instructor.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7915 Research Seminar On Software Systems

Research seminars examine publications, techniques, approaches, and strategies within an area of computer science and engineering. Seminars are highly participational: students are expected to take turns presenting material, to prepare for seminar by reading any required material, and to contribute to the group's discussions. The actual topics covered in a seminar will vary by semester and instructor. Interested students are encouraged to obtain a syllabus from the instructor's web page or by contacting the instructor.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7920 Research Seminar On Algorithms and Theory

Research seminars examine publications, techniques, approaches, and strategies within an area of computer science and engineering. Seminars are highly participational: students are expected to take turns presenting material, to prepare for seminar by reading any required material, and to contribute to the group's discussions. The actual topics covered in a seminar will vary by semester and instructor. Interested students are encouraged to obtain a syllabus from the instructor's web page or by contacting the instructor.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7925 Research Seminar On Graphics and Vision

Research seminars examine publications, techniques, approaches, and strategies within an area of computer science and engineering. Seminars are highly participational: students are expected to take turns presenting material, to prepare for seminar by reading any required material, and to contribute to the group's discussions. The actual topics covered in a seminar will vary by semester and instructor. Interested students are encouraged to obtain a syllabus from the instructor's web page or by contacting the instructor.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7930 Research Seminar On Analog Computing

This seminar will focus on classic and recent papers on analog, stochastic and neuromorphic computing. Students will read, present, and discuss journal papers on analog techniques for implementing sensors and processors. Focus will be placed on fundamental advances and challenges of implementing analog processors.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7935 Research Seminar On Networking and Communications

Research seminars examine publications, techniques, approaches, and strategies within an area of computer science and engineering. Seminars are highly participational: students are expected to take turns presenting material, to prepare for seminar by reading any required material, and to contribute to the group's discussions. The actual topics covered in a seminar will vary by semester and instructor. Interested students are encouraged to obtain a syllabus from the instructor's web page or by contacting the instructor.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7940 Research Seminar On Computational Systems Biology

Research seminars examine publications, techniques, approaches, and strategies within an area of computer science and engineering. Seminars are highly participational: students are expected to take turns presenting material, to prepare for seminar by reading any required material, and to contribute to the group's discussions. The actual topics covered in a seminar will vary by semester and instructor. Interested students are encouraged to obtain a syllabus from the instructor's web page or by contacting the instructor.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7945 Research Seminar On Parallel Computing

This seminar will focus on classic and recent papers on parallel computing. Students will read, present, and discuss papers on parallel models, algorithms, and architectures from top conferences and journals. Focus will be placed on fundamental advances and theoretical models and algorithms, rather than on implementation papers.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7950 Research Seminar On AI for Health

This seminar will study and discuss recent research papers on the applications of advanced AI technologies to health care and public health.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7955 Research Seminar On Experimental Networked Systems

This seminar will explore the design, implementation, evaluation, and use of experimental computer and network systems. Participants will read and discuss research papers, and demonstrate small performance & reliability experiments using research infrastructure developed at Washington University, with a focus on observability and multi-platform operation.

Credit 1 unit.

Typical periods offered: Spring


CSE 7960 Concurrent and Parallel Embedded Systems Seminar

This seminar will focus on classic and recent papers on concurrent and parallel embedded systems. Students will read, present, and discuss papers on topics including but not limited to real-time and/or cyber-physical system design and analysis, computer architectural techniques, and heterogeneous computational devices. The focus will be primarily on fundamental advances and theoretical models and algorithms, rather than on implementation papers.

Credit 1 unit.

Typical periods offered: Fall, Spring


CSE 7998 Master's Capstone

Students will need to complete the Master's Research Proposal Form (the form can be found at this page: https://cse.washu.edu/academics/graduate/current-students/Resources-for-Current-Masters-Students.html) and they will need to email the proposal form to the CSE Graduate Coordinator at least 72 hours before the add/drop deadline, so that the form can be Docusigned and approved. If the form is approved, the student will be enrolled in the course. If the Proposal Form is sent to the Grad Coordinator within the final 72 hours of the add/drop deadline, students are at risk of not being enrolled by the deadline.

Credit 3-6 units.

Typical periods offered: Fall, Spring, Summer


CSE 8001 Pedagogy

A student taking this course studies the fundamentals of teaching in the discipline of computer science and computer engineering. A student enrolled in this course staffs some other course taught by our department, serving as its primary instructor or co-instructor. That student receives frequent mentoring and feedback on his or her preparation and delivery. This course is recommended especially for doctoral students who seek a career in computer science and engineering education.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 8002 Mentored Teaching Experience

This course is available only for our department's doctoral students who are involved in a mentored teaching experience.

Credit 3 units.

Typical periods offered: Fall, Spring


CSE 8998 Doctoral Research

Students will be working in a lab setting supervised by their mentor.

Credit 3-9 units.

Typical periods offered: Fall, Spring