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.