The Fall 2026 CS 31 website is not yet available.
For enrollment questions, see https://cs.ucla.edu/classes/enroll/31/ .
See the posted textbook information.
You should enroll in CS 31 if you have written the following in any programming language:
Otherwise, you should enroll in CS 30, Principles and Practices of Computing, a course designed to give students without prior programming experience the necessary background to succeed in CS 31 and beyond.
Fall CS 31 assumes you have the prior experience indicated above. It is unwise to take Fall CS 31 without this prior experience: Of the people who've tried that in the past, more than half did not complete the course with a C or better. Don't be unwise. Since we have taught tens of thousands of students and you haven't, you should trust our judgment.
But as a CS, CSE, or CE major, my taking CS 30 will put me a quarter behind other people. Only for a short time. There's enough flexibility in the curricula for these majors for someone who takes CS 30 to have caught up by the fifth quarter; this is an insignificant difference. Remember, some students start UCLA with credit for several quarters of calculus, and some don't. We've had plenty of students before who have switched majors to CS after taking CS 31 in Winter or Spring and finished in four years. (Of course, they had been taking the right math and physics courses in their original major.) So "starting behind" is a non-issue.