CS100A
|
Problem-solving Lab for CS106A
|
Additional problem solving practice for the introductory CS course CS 106A. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Limited enr...
|
CS100B
|
Problem-solving Lab for CS106B
|
Additional problem solving practice for the introductory CS course CS106B. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Limited enro...
|
CS101
|
Introduction to Computing Principles
|
Introduces the essential ideas of computing: data representation, algorithms, programming "code", computer hardware, networking, security, and social issues. Students learn how computers work and what they can do through hands-on exercises. In partic...
|
CS103
|
Mathematical Foundations of Computing
|
What are the theoretical limits of computing power? What problems can be solved with computers? Which ones cannot? And how can we reason about the answers to these questions with mathematical certainty? This course explores the answers to these quest...
|
CS103A
|
Mathematical Problem-solving Strategies
|
Problem solving strategies and techniques in discrete mathematics and computer science. Additional problem solving practice for CS103. In-class participation required. Prerequisite: consent of instructor. Co-requisite: CS103.
|
CS105
|
Introduction to Computers
|
For non-technical majors. What computers are and how they work. Practical experience in development of websites and an introduction to programming. A survey of Internet technology and the basics of computer hardware. Students in technical fields and...
|
CS106A
|
Programming Methodology
|
Introduction to the engineering of computer applications emphasizing modern software engineering principles: program design, decomposition, encapsulation, abstraction, and testing. Emphasis is on good programming style and the built-in facilities of...
|
CS106AX
|
Programming Methodologies in JavaScript and Python (Accelerated)
|
Introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. This course targets an audience with prior programming experi...
|
CS106B
|
Programming Abstractions
|
Abstraction and its relation to programming. Software engineering principles of data abstraction and modularity. Object-oriented programming, fundamental data structures (such as stacks, queues, sets) and data-directed design. Recursion and recursive...
|
CS106E
|
Exploration of Computing
|
This course, designed for the non-computer scientist, will provide students with a solid foundation in the concepts and terminology behind computers, the Internet, and software development. It will give you better understanding and insight when worki...
|
CS106L
|
Standard C++ Programming Laboratory
|
This class explores features of the C++ programming language beyond what's covered in CS106B. Topics include core C++ language features (e.g. const-correctness, operator overloading, templates, move semantics, and lambda expressions) and standard lib...
|
CS106M
|
Enrichment Adventures in Programming Abstractions
|
This enrichment add-on is a companion course to CS106B to explore additional topics and go into further depth. Specific topics to be announced per-quarter; past topics have included search engines, pattern recognition, data compression/encryption, er...
|
CS106S
|
Coding for Social Good
|
Survey course on applications of fundamental computer science concepts from CS 106B to problems in the social good space (such as health, trust & safety, government, security, education, and environment). Each week consists of in-class activities des...
|
CS106X
|
Programming Abstractions (Accelerated)
|
Intensive version of 106B for students with a strong programming background interested in a rigorous treatment of the topics at an accelerated pace. Significant amount of additional advanced material and substantially more challenging projects. Some...
|
CS107
|
Computer Organization and Systems
|
Introduction to the fundamental concepts of computer systems. Explores how computer systems execute programs and manipulate data, working from the C programming language down to the microprocessor. Topics covered include: the C programming language,...
|
CS107A
|
Problem-solving Lab for CS107
|
Additional problem solving practice for the introductory CS course CS107. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Limited enrol...
|
CS107E
|
Computer Systems from the Ground Up
|
Introduction to the fundamental concepts of computer systems through bare metal programming on the Raspberry Pi. Explores how five concepts come together in computer systems: hardware, architecture, assembly code, the C language, and software develop...
|
CS108
|
Object-Oriented Systems Design
|
Software design and construction in the context of large OOP libraries. Taught in Java. Topics: OOP design, design patterns, testing, graphical user interface (GUI) OOP libraries, software engineering strategies, approaches to programming in teams. P...
|
CS109
|
Introduction to Probability for Computer Scientists
|
Topics include: counting and combinatorics, random variables, conditional probability, independence, distributions, expectation, point estimation, and limit theorems. Applications of probability in computer science including machine learning and the...
|
CS109A
|
Problem-solving Lab for CS109
|
Additional problem solving practice for the introductory CS course CS109. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Enrollment li...
|
CS110
|
Principles of Computer Systems
|
Principles and practice of engineering of computer software and hardware systems. Topics include: techniques for controlling complexity; strong modularity using client-server design, virtual memory, and threads; networks; atomicity and coordination o...
|
CS110A
|
Problem Solving Lab for CS110
|
Additional design and implementation problems to complement the material taught in CS110. In-class participation is required. Prerequisite: consent of instructor. Corequisite: CS110.
|
CS110L
|
Safety in Systems Programming
|
Supplemental lab to CS 110. Explores how program analysis tools can find common bugs in programs and demonstrates how we can use the Rust programming language to build robust systems software. Course is project-based and will examine additional topic...
|
CS111
|
Operating Systems Principles
|
Explores operating system concepts including concurrency, synchronization, scheduling, processes, virtual memory, I/O, file systems, and protection. Available as a substitute for CS110 that fulfills any requirement satisfied by CS110. Prerequisite: C...
|
CS111A
|
Problem Solving Lab for CS111
|
Additional design and implementation problems to complement the material taught in CS111. In-class participation is required. Prerequisite: consent of instructor. Corequisite: CS111
|
CS112
|
Operating systems kernel implementation project
|
Students will learn the details of how operating systems work throughfour implementation projects in the Pintos operating system. Theprojects center around threads, processes, virtual memory, and filesystems. This class should not be taken by stude...
|
CS114
|
Selected Reading of Computer Science Research
|
Detailed reading of 5-10 research publications in computer science. For undergraduates, the course is an introduction to advanced foundational concepts within a field as well as an in-depth look at detailed research. For graduate students, the course...
|
CS11SI
|
How to Make VR: Introduction to Virtual Reality Design and Development
|
In this hands-on, experiential course, students will design and develop virtual reality applications. You'll learn how to use the Unity game engine, the most popular platform for creating immersive applications. The class will teach the design best p...
|
CS124
|
From Languages to Information
|
Extracting meaning, information, and structure from human language text, speech, web pages, social networks. Introducing methods (regex, edit distance, naive Bayes, logistic regression, neural embeddings, inverted indices, collaborative filtering, P...
|
CS129
|
Applied Machine Learning
|
(Previously numbered CS 229A.) You will learn to implement and apply machine learning algorithms. This course emphasizes practical skills, and focuses on giving you skills to make these algorithms work. You will learn about commonly used learning tec...
|
CS12SI
|
Introduction to Mobile Augmented Reality Design and Development
|
Over the course of 9 weeks, we'll be covering major components of mobile AR development with Unity and AR Foundations to dig deep into concepts such as Plane Detection, Object Placement, Image and Face Tracking, Graphics, and a lot more! The class wi...
|
CS131
|
Computer Vision: Foundations and Applications
|
Computer Vision technologies are transforming automotive, healthcare, manufacturing, agriculture and many other sections. Today, household robots can navigate spaces and perform duties, search engines can index billions of images and videos, algorith...
|
CS139
|
Human-Centered AI
|
Artificial Intelligence technology can and must be guided by human concerns. The course examines how mental models and user models of AI systems are formed, and how that leads to user expectations. This informs a set of design guidelines for building...
|
CS13SI
|
Introduction to Version Control with Git
|
Introduction to version control systems and how they can be used to explore the history of changes in a software project, encourage best practices in the software development process, and aid in collaboration within software engineering teams. Studen...
|
CS140
|
Operating Systems and Systems Programming
|
Covers key concepts in computer systems through the lens of operatingsystem design and implementation. Topics include threads, scheduling,processes, virtual memory, synchronization, multi-core architectures,memory consistency, hardware atomics, memo...
|
CS140E
|
Operating systems design and implementation
|
Students will implement a simple, clean operating system (virtual memory, processes, file system) in the C programming language, on a rasberry pi computer and use the result to run a variety of devices and implement a final project. All hardware i...
|
CS142
|
Web Applications
|
Concepts and techniques used in constructing interactive web applications. Browser-side web facilities such as HTML, cascading stylesheets, the document object model, and JavaScript frameworks and Server-side technologies such as server-side JavaScri...
|
CS143
|
Compilers
|
Principles and practices for design and implementation of compilers and interpreters. Topics: lexical analysis; parsing theory; symbol tables; type systems; scope; semantic analysis; intermediate representations; runtime environments; code generation...
|
CS144
|
Introduction to Computer Networking
|
Principles and practice. Structure and components of computer networks, with focus on the Internet. Packet switching, layering, and routing. Transport and TCP: reliable delivery over an unreliable network, flow control, congestion control. Network na...
|
CS145
|
Data Management and Data Systems
|
Introduction to the use, design, and implementation of database and data-intensive systems, including data models; schema design; data storage; query processing, query optimization, and cost estimation; concurrency control, transactions, and failure...
|
CS146
|
Introduction to Game Design and Development
|
This project-based course provides a survey on designing and engineering video games. Through creating their own games each week, students explore topics including 2D/3D Art, Audio, User Interface design, Production, Narrative Design, Marketing, and...
|
CS147
|
Introduction to Human-Computer Interaction Design
|
Introduces fundamental methods and principles for designing, implementing, and evaluating user interfaces. Topics: user-centered design, rapid prototyping, experimentation, direct manipulation, cognitive principles, visual design, social software, so...
|
CS148
|
Introduction to Computer Graphics and Imaging
|
This is the introductory, prerequisite course in the computer graphics sequence that introduces students to the technical concepts behind creating computer generated images. Through this course, students will gain a firm working knowledge of the unde...
|
CS149
|
Parallel Computing
|
This course is an introduction to parallelism and parallel programming. Most new computer architectures are parallel; programming these machines requires knowledge of the basic issues of and techniques for writing parallel software. Topics: varieties...
|
CS151
|
Logic Programming
|
Logic Programming is a style of programming based on symbolic logic. In writing a logic program, the programmer describes the application area of the program (as a set of logical sentences) without reference to the internal data structures or operati...
|
CS152
|
Trust and Safety Engineering
|
An introduction to the ways consumer internet services are abused to cause real human harm and the potential operational, product and engineering responses. Students will learn about spam, fraud, account takeovers, the use of social media by terroris...
|
CS153
|
Applied Security at Scale
|
This course is designed to help students understand the unique challenges of solving security problems at scale, and is taught by senior technology leaders from companies tackling hardware and software security for hundreds of millions of people. The...
|
CS154
|
Introduction to the Theory of Computation
|
This course provides a mathematical introduction to the following questions: What is computation? Given a computational model, what problems can we hope to solve in principle with this model? Besides those solvable in principle, what problems can we...
|
CS155
|
Computer and Network Security
|
For juniors, seniors, and first-year graduate students. Principles of computer systems security. Attack techniques and how to defend against them. Topics include: network attacks and defenses, operating system security, application security (web, app...
|
CS157
|
Computational Logic
|
Rigorous introduction to Symbolic Logic from a computational perspective. Encoding information in the form of logical sentences. Reasoning with information in this form. Overview of logic technology and its applications - in mathematics, science, e...
|
CS161
|
Design and Analysis of Algorithms
|
Worst and average case analysis. Recurrences and asymptotics. Efficient algorithms for sorting, searching, and selection. Data structures: binary search trees, heaps, hash tables. Algorithm design techniques: divide-and-conquer, dynamic programming,...
|
CS161A
|
Problem-Solving Lab for CS161
|
Additional problem solving practice for CS161. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Concurrent enrollment in CS 161 required...
|
CS163
|
The Practice of Theory Research
|
(Previously numbered CS 353). Introduction to research in the Theory of Computing, with an emphasis on research methods (the practice of research), rather than on any particular body of knowledge. The students will participate in a highly structured...
|
CS166
|
Data Structures
|
This course is a deep dive into the design, analysis, implementation,and theory of data structures. Over the course of the quarter, we'llexplore fundamental techniques in data structure design (isometries,amortization, randomization, etc.) and explor...
|
CS168
|
The Modern Algorithmic Toolbox
|
This course will provide a rigorous and hands-on introduction to the central ideas and algorithms that constitute the core of the modern algorithms toolkit. Emphasis will be on understanding the high-level theoretical intuitions and principles underl...
|
CS170
|
Stanford Laptop Orchestra: Composition, Coding, and Performance
|
Classroom instantiation of the Stanford Laptop Orchestra (SLOrk) which includes public performances. An ensemble of more than 20 humans, laptops, controllers, and special speaker arrays designed to provide each computer-mediated instrument with its s...
|
CS173A
|
A Computational Tour of the Human Genome
|
(Only one of 173 or 273A counts toward any CS degree program.) Introduction to computational biology through an informatic exploration of the human genome. Topics include: genome sequencing; functional landscape of the human genome (genes, gene regul...
|
CS177
|
Human Centered Product Management
|
Ask any product person what the most important skills are for PMs and they'll say interpersonal dynamics-- negotiation, communication, conflict resolution, interviewing and more. This class will look at the role of product management through a human-...
|
CS181
|
Computers, Ethics, and Public Policy
|
Ethical and social issues related to the development and use of computer technology. Ethical theory, and social, political, and legal considerations. Scenarios in problem areas: privacy, reliability and risks of complex systems, and responsibility of...
|
CS181W
|
Computers, Ethics, and Public Policy (WIM)
|
Writing-intensive version of CS181. Satisfies the WIM requirement for Computer Science, Engineering Physics, STS, and Math/Comp Sci undergraduates. To take this course, students need permission of instructor and may need to complete an assignment due...
|
CS182
|
Ethics, Public Policy, and Technological Change
|
Examination of recent developments in computing technology and platforms through the lenses of philosophy, public policy, social science, and engineering. Course is organized around five main units: algorithmic decision-making and bias; data privacy...
|
CS182W
|
Ethics, Public Policy, and Technological Change (WIM)
|
Writing-intensive version of CS182. Satisfies the WIM requirement for Computer Science, Engineering Physics, STS, Math/Comp Sci, and Data Science undergraduates (and is only open to those majors). Prerequisite: CS106A. See CS182 for lecture day/time...
|
CS183E
|
Effective Leadership in High-Tech
|
You will undoubtedly leave Stanford with the technical skills to excel in your first few jobs. But non-technical skills are just as critical to making a difference. This seminar is taught by two industry veterans in engineering leadership and product...
|
CS184
|
Bridging Policy and Tech Through Design
|
This project-based course aims to bring together students from computer science and the social sciences to work with external partner organizations at the nexus of digital technology and public policy. Students will collaborate in interdisciplinary t...
|
CS187
|
Design for Advocacy
|
The COVID pandemic has both revealed many of our underlying civilization problems and unleashed a desire for radical change. Effective responses will require people who know how to collaborate creatively and confidently, and act in systems with self-...
|
CS190
|
Software Design Studio
|
This course teaches the art of software design: how to decompose large complex systems into classes that can be implemented and maintained easily. Topics include the causes of complexity, modular design, techniques for creating deep classes, minimizi...
|
CS191
|
Senior Project
|
Restricted to Computer Science students. Group or individual research projects under faculty direction. Register using instructor's section number. A project can be either a significant software application or publishable research. Software applicati...
|
CS191W
|
Writing Intensive Senior Research Project
|
Restricted to Computer Science students. Writing-intensive version of CS191. Register using instructor's section number. Prerequisite: Completion of at least 135 units and consent of instructor. Project proposal form is required before the beginning...
|
CS192
|
Programming Service Project
|
Restricted to Computer Science students. Appropriate academic credit (without financial support) is given for volunteer computer programming work of public benefit and educational value. Register using the section number associated with the instructo...
|
CS193A
|
Android Programming
|
Introduction to building applications for Android platform. Examines key concepts of Android programming: tool chain, application life-cycle, views, controls, intents, designing mobile UIs, networking, threading, and more. Features weekly lectures an...
|
CS193C
|
Client-Side Internet Technologies
|
Client-side technologies used to create web sites such as Google maps or Gmail. Includes HTML5, CSS, JavaScript, the Document Object Model (DOM), and Ajax. Prerequisite: programming experience at the level of CS106A.
|
CS193P
|
iOS Application Development
|
Build mobile applications using tools and APIs in iOS. Developing applications for the iPhone and iPad requires integration of numerous concepts including functional programming, object-oriented programming, computer-human interfaces, graphics, anima...
|
CS193Q
|
Introduction to Python Programming
|
CS193Q teaches basic Python programming with a similar end-condition to CS106AP: strings, lists, numbers, dicts, loops, logic, functions, testings, decomposition and style, and modules. CS193Q assumes knowledge of some programming language, and proce...
|
CS193U
|
Video Game Development in C++ and Unreal Engine
|
Hands-on game development in C++ using Unreal Engine 4, the game engine that triple-A games like Fortnite, PUBG, and Gears of War are all built on. Students will be introduced to the Unreal editor, game frameworks, physics, AI, multiplayer and networ...
|
CS193X
|
Web Programming Fundamentals
|
Introduction to full-stack web development with an emphasis on fundamentals. Client-side topics include layout and rendering through HTML and CSS, event-driven programming through JavaScript, and single-threaded asynchronous programming techniques in...
|
CS194
|
Software Project
|
Design, specification, coding, and testing of a significant team programming project under faculty supervision. Documentation includes capture of project rationale, design and discussion of key performance indicators, a weekly progress log and a soft...
|
CS194A
|
Android Programming Workshop
|
Learn basic, foundational techniques for developing Android mobile applications and apply those toward building a single or multi page, networked Android application.
|
CS194H
|
User Interface Design Project
|
Advanced methods for designing, prototyping, and evaluating user interfaces to computing applications. Novel interface technology, advanced interface design methods, and prototyping tools. Substantial, quarter-long course project that will be present...
|
CS194W
|
Software Project (WIM)
|
Restricted to Computer Science and Electrical Engineering undergraduates. Writing-intensive version of CS194. Preference given to seniors. Prerequisites: CS109 and CS161.
|
CS195
|
Supervised Undergraduate Research
|
Directed research under faculty supervision. Register using instructor's section number. Students are required to submit a written report and give a public presentation on their work. Prerequisite: consent of instructor.
|
CS196
|
Computer Consulting
|
Focus is on Macintosh and Windows operating system maintenance, and troubleshooting through hardware and software foundation and concepts. Topics include operating systems, networking, security, troubleshooting methodology with emphasis on Stanford's...
|
CS197
|
Computer Science Research
|
An onramp for students interested in breaking new ground in the frontiers of computer science. Course format features faculty lectures introducing the fundamentals of computer science research, alongside special interest group meetings that provide m...
|
CS197C
|
Computer Science Research: CURIS Internship Onramp
|
A version of CS 197 designed specifically for students who will be participating in spring/summer CURIS internships OR have an ongoing research project with a (Ph.D. student or professor) mentor in the Stanford Computer Science department. An onramp...
|
CS198
|
Teaching Computer Science
|
Students lead a discussion section of 106A while learning how to teach a programming language at the introductory level. Focus is on teaching skills, techniques, and course specifics. Application and interview required; see http://cs198.stanford.edu.
|
CS198B
|
Additional Topics in Teaching Computer Science
|
Students build on the teaching skills developed in CS198. Focus is on techniques used to teach topics covered in CS106B. Prerequisite: successful completion of CS198.
|
CS199
|
Independent Work
|
Special study under faculty direction, usually leading to a written report. Register using instructor's section number. Letter grade; if not appropriate, enroll in CS199P. Prerequisite: consent of instructor.
|
CS199P
|
Independent Work
|
Special study under faculty direction, usually leading to a written report. Register using instructor's section number. CR/NC only, if not appropriate, enroll in CS199. Prerequisite: consent of instructor.
|
CS1C
|
Introduction to Computing at Stanford
|
For those who want to learn more about Stanford's computing environment. Topics include: computer maintenance and security, computing resources, Internet privacy, and copyright law. One-hour lecture/demonstration in dormitory clusters prepared and ad...
|
CS1U
|
Practical Unix
|
A practical introduction to using the Unix operating system with a focus on Linux command line skills. Class will consist of video tutorials and weekly hands-on lab sections. Topics include: grep and regular expressions, ZSH, Vim and Emacs, basic and...
|
CS202
|
Law for Computer Science Professionals
|
Businesses are built on ideas. Today's successful companies are those that most effectively generate, protect, and exploit new and valuable business ideas. Over the past 40 years, intellectual capital has emerged as the leading assets class. Ocean T...
|
CS204
|
Computational Law
|
Computational Law is an innovative approach to legal informatics concerned with the representation of regulations in computable form. From a practical perspective, Computational Law is important as the basis for computer systems capable of performin...
|
CS205L
|
Continuous Mathematical Methods with an Emphasis on Machine Learning
|
A survey of numerical approaches to the continuous mathematics used throughout computer science with an emphasis on machine and deep learning. Although motivated from the standpoint of machine learning, the course will focus on the underlying mathema...
|
CS206
|
Exploring Computational Journalism
|
This project-based course will explore the field of computational journalism, including the use of Data Science, Info Visualization, AI, and emerging technologies to help journalists discover and tell stories, understand their audience, advance free...
|
CS207
|
Antidiscrimination Law and Algorithmic Bias
|
Human decision making is increasingly being displaced by algorithms. Judges sentence defendants based on "risk scores;" regulators take enforcement actions based on predicted violations; advertisers target materials based on demographic attributes; a...
|
CS208E
|
Great Ideas in Computer Science
|
Great Ideas in Computer Science Covers the intellectual tradition of computer science emphasizing ideas that reflect the most important milestones in the history of the discipline. Topics include programming and problem solving; implementing computat...
|
CS209
|
Law, Order, & Algorithms
|
Human decision making is increasingly being displaced by predictive algorithms. Judges sentence defendants based on statistical risk scores; regulators take enforcement actions based on predicted violations; advertisers target materials based on demo...
|
CS210A
|
Software Project Experience with Corporate Partners
|
Two-quarter project course. Focus is on real-world software development. Corporate partners seed projects with loosely defined challenges from their R&D labs; students innovate to build their own compelling software solutions. Student teams are treat...
|
CS210B
|
Software Project Experience with Corporate Partners
|
Continuation of CS210A. Focus is on real-world software development. Corporate partners seed projects with loosely defined challenges from their R&D labs; students innovate to build their own compelling software solutions. Student teams are treated a...
|
CS212
|
Operating Systems and Systems Programming
|
Covers key concepts in computer systems through the lens of operatingsystem design and implementation. Topics include threads, scheduling,processes, virtual memory, synchronization, multi-core architectures,memory consistency, hardware atomics, memo...
|
CS213
|
Creating Great VR: From Ideation to Monetization
|
Covering everything from VR fundamentals to futurecasting to launch management, this course will expose you to best practices and guidance from VR leaders that helps positions you to build great VR experiences.
|
CS214
|
Selected Reading of Computer Science Research
|
Detailed reading of 5-10 research publications in computer science. For undergraduates, the course is an introduction to advanced foundational concepts within a field as well as an in-depth look at detailed research. For graduate students, the course...
|
CS217
|
Hardware Accelerators for Machine Learning
|
This course provides in-depth coverage of the architectural techniques used to design accelerators for training and inference in machine learning systems. This course will cover classical ML algorithms such as linear regression and support vector mac...
|
CS21SI
|
AI for Social Good
|
Students will learn about and apply cutting-edge artificial intelligence techniques to real-world social good spaces (such as healthcare, government, education, and environment). The class will focus on techniques from machine learning and deep learn...
|
CS221
|
Artificial Intelligence: Principles and Techniques
|
Artificial intelligence (AI) has had a huge impact in many areas, including medical diagnosis, speech recognition, robotics, web search, advertising, and scheduling. This course focuses on the foundational concepts that drive these applications. In s...
|
CS223A
|
Introduction to Robotics
|
Robotics foundations in modeling, design, planning, and control. Class covers relevant results from geometry, kinematics, statics, dynamics, motion planning, and control, providing the basic methodologies and tools in robotics research and applicatio...
|
CS224C
|
NLP for Computational Social Science
|
We live in an era where many aspects of our social interactions are recorded as textual data, from social media posts to medical and financial records. This course is about using a variety of techniques from machine learning and theories from social...
|
CS224N
|
Natural Language Processing with Deep Learning
|
Methods for processing human language information and the underlying computational properties of natural languages. Focus on deep learning approaches: understanding, implementing, training, debugging, visualizing, and extending neural network models...
|
CS224R
|
Deep Reinforcement Learning
|
Humans, animals, and robots faced with the world must make decisions and take actions in the world. Moreover, the decisions they choose affect the world they exist in - and those outcomes must be taken into account. This course is about algorithms fo...
|
CS224S
|
Spoken Language Processing
|
Introduction to spoken language technology with an emphasis on dialogue and conversational systems. Deep learning and other methods for automatic speech recognition, speech synthesis, affect detection, dialogue management, and applications to digita...
|
CS224U
|
Natural Language Understanding
|
Project-oriented class focused on developing systems and algorithms for robust machine understanding of human language. Draws on theoretical concepts from linguistics, natural language processing, and machine learning. Topics include lexical semantic...
|
CS224V
|
Conversational Virtual Assistants with Deep Learning
|
While commercial virtual assistants today can perform over hundreds of thousands of skills, they require a tremendous amount of manual labor. This course focuses on the latest virtual assistant research that uses deep learning to lower the developmen...
|
CS224W
|
Machine Learning with Graphs
|
Many complex data can be represented as a graph of relationships between objects. Such networks are a fundamental tool for modeling complex social, technological, and biological systems. This course focuses on the computational, algorithmic, and mode...
|
CS225A
|
Experimental Robotics
|
Hands-on laboratory course experience in robotic manipulation. Topics include robot kinematics, dynamics, control, compliance, sensor-based collision avoidance, and human-robot interfaces. Second half of class is devoted to final projects using vario...
|
CS226
|
The Future of Mechanical Engineering
|
This seminar series provides an overview of current and emerging research topics in mechanical engineering and its application to engineering and scientific problems. The seminar is targeted at senior mechanical engineering undergraduates and mechani...
|
CS227B
|
General Game Playing
|
A 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 repr...
|
CS228
|
Probabilistic Graphical Models: Principles and Techniques
|
Probabilistic graphical modeling languages for representing complex domains, algorithms for reasoning using these representations, and learning these representations from data. Topics include: Bayesian and Markov networks, extensions to temporal mode...
|
CS229
|
Machine Learning
|
Topics: statistical pattern recognition, linear and non-linear regression, non-parametric methods, exponential family, GLMs, support vector machines, kernel methods, deep learning, model/feature selection, learning theory, ML advice, clustering, dens...
|
CS229M
|
Machine Learning Theory
|
How do we use mathematical thinking to design better machine learning methods? This course focuses on developing mathematical tools for answering these questions. This course will cover fundamental concepts and principled algorithms in machine learni...
|
CS22A
|
The Social & Economic Impact of Artificial Intelligence
|
Recent advances in computing may place us at the threshold of a unique turning point in human history. Soon we are likely to entrust management of our environment, economy, security, infrastructure, food production, healthcare, and to a large degree...
|
CS230
|
Deep Learning
|
Deep Learning is one of the most highly sought after skills in AI. We will help you become good at Deep Learning. In this course, you will learn the foundations of Deep Learning, understand how to build neural networks, and learn how to lead successf...
|
CS231A
|
Computer Vision: From 3D Reconstruction to Recognition
|
(Formerly 223B) An introduction to the concepts and applications in computer vision. Topics include: cameras and projection models, low-level image processing methods such as filtering and edge detection; mid-level vision topics such as segmentation...
|
CS231C
|
Computer Vision and Image Analysis of Art
|
This course presents the application of rigorous image processing, computer vision, machine learning, computer graphics and artificial intelligence techniques to problems in the history and interpretation of fine art paintings, drawings, murals and o...
|
CS231N
|
Deep Learning for Computer Vision
|
Computer Vision has become ubiquitous in our society, with applications in search, image understanding, apps, mapping, medicine, drones, and self-driving cars. Core to many of these applications are visual recognition tasks such as image classificati...
|
CS232
|
Digital Image Processing
|
Image sampling and quantization color, point operations, segmentation, morphological image processing, linear image filtering and correlation, image transforms, eigenimages, multiresolution image processing, noise reduction and restoration, feature e...
|
CS233
|
Geometric and Topological Data Analysis
|
Mathematical and computational tools for the analysis of data with geometric content, such images, videos, 3D scans, GPS traces -- as well as for other data embedded into geometric spaces. Linear and non-linear dimensionality reduction techniques. Gr...
|
CS234
|
Reinforcement Learning
|
To realize the dreams and impact of AI requires autonomous systems that learn to make good decisions. Reinforcement learning is one powerful paradigm for doing so, and it is relevant to an enormous range of tasks, including robotics, game playing, co...
|
CS235
|
Computational Methods for Biomedical Image Analysis and Interpretation
|
The latest biological and medical imaging modalities and their applications in research and medicine. Focus is on computational analytic and interpretive approaches to optimize extraction and use of biological and clinical imaging data for diagnostic...
|
CS236
|
Deep Generative Models
|
Generative models are widely used in many subfields of AI and Machine Learning. Recent advances in parameterizing these models using neural networks, combined with progress in stochastic optimization methods, have enabled scalable modeling of complex...
|
CS236G
|
Generative Adversarial Networks
|
Generative Adversarial Networks (GANs) have rapidly emerged as the state-of-the-art technique in realistic image generation. This course presents theoretical intuition and practical knowledge on GANs, from their simplest to their state-of-the-art for...
|
CS237A
|
Principles of Robot Autonomy I
|
Basic principles for endowing mobile autonomous robots with perception, planning, and decision-making capabilities. Algorithmic approaches for robot perception, localization, and simultaneous localization and mapping; control of non-linear systems, l...
|
CS237B
|
Principles of Robot Autonomy II
|
This course teaches advanced principles for endowing mobile autonomous robots with capabilities to autonomously learn new skills and to physically interact with the environment and with humans. It also provides an overview of different robot system a...
|
CS238
|
Decision Making under Uncertainty
|
This course is designed to increase awareness and appreciation for why uncertainty matters, particularly for aerospace applications. Introduces decision making under uncertainty from a computational perspective and provides an overview of the necessa...
|
CS239
|
Advanced Topics in Sequential Decision Making
|
Survey of recent research advances in intelligent decision making for dynamic environments from a computational perspective. Efficient algorithms for single and multiagent planning in situations where a model of the environment may or may not be know...
|
CS24
|
Minds and Machines
|
(Formerly SYMSYS 100). An overview of the interdisciplinary study of cognition, information, communication, and language, with an emphasis on foundational issues: What are minds? What is computation? What are rationality and intelligence? Can we pred...
|
CS240
|
Advanced Topics in Operating Systems
|
Recent 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 pr...
|
CS240LX
|
Advanced Systems Laboratory, Accelerated
|
This is an implementation-heavy, lab-based class that covers similar topics as CS240, but by writing code versus discussing papers. Our code will run "bare-metal" (without an operating system) on the widely-used ARM-based raspberry pi. Bare-metal le...
|
CS241
|
Embedded Systems Workshop
|
Project-centric building hardware and software for embedded computing systems. This year the course projects are on a large interactive light sculpture to be installed in Packard. Syllabus topics will be determined by the needs of the enrolled studen...
|
CS242
|
Programming Languages
|
This course explores foundational models of computation, such as the lambda calculus and other small calculi, and the incorporation of basic advances in PL theory into modern programming languages such as Haskell and Rust. Topics include type syste...
|
CS243
|
Program Analysis and Optimizations
|
Program 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...
|
CS244
|
Advanced Topics in Networking
|
Classic papers, new ideas, and research papers in networking. Architectural principles: why the Internet was designed this way? Congestion control. Wireless and mobility; software-defined networks (SDN) and network virtualization; content distributio...
|
CS244B
|
Distributed Systems
|
Distributed 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 service...
|
CS245
|
Principles of Data-Intensive Systems
|
Most important computer applications have to reliably manage and manipulate datasets. This course covers the architecture of modern data storage and processing systems, including relational databases, cluster computing frameworks, streaming systems a...
|
CS246
|
Mining Massive Data Sets
|
The availability of massive datasets is revolutionizing science and industry. This course discusses data mining and machine learning algorithms for analyzing very large amounts of data. Topics include: Big data systems (Hadoop, Spark); Link Analysis...
|
CS246H
|
Mining Massive Data Sets Hadoop Lab
|
Supplement to CS 246 providing additional material on the Apache Hadoop family of technologies. Students will learn how to implement data mining algorithms using Hadoop and Apache Spark, how to implement and debug complex data mining and data transfo...
|
CS247A
|
Design for Artificial Intelligence
|
A project-based course that builds on the introduction to design in CS147 by focusing on advanced methods and tools for research, prototyping, and user interface design. Studio based format with intensive coaching and iteration to prepare students fo...
|
CS247B
|
Design for Behavior Change
|
Over the last decade, tech companies have invested in shaping user behavior, sometimes for altruistic reasons like helping people change bad habits into good ones, and sometimes for financial reasons such as increasing engagement. In this project-ba...
|
CS247G
|
Design for Play
|
A project-based course that builds on the introduction to design in CS147 by focusing on advanced methods and tools for research, prototyping, and user interface design. Studio based format with intensive coaching and iteration to prepare students fo...
|
CS247I
|
Design for Understanding
|
Complex problems require nuanced design approaches. In this project-based hands-on course, students explore the design of systems, information and interface for human use. Each quarter we pick a different challenging topic to explore and explain; pas...
|
CS247S
|
Service Design
|
A project-based course that builds on the introduction to design in CS147 by focusing on advanced methods and tools for research, prototyping, and user interface design. Studio based format with intensive coaching and iteration to prepare students fo...
|
CS248A
|
Computer Graphics: Rendering, Geometry, and Image Manipulation
|
This course provides a comprehensive introduction to interactive computer graphics, focusing on fundamental concepts and techniques, as well as their cross-cutting relationship to multiple problem domains in interactive graphics (such as rendering, a...
|
CS248B
|
Fundamentals of Computer Graphics: Animation and Simulation
|
This course provides a comprehensive introduction to computer graphics, focusing on fundamental concepts and techniques in Computer Animation and Physics Simulation. Topics include numerical integration, 3D character modeling, keyframe animation, ski...
|
CS249I
|
The Modern Internet
|
Advanced networking course that covers how the Internet has evolved and operates today. Topics include modern Internet topology and routing practices, recently introduced network protocols, popular content delivery strategies, and pressing privacy, s...
|
CS25
|
Transformers United V2
|
Since their introduction in 2017, Transformers have revolutionized Natural Language Processing (NLP). Now, Transformers are finding applications all over Deep Learning, be it Computer Vision (CV), Reinforcement Learning (RL), Generative Adversarial N...
|
CS250
|
Algebraic Error Correcting Codes
|
Introduction to the theory of error correcting codes, emphasizing algebraic constructions, and diverse applications throughout computer science and engineering. Topics include basic bounds on error correcting codes; Reed-Solomon and Reed-Muller codes...
|
CS251
|
Cryptocurrencies and blockchain technologies
|
For advanced undergraduates and for graduate students. The potential applications for Bitcoin-like technologies is enormous. The course will cover the technical aspects of cryptocurrencies, blockchain technologies, and distributed consensus. Studen...
|
CS252
|
Analysis of Boolean Functions
|
Boolean functions are among the most basic objects of study in theoretical computer science. This course is about the study of boolean functions from a complexity-theoretic perspective, with an emphasis on analytic methods. We will cover fundamental...
|
CS253
|
Web Security
|
Principles of web security. The fundamentals and state-of-the-art in web security. Attacks and countermeasures. Topics include: the browser security model, web app vulnerabilities, injection, denial-of-service, TLS attacks, privacy, fingerprinting, s...
|
CS254
|
Computational Complexity
|
An introduction to computational complexity theory. Topics include the P versus NP problem and other major challenges of complexity theory; Space complexity: Savitch's theorem and the Immerman-Szelepscényi theorem; P, NP, coNP, and the polynomial hie...
|
CS254B
|
Computational Complexity II
|
A continuation of CS254 (Computational Complexity). Topics include Barriers to P versus NP; The relationship between time and space, and time-space tradeoffs for SAT; The hardness versus randomness paradigm; Average-case complexity; Fine-grained comp...
|
CS255
|
Introduction to Cryptography
|
For advanced undergraduates and graduate students. Theory and practice of cryptographic techniques used in computer security. Topics: encryption (symmetric and public key), digital signatures, data integrity, authentication, key management, PKI, zero...
|
CS256
|
Algorithmic Fairness
|
Machine learning and data analysis have enjoyed tremendous success in a broad range of domains. These advances hold the promise of great benefits to individuals, organizations and society. Undeniably, algorithms are informing decisions that reach eve...
|
CS257
|
Introduction to Automated Reasoning
|
Automated logical reasoning has enabled substantial progress in many fields, including hardware and software verification, theorem-proving, and artificial in- telligence. Different application scenarios may require different automated rea- soning tec...
|
CS259Q
|
Quantum Computing
|
This course introduces the basics of quantum computing. Topics include: qubits, entanglement, and non-local correlations; quantum gates, circuits, and compilation algorithms; basic quantum algorithms such as Simon's algorithm and Grover's algorithm;...
|
CS260
|
Geometry of Polynomials in Algorithm Design
|
Over the years, many powerful algorithms have been built via tools such as linear programming relaxations, spectral properties of graphs, and others, that all bridge the discrete and continuous worlds. This course will cover another such tool recentl...
|
CS261
|
Optimization and Algorithmic Paradigms
|
Algorithms 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 s...
|
CS263
|
Counting and Sampling
|
This course will cover various algorithm design techniques for two intimately connected class of problems: sampling from complex probability distributions and counting combinatorial structures. A large part of the course will cover Markov Chain Monte...
|
CS265
|
Randomized Algorithms and Probabilistic Analysis
|
Randomness pervades the natural processes around us, from the formation of networks, to genetic recombination, to quantum physics. Randomness is also a powerful tool that can be leveraged to create algorithms and data structures which, in many cases,...
|
CS268
|
Geometric Algorithms
|
Techniques for design and analysis of efficient geometric algorithms for objects in 2-, 3-, and higher dimensions. Topics: convexity, triangulations and simplicial complexes, sweeping, partitioning, and point location. Voronoi/Delaunay diagrams and t...
|
CS269G
|
Almost Linear Time Graph Algorithms
|
Over the past decade there has been an explosion in activity in designing new provably efficient fast graph algorithms. Leveraging techniques from disparate areas of computer science and optimization researchers have made great strides on improving u...
|
CS269I
|
Incentives in Computer Science
|
Many 21st-century computer science applications require the design of software or systems that interact with multiple self-interested participants. This course will provide students with the vocabulary and modeling tools to reason about such design...
|
CS269O
|
Introduction to Optimization Theory
|
Introduction of core algorithmic techniques and proof strategies that underlie the best known provable guarantees for minimizing high dimensional convex functions. Focus on broad canonical optimization problems and survey results for efficiently solv...
|
CS269Q
|
Elements of Quantum Computer Programming
|
For advanced undergraduates and for graduate students. Quantum computing is an emerging computational paradigm with vast potential. This course is an introduction to modern quantum programming for students who want to work with quantum computing tech...
|
CS26SI
|
Beyond NLP: CS & Language through Text Input & Design
|
Where do Computer Science and Language intersect beyond NLP? In this class, we explore their overlaps through text entry and design. On the text-entry side, we will learn about the writing systems of the world and their encodings (there is so much mo...
|
CS270
|
Modeling Biomedical Systems
|
At the core of informatics is the problem of creating computable models of biomedical phenomena. This course explores methods for modeling biomedical systems with an emphasis on contemporary semantic technology, including knowledge graphs. Topics:...
|
CS271
|
Artificial Intelligence in Healthcare
|
Healthcare is one of the most exciting application domains of artificial intelligence, with transformative potential in areas ranging from medical image analysis to electronic health records-based prediction and precision medicine. This course will i...
|
CS272
|
Introduction to Biomedical Data Science Research Methodology
|
Capstone Biomedical Data Science experience. Hands-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 s...
|
CS273B
|
Deep Learning in Genomics and Biomedicine
|
Recent breakthroughs in high-throughput genomic and biomedical data are transforming biological sciences into "big data" disciplines. In parallel, progress in deep neural networks are revolutionizing fields such as image recognition, natural language...
|
CS273C
|
Cloud Computing for Biology and Healthcare
|
Big Data is radically transforming healthcare. To provide real-time personalized healthcare, we need hardware and software solutions that can efficiently store and process large-scale biomedical datasets. In this class, students will learn the concep...
|
CS274
|
Representations and Algorithms for Computational Molecular Biology
|
Topics: This is a graduate level introduction to bioinformatics and computational biology, algorithms for alignment of biological sequences and structures, computing with strings, phylogenetic tree construction, hidden Markov models, basic structural...
|
CS275
|
Translational Bioinformatics
|
Computational methods for the translation of biomedical data into diagnostic, prognostic, and therapeutic applications in medicine. Topics: multi-scale omics data generation and analysis, utility and limitations of public biomedical resources, machin...
|
CS275A
|
Symbolic Musical Information
|
Properties of symbolic data for music applications including advanced notation systems, data durability, mark-up languages, optical music recognition, and data-translation tasks. Hands-on work involves these digital score formats: Guido Music Notati...
|
CS275B
|
Computational Music Analysis
|
Leveraging off three synchronized sets of symbolic data resources for notation and analysis, the lab portion introduces students to the open-source Humdrum Toolkit for music representation and analysis. Issues of data content and quality as well as...
|
CS276
|
Information Retrieval and Web Search
|
Text information retrieval systems; efficient text indexing; Boolean, vector space, and probabilistic retrieval models; ranking and rank aggregation; evaluating IR systems; text clustering and classification; Web search engines including crawling and...
|
CS278
|
Social Computing
|
Today we interact with our friends and enemies, our team partners and romantic partners, and our organizations and societies, all through computational systems. How do we design these social computing systems¿platforms for social media, online commun...
|
CS279
|
Computational Biology: Structure and Organization of Biomolecules and Cells
|
Computational techniques for investigating and designing the three-dimensional structure and dynamics of biomolecules and cells. These computational methods play an increasingly important role in drug discovery, medicine, bioengineering, and molecul...
|
CS28
|
Artificial Intelligence, Entrepreneurship and Society in the 21st Century and Beyond
|
Technical developments in artificial intelligence (AI) have opened up new opportunities for entrepreneurship, as well as raised profound longer term questions about how human societal and economic systems may be reorganized to accommodate the rise o...
|
CS281
|
Ethics of Artificial Intelligence
|
Machine learning has become an indispensable tool for creating intelligent applications, accelerating scientific discoveries, and making better data-driven decisions. Yet, the automation and scaling of such tasks can have troubling negative societal...
|
CS294A
|
Research Project in Artificial Intelligence
|
Student 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. Prerequisites: AI course from 220 series, and consent of instructor.
|
CS294S
|
Research Project in Software Systems and Security
|
Topics 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 cr...
|
CS294W
|
Writing Intensive Research Project in Computer Science
|
Restricted to Computer Science and Computer Systems Engineering undergraduates. Students enroll in the CS 294W section attached to the CS 294 project they have chosen.
|
CS295
|
Software Engineering
|
Software specification, testing and verification. The emphasis is on automated tools for developing reliable software. The course covers material---drawn primarily from recent research papers---on the technologyunderlying these tools. Assignments sup...
|
CS298
|
Seminar on Teaching Introductory Computer Science
|
Faculty, undergraduates, and graduate students interested in teaching discuss topics raised by teaching computer science at the introductory level. Prerequisite: consent of instructor.
|
CS300
|
Departmental Lecture Series
|
Priority 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 compu...
|
CS309
|
Industrial Lectureships in Computer Science
|
Guest computer scientist. By arrangement. May be repeated for credit.
|
CS309A
|
Cloud Computing Seminar
|
For science, engineering, computer science, business, education, medicine, and law students. Cloud computing is bringing information systems out of the back office and making it core to the entire economy. Furthermore with the advent of smarter machi...
|
CS315B
|
Parallel Computing Research Project
|
Advanced topics and new paradigms in parallel computing including parallel algorithms, programming languages, runtime environments, library debugging/tuning tools, and scalable architectures. Research project. Prerequisite: consent of instructor.
|
CS316
|
Advanced Multi-Core Systems
|
In-depth coverage of the architectural techniques used in modern, multi-core chips for mobile and server systems. Advanced processor design techniques (superscalar cores, VLIW cores, multi-threaded cores, energy-efficient cores), cache coherence, mem...
|
CS319
|
Topics in Digital Systems
|
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.
|
CS31N
|
Counterfactuals: The Science of What Ifs?
|
How might the past have changed if different decisions were made? This question has captured the fascination of people for hundreds of years. By precisely asking, and answering such questions of counterfactual inference, we have the opportunity to bo...
|
CS320
|
Value of Data and AI
|
Many of the most valuable companies in the world and the most innovative startups have business models based on data and AI, but our understanding about the economic value of data, networks and algorithmic assets remains at an early stage. For exampl...
|
CS322
|
Triangulating Intelligence: Melding Neuroscience, Psychology, and AI
|
This course will cover both classic findings and the latest research progress on the intersection of cognitive science, neuroscience, and artificial intelligence: How does the study of minds and machines inform and guide each other? What are the assu...
|
CS323
|
The AI Awakening: Implications for the Economy and Society
|
Intelligent computer agents must reason about complex, uncertain, and dynamic environments. This course is a graduate level introduction to automated reasoning techniques and their applications, covering logical and probabilistic approaches. Topics i...
|
CS323A
|
The AI Awakening: Implications for the Economy and Society
|
This course offers an overview of blockchain governance and DAOs, including the governance of layer-1 blockchains, DAO tooling, on-chain and off-chain voting, delegation and constitutional design, identity, and privacy. We will cover these topics bot...
|
CS324
|
Advances in Foundation Models
|
Foundation models (FMs) are transforming the landscape of AI in research and industry. Such models (e.g., GPT-3, CLIP, Stable Diffusion) are trained on large amounts of broad data and are adaptable to a wide range of downstream tasks. In this course,...
|
CS325B
|
Data for Sustainable Development
|
The sustainable development goals (SDGs) encompass many important aspects of human and ecosystem well-being that are traditionally difficult to measure. This project-based course will focus on ways to use inexpensive, unconventional data streams to m...
|
CS326
|
Topics in Advanced Robotic Manipulation
|
This course provides a survey of the most important and influential concepts in autonomous robotic manipulation. It includes classical concepts that are still widely used and recent approaches that have changed the way we look autonomous manipulation...
|
CS327A
|
Advanced Robotic Manipulation
|
Advanced control methodologies and novel design techniques for complex human-like robotic and bio mechanical systems. Class covers the fundamentals in operational space dynamics and control, elastic planning, human motion synthesis. Topics include re...
|
CS328
|
Foundations of Causal Machine Learning
|
Theoretical foundations of modern techniques at the intersection of causal inference and machine learning. Topics may include: semi-parametric inference and semi-parametric efficiency, modern statistical learning theory, Neyman orthogonality and doub...
|
CS329
|
Topics in Artificial Intelligence
|
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.
|
CS329D
|
Machine Learning Under Distributional Shifts
|
The progress of machine learning systems has seemed remarkable and inexorable a wide array of benchmark tasks including image classification, speech recognition, and question answering have seen consistent and substantial accuracy gains year on year....
|
CS329E
|
Machine Learning on Embedded Systems
|
This is a project-based class where students will learn how to develop machine learning models for execution in resource constrained environments such as embedded systems. In this class students will learn about techniques to optimize machine learnin...
|
CS329M
|
Introduction to Machine Programming
|
The field of machine programming (MP) is concerned with the automation of software development. Given recent advances in algorithms, hardware efficiency and capacity, and an ever increasing avail- ability of code data, it is now possible to train mac...
|
CS329P
|
Practical Machine Learning
|
Applying Machine Learning (ML) to solve real problems accurately and robustly requires more than just training the latest ML model. First, you will learn practical techniques to deal with data. This matters since real data is often not independently...
|
CS329R
|
Race and Natural Language Processing
|
The goal of this practicum is to integrate methods from natural language processing with social psychological perspectives on race to build practical systems that address significant societal issues. Readings will be drawn broadly from across the so...
|
CS329S
|
Machine Learning Systems Design
|
This project-based course covers the iterative process for designing, developing, and deploying machine learning systems. It focuses on systems that require massive datasets and compute resources, such as large neural networks. Students will learn ab...
|
CS329T
|
Trustworthy Machine Learning
|
This course will provide an introduction to state-of-the-art ML methods designed to make AI more trustworthy. The course focuses on four concepts: explanations, fairness, privacy, and robustness. We first discuss how to explain and interpret ML model...
|
CS329X
|
Human Centered NLP
|
Recent advances in natural language processing (NLP), especially around large pretrained models, have enabled extensive successful applications. However, there are growing concerns about the negative aspects of LP systems, such as biases and a lack o...
|
CS330
|
Deep Multi-task and Meta Learning
|
While deep learning has achieved remarkable success in supervised and reinforcement learning problems, such as image classification, speech recognition, and game playing, these models are, to a large degree, specialized for the single task they are t...
|
CS331
|
Machine Learning for Algorithm Design
|
Machine learning has become a powerful tool for algorithm design. This is because in practice, we often have ample data about the application domain in which the algorithm will be used - data that can be used to optimize the algorithm's performance....
|
CS331B
|
Interactive Simulation for Robot Learning
|
This course provides a research survey of advanced methods for robot learning in simulation, analyzing the simulation techniques and recent research results enabled by advances in physics and virtual sensing simulation. The course covers two main com...
|
CS332
|
Advanced Survey of Reinforcement Learning
|
This class will provide a core overview of essential topics and new research frontiers in reinforcement learning. Planned topics include: model free and model based reinforcement learning, policy search, Monte Carlo Tree Search planning methods, off...
|
CS333
|
Algorithms for Interactive Robotics
|
AI agents need to collaborate and interact with humans in many different settings such as bots operating on social media and crowdsourcing platforms, AI assistants brokering transactions on electronic marketplaces, autonomous vehicles driving alongsi...
|
CS337
|
AI-Assisted Care
|
AI has been advancing quickly, with its impact everywhere. In healthcare, innovation in AI could help transforming of our healthcare system. This course offers a diverse set of research projects focusing on cutting edge computer vision and machine le...
|
CS338
|
Physical Human Robot Interaction
|
Robotics researchers and futurists have long dreamed of robots that can serve as assistants or caregivers. One important research area to develop such robots in the immediate future is Physical Human-Robot Interaction (pHRI). Assistive robots have th...
|
CS339H
|
Human-Computer Interaction and AI/ML
|
Understanding the human side of AI/ML based systems requires understanding both how the system-side AI works, but also how people think about, understand, and use AI tools and systems. This course will cover how what AI components and systems curren...
|
CS339N
|
Machine Learning Methods for Neural Data Analysis
|
With modern high-density electrodes and optical imaging techniques, neuroscientists routinely measure the activity of hundreds, if not thousands, of cells simultaneously. Coupled with high-resolution behavioral measurements, genetic sequencing, and...
|
CS339R
|
Collaborative Robotics
|
This course focuses on how robots can be effective teammates with other robots and human partners. Concepts and tools will be reviewed for characterizing task objectives, robot perception and control, teammate behavioral modeling, inter-agent communi...
|
CS340
|
Topics in Computer Systems
|
Topics vary every quarter, and may include advanced material being taught for the first time. May be repeated for credit.
|
CS340LX
|
Advanced Operating System Lab: Accelerated (II)
|
This is an implementation-heavy, lab-based class that continues the topics from CS240LX. The labs will be more specialized, with an emphasis on research-worthy topics and techniques. The class format will follow CS240LX: two labs, twice a week, along...
|
CS340R
|
Rusty Systems
|
Language shapes thought; for 40 years, software systems and some of their research challenges have been defined by the C language. In the past 5 years, this has begun to change, with new languages (Rust, Go, coq) becoming competitors to C in large cl...
|
CS341
|
Project in Mining Massive Data Sets
|
Students work in teams of three to solve a problem involving the analysis of a massive dataset. A proposal, early in March is required. There will be an information session (announced in CS246) explaining the datasets available in early March and th...
|
CS342
|
Building for Digital Health
|
This project-based course will provide a comprehensive overview of key requirements in the design and full-stack implementation of a digital health research application. Several pre-vetted and approved projects from the Stanford School of Medicine wi...
|
CS343D
|
Domain-Specific Programming Models and Compilers
|
This class will cover the principles and practices of domain-specific programming models and compilers for dense and sparse applications in scientific computing, data science, and machine learning. We will study programming models from the recent lit...
|
CS344
|
Topics in Computer Networks
|
This class could also be called "Build an Internet Router": Students work in teams of two to build a fully functioning Internet router, gaining hands-on experience building the hardware and software of a high-performance network system. Students des...
|
CS345S
|
Data-intensive Systems for the Next 1000x
|
The last decade saw enormous shifts in the design of large-scale data-intensive systems due to the rise of Internet services, cloud computing, and Big Data processing. Where will we see the next 1000x increases in scale and data volume, and how shoul...
|
CS347
|
Human-Computer Interaction: Foundations and Frontiers
|
(Previously numbered CS376.) How will the future of human-computer interaction evolve? This course equips students with the major animating theories of human-computer interaction, and connects those theories to modern innovations in research. Major t...
|
CS348A
|
Computer Graphics: Geometric Modeling & Processing
|
The mathematical tools needed for the geometrical aspects of computer graphics and especially for modeling smooth shapes. The course covers classical computer-aided design, geometry processing, and data-driven approaches for shape generation. Fundame...
|
CS348B
|
Computer Graphics: Image Synthesis Techniques
|
Intermediate level, emphasizing high-quality image synthesis algorithms and systems issues in rendering. Topics include: Reyes and advanced rasterization, including motion blur and depth of field; ray tracing and physically based rendering; Monte Car...
|
CS348C
|
Computer Graphics: Animation and Simulation
|
Core mathematics and methods for computer animation and motion simulation. Traditional animation techniques. Physics-based simulation methods for modeling shape and motion: particle systems, constraints, rigid bodies, deformable models, collisions an...
|
CS348E
|
Character Animation: Modeling, Simulation, and Control of Human Motion
|
This course introduces technologies and mathematical tools for simulating, modeling, and controlling human/animal movements. Students will be exposed to integrated knowledge and techniques across computer graphics, robotics, machine learning and biom...
|
CS348I
|
Computer Graphics in the Era of AI
|
This course introduces deep learning methods and AI technologies applied to four main areas of Computer Graphics: rendering, geometry, animation, and imaging. We will study a wide range of problems on content creation for images, shapes, and animatio...
|
CS348K
|
Visual Computing Systems
|
Visual computing tasks such as computational photography, image/video understanding, and real-time 3D graphics are key responsibilities of modern computer systems ranging from sensor-rich smart phones, autonomous robots, and large data centers. These...
|
CS348N
|
Neural Models for 3D Geometry
|
Course Description: Generation of high-quality 3D models and scenes by leveraging machine learning tools and approaches. Survey of geometry representations. Public 3D object and scene data sets. Neural architectures for geometry, including deep archi...
|
CS349
|
Topics in Programming Systems
|
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.
|
CS349D
|
Cloud Computing Technology
|
The largest change in the computer industry over the past ten years has arguably been the emergence of cloud computing: organizations are increasingly moving their workloads to managed public clouds and using new, global-scale services that were simp...
|
CS349F
|
Technology for Financial Systems
|
Financial systems have spurred technological innovation and, in turn, are driven bycutting-edge technological developments. This course explores the synergy.Students will learn from faculty and industry experts how to build faster and fairer financia...
|
CS349G
|
Selected Reading of Ph.D. Dissertations
|
Detailed reading of 5 selected Ph.D. dissertations within a field of computer science. For undergraduates, the course is an introduction to advanced foundational concepts within a field as well as an in-depth look at detailed research. For graduate s...
|
CS349H
|
Software Techniques for Emerging Hardware Platforms
|
Research seminar on software techniques for emerging computational substrates with guest lectures from hardware designers from research and industry. This seminar explores the benefits of novel hardware technologies, the challenges gating broad adopt...
|
CS349M
|
Machine Learning for Software Engineering
|
In recent years, tools based on machine learning have become increasingly prevalent in the software engineering field. The ubiquity of machine learning is an important factor, but just as important is the availability of software engineering data: th...
|
CS349T
|
Project Lab: Video and Audio Technology for Live Theater in the Age of COVID
|
This class is part of a multi-disciplinary collaboration between researchers in the CS, EE, and TAPS departments to design and develop a system to host a live theatrical production that will take place over the Internet in the winter quarter. The per...
|
CS350
|
Secure Compilation
|
This course explores the field of secure compilation, which sits at the intersection between security and programming languages. The course covers the following topics: threat models for secure compilers, formal criteria for secure compilers to adher...
|
CS351
|
Open Problems in Coding Theory
|
Coding theory is the study of how to encode data to protect it from noise. Coding theory touches CS, EE, math, and many other areas, and there are exciting open problems at all of these frontiers. In this class, we will explore these open problems by...
|
CS352B
|
Blockchain Governance
|
This course offers an overview of blockchain governance and DAOs, including the governance of layer-1 blockchains, DAO tooling, on-chain and off-chain voting, delegation and constitutional design, identity, and privacy. We will cover these topics bot...
|
CS354
|
Topics in Intractability: Unfulfilled Algorithmic Fantasies
|
Over the past 45 years, understanding NP-hardness has been an amazingly useful tool for algorithm designers. This course will expose students to additional ways to reason about obstacles for designing efficient algorithms. Topics will include uncondi...
|
CS355
|
Advanced Topics in Cryptography
|
Topics: Pseudo randomness, multiparty computation, pairing-based and lattice-based cryptography, zero knowledge protocols, and new encryption and integrity paradigms. May be repeated for credit. Prerequisite: CS255.
|
CS356
|
Topics in Computer and Network Security
|
Research seminar covering foundational work and current topics in computer and network security. Students will read and discuss published research papers as well as complete an original research project in small groups. Open to Ph.D. and masters stu...
|
CS357
|
Advanced Topics in Formal Methods
|
Topics vary annually. Recent offerings have covered the foundations of static analysis, including decision procedures for important theories (SAT, linear integer constraints, SMT solvers), model checking, abstract interpretation, and constraint-base...
|
CS357S
|
Formal Methods for Computer Systems
|
The complexity of modern computer systems requires rigorous and systematic verification/validation techniques to evaluate their ability to correctly and securely support application programs. To this end, a growing body of work in both industry and a...
|
CS358
|
Topics in Programming Language Theory
|
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.
|
CS358A
|
Programming Language Foundations
|
This course introduces advanced formal systems and programming languages as well as techniques to reason formally about them. Possible systems of study include: the lambda calculus, System F, the Pi and Spi calculi, simply-typed languages, security t...
|
CS359
|
Topics in the Theory of Computation
|
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.
|
CS359A
|
Research Seminar in Complexity Theory
|
A research seminar on computational complexity theory. The focus of this year's offering will be on concrete complexity, a major strand of research in modern complexity theory. We will cover fundamental techniques and major results concerning basic m...
|
CS359D
|
Quantum Complexity Theory
|
Introduction to quantum complexity theory. Topics include: the class BQP and its relation to other complexity classes; quantum query and communication complexity; quantum proof systems, Hamiltonian complexity, and the quantum PCP conjecture; the comp...
|
CS359E
|
Quantum Complexity Theory
|
Introduction to quantum complexity theory. Topics include: the class BQP and its relation to other complexity classes; quantum query and communication complexity; quantum proof systems, Hamiltonian complexity, and the quantum PCP conjecture; the comp...
|
CS360
|
Simplicity and Complexity in Economic Theory
|
Technology has enabled the emergence of economic systems of formerly inconceivable complexity. Nevertheless, some technology-related economic problems are so complex that either supercomputers cannot solve them in a reasonable time, or they are too c...
|
CS361
|
Engineering Design Optimization
|
Design of engineering systems within a formal optimization framework. This course covers the mathematical and algorithmic fundamentals of optimization, including derivative and derivative-free approaches for both linear and non-linear problems, with...
|
CS362
|
Research in AI Alignment
|
In this course we will explore the current state of research in the field of AI alignment, which seeks to bring increasingly intelligent AI systems in line with human values and interests. The purpose of this course is to encourage the development of...
|
CS366
|
Computational Social Choice
|
An in-depth treatment of algorithmic and game-theoretic issues in social choice. Topics include common voting rules and impossibility results; ordinal vs cardinal voting; market approaches to large scale decision making; voting in complex elections,...
|
CS368
|
Algorithmic Techniques for Big Data
|
(Previously numbered CS 369G.) Designing algorithms for efficient processing of large data sets poses unique challenges. This course will discuss algorithmic paradigms that have been developed to efficiently process data sets that are much larger tha...
|
CS369
|
Topics in Analysis of Algorithms
|
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.
|
CS369L
|
Algorithmic Perspective on Machine Learning
|
Many problems in machine learning are intractable in the worst case, andpose a challenge for the design of algorithms with provable guarantees. In this course, we will discuss several success stories at the intersection of algorithm design and machin...
|
CS369M
|
Metric Embeddings and Algorithmic Applications
|
Low distortion embeddings of finite metric spaces is a topic at the intersection of mathematics and theoretical computer science. Much progress in this area in recent years has been motivated by algorithmic applications. Mapping complicated metrics o...
|
CS369O
|
Optimization Algorithms
|
Fundamental theory for solving continuous optimization problems with provable efficiency guarantees. Coverage of both canonical optimization methods and techniques, e.g. gradient descent, mirror descent, stochastic methods, acceleration, higher-order...
|
CS369Z
|
Dynamic Data Structures for Graphs
|
With the increase of huge, dynamically changing data sets there is a raising need for dynamic data structures to represent and process them. This course will present the algorithmic techniques that have been developed for dynamic data structures for...
|
CS371
|
Computational Biology in Four Dimensions
|
Cutting-edge research on computational techniques for investigating and designing the three-dimensional structure and dynamics of biomolecules, cells, and everything in between. These techniques, which draw on approaches ranging from physics-based s...
|
CS372
|
Artificial Intelligence for Precision Medicine and Psychiatric Disorders
|
Artificial intelligence, specifically deep learning, stands out as one of the most transformative technologies of the past decade. AI can already outperform humans in several computer vision and natural language processing tasks. However, we still f...
|
CS373
|
Statistical and Machine Learning Methods for Genomics
|
Introduction to statistical and computational methods for genomics. Sample topics include: expectation maximization, hidden Markov model, Markov chain Monte Carlo, ensemble learning, probabilistic graphical models, kernel methods and other modern mac...
|
CS375
|
Large-Scale Neural Network Modeling for Neuroscience
|
Introduction to designing, building, and training large-scale neural networks for modeling brain and behavioral data, including: deep convolutional neural network models of sensory systems (vision, audition, somatosensation); variational and generati...
|
CS377
|
Topics in Human-Computer Interaction
|
Contents change each quarter. May be repeated for credit. See http://hci.stanford.edu/academics for offerings.
|
CS377E
|
Designing Solutions to Global Grand Challenges
|
In this course we creatively apply information technologies to collectively attack Global Grand Challenges (e.g., global warming, rising healthcare costs and declining access, and ensuring quality education for all). Interdisciplinary student teams w...
|
CS377G
|
Designing Serious Games
|
Over the last few years we have seen the rise of "serious games" to promote understanding of complex social and ecological challenges, and to create passion for solving them. This project-based course provides an introduction to game design principal...
|
CS377N
|
Introduction to the Design of Smart Products
|
This course will focus on the technical mechatronic skills as well as the human factors and interaction design considerations required for the design of smart products and devices. Students will learn techniques for rapid prototyping of smart devices...
|
CS377Q
|
Designing for Accessibility
|
Designing for accessibility is a valuable and important skill in the UX community. As businesses are becomeing more aware of the needs and scope of people with some form of disability, the benefits of universal design, where designing for accessibili...
|
CS377T
|
Topics in Human-Computer Interaction: Teaching Studio Classes
|
Studio teaching is a practice that dates back to the apprentice days of art studios. In this course, you will learn to teach project based classes that include critique. We will also cover effective coaching, design of projects and exercises, and cur...
|
CS377U
|
Understanding Users
|
This project-based class focuses on understanding the use of technology in the world. Students will learn generative and evaluative research methods to explore how systems are appropriated into everyday life in a quarter-long project where they desig...
|
CS379C
|
Computational Models of the Neocortex
|
This class focuses on building agents that achieve human-level performance in specialized technical domains and are adept at collaborating with humans using natural language. We draw upon research in cognitive and systems neuroscience to take advanta...
|
CS384
|
Seminar on Ethical and Social Issues in Natural Language Processing
|
Seminar covering issues in natural language processing related to ethical and social issues and the overall impact of these algorithms on people and society. Topics include: bias in data and models, privacy and computational profiling, measuring civi...
|
CS390A
|
Curricular Practical Training
|
Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship work and integrate that work into their academic program. Students register under their fac...
|
CS390B
|
Curricular Practical Training
|
Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship work and integrate that work into their academic program. Students register under their fac...
|
CS390C
|
Curricular Practical Training
|
Educational opportunities in high technology research and development labs in the computing industry. Qualified computer science students engage in internship work and integrate that work into their academic program. Students register under their fac...
|
CS390D
|
Part-time Curricular Practical Training
|
For qualified computer science PhD students only. Permission number required for enrollment; see the CS PhD program administrator in Gates room 195. Educational opportunities in high technology research and development labs in the computing industry....
|
CS398
|
Computational Education
|
This course covers cutting-edge education algorithms used to model students, assess learning, and design widely deployable tools for open access education. The goal of the course is for you to be ready to lead your own computation education research...
|
CS399
|
Independent Project
|
Letter grade only. This course is for masters students only. Undergraduate students should enroll in CS199; PhD students should enroll in CS499. Letter grade; if not appropriate, enroll in CS399P. Register using the section number associated with the...
|
CS399P
|
Independent Project
|
Graded satisfactory/no credit. This course is for masters students only. Undergraduate students should enroll in CS199; PhD students should enroll in CS499. S/NC only; if not appropriate, enroll in CS399. Register using the section number associated...
|
CS402
|
Beyond Bits and Atoms: Designing Technological Tools
|
This course is a practicum in the design of technology-enabled curricula and hands-on learning environments. It focuses on the theories, concepts, and practices necessary to design effective, low-cost educational technologies that support learning in...
|
CS402L
|
Beyond Bits and Atoms - Lab
|
This lab course is a hands-on introduction to the prototyping and fabrication of tangible, interactive technologies, with a special focus on learning and education. (No prior prototyping experience required.) It focuses on the design and prototyping...
|
CS41
|
Hap.py Code: The Python Programming Language
|
This course is about the fundamentals and contemporary usage of the Python programming language. The primary focus is on developing best practices in writing Python and exploring the extensible and unique parts of the Python language. Topics include:...
|
CS421
|
Designing AI to Cultivate Human Well-Being
|
Artificial Intelligence (AI) has the potential to drive us towards a better future for all of humanity, but it also comes with significant risks and challenges. At its best, AI can help humans mitigate climate change, diagnose and treat diseases more...
|
CS422
|
Interactive and Embodied Learning
|
Most successful machine learning algorithms of today use either carefully curated, human-labeled datasets, or large amounts of experience aimed at achieving well-defined goals within specific environments. In contrast, people learn through their agen...
|
CS428A
|
Probabilistic models of cognition: Reasoning and Learning
|
How can we understand intelligent behavior as computation? This course introduces probabilistic programming as a tool for cognitive modeling. We will use probabilistic generative models to explain aspects of human and artificial cognition. Topics wil...
|
CS428B
|
Probabilistic Models of Cognition: Language
|
How can we understand natural language use in computational terms? This course surveys probabilistic models for natural language semantics and pragmatics. It begins with an introduction to the Rational Speech Acts framework for modeling pragmatics as...
|
CS43
|
Functional Programming Abstractions
|
This course covers the fundamentals of functional programming and algebraic type systems, and explores a selection of related programming paradigms and current research. Haskell is taught and used throughout the course, though much of the material is...
|
CS431
|
High-level Vision: From Neurons to Deep Neural Networks
|
Interdisciplinary seminar focusing on understanding how computations in the brain enable rapid and efficient object perception. Covers topics from multiple perspectives drawing on recent research in Psychology, Neuroscience, and Computer Science. Emp...
|
CS432
|
Computer Vision for Education and Social Science Research
|
Computer vision -- the study of how to design artificial systems that can perform high-level tasks related to image or video data (e.g. recognizing and locating objects in images and behaviors in videos) -- has seen recent dramatic success. In this c...
|
CS448
|
Topics in Computer Graphics
|
Topic changes each quarter. Recent topics: computational photography, datavisualization, character animation, virtual worlds, graphics architectures, advanced rendering. See http://graphics.stanford.edu/courses for offererings and prerequisites. Ma...
|
CS448B
|
Data Visualization
|
Techniques 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 l...
|
CS448H
|
Topics in Computer Graphics: Agile Hardware Design
|
Topic changes each quarter. Recent topics: computational photography, data visualization, character animation, virtual worlds, graphics architectures, advanced rendering. See http://graphics.stanford.edu/courses for offerings and prerequisites. May...
|
CS448I
|
Computational Imaging
|
Digital photography and basic image processing, convolutional neural networks for image processing, denoising, deconvolution, single pixel imaging, inverse problems in imaging, proximal gradient methods, introduction to wave optics, time-of-flight im...
|
CS448M
|
Making Making Machines for Makers
|
An introductory, project-based exploration of systems and processes for making things using computer-aided design and manufacturing, and an introduction to machines and machine tools. Emphasis will be placed on building novel machines and related sof...
|
CS448V
|
Topics in Computer Graphics: Computational Video Manipulation
|
The goal of this graduate (advanced undergraduate also welcome) course is to survey recent work on computational video analysis and manipulation techniques. We will learn how to acquire, represent, edit and remix video. Several popular video manipula...
|
CS448Z
|
Physically Based Animation and Sound
|
Intermediate level, emphasizing physically based simulation techniques for computer animation and synchronized sound synthesis. Topics vary from year to year, but include the simulation of acoustic waves, and integrated approaches to visual and audit...
|
CS44N
|
Great Ideas in Graphics
|
A hands-on interactive and fun exploration of great ideas from computer graphics. Motivated by graphics concepts, mathematical foundations and computer algorithms, students will explore an eccentric selection of "great ideas" through short weekly pro...
|
CS45
|
Software Tools Every Programmer Should Know
|
Classes teach you all about advanced topics within CS, from operating systems to machine learning, but there's one critical subject that's rarely covered, and is instead left to students to figure out on their own: proficiency with their tools. This...
|
CS468
|
Topics in Geometric Algorithms: Non-Euclidean Methods in Machine Learning
|
Contents of this course vary with each offering. Past offerings have included geometric matching, surface reconstruction, collision detection, computational topology, differential geometry for computer scientists, computational symmetry and regularit...
|
CS46N
|
Working with Data: Delights and Doubts
|
The use of data to drive decisions and discoveries has increased dramatically over the past two decades, thanks to prevalent data collection, cheaper storage, faster computers, and sophisticated algorithms. This introductory seminar has three compone...
|
CS47
|
Cross-Platform Mobile Development
|
The fundamentals of cross-platform mobile application development using the React Native framework (RN). The Primary focus is on enabling students to build apps for both iOS and Android using RN. Students will explore the unique aspects that made RN...
|
CS470
|
Music and AI
|
How do we make music with artificial intelligence? What does it mean to do so (and is it even a good idea)? How might we design systems that balance machine automation and human interaction? More broadly, how do we want to live with our technologies?...
|
CS472
|
Data science and AI for COVID-19
|
This project class investigates and models COVID-19 using tools from data science and machine learning. We will introduce the relevant background for the biology and epidemiology of the COVID-19 virus. Then we will critically examine current models t...
|
CS476A
|
Music, Computing, Design: The Art of Design
|
This course explores the artful design of software tools, toys, games,instruments, and experiences. Topics include programming, audiovisualdesign, strategies for crafting interactive systems, game design, aswell as aesthetic and social considerations...
|
CS498C
|
Introduction to CSCL: Computer-Supported Collaborative Learning
|
This seminar introduces students to foundational concepts and research on computer-supported collaborative learning (CSCL). It is designed for LSTD doctoral students, LDT masters' students, other GSE graduate students and advanced undergraduates inqu...
|
CS499
|
Advanced Reading and Research
|
Letter grade only. Advanced reading and research for CS PhD students. Register using the section number associated with the instructor. Prerequisite: consent of instructor. This course is for PhD students only. Undergraduate students should enroll in...
|
CS499P
|
Advanced Reading and Research
|
Graded satisfactory/no credit. Advanced reading and research for CS PhD students. Register using the section number associated with the instructor. Prerequisite: consent of instructor. This course is for PhD students only. Undergraduate students shou...
|
CS49N
|
Using Bits to Control Atoms
|
This is a crash course in how to use a stripped-down computer system about the size of a credit card (the rasberry pi computer) to control as many different sensors as we can implement in ten weeks, including LEDs, motion sensors, light controllers,...
|
CS50
|
Using Tech for Good
|
Students in the class will work in small teams to implement high-impact projects for partner organizations. Taught by the CS+Social Good team, the aim of the class is to empower you to leverage technology for social good by inspiring action, facilita...
|
CS51
|
CS + Social Good Studio: Designing Social Impact Projects
|
Get real-world experience researching and developing your own social impact project! Students work in small teams to develop high-impact projects around problem domains provided by partner organizations, under the guidance and support of design/techn...
|
CS52
|
CS + Social Good Studio: Implementing Social Good Projects
|
Continuation of CS51 (CS + Social Good Studio). Teams enter the quarter having completed and tested a minimal viable product (MVP) with a well-defined target user, and a community partner. Students will learn to apply scalable technical frameworks, m...
|
CS520
|
Knowledge Graphs
|
Knowledge graphs have emerged as a compelling abstraction for organizing world's structured knowledge over the internet, capturing relationships among key entities of interest to enterprises, and a way to integrate information extracted from multiple...
|
CS521
|
Seminar on AI Safety
|
In this seminar, we will focus on the challenges in the design of safe and verified AI-based systems. We will explore some of the major problems in this area from the viewpoint of industry and academia. We plan to have a weekly seminar speaker to dis...
|
CS522
|
Seminar in Artificial Intelligence in Healthcare
|
Artificial intelligence is poised to make radical changes in healthcare, transforming areas such as diagnosis, genomics, surgical robotics, and drug discovery. In the coming years, artificial intelligence has the potential to lower healthcare costs,...
|
CS523
|
Research Seminar in Computer Vision + X
|
With advances in deep learning, computer vision (CV) has been transforming all sorts of domains, including healthcare, human-computer interaction, transportation, art, sustainability, and so much more. In this seminar, we investigate its far-reaching...
|
CS523
|
Research Seminar in Computer Vision and Healthcare
|
With advances in deep learning, computer vision (CV) has been transforming healthcare, from diagnosis to prognosis, from treatment to prevention. Its far-reaching applications include surgical assistants, patient monitoring, data synthesis, and cance...
|
CS528
|
Machine Learning Systems Seminar
|
Machine learning is driving exciting changes and progress in computing systems. What does the ubiquity of machine learning mean for how people build and deploy systems and applications? What challenges does industry face when deploying machine learni...
|
CS529
|
Robotics and Autonomous Systems Seminar
|
Seminar talks by researchers and industry professionals on topics related to modern robotics and autonomous systems. Broadly, talks will cover robotic design, perception and navigation, planning and control, and learning for complex robotic systems....
|
CS547
|
Human-Computer Interaction Seminar
|
Weekly speakers on human-computer interaction topics. May be repeated for credit.
|
CS549
|
Human-Computer Interaction in the Real World
|
Intended for students who are pursuing a focus on HCI, this course focuses on showing students how HCI gets applied in industry across different types of companies. The course consists of on-site visits to large companies (for example Google, Yahoo,...
|
CS56N
|
Great Discoveries and Inventions in Computing
|
This seminar will explore some of both the great discoveries that underlie computer science and the inventions that have produced the remarkable advances in computing technology. Key questions we will explore include: What is computable? How can info...
|
CS571
|
Surgical Robotics Seminar
|
Surgical 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 an...
|
CS57N
|
Randomness: Computational and Philosophical Approaches
|
Is it ever reasonable to make a decision randomly? For example, would you ever let an important choice depend on the flip of a coin? Can randomness help us answer difficult questions more accurately or more efficiently? What is randomness anyway? Can...
|
CS58
|
You Say You Want a Revolution (Blockchain Edition)
|
This project-based course will give creative students an opportunity to work together on revolutionary change leveraging blockchain technology. The course will provide opportunities for students to become operationally familiar with blockchain concep...
|
CS581
|
Media Innovation
|
This course will introduce students interested in computer science, engineering, and media to what is possible and probable when it comes to media innovation. Speakers from multiple disciplines and industry will discuss a range of topics in the conte...
|
CS58N
|
The Blockchain Revolution Will Not Be Televised
|
This seminar will explore the nature of revolutions supported and enabled by technological change, using the Internet and smart phone as two historical examples and focusing on blockchain technology and potential applications such as money, banking,...
|
CS59SI
|
Quantum Computing: Open-Source Project Experience
|
This course focuses on giving quantum software engineering industry experience with open-source projects proposed by frontier quantum computing and quantum device corporate partners. Quantum computing and quantum information industry sponsors submit...
|
CS64
|
Computation for Puzzles and Games
|
How can we apply computer science to better understand (and have even more fun with) games and puzzles? What can we do when a game is too complex to analyze exhaustively, or when no efficient algorithms exist to solve a logic puzzle? This sampler cou...
|
CS7
|
Personal Finance for Engineers
|
Introduction to the fundamentals and analysis specifically needed by engineers to make informed and intelligent financial decisions. Course will focus on actual industry-based financial information from technology companies and realistic financial is...
|
CS802
|
TGR Dissertation
|
Terminal Graduate Registration (TGR). CS PhD students who have their TGR form approved should register under the section number associated with their faculty advisor.
|
CS80Q
|
Race and Gender in Silicon Valley
|
Join us as we go behind the scenes of some of the big headlines about trouble in Silicon Valley. We'll start with the basic questions like who decides who gets to see themselves as "a computer person," and how do early childhood and educational exper...
|
CS83N
|
Playback Theater
|
Playback combines elements of theater, community work and storytelling. In a playback show, a group of actors and musicians create an improvised performance based on the audience's personal stories. A playback show brings about a powerful listening a...
|
CS9
|
Problem-Solving for the CS Technical Interview
|
This course will prepare students to apply and interview for internships and full-time positions in the software engineering industry. Each week, we will have one meeting focused on advice (e.g. resume prep, behavioral interviews, salary negotiation,...
|
CS91
|
Digital Canvas: An Introduction to UI/UX Design
|
This course is focused on the application of UX/UI design concepts to actual user interfaces: the creation of wireframes, high-fidelity mockups, and clickable prototypes. We will be focusing on what makes a good or bad user interface, effective desig...
|
CS91SI
|
Digital Canvas: An Introduction to UI/UX Design
|
In this course, students learn digital design in a low-stress environment. We will teach the essential concepts of UI/UX design and create actual user interfaces in a project-based format. By the end of the class, students will have experience in cre...
|
CS93
|
Teaching AI
|
For graduate students who are TA-ing an AI course. This course prepares new AI section leaders to teach, write, and evaluate AI content. In class, you will be evaluating final projects individually and as a group. You will have discussions criticizin...
|