Search | Directories | Reference Tools
UW Home > Discover UW > Student Guide 
 | Glossary UW Bothell Course Descriptions UW Tacoma Course Descriptions
Search course descriptions with Google Custom Search:

COLLEGE OF ENGINEERING
COMPUTER SCIENCE & ENGINEERING

Detailed course offerings (Time Schedule) are available for

CSE 120 Computer Science Principles (5) NW, QSR
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. May not be taken for credit if credit earned in CSE 100/INFO 100.
MyPlan Course Details: CSE 120 (student access only)

CSE 131 Science and Art of Digital Photography (4) VLPA Hemingway
Covers the fundamentals of digital photography, including computational imaging; the elements of photographic composition and design; and the future of internet-enabled photography.
MyPlan Course Details: CSE 131 (student access only)

CSE 142 Computer Programming I (4) NW, QSR
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. Offered: AWSpS.
MyPlan Course Details: CSE 142 (student access only)

CSE 143 Computer Programming II (5) NW, QSR
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. Prerequisite: CSE 142. Offered: AWSpS.
MyPlan Course Details: CSE 143 (student access only)

CSE 154 Web Programming (5) QSR
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: minimum grade of 2.0 in either CSE 140, CSE 142, or CSE 143.
MyPlan Course Details: CSE 154 (student access only)

CSE 190 Current Topics in Computer Science and Engineering (1-5, max. 15)
MyPlan Course Details: CSE 190 (student access only)

CSE 311 Foundations of Computing I (4) QSR
Examines fundamentals of logic, set theory, induction, and algebraic structures with applications to computing; finite state machines; and limits of computability. Prerequisite: CSE 143; either MATH 126 or MATH 136.
MyPlan Course Details: CSE 311 (student access only)

CSE 312 Foundations of Computing II (4) QSR
Examines fundamentals of enumeration and discrete probability; applications of randomness to computing; polynomial-time versus NP; and NP-completeness. Prerequisite: CSE 311; CSE 332, which may be taken concurrently.
MyPlan Course Details: CSE 312 (student access only)

CSE 326 Data Structures (4)
Abstract data types and their implementations as data structures. Efficient of algorithms employing these data structures; asymptotic analyses. Dictionaries: balanced search trees, hashing. Priority queues: heaps. Disjoint sets with union, find. Graph algorithms: shortest path, minimum spanning tree, topological sort, search. Sorting. Not available for credit for students who have completed CSE 373. Prerequisite: CSE 321.
MyPlan Course Details: CSE 326 (student access only)

CSE 331 Software Design and Implementation (4)
Explores concepts and techniques for design and construction of reliable and maintainable software systems in modern high-level languages; program structure and design; program-correctness approaches, including testing; and event-driven programming (e.g., graphical user interface). Includes substantial project and software-team experience. Prerequisite: CSE 143.
MyPlan Course Details: CSE 331 (student access only)

