The question is simple and direct here: what objective criteria are helpful* in admitting students to AP CS courses?

(By "helpful," I mean criteria that have some worth as indicator of future success in the course.)

Some context might help. Where I teach, there is no computer science pre-requisite to AP CS Principles, and when there was only AP CS A, there was not for that either. For most of my students, their first CS class is indeed an AP-level course.

Absent of this background, it is hard to predict what objective factors (I stress "objective" here for a reason) will help indicate how a student might perform at the AP level in CS. This is also crucial because all AP courses I've ever taken or taught have required applications due to both the rigorous nature of the course and the need to whittle down an applicant pool that is larger than the number of available spots in the course.

I have a couple theories of my own based on a few years of admitting students using several factors, but I will wait to self-answer until others share their practices.


Good answers need to include not only what the criteria used is, but also evidence - either in research or local practice - that supports the correlation between the chosen criteria and the eventual success, or lack thereof, of the students in AP CS courses (or, at a minimum reasonably advanced high school level CS courses).


I don't have criteria with evidence that are indicators of success, but I have some I use that can indicate the lack thereof.

At my school, although we are not allowed to specify prerequisites for our courses, the other programming teacher and I "vet" prospective programming students using data from students' literacy and math history (the two of us combined teach VB.NET, C#, SAS, and AP CS A). The literacy and math scores come from the prior year's end-of-course tests. This data is made available in an interface provided by, I believe, Pearson Education. For each student we can see something like the following:

Student Data

Where the colors/shapes mean the following:


We have found that Red or Yellow in math and/or Red in literacy are accurate predictors of a student who will struggle in programming. Just looking at the data from last semester, when I taught programming I (VB.NET), the only C's and D's I had in the course were the students who had Red or Yellow math scores or Red literacy scores.

Every semester when we go through our rosters (we are doing it right now for next fall), if we encounter a student who has signed up for a programming course who does not have a strong math or literacy foundation, we first approach their counselor, show them our prior semesters' data, and talk to them about the student's chances of success. The counselor will then talk to the student, and maybe the parents. Sometimes the student will choose to take something other than programming. Sometimes the student will want to take programming anyway, and that is fine. We just want the student (and parent(s)) to be aware that, if they want to be successful in programming, considering their history, they may have to work extra hard or get extra help.

While this process we go through may smack of "profiling", our goal is to help every student be as successful as they can be.

Note that the converse, a student who has all "Green" data, is not necessarily an indicator that they won't struggle. There are, obviously, other factors, many not quantifiable until you get to know the student: motivation, maturity, perserverence, and hard work.

  • 1
    $\begingroup$ Actually, it doesn't seem like profiling. It seems like using their own performance to try to get a handle on future performance. And your final caveat is important. Ganas. I find the movie Stand And Deliver to be inspiring in situations like this. Go watch it again. Aspire to be as good as Jaime Escalante as a teacher. $\endgroup$
    – Buffy
    Apr 28 '18 at 17:33
  • $\begingroup$ I had to look up ganas. Thank you for teaching me a new word. And I've never seen the movie. It is now on my list. $\endgroup$
    – Java Jive
    Apr 28 '18 at 18:47

This won't make a direct suggestion about criteria, but I think is an important note to guide your "admission" process. I doubt that you will find much reputable repeatable research to guide you, so a suggestion like this one (Java Jive) combined, perhaps with an aptitude test or an application for admission with an essay (What do I hope to gain from this course?) might whittle down the numbers.

However, the most important criteria I can offer is not to rely completely on your criteria. If you think in your mind that X and Y and Z should be enough to admit a student, then also include at least a few students who don't meet those criteria. What you are doing here is testing your own assumptions that you can then refine in the future if you wind up in a similar situation in the future. Whatever criteria you use are probably wrong in some ways, so make the edges of the selection process fuzzy in several ways. That is why an essay is helpful as you can use intuition on the few cases you need to fill out the class after you have a core of students you think are pretty solid.

This idea actually comes from Ed Dubinsky, a marvelous educator (and human being) who once ran a program that used just such a mechanism. You can probably let the "specials" account for up to about 10% of the class. But keep records also, so that you can evaluate your own process in the future.

However, if the parents of your students are likely to sue you if you reject jonny/suzy, then you have to be able to justify your choices and should not give solid criteria that you don't follow.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.