Baner MIF

Ban CONF

Ban CONF

Error
  • XML Parsing Error at 22:65. Error 73: > required

Course Information

Undergraduate Courses

Fluency In Information Technology Introduces skills, concepts, and capabilities necessary to effectively use information technology. Includes logical reasoning, managing complexity, operation of computers and networks, and contemporary applications such as effective Web searching and database manipulation, ethical aspects, and social impacts of information technology. Offered: jointly with INFO 100.

Computer Science Principles 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.
 
Computer Programming I 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.
 
Computer Programming Ii 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.
 
Web Programming 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.
 
Data Programming 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. No credit if CSE 143 has been taken.
 
Foundations Of Computing I Examines fundamentals of logic, set theory, induction, and algebraic structures with applications to computing; finite state machines; and limits of computability.
 
Foundations Of Computing Ii Examines fundamentals of enumeration and discrete probability; applications of randomness to computing; polynomial-time versus NP; and NP-completeness.
 
Software Design And Implementation 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.
 
Data Abstractions 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.
 
Systems Programming 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.
 
Programming Languages 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.
 
Introduction To Data Management 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.
 
The Hardware/software Interface 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.
 
Hardware Design And Implementation Covers digital circuit design, processor design, and systems integration and embedded-systems issues. Include substantial hardware laboratory.
 
Introduction to Digital Design Introduces the implementation of digital logic and its specification and simulation. Covers Boolean algebra; combinational circuits including arithmetic circuits and regular structures; sequential circuits including finitestate-machines; and use of field-programmable gate arrays (FPGAs). Emphasizes simulation, high-level specification, and automatic synthesis techniques.
 
Data Structures And Algorithms 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 332.
 
Intermediate Programming Concepts And Tools 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 333.
 
System and Software Tools System and Software Tools: Unix/Linux command line interface (CLI), Shell scripting, compilation tools (makefiles), version control.
 
Leadership Seminar Series The UW CSE Leadership Seminar Series, CSE 390L, is a one-credit (CR/NC) seminar series, primarily targeted at undergraduates, that brings CSE alumni and friends to campus to describe how to be effective in a startup, small company, large company, or less common environment. Course requirements: Regular attendance, active participation, and some preparation on a wiki in advance of each course session.
 
Introduction To Compiler Construction Fundamentals of compilers and interpreters; symbol tables; lexical analysis, syntax analysis, semantic analysis, code generation, and optimizations for general purpose programming languages.
 
Software Engineering 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.
 
Computer Systems 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.
 
Programming Languages & Their Implementation Basic concepts and implementation strategies for modern functional and object-oriented programming languages such as Scheme and Java. Intended for non-majors.
 
Introduction to Database Systems 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.
 
Introduction To Artificial Intelligence 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.
 
Algorithms And Computational Complexity 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.
 
Introduction To Algorithms 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.
 
Introduction To Theory Of Computation Models of computation, computable and noncomputable functions, space and time complexity, tractable and intractable functions.
 
Intro To HCI: User Interface Design, Prototype, Evaluation 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.
 
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.
 
Introduction To Operating Systems Principles of operating systems. Process management, memory management, auxiliary storage management, resource allocation.
 
Introduction to Distributed Systems Covers abstractions and implementation techniques in the construction of distributed systems, including cloud computing, distributed storage systems, and distributed caches.
 
Advanced Internet And Web Services 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.
 
Computer Vision 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.
 
Story Design For Computer Animation 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.
 
Computer Graphics 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.
 
Introduction To Computer Communication Networks 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.
 
Software For Embedded Systems 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.
 
Advanced Digital Design 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.
 
Computer Design And Organization 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.
 
Introduction To Artificial Intelligence Principal ideas and developments in artificial intelligence: Problem solving and search, game playing, knowledge representation and reasoning, uncertainty, machine learning, natural language processing.
 
Embedded System Design System building course to provide students with a complete experience in embedded system design. Students will design, simulate, construct, debug, and document a substantial project of their choosing. Lectures will focus on case studies and emerging components and platforms.
 
Digital System Design 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.
 
Computer Security Foundations of modern computer security, including software security, operating system security, network security, applied cryptography, human factors, authentication, anonymity, and web security.
 
Computers, Ethics, and Society Computers, Ethics, and Society
 
Introduction to Data Compression Basic information theory: entropy. Lossless data compression techniques: Huffman coding, arithmetic coding, and dictionary methods. Use of context, structure, and prediction to improve compression. Basic signal processing: Fourier and discrete cosine transforms, wavelet transforms, quantization. Fidelity and distortion metrics, rate-distortion analysis. Image compression: vector quantization, DCT coding, wavelet coding. Video compression: motion compensation and prediction. Audio compression. Image, video, and audio compression standards.
 
Problem Solving on Large Scale Clusters Problem Solving on Large Scale Clusters
 

Professional (Evening) Courses

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.
 
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).
 
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.
 
Programming Languages A study of non-imperative programming paradigms such as functional, object-oriented, logic, and constraint programming. Programming language semantics and type theory.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
 
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.
 
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.
 
Data Mining Methods for identifying valid, novel, useful, and understandable patterns in data. Induction of predictive models from data: classification, regression, probability estimation. Discovery of clusters and association rules.
 
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.
 
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.
 
Distributed Systems Principles, techniques, and examples related to the design, implementation, and analysis of distributed computer systems.
 
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. P
 
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.
 
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.
 
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.
 
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.
 
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.
 
Special Topics In Computer Science (PMP) Studies of emerging areas and specialized topics in computer science. Topics vary by quarter.
 
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.
 
Performance Analysis This course is intended to provide a broad introduction to computer system performance evaluation techniques and their application. Approaches considered include measurement/benchmarking, stochastic and trace driven simulation, stochastic queueing networks, and timed Petri nets. Applications of the techniques are studied using case study papers.

 

Graduate Courses

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.
 
Software Engineering Specification, implementation, and testing of large, multiperson, software systems. Topics include abstraction, information hiding, software development environments, and formal specifications.
 
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.
 
Principles Of Programming Languages Design and formal semantics of modern programming languages, includes functional and object-oriented languages.
 
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.
 
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
 
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.
 
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.
 
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.
 
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.
 
Computer Science Colloquium Weekly public presentations on topics of current interest by visiting computer scientists. Credit/no credit only
 
Design And Analysis Of Algorithms 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. 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.
 
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.
 
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.
 
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.
 
Computational Complexity 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. 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.
 
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.
 
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.
 
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.
 
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).
 
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).
 
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.
 
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.
 
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.
 
Distributed And Parallel Systems Principles, techniques, and examples related to the design, implementation, and analysis of distributed and parallel computer systems.
 
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.
 
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.
 
Computer Communications And Networks Fundamentals of data transmission: coding, message formats, and protocols. Organization of computer networks. Examples of network implementations.
 
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.
 
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.
 

 

Головна > Education > Course Information