Python offers two significant advantages for novice programmers: (1) the syntax is relatively clean and simple, and (2) it's completely free. A recently published book, "Hello World! Computer Programming for Kids and Other Beginners" has been getting excellent reviews. It assumes that the reader has Python; instructions for the free download and installation are included. As the title implies, the book is geared towards kids: the text is written at a simple level, with lots of cartoons, and the exercises emphasize game development. My kids have just started working through it for summer homework, one or two chapters daily. Obviously it might be too simplistic for an adult with prior programming experience. Another nice feature of Python is that it is multiplatform. We have Python installed on both XP and Linux machines at home, and the kids use them interchangeably. You could just as easily use Macs as well.