An interactive online tutorial to learn Arduino progamming is available from Sparkfun. This free tutorial allows students to write code in the browser and test it on a virtual version of an Arduino board.
Although Sparkfun's interactive tutorial is free, programming an Arduino outside of interactive tutorials requires the purchase of a board. Sparkfun sells a special Arduino board called the Digital Sandbox, which is identical to the virtual version in the tutorial.
Arduino's official site provides tutorials, documentation and code examples, but none of this content is interactive. A community of Arduino programmers also offers help and examples on the site.