CSE 110 Computer Science Principles (5) NSc, RSN
Introduces fundamental concepts of computer science and computational thinking. Includes logical reasoning, problem solving, data representation, abstraction, the creation of digital artifacts such as web pages and programs, managing complexity, operation of computers and networks, effective web searching, ethical, legal and social aspects of information technology. Course overlaps with: BIS 111/CSS 101 and TCSS 101.
View course details in MyPlan: CSE 110

CSE 122 Introduction to Computer Programming II (4) NSc, RSN
Computer programming for students with some previous programming experience. Emphasizes program design, style, and decomposition. Uses data structures (e.g., lists, dictionaries, sets) to solve computational problems motivated by modern societal and scientific needs. Introduces data abstraction and interface versus implementation. Course overlaps with: CSE 143; CSS 143; and TCSS 143. Recommended: CSE 121 or completion of Paul G. Allen School's Guided Self-Placement. Offered: AWSpS.
View course details in MyPlan: CSE 122

CSE 142 Computer Programming I (4) NSc, RSN
Basic programming-in-the-small abilities and concepts including procedural programming (methods, parameters, return, values), basic control structures (sequence, if/else, for loop, while loop), file processing, arrays, and an introduction to defining objects. Intended for students without prior programming experience. Course overlaps with: CSE 121; CSS 112; CSS 132; CSS 142; and TCSS 142. Offered: AWSpS.
View course details in MyPlan: CSE 142

CSE 143 Computer Programming II (5) NSc, RSN
Continuation of CSE 142. Concepts of data abstraction and encapsulation including stacks, queues, linked lists, binary trees, recursion, instruction to complexity and use of predefined collection classes. Course equivalent to: CSS 143 and TCSS 143. Course overlaps with: CSE 122; CSE 123; CSS 123; CSS 133; and T INFO 473. Prerequisite: CSE 142. Offered: AWSpS.
View course details in MyPlan: CSE 143

CSE 154 Web Programming (5) RSN
Covers languages, tools, and techniques for developing interactive and dynamic web pages. Topics include page styling, design, and layout; client and server side scripting; web security; and interacting with data sources such as databases. Prerequisite: a minimum grade of 2.0 in either CSE 122, CSE 123, CSE 142, CSE 143, CSE 160, or CSE 163.
View course details in MyPlan: CSE 154

CSE 160 Data Programming (4) NSc, RSN
Introduction to computer programming. Assignments solve real data manipulation tasks from science, engineering, business, and the humanities. Concepts of computational thinking, problem-solving, data analysis, Python programming, control and data abstraction, file processing, and data visualization. Intended for students without prior programming experience. Cannot be taken for credit if credit has already been earned for CSE 123 or CSE 143 (or equivalent). Course overlaps with: Q SCI 256 and CSS 112.
View course details in MyPlan: CSE 160

CSE 195 Allen Scholars Bridge Program (5)
Enables students in the Allen Scholars program to connect with peers, gain technical fundamentals, and prepare for college via an immersive experience. Uses topics from programming, website creation, mobile-application development, and physical computing to develop skills and strategies for abstraction, managing complexity, data processing, and debugging. Introduces campus resources, professional opportunities, and academic learning strategies. Offered: A.
View course details in MyPlan: CSE 195

CSE 332 Data Structures and Parallelism (4)
Covers abstract data types and structures including dictionaries, balanced trees, hash tables, priority queues, and graphs; sorting; asymptotic analysis; fundamental graph algorithms including graph search, shortest path, and minimum spanning trees; multithreading and parallel algorithms; P and NP complexity classes. Course overlaps with: CSE 373 and T INFO 473. Prerequisite: CSE 311.
View course details in MyPlan: CSE 332

CSE 344 Introduction to Data Management (4)
Introduces database management systems and writing applications that use such systems; data models (e.g., relational, semi-structured), query languages (e.g., SQL, XQuery), language bindings, conceptual modeling, transactions, security, database tuning, data warehousing, parallelism, and web-data management. Course overlaps with: CSE 414. Prerequisite: CSE 311.
View course details in MyPlan: CSE 344

