CS 25: Transformers United V5
Since their introduction in 2017, Transformers have revolutionized Deep Learning, powering large language models (LLM) like ChatGPT and DeepSeek, image and video generation (e.g. Dall-E and Sora), and much more. In
CS25, one of Stanford's hottest seminar courses, we delve into Transformer architectures and their diverse applications through classroom discussions and instructor and guest lectures. Topics include LLM, creative uses in art and music, healthcare, neuroscience, robotics, and so forth. We host leading researchers, with past speakers like Andrej Karpathy, Geoffrey Hinton, Jim Fan, Ashish Vaswani, and folks from OpenAI, Anthropic, Google DeepMind, NVIDIA, etc. Lectures are livestreamed and recorded, attracting a global audience with over a million total YouTube views. This is a 1-unit S/NC course, where attendance is the only homework! Enroll via Axess or audit through livestreams or in-person, space permitting. Prerequisites: basic Deep Learning and Transformers knowledge (understanding of attention) or completion of
CS224N,
CS231N, or
CS230. Course website:
https://web.stanford.edu/class/cs25/
Last offered: Spring 2025
| Units: 1
CS 25N: Big Ideas in Cryptography
Cryptography - securing data in the presence of an adversary - has been practiced for thousands of years. Today, cryptography is more ubiquitous than ever, as it is the foundation underlying our secure digital world. Modern cryptography is also characterized by surprising solutions to seemingly impossible tasks. In this seminar, we will survey some of the big ideas in cryptography, including cryptanalysis (including breaking the Enigma during WWII), methodologies behind the design of secure ciphers, public key cryptography (securely exchanging messages without ever having met in person to share a secret key), zero knowledge proofs (proving statements without revealing the proof), homomorphic encryption (performing computations on encrypted data), cryptocurrencies, and more. Prerequisites: Basic programming knowledge and mathematical maturity suggested.
Terms: Win
| Units: 3
Instructors:
Zhandry, M. (PI)
CS 26SI: 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 more beyond the Latin alphabet!), how keyboards work and why they are designed this way, how autocorrect / predictive typing and voice / handwriting text input function, and accessibility of text input. On the design side, we will learn about typography & typeface design, and l10n / i18n. This class will feature many case studies and a few guest speakers!
Last offered: Autumn 2022
| Units: 1
CS 29N: Computational Decision Making
Although we make decisions every day, many people base their decisions on initial reactions or ""gut"" feelings. There are, however, powerful frameworks for making decisions more effectively based on computationally analyzing the choices available and their possible outcomes. In this course we give an introduction to some of these frameworks, including utility theory, decision analysis, and game theory. We also discuss why people sometimes make seemingly reasonable, yet irrational, decisions. We begin the class by presenting some of the basics of probability theory, which serves as the main mathematical foundation for the decision making frameworks we will subsequently present. Although we provide a mathematical/computational basis for the decision making frameworks we examine, we also seek to give intuitive (and sometimes counterintuitive) explanations for actual decision making behavior through in-class demonstrations. No prior experience with probability theory is needed (we'll cover what you need to know in class), but students should be comfortable with mathematical manipulation at the level of
Math 20 or
Math 41.
Last offered: Winter 2024
| Units: 3
CS 31N: 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 both understand the impact of past decisions (has climate change worsened economic inequality?) and inform future choices (can we use historical electronic medical records data about decision made and outcomes, to create better protocols to enhance patient health?). In this course I will introduce some of the most common quantitative approaches to counterfactual reasoning, as well as give a wide sampling of some of the many important problems and questions that can be addressed through the lens of counterfactual reasoning, including in climate change, healthcare and economics. No prior experience with counterfactual or "what if" reasoning, nor probability, is required.
Terms: Spr
| Units: 3
Instructors:
Brunskill, E. (PI)
CS 40: Cloud Infrastructure and Scalable Application Deployment
Trying to launch your next viral programming project and anticipating substantial user growth? This course will help you learn to implement your ideas in the cloud in a scalable, cost-effective manner. Topics will include cloud AI/ML pipelines, virtual machines, containers, basic networking, expressing infrastructure as code (IaC), data management, security and observability, and continuous integration and deployment (CI/CD). Through hands-on learning and practical examples, you'll learn to effectively deploy and manage cloud infrastructure. There is no out-of-pocket cost associated with this class and cloud credits will be provided for all students. Prerequisites: Programming maturity up to
CS 107. Familiarity with the command line, version control, and basic development tools to the level of
CS 45/
CS 104, in particular: Basic Unix command line utilities and administration; Editing code with a TUI editor such as vim, emacs, or nano; Using Git and GitHub for collaborative projects (i.e. branching and pull requests); Basic familiarity with package managers for languages and operating systems (e.g., pip, apt, homebrew); Prior web development or networking experience helpful but not required.
Last offered: Autumn 2024
| Units: 3
CS 41: 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: Pythonic conventions, data structures such as list comprehensions, anonymous functions, iterables, powerful built-ins (e.g. map, filter, zip), and Python libraries. For the last few weeks, students will work with course staff to develop their own significant Python project. Prerequisite:
CS106B,
CS106X, or equivalent.
Last offered: Spring 2023
| Units: 2
CS 42SI: From Player to Maker: 2D Engine-Based Game Development
This course aims to get students experienced with the game development lifecycle, developing multiple game projects from start to finish. Students will utilize various ideation tools for brainstorming (borrowed from the Design program), use the Unity Engine to develop 2D games in individual and collaborative settings, and publish their work on live websites by entering into friendly competitions known as "game jams". By the end of the quarter, students will have created three rapid-prototype games and gained the proper skills to make games on their own. Prerequisites: This course uses the Unity Engine, which uses the C# programming language. Because of this, you should be familiar with programming at the level of CS106A or the AP Computer Science exam.
Terms: Aut
| Units: 2
Instructors:
Borenstein, J. (PI)
CS 44N: 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 programming projects. Project topics will be selected from a diverse array of computer graphics concepts and historical elements.
Terms: Aut
| Units: 3
Instructors:
James, D. (PI)
CS 45: 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 course will teach you how to master the key tools necessary for being a successful computer scientist, such as the command line, version control systems, debuggers and linters, and many more. In addition, we will cover other key topics that are left out of standard CS classes, but that are essential to being a proficient computer scientist, including: security and cryptography, containers and virtual machines, and cloud computing.
Last offered: Spring 2023
| Units: 2
