Supplement: CS193P


Stanford University has offered the CS193P class for a few quarters now. It has become the ubiquitous source of beginning iPhone programming material for many people. The lectures are filmed and uploaded to iTunes U, and they are now available in 720p HD video. However, the lectures, which are the only option for non-enrolled students, are rather impersonal, and sometimes move too quickly (in my opinion). I have learned a lot from them, but I don’t think they’re the only source. In fact, I find that they are more helpful once I got the basics down. Nevertheless, there are real gems, and so I will be occasionally referring links as supplementary material.

To access the lectures:

  1. Launch iTunes and head into the iTunes Store (don’t worry, all the lectures are free).
  2. Click on iTunes U on the black bar near the top of the storefront.
  3. At the time of this writing, the lectures were under Staff Favorites. Click on the link, and you’ll be led to the main listing.

    CS193P Fall 2010 Lectures Listing

    iTunes Listing

Direct link (will open iTunes, if it is not already running):
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=395605774

The lectures are available for streaming; alternatively, you can download them just like regular songs from iTunes. Note that file sizes are around 500MBs for the SD version and around 700MBs for the (linked) HD version.

The slides can be downloaded from the main website, listed above, as well as the sample code.

What You Will Learn About Objective-C


So, having decided on doing a course on Objective-C, I’d like to set down some goals.

  1. As I mentioned before, I will attempt to teach C and Objective-C as one language. Obj-C is a strict superset of plain C, which means that any valid C is also valid Obj-C. The reason for this decision is that C is a procedural language, where you worry about how you do a task, whereas Obj-C is an object-orientated language, where you worry about what you use to do a task. It’s a radical shift in mindset. As a result, although Obj-C builds smoothly off of plain C, not all C styles and procedures work with Obj-C.
  2. I want to engage, not just present the facts. As a result, I will supply plenty of screenshots, and include exercises at the end of each lesson. I will also post the source code to each lesson on this blog—stay tuned for more.
  3. I want to create a solid understanding that frees you from having to go back to a reference every other line of code. That gets annoying, and you won’t get much respect in programming circles. 😛
  4. I want to make it an easy and fluid learning environment. People learn better when they are subject to less stress. In fact, I’m not going to stress you at all—you’ll be your own motivator. You want to build the next great iPhone app—so put in the effort!

In this course, I hope to build up a small code library, and have each lesson build up off the previous. I still need to plan out the order of the lessons and their content…stay tuned!

Instructions for Reading this Blog


These are actually copied out of Donald Knuth’s The Art of Computer Programming, Volume I. No copyright infringement is intended. This is considered fair use, under the category of “Educational.” It is very enlightening.

  1. Begin reading this procedure, unless you have already begun to read it. Continue to follow the steps faithfully. (The general form of this procedure and its accompanying flowchart will be used throughout this book.)
  2. Read the Notes on the Exercises, pp. xvii-xix.
  3. Set N equal to 1.
  4. Begin reading chapter N. Do not read the quotations which appear at the beginning of the chapter.
  5. Is the subject of the chapter interesting to you? If so, go to step 7; if not, go to step 6.
  6. Is N ≤ 2? If not, go to step 16; if so, scan through the chapter anyway. (Chapters 1 and 2 contain important introductory material and also a review of basic programming techniques. You should at least skim over the sections on notation and about MIX).
  7. Begin reading the next section of the chapter; if you have reached the end of the chapter, go to step 16.
  8. Is the section number marked with “*”? If so, you may omit this section on first reading (it covers a rather specialized topic which is interesting but not essential); go back to step 7.
  9. Are you mathematically inclined? If math is all Greek to you, go to step 11; otherwise go to step 10.
  10. Check the mathematical derivations made in this section (and report errors to the author). Go to step 12.
  11. If the current section is full of mathematical computations, you had better omit reading the derivations. However, you should become familiar with the basic results of the section; these are usually stated near the beginning or in italics right at the very end of the hard parts.
  12. Work the recommended exercises in this section in accordance with the hints given in the Notes on the Exercises (which you read in step 2).
  13. After you have worked on the exercises to your satisfaction, check your answers with the answer printed in the corresponding answer section at the rear of the book (if any answer appears for that problem). Also read the answers to the exercises you did not have time to work. Note: In most cases it is reasonable to read the answer to exercise n before working on exercises n + 1, so steps 12-13 are usually done simultaneously.
  14. Are you tired? If not, go back to step 7.
  15. Go to sleep. Then, wake up, and go back to step 7.
  16. Increase N by one. If N = 3, 5, 7, 9, 11, or 12, begin the next volume of this set of books.
  17. If N is less than or equal to 12, go back to step 4.
  18. Congratulations. Now try to get your friends to purchase a copy of volume one and to start reading it. Also, go back to step 3.

Here is the corresponding flowchart:

The Art of Computer Programming—Reading Flowchart

Why did I post this? Obviously, you wouldn’t read the blog in this manner. But the open-minded approach is exactly what I’m looking for. In programming, you have to be open-minded, and look for a different solution. This is the attitude that I convey when I’m writing this blog, or coding at home; I’d appreciate the same from all my readers.

Oh, and of course, I recommend that everyone pick up a copy of Knuth’s masterpiece. He began working on it in 1962, and he’s just past half-way finished (in terms of volumes). Appreciate all the work. Take it in.

Onward Ho!


As summer fades into the dreardom (dreariness, for those who prefer real, “dictionary” words) of fall, I figure that it would be a good time to add one more task to my already busy schedule.  I’m hoping to make this blog a fun experiment, not a chore.

Over the next few days, I’ll start putting up some actual content. I plan on beginning with a bit of theory and art, then I’ll start with a series on learning Obj-C 2.0. I’ll then move on to exploring Foundation, Cocoa Touch, and then…we’ll see. I’m going to enjoy this, and I hope you, dear reader, will too.

Onward ho!

Hello, World!


It seems that anyone who’s anyone has a blog. So, I’m gonna give it a try…it’s probably gonna be a lot of work, but hopefully it’ll be fun as well. Check my About Me page for more about me and my background.

  • Welcome

    My goal is to make CupsOfCocoa into a beautiful source for beginners to the iPhone platform to get started. Subscribe below for more, and stay tuned!

  • Contact Me

    If you need to contact me for any reason, feel free to send me an email.
  • The Giving Spirit

    If you've found this site helpful, would you consider donating a little sum? Any amount is appreciated...Thanks so much!

  • Roadmap

  • Enter your email address to follow this blog and receive notifications of new posts by email.

    Join 220 other followers

  • Back to the Past

    May 2020
    S M T W T F S
     12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31  
  • Time Machine

  • You count!

    • 622,649 views
  • Worldwide Stats

    free counters
%d bloggers like this: