After I had a chance to print your text on my customer’s site (as you will see I’m “old school”: started my life with punch-cards, “paper and pencil” for application modeling and testing and all kind of real world hands-on techniques) some annotations:
1) programming happens in the REAL WORLD (!) not in codelines
- so tell nice little stories about the problem
- enhance this story with common-sense solutions
- and find a nice little story so your students will remember your pattern forever
2) use use-cases to bring “the problem” down to real-world stories and SOLVE it there
in our every day life, we solve a lot of these “academic problems” with ease
- Each morning, Dad, Mom, and 3 children (2 teenagers) battle for resources (bathroom, coffe-machine, pc, …)
=> this is CONCURRENCY at it’s best
3) Try to use both halfs of the brain (code, abstraction, writing texts all sit in one side)
- use pictures, sketches, (if you have some talent: COMICS are best –Dilbert –Simpson,Homer …)
On your “Neutral Data Formats”
I think it is very easy to use some TIME WARP (again) in students projects.
- just use the behaviour of the ordinaty customer changing his requirements day by day
- the routines written on day 1 need some additional parameters on day 4
and do not forget: all the calls scatterd in your application have to be changed to deal with the new signature
- on base requirement is to ARCHIVE information (and have it processable for at least 10 years)
so you will SEE that “strong tagging” or good old COBOLs “move corresponding” are ways fighting aging-problems.
Make a simple experiment (once again real-world):
have 3 groups of students
develop 3 different questionairs (just 1-page forms)
with the same position of data-entry fields, but different labels.
Bring just one copy of each form with you plus some cutting knife)
=> “to reduce costs, no photocopier avail”
- we have to turn these forms into overlays by cutting out the fields
- “data” is stored on a blank sheet of paper while you re-use the overlay mask
=> mix the plain data-pages from the 3 groups
- interpret the data aginst randomly chosen overlays
- enjoy the fun
=> this should show the benefits of storing data as XMLs, serialised data as key-value pairs etc.
Using the old technique of fables and stories with a morale at the end:
Dont use “Actors” in a use-case,
but let “real people” act in a user-story
This will make learning, understanding, solving problems much easier.
You do not learn how to react in a special problem situation.
You learn how to evaluate the problem and react accordingly.
And it will lead you to the mantra “THINK! (first)”
And don’t be afraid using the stand-up-comedians opening:
“on my way to this session, I encountered …..”
these stories makes your lessons worth attending and “stick” in the memory.
HTH, Success, Uli