Of the very few programming apps for the iPad that both code and execute locally on the iPad I have Codea and NovoCard. The first is excellent app primarily meant for developing game and physics models. It uses an extended version of Lua. NovoCard is less polished. It has a card metaphor environment similar to Hypercard of yore (if you've heard of it). I believe it uses Javascript.
Either is fine for learning some of the basics about programming, but you'll have to scrounge around a bit for tutorials beyond the built in help.
Codea has been used to create some nice iPad games, the most famous of which are Crabitron and Cargo-Bot.