There is no best text to use in a computer science course, but I've found two that I'm really happy with for the high school robotics course I'm teaching this year. For the first semester we're programming Lego NXT robots with TETRIX building parts and motors and I have to support both Mac and PC os's, so I'm teaching Java. There's a great library for doing just this called leJOS NXJ and we're going over many of the Java concepts using the book Head First Java, 2nd edition.
For the second semester we'll be switching to Arduino and doing a mixture of physical computing and robotics projects. I am still working out the details of the curriculum, but I want to use Beginning C With Arduino by Jack Purdum as a base text. Purdum goes into the details of C concepts in a very clear and concise way while many other Arduino books give a lot of examples without giving much rhyme or reason as to why sample programs are written as they are. So I hope to highlight differences between techniques used in Java and C.