Software machines
Just found out that the great Bertrand Meyer teaches (almost) next door, at ETH Zürich. Didn't know that, lucky students there!
Furthermore, the draft of his upcoming introduction to programming book, Touch of class - learning to program well, is available online.
Make sure you read the inverted curriculum paragraph on the above page - why should students learn by reading their own or other student's crappy code? Show them the best!
From the book draft, I like the emphasis on well in the title a lot, and his definition of objects is cool:
An object is a software machine allowing programs to access and modify a collection of data.
One more for the books to read virtual shelf...