[plt-scheme] Perplexed Programmers

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Thu Aug 30 18:58:51 EDT 2007

On Aug 30, 2007, at 12:23 PM, Marco Morazan wrote:

> On 8/29/07, Brent Fulgham <bfulg at pacbell.net> wrote:
>> 2.  Engineering firms have a strong system of apprenticeship.
>> 3.  Engineering firms have a strong culture of review, in which  
>> senior
>> engineers review the designs largely created by teams of lower-level
>> engineers.
> I have tried my hand at this in the setting of undergraduate
> education. I have my senior undergraduate RAs critique the work of
> less senior students. Once they are satisfied the work makes it to my
> desk where I get a chance to critique it. Students writing programs
> become extremely frustrated, but those that buy into the model benefit
> greatly from it.

After some 10 lectures or so, the "how to design systems" course is  
almost entirely based on code reviews plus some ad hoc lectures in  
the middle of code walks. We (my tas and i) act as masters; the  
students are apprentices.

I started this in 1998 at Rice during PL and refined this tradition  
over the past 10 years for HtDS.

For the past two iterations, I have conducted the code walks in the  
spirit of IBM's Fagan articles:

  -- all programming happens in pairs, not teams
  -- we have some 30 pairs
  -- the projects range from 5Kloc in a decent scripting languages to  
12Kloc in a mainstream language (aka Java)
  -- maintenance of your own code and other people's code over the  
semester is required
  -- pairs are switched

  a pair presents its design, code, and tests
  3 students are the panel

The panel inspects the code of the pair. Nobody else is allowed to  
intervene. The class can ask if the panel fails. We step in if both  
fail to see problems.

All pairs have a 45 min review at the end of the semester with course  

I believe that the course is highly effective in improving their  
programming skills.

-- Matthias


Posted on the users mailing list.