I mentioned in my Hello World post that my goal is to learn how to develop apps for iOS devices (meaning the iPhone and iPad). To reach that goal I decided to check out the iTunes U courses for iOS and quickly landed on the CS193p course from Stanford University titled Developing Apps for iOS (Fall 2010). On loading up the course I see that the prerequisits are the CS106A, CS106B and CS107 which means I need to learn Java (CS106A), C++ (CS106B) and CS107 which covers several languages and the differences between them.
The CS106A course is called Programming Methodology and is an introduction to programming. Looking over the course I see that it was created in December 2011 and was recently updated a few months ago. Dr. Mehran Sahami is the main lecturer and he introduces you to programming at first by using a robot called Karel. The course is designed for beginners in mind as it requires no prior knowledge although recommends a lot of hard work and dedication if you want to make it through.
The CS106A has 28 lectures which are taught 3 times a week for 50 minutes each which means you should be able to get through the course within 2 – 3 months if you put a good amount of effort in.
CS106B builds on the foundation you will learn in CS106A. This particular course is called Programming Extractions and is taught by Dr. Julie Zelenski and takes around 10 weeks to complete. Like CS106A, this course was also uploaded late 2011 and was also updated just a few month ago.
The language used on this course is C++ which is described as being similar to both C and Java. It appears to share the same roots as the other languages which makes sense… I’ll find all that out when I begin this course.
There are 27 lectures on this course with a number of assignments to help you put your skills to the test. I’m looking forwards to learning on this particular course.
Just as CS106B was built on the foundation of CS106A, CS107 builds on top of what you have also learned in the previous two courses. This particular course is called Programming Paradigms and also takes about 10 weeks to complete. The course is taught by Jerry Cain and covers advanced features of both C and C++ languages and also briefly covers several other languages such as Python, Objective-C and C#.
When I manage to get through the next 30 weeks or so of the previously mentioned courses, this is where I will begin to learn how to create apps for iOS devices. The CS193P course has two options available which includes 2010 and 2011. I will be opting for the later course which is taught by Paul Hegarty as this includes later information concentrating on iOS 5 although an update last month will probably include some iOS 6 changes as well.
After finishing the above courses, I plan to branch off to other iOS courses although I haven’t decided which route to go yet. My main goal is to get up to speed with programming and then work through the courses.
All courses are about 10 weeks long each, so in total I’ll be spending the best part of 2013 studying and practicing.
If you want to follow my progress, sign up to the news letter which can be found in the right column at the top of the page.
hey as of today 2015, do you think i should be going through those courses even though they’re about iOS 6? i mean i know they are supposed to be foundations but do they really stand the test of time? im just wondering, wouldn’t want to invest several weeks in to something that might not even be in use for ios8 or swift? what are your thoughts on that? would really like to hear from you…
thanks and cheers from MX
Very good question and something I need to look in to so that the post is more relevant. If you understand iOS 6 then 7 and 8 won’t be much different. There’s just a lot more that you can do and some of the methods and classes of iOS 6 are not used anymore. But, the hard part isn’t learning a particular method. It is learning how to implement methods in general. Once you learn those rules, you’ll be fluent at any class you encounter.
Just looking over the material, each course is kept updated. I see that CS106a is very current. Learning Java is a great start because you get to see how objects work and this leads nicely on to Objective-C, or on to Swift if you prefer to jump to Swift instead.