[Edu-sig] Design patterns

Kirby Urner urnerk at qwest.net
Wed Aug 24 01:29:33 CEST 2005



> -----Original Message-----
> From: Chuck Allison [mailto:chuck at freshsources.com]
> Sent: Monday, August 22, 2005 12:43 PM
> To: Kirby Urner
> Cc: 'Arthur'; 'Scott David Daniels'; edu-sig at python.org
> Subject: Re[2]: [Edu-sig] Design patterns
> 
> Hello Kirby,
> 
> Since this discussion has swerved a little, I'd like to pose a query.
> I've been using patterns since 1995 and am teaching a course starting
> Wednesday (a full semester course) on Design Patterns using the Heads
> First book. My query: do you have any ideas you might proffer for
> programming assignments? I'd like to give a handful of programming
> assignments throughout the semester that aren't as short and cutesy
> as what's in the book. Any ideas would be greatly appreciated!


Hi Chuck --

You could throw out ideas for big projects that Python has gotten used for:
a) air traffic control and 
b) languages training for the military
c) some other example only you know about (like El Fish)

(or are you teaching this as a Java class and just lurk with snake charmers
for ideas -- like I might do in a Ruby conference full of gem smiths).

In case 'a)' there's a backend database to consult, and a Tk canvas object
for showing airplanes along their vectors, converging/diverging from airport
termini.

In case 'b)', Python was glue around the game engine, knitting to a speech
recognizer that'd give feedback as to how a soldier/player was doing using
Arabic in Iraq (e.g. 'game over' if things were going badly -- like if a
cuss word was said).

I draw both of these examples from Pycon in March 2005, though I could have
chosen other examples from EuroPython or OSCON, also events on my calendar
this year.

Probably an important design pattern common to both of these applications is
MVC (model-view-controller).  A key design pattern ideal is loose coupling
without losing coupling i.e. you want to stay connected, but you don't want
to overdo it, in case you want to recombine the various components down the
road.  MVC would let us swap in a different database on the back, and only
have to teach the model about it, while the controllers and outputted views
would go against the same API and use the same markup (or whatever).

That being said, I think cutesy, short (even sexy) programs *are* what's
needed in an intro design patterns course, since it's the *patterns* that
matter, not industrial strength vertical market source code, crufted with
10,001 years of specific knowledge domain content (like the stuff I do for
RHDS/MDRC -- clinical data around heart procedures, and tons more pattern
language where that came from (not being an MD, I never had to learn much of
it)).

But I haven't seen your syllabus and don't know where in the curriculum your
particular course fits in.  I'm simply extrapolating from my own position,
and our circumstances may not match (e.g. you probably didn't spend most of
the day mixing wood stains and applying them to wood products -- like,
welcome to Oregon/SiliconForest).

Kirby




More information about the Edu-sig mailing list