#nLaw for Computer Science Professionals
#dIntellectual property law as it relates to computer science including copyright registration, patents, and trade secrets; contract issues such as non-disclosure/non-compete agreements, license agreements, and works-made-for-hire; dispute resolution; and principles of business formation and ownership. Emphasis is on topics of current interest such as open source and the free software movement, peer-to-peer sharing, encryption, data mining, and spam.
#iD.Hansen
#t2008,fall


#nComputational Law
#dLegal informatics based on representation of regulations in computable form. Encoding regulations facilitate creation of legal information systems with significant practical value. Convergence of technological trends, growth of the Internet, advent of semantic web technology, and progress in computational logic make computational law prospects better. Topics: current state of computational law, prospects and problems, philosophical and legal implications. Prerequisite: basic concepts of programming.
#Mike Genesereth
#2009,spring


#nMathematical Methods for Robotics, Vision, and Graphics 
#dContinuous mathematics background necessary for research in robotics, vision, and graphics. Possible topics: linear algebra,the conjugate gradient method,ordinary and partial differential equations,vector and tensor calculus. 
#iRon Fedkiw
#t2009,fall


#nMathematical Methods for Robotics, Vision, and Graphics 
#dContinuous mathematics background necessary for research in robotics, vision, and graphics. Possible topics: linear algebra,the conjugate gradient method,ordinary and partial differential equations,vector and tensor calculus. 
#iRon Fedkiw
#t2008,fall


#nMathematical Methods for Fluids, Solids and Interfaces 
#dOverview of numerical methods for the simulation of problems involving solid mechanics and fluid dynamics. The focus is on practical tools needed for simulation, as well as the necessary continuous mathematics involving nonlinear hyperbolic partial differential equations. Possible topics: finite element method, highly deformable elastic bodies, plasticity, fracture, level set method, Burgers' equation, compressible and incompressible Navier-Stokes equations, smoke, water, fire, solid-fluid coupling.
#iRon Fedkiw 
#t2010,spring


#nMathematical Methods for Fluids, Solids and Interfaces
#dOverview of numerical methods for the simulation of problems involving solid mechanics and fluid dynamics. The focus is on practical tools needed for simulation, as well as the necessary continuous mathematics involving nonlinear hyperbolic partial differential equations. Possible topics: finite element method, highly deformable elastic bodies, plasticity, fracture, level set method, Burgers' equation, compressible and incompressible Navier-Stokes equations, smoke, water, fire, solid-fluid coupling.
#iRon Fedkiw 
#t2009,spring


#nThe Economics of Software 
#dHow software products are moved into the marketplace and how the resulting intellectual property is exploited. Concepts that are outside of the common knowledge of computer scientists such as business terms and spreadsheet computations to quantitatively compare alternatives. Goal is to contribute to informed decision making in high-tech product design, acquisition, production, mar-keting, selection of business structures, outsourcing, and impact of taxation policies. 
#iGio Wiederhold
#t2009,fall


#nThe Canon of Computer Science 
#dAnalysis and discussion of influential and inspiring writings in computer science. Original works by Turing, von Neumann, Shannon, Bush, Engelbart, Licklider, Kay, Feynman, and others. Emphasis on writings that shaped the field and continue to provoke and stimulate. The visions that inspired personal computing, computer networks, the GUI, the Web, and other key developments.
#iVladlen Koltun
#t2010,spring


#nArtificial Intelligence: Principles and Techniques 
#d(Only one of 121 or 221 counts towards any CS degree program.) Topics: search, constraint satisfaction, knowledge representation, probabilistic models, Bayesian networks, machine learning, neural networks, vision, robotics, and natural language processing. 
#iAndrew Ng
#t2009,fall


#nArtificial Intelligence: Principles and Techniques 
#d(Only one of 121 or 221 counts towards any CS degree program.) Topics: search, constraint satisfaction, knowledge representation, probabilistic models, Bayesian networks, machine learning, neural networks, vision, robotics, and natural language processing. 
#iAndrew Ng
#t2009,winter


#nArtificial Intelligence: Principles and Techniques 
#d(Only one of 121 or 221 counts towards any CS degree program.) Topics: search, constraint satisfaction, knowledge representation, probabilistic models, Bayesian networks, machine learning, neural networks, vision, robotics, and natural language processing. 
#iAndrew Ng
#t2008,fall


#nRational Agency and Intelligent Interaction 
#dFor advanced undergraduates, and M.S. and beginning Ph.D. students. Logic-based methods for knowledge representation, information change, and games in artificial intelligence and philosophy. Topics: knowledge, certainty, and belief,time and action,belief dynamics,preference and social choice,games,and desire and intention.
#iEric Pacuit,Yoav Shoham,Johan van Benthem
#t2010,spring


#nRational Agency and Intelligent Interaction 
#dFor advanced undergraduates, and M.S. and beginning Ph.D. students. Logic-based methods for knowledge representation, information change, and games in artificial intelligence and philosophy. Topics: knowledge, certainty, and belief,time and action,belief dynamics,preference and social choice,games,and desire and intention.
#iYoav Shoham
#t2009,spring


#nIntroduction to Robotics
#dTopics: robotics foundations in kinematics, dynamics, control, motion planning, trajectory generation, programming and design. 
#iOussama Khatib
#t2010,winter


#nIntroduction to Robotics
#dTopics: robotics foundations in kinematics, dynamics, control, motion planning, trajectory generation, programming and design. 
#iOussama Khatib
#t2009,winter


#nIntroduction to Computer Vision 
#dFundamental issues and techniques of computer vision. Image formation, edge detection and image segmentation, stereo, motion, shape representation, recognition.
#iFei-Fei Li 
#t2010,winter


#nIntroduction to Computer Vision 
#dFundamental issues and techniques of computer vision. Image formation, edge detection and image segmentation, stereo, motion, shape representation, recognition.
#iSebastian Thrun
#t2009,winter


#nMulti-Agent Systems 
#dFor advanced undergraduates, and M.S. and beginning Ph.D. students. Topics: logics of knowledge and belief, other logics of mental state, theories of belief change, multi-agent probabilities, essentials of game theory, social choice and mechanism design, multi-agent learning, communication. Applications discussed as appropriate, but emphasis is on conceptual matters and theoretical foundations. 
#iYoav Shoham
#t2009,fall


#nMulti-Agent Systems 
#dFor advanced undergraduates, and M.S. and beginning Ph.D. students. Topics: logics of knowledge and belief, other logics of mental state, theories of belief change, multi-agent probabilities, essentials of game theory, social choice and mechanism design, multi-agent learning, communication. Applications discussed as appropriate, but emphasis is on conceptual matters and theoretical foundations. 
#iYoav Shoham
#t2008,fall


#nNatural Language Processing  
#dMethods for processing human language information and the underlying computational properties of natural languages. Syntactic and semantic processing from linguistic and algorithmic perspectives. Focus is on modern quantitative techniques in NLP: using large corpora, statistical models for acquisition, translation, and interpretation,and representative systems. 
#iChris Manning
#t2010,spring


#nNatural Language Processing  
#dMethods for processing human language information and the underlying computational properties of natural languages. Syntactic and semantic processing from linguistic and algorithmic perspectives. Focus is on modern quantitative techniques in NLP: using large corpora, statistical models for acquisition, translation, and interpretation,and representative systems. 
#iChris Manning
#t2009,spring

#nSpeech Recognition and Synthesis
#dAutomatic speech recognition, speech synthesis, and dialogue systems. Focus is on key algorithms including noisy channel model, hidden Markov models (HMMs), Viterbi decoding, N-gram language modeling, unit selection synthesis, and roles of linguistic knowledge. Prerequisite: programming experience.
#iDan Jurafsky
#t2009,winter

