[plt-scheme] Perplexed Programmers
On Aug 30, 2007, at 7:56 PM, Richard Cleis wrote:
> 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.
Yes and no. I am targeting the course at middlers (3 out of 5 years)
not seniors. So they are not quite ready. However, a senior seminar
course with industry projects is also on my list. It just looks like
so much work that my research time would go to 0.
-- Matthias
>
> rac
>
>
> 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
>