On 4/27/06, <b class="gmail_sendername">Brian Beck</b> <<a href="mailto:beckbria@msu.edu">beckbria@msu.edu</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Caleb Cushing wrote:<br><br>I know it's not free, but if you're willing to consider a book, I highly<br>reccomend Stanley Lippeman's "C++ Primer".</blockquote></div><br>
C++?! Are we talking about a language to learn programming? I've been
using C++ for a decade or so and I continue to learn more things about
it. You want someone to learn how to program. We want the broad brush
strokes instead of the niggly details like pointer aliasing.<br>
<br>
I have to go with the suggestion for Python. It's got a clean syntax
and very nice basic data abstractions like lists and dictionaries. The
biggest plus is that, like Lisp, it has a REPL environment. Trying
things to figure out how they work is SO much nicer for learning than
an edit-compile-run cycle. The Felliesen book recommended earlier is a
great way to start.<br>
<br>
Alternative recommendations if the prospective student is graphically
inclined is Smalltalk. Squeak is a great environment. Runs on Linux and
Windows. Plus the language itself is so simple that you can learn it
completely in a day or two. The rest of the time can be spent exploring
the huge library. There are a lot of free resources out there but the
one I've liked best is a non-free book, unfortunately.<br>
<br>
Lastly, I have to say Scheme or Lisp. Simple syntax, interactive
environment, and powerful concepts that can be introduced gradually.
The Little Lisper, Little Schemer, Seasoned Schemer, and Reasoned
Schemer book series is great, if you like the Socratic
question-and-answer method.<br>
<br>
If she finds programming fascinating she'll eventually learn C herself
if only to port her favorite dynamic language to another platform.<br>
<br>
--bong<br>
<br>