Which programming class should I take?

UW offers many excellent introductory programming classes. These options include CSE 142, CSE 143, CSE 143X, CSE 190P, and AMath 301. This webpage will help you decide among them.

  1. Have you ever taken a college or AP programming class? If you don't know programming, proceed to the next question.
  2. What programming language do you want to learn? If you don't care, proceed to the next question.
  3. What style of problem motivates you? If you don't care, proceed to the next question.
  4. What are your schedule constraints?
  5. If you got to here, take CSE 142, which is your default choice. It is a highly-rated and well-established class.

Substituting CSE 190p for other classes: Some departments/classes have AMath 301 or CSE 142 as requirements/electives/prerequisites. Many departments and instructors are accommodating about permitting an exception to these requirements if you have taken CSE 190p, but of course you will have to explicitly request such permission. If the prerequisite exists because of specific skills, such as a need for knowledge of Java, MATLAB, or differential equations, then CSE 190p cannot substitute. If the prerequisite exists because students should have a general knowledge of computational thinking and programming, then the substitution often makes sense.

What programming class should you take after CSE 190P? You don't have to take any more programming classes. After CSE 190P, you will have the ability to write small programs to solve real-world data analysis and transformation problems. You will also know enough to use resources such as books and websites to learn more. But, you may find that you enjoy programming so much that you want to progress to the next level, or that you want to be able to solve larger and more challenging problems. Here are some options: