150+ Stanford On-Campus Computer Science Courses Available Online
Over the last decade, computer science has experienced a burst in popularity among students worldwide, and at Stanford University in particular: computer science is Stanford’s most most popular field of study. And Stanford’s CS curriculum has grown from a few core subjects to a tapestry of specializations and integrated disciplines, as you can see below.
Most of Stanford’s on-campus computer science courses have a companion website. Some are only open to Stanford students. But many are open to everyone, allowing learners worldwide to access the course slides, readings, and assignments. And some even provide video lessons — for instance:
- CS106B Programming Abstractions
- CS107 Programming Paradigms
- CS110 Principles of Computer Systems
- CS221 Artificial Intelligence
- CS229 Machine Learning
- CS231N Convolutional Neural Networks for Visual Recognition
- CS224N Natural Language Processing with Deep Learning
In this article, we compiled a list of over 150 Stanford on-campus computer science courses that are, to varying degrees, available online.
For your convenience, we’ve broken down the courses by topic. You can click on a topic to jump to the corresponding courses.
Table of Contents
- Methodology
- Stanford Introduction to Computer Science Courses
- Stanford Data Structures & Algorithms Courses
- Stanford Computer Systems Courses
- Stanford Theoretical Computer Science Courses
- Stanford Artificial Intelligence & Machine Learning Courses
- Stanford Computer & Network Security Courses
- Stanford Information Management & Analytics Courses
- Stanford Human-Computer Interaction Courses
- Stanford Graphics Courses
- Stanford Application Development Courses
- Stanford Robotics Courses
- Stanford Games Courses
- Stanford Computing & Society Courses
- Stanford Biocomputation Courses
- Stanford Computer & Healthcare Courses
- Other Stanford Courses
Methodology
First, we built a list of Stanford’s CS offering by looking at their current course catalog and Engineering Everywhere portal. Second, we checked the courses one by one to see which had a companion website. Third, we organized them into subjects according to Stanford’s own undergraduate and graduate guidelines.
Without further ado, here are Stanford’s on-campus courses available online. Courses that include video recordings are denoted with the 🎦 icons.
Stanford Introduction to Computer Science Courses
- CS101 Introduction to Computing Principles
- CS105 Introduction to Computers 🎦
- CS106E Exploring Computing
Stanford Data Structures & Algorithms Courses
Stanford Computer Systems Courses
- CS106B Programming Abstractions
- CS106B Programming Abstractions 🎦
- CS106B Programming Abstractions, Winter 2018
- CS106B Programming Abstractions, Winter 2018 🎦
- CS106X Programming Abstractions in C++
- CS107 Computer Organization & Systems
- CS107 Programming Paradigms 🎦
- CS107A Problem-solving Lab for CS107
- CS107E Computer Systems from the Ground Up
- CS110 Principles of Computer Systems
- CS110 Principles of Computer Systems 🎦
- CS140 Operating Systems
- CS140E Operating Systems Design and Implementation
- CS143 Compilers
- CS149 Parallel Computing
- CS240 Advanced Topics in Operating Systems
- CS240LX Advanced Systems Laboratory, Accelerated
- CS244b Distributed Systems
- CS315B Parallel Programming
- CS348K Visual Computing Systems
- CS357S Formal Methods for Computer Systems
Stanford Theoretical Computer Science Courses
- CS103 Mathematical Foundations of Computing (Fall 2021)
- CS103 Mathematical Foundations of Computing
- CS103A Math Problem-Solving Strategies
- CS106A Programming Methodologies
- CS106A Programming Methodology 🎦
- CS106L Standard C++ Programming
- CS109 Probability for Computer Scientists
- CS151 Logic Programming
- CS157 Computational Logic
- CS154 Introduction to the Theory of Computation
- CS154 Introduction to the Theory of Computation 🎦
- CS168 The Modern Algorithmic Toolbox
- CS242 Programming Languages
- CS261 Optimization and Algorithmic Paradigms
- CS334A/EE364A Convex Optimization I
- CS334A/EE364A Convex Optimization I 🎦
- CS334B/EE364B Convex Optimization II
- CS334B/EE364B Convex Optimization II 🎦
- MS&E213/CS269O Introduction to Optimization Theory
- CS254 Computational Complexity
- CS254B Computational Complexity II
- CS358 Programming Language Foundations
- CS243 Program Analysis and Optimizations
- CS265 Randomized Algorithms and Probabilistic Analysis
- CS351 Open Problems in Coding Theory
- CS349D Cloud Computing Technology
Stanford Artificial Intelligence & Machine Learning Courses
- CS229 Machine Learning
- CS229 Machine Learning 🎦
- CS229 Machine Learning 🎦
- CS229M Statistical Learning Theory
- CS205L Continuous Mathematical Methods with an Emphasis on Machine Learning
- CS221 Artificial Intelligence: Principles and Techniques
- CS221 Artificial Intelligence: Principles and Techniques 🎦
- CS131 Computer Vision Foundations and Applications
- CS231A Computer Vision, From 3D Reconstruction to Recognition
- CS231N Convolutional Neural Networks for Visual Recognition
- CS231N Convolutional Neural Networks for Visual Recognition 🎦
- CS236G Generative Adversarial Networks (GANs)
- CS239 Advanced Topics in Sequential Decision Making
- CS224N Natural Language Processing with Deep Learning 🎦
- CS224W Machine Learning with Graphs
- CS224W Machine Learning with Graphs 🎦
- CS224U Natural Language Understanding
- CS224V Conversational Virtual Assistants with Deep Learning
- CS294S/CS 294W A Project Course on Building the Best Virtual Assistant
- CS224S Spoken Language Processing
- CS20 Tensorflow for Deep Learning Research 🎦
- CS230 Deep Learning 🎦
- CS234 Reinforcement Learning
- CS234 Reinforcement Learning 🎦
- CS 329S: Machine Learning Systems Design
- CS236: Deep Generative Models
- CS330 Deep Multi-Task and Meta Learning
- CS330 Deep Multi-Task and Meta Learning 🎦
- CS331B Interactive Simulation for Robot Learning
- CS320 Value of Data and AI
- CS217 Hardware Accelerators for Machine Learning
- CS472 Data science and AI for COVID-19 🎦
- CS335 Fair, Accountable, and Transparent Deep Learning 🎦
- CS348I Computer Graphics in the Era of AI
- CS528 Stanford MLSys Seminar Series
Stanford Computer & Network Security Courses
- CS110L Safety in Systems Programming 🎦
- CS144 Introduction to Computer Networking
- CS144 Introduction to Computer Networking 🎦
- CS155 Computer and Network Security
- CS244 Advanced Topics in Networking
- CS344 Topics in Computer Networks
- CS253 Web Security
- CS253 Web Security 🎦
- CS255 Introduction to Cryptography
- CS350 Secure Compilation
- CS355 Advanced Topics in Cryptography
- CS356 Topics in Computer and Network Security Stanford
Stanford Information Management & Analytics Courses
- CS102 Working with Data Tools and Techniques
- CS124 From Languages to Information
- CS145 Data Management and Data Systems
- CS166 Data Structures
- CS245 Principles of Data-Intensive Systems
- CS246 Mining Massive Data Sets
- CS246 Mining Massive Data Sets 🎦
- CS246H Mining Massive Data Sets Hadoop Lab
- CS276/LING 286 Information Retrieval and Web Search
- CS448B Visualization
Stanford Human-Computer Interaction Courses
- CS147 Introduction to Human-Computer Interaction Design
- CS247 Interaction Design Studios
- CS347 Human-Computer Interaction Research
- CS377E Designing Solutions to Global Grand Challenges: Human-Centered AI
- CS377U Understanding Users
- CS422 Intelligent Avatars Lab
- CS547 Human-Computer Interaction Seminar
- CS547 Human-Computer Interaction Seminar 🎦
Stanford Graphics Courses
- CS148 Introduction to Computer Graphics and Imaging
- CS228 Probabilistic Graphical Models: Principles and Techniques
- CS233 Geometric and Topological Data Analysis
- CS248 Interactive Computer Graphics
- CS348A Computer Graphics: Geometric Modeling & Processing
- CS348C Computer Graphics Animation and Simulation
- CS448 Computational photography
- CS468 Non-Euclidean Methods in Machine Learning
Stanford Application Development Courses
- CS142 Web Applications
- CS190 Software Design Studio
- CS193A Android App Development
- CS193A Android App Development 🎦
- CS193P Developing Applications for iOS using SwiftUI
- CS193P Developing Applications for iOS using SwiftUI 🎦
- CS193Q Introduction to Python Programming
- CS193X Web Programming Fundamental
- CS194A Android Workshop
- CS194 Software Project Experience
- CS47 Cross-Platform Mobile Development
Stanford Robotics Courses
- CS223A/ME320 Introduction to Robotics
- CS223A Introduction to Robotics 🎦
- CS225A Experimental Robotics
- CS327A Advanced Robotic Manipulation
- CS237B Principles of Robot Autonomy II
- CS326 Topics in Advanced Robotic Manipulation
Stanford Games Courses
- CS193U Video Game Development in C++ and Unreal Engine
- CS227 Knowledge Representation and Reasoning
- CS227B General Game Playing 🎦
- CS269I Incentives in Computer Science
Stanford Computing & Society Courses
- CS106S Coding for Social Good
- CS181/181W Computers, Ethics, and Public Policy
- CS182 Ethics, Public Policy, and Technological Change
- CS184 Bridging Policy and Tech Through Design
- CS202 Law for Computer Science Professionals
- CS204 Computational Law
- CS21SI AI for Social Good
- CS278 Social Computing
- CS322 (Social and Information) Network Analysis
- CS325B Data for Sustainable Development
- CS384 Ethical and Social Issues in Natural Language Processing
- CS398 Computational Education
- CS+Social Good: Implementing Social Good Projects
Stanford Biocomputation Courses
- CS235 Computational Methods for Biomedical Image Analysis and Interpretation
- CS273A The Human Genome Source Code
- CS275 Translational Bioinformatics
- CS279 Computational Biology Structure and Organization of Biomolecules and Cells
Stanford Computer & Healthcare Courses
- BIODS220 (CS271, BIOMEDIN220) Artificial Intelligence in Healthcare
- CS342 Building for Digital Health
- CS371 Computational Biology in Four Dimensions
- CS372 AI for Disease Diagnosis & Information Recommend 🎦
- CS522 Seminar in Artificial Intelligence in Healthcare 🎦
- CS523 Research Seminar in Computer Vision and Healthcare
Other Stanford Courses
- CS007 Personal Finance for Engineers
- CS349F Technologies for Financial Systems
- CS251 Cryptocurrencies and Blockchain Technologies
- CS206 Technical Foundations of Electronic Commerce
- CS208E Great Ideas in Computer Science
- CS198 Teaching Computer Science
- CS249i The Modern Internet
- CS298 Seminar on Teaching Introductory Computer Science
- CS97SI Introduction to Programming Contests
- CS9 Problem-Solving for the CS Technical Interview
- CS197 Computer Science Research
- CS238 Decision Making under Uncertainty
- EE185/285, CS241 Interactive Light Sculpture Project
- CS348E Character Animation: Modeling, Simulation & Control 🎦
- CS476A Music, Computing and Design I
- CS520 Knowledge Graphs 🎦
- CS41 The Python Programming Language
- CS46N Big Data, Big Discoveries, Big Fallacies
- CS83 Playback Theater