Software Engineering in Education Keynote by Bertrand Meyer.

May 6, 2010

Bertrand Meyer delivered the keynote.  He made many points showed some pedagogical examples (he clearly has a thing for invariants) and generally provided an entertaining talk. I will not “summarise” the talk but point out one or two of the aspects that spoke to me.

He looks at Software Engineering (SE) as comprising six things. This is neatly summarized in the DIAMON acronym. SE comprises Description, Implementation, Assessment, Management, Operation, and Notation.  While these should be roughly equal we certainly don’t see that equality in research.  One of the interesting chirps was that we cannot teach SE without Implementation. I agree; he said Implementation is to SE like sex is to phone sex…

He quoted some empirical statistics collected at ETH about what first year Computer Science students know. Interestingly (only) 18% of the students have no programming experience, but 10% have written a program with 100+ classes!  This is heterogeneity at its best. The obvious question then is how do one teach to these classes? And not bore/frustrate or loose your audience…

I agree with his belief that we must teach concepts, and then skills to support the concepts, and of course the concepts must be chosen for their intellectual value.  He addresses the issue of diversity by extending an existing code base (Traffic). this allows for beginners to read enough code, trace through code and generally get to grips with programming. Also it exposes them early on to programming to interfaces. More advanced students can quickly learn concepts they have
 not encountered before and move on to more challenging tasks.

He also highlighted an obvious but interesting problem for teaching programming/SE at first year level: there is a secondary audience, i.e. the lecturers who teach follow on course and has there requirements and needs… 

What approach do you think must one take?