CSE 351 The Hardware/Software Interface (4)
Examines key computational abstraction levels below modern high-level languages; number representation, assembly language, introduction to C, memory management, the operating-system process model, high-level machine architecture including the memory hierarchy, and how high-level languages are implemented. Course overlaps with: CSE 410. Prerequisite: CSE 123 or CSE 143.
View course details in MyPlan: CSE 351

CSE 371 Design of Digital Circuits and Systems (5)
Provides a theoretical background in, and practical experience with, tools, and techniques for modeling complex digital systems with the Verilog hardware description language, maintaining signal integrity, managing power consumption, and ensuring robust intra- and inter-system communication. Prerequisite: either E E 205 or E E 215; either E E 271 or CSE 369. Offered: jointly with E E 371.
View course details in MyPlan: CSE 371

CSE 373 Data Structures and Algorithms (4)
Fundamental algorithms and data structures for implementation. Techniques for solving problems by programming. Linked lists, stacks, queues, directed graphs. Trees: representations, traversals. Searching (hashing, binary search trees, multiway trees). Garbage collection, memory management. Internal and external sorting. Intended for non-majors. Course overlaps with: CSE 326; CSE 332; and T INFO 473. Prerequisite: CSE 123 or CSE 143.
View course details in MyPlan: CSE 373

CSE 391 System and Software Tools (1)
Introduction to tools commonly used in software development. Topics include using a command-line interface, writing scripts for file and string manipulation, managing user permissions, manipulating text with regular expressions, using build-management tools, and using version-control systems. Prerequisite: either CSE 122, CSE 123, or CSE 143. Credit/no-credit only.
View course details in MyPlan: CSE 391

CSE 412 Introduction to Data Visualization (4)
Introduction to data visualization design and use for both data exploration and explanation. Methods for creating effective visualizations using principles from graphic design, psychology, and statistics. Topics include data models, visual encoding methods, data preparation, exploratory analysis, uncertainty, cartography, interaction techniques, visual perception, and evaluation methods. Course overlaps with: CSE 442; HCDE 411; INFO 474; and STAT 451. Prerequisite: either CSE 123, CSE 143, or CSE 163.
View course details in MyPlan: CSE 412

CSE 414 Introduction to Database Systems (4)
Introduces database management systems and writing applications that use such systems; data models, query languages, transactions, database tuning, data warehousing, and parallelism. Intended for non-majors. Course overlaps with: CSE 344. Prerequisite: a minimum grade of 2.5 in either CSE 123, CSE 143, or CSE 163.
View course details in MyPlan: CSE 414

CSE 415 Introduction to Artificial Intelligence (3) NSc
Principles and techniques for automated rational decision-making by machines. Key approaches include search, Markov Decision Processes, graphical models, Bayesian reasoning, reinforcement learning, neural networks, and other topics in artificial intelligence and machine learning. Draws examples from multiple application domains and considers societal consequences of automation and bias. Intended for non-majors. Course overlaps with: CSE 473; CSS 382; and TCSS 435. Prerequisite: CSE 373.
View course details in MyPlan: CSE 415

CSE 416 Introduction to Machine Learning (4) NSc
Provides practical introduction to machine learning. Modules include regression, classification, clustering, retrieval, recommender systems, and deep learning, with a focus on an intuitive understanding grounded in real-world applications. Intelligent applications are designed and used to make predictions on large, complex datasets. Course overlaps with: CEE 415; CSS 486; TCSS 435; and TCSS 455. Prerequisite: either CSE 123, CSE 143, CSE 160, or CSE 163; and either STAT 311, STAT 390, STAT 391, IND E 315, MATH 394/STAT 394, STAT 395/MATH 395, or Q SCI 381. Offered: jointly with STAT 416.
View course details in MyPlan: CSE 416

