I'm thinking Scheme. You can get into it really simply, using it as just an imperitive language for graphics, or perhaps even generating HTML.
Oh, did I mention she also wants to get into HTML in a big way? She wants to maintain a Guild at Neopets.
I thought simple programs to generate the pages like:
(html-meta 'Title (style 1))
(html-heading 1 "Schedule for Today")
(html-table (html-table-head "Time" "Activity")
(map html-table-row (Activity-times)
You get the idea. I think I can demonstrate simple data types, how to execute simple functions and define them, introduce concepts like conditionals and map. All in the context of outputting simple HTML pages.
Maybe introduce loops and do something like:
(setq pages '(intro activities fun
(do ([page (car pages)]
[pages (cdr pages)])
((not null? pages))
(html-meta (title page) (style page))
And push down the individual page detail down into specific routines, while automating the common elements for look-and-feel.
I think stuff like the above is a lot more understandable and maintainable than straight HTML. Especially since I have a choice of good easy-to-use editors for Scheme code. I'm looking at the PLT Scheme environment.
I'm thinking that straight functional will be easier to grasp than languages that depend on infix algebra.
I've looked at Logo and I'm turned off by it. It's just a toy. What's learned there will necessarily need to be thrown away in a few years. A good Scheme environment could be made to work for arbitrary programming tasks for years to come. The MzScheme system at the heart of the PLT Tools is easily extended in C, so any API could be introduced. I played with interfacing it to C a few years ago and it's easy.
What do people think? Any suggestions about how to go about this? Am I crazy thinking a lisp-like language will be good to ease into slowly?
I know, maybe I should take this to a place where they discuss Scheme. I don't particularly feel comfortable there, though. I do somewhat feel comfortable here.