We're excited that you are interested in taking an introductory computer science course! Our
CSE 121, 122 and 123
programming courses are designed for all students, regardless of how much prior experience you do or do not have and
regardless of your goals or reasons for taking the course. In that spirit, we want everyone to take the right first course
for them, especially since prior experience can come in many different forms. This self-placement will help you find that
course.
If you have never programmed before, or if your programming experience is limited, you will probably begin with CSE 121,
which is designed for students with no previous experience whatsoever. If you took a high-school programming course intended
to be similar to a first college course, like AP Computer Science A or IB Computer Science, you will probably start with CSE
122. If you have substantial previous experience you might even want to enroll in CSE 123. This guided self-placement will
help you make this decision by asking you questions about your background. These will include questions about the specific
courses and experience you have, how familiar you are with various topics and concepts, and how comfortable you are solving
practice problems. We hope this will help most people pick the right course for them, but if you still have questions at the
end, you can always contact our helpful course placement
advising team for more support.
This self-placement is adaptive, meaning which questions you see and in which order will depend on your responses. So
each student will have a slightly different experience, and if you go back and change your answers, you may see different questions
appear. This is to help make sure we get the information that will most help us recommend the best course for you. As you go through
the self-placement, you may also encounter terms or concepts you haven't heard of before. Don't be intimidated-- if you haven't seen
a topic or concept, that just means you should probably be in the course that teaches it! We encourage you to answer all questions
as truthfully as possible based on your current experience.
When you're ready, click the button below to begin.
CSE 121
Since you don't have any previous programming experience, we recommend you take
CSE 121. This course will start from the very beginning and will help you learn basic programming skills
along with other students with limited experience.
If you're more interested in using programming as a tool for data analysis and visualization,
you might also want to consider
CSE 160. This course also does not require any previous experience and focuses on using programming in Python
to solve problems using data sets drawn from the sciences, engineering, business and the humanities.
Although you have some previous programming experience, it sounds like you're still not entirely confident with some
topics. We recommend you take
CSE 121 to help you solidfy your understanding of that material before moving on to CSE 122.
You seem to have a solid grasp of the basics, so we recommend you take
CSE 122. This course will help you take the next step with your programming skills and learn to apply the concepts
you already know in new and exciting ways. CSE 122 is taught in Java, but is designed for students with a wide range of previous experiences,
so you should feel confident enrolling even if your experience is in another programming language.
You seem to have a solid grasp of the basics, so we recommend you take
CSE 122. This course will help you take the next step with your programming skills and learn to apply the concepts
you already know in new and exciting ways.
Since you previously took CSE 142, you may also want to consider enrolling in
CSE 143, which is being offered a few more times. This course is the direct follow-up to CSE 142 and will more closely align with your experience having
previously taken CSE 142.
You have a lot of experience programming and have a strong understanding of some more advanced topics, so we recommend
you take
CSE 123. This course will teach you to use your existing programming skills to implement and manipulate complex
data structures, and will also introduce some more advanced programming concepts.
If you're more interested in using programming as a tool for data analysis and visualization,
you might also want to consider
CSE 163. This course builds on previous programming experience similarly to CSE 123, but with a focus on writing programs
that manipulate and analyze different types of datasets. CSE 163 is taught in Python, but is designed to help students who have
previously programmed in Java adapt, so you should feel confident enrolling even if you've never used Python before.
You have a lot of experience programming and have a strong understanding of some more advanced topics, so we recommend
you take
CSE 123. This course will teach you to use your existing programming skills to implement and manipulate complex
data structures, and will also introduce some more advanced programming concepts.
Since you previously took CSE 142, you may also want to consider enrolling in
CSE 143, which is being offered a few more times. This course is the direct follow-up to CSE 142 and will more closely align with your experience having
previously taken CSE 142.
If you're more interested in using programming as a tool for data analysis and visualization,
you might also want to consider
CSE 163. This course builds on previous programming experience similarly to CSE 123, but with a focus on writing programs
that manipulate and analyze different types of datasets. CSE 163 is taught in Python, but is designed to help students who have
previously programmed in Java adapt, so you should feel confident enrolling even if you've never used Python before.
Based on your responses, there are multiple courses that might be a good fit for you.
We recommend you speak with a member of course placement
advising team so they can learn more about your situation and help you find the best fit.