Help Teaching Programming to a Teenager

I’m looking for ideas about different sources – online, books, and software – for helping a teenager learn how to program.  I’m looking for both introductory / early programming stuff as well as general computer science stuff.  The more interactive, the better.  If you have any ideas, please post your comments.