user10397: I will be using the Arduino platform with other data acquisition hardware for a school electronics project. I have limited knowledge of C++ syntax.
Are there good introductory to intermediate books that can bring a high school student with some programming experience to proficiency on Arduino? 

user10003: I'd recommend you go to cplusplus.com. Plenty of tutorial pages and topics to further your knowledge. However, be aware that Arduino uses a variant of C designed for microcontrollers (the exact flavour depends on the microcontroller type/family), rather than C++, so do be aware that some of the topics are not implementable on an Arduino. That said, I can't think why you'd be using some of the more elaborate C++ exclusive features in a fairly middle-of-road embedded system.
The only thing you need to ignore in C++ is memory allocation specifics - you're limited to the 'original' malloc() based functions rather than the all-singing-all-dancing operator new from C++. If you are in need of memory allocation functions, malloc is well-documented and a tutorial is only a quick Google away.
Of course I must also point you in the direction of the highly popular Stack Overflow site, part of this Stack Exchange network. While they don't have tutorials, there are plenty of great answers to common questions.

user13432: I would start with a standard C++ introduction book to get an understanding for the language. After that I would read a book on object-oriented design and implementation. 
There is a lack of books on how to systematically approach programming small scale embedded systems such as Arduino. Due to the restrictions on resources, both processing and memory, C++ has to be used "carefully". There is a need to understand some of the more difficult concepts such as volatile, virtual, ISR, etc.
Reading others code is also a very good way to learn. I would recommend looking at the source code and example sketches to Cosa. This is an OOP framework for Arduino/AVR. 
Last but not least - learning by doing!
Cheers!

10397: <p>I will be using the Arduino platform with other data acquisition hardware for a school electronics project. I have limited knowledge of C++ syntax.</p>

<p>Are there good introductory to intermediate books that can bring a high school student with some programming experience to proficiency on Arduino? </p>
 10003: <p>I'd recommend you go to <a href="http://www.cplusplus.com/doc/tutorial/" rel="nofollow">cplusplus.com</a>. Plenty of tutorial pages and topics to further your knowledge. However, be aware that Arduino uses a variant of <strong>C</strong> designed for microcontrollers (the exact flavour depends on the microcontroller type/family), rather than <em>C++</em>, so do be aware that some of the topics are not implementable on an Arduino. That said, I can't think why you'd be using some of the more elaborate C++ exclusive features in a fairly middle-of-road embedded system.</p>

<p>The only thing you need to ignore in C++ is memory allocation specifics - you're limited to the 'original' <code>malloc()</code> based functions rather than the all-singing-all-dancing <code>operator new</code> from C++. If you are in need of memory allocation functions, malloc is well-documented and a tutorial is only a quick Google away.</p>

<p>Of course I must also point you in the direction of the highly popular <a href="http://www.stackoverflow.com">Stack Overflow</a> site, part of this Stack Exchange network. While they don't have tutorials, there are plenty of great answers to common questions.</p>
 13432: <p>I would start with <a href="https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list">a standard C++ introduction book</a> to get an understanding for the language. After that I would read a book on <a href="http://www.amazon.com/Best-Sellers-Books-Object-Oriented-Design/zgbs/books/4013" rel="nofollow noreferrer">object-oriented design and implementation</a>. </p>

<p>There is a lack of books on how to systematically approach programming small scale embedded systems such as Arduino. Due to the restrictions on resources, both processing and memory, C++ has to be used "carefully". There is a need to understand some of the more difficult concepts such as volatile, virtual, ISR, etc.</p>

<p>Reading others code is also a very good way to learn. I would recommend looking at the source code and example sketches to <a href="https://github.com/mikaelpatel/Cosa" rel="nofollow noreferrer">Cosa</a>. This is an OOP framework for Arduino/AVR. </p>

<p>Last but not least - learning by doing!</p>

<p>Cheers!</p>