#nNatural Language Understanding 
#dMachine understanding of human language. Computational semantics (determination of word sense and synonymy, event structure and thematic roles, time, aspect, causation, compositional semantics, scopal operators), and computational pragmatics and discourse (coherence, coreference resolution, information packaging, dialogue structure). Theoretical issues, online resources, and relevance to applications including question answering and summarization. 
#iDan Jurafsky,W. MacCartney
#t2010,winter 


#nExperimental Robotics 
#dHands-on. Topics: kinematic and dynamic control of motion, compliant motion and force control, sensor-based collision avoidance, motion planning, dynamic skills, and robot-human interfaces. Limited enrollment. 
#iOussama Khatib 
#t2010,spring 


#nExperimental Robotics 
#dHands-on. Topics: kinematic and dynamic control of motion, compliant motion and force control, sensor-based collision avoidance, motion planning, dynamic skills, and robot-human interfaces. Limited enrollment. 
#iOussama Khatib 
#t2009,spring 


#nRobot Programming Laboratory 
#dFor robotics and non-robotics students. Students program mobile robots to exhibit increasingly complex behavior (simple dead reckoning and reactivity, goal-directed motion, localization, complex tasks). Topics: motor control and sensor characteristics,sensor fusion, model construction, and robust estimation,control regimes (subsumption, potential fields),probabalistic methods, including Markov localization and particle filters. Student programmed robot contest. Programming is in C++ on Unix machines, done in teams. 
#iK. Konolige
#t2009,fall


#nRobot Programming Laboratory 
#dFor robotics and non-robotics students. Students program mobile robots to exhibit increasingly complex behavior (simple dead reckoning and reactivity, goal-directed motion, localization, complex tasks). Topics: motor control and sensor characteristics,sensor fusion, model construction, and robust estimation,control regimes (subsumption, potential fields),probabalistic methods, including Markov localization and particle filters. Student programmed robot contest. Programming is in C++ on Unix machines, done in teams. 
#iK. Konolige
#t2008,fall


#nReasoning Methods in Artificial Intelligence 
#dTechnical presentation of logical algorithmic techniques for problem solving in AI. Combines formal algorithmic analysis with a description of recent applications. Topics: representation and modelling, propositional satisfiability, constraint satisfaction, planning and scheduling, advanced topics. Focus is on recent results. 
#iN. Yorke-Smith
#t2010,spring 


#nReasoning Methods in Artificial Intelligence 
#dTechnical presentation of logical algorithmic techniques for problem solving in AI. Combines formal algorithmic analysis with a description of recent applications. Topics: representation and modelling, propositional satisfiability, constraint satisfaction, planning and scheduling, advanced topics. Focus is on recent results. 
#iN. Yorke-Smith
#t2009,spring


#nGeneral Game Playing 
#dA general game playing system accepts a formal description of a game to play it without human intervention or algorithms designed for specific games. Hands-on introduction to these systems and artificial intelligence techniques such as knowledge representation, reasoning, learning, and rational behavior. Students create GGP systems to compete with each other and in external competitions. 
#iMike Genesereth 
#t2010,spring 


#nGeneral Game Playing 
#dA general game playing system accepts a formal description of a game to play it without human intervention or algorithms designed for specific games. Hands-on introduction to these systems and artificial intelligence techniques such as knowledge representation, reasoning, learning, and rational behavior. Students create GGP systems to compete with each other and in external competitions. 
#iMike Genesereth 
#t2009,spring 


#nStructured Probabilistic Models: Principles and Techniques 
#d Probabilistic modeling languages for representing complex domains, algorithms for reasoning and decision making using these representations, and learning these representations from data. Focus is on probabilistic graphic models, including Bayesian and Markov networks, extensions to temporal modeling such as hidden Markov models and dynamic Bayesian networks, and extensions to decision making such as influence diagrams. Basic techniques and their applications to domains including speech recognition, biological modeling and discovery, medical diagnosis, message encoding, vision, and robot motion planning.  
#iDaphne Koller 
#t2010,winter 


#nStructured Probabilistic Models: Principles and Techniques 
#d Probabilistic modeling languages for representing complex domains, algorithms for reasoning and decision making using these representations, and learning these representations from data. Focus is on probabilistic graphic models, including Bayesian and Markov networks, extensions to temporal modeling such as hidden Markov models and dynamic Bayesian networks, and extensions to decision making such as influence diagrams. Basic techniques and their applications to domains including speech recognition, biological modeling and discovery, medical diagnosis, message encoding, vision, and robot motion planning.  
#iDaphne Koller 
#t2009,winter


#nStructured Probabalistic Models: Theoretical Foundations 
#dFor students interested in advanced methods in machine learning and probabilistic AI. Theoretical foundations and extension for the ideas and algorithms covered in CS 228. Topics include theory and advanced algorithms for approximate inference in graphical models, representation and inference in continuous processes, and theory and algorithms for learning with missing data and hidden variables. 
#iDaphne Koller 
#t2010,winter 


#nStructured Probabalistic Models: Theoretical Foundations 
#dFor students interested in advanced methods in machine learning and probabilistic AI. Theoretical foundations and extension for the ideas and algorithms covered in CS 228. Topics include theory and advanced algorithms for approximate inference in graphical models, representation and inference in continuous processes, and theory and algorithms for learning with missing data and hidden variables. 
#iDaphne Koller 
#t2009,winter


#nMachine Learning 
#dTopics: statistical pattern recognition, linear and non-linear regression, non-parametric methods, exponential family, GLMs, support vector machines, kernel methods, model/feature selection, learning theory, VC dimension, clustering, density estimation, EM, dimensionality reduction, ICA, PCA, reinforcement learning and adaptive control, Markov decision processes, approximate dynamic programming, and policy search. 
#iAndrew Ng
#t2009,fall


#nMachine Learning 
#dTopics: statistical pattern recognition, linear and non-linear regression, non-parametric methods, exponential family, GLMs, support vector machines, kernel methods, model/feature selection, learning theory, VC dimension, clustering, density estimation, EM, dimensionality reduction, ICA, PCA, reinforcement learning and adaptive control, Markov decision processes, approximate dynamic programming, and policy search. 
#iAndrew Ng
#t2008,fall


#nAdvanced Topics in Operating Systems 
#dRecent research. Classic and new papers. Topics: virtual memory management, synchronization and communication, file systems, protection and security, operating system extension techniques, fault tolerance, and the history and experience of systems programming. 
#iDawson Engler 
#t2010,spring 


#nAdvanced Topics in Operating Systems 
#dRecent research. Classic and new papers. Topics: virtual memory management, synchronization and communication, file systems, protection and security, operating system extension techniques, fault tolerance, and the history and experience of systems programming. 
#iDawson Engler 
#t2008,fall 


#nAdvanced Topics in Operating Systems 
#dRecent research. Classic and new papers. Topics: virtual memory management, synchronization and communication, file systems, protection and security, operating system extension techniques, fault tolerance, and the history and experience of systems programming. 
#iDawson Engler 
#t2009,spring 


#nSecure Web Programming 
#dBuilding secure Web applications is key to the continued success of the Web. Course will cover the key components and available tools for securing web applications. Discussions on browser security policy and how to properly use it, server-side abstractions for building secure applications, and commong errors found in existing applications. Course will include student presentations on course projects.
#iDan Boneh,John Mitchell 
#t2010,spring


#nProgramming Languages 
#dCentral concepts in modern programming languages, impact on software development, language design trade-offs, and implementation considerations. Functional, imperative, and object-oriented paradigms. Formal semantic methods and program analysis. Modern type systems, higher order functions and closures, exceptions and continuations. Modularity, object-oriented languages, and concurrency. Runtime support for language features, interoperability, and security issues. 
#iJohn Mitchell,Kathleen Fisher
#t2009,fall


#nProgramming Languages 
#dCentral concepts in modern programming languages, impact on software development, language design trade-offs, and implementation considerations. Functional, imperative, and object-oriented paradigms. Formal semantic methods and program analysis. Modern type systems, higher order functions and closures, exceptions and continuations. Modularity, object-oriented languages, and concurrency. Runtime support for language features, interoperability, and security issues. 
#iJohn Mitchell
#t2008,fall


