<p>Theory and programming aren’t two separate worlds… you need both to be successful. For example, algorithms is a theory class, you won’t write a single line of code, but it teaches you about problem solving, run times, and how to approach problems efficiently and create algorithms. While you don’t do much programming in the class, the concepts are directly applicable to programming and show up in just about every other class you take.</p>
<p>Some classes are very hands on and have you write a ton of code… user interfaces, software engineering, and graphics come to mind as being really code-heavy with big projects, there are others as well. But those again aren’t meant to teach you programming languages, it’s teaching you CS. You’ll pick up languages and learn to code as you go, of course, and you’ll be taught style and organizational tips as you go, but after 61A and 61B the focus isn’t on learning different languages or how to write ifs and loops and objects.</p>
<p>Every class I’ve taken, even the more theory ones, are useful for writing programs though. And most have projects and such in class where you’ll apply the concepts.</p>