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.
CSE 121
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.
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.
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.
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.
CSE 123
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.
CSE 123
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.
Talk to Advising
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.
Thank you for taking the CSE 12X Guided Self-Placement Survey.
To help us understand and improve the self-placement process, we invite you to participate in a research study that seeks to understand students' journeys through and beyond the CSE 12X sequence. If you choose to participate in the study, you will be asked to fill out surveys periodically over the next few years. Each survey will take about 10-20 minutes, and you will fill them out at most three times per quarter, with lower frequency later on. There will be a total of 9 to 11 surveys over two years.
A few things to know:
You can choose whether or not to participate in this study, and your decision does not impact your grades, student standing, or relationship with the University of Washington Seattle or Northwestern University.
You can stop participating in this study without penalty at any time by emailing the research team at melissac@u.northwestern.edu.
You must be 18 years old or older to sign up for the study and enrolled at the University of Washington Seattle
This study has been approved by the Northwestern IRB STU00223900: Evaluating the impact of the self-placement process for introductory computer science courses. The PI for the study is Professor Eleanor O'Rourke.
If you fill out all of the surveys for a given quarter, you will be entered in a raffle to receive a $20 gift card each quarter with a 1 in 30 chance of winning a gift card.
To learn more about this study and/or consent to participate, please fill out the consent form.
If you have any questions, please reach out to the graduate student investigator, Melissa Chen, at melissac@u.northwestern.edu.