#nProgram Analysis and Optimizations 
#dProgram analysis techniques used in compilers and software development tools to improve productivity, reliability, and security. The methodology of applying mathematical abstractions such as graphs, fixpoint computations, binary decision diagrams in writing complex software, using compilers as an example. Topics include data flow analysis, instruction scheduling, register allocation, parallelism, data locality, interprocedural analysis, and garbage collection. 
#iMonica Lam 
#t2010,winter


#nProgram Analysis and Optimizations 
#dProgram analysis techniques used in compilers and software development tools to improve productivity, reliability, and security. The methodology of applying mathematical abstractions such as graphs, fixpoint computations, binary decision diagrams in writing complex software, using compilers as an example. Topics include data flow analysis, instruction scheduling, register allocation, parallelism, data locality, interprocedural analysis, and garbage collection. 
#iMonica Lam 
#t2009,winter


#nAdvanced Topics in Networking 
#dClassic papers, new ideas, and research papers in networking. Architectural principles: naming, addressing, routing,congestion control, traffic management, QoS,wireless and mobility,overlay networks and virtualization,network security,switching and routing,content distribution,and proposals for future Internet structures. 
#iNick McKeown 
#t2010,winter


#nAdvanced Topics in Networking 
#dClassic papers, new ideas, and research papers in networking. Architectural principles: naming, addressing, routing,congestion control, traffic management, QoS,wireless and mobility,overlay networks and virtualization,network security,switching and routing,content distribution,and proposals for future Internet structures. 
#iNick McKeown 
#t2009,winter


#nAdvanced Topics in Networking 
#dClassic papers, new ideas, and research papers in networking. Architectural principles: naming, addressing, routing,congestion control, traffic management, QoS,wireless and mobility,overlay networks and virtualization,network security,switching and routing,content distribution,and proposals for future Internet structures. 
#iNick McKeown 
#t2009,winter


#nDistributed Systems 
#dDistributed operating systems and applications issues, emphasizing high-level protocols and distributed state sharing as the key technologies. Topics: distributed shared memory, object-oriented distributed system design, distributed directory services, atomic transactions and time synchronization, application-sufficient consistency, file access, process scheduling, process migration, and storage/communication abstractions on distribution, scale, robustness in the face of failure, and security. 
#iDavid Cheriton
#t2010,spring


#nDistributed Systems 
#dDistributed operating systems and applications issues, emphasizing high-level protocols and distributed state sharing as the key technologies. Topics: distributed shared memory, object-oriented distributed system design, distributed directory services, atomic transactions and time synchronization, application-sufficient consistency, file access, process scheduling, process migration, and storage/communication abstractions on distribution, scale, robustness in the face of failure, and security.
#iDavid Cheriton 
#t2009,spring


#nReadings and Projects in Distributed Systems 
#dCompanion project option for 244B. Corequisite: 244B.
#iDavid Cheriton  
#t2010,spring


#nReadings and Projects in Distributed Systems 
#dCompanion project option for 244B. Corequisite: 244B.
#iLeonidas Guibas  
#t2009,spring


#nWireless Networking 
#dChallenges of low power wireless networking protocols and applications. Topics: the OSI model, 802.11, Bluetooth, 802.15.4, WiMAX, hardware considerations, media access, radio propagation models, flooding, dissemination, gossip, link behavior, opportunistic reception, network coding, modulation, TCP. Students read papers and build working protocols on the 100-mode Stanford wireless testbed.
#iPhilip Levis
#t2010,spring 


#nDatabase Systems Principles 
#dFile organization and access, buffer management, performance analysis, and storage management. Database system architecture, query optimization, transaction management, recovery, concurrency control. Reliability, protection, and integrity. Design and management issues. 
#iHector Garcia-Molina
#t2010,winter


#nDatabase Systems Principles 
#dFile organization and access, buffer management, performance analysis, and storage management. Database system architecture, query optimization, transaction management, recovery, concurrency control. Reliability, protection, and integrity. Design and management issues. 
#iHector Garcia-Molina
#t2009,winter


#nHuman-Computer Interaction Design Studio 
#dProject-based. Methods used in interaction design including needs analysis, user observation, idea sketching, concept generation, scenario building, storyboards, user character stereotypes, usability analysis, and market strategies. 
#iVerplank W,Terry Winograd 
#t2010,winter


#nHuman Computer Interaction Technology Laboratory 
#dHands-on introduction to contemporary HCI technologies. Interaction design with Adobe Flash, mobile development, physical computing, and web applications. Corequisite: 247.
#iTerry Winograd
#t2010,winter 


#nInteractive Computer Graphics 
#dRendering, animation and modeling for interactive computer graphics. Rasterization, graphics pipeline, graphics hardware,texture mapping and its applications,lighting and surface shading,rendering optimization,keyframing,physics simulation. Programming projects and final project. 
#iVladlen Koltun
#t2010,winter 


#nHuman-Computer Interaction Design Studio 
#dProject-based. Methods used in interaction design including needs analysis, user observation, idea sketching, concept generation, scenario building, storyboards, user character stereotypes, usability analysis, and market strategies. 
#iTerry Winograd 
#t2009,winter


#nHuman Computer Interaction Technology Laboratory 
#dHands-on introduction to contemporary HCI technologies. Interaction design with Adobe Flash, mobile development, physical computing, and web applications. Corequisite: 247.
#iTerry Winograd
#t2009,winter 


#nIntroduction to Computer Graphics
#dInput and display devices, scan conversion of geometric primitives, 2D and 3D geometric transformations, clipping and windowing, scene modeling and animation, algorithms for visible surface determination, local and global shading models, color, and real-time rendering methods. Written assignments and programming projects. Prerequisites: 108, MATH 103 or equivalent.
#iMarc Levoy
#t2008,fall 


#nObject-Oriented Programming from a Modeling and Simulation Perspective 
#dTopics: large-scale software development approaches, encapsulation, use of inheritance and dynamic dispatch, design of interfaces and interface/implementation separation, exception handling, design patterns, minimalizing dependencies and value-oriented programming. The role of programming conventions/style/restrictions in surviving object-oriented programming for class libraries, frameworks, and programming-in-the-large,general techniques for object-oriented programming.
#iD. Cheriton
#t2009,fall


#nObject-Oriented Programming from a Modeling and Simulation Perspective 
#dTopics: large-scale software development approaches, encapsulation, use of inheritance and dynamic dispatch, design of interfaces and interface/implementation separation, exception handling, design patterns, minimalizing dependencies and value-oriented programming. The role of programming conventions/style/restrictions in surviving object-oriented programming for class libraries, frameworks, and programming-in-the-large,general techniques for object-oriented programming. 
#iD. Cheriton
#t2008,fall


#nAdvanced Object-Oriented Programming 
#dHow to produce reasonable-cost, high quality software such as next-stage, large-scale systems that handle life-critical systems. Software process, people, practice, and audit: integrating invariant checks with production software,collection implementation,generic programming and templates,design of value types,named descriptions for large value types,memory management,controlling placement,locality and consumption,concurrency with modular object-oriented programming. Inheritance: when and why multiple inheritance naming, directories, manager, and other design patterns.
#iDavid Cheriton  
#t2010,winter


#nAdvanced Object-Oriented Programming 
#dHow to produce reasonable-cost, high quality software such as next-stage, large-scale systems that handle life-critical systems. Software process, people, practice, and audit: integrating invariant checks with production software,collection implementation,generic programming and templates,design of value types,named descriptions for large value types,memory management,controlling placement,locality and consumption,concurrency with modular object-oriented programming. Inheritance: when and why multiple inheritance naming, directories, manager, and other design patterns.
#iDavid Cheriton  
#t2009,winter


