In the three years I have taught AP Computer Science A, I have consistently produced top results with my students. In 2024, the overall percentage of 4s and 5s on the AP CSA exam was 46%. Across the three years I have taught the class, my average is 84%. In addition to that, I have spoken with several students who have completed my AP CSA course about the computer science classes they are taking in University. Each of those students has pointed to specific elements of their CS courses which were significantly easier because of what they learned in my class. I am able to consistently produce these results by selecting strong curriculum, conducting targeted one-on-one conferencing, and preparing them for real testing environments
The course that I teach is built on the AP CSA curriculum offered by CodeHS, plus projects which I have adapted from the College Board’s lab projects. This curriculum is built to allow students to progress through it at their own pace and to do so with minimal mass instruction on my part. This blended learning approach is a key part of the course’s design, and students consistently report that the freedom it gives them improves their understanding of the material in course evaluation surveys.
Another key part of the curriculum is the detailed, targeted feedback that I provide students. Over the time I have taught this course, I have prepared a set of pre-written, high quality feedback starters that address common errors students make when learning Java. This set of comments, coupled with CodeHS’s fast grade feature, allows me to give each student targeted feedback on exactly the concepts they are struggling with. I also keep notes on those issues which I notice in their work use that to inform our conferences.
One pattern I have noticed in my 14 years of teaching is that students consistently get less understanding from mass instruction than they do from individual instruction. Based on this realization, I have decided to ensure that as many students as possible receive as much individual instruction as possible in all of my classes.
A typical class day in AP CSA looks like this:
While I would like to get to every single student in every class, that is not always possible because I take as long as necessary with each individual conference. Behind my desk, I have a pair of whiteboards, and we will use those to work through the logic behind code. I will then open up a programming environment on my own computer and write some code which demos the concepts we were talking about. Finally, I let them use what I wrote as a guide to write their own code or notes to take back with them.
These conferences can be student initiated, and I find those to be the most effective. But If nobody has initiated a conference, then I will work through my roster systematically. Some days I go A-Z, some days Z-A, and some days I go based on how much of the curriculum they have finished. I mix up the method I use to ensure I see each student at a different point in the class rather than always seeing them at the end (when we may be pressed for time) or the beginning (when they may not be in a frame of mind to ask questions yet).
Finally, at the end of each unit we have an AP style test. These tests are design intentionally to be more difficult than the AP exam itself. The tests contain more difficult questions and they give the students less time than they will have on test day. In every other respect, they mirror the testing environment of the AP.
I have adapted this testing approach from the training approach used to develop training exercises for pilots, soldiers, and first responders. In those training exercises, the trainers will through multiple complications at the trainees in rapid succession, creating a highly complex environment that pushes them to the limit. After the training, the trainers lead a debrief where they analyze the results and discuss what went wrong and what worked well during the training. The philosophy behind this training is to expose the trainees to the most complex and stressful version of the event they are training for in a situation where failure does not have catastrophic consequences. I apply a similar approach to my test design and assessment. Even though the tests are challenging and push the students to do their best, the academic consequences are offset in several ways.
First, on all assessments, I mark questions extra credit when 50% of the class miss the question. It allows them to be less stressed about questions they do not know, as there is always a chance it will become extra credit. It also allows the assessment to accurately assess what they not know because I can put questions which I know to be at the edge of what their abilities and allow those to become extra credit if they cannot do them.
Second, I assess frequently, reducing the stakes of each individual assessment. My quiz category (which includes some AP style questions with AP time limits) frequently includes 20-30 grades at the end of the semester. A bad day on a few quizzes can be offset by doing well on a number of other assessments.
Finally, I prefer to offer generous retest opportunities for students after they have gone through test reviews with me. This retest forces students to review what they missed, focusing on the concepts which they struggled with, and then allows them to correct what their understanding based on the feedback they receive. The entirety of the preparation and delivery of these retests takes place during class time, so they do not increase homework load for students.