I probably should have asked this last week since we just finished up finals today. But, there's always next year :)
How do you create a final exam that is a valid assessment of an entire year or computer science, but can still be completed in a couple of hours? Ideally I think a large-ish scale project would be the best assessment of where the kids are. But two hours just isn't enough time.
I'm not a fan of throwing 2 hours worth of multiple choice questions at students. Sure, I could probably come up with 75 or 100 multiple choice tracing questions. Make sure there are some recursive tracings and it could easily hit 2 hours.
The other side though is coming up with a coding assignment that is doable in 2 hours. To do that you'd probably have a few of the upper students finishing in 15 minutes. Sort of the same issue as the discussion we had a few days ago on students finishing labs quickly.
I normally do a hybrid of the two, and it works okay. A multiple choice section that should take about half the period and a couple of simple coding questions for the other half. This semester I only had one student that had to stop because time was up, although a few stopped themselves early because they knew that had done well enough for the average they wanted.
In my 2nd and 3rd year courses I normally do a take home project, but I don't think that would work as well in my first year AP-A course.