#nIntroduction to Cryptography 
#dFor advanced undergraduates and graduate students. Theory and practice of cryptographic techniques used in computer security. Topics: encryption (single and double key), digital signatures, pseudo-random bit generation, authentication, electronic commerce (anonymous cash, micropayments), key management, PKI, zero-knowledge protocols. 
#iDan Boneh 
#t2009,winter


#nIntroduction to Cryptography 
#dFor advanced undergraduates and graduate students. Theory and practice of cryptographic techniques used in computer security. Topics: encryption (single and double key), digital signatures, pseudo-random bit generation, authentication, electronic commerce (anonymous cash, micropayments), key management, PKI, zero-knowledge protocols. 
#iDan Boneh 
#t2008,winter
 

#nIntroduction to Programming Language Theory 
#dSyntactic, operational, and semantic issues in the mathematical analysis of programming languages. Type systems and non-context-free syntax. Universal algebra and algebraic data types. Operational semantics given by rewrite rules,confluence and termination. Denotational semantics and elementary domain theory for languages with higher-type functions and recursion. Treatment of side effects.
#iJohn Mitchell
#t2009,winter


#nFormal Methods for Reactive Systems 
#dFormal methods for specification, verification, and development of concurrent and reactive programs. Reactive systems: syntax and semantics, fairness requirements. Specification language: temporal formulas (state, future, and past) and omega-automata. Hierarchy of program properties: safety, guarantee, obligation, response, persistence, and reactivity. Invariant generation. Deductive verification of programs: verification diagrams and rules, completeness. Modularity. Parameterized programs. Algorithmic verification of finite-state programs (model checking). Prerequisite: 154, 156, 157, or equivalent.
#iZ. Manna
#2009,winter


#nFormal Methods for Reactive Systems Laboratory 
Practical application of the specification and verification methods in 256. Individual projects include implementation of verification methods, verification case studies, or tool evaluation, depending on student preference.
#iZ. Manna
#2009,winter


#nOptimization and Algorithmic Paradigms 
#nAlgorithms for network optimization: max-flow, min-cost flow, matching, assignment, and min-cut problems. Introduction to linear programming. Use of LP duality for design and analysis of algorithms. Approximation algorithms for NP-complete problems such as Steiner Trees, Traveling Salesman, and scheduling problems. Randomized algorithms. Introduction to online algorithms.
#iSerge Plotkin
#t2010,winter 


#nOptimization and Algorithmic Paradigms 
#nAlgorithms for network optimization: max-flow, min-cost flow, matching, assignment, and min-cut problems. Introduction to linear programming. Use of LP duality for design and analysis of algorithms. Approximation algorithms for NP-complete problems such as Steiner Trees, Traveling Salesman, and scheduling problems. Randomized algorithms. Introduction to online algorithms.
#iSerge Plotkin
#t2009,winter 


#nComputational Genomics (BIOMEDIN 262) 
#dApplications of computer science to genomics, and concepts in genomics from a computer science point of view. Topics: dynamic programming, sequence alignments, hidden Markov models, Gibbs sampling, and probabilistic context-free grammars. Applications of these tools to sequence analysis: comparative genomics, DNA sequencing and assembly, genomic annotation of repeats, genes, and regulatory sequences, microarrays and gene expression, phylogeny and molecular evolution, and RNA structure.  
#iSerafim Batzoglou 
#t2010,winter


#nComputational Genomics (BIOMEDIN 262) 
#dApplications of computer science to genomics, and concepts in genomics from a computer science point of view. Topics: dynamic programming, sequence alignments, hidden Markov models, Gibbs sampling, and probabilistic context-free grammars. Applications of these tools to sequence analysis: comparative genomics, DNA sequencing and assembly, genomic annotation of repeats, genes, and regulatory sequences, microarrays and gene expression, phylogeny and molecular evolution, and RNA structure.  
#iSerafim Batzoglou 
#t2009,winter


#nModeling Biomedical Systems: Ontology, Terminology, Problem Solving (BIOMEDIN 210) 
#dMethods for modeling biomedical systems and for making those models explicit in the context of building software systems. Emphasis is on intelligent systems for decision support and Semantic Web applications. Topics: knowledge representation, controlled terminologies, ontologies, reusable problem solvers, and knowledge acquisition. 
#iM. Musen
#t2009,fall


#nEffective Design in Clinical Informatics Systems (BIOMEDIN 211) 
#dMethods of designing and engineering software systems in complex clinical environments. Case studies illustrate factors leading to success or failure of systems. Project assignments involve focused team-based design work. Topics: user and organizational requirements, data and knowledge modeling, component-based system design, system prototyping, and human-systems interaction. 
#iA. Das
#t2010,winter


#nIntroduction to Biomedical Informatics Research Methodology (BIOE 212, BIOMEDIN 212, GENE 212) 
#dHands-on software building. Student teams conceive, design, specify, implement, evaluate, and report on a software project in the domain of biomedicine. Creating written proposals, peer review, providing status reports, and preparing final reports. Guest lectures from professional biomedical informatics systems builders on issues related to the process of project management. Software engineering basics.
#iR. Altman, B. Cheng, T. Klein
#t2009,fall


#nIntroduction to Biomedical Informatics Research Methodology (BIOE 212, BIOMEDIN 212, GENE 212) 
#dHands-on software building. Student teams conceive, design, specify, implement, evaluate, and report on a software project in the domain of biomedicine. Creating written proposals, peer review, providing status reports, and preparing final reports. Guest lectures from professional biomedical informatics systems builders on issues related to the process of project management. Software engineering basics.
#iR. Altman, B. Cheng, T. Klein
#t2008,fall


#nIntroduction to Biomedical Informatics: Principles of Systems Design
#dFocus is on undertaking design and implementation of computational and information systems for life scientists and healthcare providers. Case studies illustrate what design factors lead to success or failure in building systems in complex biomedical environments. Topics: requirements analysis, workflow and organizational factors, functional specification, knowledge modeling, data heterogeneity, component-based architectures, human-computer interaction, and system evaluation. Prerequisite: 210, or consent of instructor.
#iA. Das
#2009,winter


#nA Computational Tour of the Human Genome (BIOMEDIN 273A, DBIO 273A) 
#dIntroduction to Computational Biology through an informatic exploration of the Human Genome. Topics include: Genome Sequencing - technologies, assembly,\n\npersonalized sequencing,Functional landscape - genes, gene regulation, repeats, RNA genes, epigenetics,Genome evolution - comparative genomics,\n\nultraconservation, co-option. Additional topics may include population genetics, personalized genomics, and ancient DNA.Course includes primers on Molecular Biology, the UCSC Genome Browser, and text processing languages, and guest lectures from the forefront of genomic research. 
#iSerafim Batzoglou,Gill Bejerano
#t2009,fall



#nA Computational Tour of the Human Genome (BIOMEDIN 273A, DBIO 273A) 
#dIntroduction to Computational Biology through an informatic exploration of the Human Genome. Topics include: Genome Sequencing - technologies, assembly,\n\npersonalized sequencing,Functional landscape - genes, gene regulation, repeats, RNA genes, epigenetics,Genome evolution - comparative genomics,\n\nultraconservation, co-option. Additional topics may include population genetics, personalized genomics, and ancient DNA.Course includes primers on Molecular Biology, the UCSC Genome Browser, and text processing languages, and guest lectures from the forefront of genomic research. 
#iSerafim Batzoglou,Gill Bejerano
#t2008,fall


#nRepresentations and Algorithms for Computational Molecular Biology (BIOE 214, BIOMEDIN 214, GENE 214) 
#dintroduction to bioinformatics and computational biology, algorithms for alignment of biological sequences and structures, computing with strings, phylogenetic tree construction, hidden Markov models, Gibbs Sampling, basic structural computations on proteins, protein structure prediction, protein threading techniques, homology modeling, molecular dynamics and energy minimization, statistical analysis of 3D biological data, integration of data sources, knowledge representation and controlled terminologies for molecular biology, microarray analysis, machine learning (clustering and classification), and natural language text processing.  
#iRuss Altman 
#t2010,spring


