Combined BS/MS Courses

CSEM 584: Computer Security Topics in computer security. Combined bachelors/masters program.

Professional (Evening) Courses

CSEP 501: Compiler Construction Principles and practice of building efficient implementations of modern programming languages. Lexical, syntactic, and semantic analysis of programs. Intermediate program representations. Intra- and interprocedural analysis and optimization. Run-time system techniques. Related programming environment facilities such as source-level debuggers and profilers. Prerequisite: CSE majors only.
CSEP 503: Principles Of Software Engineering

Study of major developments in software engineering over the past three decades. Topics may include design (information hiding, layering, open implementations), requirements specification (informal and formal approaches), quality assurance (testing, verification and analysis, inspections), reverse and re-engineering (tools, models, approaches). Prerequisite: CSE majors only.

CSEP 504: Advanced Topics In Software Systems Topics include software architecture, software tools, programming language analysis, type systems, formal reasoning, and other pertinent topics in software engineering and programming languages research.
CSEP 505: Programming Languages A study of non-imperative programming paradigms such as functional, object-oriented, logic, and constraint programming. Programming language semantics and type theory. Prerequisite: CSE majors only.
CSEP 506: Advanced Topics in Programming Languages May include functional, object-oriented, parallel, and logic programming languages; semantics for languages of these kinds; type declaration, inference, and checking (including polymorphic types); implementation issues, such as compilation, lazy evaluation, combinators, parallelism, various optimization techniques. Implementation project required.
CSEP 510: Human Computer Interaction

Topics in human-computer interaction, including tools and skills for user interface design, user interface software architecture, rapid prototyping and iterative design, safety and critical systems, evaluation techniques, and computer supported cooperative work. Prerequisite: CSE majors only.

CSED 516: Scalable Data Systems and Algorithms Principles and algorithms for data management and analysis at scale. Designs of traditional and modern big data systems and how to use those systems. Basics of cloud computing. Prerequisite: CSE D/DATA 514 and CSE D/DATA 515 or permission of instructor. Offered: jointly with DATA 516.
CSEP 517: Natural Language Processing Overview of modern approaches for natural language processing. Topics include language models, text classification, tagging, parsing, machine translation, semantics, and discourse analysis.
CSEP 521: Applied Algorithms Principles of design of efficient algorithms with emphasis on algorithms with real world applications. Examples drawn from computational geometry, biology, scientific computation, image processing, combinatorial optimization, cryptography, and operations research. Prerequisite: CSE majors only.
CSEP 524: Parallel Computation Survey of parallel computing including the processing modes of pipelining, data parallelism, thread parallelism, and task parallelism; algorithmic implications of memory models; shared memory and message passing; hardware implementations; bandwidth and latency; synchronization, consistency, interprocessor communication; programming issues including implicit and explicit parallelism, locality, portability. CSE majors only.
CSE P 527: Computational Biology Introduction to the use of computational methods for understanding biological systems at the molecular level. Problem areas such as mapping and sequencing, sequence analysis, structure prediction, phylogenic inference, motif discovery, expression analysis, and regulatory analysis. Techniques such as dynamic programming, Markov models, MCMC, expectation-maximization, and local search.
CSEP 527: Computational Biology Introduction to the use of computational methods for understanding biological systems at the molecular level. Problem areas such as mapping and sequencing, sequence analysis, structure prediction, phylogenic inference, motif discovery, expression analysis, and regulatory analysis. Techniques such as dynamic programming, Markov models, MCMC, expectation-maximization, and local search.
CSEP 531: Computability And Complexity Theory Survey of the theory of computation including Turing Machines, Churche' s Thesis, computability, incompleteness, undecidability, complexity classes, problem reductions, Cook' s theorem, NP-completeness, randomized computation, cryptography, parallel computation, and space complexity. Some emphasis will be placed on historical and philosophical aspects of the theory of computation. Prerequisite: CSE PMP majors only.
CSEP 544: Database Management Systems Introduction to the principles of database management systems. Topics include database system architecture, data models, theory of database design, query optimization, concurrency control, crash recovery, and storage strategies. CSE majors only.
CSEP 545: Transaction Processing

Technology supporting reliable large-scale distributed computing, including transaction programming models, TP monitors, transactional communications, persistent queuing, software fault tolerance, concurrency control and recovery algorithms, distributed transactions, two-phase commit, data replication. Prerequisite: CSE majors only.