CSE 427 Computational Biology (3)
Algorithmic and analytic techniques underlying analysis of large-scale biological data sets such as DNA, RNA, and protein sequences or structures, expression and proteomic profiling. Hands-on experience with databases, analysis tools, and genome markers. Applications such as sequence alignment, BLAST, phylogenetics, and Markov models. Prerequisite: CSE 312; CSE 332.
View course details in MyPlan: CSE 427

CSE 434 Introduction to Quantum Computation (4)
Basic theory of quantum information and computation, including applications and phenomena. Builds from qubits, measurements, and quantum gates toward applications including key distribution, entanglement, non-locality, and quantum algorithms including Grover search and Shor's factoring. Includes writing quantum programs. Prerequisite: CSE 312; and MATH 136 or MATH 208.
View course details in MyPlan: CSE 434

CSE 440 Introduction to HCI: User Interface Design, Prototyping, and Evaluation (5)
Human-Computer Interaction (HCI) theory and techniques. Methods for designing, prototyping, and evaluating user interfaces to computing applications. Human capabilities, interface technology, interface design methods, and interface evaluation tools and techniques. Prerequisite: CSE 332.
View course details in MyPlan: CSE 440

CSE 442 Data Visualization (4)
Techniques for creating effective visualizations of data based on principles from graphic design, perceptual psychology, and statistics. Topics include visual encoding models, exploratory data analysis, visualization software, interaction techniques, graphical perception, color, animation, high-dimensional data, cartography, network visualization, and text visualization. Course overlaps with: CSE 412; HCDE 411; INFO 474; and STAT 451. Prerequisite: CSE 332.
View course details in MyPlan: CSE 442

CSE 446 Machine Learning (4)
Design of efficient algorithms that learn from data. Representative topics include supervised learning, unsupervised learning, regression and classification, deep learning, kernel methods, and optimization. Emphasis on algorithmic principles and how to use these tools in practice. Prerequisite: CSE 332; MATH 208 or MATH 136; and either STAT 390, STAT 391, or CSE 312.
View course details in MyPlan: CSE 446

CSE 453 Datacenter Systems (4)
Datacenter server, network, storage, security, and energy management technologies. Virtualization, I/O architectures, resource isolation and provisioning, disaggregation, quality of service, and tail latency. Prerequisite: CSE 332 and CSE 333; recommended: CSE 451 or CSE 452.
View course details in MyPlan: CSE 453

CSE 454 Advanced Internet and Web Services (5)
Design of Internet search engines, including spider architecture, inverted indices, frequency rankings, latent semantic indexing, hyperlink analysis, and refinement interfaces. Construction of scalable and secure web services. Datamining webserver logs to provide personalized and user-targeted services. Large project. Prerequisite: CSE 332; CSE 351; either CSE 331 or CSE 352.
View course details in MyPlan: CSE 454

CSE 457 Computer Graphics (4)
Introduction to computer image synthesis, modeling, and animation. Topics may include visual perception, displays and framebuffers, image processing, affine and projective transformations, hierarchical modeling, hidden surface elimination, shading, ray-tracing, anti-aliasing, texture mapping, curves, surfaces, particle systems, dynamics, character animation, and animation principles. Prerequisite: CSE 332.
View course details in MyPlan: CSE 457

CSE 459 Pre-Production for Collaborative Animation (5)
Pre-production of collaboratively designed animated shorts. In-depth analysis of classical and computer generated works. Character design and pre-planning, model sheets, character rigging, storyreel and animatics, character motion, design for multiple characters, and principles of animation as applied to character motion and effects. Prerequisite: CSE 458.
View course details in MyPlan: CSE 459

CSE 461 Introduction to Computer-Communication Networks (4)
Computer network architectures, protocol layers, network programming. Transmission media, encoding systems, switching, multiple access arbitration. Network routing, congestion control, flow control. Transport protocols, real-time, multicast, network security. Course overlaps with: CSS 431; T INFO 250; and TCES 425. Prerequisite: either CSE 326 or CSE 332; either CSE 303 or CSE 333.
View course details in MyPlan: CSE 461