#nTranslational Bioinformatics (BIOMEDIN 217) 
#dAnalytic, storage, and interpretive methods to optimize the transformation of genetic, genomic, and biological data into diagnostics and therapeutics for medicine. Topics: access and utility of publicly available data sources,types of genome-scale measurements in molecular biology and genomic medicine,analysis of microarray data,analysis of polymorphisms, proteomics, and protein interactions,linking genome-scale data to clinical data and phenotypes,and new questions in biomedicine using bioinformatics. Case studies. 
#iAtul Butte 
#t2010,winter


#nRepresentations and Algorithms for Computational Molecular Biology (BIOE 214, BIOMEDIN 214, GENE 214) 
#dintroduction to bioinformatics and computational biology, algorithms for alignment of biological sequences and structures, computing with strings, phylogenetic tree construction, hidden Markov models, Gibbs Sampling, basic structural computations on proteins, protein structure prediction, protein threading techniques, homology modeling, molecular dynamics and energy minimization, statistical analysis of 3D biological data, integration of data sources, knowledge representation and controlled terminologies for molecular biology, microarray analysis, machine learning (clustering and classification), and natural language text processing.  
#iRuss Altman 
#t2009,spring


#nTranslational Bioinformatics (BIOMEDIN 217) 
#dAnalytic, storage, and interpretive methods to optimize the transformation of genetic, genomic, and biological data into diagnostics and therapeutics for medicine. Topics: access and utility of publicly available data sources,types of genome-scale measurements in molecular biology and genomic medicine,analysis of microarray data,analysis of polymorphisms, proteomics, and protein interactions,linking genome-scale data to clinical data and phenotypes,and new questions in biomedicine using bioinformatics. Case studies. 
#iAtul Butte 
#t2009,winter


#nInformation Retrieval and Web Search (LINGUIST 286) 
#dText information retrieval systems,efficient text indexing,Boolean, vector space, and probabilistic retrieval models,ranking and rank aggregation,evaluating IR systems. Text clustering and classification: classification algorithms, latent semantic indexing, taxonomy induction,Web search engines including crawling and indexing, link-based algorithms, and web metadata. 
#iChris Manning,P. Raghavan
#t2009,fall


#nInformation Retrieval and Web Search (LINGUIST 286) 
#dText information retrieval systems,efficient text indexing,Boolean, vector space, and probabilistic retrieval models,ranking and rank aggregation,evaluating IR systems. Text clustering and classification: classification algorithms, latent semantic indexing, taxonomy induction,Web search engines including crawling and indexing, link-based algorithms, and web metadata. 
#iChris Manning,P. Raghavan
#t2008,fall


#nCryptography
#dan introduction to modern cryptography. We will talk about how to rigorously formalize the notion of security in various models, and how to use primitives having weak and plausible security properties (one-way permutations, trapdoor permutations) to build systems satisfying very strong, and sometimes seemingly outlandish, notions of security. The emphasis of the course will be on general principles, but, for concreteness, we shall also look at a number of examples and applications. Topics will include one-way functions, pseudorandomness, block ciphers, symmetric-key encryption, authentication, public-key cryptosystems, signatures, commitment schemes,  zero-knowledge proofs, advanced notions of security, and multi-party cryptographic protocols.
#iLuca Trevisan
#t2009,spring


#nInformation Retrieval and Web Search (LINGUIST 286) 
#dText information retrieval systems,efficient text indexing,Boolean, vector space, and probabilistic retrieval models,ranking and rank aggregation,evaluating IR systems. Text clustering and classification: classification algorithms, latent semantic indexing, taxonomy induction,Web search engines including crawling and indexing, link-based algorithms, and web metadata. 
#iChris Manning, P. Raghavan
#t2009,fall


#nInformation Retrieval and Web Search (LINGUIST 286) 
#dText information retrieval systems,efficient text indexing,Boolean, vector space, and probabilistic retrieval models,ranking and rank aggregation,evaluating IR systems. Text clustering and classification: classification algorithms, latent semantic indexing, taxonomy induction,Web search engines including crawling and indexing, link-based algorithms, and web metadata. 
#iChris Manning, P. Raghavan
#t2008,fall


#nExperimental Haptics 
#dHaptics as it relates to creating touch feedback in simulated or virtualized environments. Goal is to develop virtual reality haptic simulators and applications. Theoretical topics: psychophysical issues, performance and design of haptic interfaces, haptic rendering methods for 3-D virtual environments, and haptic simulation and rendering of rigid and deformable solids. Applied topics: the CHAI haptic library,implementation of haptic rendering algorithms,collision detection in 3-D environments,design of real-time models for deformable objects. Guest speakers. Lab/programming exercises,a more open-ended final project. Enrollment limited to 20.   
#iFederico Barbagli, J. Salisbury
#t2010,winter


#nSystems Biology 
#dComplex biological behaviors through the integration of computational modeling and molecular biology. Topics: reconstructing biological networks from high-throughput data and knowledge bases. Network properties. Computational modeling of network behaviors at the small and large scale. Using model predictions to guide an experimental program. Robustness, noise, and cellular variation. Prerequisites: background in biology and mathematical analysis.
#iM. Covert, David Dill, D. Brutlag, J. Ferrell
#t2008,fall


#nRobotic Cars for Real People
#dIt is a multidisciplinary project course that brings together students interested in robotics (autonomous cars), human robot interfaces, and real-life engineering. The aim is to explore new ways in which robotic technology can make driving safer, more convenient, and more fun. Students will have access to Stanford's fleet of robotic cars, including the car that won $1 million in the 2007 DARPA Urban Challenge.
#Sebastian Thrun
#2009,winter


#nResearch Project in Artificial Intelligence 
#dStudent teams under faculty supervision work on research and implementation of a large project in AI. State-of-the-art methods related to the problem domain. 
#iAndrew Ng 
#t2010,winter


#nResearch Project in Artificial Intelligence 
#dStudent teams under faculty supervision work on research and implementation of a large project in AI. State-of-the-art methods related to the problem domain. 
#iAndrew Ng 
#t2009,winter

#nSocial Software
#dInterface, systems, and algorithms concepts in designing social software including personalized home pages and social networks. Topics include collaborative filtering, user-generated content, search, social networks, actions, blogs, and controlled online experimentation.Team-based project.
#iScott Klemmer, S. Kamvar
#t2008,fall


#nResearch Project in Human-Computer Interaction 
#dMany of the most successful web applications are social, from personalized homepages to social networks. Students will learn the fundamental interface design, systems, and algorithms concepts in designing social software. The case-based syllabus will cover insights from both research and industry. As a student, you will contribute to this burgeoning field through a quarter-long, team-based project. Students are required to enter the class with an initial project idea.
#iJeff Heer, S. Kamvar
#t2010,winter


#nResearch Project in Software Systems and Security 
#dTopics vary. Focus is on emerging research themes such as programmable open mobile Internet that spans multiple system topics such as human-computer interaction, programming systems, operating systems, networking, and security. May be repeated for credit. 
#iMonica Lam 
#t2010,spring


#nResearch Project in Software Systems and Security 
#dTopics vary. Focus is on emerging research themes such as programmable open mobile Internet that spans multiple system topics such as human-computer interaction, programming systems, operating systems, networking, and security. May be repeated for credit. 
#iMonica Lam 
#t2009,spring


#nSoftware Engineering 
#dSoftware specification, testing, and verification. Emphasis is on current best practices and technology for developing reliable software at reasonable cost. Assignments focus on applying these techniques to realistic software systems. 
#iAlex Aiken 
#t2010,spring


#nSoftware Engineering 
#dSoftware specification, testing, and verification. Emphasis is on current best practices and technology for developing reliable software at reasonable cost. Assignments focus on applying these techniques to realistic software systems. 
#iAlex Aiken 
#t2009,spring


