From: Richard C. <rd_...@sb...> - 2003-12-09 21:25:27
|
Here's a question for us to discuss -- what kind of program would be the= ultimate teaching example for Zoolib? We instructional designers call that= an "exemplar" -- an example that captures the essence of what's being= taught. For example, when I rewrote Macintosh Programming Fundamentals for Apple, I= used a stripped down drawing application similar to MacDraw. Everybody was= asking "how do I update the screen, do scrolling, print, etc." and the= documentation didn't give a good example as it used the built in TextEdit= package that hid the mechanics of how to do all these things. But, as= another developer observed later, "every Macintosh application is, at= heart, a degenerate drawing application" so we had hit on the right= exemplar for the course. Since GUI programming is relatively common knowledge, as is the= model-view-controller approach, we wouldn't need to use the same example= today (and especially not with Zoolib.) I believe a Zoolib exemplar would= have a multi-part layout (probably different views of the same data), use= the internal database and/or networking, and have good reason to use= multiple threads. As a teaching tool, it should have fairly trivial= algorithms so we can focus on the UI. It should not depend entirely on any= "major" UI modules built in (e.g. the NPainter framework), as that doesn't= help people learn how to do the basics. And, ultimately, it should be a= simple version of a reasonably familiar application so we don't have much= of a learning curve for the app itself. I was thinking of a "contact manager" program -- one of those tools that= sales professionals use that combines an address book with reminders to= make contact (and provides a place to store notes.) That calls for a= multi-part layout -- a list of addresses, a selected address' details, and= notes on those calls. It's a natural for the database, and could be= extended to use a local "customer info" server. I could even see a use for= threads (as you type in a name, the DB lookup happens concurrently on a= thread.) But, this is a first thought and I'm open to suggestions. What do _you_= think? ...Richard |