CSE 462 Wireless Communication (4)
Fundamentals of wireless communication. Reliable communication over noisy, unreliable channels. Signal to noise ratio, frequency domain analysis, bandwidth, capacity of noisy communication channels, modulation, channel coding, error detection, error correction. Connection between machine learning and communication such as decoding as inference and learning as compression. Prerequisite: CSE 333; and MATH 136 or MATH 208.
View course details in MyPlan: CSE 462

CSE 464 Advanced Topics in Digital Animation (1-5, max. 10)
Students design individual animated works for professional quality demo reels. 2- and 3-D animatics, special effects design, advanced character animation techniques, 3-D paint techniques and integration, short design, sequence planning, non-photorealistic rendering options, interactive animation for pre-planning, and advanced production techniques and strategies.
View course details in MyPlan: CSE 464

CSE 475 Embedded Systems Capstone (5)
Capstone design experience. Prototype a substantial project mixing hardware, software, and communications. Focuses on embedded processors, programmable logic devices, and emerging platforms for the development of digital systems. Provides a comprehensive experience in specification, design, and management of contemporary embedded systems. Course overlaps with: TME 441. Prerequisite: E E 271 or CSE 369; and E E 472 or CSE 474/E E 474. Offered: jointly with E E 475.
View course details in MyPlan: CSE 475

CSE 478 Autonomous Robotics (4)
Theory and application of algorithms and probabilistic techniques for autonomous robotics. Covers topics related to state estimation (Bayes filtering, probabilistic motion and sensor models), planning/control (search based planners, lattice based planners, trajectory following techniques), and perception and learning (object detection, learning from demonstrations etc.). Prerequisite: CSE 332; recommended: CSE 312; MATH 208.
View course details in MyPlan: CSE 478

CSE 484 Computer Security (4)
Foundations of modern computer security, including software security, operating system security, network security, applied cryptography, human factors, authentication, anonymity, and web security. Course overlaps with: E E 468. Prerequisite: CSE 332; CSE 351.
View course details in MyPlan: CSE 484

CSE 486 Introduction to Synthetic Biology (3)
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, MATH 207, MATH 307, AMATH 351, or CSE 311; and either MATH 208, MATH 308, or AMATH 352. Offered: jointly with BIOEN 423/CHEM E 476/E E 423.
View course details in MyPlan: CSE 486

CSE 488 Laboratory Methods in Synthetic Biology (4)
Designs and builds transgenic bacterial using promoters and genes taken from a variety of organisms. Uses construction techniques including recombination, gene synthesis, and gene extraction. Evaluates designs using sequencing, fluorescence assays, enzyme activity assays, and single cell studies using time-lapse microscopy. Prerequisite: E E 423/BIOEN 423/CHEM E 476/CSE 486; and either CHEM 142, CHEM 143, or CHEM 145. Offered: jointly with BIOEN 425/CHEM E 478/E E 425.
View course details in MyPlan: CSE 488

CSE 507 Computer-Aided Reasoning for Software (4)
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 software.
View course details in MyPlan: CSE 507

CSE 510 Advanced Topics in Human-Computer Interaction (4)
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.
View course details in MyPlan: CSE 510

CSE 525 Randomized Algorithms and Probabilistic Analysis (4)
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: either CSE 521 or equivalent.
View course details in MyPlan: CSE 525

CSE 527 Computational Biology (4)
Introduces computational methods leveraging artificial intelligence (AI) and machine learning (ML) techniques to understand biological systems and enhance healthcare. Utilizes various AI/ML techniques, including explainable AI, interpretable ML, deep learning, probabilistic graphical models, and causal inference. Explores diverse problem areas such as genetics, epigenomics, transcriptomics, proteomics, imageomics, and electronic health records.
View course details in MyPlan: CSE 527

CSE 532 Computational Complexity II (4)
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.
View course details in MyPlan: CSE 532