#nSeminar on Teaching Introductory Computer Science 
#dFaculty, undergraduates, and graduate students interested in teaching discuss topics raised by teaching computer science at the introductory level. Prerequisite: consent of instructor.
#iMehran Sahami
#t2008,fall


#nDepartmental Lecture Series 
#dPriority given to first-year Computer Science Ph.D. students. CS Masters students admitted if space is available. Presentations by members of the department faculty, each describing informally his or her current research interests and views of computer science as a whole.
#iRajeev Motwani
#t2009,fall


#nDepartmental Lecture Series 
#dPriority given to first-year Computer Science Ph.D. students. CS Masters students admitted if space is available. Presentations by members of the department faculty, each describing informally his or her current research interests and views of computer science as a whole.
#iRajeev Motwani
#t2008,fall


#nDesigning Computer Science Experiments 
#dIntroduction to empirical research in computer science. Learn how to design, execute, interpret, and report on computer science experiments. Conducting empirical work and using experiments to build theory is one of the major ways to move computer science forward, but these issues are often omitted from computer science curricula. Course features case studies drawn from artificial\n\nintelligence, systems, and human-computer interaction. Emphasizes the\n\ndecision-making aspects of research and the logic behind research\n\nprocedures.
#iScott Klemmer,Philip Levis,Chris Manning 
#t2010,spring


#nSoftware as a Service 
#dFor technology and business students. The shift from traditional software model of disconnected development and CD-ROM deployment to engineering and delivery on the Internet as a service. Guest industry experts give first-hand view of changes in the software industry.
#iT. Chou
#t2008,fall


#nParallel Computer Architecture and Programming 
#dThe principles and tradeoffs in the design of parallel architectures. Emphasis is on naming, latency, bandwidth, and synchronization in parallel machines. Case studies on shared memory, message passing, data flow, and data parallel machines illustrate techniques. Architectural studies and lectures on techniques for programming parallel computers. Programming assignments on one or more commercial multiprocessors. 
#iKunle Olukotun 
#t2010,spring


#nParallel Computer Architecture and Programming 
#dThe principles and tradeoffs in the design of parallel architectures. Emphasis is on naming, latency, bandwidth, and synchronization in parallel machines. Case studies on shared memory, message passing, data flow, and data parallel machines illustrate techniques. Architectural studies and lectures on techniques for programming parallel computers. Programming assignments on one or more commercial multiprocessors. 
#iKunle Olukotun 
#t2009,spring


#nMotion Planning 
#dComputing object motions in computer graphics, geometrical computing, robotics, or artificial intelligence for applications such as design, manufacturing, robotics, animated graphics, surgical planning, drug design, assembly planning, graphic animation of human figures, humanoid robots, inspection and surveillance, simulation of crowds, and biology. Path planning methods to generate collision-free paths among static obstacles. Extensions include uncertainty, mobile obstacles, manipulating moveable objects, maneuvering with kinematic constraints, and making and breaking contacts. Configuration space, geometric arrangements, and random sampling. Theoretical methods.
#iJean-Claude Latombe
#t2009,winter


#nInformation Processing for Sensor Networks 
#dDesign and implementation of algorithms and protocols for performing information processing tasks in sensor networks, including routing, data dissemination and aggregation, information discovery and brokerage, service establishment (localization, time synchronization), sensor tasking and control, and distributed data storage. Techniques from signal processing, networking, energy-ware computing, distributed databases and algorithms, and embedded systems and platforms. Physical, networking, and application layers and design trade-offs across the layers. 
#iLeonidas Guibas 
#t2010,winter


#nNetwork Analylsis 
#dThe emergence of the web and large online computing applications can be\n\nseen as a convergence of social and technological networks, with systems\n\nsuch as the World Wide Web, blogging platforms and Facebook that can be\n\ncharacterized by the interplay between rich information content, the\n\nmillions of individuals and organizations who create it, and the\n\ntechnology that supports it. Course will cover recent research on\n\nthe structure and analysis of such large social and information networks\n\nand on models and algorithms that abstract their basic properties.\n\nTopics: probabilistic models for network structure and evolution,\n\nmethods for link analysis and network community detection, search\n\nalgorithms, diffusion and information propagation on the web, virus\n\noutbreak detection in networks, and connections with work in the social\n\nsciences and economics. 
#iJure Leskovec
#t2009,fall


#nUnderstanding Images and Videos: Recognizing and Learning High-Level Visual Concepts 
#dField of computer vision has seen an explosive growth in past decade. Much of recent effort in vision research is towards developing algorithms that can perform high-level visual recogniztion tasks on real-world images and videos. With development of Internet, this task becomes particularly challenging and interesting given the heterogeneous data on the web. Course will focus on reading recent research papers that are focused on solving high-level visual recognition problems, such as object recognition and categorization, scene understanding, human motion understanding, etc. Project required.   
#iFei-Fei Li
#t2009,fall


#nAdvanced Robotics 
#dEmerging areas of human-centered robotics and interactive haptic simulation of virtual environments. Topics: redundancy,task-oriented dynamics and control, whole-body control-task and posture decomposition, cooperative robots, haptics and simulation, haptically augmented teleoperation, human-friendly robot design.
#iOussama Khatib 
#t2010,spring


#nNetworked Systems for Virtual Worlds 
#dOpen to graduate students and advanced undergraduates. Systems and networking aspects of building large, distributed virtual 3D environments, with a focus on scalability, consistency, security, fairness, and federation. Topics include existing architectures, naming, routing, caching, migration, interoperability, and attribution. Open-ended research project. 
#iPhilip Levis
#t2008,fall


#nAdvanced Topics in Compilers 
#dTopics change every year. May be repeated for credit. 
#iDawson Engler 
#t2010,spring


#nAdvanced Topics in Compilers 
#dTopics change every year. May be repeated for credit. 
#iDawson Engler 
#t2009,spring


#nBuild an Internet Router
#dHigh-performance embedded system design. Student teams of two software engineers (C experience required) and one hardward engineer (Verilog experience required) build a fully functioning Internet router Work in team of three. How router interoperates with others in class. Open-ended design challenge judged by panel of industry experts.
#iNick McKeown
#t2009,spring


#nData Mining 
#dAlgorithms for mining large-scale data, including data from the web and data maintained by web-based enterprises. Finding frequent itemsets,finding similar sets using minhashing, locality-sensitive hashing, and index-based methods,finding important web pages by PageRank,link-spam detection,collaborative filtering,stream mining,clustering,optimizing ad selection,virtual databases and extraction of relations from the web.
#iJure Leskovec,A. Rajaraman 
#t2010,winter


#nData Mining 
#dAlgorithms for mining large-scale data, including data from the web and data maintained by web-based enterprises. Finding frequent itemsets,finding similar sets using minhashing, locality-sensitive hashing, and index-based methods,finding important web pages by PageRank,link-spam detection,collaborative filtering,stream mining,clustering,optimizing ad selection,virtual databases and extraction of relations from the web.
#iJeff Ullman, A. Rajaraman 
#t2008,fall


#nDatabase System Implementation 
#dA major database system implementation project realizes the principles and techniques covered in earlier courses. Students independently build a complete database management system, from file structures through query processing, with a personally designed feature or extension. Lectures on project details and advanced techniques in database system implementation, focusing on query processing and optimization. Guest speakers from industry on commercial DBMS implementation techniques. 
#iP. Agrawal,H. Park
#t2010,spring


#nDatabase System Implementation 
#dA major database system implementation project realizes the principles and techniques covered in earlier courses. Students independently build a complete database management system, from file structures through query processing, with a personally designed feature or extension. Lectures on project details and advanced techniques in database system implementation, focusing on query processing and optimization. Guest speakers from industry on commercial DBMS implementation techniques. 
#iJennifer Widom
#t2009,spring


