Bis 1001 - Programming For Iphone, Ipod Touch, and Ipad Devices
Bis 1001 - Programming For Iphone, Ipod Touch, and Ipad Devices
BIS 1001 - Programming for iPhone, iPod Touch, and iPad Devices
Spring 2011
Class Time:
Location:
3:30-4:45pm Tu
McCool 234
Instructor:
email:
Office:
Phone:
McCool 302E
325-1995 (office, voice mail)
325-3928 (MIS Dept secretary)
324-7806 (home)
Web site:
http://misweb.cbi.msstate.edu
(Go to your instructor's faculty profile page, then scroll down to the Courses
Taught section. Also, see the description about the Course Web Site later in this
section.)
Course Description:
This course introduces programming for the Apple iPhone, iPod Touch, and iPad
devices, using the official Apple-supplied iPhone Software Development Kit (SDK). As
members of the MSU iPhone Development Team, students will be able to develop third
party iPhone applications (apps), and install them on their own iPhone, iPod Touch,
and/or iPad devices. As part of the MSU iPhone Development Team, each student will
also be able to install apps developed by other students on his or her device. (Note:
Uploading a developed app to the App Store requires a paid membership, which is not a
required part of this class. This will all be explained in class.)
In addition to the specifics of iPhone development, the course will focus on generalpurpose, object-oriented programming and programming concepts, utilizing the
Objective-C language.
Hardware and Software Requirements:
You must have access to an Intel-based Apple Mac computer for your own
programming practice. The COB computer lab, MSU Library, (old) Band Hall, and
Griffis labs have several such computers, on which the SDK will be installed and
available. Any Mac computer built since 2006 should be adequate for this programming.
We will be using the official iPhone SDK for our programming. This tool can be
downloaded, for free, from the Apple developer web site. Instructions for this are
provided in your first assignment.
You need a flash drive for working in the labs.
page 1.2
Study Materials:
Course Packet containing Course Information, Course Syllabus, assignments for the
semester, and programs for in-class discussion. Each student must have a copy of this
packet. You must bring it to class each day, as it will be the focus of each days in-class
discussion. The Course Packet is available at Copy Cow, 320-4000.
Optional book, if you want more coverage of iPhone programming: iPhone SDK
Development, by Bill Dudney and Chris Adamson, published by The Pragmatic
Programmers, ISBN 978-1-93435-625-8.
Optional book, if you need an Objective-C reference: Programming in Objective-C 2.0,
2nd edition (available Jan 2, 2009), by Stephen G. Cochan, published by AddisonWesley, ISBN 978-0-3215-6615-7.
Prerequisites:
There are absolutely no prerequisites or restrictions on this course we welcome one
and all! Having said that, it will help if you have some prior experience in computer
programming; if you dont have any, it will require additional work on your part, but it
will be doable.
We will have a range of programming backgrounds in this class, and we will do
everything possible to accommodate everyone.
Grading:
The following table shows the allocation of the weights that will be assigned in
calculating the final grade.
Online quizzes
Homework assignments
In-class quiz #1
In-class quiz #2
In-class quiz #3
In-class quiz #4
In-class quiz #5
In-class quiz #6
In-class quiz #7
In-class quiz #8
In-class quiz #9
10%
10%
10%
10%
10%
10%
10%
10%
10%
10%
10%
Since this adds up to 110%, you will get to drop the lowest of your in-class quiz grades.
You may not drop your online quiz average or your homework assignment average.
If you ever have a question about a grade, you need to raise that question within seven
calendar days of when the grade is posted in the Online Gradebook System. After a
grade has been posted for seven days, the grade will not be changed.
page 1.3
Letter Grades:
Your final average will be calculated to one decimal place, with standard rounding, and
final letter grades will be calculated on a 10-point scale. This means that 89.94 will
round to 89.9, which is a B, and 89.95 will round to 90.0, which is an A.
Your grades will be based on your performance on the various components listed
elsewhere in this document. Your grade will not be changed for extraneous reasons,
such as "if I don't make a B, my dog will dis-own me" or "I HAVE to have a C in this
course because I've already made too many D's". If you need a particular grade, be sure
to work hard enough to earn the grade; when you do that, you WILL get the grade.
Grading procedures:
You are not competing against other students for grades. Your grade will be based on
your work, and the points that you earn. If everyone has a 90+ average, everyone will
receive an A.
Preparation for class:
You are responsible for being prepared for each class meeting. The Course Outline
shows the subject for each class meeting. If the day's schedule shows a program that we
will go over, you should review the program prior to class to see what it does. The
programs are all available on the course web site, so you can look at them (and run
them) there.
Class Attendance:
Class is important. Attendance will be checked at each class meeting. It would be good
to develop the habit of getting to class on time (this will help you prepare for upcoming
jobs in the workplace).
You have the opportunity to either add points to, or subtract points from, your final class
average, based on your class attendance. If you have no absences for the semester, you
will get 2 bonus points added to your final average. If you have more than one absence,
2n-1 points will be deducted from your final average. The table below shows your
attendance bonus points for various numbers of absences.
Total absences
Bonus points
Total absences
Bonus points
-8
-16
-2
-32
-4
-64
If you are late to a class meeting, you will be counted as absent. You should still come
to class, but you will be counted absent officially.
page 1.4
Class Participation:
You are encouraged to participate in class! Employers sometimes say that
communication skills are a problem area for some of our graduates. I encourage you to
work on your communication skills in this class. Ask questions. Answer questions.
Volunteer. Be bold. Go for it. Many people refuse to speak up for fear of looking stupid.
Let me tell you from my own experience, once you have looked stupid enough times, it
will no longer bother you. Believe me, I know! And, seriously, it is highly unlikely that
your classmates will actually think you are stupid. It would be virtually impossible for a
stupid person to make it this far through school; no, it is more likely that every person in
our class is smart, not stupid. But no one knows everything, so we will all sometimes
answer questions incorrectly, and we will all sometimes say something that is wrong.
We may even ask a silly question. And we may all laugh about it. That will be a
growing experience in itself. You are encouraged to participate in class!
Classroom Etiquette:
Please get to class on time, and remain seated, reasonably quiet, and attentive
throughout class if possible. Don't start packing up your belongings until class is over.
How would you like to be on a date and see the other person start packing up to go
home while you were in the middle of what you thought was scintillating conversation?
If you have a pager or cell phone, please turn it off while you are in class to avoid
disruptions. Please don't bring food or drinks to class. As per normal etiquette, caps
should not be worn indoors unless the sun is shining so brightly in the room that it's
hurting your eyes.
page 1.5
In-class quizzes:
Several in-class quizzes are scheduled on the course outline. Those will be short,
multiple-choice quizzes. If we have sufficient equipment, we will take the quizzes on
mobile devices (any mobile device with a web browser will be sufficient this includes
laptop computers). If we dont have enough mobile devices, we will take the quizzes
using eInstruction clickers. This will be determined prior to the first in-class quiz.
In-class quizzes are closed book quizzes, like most exams. They must be taken in the
classroom. You must be in class to take the in-class quiz.
Registering for misweb.cbi.msstate.edu:
This class uses the "misweb system" for course management. Your first step in using
misweb is to "register" for the system. To do this, go to:
http://misweb.cbi.msstate.edu/editor
Enter your Banner net id, such as abc123, and your Banner net password. Click on the
Log in button. If you have already registered for misweb, you will go straight to your
Edit Routine. If you have not previously registered for misweb, you will go to a short
form which will allow you to register. Complete and submit the form.
page 1.6
Class Communications:
One item that you will maintain as part of your web page in this system is your desired
email address. Class email will be sent to whatever address you have recorded in this
system. Be sure to have your correct email address in your misweb student profile page.
Class email is considered business communication. Please write professionally, not as if
you were in a chat room. Write complete sentences, spell correctly, use correct
grammar, and capitalize where appropriate. Make sure that your message makes sense.
Again, write professionally.
When you send email, be sure to include your name in your message.
Archived EMail:
Many messages that are sent to the class will be saved in a Class EMail Archive. You
can read your class's archived messages any time that you check your grades in the
Online Gradebook System (when you look at your grades, you will see a button to click
for the Class EMail Archive). The EMail Archive has search capabilities, so you can
easily find all messages that mention a particular topic.
Class Message Board:
A Class Message Board has been created for your use. This Board is for student use, to
allow you to communicate with each other. You can create a new Topic on the Board
(also known as a new Thread) asking a specific question, you can add a message to an
existing Topic, or you can just read what other people have to say. You are encouraged
to use this tool any time that it might be useful to communicate with your fellow
students.
You have several notification options relating to the Class Message Board. By default,
you will not receive any automatic email when someone posts a new message on the
Class Message Board. It is highly recommended that you use the Class Message Board,
both to post your own messages, and especially to read what other people post. Access
the Class Message Board (via your Online Grades) to change your notification option.
You can get an immediate automatic email any time that someone posts a new message
(highly recommended! the class message board can be an invaluable tool when you are
working on your homework assignments). Alternatively, you can ask for a Daily
Summary notification (a once-a-day report of all messages posted the previous day). Be
sure to access the Class Message Board, and set your "notification level" to your
preferred setting.
The Class Message Board is there for you to use. It will not be monitored, other than by
your classmates. Obviously, you should maintain an appropriate level of professionalism
and decorum in your participation on the Board. You know what is right, and what is
wrong. Dont do anything wrong!
page 1.7
Online Quizzes:
We will have an online quiz due each Monday night, at 11:0pm. The link to each quiz is
on the Private Course Web Site.
The online quizzes are intended to be useful to you, for review purposes. Your quiz will
be pre-graded as soon as you submit it; you will be told how many questions you have
correct, and how many you have wrong. You will have the opportunity to correct any
answers before finally submitting your quiz.
You will have the opportunity to ask for an email confirmation of your quiz. Be sure to
get this confirmation, and save the message. If something happens, and your quiz grade
is not recorded, your email confirmation message will be your proof that you did indeed
submit your quiz. If your grade is lost, and you don't have your confirmation message,
you will not get credit for the quiz. Be sure to save your confirmation message!
You also have the option, at the end of each quiz form, to check to see if you have
already submitted a quiz. You can use this option at any time (it is at the very bottom of
the quizs login page) to see if you have successfully submitted a quiz.
Online quizzes must be submitted on time.
page 1.8
Unconditional Guarantee:
If you attend every class during the semester, pay attention in class, and complete each
programming assignment, I give you my personal guarantee that you will become a
better programmer. If you fulfill your obligations as herein stated and do not feel that
you have become a better programmer by the end of the semester, you may sit in on this
class again in the future, as many times as you choose, absolutely free.
page 1.9
page 1.10
BIS 1001: Programming for iPhone and iPod Touch
Spring 2011
Date
Subject
------- ---------------------------------------------------------------------------------------------------------01/11 Course Introduction. Required software, acquisition and installation.
Concepts:
The Apple iPhone Development Program and available resources
http://developer.apple.com/iphone
Introduction to object-oriented programming.
Concepts:
OOP terminology: class, object, property, method
------------------------------------------------------------------------------------------------------------------01/17 Assignment #1 due: misweb registration
01/18 Practice in-class quiz.
Introduction to iPhone/iPod Touch/iPad Programming.
Packet:
StaticHelloWorld
Concepts:
The iPhone programming environment: Xcode, Interface Builder
OOP terminology: class, object, property, method, instance variable
interface file, implementation file
the UIKit framework: UIView, UIViewController, UIButton, etc.
IBAction, connections
comments
------------------------------------------------------------------------------------------------------------------01/24 Assignment #2 due: Joining the MSU iPhone Developer Team
01/25 Practice in-class quiz.
Interacting with the User.
Packet:
DynamicHelloWorld
Concepts:
object-oriented programming
event-driven programming
UIButton, UITextField, UILabel
IBOutlet, IBAction, connections
viewDidLoad
properties, values
methods
------------------------------------------------------------------------------------------------------------------01/31 Assignment #3 due: Hello World, Hello Simulator
02/01 In-class quiz #1.
Packet:
ImageViewer
Concepts:
UIImage and UIImageView
Packet:
Concepts:
Colors
UIColor
page 1.11
BIS 1001: Programming for iPhone and iPod Touch
Spring 2011
Date
Subject
------- ---------------------------------------------------------------------------------------------------------02/07 Assignment #4 due: ImageViewer
02/08 In-class quiz #2.
Packet:
MovingImage
Concepts:
animation blocks, methods vs functions, random numbers
programming constructs: sequence, selection, repetition
Deploying to a Device.
Concepts:
app id, UDID, signing certificate, provisioning profile
------------------------------------------------------------------------------------------------------------------02/14 Assignment #5 due: MovingImage
02/15 In-class quiz #3.
Packet:
TemperatureConverter1
Concepts:
object-oriented programming
event-driven programming
UIButton, UITextField, UILabel
IBOutlet, IBAction, connections
viewDidLoad
properties, values
methods
------------------------------------------------------------------------------------------------------------------02/21 Assignment #6 due: TemperatureConverter
02/22 In-class quiz #4.
Packet:
TemperatureConverter2, TemperatureConverter3
Concepts:
Object-oriented programming
alerts: UIAlertView, UIActionSheet
delegate protocols
------------------------------------------------------------------------------------------------------------------02/28 Assignment #7 due: Alert
03/01 In-class quiz #5.
Packet:
TrackingImage
Concepts:
UIResponder, subclass, inheritance, NSSet
page 1.12
BIS 1001: Programming for iPhone and iPod Touch
Spring 2011
Date
Subject
------- ---------------------------------------------------------------------------------------------------------03/07 Assignment #8 due: TrackingImage
03/08 In-class quiz #6.
Packet:
SECTable
Concepts:
Navigation-based Application
UITable
UINavigationController, rootViewController
------------------------------------------------------------------------------------------------------------------03/14 Spring break. No assignment due.
03/15 Spring break. No class today.
------------------------------------------------------------------------------------------------------------------03/21 Assignment #9 due: SECTable
03/22 In-class quiz #7.
------------------------------------------------------------------------------------------------------------------03/28 Assignment #10 due: Parks
03/29 In-class quiz #8.
------------------------------------------------------------------------------------------------------------------04/04 No assignment due tonight.
04/05 In-class quiz #9.
Last day of BIS 1001.