My new book 'Programming Arduino: Getting Started with Sketches' is just out on Amazon. http://www.amazon.com/Programming-Arduino-Getting-Started-Sketches/dp/0071784225
It is intended as a companion to Massimo's book, but it concentrates on how to program the Arduino.
It is intended for non-programmers and programmers alike.
The book is organized into the following chapters:
Chapter 1. This is Arduino. An introduction the Arduino hardware, what it is capable of and the various types of Arduino board that are available.
Chapter 2. Getting Started. First experiments with your Arduino board, installing the software, powering it up and uploading your first sketch.
Chapter 3. C Language Basics. The basics of the C language and for complete programming beginners an introduction to programming in general.
Chapter 4. Functions. This chapter explains the key concept of using and writing functions in Arduino sketches. Demonstrated throughout with runnable code examples.
Chapter 5. Arrays and Strings. How to make and use more advanced data structures than simple integer variables. A Morse Code example project is slowly developed to illustrate the concepts being explained.
Chapter 6. Input and Output. How to use the digital and analog inputs and outputs on the Arduino in your programs. A multimeter will be useful to see what is happening on the Arduino’s input output connections.
Chapter 7. The Standard Arduino Library. Making use of the Arduino functions that come in the Arduino’s standard library.
Chapter 8. Data Storage. Writing sketches that can save data in EEPROM memory and make use of the Arduino’s built-in Flash memory.
Chapter 9. LCD Displays. Programming with the LCD Shield library to make a simple USB message board example.
Chapter 10. Arduino Ethernet Programming. Making the Arduino behave like a web server, including a little background on HTML and the HTTP protocol.
Chapter 11. C++ and Libraries. Beyond C, looking at adding object-orientation and writing your own Arduino libraries.