Mobile Application
Development
ITP 342 (3 Units)
Fall 2014
Objective
This course teaches how to develop applications for mobile devices such as iPhones and iPads (iOS). We will go through the process of building a mobile application from start to finish using the iOS SDK (Software Development Kit). In lecture sessions, you will learn the basics of the Objective-‐C programming language, how to design mobile interfaces, how to use the libraries to build applications that have the proper look and feel, how to use table views, how to design and handle user input, and other aspects as time permits. During the lab sessions, students will create applications using the Xcode IDE (Integrated Development Environment).
Concepts
Mobile app development, object-‐oriented programming, data persistence
Prerequisites
• ITP 365 or CSCI 104
• May be waived for other programming classes such as EE 355
Instructor
Trina GregoryContacting the Instructor
[email protected]Office Hours
Listed on Blackboard under ContactsLab Assistants
Listed on Blackboard under ContactsLecture/Lab
2 hours, twice a week, for a total of 4 hoursRequired Textbooks
Beginning iOS 7 Development: Exploring the SDK by Jack Nutting, Fredrik Olsson, David Mark, Jeff LaMarche; Apress; paperback: 978-‐1-‐4302-‐6022-‐6; digital available: Kindle and eBook; on-‐line version available for free on Safari Books Online using USC username and password at:
http://proquest.safaribooksonline.com.libproxy.usc.edu/book/programming/mobile/9781430260226
Optional Textbooks
iOS Programming: The Big Nerd Ranch Guide by Christian Keur, Aaron Hillegass, Joe Conway; Big Nerd Ranch Guides; paperback: 978-‐0-‐321-‐94205-‐0; digital: 978-‐0-‐13-‐349187-‐6; on-‐line version available for free on Safari Books Online using USC username and password at:
http://proquest.safaribooksonline.com.libproxy.usc.edu/book/programming/mobile/9780133491876
Website
Grading
The following percentage breakdown will be used in determining the grade for the course.
Assignments 50% Midterm 25% Final Project 25% Total 100%
Grading Scale
The following shows the grading scale to be used to determine the letter grade.
93% and above A
90% -‐ 92% A-‐ 87% -‐ 89% B+ 83% -‐ 86% B 80% -‐ 82% B-‐ 77% -‐ 79% C+ 73% -‐ 76% C 70% -‐ 72% C-‐ 65% -‐ 69% D 64% and below F
If you are taking the class with a grade of P/NP, you must earn a grade of 70% or higher in order to receive a P.
Policies
No make-‐up exams (except for documented medical or family emergencies) will be offered. The University determines the Final Exam schedule. No changes can be made to it. The final project is due during the final exam time for this class, and attendance is required.
The labs will be posted on Blackboard under the “Assignments” section. Each lab will include instructions, a due date, and a link for electronic submission. Labs must be submitted using this link. Do not email them to the lecturer or lab assistant. Always keep a backup copy of them.
It is your responsibility to submit your assignments on or before the due date. Assignments turned in one day late will have 10% of the total points deducted from the graded score. Assignments turned in two days late will have 20% of the total points deducted from the graded score. Assignments turned in three days late will have 50% of the total points deducted from the graded score. After three days, submissions will not be accepted and you will receive a 0.
ITP will have open lab hours starting the second week of the semester. They give you an opportunity to work on assignments or projects. An ITP 342 lab assistant may not be present.
Each time the class meets, a roster will be passed around the room. Please initial by your name for the appropriate week. A tool such as Top Hat Monocle may be used in place of a paper roster. Do not sign in for another student. Doing so is an academic integrity violation.
Incomplete and Missing Grades
The University Grading Handbook covers all grading concerns and can be found at:
http://www.usc.edu/dept/ARR/grades/gradinghandbook/index.html.
A grade of Missing Grade (MG) “should only be assigned in unique or unusual situations… for those cases in which a student does not complete work for the course before the semester ends. All missing grades must be resolved by the instructor through the Correction of Grade Process. One calendar year is allowed to resolve a MG. If an MG is not resolved [within] one year the grade is changed to [Unofficial Withdrawal] UW and will be calculated into the grade point average a zero grade points.”
A grade of Incomplete (IN) “is assigned when work is not completed because of documented illness or other ‘emergency’ occurring after the twelfth week of the semester (or 12th week equivalency for any course scheduled for less than 15 weeks).”
Academic Integrity
USC seeks to maintain an optimal learning environment. General principles of academic honesty include the concept of respect for the intellectual property of others, the expectation that individual work will be submitted unless otherwise allowed by an instructor, and the obligations both to protect one’s own academic work from misuse by others as well as to avoid using another’s work as one’s own. All students are expected to understand and abide by these principles. SCampus is USC’s Student Guide to Policies and Conduct Code and can be found at: http://scampus.usc.edu. Section 11 contains the Behavior Violating University Standards and Appropriate Sanctions and can be found at:
http://scampus.usc.edu/1100-‐behavior-‐violating-‐university-‐standards-‐and-‐appropriate-‐sanctions/. Students will be referred to the Office of Student Judicial Affairs and Community Standards (SJACS) for further review, should there be any suspicion of academic dishonesty. The Review process can be found at: http://www.usc.edu/student-‐affairs/SJACS/. An academic integrity tutorial can be found at:
http://www.usc.edu/libraries/about/reference/tutorials/academic_integrity/index.php.
Examples of behavior violating University standards:
• The submission of material authored by another person but represented as the student’s own work, whether that material is paraphrased or copied in verbatim or near-‐verbatim form.
• Acquisition of term papers or other assignments from any source and the subsequent presentation of those materials as the student’s own work, or providing term papers or assignments that another student submits as his/her own work.
• Obtaining for oneself or providing for another person a solution to homework, a project or other assignments, or a copy of an exam or exam key without the knowledge and expressed consent of
the instructor.
• Unauthorized collaboration on a project, homework or other assignment. Collaboration between students will be considered unauthorized unless expressly part of the assignment in question or expressly permitted by the instructor.
• Fabrication: Submitting material for lab assignments, class projects or other assignments which is wholly or partially falsified, invented or otherwise does not represent work accomplished or undertaken by the student.
• Forgery, unauthorized alteration or unauthorized use of any university document, records, keys or instruments of identification, or of documents or records related to functions of the university.
If the instructor, a grader, or a lab assistant suspects you of academic dishonesty, it has to be reported to SJACS. Do not share lab assignments with another student. Do not submit another student’s work as your own. Do not look at other students’ papers during exams. Do not leave the room during an exam. Do not cheat! As Trojans, we are faithful, scholarly, skillful, courageous, and ambitious.
Students with Disabilities
Any student requesting academic accommodations based on a disability is required to register with Disability Services and Programs (DSP) each semester. A letter of verification for approved accommodations can be obtained from DSP. Please be sure the letter is delivered to your course instructor (or TA) as early in the semester as possible. If you need accommodations for an exam, the form needs to be given to the instructor at least two weeks before the exam.
DSP is located in STU 301 and is open from 8:30am to 5:00pm, Monday through Friday. Contact info: 213-‐740-‐0776 (Phone), 213-‐740-‐6948 (TDD only), 213-‐740-‐8216 (FAX), [email protected],
http://sait.usc.edu/academicsupport/centerprograms/dsp/home_index.html.
Emergency Preparedness/Course Continuity in a Crisis
In case of emergency, when travel to campus is difficult, if not impossible, USC executive leadership will announce a digital way for instructors to teach students in their residence halls or homes using a combination of the Blackboard LMS (Learning Management System), teleconferencing, and other technologies. Instructors should be prepared to assign students a “Plan B” project that can be completed ‘at a distance.’ Additional information about Campus Safety and Emergency Preparedness can be found at: http://preparedness.usc.edu.
Mobile Application Development
ITP 342 (3 Units)
Course Outline
Week 1 – iOS & Objective-‐C Fundamentals
-‐ Course overview
-‐ Intro to Xcode (IDE for iOS development) -‐ Testing apps in the iOS Simulator
-‐ Variables and data types -‐ Classes and method messaging
Assignment/Lab
First iOS app – “Hello World”
Week 2 – User Interaction
-‐ Connections -‐ IBOutlets and IBActions -‐ Storyboards and Interface Builder -‐ Icon images
Assignment/Lab
Lab 1 – Pirate vs Ninja
Week 3 – Properties and User Interface
-‐ Basic user interface components -‐ Properties
-‐ Primitives
Assignment/Lab
Lab 2 – MadLibs
Week 4 – MVC (Model View Controller)
-‐ Model -‐ Delegates
Assignment/Lab
Lab 2 – MadLibs
Week 5 – Collections and Gestures
-‐ Collections classes – NSArray, NSDictionary -‐ Gestures – Tap, Swipe
Assignment/Lab
Lab 3 – iFortunes
Week 6 – Accelerometer and Animation -‐ Motion Events, -‐ Accelerometer, Gyroscope -‐ Animation Assignment/Lab Lab 3 – iFortunes
Week 7 – Text Input and Memory Management
-‐ Delegation -‐ Segues -‐ Code Blocks
-‐ Memory Management – MRR & ARC
Assignment/Lab
Lab 4 – add text input & table view
Week 8 – Tables and Tab Bars
-‐ Table Views -‐ Tab Bars -‐ Singletons
Assignment/Lab
Lab 4 – add tab bar & singleton
Week 9 – Midterm
-‐ More user interface components -‐ Midterm review
-‐ Midterm
Week 10 – Data Persistence
-‐ User defaults -‐ File persistence
Assignment/Lab
Lab 5 – add data persistence
Week 11 – Audio and Notifications
-‐ Audio – play sounds
-‐ Vibration – force device to vibrate -‐ Notifications
Assignment/Lab
Lab 5 – add audio
Week 12 – iPad
-‐ Master-‐detail app -‐ Split view and popup -‐ Web View
-‐ Activity Indicator
Assignment/Lab
Lab 6 – Websites
Week 13 – Core Location
-‐ Core Location -‐ Location Manager -‐ Map Kit Assignment/Lab App Proposal
Week 14 – Camera and Photo Library
-‐ Accessing the camera -‐ Photo library
-‐ Pickers
Assignment/Lab
Final Project
Week 15 – Other Topics
-‐ Auto Layout and UIKit
-‐ Internationalization and Localization -‐ APIs and REST
-‐ Deployment
Assignment/Lab
Final Project
Final Project
-‐ Final project app
-‐ Each student will give a demonstration of their “Final Project” app
Date, Time, and Place
Friday, December 12, 2014, 2 – 4 pm, KAP 160
This schedule is subject to change.