CSEP 546: Machine Learning

Methods for designing systems that learn from data and improve with experience. Supervised learning and predictive modeling; decision trees, rule induction, nearest neighbors, Bayesian methods, neural networks, support vector machines, and model ensembles. Unsupervised learning and clustering. Prerequisite: CSE PMP majors only.

CSEP 548: Computer Architecture Architecture of the single-chip microprocessor: instruction set design and processor implementation (pipelining, multiple issue, speculative execution). Memory hierarchy: on-chip and off-chip caches, TLBs and their management, virtual memory from the hardware viewpoint. I/O devices and control: buses, disks, and RAIDs. Prerequisite: CSE majors only.
CSEP 551: Computer Operating Systems

A study of developments in operating systems from the 196' s to the present. Topics include operating system structure, protection, virtual memory, communication mechanisms, concurrency, lightweight threads, object-oriented systems, distributed systems, and transaction support in operating systems. Prerequisite: CSE majors only.

CSEP 552: Distributed Systems Principles, techniques, and examples related to the design, implementation, and analysis of distributed computer systems. Prerequisite: CSE PMP majors only.
CSEP 557: Current Trends In Computer Graphics Introduction to computer image synthesis, modeling, and animation emphasizing the state-of-the-art algorithm applications. Topics may include visual perception, image processing, geometric transformations, hierarchical modeling, hidden-surface elimination, shading, ray-tracing, anti-aliasing, texture mapping, curves, surfaces, particle systems, dynamics, realistic character animation, and traditional animation principles. Prerequisite: CSE majors only.
CSEP 561: Network Systems

Current choices and challenges in network systems. Fundamental concepts combined with emphasis on evaluation of design/operations alternatives. Topics include alternative link, network, and transport-layer technologies, topologies, routing, congestion control multimedia, Ipv6, aTM v. IP, network management and policy issues. Prerequisite: CSE majors only.

CSEP 567: Design And Implementation Of Digital Systems Overview of current implementation technologies for digital systems including custom integrated circuits, field-programmable logic, and embedded processors. Systems components such as buses and communications structures, interfaces, memory architectures, embedded systems, and application-specific devices. Focus on the design of large systems using modern CAD tools. Prerequisite: CSE majors only.
CSEP 573: Applications Of Artificial Intelligence Introduction to the use of Artificial Intelligence tools and techniques in industrial and company settings. Topics include foundations (search, knowledge representation) and tools such as expert systems, natural language interfaces and machine learning techniques. Prerequisite: CSE majors only.
CSEP 576: Computer Vision Provides an overview of computer vision, emphasizing the middle ground between image processing and artificial intelligence. Image formation, pre-attentive image processing, boundary and region representations, and case studies of vision architectures.
CSEP 585: Design and Implementation of Digital Systems Overview of current implementation technologies for digital systems including custom integrated circuits, field-programmable logic, and embedded processors. Systems components such as buses and communications structures, interfaces, memory architectures, embedded systems, and application-specific devices. Focus on the design of large systems using modern CAD tools.
CSEP 589: Software Entrepreneurship A case- and project-based course, focusing on starting a software or hardware company. Guest entrepreneurs, lawyers, and financiers discuss market identification and analysis, planning the business, financing, and typical operating and administrative problems. Offered: jointly with CSE P 589/ENTRE 532.
CSEP 590: Entrepreneurship Company-Building from Formation to Successful Exit. This course is about entrepreneurship and specifically about starting, growing, managing, leading, and ultimately exiting a new venture. For PMP students, counts toward 20-credit CSE P 590 limit. Offered jointly with CSE 599A1, CSE P 590, ENTRE 532.
CSEP 590: Special Topics In Computer Science (PMP) Studies of emerging areas and specialized topics in computer science. Topics vary by quarter. For PMP students, repeatable with 20-credit limit.
CSEP 595: Software Entrepreneurship Provides an overview of the major elements of entrepreneurial activity in software, including market identification and analysis, evaluation and planning of the business, financing, typical operating and administrative problems, and alternatives for growth or sale.

Graduate Courses

