Stanford offers many AI-related courses and it can be difficult to know exactly where to begin. This handout provides a general overview of some of these classes and some advice about selecting the class that’s right for you.
If you have any questions, please feel free to come talk to the course staff! We’d be happy to offer one-on-one advice.
If you may want to major in CS
If you may want to major in CS, you should start in CS106A (no experience), CS106AX (some experience/classes), or CS106B (completed AP CS Java), and from there progress through the CS core courses: CS106A(X), CS106B, CS107, CS103, and CS109. If at any time you decide a CS major is not for you, no problem! You will have gained valuable skills that can serve you will in just about any other discipline. If you decide after CS106A that a CS major isn’t for you, you may want to jump over to CS193V, described below.
After CS109, you’ll be prepared to take our in depth AI foundation courses for majors, CS221 and/or CS229. With those courses as a foundation, you’ll be prepared to take all our advanced options like CS224N: Natural Language Processing with Deep Learning, CS231N: Deep Learning for Computer Vision, and more.
To Code (CS106A + CS193V), or Not To Code (CS193T)
If you do not plan to major in CS, the important decision to make is, do you want to learn coding or not.
If you want to learn to how to use AI in a more advanced and structured way that just chat, to increase your personal productivity or create workflows in your work, then CS193T would be a great fit for you! The focus is not on using AI for coding specifically, and more on designing agentic workflows and audit/accountability mechanisms for AI use cases more generally.
If you want to learn coding with AI (“vibe-coding”), then you’ll want to take CS106A to learn the very basics of programming in Python (variables, functions, etc), and then take CS193V, which picks up from there and shows you how to build much larger applications such as entire websites, using “vibe-coding.” This should prepare you for a career of doing something other than being a software engineer, but having the skills to build out pretty significant software projects and prototypes as part of that work.
We recommend that you take CS106A + CS193V if
- You are interested in learning to program computers.
- You have little to no prior programming experience (or if you have completed AP CS Java or equivalent, skip CS106A and go straight to CS193V).
- You do not plan to be a professional software engineer, so “vibe-coding” is enough for what you need.
We recommend that you take CS193T if
- You have no programming experience or aren’t specifically interested in/are already familiar with coding as an AI use case.
- You want to level up from conversational chat AI usage to more advanced, autonomous, and structured use cases for productivity, studying, research, and future career.