We will use codewalks, a common practice at software companies, to evaluate some of your programs. A codewalk is a presentation where you, the programmer, convince us, a jury, of specific properties of your program. You accomplish this by presenting your program and answering questions about it. We are most interested in

Each program will receive about 30 minutes of scrutiny. The code you present must the be the same code you turned in electronically. We will not tell you if we will conduct a codewalk for an assignment until after you have turned in a solutions for it. No excuses or exceptions; you read it here.

We conduct codewalks for two reasons, one pedagogic and one technical. The technical reason is that the assignments in this course offer a microcosmic example of typical software evolution, so this is an opportunity for you to hone your software construction skills. The pedagogic reason is that codewalks offer students the richest and most immediate critiques of their programs, while giving instructors a very effective way of judging student understanding.


A codewalk is primarily a presentation, by you to us, so all the usual formalities of presentations apply (except, of course, please don't dress formally for the occasion!). It is not a chat or discussion session. Treat it as you would a formal presentation in any other course; the only difference is the substitution of slides with code.

Your presentation must cover the programs that you wrote for the assigned homework. Follow these simple rules:

Be prepared to present the complete content of your program, But be flexible in your presentation. We may ask you to skip the details of some part, elaborate on the details of some other part, or even re-order your presentation entirely. Remind yourself of the goal of a codewalk.