I would recommend either Processing[^] or Scratch[^]programming languages. Both are free downloads. I've recently finished reading Daniel Shiffman's book "Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction" (http://www.learningprocessing.com[^]). This is an excellent introductory book, not only for the Processing language but also for programming in general. This is the sort of introduction to programming that I wish I'd had. The book is a pleasure to read and is paced well for a beginner. The advantage to using Processing is that the foundation is based upon the Java language, so it is very easy to branch into Java, C++, or C# once you become comfortable with Processing. The Scratch programming language was developed at the MIT Media Lab and is a graphical programming language. Programming with Scratch involves creating a script using command blocks. The command blocks have shapes which snap together and perform functions like loops, getting input from the mouse or keyboard, etc. This is a much simpler language to get started with but will give the student an understanding of how a program is structured.