Stanford University is offering the iOS 5 edition of its well-regarded iPhone and iPad application development course free on iTunes U.

Quote:

Instructor Paul Hegarty attributes the course popularity to the appeal of Apple products and the instant gratification of creating apps for mobile devices. "There's something about developing for the iOS platform that's really exciting and fun because it runs on devices that everybody has in their purses or pockets, " he said.

"There aren't a lot of courses you can take that when you get to the end, to your final project, you can take it out of your pocket and show your friends."

Hegarty said that his students develop a wide array of applications for the iPhone and iPad, including many that improve or automate their daily lives. Those include apps that manage laboratory experiments, keep track of food choices at campus eateries, or access the works of Shakespeare. Games and social networking applications are also popular.

The offering includes the same course lectures and slides that Stanford students experience, but without the Stanford credit or access to instructors. Still, for burgeoning developers, iTunes U is an excellent opportunity to get world-class instruction for free.

The university notes that the two Stanford prerequisite courses, Programming Methodology [Link] and Programming Abstractions [Link], are also available on iTunes U.

Very true (the last was Fall 2010) but the Fall 2010 was outdated rather quickly because of XCode releases. It's nice to finally have an updated lecture and hopefully this utilizes the latest and greatest!

The Stanford lecture is by far the best out of all iOS lectures available on iTunes U.

Quote:

Originally Posted by godknows

This lecture was there years ago. And they update it every year. Awesome stuff (although I only followed for 4 lectures before working on my own project).

But according to what I read, not for beginning developers. You must know C++ already or have a good foundation on it.

It's an upper level undergraduate computer science course. This means that, at a bare minimum, the students will already have had an intro to object-oriented programming (probably Java or C++) and something on data structures.

I'm following it as well... I was following last year's course, but I find this years' iOS 5 course more suitable as it's become more easy for non-C developers to understand. For example, due to ARC (automatic reference counting) the whole retain/release mess is overboard and memory management is more or less out of the way. Which means you can focus more on the 'how' and the functionality than on boilerplate code. Also this course seems to focus on the dot notation from the start, while in previous year(s) it was more focussed on how it was supposed to go, how that changed over the years, and how you're supposed to do it now. This year's course is focussed on how it is supposed to do now (e.g. from the start the dot notation, synthesizing properties, etc), and how one was supposed to do it before is pretty much out of scope of the course. I find this year's course a more hands-on experience and practical while the previous ones were more theoretical.

The whole idea of designing the view, hooking it up to code through outlets and actions is really quite elegant. The syntax is the bit to get used to, but due to the dot notation that becomes more easy to follow.

If you have a history in OO-programming and are familiar with the MVC design pattern, you will find this course is quite easy to follow.

In my opinion the best iOS course out there... Must see if you want to head into iOS development... Especially as it covers the iOS 5 SDK and Xcode 4 very well (a lot of new API's were introduced, and Xcode 4 has changed quite dramatically compare to the previous iterations). And what better a teacher than one who actually helped set up Objective-C at NeXT at the very beginning?

Quote:

Originally Posted by covertsurfer

There's not as many videos as Fall 2010 for some reason

The course started at the end of september and is still underway...

Quote:

Originally Posted by Amazing Iceman

But according to what I read, not for beginning developers. You must know C++ already or have a good foundation on it.

It might indeed be a bit hard to grasp if you do not understand basic OO programming, as it it constantly referring to Class, Object, Instance, Inheritance, Introspection, etcetera. If you do not have the basic OO-knowledge this is gonna be a tough cookie... But, any OO will do... C++ definitely not a requirement...

Wow, that is fsarking awesome. Just watched one of the first classes. Wish I had the time to sit around all day and learn this stuff, but im a bit of an old dog now to be starting developing (32). Maybe in a year or so I can have an app out. I think iTunes U is one of the totally underrated things Apple has done.

I've watched many iTunesU videos on iOS and Dr. Hegarty's are by far the best. I didn't know he worked at NeXT. That certainly explains how well-versed he is!

Quote:

Originally Posted by isoMorpheus

What's a good one on learning just the C programing language?

Slightly off-topic, but I'd recommend C#. It's not "pure C", but it's as close as one can get to a perfect object-oriented programming language. Then again, I might be biased.

Another benefit of learning C# is that you can use MonoTouch to develop apps for any of the 3 major mobile platforms. It's not cheap software but it would be a good option if you're looking to reach the widest possible audience with your apps.

And what better a teacher than one who actually helped set up Objective-C at NeXT at the very beginning?

Yes, indeed. It is such a pleasure to even just watch the course videos. At the start of the fourth lecture, the teacher pays tribute to SJ. When he graduated from Stanford almost two decades ago, he went to work for SJ at Next.

Updated for iOS 5. Tools and APIs required to build applications for the iPhone and iPad platform using the iOS SDK. User interface designs for mobile devices and unique user interactions using multi-touch technologies. Object-oriented design using model-view-controller paradigm, memory management, Objective-C programming language. Other topics include: object-oriented database API, animation, multi-threading and performance considerations. Prerequisites: C language and programming experience at the level of 106B (Programming Abstractions) or X. Recommended: UNIX, object-oriented programming, graphical toolkits Offered by Stanfordís School of Engineering, the course will last ten weeks and include both the lecture videos and PDF documents. A new lecture will be posted each Monday, Wednesday and Friday. Subscribe to this course, and automatically receive new lectures as they become available. Released with a Creative Commons BY-NC-ND license.