Not only is it a badass iOS programming course "co-taught by top industry developers" (hint: they work for a large company intimately familiar with the platform), but the main focus of the course is also on using the iPad for visualization of large datasets. It's a pretty creative and exciting course in my opinion (disclosure - I'm the TA). The course website is here: http://hci-ipad.org
I'm "taking" it right now, so I should get back to work instead of reading HN :) I like it so far. If you have prior experience with object-oriented programming, it is a good resource. The basics are enough; understanding the concepts of classes, methods, etc.
Quoting a reply from jbcranshaw that seems to have been unfairly killed:
"The main difference comes from the focus on data visualization. Roughly 1/4 of the lectures discuss core concepts and best practices for designing apps to let users visualize and interact with different types of data. The other 3/4 of the course is about iOS programming. Although much of this will overlap with the Stanford course, the added focus on data changes some of the iOS topics that are emphasized. For example, we talk about maps and core location very early on in the course, since the first assignments have to do with visualizing data on a map.
-----"
Considering that itunes automatically downloads new lessons, it will try to download every time both versions of the lecture you post, requiring user interaction to stop one of the two. Just a minor nuisance :)
Does anyone know why iTunes U lectures are almost always out of order? This course lists lecture 3 SD first and lecture 3 HD last for example. Seems like it would be simple to have things ordered in a sensible way.
A simple but sad explanation would be that it is dependent on the reviewer, or more likely reviewers, over at Apple. E.g. if Sandeep finishes reviewing faster than Nikolai, then those lectures will go up faster.
The Apple "new improved textbooks and courses" thing suffers from the same problem, I had a look at one (on geometry and trig) and things were out of sequence.
Ah, thanks, I didn't know I could get it on iTunes, even though I avoid installing it... I know I'll need XCode, I just wanted to see what ObjC is like.
I believe there's a free (as in freedom) version of Objective-C out there, I think it runs on Windows and Linux.
Check out the book by Stephen G. Kochan
The caveat of course, is that Cocoa (an Objective-C API used for making interfaces) is very Mac/iOS specific.
So you may not be able to write Cocoa code on Windows/Linux even of you download... (it might be) OpenStep?
But your gcc should compile Objective-C sans Cocoa.
As for XCode, like most Apple side-projects it tends to gather dust in darkness, until one day they come in and change everything around, just because they can. In 2007 it was pretty good if you wanted a stripped down lean and mean coding IDE which still had access to a lot of features.
Contrast that to the Java IDEs of the time which seemed to be saying "FEATURES! WE HAVE FEATURES! GET YER FEATURES HERE! Never mind about that coding crap, have you seen our FEATURES!!!???".
Eclipse was a particular offender, cramming your interface so full of buttons and tabs and tabs of tabs and templates of tabs of tabs and views of tabs, and buttons that the actual coding area on a normal monitor was like unto a postage stamp. (It got better, but vestiges of the feature-mindset-disease remain)
Anyway, I'm less impressed with the current version of XCode than I was with the one from 5 years ago.
Primary attractions of Objective-C
Memory management
Message passing (which is what all those square braces are about)
Long method names which increase readability at the expense of not being able to remember what the heck the function you wanted to call is named so you have to keep referring back to the documentation
Did I mention the squirrelly syntax?
From a pattern point of view they use the delegate pattern a lot, e.g. The Window handles the Windowy stuff, but for those things you are most likely to want to customise it passes them to its delegate.
That way you 'never' need to actually subclass anything, you just plug delegates in everywhere.
Today I remembered what was the most tantalisingly interesting thing about XCode back then - the distributed compilation. The idea that you could have a team of people and my computer would steal spare cycles from yours (and vice versa) when mine was compiling and yours was sitting there waiting for you to hit the next key...
I never had anything large enough on XCode for it to actually matter enough to me to get it working though.
The short answer is no. You really need a mac to run xcode on. Yes, you can google hackintosh but it's not worth the effort. If you are on a budget, then get a mac mini.
This really is the future-- having great universities on tap like this!
I remember when I was in my teens having a great deal of interest in things and not being able to get access to materials-- the tiny university in my town had a library that was a goldmine for me, but in retrospect was very small. I remember often having to wait weeks or months to get specialized knowledge that I knew was out there but that wasn't readily available.
This course is great news. I'm a longtime iOS developer, but have to have my head in the server side of things so much that I appreciate these courses as a refresher.
Also coming to appreciate the iTunes U App. I just downloaded Stanford's Machine Learning course in the format last night. (This is the same course that was given for free last year, same instructor, but the one in iTunes U's new course format is from 2008, not sure why.)
Love having the homework and being able to check things off so I can keep track of how much of the course I've completed.
Universities also teach philosophy, and it isn't science either.
Of course, as we can see from the Philosophy of Science courses, that philosophy is actually more important than science, because philosophy is more meta.
That is to say, without philosophy you wouldn't know which approaches to doing science were better than others.
To solve that, you'd need to invent a "science of science", or a "science of thinking about science", or a "science of knowing stuff"...
...at which point you're simply reinventing the epistemological wheel as it were.
Also, universities teach art, medicine and architecture, all of which (or so I've been told) have some marginal redeeming value.