Preparing Students for the AP CSA Free Response Question
In this article, I share my approach to preparing students for the AP CSA Free Response section of the exam.
One thing I hadn't really thought about is it how much of a different skill it is for students to answer Multiple Choice questions verses Free Response questions. Sure, there are reading strategies involved. That was clear. Similar to students with word problems in math class. But also parallel to word problems, verses solving equations in math class, is the skill of reading code verses having to write code (or solving an equation verses first having to come up with the equation to solve). We think students are good at this because we give them lot of labs and program coding problems to write. But somehow, it's different. One they don't have a compiler or IDE to lean on. And frankly, reading comprehension and writing comprehension are just different. They are different skills in language arts, they are different skills in math, and they are different skills in computer science. So, having this distinction clear helps to bring some intentionality into teaching students how to approach free response questions.
Some things I did that seemed to help:
Tip 1 - Model Your Process for Solving FRQs
Everyone says it. Students need to practice free response questions! That's so true. Practice makes them better. It makes FRQs less scary. But it has to be practice where you demonstrate some of the strategies for approaching the FRQ, such as highlighting variables, other methods in the class, return types, sketching out the solution, highlighting key points in the description that might be easily forgotten, like that special case for handling a given value. These need to be modeled for students first. They aren't intuitive.
Tip 2 - Start FRQs Early
This one wasn't always easy, since there weren't a lot of "real" FRQs that could be done in the early units. But, now there are topic questions in AP Classroom that scale back an FRQ to where students can approach them as early as Unit 1. Make your own questions that are modeled after these early FRQs or have them write part of a solution, instead of the entire solution. You can also use resources like Coding Bat, which has early exercises where students can write the bodies of methods. I would have a free response section on every exam, even unit 1.
Tip 3 - Use Old FRQs
Once you've completed unit 4, it is time to start using FRQ 1 type old questions with your students.
Tip 4: Grade the Provided FRQ Student Samples
For each past FRQ, there are scoring guidelines and some sample student responses that have been scored. No guessing on your part for how these samples were scored. Train students on how to score FRQs by looking at one of the student samples together as a group. Then provide the students with the other two samples. I would have students work in pairs and some groups got one student sample and some got the other student sample, but everyone could get the same one or both. Have them try to score the student work and then go through it as a group. Be sure that the students are providing rationale for each point of the scoring. Did they get the right score for the right reason?
Tip 5 - Mock Grading
Let's face it, the more practice you give, the more you have to grade, OR do you? I say, you don't! Teach your students how to grade their own FRQs. If you have already done Tip 4 above with your students, you've effectively completed their "reader training". Now, have them pair up and change papers with someone. Each student will score the other student's work and then have a conversation on what points they feel their partner earned and what points they don't think were earned. Bonus opportunity, have each student share what they learned by looking at the other student's work: "You earned this point for call the method XYZ correctly, when I wrote my solution, I forgot that the method returned a value and didn't store it." Be sure that you are setting this up in a way that fosters collaboration and not competition. Definitely reassure students that this is an exercise for everyone to grow from and that it is not going to be used for a grade. You can also start having them grade their own paper before handing it in.
Tip 6 - Group Grading
This tip can be scary at first, but believe me, kids LOVED it. I had a document camera in my classroom where I could put a paper and the camera would project it for everyone to see. Mine was super small and cheap, unlike the more expensive document cameras out there. You can get one for about $100 on Amazon. I would use those last 5 - 10 minutes of class time when we have wrapped up for the day, and grade FRQs in front of the class, talking through what was earned and what was missed. I always did this anonymously, so students wouldn't know who's work I was looking at, much easier now that you could have them type their responses. What seemed scary to some students at first, eventually, had them asking, "Can you do mine next please?". They loved the quick feedback and extra explanation. Since we cultivated an atmosphere of learning together, students weren't upset by having their work graded in front of their peers. Of course, I never got to everyone's paper and I certainly was choosey about the work I shared. I didn't share the 0 papers, since that wouldn't have provided much group learning and would be humiliating to that student. But if done right, students get to see how things are scored. Knowing the scoring process really does help them think critically about their work.
Tip 7 - Identify Scoring Guidelines Patterns
There are patterns to the scoring guidelines - things the readers are looking for in every question. Take time to look for those patterns with your students. FRQ 1 will likely have a method call (something learned in Unit 2), use of if statements, and loops. FRQ 2 will have points for things like class header, instance variables, constructors, other methods. FRQ 3 will most likely have a traversal of an Array or ArrayList
. Make sure the students know when to use a traditional for loop verses an enhanced for loop. Do they know how to traverse a 1D structure backwards and when this would make the solution easier? What about comparing adjacent elements? Think of all the different ways that you would want to traverse a 1D array (can't think of them, look at old FRQs), provide instruction on as many ways as you can think of. FRQ 4, similar to 1D structures, be sure your students can traverse a 2D array. Think of all the ways that you would want to traverse a 2D array: row-major, column-major, zig-zag, etc.
More Resources