#nTransaction Processing and Distributed Databases 
#dThe principles and system organization of distributed databases. Data fragmentation and distribution, distributed database design, query processing and optimization, distributed concurrency control, reliability and commit protocols, and replicated data management. Distributed algorithms for data management: clocks, deadlock detection, and mutual exclusion. Heterogeneous and federated distributed database systems. Overview of commercial systems and research prototypes.
#iHector Garcia-Molina
#t2010,spring 


#nTransaction Processing and Distributed Databases 
#dThe principles and system organization of distributed databases. Data fragmentation and distribution, distributed database design, query processing and optimization, distributed concurrency control, reliability and commit protocols, and replicated data management. Distributed algorithms for data management: clocks, deadlock detection, and mutual exclusion. Heterogeneous and federated distributed database systems. Overview of commercial systems and research prototypes.
#iHector Garcia-Molina
#t2009,spring 


#nComputer Graphics: Geometric Modeling 
#dThe mathematical tools needed for the geometrical aspects of computer graphics and especially for modeling smooth shapes. Fundamentals: homogeneous coordinates, transformations, and perspective. Theory of parametric and implicit curve and surface models: polar forms, Bezier arcs and de Casteljau subdivision, continuity constraints, B-splines, tensor product, and triangular patch surfaces. Subdivision surfaces and multiresolution representations of geometry. Representations of solids and conversions among them. Surface reconstruction from scattered data points. Geometry processing on meshes, including simplification. 
#iL. Guibas
#t2009,fall


#nComputer Graphics: Image Synthesis Techniques 
#dIntermediate level, emphasizing the sampling, shading, and display aspects of computer graphics. Topics: local and global illumination methods including radiosity and distributed ray tracing, texture generation and rendering, volume rendering, strategies for anti-aliasing and photo-realism, human vision and color science as they relate to computer displays, and high-performance architectures for graphics. Written assignments and programming projects. 
#iPatrick Hanrahan 
#t2010,spring


#nComputer Graphics: Image Synthesis Techniques 
#dIntermediate level, emphasizing the sampling, shading, and display aspects of computer graphics. Topics: local and global illumination methods including radiosity and distributed ray tracing, texture generation and rendering, volume rendering, strategies for anti-aliasing and photo-realism, human vision and color science as they relate to computer displays, and high-performance architectures for graphics. Written assignments and programming projects. 
#iPatrick Hanrahan 
#t2009,spring


#nTopics in Programming Systems: Readings in Distributed Systems 
#dDiscussion of research publications that are of current interest in distributed systems. Students are expected to read all papers, and sign up for presentation of one paper. The course itself is 1 unit. Those interested in working on a project along with the readings should enroll for 3 units.
#iPei Cao,Peter Danzig  
#t2010 winter


#nAdvanced Algorithms 
#dTopics: fundamental techniques used in the development of exact and approximate algorithms for combinational optimization problems such as generalized flow, multicommodity flow, sparsest cuts, generalized Steiner trees, load balancing, and scheduling. Using linear programming, emphasis is on LP duality for design and analysis of approximation algorithms,interior point methods for LP. Techniques for development of strongly polynomial algorithms.
#iSerge Plotkin 
#t2010,spring


#nAlgorithmic Game Theory 
#dTopics at the interface of theoretical computer science and game theory such as: algorithmic mechanism design; combinatorial and competitive auctions; congestion and potential games; cost sharing; existence, computation, and learning of equilibria; game theory and the Internet; network games; price of anarchy; and selfish routing.
#iTim Roughgarden
#t2008,fall


#nRandomized Algorithms 
#dDesign and analysis of algorithms that use randomness to guide their computations. Basic tools, from probability theory and probabilistic analysis, that are recurrent in algorithmic applications. Randomized complexity theory and game-theoretic techniques. Algebraic techniques. Probability amplification and derandomization. Applications: sorting and searching, data structures, combinatorial optimization and graph algorithms, geometric algorithms and linear programming, approximation and counting problems, parallel and distributed algorithms, online algorithms, number-theoretic algorithms. 
#iRajeev Motwani
#2009,fall


#nRandomized Algorithms 
#dDesign and analysis of algorithms that use randomness to guide their computations. Basic tools, from probability theory and probabilistic analysis, that are recurrent in algorithmic applications. Randomized complexity theory and game-theoretic techniques. Algebraic techniques. Probability amplification and derandomization. Applications: sorting and searching, data structures, combinatorial optimization and graph algorithms, geometric algorithms and linear programming, approximation and counting problems, parallel and distributed algorithms, online algorithms, number-theoretic algorithms. 
#iRajeev Motwani
#2008,fall


#nTopics in Analysis of Algorithms 
#dAdvanced material is often taught for the first time as a topics course, perhaps by a faculty member visiting from another institution. May be repeated for credit.
#iS. Plotkin
#t2009,spring


#nAlgorithms for Modern Massive Data Set Analysis 
#dAlgorithmic and statistical methods for large-scale data analysis: matrix and graph algorithms,strengths and weaknesses of theoretical techniques for practical scientific and Internet data analysis,overlap with related problems in statistics, optimization, numerical analysis, and machine learning. Representative topics: matrix problems (numerical and statistical perpectives,algorithmic approaches, including Johnson-Lindenstrauss lemma and randomized projection and sampling algorithms,novel matrix factorizations),graph problems (graph partitioning algorithms, including spectral methods, flow-based methods, and recent geometric methods,local graph algorithms and approximate eigenvector computation),and applications to machine learning and statistical data analysis (motivating applications,algorithmic basis of the RKHS method,geometric data analysis, regularization, and statistical inference,boosting and its relationships to conjugate gradient methods, duality, convexity, online learning, and approximation algorithms). Implementing these ideas in medium and large-scale applications.
#iMahoney M
#t2009,fall


#nNovel Paradigms for Algorithmic Analysis 
Advanced material is often taught for the first time as a topics course, perhaps by a faculty member visiting from another institution. May be repeated for credit.
#iTim Roughgarden
#t2009,fall


#nAlgorithms in Biology  
#dAlgorithms and computational models applied to molecular biology and genetics. Topics vary annually. Possible topics include biological sequence comparison, annotation of genes and other functional elements, molecular evolution, genome rearrangements, microarrays and gene regulation, protein folding and classification, molecular docking, RNA secondary structure, DNA computing, and self-assembly. May be repeated for credit. 
#iSerafim Batzoglou 
#t2010,spring


#nAlgorithms in Biology  
#dAlgorithms and computational models applied to molecular biology and genetics. Topics vary annually. Possible topics include biological sequence comparison, annotation of genes and other functional elements, molecular evolution, genome rearrangements, microarrays and gene regulation, protein folding and classification, molecular docking, RNA secondary structure, DNA computing, and self-assembly. May be repeated for credit. 
#iSerafim Batzoglou 
#t2009,spring


#nResearch Topics in Human-Computer Interaction 
#dInteractive systems, research areas in interaction techniques, and the design, prototyping, and evaluation of user interfaces. Topics: computer-supported cooperative work,audio, speech, and multimodal interfaces,user interface toolkits,design and evaluation methods,ubiquitous and context-aware computing,tangible interfaces, haptic interaction,and mobile interfaces.
#iScott Klemmer 
#t2010,spring


#nLearning in a Networked World (EDUC 298) 
#dFoundations, theories and empirical studies for interdisciplinary advances in how we conceive of the potentials and challenges associated with lifelong, lifewide and life-deep learning in a networked world given the growth of always-on cyberinfrastructure for supporting information and social networks across space and time with personal computers, netbooks, and mobiles.
#iR. Pea 
#t2010,spring


#nPhenomenological Foundations of Cognition, Language, and Computation 
#dCritical analysis of theoretical foundations of the cognitive approach to language, thought, and computation. Contrasts of the rationalistic assumptions of current linguistics and artificial intelligence with alternatives from phenomenology, theoretical biology, critical literary theory, and socially-oriented speech act theory. Emphasis is on the relevance of theoretical orientation to the design, implementation, and impact of computer systems as it affects human-computer interaction.
#iT. Winograd
#t2009,fall 


