Stanford released their iPhone programming course—syllabus, lecture notes, assignments, and all—online. It’s what you’d find in any serious software engineering and object oriented design program, but it’s been designed around the iPhone target platform, with Objective C as the instruction language.
There are lectures and assignments on a number of topics, including the MVC pattern as it pertains to Cocoa development, UI and Multitouch considerations, OpenGL, and even going through the rigamarole of publishing your work to the App Store. The assignments seem to be really practical and fun. The price is right. I think I’ll be taking the virtual course, starting this weekend.