CSE 501: Programming Language Analysis And Implementation Design and implementation of compilers and run-time systems for imperative, object-oriented, and functional languages. Intra- and interprocedural analyses and optimizations. Prerequisite: CSE major and CSE 341; recommended CSE 401.
CSE 503: Software Engineering Specification, implementation, and testing of large, multiperson, software systems. Topics include abstraction, information hiding, software development environments, and formal specifications. Prerequisite: CSE major and CSE 322, CSE 326, and CSE 378 or equivalents.
CSE 504: Advanced Topics In Software Engineering Topics vary but may include software design and evolution, formal methods, requirements specifications, software and system safety, reverse engineering, real-time software, metrics and measurement, programming environments, and verification and validation. Prerequisite: CSE major or permission of instructor.
CSE 505: Principles Of Programming Languages Design and formal semantics of modern programming languages, includes functional and object-oriented languages. Prerequisite: CSE major and CSE 341.
CSE 506: Advanced Topics In Programming Languages May include functional, object-oriented, parallel, and logic programming languages; semantics for languages of these kinds; type declaration, inference, and checking (including polymorphic types); implementation issues, such as compilation, lazy evaluation, combinators, parallelism, various optimization techniques. Implementation project required. Prerequisite: CSE major, CSE 501 which may be taken concurrently, and CSE 505.
CSE 507: Computer-Aided Reasoning for Software Covers theory, implementation, and applications of automated reasoning techniques, such as satisfiability solving, theorem proving, model checking, and abstract interpretation. Topics include concepts from mathematical logic and applications of automated reasoning to the design, construction, and analysis of softwar
CSE 510: Advanced Topics In Human-computer Interaction Content varies, including interface issues for networks, embedded systems, education applications, safety and critical systems, graphics and virtual reality, databases, and computer-supported cooperative work.
E E 511: Introduction to Statistical Learning Covers classification and estimation of vector observations, including both parametric and nonparametric approaches. Includes classification with likelihood functions and general discriminant functions, density estimation, supervised and unsupervised learning, feature reduction, model selection, and performance estimation. Prerequisite: either E E 505 or CSE 515.
E E 512: Graphical Models in Pattern Recognition Bayesian networks, Markov random fields, factor graphs, Markov properties, standard models as graphical models, graph theory (e.g., moralization and triangulation), probabilistic inference (including pearl' s belief propagation, Hugin, and Shafer-Shenoy), junction threes, dynamic Bayesian networks (including hidden Markov models), learning new models, models in practice. Prerequisite: E E 508; E E 511.
CSE 512: Data Visualization Techniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, perceptual psychology and cognitive science. Topics: data and image models, visual encoding, graphical perception, color, animation, interaction techniques, graph layout, automated design. Lectures, reading and project. Prerequisites: CSE 332 or 373 or equivalent.
CSE 513: Disability Inclusion for Technologists Introduction to the future of access technologies. Topics include disability justice; accessibility technology; creating accessible applications and websites; accessibility concerns in a wide variety of computational topics such as security, fabrication, and augmented reality; and the importance of technology in addressing accessibility concerns in the world at large.
CSE 515: Statistical Methods In Computer Science Introduction to the probabilistic and statistical techniques used in modern computer systems. Graphical models, probabilistic inference, statistical learning, sequential models, decision theory. Prerequisite: either STAT 341 or STAT 391, and graduate standing in computer science, or permission of instructor.
CSE 517: Natural Language Processing Overview of modern approaches for natural language processing. Topics include language models, text classification, tagging, parsing, machine translation, semantics, and discourse analysis.
CSE 519: Current Research In Computer Science Weekly presentations on current research activities by members of the department. Only Computer Science graduate students may register, although others are encouraged to attend. Credit/no credit only.
CSE 520: Computer Science Colloquium Weekly public presentations on topics of current interest by visiting computer scientists. Credit/no credit only
CSE 521: Design And Analysis Of Algorithms I Principles of design of efficient algorithms: recursion, divide and conquer, balancing, dynamic programming, greedy method, network flow, linear programming. Correctness and analysis of algorithms. NP-completeness. Prerequisite: CSE major and CSE 326 or equivalent. CSE majors only.
CSE 522: Design And Analysis Of Algorithms Ii Analysis of algorithms more sophisticated than those treated in 521. Content varies and may include such topics as algebraic algorithms, combinational algorithms, techniques for proving lower bounds on complexity, and algorithms for special computing devices such as networks or formulas. Prerequisite: CSE major and CSE 521.
CSE 523: Computational Geometry Algorithms for discrete computational geometry. Geometric computation, range searching, convex hulls, proximity, Vornoi diagrams, intersection. Application areas include VLSI design and computer graphics. Prerequisite: CSE major and CSE 521; recommended: CSE 457 or equivalent.
CSE 524: Parallel Algorithms Design and analysis of parallel algorithms: fundamental parallel algorithms for sorting, arithmetic, matrix and graph problems and additional selected topics. Emphasis on general techniques and approaches used for developing fast and efficient parallel algorithms and on limitations to their efficacy. Prerequisite: CSE major and CSE 521.
CSE 525: Randomized Algorithms And Probablisitc Analysis Examines algorithmic techniques: random selection, random sampling, backwards analysis, algebraic methods, Monte Carlo methods, and randomized rounding; random graphs; the probabilistic method; Markov chains and random walks; and analysis tools: random variables, moments and deviations, Chernoff bounds, martingales, and balls in bins. Prerequisite: CSE 521 or equivalent; CSE majors only. Offered: WSp.
CSE 526: Cryptography Introduction to the theoretical foundation of cryptography, teaching the design and application of selected important cryptographic objects, and the mathematical frameworks and methodologies of modern cryptography for formalizing security goals and developing provably secure solutions.
CSE 527: Computational Biology Introduces computational methods for understanding biological systems at the molecular level. Problem areas such as network reconstruction and analysis, sequence analysis, regulatory analysis and genetic analysis. Techniques such as Bayesian networks, Gaussian graphical models, structure learning, expectation-maximization. Prerequisite: graduate standing in biological, computer, mathematical or statistical science, or permission of instructor.
STAT 527: Nonparametric Regression and Classification Covers techniques for smoothing and classification including spline models, kernel methods, generalized additive models, and classification and regression trees. Describes measures of predictive performance, along with methods for balancing bias and variance. Bayesian nonparametric methods for regression and density estimation (e.g., Gaussian processes and Dirichlet processes) are also covered.
CSE 528: Computational Neuroscience Introduction to computational methods for understanding nervous systems and the principles governing their operation. Topics include representation of information by spiking neurons, information processing in neural circuits, and algorithms for adaptation and learning. Prerequisite: elementary calculus, linear algebra, and statistics, or by permission of instructor. Offered: jointly with NEUBEH 528.
CSE 529: Computational Genomics Computational and statistical approaches and practices for deriving robust and rigorous insights from modern genomics datasets. Lectures alternate between genomics-inspired problem formulation and foundational statistical and computational approaches for addressing them. In foundational lectures, we will cover basics of statistical inference, hidden confounding factors, causality and causal inference, deep neural networks and interpretation approaches to deep learning models.
CSE 529: Neural Control Of Movement: A Computational Perspe Systematic overview of sensorimotor function on multiple levels of analysis, with emphasis on the phenomenology amenable to computational modeling. Topics include musculoskeletal mechanics, neural networks, optimal control and Bayesian inference, learning and adaptation, internal models, and neural coding and decoding. Prerequisite: vector calculus, linear algebra, MATLAB, or permission of instructor. Offered: jointly with AMATH 533; W.
CSE 531: Computational Complexity I Deterministic and nondeterministic time and space complexity, complexity classes, and complete problems. Time and space hierarchies. Alternation and the polynomial-time hierarchy. Circuit complexity. Probabilistic computation. Exponential complexity lower bounds. Interactive proofs. Prerequisite: CSE majors only; CSE 322 or equivalent.
CSE 532: Computational Complexity Ii Advanced computational complexity including several of the following: circuit complexity lower bounds, #p and counting classes, probabilistically-checkable proofs, de-randomization, logical characteristics of complexity, communication complexity, time-space tradeoffs, complexity of data structures. Prerequisite: CSE majors only; Recommended: CSE 531.
CSE 533: Advanced Topics In Complexity Theory An in-depth study of advanced topics in computational complexity. Prerequisite: CSE major.
STAT 535: Statistical Learning: Modeling, Prediction, and Computing I Covers statistical learning over discrete multivariate domains, exemplified by graphical probability models. Emphasizes the algorithmic and computational aspects of these models. Includes additional topics in probability and statistics of discrete structures, general purpose discrete optimization algorithms like dynamic programming and minimum spanning tree, and applications to data analysis. Prerequisite: experience with programming in a high level language.
CSE 535: Theory of Optimization and Continuous Algorithms Theoretical foundations of convex optimization and continuous algorithms. First-order methods, rates of convergence, and acceleration; gradient, subgradient, and mirror descent. Randomization, stochastic descent, leverage scores and sampling. Interior point methods. Linear systems in convex optimization. Algorithmic applications.
CSE 536: Theory Of Distributed Computing Formal approaches to distributed computing problems. Topics vary, but typically include models of distributed computing, agreement problems, impossibility results, mutual exclusion protocols, concurrent reading while writing protocols, knowledge analysis of protocols, and distributed algorithms. Prerequisite: CSE major.
STAT 538: Statistical Learning: Modeling, Prediction, and Computing II Reviews optimization and convex optimization in its relation to statistics. Covers the basics of unconstrained and constrained convex optimization, basics of clustering and classification, entropy, KL divergence and exponential family models, duality, modern learning algorithms like boosting, support vector machines, and variational approximations in inference. Prerequisite: experience with programming in a high level language.
STAT 539: Statistical Learning: Modeling, Prediction and Computing III Supervised, applied project in statistical modeling, prediction, and computing. Prerequisite: STAT 535; STAT 538: computer programming a intermediate level.
CSE 540: Discrete System Simulation Principles of simulation of discrete, event-oriented systems. Model construction, simulation and validation. Distributed and parallel simulation techniques. Basic statistical analysis of simulation inputs and outputs. Use of C, an object-oriented language, and S, a statistical analysis package. Prior familiarity with the concepts of probability and statistics desirable.
CSE 541: Interactive Learning Foundations and methods of interactive machine learning including multi-armed bandits, active learning, and adaptive experimental design. Stochastic and adversarial K-armed bandits, structured bandits, and contextual bandits. Online learning; adaptive data collection for supervised learning.
CSE 543: Computer System Performance Emphasizes the use of analytic models as tools for evaluating the performance of centralized, distributed, and parallel computer systems. Prerequisite: CSE major and CSE 451.
CSE 544: Principles Of Database Systems The relational data model: SQL, Relational Algebra, Relational Calculus, discussion of other data models. Database systems: indexes, query execution and optimization, database statistics, parallel databases, MapReduce. Database theory: datalog and extensions with negation, query complexity, query containment and equivalence, bounded tree width. Miscellaneous: transactions, data provenance, data privacy, probabilistic databases.
CSE 546: Machine Learning Explores methods for designing systems that learn from data and improve with experience. Supervised learning and predictive modeling; decision trees, rule induction, nearest neighbors, Bayesian methods, neural networks, support vector machines, and model ensembles. Unsupervised learning and clustering. Prerequisite: either STAT 341, STAT 391, or equivalent, or permission of instructor.
CSE 547: Machine Learning for Big Data Machine Learning and statistical techniques for analyzing datasets of massive size and dimensionality. Representations include regularized linear models, graphical models, matrix factorization, sparsity, clustering, and latent factor models. Algorithms include sketching, random projections, hashing, fast nearest-neighbors, large-scale online learning, and parallel (Map-reduce, GraphLab). Prerequisite: either STAT 535 or CSE 546. This course is cross-listed as STAT 548.
CSE 548: Computer Systems Architecture Notations for computer systems. Processor design (single chip, look-ahead, pipelined, data flow). Memory hierarchy organization and management (virtual memory and caches). Microprogramming. I/O processing. Multiprocessors (SIMD and MIMD). Prerequisite: CSE major and CSE 451.
CSE 549: High-performance Computer Architectures Algorithm design, software techniques, computer organizations for high-performance computing systems. Selected topics from: VLSI complexity for parallel algorithms, compiling techniques for parallel and vector machines, large MIMD machines, interconnection networks, reconfigurable systems, memory hierarchies in multiprocessors, algorithmically specialized processors, data flow architectures. Prerequisite: CSE major and CSE 548 or permission of instructor.
CSE 550: Computer Systems Explores computer system design, implementation, and evaluation. Covers principles, techniques, and examples related to the construction of computer systems, including concepts that span network systems, operating systems, web servers, parallel computing, and databases. Prerequisite: CSE 451.
CSE 551: Operating Systems Operating system design and construction techniques. Concurrent programming, operating system kernels, correctness, deadlock, protection, transaction processing, design methodologies, comparative structure of different kinds of operating systems, and other topics. Prerequisite: CSE major and CSE 451.
CSE 552: Distributed And Parallel Systems Principles, techniques, and examples related to the design, implementation, and analysis of distributed and parallel computer systems. Prerequisite: CSE major and CSE 551.
CSE 553: Real-time Systems Design and construction of software for real-time computer systems. Software architectures. Requirements and specification methods. Scheduling algorithms and timing analysis. Real-time operating systems. Real-time programming languages. Selected case studies. Prerequisite: CSE major and CSE 451.
CSE 556: Computational Fabrication Overview of the computational tools and concepts used throughout the modern pipeline for computational fabrication, including topics such as hardware abstraction languages, geometry processing fundamentals, physics-based simulation, optimization techniques, data-driven design methods, and algorithms for high-performance interactive applications.
CSE 557: Computer Graphics Introduction to image synthesis and computer modeling, emphasizing the underlying theory required for undertaking computer graphics research. Topics include color theory, image processing, affine and projective geometry, hidden-surface determination, photorealistic image synthesis, advanced curve and surface design, dynamics, realistic character animation. Prerequisite: CSE major, solid knowledge of linear algebra.
CSE 558: Special Topics In Computer Graphics Advanced topics in computer graphics not treated in CSE 557. Topics vary from year to year but typically include advanced aspects of image synthesis, animation, and 3D photography. Prerequisite: CSE major and CSE 557 or permission of instructor.
CSE 561: Computer Communications And Networks Fundamentals of data transmission: coding, message formats, and protocols. Organization of computer networks. Examples of network implementations. Prerequisite: CSE or E E major and CSE 451 or equivalent.
CSE 564: Computer Security And Privacy Examines the fundamental of computer security including: human factors; attack detection, measurements, and models; cryptography and communications security; system design and implementation; and side channels.
CSE 567: Principles Of Digital Systems Design Principles of logic design, combinational and sequential circuits, minimization techniques, structured design methods, CMOS technology, complementary and ratioed gates, delay estimation and performance analysis, arithmetic circuits, memories, clocking methodologies, synthesis and simulation tools, VLSI processor architecture. Prerequisite: CSE major and basic knowledge of logic design.
CSE 568: Introduction To VLSI Systems Introduction to CMOS technology and circuit design; combinational logic-design alternatives; register-design and system-clocking methodologies; datapath and subsystem design; VLSI system-design methodologies; CAD tools for synthesis, layout, simulation, and validation; design of a complex VLSI chip. Prerequisite: CSE 567 or permission of instructor. CSE majors only.
CSE 571: Probabilistic Robotics This course introduces various techniques for Bayesian state estimation and its application to problems such as robot localization, mapping, and manipulation. The course will also provide a problem-oriented introduction to relevant machine learning and computer vision techniques.
CSE 573: Artificial Intelligence Intensive introduction to artificial intelligence: Problem solving and search, game playing, knowledge representation and reasoning, uncertainty, machine learning, natural language processing. Prerequisite: CSE 421 or equivalent; exposure to logic, probability and statistics; CSE major.
CSE 574: Artificial Intelligence II Advanced topics in artificial intelligence. Subjects include planning, natural language understanding, qualitative physics, machine learning, and formal models of time and action. Students are required to do projects. Prerequisite: CSE major and CSE 573.
CSE 576: Computer Vision Overview of computer vision, emphasizing the middle ground between image processing and artificial intelligence. Image formation, preattentive image processing, boundary and region representations, and case studies of vision architectures. Prerequisite: Solid knowledge of linear algebra, good programming skills, CSE or E E major or permission of instructor. Offered: jointly with E E 576.
CSE 577: Special Topics In Computer Vision Topics vary and may include vision for graphics, probabilistic vision and learning, medical imaging, content-based image and video retrieval, robot vision, or 3D object recognition. Prerequisite: CSE/E E 576 or permission of instructor. Offered: jointly with E E 577.
CSE 578: Convex Optimization Basics of convex analysis: Convex sets, functions, and optimization problems. Optimization theory: Least-squares, linear, quadratic, geometric and semidefinite programming. Convex modeling. Duality theory. Optimality and KKT conditions. Applications in signal processing, statistics, machine learning, control communications, and design of engineering systems. Prerequisite: A A 510, CHEM E 510, E E 510, or M E 510. Offered: jointly with A A 578/E E 578/M E 578;
CSE 579: Intelligent Control Through Learning &optimization Design or near-optimal controllers for complex dynamical systems, using analytical techniques, machine learning, and optimization. Topics from deterministic and stochastic optimal control, reinforcement learning and dynamic programming, numerical optimization in the context of control, and robotics. Prerequisite: vector calculus; linear algebra, and Matlab. Recommended: differential equations; stochastic processes, and optimization. Offered: jointly with AMATH 579.
CSE 580: Computing for Social Good Explorations of computing for social good projects. Topics include best practices, exemplars of success and failure, differing theories of change and perspectives on technology's role in progress. Students are expected to develop a solution grounded in their own perspective of social good.
CSE 581: Computer Ethics Ethical and philosophical approaches to thinking critically about computing technology. Tools and strategies for considering unintended consequences. Responsibilities of computer science researchers and practitioners. Application to various technology areas.
CSE 582: Ethics in Artificial Intelligence Real-world people-facing artificial intelligence (AI) applications, ethical implications in their design, and technical solutions to mitigate ethical risks. Topics in the intersection of AI, ethics, and computing for social good, centered around foundational and recent research. Foundations of research ethics, case studies in ethical AI, ethical challenges in developing intelligent systems, and machine learning approaches to address these issues. Prerequisite: CSE 446 or CSE 546.
CSE 583: Software Development for Data Scientists Provides students outside of CSE with a practical knowledge of software development that is sufficient to do graduate work in their discipline. Modules include Python basics, software version control, software design, and using Python for machine learning and visualization.
CSE 586: Introduction To Synthetic Biology Studies mathematical modeling of transcription, translation, regulation, and metabolism in cell; computer aided design methods for synthetic biology; implementation of information processing, Boolean logic and feedback control laws with genetic regulatory networks; modularity, impedance matching and isolation in biochemical circuits; and parameter estimation methods. Prerequisite: either MATH 136 or MATH 307, AMATH 351, or CSE 321 and MATH 208 or AMATH 352. Offered: jointly with BIOEN 523/E E 523.
CSE 587: Advanced Systems And Synthetic Biology Introduces advanced topics in systems and synthetic biology. Topics include advanced mathematical modeling; computational standards; computer algorithms for computational analysis; and metabolic flux analysis, and protein signaling pathways and engineering. Prerequisite: either BIOEN 523,E E 523, or CSE 586. Offered: jointly with BIOEN 524/E E 524; W.
CSE 589: Software Entrepreneurship A case- and project-based course, focusing on starting a software or hardware company. Guest entrepreneurs, lawyers, and financiers discuss market identification and analysis, planning the business, financing, and typical operating and administrative problems. Offered: jointly with CSE P 589/ENTRE 532.
CSE 597: Performance Analysis Broad introduction to computer system performance evaluation techniques and their application. Includes measurement/benchmarking, stochastic and trace driven simulation, stochastic queuing networks, and timed Petri nets. Applications of the techniques are studied using case study papers. CSE majors only. Not open for credit to students who have completed CSE 543.
CSE 599: Molecular Biology as a Computational Science Molecular biology for computer science students interested in computational research in the Life Sciences, such as bioinformatics and bioengineering.
CSE 599a1: Entrepreneurship: Company-Building from Formation to Successful Exit This course is open to Allen School undergraduates, combined BS/MS students, Professional Masters Program students, and Ph.D. students, as well as to Foster School MBA and EMBA students, students in Interaction Design, graduate students in Human Centered Design & Engineering, and students in the Master of Human-Computer Interaction and Design program - all by permission of the instructors in order to ensure balance among the participants. There will be no auditing - everyone needs to be all-in. And project teams will form early - if you hang on for a week or two and then bail, you'll be letting others down, so please don't do this. Application link: https://catalyst.uw.edu/webq/survey/lazowska/414693
CSE 599A1: Entrepreneurship Company-Building from Formation to Successful Exit. This course is about entrepreneurship and specifically about starting, growing, managing, leading, and ultimately exiting a new venture. Offered jointly with CSE 490A, CSE P 590, ENTRE 532.
CSE 599F1: Constraint Programming Design, implementation, and use of constraint programming languages.
CSE 599H: Computer Science for Social Good The goal of this course is to use computer science tools to tackle real world projects in a productive fashion. The Fall 2017 edition of this course focused on 3D printing and its applications for accessibility, education, sustainability, and the developing world.
CSE 599J1: Selected Topics in Computational Fabrication This course explores research problems in computational design for manufacturing. Topics include additive manufacturing, subtractive manufacturing, knitting, architecture, mechanisms, robotics, aerodynamics, machine learning, and programming languages.
CSE 700: Masters Thesis Credit/no credit only.
CSE 800: Doctoral Dissertation Credit/no credit only.