#nDesigning Liberation Technology (POLISCI 337T) 
#dSmall project teams work with NGOs to design new technologies for promoting development and democracy. Students conduct observations to identify needs, generate concepts, create prototypes, and test their appropriateness. Some projects may continue past the quarter towards full-scale implementation. Taught through the Hasso Plattner Institute of Design at Stanford\n\n(http://dschool.stanford.edu). Enrollment limited.
#iJ. Cohen,Terry Winograd 
#t2010,spring


#nInterdisciplinary Design for Agile Aging
#dOffered by the d.school. Perspectives from computer science, design, social and behavioral sciences, physiology, geriatrics, and biodesign to develop projects that address the potential of people to maintain vitality and mobility as they age. New ways to integrate computer and device technologies with behavioral and social interventions. Focus is on small-group projects based on real-world need finding.
#iC. Winograd, Terry Winograd, A. Friedlander, P. Yock
#t2009,winter


#nSoftware Design Experiences 
#dSmall teams develop technology prototypes combining product and interaction design. Focus is on software and hardware interfaces, interaction, design aesthetics, and underpinnings of successful design including a reflective, interactive design process, group dynamics of interdisciplinary teamwork, and working with users.
#iTerry Winograd
#2009,spring


#nBeyond Bits and Atoms: Designing Technologies for Thinking and Learning (EDUC 236X) 
#dPracticum in designing and building technology-enabled curricula and learning environments. Students use software toolkits and state-of-the-art fabrication machines to design educational software, educational toolkits, and tangible user interfaces. How to design low-cost technologies, particularly for urban school in the US and abroad. The constructionist learning design perspective, critical pedagogy, and the application of complexity sciences in education.
#iPaulo Blikstein 
#t2010,spring


#nBeyond Bits and Atoms: Technological Tools for Thinking and Learning - Lab (EDUC 211X) 
#dThis course is a hands-on lab in the prototyping and fabrication of tangible technologies, with a special focus in learning and education. We will learn how to use state-of-the-art fabrication machines (3D printers, 3D scanners, laser cutters, routers) to design educational toolkits, educational toys, science kits, and tangible user interfaces. A special focus of the course will be to design low-cost technologies, particularly for urban school in the US and abroad.
#iPaulo Blikstein 
#t2009,fall


#nComputational Photography 
#dSensing strategies and algorithmic techniques that extend traditional digital photography. Topics: high dynamic range imaging, flash-noflash, coded aperture, coded exposure, multi-perspective, panoramic stitching, digital photomontage, all-focus, and light field imaging. Lectures, readings, and project. 
#iMarc Levoy 
#t2010,winter


#nTopics in Computer Graphics: Data Visualization 
#dTechniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, perceptual psychology, and cognitive science. Topics: graphical perception, data and image models, visual encoding, graph and tree layout, color, animation, interaction techniques, automated design. Lectures, reading, and project. 
#iJeff Heer
#t2009,fall


#nTopics in Computer Graphics: Data Visualization 
#dTechniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, perceptual psychology, and cognitive science. Topics: graphical perception, data and image models, visual encoding, graph and tree layout, color, animation, interaction techniques, automated design. Lectures, reading, and project. 
#iJeff Heer
#t2008,fall


#nTopics in Computer Graphics: Character Animation 
#dThis course will explore computational techniques for animating computer-generated characters in games, virtual worlds, movies, and other applications. The first part of the course will cover basic techniques. The second part will be devoted to reading, analyzing, and discussing recent research in character animation, with an eye towards open problems.
#iVladlen Koltun
#t2009,spring


#nResearch Topics in Computer Graphics 
#dSelected topics in current computer graphics research. Analysis of research publications, class discussions, quarter-long research project. Topics change each offering. Sample topics: procedural modeling, character animation, multimodal interfaces, perception and cognition. May be repeated for credit. 
#iVladlen Koltun 
#t2010,spring
 

#nImage Processing for Photography and Vision 
#dImage processing with a focus on implementation of new techniques from the literature. Topics: sampling and reconstruction, linear and non-linear filters, features and alignment, compositing, gradient-domain techniques, and recent techniques from conferences such as SIGGRAPH and Eurographics.
#iA. Adams
#t2009,fall


#nTopics in Geometric Algorithms: Computational Topology 
#dFocus on the connectivity of spaces (and ignoring, for example, metric information) one arrives at the study of topology. Concentrating mostly on the invariants arising from algebraic topology, course presents techniques for designing efficient algorithms to compute them. Alongside the algorithms, course\n\npresents the necessary background tools, both in topology and computer science, for their analysis. Topics: graphs, surfaces, simplicial complexes, (co)homology, topological data analysis, Morse functions.
#iD. Morozov
#t2009,fall



#nThe Future of the Automobile 
#dThe concept of this course is to present, discuss, and envision the future of the automobile in terms of sustainability, safety, performance, and enjoyment. Invited speakers from academia and industry share their own visions, explain challenges, and present solutions regarding individual transportation. After each session the students research specific questions related to the lectures and present their findings in the following week. This course is offered by Stanford's Automotive Program with faculty involvement from mechanical engineering, computer science, and communications.
#iS. Beiker, J. Gerdes, Sebastian Thrun 
#t2010,winter


#nThe Future of the Automobile 
#dThe concept of this course is to present, discuss, and envision the future of the automobile in terms of sustainability, safety, performance, and enjoyment. Invited speakers from academia and industry share their own visions, explain challenges, and present solutions regarding individual transportation. After each session the students research specific questions related to the lectures and present their findings in the following week. This course is offered by Stanford's Automotive Program with faculty involvement from mechanical engineering, computer science, and communications.
#iS. Beiker 
#t2010,spring
 

#nDatabase and Information Management Seminar 
#dCurrent research and industrial innovation in database and information systems.
#iJennifer Widom 
#t2010,winter


#nDatabase and Information Management Seminar 
#dCurrent research and industrial innovation in database and information systems.
#iJennifer Widom 
#t2009,winter


#nSeminar on Liberation Technologies (POLISCI 337S) 
#dThis one-unit seminar will present speakers relevant in a variety of\n\nways to how various forms of information technology are being used to\n\ndefend human rights, improve governance, deepen democracy, empower the\n\npoor, promote economic development, protect the environment, enhance\n\npublic health, and pursue a variety of other social goods.
#iJ. Cohen, L. Diamond, Terry Winograd 
#t2010,winter


#nHuman-Computer Interaction Seminar 
#dWeekly speakers. May be repeated for credit.
#iTerry Winograd 
#t2010,winter


#nHuman-Computer Interaction Seminar 
#dWeekly speakers. May be repeated for credit.
#iTerry Winograd 
#t2010,spring


#nHuman-Computer Interaction Seminar 
#dWeekly speakers. May be repeated for credit.
#iTerry Winograd 
#t2009,winter


#nHuman-Computer Interaction Seminar 
#dWeekly speakers. May be repeated for credit.
#iTerry Winograd 
#t2008,fall


#nHuman-Computer Interaction Seminar 
#dWeekly speakers. May be repeated for credit.
#iTerry Winograd 
#t2009,spring


#nSurgical Robotics Seminar 
#dSurgical robots developed and implemented clinically on varying scales. Seminar goal is to expose students from engineering, medicine, and business to guest lecturers from academia and industry.engineering and clinical aspects connected to design and use of surgical robots, varying in degree of complexity and procedural role.
#iF. Barbagli
#t2009,fall


#nSurgical Robotics Seminar 
#dSurgical robots developed and implemented clinically on varying scales. Seminar goal is to expose students from engineering, medicine, and business to guest lecturers from academia and industry.engineering and clinical aspects connected to design and use of surgical robots, varying in degree of complexity and procedural role.
#iF. Barbagli
#t2009,winter

