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
- correctness: does it do the right thing?,
- extensibility: how adaptable is it to related tasks?,
- robustness: is it built like a house of cards?, and
- performance: does it avoid poor implementation decisions?.
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 content of your slides.
Your presentation must cover the programs that you wrote for the assigned homework. Follow these simple rules:
- We will provide an LCD projector and have a computer in the room. But make sure your files are easily accessible—you will lose valuable time if, for instance, you haven't put the files in an accessible place. (Lost time means lost points, because you have to prove the quality of your code to us.)
- Put some effort into making sure the presentation is reasonable and your code is readable. Break excessively long and unruly lines to a more manageable length. Don't split a function body across page break boundaries. Use common sense. We really are going to read your code. If the physical presentation is unreadable, it’s going to be harder to convince us of its behavior.
- Other than formatting changes, you may not alter your program. In particular, you may not change its behavior in any way.
- You should be able to run your program, with a minimum of hassles, during the presentation. Therefore, please set it up to be accessible from the Brown computer science department, and bring instructions on how to run it. If you cannot run your program, we will consider it incorrect.
You should present the complete content of your program. 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.