CSE 534 Quantum Information and Computation (4)
Introduction to quantum information and computation. Qubits, quantum gates, and measurements. Entanglement and non-locality. Density matrix formalism. Quantum algorithms: Simon's algorithm, Grover search, Shor's factoring, and Hamiltonian Simulation. Quantum error-correction. Recommended: either solid background in mathematics and/or theoretical computer science, or prior familiarity with quantum-computing fundamentals.
View course details in MyPlan: CSE 534

CSE 535 Theory of Optimization and Continuous Algorithms (4)
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.
View course details in MyPlan: CSE 535

CSE 542 Reinforcement Learning (4)
Foundations of modern reinforcement learning. Topics may include Markov decision processes, value iteration, policy iteration, approximate dynamic programming, temporal difference learning, Q-learning, policy gradients, and imitation learning. Recommended: comfortable with programming; and working knowledge of linear algebra (MATH 208); vector calculus (MATH 126); probability and statistics (CSE 312 and STAT 390); algorithms (CSE 421); and machine learning (CSE 446 or CSE 546).
View course details in MyPlan: CSE 542

CSE 546 Machine Learning (4)
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 CSE 312, STAT 341, STAT 391 or equivalent.
View course details in MyPlan: CSE 546

CSE 547 Machine Learning for Big Data (4)
Covers 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 learning (Map-Reduce, GraphLab). Prerequisite: either STAT 535 or CSE 546. Offered: jointly with STAT 548; W.
View course details in MyPlan: CSE 547

CSE 549 High-Performance Computer Architectures (4)
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. Course overlaps with: TECE 510. Prerequisite: CSE 548/E E 544. Offered: jointly with E E 545.
View course details in MyPlan: CSE 549

CSE 550 Computer Systems (4)
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.
View course details in MyPlan: CSE 550

CSE 551 Operating Systems (4)
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 451.
View course details in MyPlan: CSE 551

CSE 554 Systems for Machine Learning (4)
Covers the design and implementation of systems that perform modern machine learning. Investigates languages, compilers, computer architectures, and distributed computing for machine-learning computations, including training and inference. Explores advanced system techniques to scale modern machine-learning models and optimize computation, memory, and communication. Recommended: machine learning from a course at the level of CSE 446; and systems from a course at the level of CSE 451 or CSE 452.
View course details in MyPlan: CSE 554

CSE 556 Computational Fabrication (4)
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.
View course details in MyPlan: CSE 556

CSE 557 Computer Graphics (4)
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: solid knowledge of linear algebra.
View course details in MyPlan: CSE 557

CSE 573 Artificial Intelligence (4)
Broad introduction to the science of automated rational decision-making by machines. Key approaches include search, Markov decision processes, graphical models, reinforcement learning, and supervised learning. Considers a wide variety of application domains (e.g., natural language processing, computer vision, robotics, games) for decision making. Recommended: familiarity with data structures; algorithms; probability; and computer programming.
View course details in MyPlan: CSE 573

CSE 578 Convex Optimization (4)
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.
View course details in MyPlan: CSE 578

CSE 579 Intelligent Control through Learning and Optimization (3)
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; MATLAB. Offered: jointly with AMATH 571.
View course details in MyPlan: CSE 579

CSE 582 Ethics in Artificial Intelligence (4)
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.
View course details in MyPlan: CSE 582

CSE 586 Introduction to Synthetic Biology (3)
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, MATH 207, MATH 307, AMATH 351, or CSE 311; and either MATH 208, MATH 308, or AMATH 352. Offered: jointly with BIOEN 523/CHEM E 576/E E 523/MOLENG 525.
View course details in MyPlan: CSE 586

CSE 587 Advanced Systems and Synthetic Biology (3)
Covers advanced concepts in system and synthetic biology. Includes kinetics, modeling, stoichiometry, control theory, metabolic systems, signaling, and motifs. All topics are set against problems in synthetic biology. Prerequisite: E E 523/BIOEN 523/CHEM E 576/CSE 586/MOLENG 525. Offered: jointly with BIOEN 524/CHEM E 577/E E 524.
View course details in MyPlan: CSE 587