[plt-scheme] Perplexed Programmers

From: Richard Cleis (rcleis at mac.com)
Date: Thu Aug 30 19:56:08 EDT 2007

Have you ever considered using projects contributed from industry?   
(It doesn't seem likely that a broad enough match could be made to  
what you need to teach.)  It could be an effective way to raise  
awareness levels in my neck of the woods.


On Aug 30, 2007, at 4:58 PM, Matthias Felleisen wrote:

> 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 staff.
> I believe that the course is highly effective in improving their  
> programming skills.
> -- Matthias
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Posted on the users mailing list.