HWK Solutions

CS 201


iPhone Application Programming In COCOA

Fall 2009 Mon/ Wed 5:50pm – 7:05pm, Eng 109


Dr. Rory Lewis

Dr. Rory Lewis

rlewis@eas.uccs.edu
719.255.3149 Office
ENGR 188
Office hrs: Tue/Thu (11AM-Noon)


Course Objective

Welcome to the incredibly exciting world of programming your iPhone. This is a brand new course so the syllabus is preliminary and subject to change, particularly for the last few weeks where we will be working on a final project and have some freedom regarding what topics we cover. However, what you will learn in this class will be enormous. You will be taught the Mac Operating System X, COCOA Touch, Objective-C and Developer Tools using the Interface Builder and iPhone Simulator.CS201 is not just about the iPhone, Cocoa Touch or Objective C, it’s about Software Engineering, as well as object oriented architecture and design. Exposure to problems and solutions that the student might not see in other classes


Course Approach

The course will include introducing and giving the students extensive hands on with tools such as Xcode and interface Builder. Also, students will need to become very familiar with Apple frameworks such as Foundation UIKit. Most of all, the student will spend many hours with Apple’s runtime language. In essence the students will have to become comfortable switching between objective C, C++ and Java.This means that not only will you be on your way to programming an iPhone but you will be able to be a viable candidate for Mac programming a jobs and iPhone jobs


Requirements

  • Hardware: Must have access to an Intel-based Macintosh
  • Software: Mac OS X 10.5.4 Leopard (or later)
  • Download: iPhone SDK
  • Release: Sign the iPhone developer Agreement
  • Complete: Students MUST fill out a survey to be considered for the class. I will not base it entirely on prereq skills in Computer Science. i.e. I’d rather have a phenomenally motivated art or business student than have an apathetic Engineer. Priority will be given as follows:
    • Completed CS115 and CS145 (or equiv. industry experience
    • Prior C and OOP experience and finallc. students close to graduating
    • CS majors

Books

CSS Sculptor The Textbook is the Beginning iPhone Development: Exploring the iPhone SDK by Dave Mark, Jeff LaMarche | ISBN-13: 978-1-4302-1626-1 | Published Nov 2008 | 536pp. | $39.99

Note that you will be required to have a notebook that you will write in. This notebook will be required when you see me in Office hours, I will look at the notes you wrote in class that pertain to the question you are asking me. Also, you may use your handwritten notebook in all exams and quizzes. Furthermore, a section of your grade will be determined by your handwritten notes in your notebook.

 


This Course is Open to All Students from All Majors

For the Final Examination, non Computer Science or Engineering majors only need to program, on their own, the subject matter up to about lesson #4 to pass the class.  I've yet to make that exact determination.  Thereafter it will be how you work in your teams and how much support and cheering you can garner of the final presentation night where your zany acts will have the audience decide whether your team's iPhone is cool or not.


Prerequisites

There are no prerequisites to register for CS 201. However, if you are not a Computer Science or Engineering major it will be up to you to go to my screencasts and upon testing yourself, follow through on screencasts you need to do know in order to come to class prepared. Taking my screencasts during the Fall semester is a recipe for disaster, you need to do them over the summer before school starts.


Preparations

You must own a Mac Lap top of some form to take the class. You do not need an iPhone. If you don't have a mac, get with it, work over the summer, save up some $$ and get one! Make sure you have gone through screencasts you may need before class begins. I will have screen casts showing most lessons and all the work that non computer scientists will need to check out before coming to class .


Prior Experience FAQs

  1. Do I need to have Java or C++? It is recommended that students have dabbled in Java or C++. However its no big deal if you have not if and only if you take the time to carefully go over my screencast self tutorials for students who have not had this. It will be their responsibility to go through the prerequisite tutorial I will post prior to coming to class.
  2. Do I need to have done Mac OS X development? Its OK but not necessary.
  3. Do I need to install the iPhone SDK onto my Mac? Yes this must be done before the first day of class
  4. Can I use the Macs in the Library at UCCS? No becasue we are not allowed to download teh SDK onto public accessible Macs. You need to opwn your own Mac

Grading

I don’t grade on a curve or a rigid “90-100 is an A” type of scale. I am perfectly willing to give the entire class A’s or the entire class F’s. I grade in terms of how society will grade you:

A – Guru
B – Vice President
C – Middle Manager - with a bookmark at Monster.com
D – Frankly, you should start looking for another job.
F – Come on, you’re not even trying.


Grading Scheme

Class Participation
5%
Notebook
5%
Individual Assignments
20%
Team Assignments
30%
Mid Term
15%
Final 
25%

Attendance

Its important to make it to each and every class. Grades are given for work that is presented by you at each class. If you do miss a class please be aware of the following. It is your responsibility, not the professor's responsibility to both find out what work you missed and then handing it in on time. For example, if you are unable to make class, you need to call, text or email your classmates (if you do not have one find one now) and ask them for the assignment and the due date. If you know you'll miss a class: Tell us the reason beforehand. If its a good reason there will not be a subtraction of your Class Participation grades.


Cheating

Cheating Cheating is heinous, rude, and bad karma. It is not only unfair to other students but it rots your moral character and threatens the very fabric of our society. There are very few things that make us mad, but cheating is one of them. Please do not do it. We will prosecute all cheating to the fullest extent of the law.


Workload

I expect students to devote an average of 6 - 7 hours per week OUTSIDE OF CLASS on the work for this class. I have always and will always be prepared to spend many more hours than my office hours helping students provided that I know that the student is spending 6 - 7 hours per week on the work. I will also be available for impromtue labs on Fridays which I will send out on Twitter.