Could You Pass the AP Computer Science Exam?
There is an article in the Washington Post about a school board member who took a standardized test for 10th grade students. To say he didn’t do well would be an understatement. This got me to wondering – how would professional developers do if they took the Advanced Placement Computer Science exam? I remember the first time I looked at one. At the time I was most recently a professional developer with about 18 years of experience and a masters in Computer Science. I confess that I would not have enjoyed taking it “cold.” Now since then I have taught the APCS curriculum and even served as a reader (i.e. grader) of the exam. I think I could do ok today even after having been out of the classroom for a while. Many professional developers would also do just fine I am sure. This is especially true for those recently out of school. But I wonder how well experienced but self-taught professionals would do?
There are some sample APCS questions at the College Board web site that you can look at. The biggest complaint many people have with the exam is that it is too Java specific. This suggests that people who program in other languages might have some particular problem with the exam just on that basis. But most professionals pick up languages fairly quickly and Java is enough like other languages in the C family that this should not be an insurmountable problem. I think for most professionals the free-response part which involved coding would probably be the easy part of the exam. Maybe no trouble at all. The multiple choice questions might actually be the hard part.
There are sample multiple choice questions in the AP Computer Science A Course Description (.pdf/1.6MB) and some of them are just tricky. Actually I had one student tell me they were all examples in how not to code. Not completely fair because of the constraints of the exam but still something that would give a lot of professionals pause. I can see some of them preferring, as I might, to just re-write the code so that it makes more sense. This highlights a limitation of all computer science exams though – the need for artificial constraints just to make the test “work.” For this reason many teachers I know greatly prefer to grade projects than tests and quizzes.
It’s hard to evaluate the quality of one’s programming knowledge and ability. We are in a society that values easily quantifiable metrics and standardized tests give us that. or at least the illusion of that.
If you are a professional developer, especially someone who was largely self-taught, have you looked at the APCS exam? What do you think of it? A piece of cake for you to take and pass? Too academic and not practical enough? Something else again? I’m just wondering. Something to think about today. But I’d really love some comments from others.
Comments
Anonymous
December 06, 2011
I am not a self-taught professional, at least not yet, but I was a student that did take the AP Computer Science exam a few years ago. I've always found that the free response section was much easier than the multiple choice. My thought was writing code is something I actually know how to do. I can read documentation and APIs and then code from there, but I can also write code from scratch too, that's essentially the basis of my self taught foundation - writing code. The multiple choice, as your student said, "they were all examples in how not to code" is pretty close. Nobody writes five different versions of a loop to print out blocks of stars in a certain pattern. The multiple choice were my weakest portion, by far. I'm not quite sure about the Java-specificness problem. I found that there was a lack of Java-specifics in the A exam, while there was at least a little more in the AB exam, but not much then. I started coding in PHP and JavaScript and when I took the exam, I never really though it was too Java-specific. Now, if you were dealing with their silly anonymous objects, then maybe, but even then. I would be interested in what actual developers think about the exam too.Anonymous
December 06, 2011
<i>The biggest complaint many people have with the exam is that it is too Java specific.</i> I was a professional developer until the 1990s, before I went to academia. My complaint about the exam is that it's too <i>programming</i> specific; it might as well be called the AP Programming Exam. I think it's useful for beginning students to learn about a range of big ideas in computer science, but their knowledge can only be tested indirectly through questions about how to read and write programs. For example, if a specific sorting algorithm is required to be covered in an AP CS A course, pseudocode should be enough to probe students' understanding of the concept. (And I'm leaving aside the range of concepts that don't seem to be covered at all in AP CS courses...)