Hi Jeff,
At this time, rather than an exam I'm having students:
- write short answers to multiple (3/week) quizzes on concepts and fundamentals
- present their implementations in class, explaining their process and their chosen implementation
- conduct a final presentation in which they must effectively explain how a modern computer works, and what we didn't cover in class (optimizations, some depth)
I might have a midterm and final, but only if the students are having difficulty with concepts (so far they're doing great!)
My class Web site is here.