CSE 332 Data Abstractions (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; concurrency and synchronization; and parallelism. Not available for credit for students who have completed CSE 373. Prerequisite: either CSE 311 or CSE 321.
MyPlan Course Details: CSE 332 (student access only)

CSE 333 Systems Programming (4)
Includes substantial programming experience in languages that expose machine characteristics and low-level data representation (e.g., C and C++); explicit memory management; interacting with operating-system services; and cache-aware programming. Prerequisite: CSE 351.
MyPlan Course Details: CSE 333 (student access only)

CSE 341 Programming Languages (4)
Basic concepts of programming languages, including abstraction mechanisms, types, and scoping. Detailed study of several different programming paradigms, such as functional, object-oriented, and logic programming. No credit if CSE 413 has been taken. Prerequisite: CSE 143.
MyPlan Course Details: CSE 341 (student access only)

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. Prerequisite: either CSE 311 or CSE 321.
MyPlan Course Details: CSE 344 (student access only)

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. Prerequisite: CSE 143.
MyPlan Course Details: CSE 351 (student access only)

CSE 352 Hardware Design and Implementation (4)
Covers digital circuit design, processor design, and systems integration and embedded-systems issues. Includes substantial hardware laboratory. Prerequisite: CSE 311; CSE 351.
MyPlan Course Details: CSE 352 (student access only)

CSE 373 Data Structures and Algorithms (3)
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. Not open for credit to students who have completed CSE 326 or CSE 332. Prerequisite: CSE 143.
MyPlan Course Details: CSE 373 (student access only)

CSE 374 Intermediate Programming Concepts and Tools (3)
Covers key software development concepts and tools not in introductory courses. Concepts of lower-level programming (C/C++) and explicit memory management; techniques and tools for individual and group software development; design, implementation, and testing strategies. Intended for non-majors. Cannot be taken for credit if credit received for CSE 303 or CSE 333. Prerequisite: CSE 143.
MyPlan Course Details: CSE 374 (student access only)

CSE 390 Special Topics in Computer Science and Engineering (1-5, max. 10)
Covers topics of current interest in computer science and engineering.
MyPlan Course Details: CSE 390 (student access only)

CSE 399 CSE Foreign Study (*)
Upper-division computer science or computer engineering course, taken through an approved study abroad program, for which there is no direct University of Washington equivalent. Credit/no-credit only.
MyPlan Course Details: CSE 399 (student access only)

CSE 401 Introduction to Compiler Construction (4)
Fundamentals of compilers and interpreters; symbol tables; lexical analysis, syntax analysis, semantic analysis, code generation, and optimizations for general purpose programming languages. No credit to students who have taken CSE 413. Prerequisite: either CSE 326 and CSE 378 or CSE 332 and CSE 351.
MyPlan Course Details: CSE 401 (student access only)

CSE 403 Software Engineering (4)
Fundamentals of software engineering using a group project as the basic vehicle. Topics covered include the software crisis, managing complexity, requirements specification, architectural and detailed design, testing and analysis, software process, and tools and environments. Prerequisite: either CSE 303 or CSE 331; either CSE 332 or CSE 326; recommended: either CSE 331 or project experience in a work setting.
MyPlan Course Details: CSE 403 (student access only)

CSE 410 Computer Systems (3)
Structure and components of hardware and software systems. Machine organization, including central processor and input-output architectures; assembly language programming; operating systems, including process, storage, and file management. Intended for non-majors. No credit to students who have completed CSE 351, CSE 378, or CSE 451. Prerequisite: CSE 373.
MyPlan Course Details: CSE 410 (student access only)

CSE 413 Programming Languages and Their Implementation (3)
Basic concepts and implementation strategies for modern functional and object-oriented programming languages such as Scheme and Java. Intended for non-majors. No credit to students who have completed CSE 341 or CSE 401. Prerequisite: CSE 373.
MyPlan Course Details: CSE 413 (student access only)

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. Not open for credit to students who have completed CSE 344. Prerequisite: minimum grade of 2.5 in CSE 143.
MyPlan Course Details: CSE 414 (student access only)

CSE 415 Introduction to Artificial Intelligence (3) NW
Principles and programming techniques of artificial intelligence: LISP, symbol manipulation, knowledge representation, logical and probabilistic reasoning, learning, language understanding, vision, expert systems, and social issues. Intended for non-majors. Not open for credit to students who have completed CSE 473. Prerequisite: CSE 373.
MyPlan Course Details: CSE 415 (student access only)

CSE 417 Algorithms and Computational Complexity (3)
Design and analysis of algorithms and data structures. Efficient algorithms for manipulating graphs and strings. Fast Fourier Transform. Models of computation, including Turing machines. Time and space complexity. NP-complete problems and undecidable problems. Intended for non-majors. Prerequisite: CSE 373.
MyPlan Course Details: CSE 417 (student access only)

CSE 421 Introduction to Algorithms (3)
Techniques for design of efficient algorithms. Methods for showing lower bounds on computational complexity. Particular algorithms for sorting, searching, set manipulation, arithmetic, graph problems, pattern matching. Prerequisite: either CSE 312 or CSE 322; either CSE 326 or CSE 332.
MyPlan Course Details: CSE 421 (student access only)

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: either CSE 312; CSE 332.
MyPlan Course Details: CSE 427 (student access only)

CSE 428 Computational Biology Capstone (5)
Designs and implements a software tool or software analysis for an important problem in computational molecular biology. Prerequisite: CSE 331; RF205
MyPlan Course Details: CSE 428 (student access only)

CSE 431 Introduction to Theory of Computation (3)
Models of computation, computable and noncomputable functions, space and time complexity, tractable and intractable functions. Prerequisite: either CSE 312 or CSE 322.
MyPlan Course Details: CSE 431 (student access only)

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: either CSE 326 or CSE 332.
MyPlan Course Details: CSE 440 (student access only)

CSE 441 Advanced HCI: Advanced User Interface Design, Prototyping, and Evaluation (5)
Human-Computer Interaction (HCI) theory and techniques. Advanced methods for designing, prototyping, and evaluating user interfaces to computing applications. Novel interface technology, advanced interface design methods, and prototyping tools. Prerequisite: CSE 440.
MyPlan Course Details: CSE 441 (student access only)

CSE 444 Database Systems Internals (4)
The relational data model and the SQL query language. Conceptual modeling: entity/relationships, normal forms. XML, XPath, and XQuery. Transactions: recovery and concurrency control. Implementation of a database system. A medium sized project using a rational database backend. Prerequisite: CSE 332; CSE 344.
MyPlan Course Details: CSE 444 (student access only)

CSE 446 Machine Learning (4)
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 326 or CSE 332; either STAT 390, STAT 391, or CSE 312.
MyPlan Course Details: CSE 446 (student access only)

CSE 450 Animation Production Seminar (1)
Open to all students who have an interest in digital animation. Reviews and analyzes films, animated feature films, and television commercials. Emphasizes the technical and aesthetic basics of animation production in industry studio environments.
MyPlan Course Details: CSE 450 (student access only)

CSE 451 Introduction to Operating Systems (4)
Principles of operating systems. Process management, memory management, auxiliary storage management, resource allocation. No credit to students who have completed CSE 410 or E E 474. Prerequisite: CSE 351 or CSE 378; CSE 326 or CSE 332; CSE 333..
MyPlan Course Details: CSE 451 (student access only)

CSE 452 Introduction to Distributed Systems (4)
Covers abstractions and implementation techniques in the construction of distributed systems, including cloud computing, distributed storage systems, and distributed caches. Prerequisite: eitherCSE 444, CSE 451, or CSE 461.
MyPlan Course Details: CSE 452 (student access only)

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 326 or CSE 332.
MyPlan Course Details: CSE 454 (student access only)

CSE 455 Computer Vision (4)
Introduction to image analysis and interpreting the 3D world from image data. Topics may include segmentation, motion estimation, image mosaics, 3D-shape reconstruction, object recognition, and image retrieval. Prerequisite: CSE 303 or CSE 333; CSE 326 or CSE 332; recommended: MATH 308; STAT 391.
MyPlan Course Details: CSE 455 (student access only)

CSE 456 Story Design for Computer Animation (4)
Animation principles and production for story development and design. Design, development, and production of several storyreels, which are a tool for the pre-production of animated features and shorts. Student use authoring tools to present finished work.
MyPlan Course Details: CSE 456 (student access only)

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 303 or CSE 333; CSE 326 or CSE 332; recommended: MATH 308.
MyPlan Course Details: CSE 457 (student access only)

CSE 458 Computer Animation (5)
Introduction to basic principles of computer generated animation. Focus on the modeling and lighting of animated characters. Students from art, CSE, and music team up on projects to be built on commercially-available modeling and lighting packages. Prerequisite: either CSE 457, ART 380, or MUSIC 403.
MyPlan Course Details: CSE 458 (student access only)

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.
MyPlan Course Details: CSE 459 (student access only)

CSE 460 Animation Capstone (5)
Apply the knowledge gained in previous animation courses to produce a short animated film. Topics include scene planning, digital cinematography, creature and hard surface modeling, animatics and basics of character animation, and rendering techniques. Prerequisite: CSE 458, CSE 459.
MyPlan Course Details: CSE 460 (student access only)

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. Prerequisite: either CSE 326 or CSE 332; either CSE 303 or CSE 333.
MyPlan Course Details: CSE 461 (student access only)

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. Prerequisite: CSE 458.
MyPlan Course Details: CSE 464 (student access only)

CSE 466 Software for Embedded Systems (4)
Software issues in the design of embedded systems. Microcontroller architectures and peripherals, embedded operating systems and device drivers, compilers and debuggers, timer and interrupt systems, interfacing of devices, communications and networking. Emphasis on practical application of development platforms. Prerequisite: either CSE 352 or CSE 378; either CSE 303 or CSE 333.
MyPlan Course Details: CSE 466 (student access only)

CSE 467 Advanced Digital Design (4)
Advanced techniques in the design of digital systems. Hardware description languages, combinational and sequential logic synthesis and optimization methods, partitioning, mapping to regular structures. Emphasis on reconfigurable logic as an implementation medium. Memory system design. Digital communication including serial/parallel and synchronous/asynchronous methods. Prerequisite: either CSE 352 or CSE 370; either CSE 326 or CSE 332.
MyPlan Course Details: CSE 467 (student access only)

CSE 471 Computer Design and Organization (4)
CPU instruction addressing models, CPU structure and functions, computer arithmetic and logic unit, register transfer level design, hardware and microprogram control, memory hierarchy design and organization, I/O and system components interconnection. Laboratory project involves design and simulation of an instruction set processor. Prerequisite: either CSE 352 or CSE 378.
MyPlan Course Details: CSE 471 (student access only)

CSE 472 Introduction to Computational Linguistics (5) VLPA/NW E. BENDER
Introduction to computational approaches to modeling language, for linguistic research and practical applications, including analyses at different levels of linguistic structure and symbolic as well as statistical approaches. Prerequisite: either LING 200 or LING 400; either LING 461 or CSE 321. Offered: jointly with LING 472.
MyPlan Course Details: CSE 472 (student access only)

CSE 473 Introduction to Artificial Intelligence (3)
Principal ideas and developments in artificial intelligence: Problem solving and search, game playing, knowledge representation and reasoning, uncertainty, machine learning, natural language processing. Not open for credit to students who have completed CSE 415. Prerequisite: CSE 326 or CSE 332; recommended: CSE 312; either STAT 390, or STAT 391.
MyPlan Course Details: CSE 473 (student access only)

CSE 477 Digital System Design (5)
Capstone design experience. Prototype a substantial project mixing hardware, software, and communication components. Focuses on use of embedded processors and programmable logic in digital system design, case studies, and emerging components and platforms. Provides a complete experience in embedded system design and management. Prerequisite: CSE 451; CSE 466; CSE 467.
MyPlan Course Details: CSE 477 (student access only)

CSE 481 Capstone Software Design (5, max. 15)
Students work in teams to design and implement a software project involving multiple areas of the CSE curriculum. Emphasis is placed on the development process itself, rather than on the product. Prerequisite: CSE 331 or CSE 341; CSE 326 or CSE 332; CSE 351 or CSE 378; substantial programming experience such as CSE 451 or CSE 457.
MyPlan Course Details: CSE 481 (student access only)

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. Prerequisite: either CSE 326 or CSE 332; either CSE 351 or CSE 378.
MyPlan Course Details: CSE 484 (student access only)

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 or MATH 307, AMATH 351, or CSE 321 and MATH 308 or AMATH 352. Offered: jointly with BIOEN 423/E E 423; A.
MyPlan Course Details: CSE 486 (student access only)

CSE 487 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: either BIOEN 401, BIOEN 423, E E 423, or CSE 486. Offered: jointly with BIOEN 424/E E 424; W.
MyPlan Course Details: CSE 487 (student access only)

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: either BIOEN 423, E E 423, or CSE 486; either CHEM 142, CHEM 144, or CHEM 145. Offered: jointly with BIOEN 425/E E 425; W.
MyPlan Course Details: CSE 488 (student access only)

CSE 490 Special Topics in Computer Science and Engineering (1-5, max. 15)
Lectures, discussions, and possibly labs on topics of current interest in computer science and engineering not covered by other CSE undergraduate courses.
MyPlan Course Details: CSE 490 (student access only)

CSE 495 Project Practicum ([1-5]-, max. 5)
Available in special situations for computer science majors to compete, under instructor guidance, a substantial computing project that deepens one's knowledge and experience in the field. Projects may involve a group of students.
MyPlan Course Details: CSE 495 (student access only)

CSE 497 Undergraduate Research Seminar (1)
Students prepare and give a public talk on their faculty-sponsored research projects.
MyPlan Course Details: CSE 497 (student access only)

CSE 498 Senior Project ([1-9]-, max. 9)
A report (and perhaps demonstration) describing a development, survey, or small research project in computer science or an application to another field. Objectives: (1) integrating material from several courses, (2) introducing the professional literature, (3) gaining experience in writing a technical document, and (4) showing evidence of independent work. Work normally extends over more than one quarter, for a maximum of 6 credits for CSE 498; 9 credits are required for CSE 498H.
MyPlan Course Details: CSE 498 (student access only)

CSE 499 Reading and Research (1-24, max. 24)
Available in special situations for advanced computer science majors to do reading and research in field, subject to approval of undergraduate adviser and CSE faculty member. Free elective, but does not replace core course or computer science elective. Credit/no-credit only.
MyPlan Course Details: CSE 499 (student access only)

CSE 501 Programming Language Analysis and Implementation (4)
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.
MyPlan Course Details: CSE 501 (student access only)

CSE 503 Software Engineering (4)
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.
MyPlan Course Details: CSE 503 (student access only)

CSE 504 Advanced Topics in Software Engineering (4)
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.
MyPlan Course Details: CSE 504 (student access only)

CSE 505 Principles of Programming Languages (4)
Design and formal semantics of modern programming languages, includes functional and object-oriented languages. Prerequisite: CSE major and CSE 341.
MyPlan Course Details: CSE 505 (student access only)

CSE 506 Advanced Topics in Programming Languages (4)
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.
MyPlan Course Details: CSE 506 (student access only)

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.
MyPlan Course Details: CSE 510 (student access only)

CSE 512 Data Visualization (4)
Covers techniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, perceptual psychology, and cognitive science. Topics include data and image models; visual encoding; graphical perception; color; animation; interaction techniques; graph layout; and automated design. Lectures, reading, and project.
MyPlan Course Details: CSE 512 (student access only)

CSE 515 Statistical Methods in Computer Science (4)
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.
MyPlan Course Details: CSE 515 (student access only)

CSE 517 Natural Language Processing (4)
Overview of modern approaches for natural language processing. Topics include language models, text, classification, tagging, parsing, machine translation, semantic, and discourse analysis.
MyPlan Course Details: CSE 517 (student access only)

CSE 519 Current Research in Computer Science (1, max. 18)
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.
MyPlan Course Details: CSE 519 (student access only)

CSE 520 Computer Science Colloquium (1, max. 18)
Weekly public presentations on topics of current interest by visiting computer scientists. Credit/no-credit only.
MyPlan Course Details: CSE 520 (student access only)

CSE 521 Design and Analysis of Algorithms I (4)
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.
MyPlan Course Details: CSE 521 (student access only)

CSE 522 Design and Analysis of Algorithms II (4)
Analysis of algorithms more sophisticated than those treated in CSE 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.
MyPlan Course Details: CSE 522 (student access only)

CSE 523 Computational Geometry (4)
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: either CSE 457 or equivalent.
MyPlan Course Details: CSE 523 (student access only)

CSE 524 Parallel Algorithms (4)
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.
MyPlan Course Details: CSE 524 (student access only)

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: CSE 521 or equivalent; CSE majors only. Offered: WSp.
MyPlan Course Details: CSE 525 (student access only)

CSE 527 Computational Biology (4)
Introduces computational methods for understanding biological systems at the molecular level. Problem areas such as mapping and sequencing, sequence analysis, structure prediction, phylogenic inference, regulatory analysis. Techniques such as dynamic programming, Markov models, expectation-maximization, local search. Prerequisite: graduate standing in biological, computer, mathematical or statistical science, or permission of instructor.
MyPlan Course Details: CSE 527 (student access only)

CSE 528 Computational Neuroscience (3)
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 permission of instructor. Offered: jointly with NEUBEH 528.
MyPlan Course Details: CSE 528 (student access only)

CSE 529 Neural Control of Movement: A Computational Perspective (3)
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.
MyPlan Course Details: CSE 529 (student access only)

CSE 531 Computational Complexity I (4)
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.
MyPlan Course Details: CSE 531 (student access only)

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. Prerequisite: CSE majors only; recommended: CSE 531.
MyPlan Course Details: CSE 532 (student access only)

CSE 533 Advanced Topics in Complexity Theory (4)
An in-depth study of advanced topics in computational complexity. Prerequisite: CSE major.
MyPlan Course Details: CSE 533 (student access only)

CSE 536 Theory of Distributed Computing (4)
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.
MyPlan Course Details: CSE 536 (student access only)

CSE 543 Computer System Performance (4)
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.
MyPlan Course Details: CSE 543 (student access only)

CSE 544 Principles of Database Systems (4)
Data models and query languages (SQL, datalog, OQL). Relational databases, enforcement of integrity constraints. Object-oriented databases and object-relational databases. Principles of data storage and indexing. Query-execution methods and query optimization algorithms. Static analysis of queries and rewriting of queries using views. Data integration. Data mining. Principles of transaction processing.
MyPlan Course Details: CSE 544 (student access only)

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 STAT 341, STAT 391, or equivalent, or permission of instructor.
MyPlan Course Details: CSE 546 (student access only)

CSE 547 Machine Learning for Big Data (4) Fox, Guestrin
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.
MyPlan Course Details: CSE 547 (student access only)

CSE 548 Computer Systems Architecture (4)
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.
MyPlan Course Details: CSE 548 (student access only)

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. Prerequisite: CSE major and CSE 548 or permission of instructor.
MyPlan Course Details: CSE 549 (student access only)

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.
MyPlan Course Details: CSE 550 (student access only)

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 major and CSE 451.
MyPlan Course Details: CSE 551 (student access only)

CSE 552 Distributed and Parallel Systems (4)
Principles, techniques, and examples related to the design, implementation, and analysis of distributed and parallel computer systems. Prerequisite: CSE major and CSE 551.
MyPlan Course Details: CSE 552 (student access only)

CSE 553 Real-Time Systems (4)
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.
MyPlan Course Details: CSE 553 (student access only)

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: CSE major, solid knowledge of linear algebra.
MyPlan Course Details: CSE 557 (student access only)

CSE 558 Special Topics in Computer Graphics (4)
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.
MyPlan Course Details: CSE 558 (student access only)

CSE 561 Computer Communication and Networks (4)
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.
MyPlan Course Details: CSE 561 (student access only)

CSE 564 Computer Security and Privacy (4)
Examines the fundamentals of computer security including: human factors; attack detection, measurements, and models; cryptography and communications security; system design and implementation; and side channels.
MyPlan Course Details: CSE 564 (student access only)

CSE 567 Principles of Digital Systems Design (4)
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.
MyPlan Course Details: CSE 567 (student access only)

CSE 568 Introduction to VLSI Systems (4)
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.
MyPlan Course Details: CSE 568 (student access only)

CSE 571 AI-based Mobile Robotics (4)
Overview of mobile robot control and sensing. Behavior-based control, world modeling, localization, navigation, and planning Probabilistic sensor interpretation, Bayers filters, particle filters. Projects: Program real robots to perform navigation tasks. Prerequisite: CSE major and CSE 473, or permission of instructor.
MyPlan Course Details: CSE 571 (student access only)

CSE 573 Artificial Intelligence I (4)
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.
MyPlan Course Details: CSE 573 (student access only)

CSE 574 Artificial Intelligence II (4)
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.
MyPlan Course Details: CSE 574 (student access only)

CSE 576 Computer Vision (3)
Principles and methods for interpreting the three-dimensional world from images. Topics include feature detection, image segmentation, motion estimation, image mosaics, 3D-shape reconstruction, object recognition, and image retrieval. Recommended: Solid knowledge of linear algebra, good programming skills, CSE or E E major or permission of instructor. Offered: jointly with E E 576.
MyPlan Course Details: CSE 576 (student access only)

CSE 577 Special Topics in Computer Vision (3)
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 576/E E 576. Offered: jointly with E E 577.
MyPlan Course Details: CSE 577 (student access only)

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 579.
MyPlan Course Details: CSE 579 (student access only)

CSE 581 Parallel Computation in Image Processing (4)
Parallel architectures, algorithms, and languages for image processing. Cellular array, pipelined and pyramid machines, instruction sets, and design issues. Parallel implementations of filtering, edge detection, segmentation, shape, stereo, motion, relaxation algorithms, multiresolution methods, and iconic-to-symbolic transforms. Students write and debug programs for parallel computers. Prerequisite: permission of instructor.
MyPlan Course Details: CSE 581 (student access only)

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 or MATH 307, AMATH 351, or CSE 321 and MATH 308 or AMATH 352. Offered: jointly with BIOEN 523/E E 523.
MyPlan Course Details: CSE 586 (student access only)

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: either BIOEN 523, E E 523, or CSE 586. Offered: jointly with BIOEN 524/E E 524; W.
MyPlan Course Details: CSE 587 (student access only)

CSE 590 Research Seminar (*, max. 50)
Several offerings each quarter, on topics of current interest. Prerequisite: permission of instructor.
MyPlan Course Details: CSE 590 (student access only)

CSE 591 Group Projects in Computer Science (1-3, max. 25)
Focuses on specialized topics and research activities in computer science.
MyPlan Course Details: CSE 591 (student access only)

CSE 597 Performance Analysis (4)
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. Prerequisite: CSE majors only. Not open for credit to students who have completed CSE 543.
MyPlan Course Details: CSE 597 (student access only)

CSE 599 Special Topics in Computer Science (1-5, max. 30)
Studies of emerging areas and specialized topics in computer science.
MyPlan Course Details: CSE 599 (student access only)

CSE 600 Independent Study or Research (*-)
Credit/no-credit only.
MyPlan Course Details: CSE 600 (student access only)

CSE 700 Master's Thesis (*-)
Credit/no-credit only.
MyPlan Course Details: CSE 700 (student access only)

CSE 800 Doctoral Dissertation (*-)
Credit/no-credit only.
MyPlan Course Details: CSE 800 (student access only)