LEGO Mindstorms robots can do more than you ever imagined! The secret: go beyond the built-in tools and leverage the power of Java. In "Core LEGO Mindstorms," author Brian Bagnall shows you how, step by step. Working from beautifully rendered 3-D plans and photographs, you'll construct five unique robots. You'll master advanced proximity and compass sensors, even master MIT's new breakthrough in robotics: behavior control programming.
This is an interesting and well-written book on hacking Lego Mindstorms computers, replacing the operating system with one capable of running Java programs. In the process, you lose Mindstorms visual programming, but you gain the ability to write programs for your robots at a more detailed level.
I very much like the stock Lego Mindstorms programming environment for teaching - it's very visual and inherently object-oriented, focuses on the essentials, and allows a beginner to start programming with a minimum of distraction. It does have a drawback in that more complicated programs can become very large and cumbersome unless you start developing your own library of often-used sub-programs, and math operations are a bit visually imposing and long-winded on the screen.
Running your robot with a 3GL like Java (or e.g. robotc) allows you to express ideas in a much more compact form, and with more detail, but you lose the ability to see your program in terms of visual objects. Depending on the age and skill of the experimenter this can be a good or a bad thing, and I think that for beginners it's probably best done as a follow-on to work with the stock Lego Mindstorms programming environment.