You are on page 1of 6

Fall 2014 CSU Fullerton Computer Science 411 Mobile Device Application Programming

Fall 2014 Computer Science 411


Mobile Device Application Programming
Course Description: An introduction to developing applications for mobile devices, including but not limited to
runtime environments, development tools and debugging tools used in creating applications for mobile devices.
Emulators are used in lab, students must provide their own mobile devices.
Course Prerequisites: CS 301 or by consent of the instructor
Course Webpage: http://gamble.ecs.fullerton.edu/teaching/fall14/cs411/
Course Mailing List: http://mailman.ecs.fullerton.edu/mailman/listinfo/cs411
Course Calendar: http://bit.ly/1l7mgpp
Course Meeting Information:
Room:
cs
Monday
13:0014:15
Time:
Wednesday 13:0014:15
Midterm Exam: Wednesday, October 15, 2014 from 13:0014:15
Final Exam:
Monday, December 15, 2014 from 14:3016:20
Important Dates:
September 1
HolidayLabor Day
November 11
HolidayVeterans Day
November 24November 28 HolidayFall Recess

Instructor: Michael Shafae


Phone:
657-278-3291
Email:
mshafae@fullerton.edu
Oce:
cs
Monday & Wednesday
Tuesday & Thursday
Oce Hours:
and by appointment

14:3015:30
16:0017:00

Teaching Assistant: None

Textbooks:
This is not an exhaustive list of texts that may be used during this course. Additional texts may be recommended
or required as the semester progresses.
1 of 6

Fall 2014 CSU Fullerton Computer Science 411 Mobile Device Application Programming

Required:
Object-Oriented Programming with Objective-C, Apple, inc., Apple, inc.
ISBN: http://bit.ly/19PWVKz

Programming with Objective-C, Apple, inc., Apple, inc.


http://bit.ly/154MpGB

ISBN:

Memory Management Programming Guide for Core Foundation, Apple,


inc., Apple, inc. ISBN: http://bit.ly/19PXaW1

Transitioning to ARC Release Notes, Apple, inc., Apple, inc. ISBN:


http://bit.ly/19PXiVF

Start Developing iOS Apps Today, Apple, inc., Apple, inc.


http://bit.ly/19PXunC

ISBN:

iOS App Programming Guide, Apple, inc., Apple, inc.


http://bit.ly/19PXzYw

ISBN:

Apple,
Xcode Overview,
http://bit.ly/1l7oi8P

ISBN:

inc.,

Apple,

inc.

Apples developer website has many online texts which a student should read before committing to purchasing
a popular text or reference book.
Apples iTunes U has a wealth of video podcasts focused on iOS development. Students are encouraged to
subscribe to these podcasts to supplement this courses lectures and lab exercises.
Additionally, many popular technical books may be read online through the campuss subscription to Safari
Books Online. From outside of the campus network, the campus librarys WWW proxy will grant you access,
http://www.library.fullerton.edu/asp/ipcheck.aspx?url=http://proquest.safaribooksonline.com/
?uicode=calstate. However, The Safari Books Online service can be accessed directly from any computer on
the campus network, http://proquest.safaribooksonline.com/.
Learning Goals: In order to achieve a satisfactory grade in this course the student must display competency in the
following course objectives as measured by assignments, exams, quizzes, and participation.
1. Identify the unique constraints placed on mobile
3. Understand and apply the Model-Viewapplications
Controller design pattern
2. Model, implement, & debug an application for a
4. Gain uency in the mobile device vendors premobile device
ferred programming language, runtime, and API
documentation.
Course Outline: This weekly outline will be adjusted accordingly during the semester and is given here as a
guideline.
1. Introductions, Objective-C
6. Application State Machines
2. Objective-C, Foundation Classes, Memory
7. ScrollView & Table View
Management
8. Midterm Review & Midterm
3. MVC, Protocols, Categories, & Xcode
9. ORM, SQLite, & Core Data
4. Labels, Text Fields, & Views
10. Core Location & Map Kit
5. Actions, Outlets, Quartz2D, & Image View
11. Static Libraries & Workspace
2 of 6

Fall 2014 CSU Fullerton Computer Science 411 Mobile Device Application Programming

12. Run Loops, Blocks, & GCD


15. More Graphics Rendering, OpenGL ES
13. More Static Libraries
16. Game Programming & Engines
14. Fall recess
17. Final Exam
Grading: Plus and minus grading will be used when determining nal grades. Approximately the upper third of
each grade bracket will be assigned a plus and the lower third a minus.
Final grades are computed by rst nding the average score in each category described in the table below on the
right. All scores are normalized to a scale of 0 to 100 before being averaged. The average score for each category
is then used to compute the weighted average according to the weights in the table below on the right.
Grade
A
B
C
D
F

% of Total Points
90100%
8089%
7079%
6069%
Below 59%

Category
Assignments
Final
Midterm
Participation

% of Final Grade
40%
25%
25%
10%

Graduate Grading: Graduate students that use this course on a graduate study plan must perform additional work
and will be evaluated on a separate grading scale vis--vis their undergraduate counterparts. A separate rubric will
be provided on all assignments for graduate students.
An additional programming project is mandatory for all graduate students. The project is proposed by the
student and approved by the instructor. Graduate students must have a project approved by the tenth week of the
semester or face a penalty of 10% for each week it has not been approved similiar to course rule . The nal project
is due on a date to be determined but will be on or after Monday, December 2, 2014.
Plus and minus grading will be used when determining nal grades. Approximately the upper third of each
grade bracket will be assigned a plus and the lower third a minus.
Final grades are computed by rst nding the average score in each category described in the table below on the
right. All scores are normalized to a scale of 0 to 100 before being averaged. The average score for each category
is then used to compute the weighted average according to the weights in the table below on the right.
Grade
A
B
C
D
F

% of Total Points
90100%
8089%
7079%
6069%
Below 59%

Category
Assignments
Final Project
Final
Midterm
Participation

% of Final Grade
30%
20%
20%
20%
10%

Technical Prociency: Technical prociency in programming and software engineering should correspond to the
prerequisite(s) of the course. Students are expected to be intimately familiar with their development platform of
choice and be able to write and debug code in C++.
Technical prociency with information technology, such as, but not limited to, the use of web-based online
services, sending and receiving campus electronic mail, and desktop computer lesystems, is assumed.
Assignments: Programming and written assignments will be handed out in class and typically posted on the course
website in advance of their due dates. Each assignment description will include the assignments grading rubric.
Reading assignments are outlined in the syllabus and it is the responsibility of the student to stay up to date with
the reading. Should there be a nal project, it will be due on the last week of class, which will include an in class
presentation and a short essay.
Written assignments must be typeset and presented in a professional manner. Presentation, spelling and grammar can be worth up to 30% of an assignments grade.
All programming assignments must be written in the Objective-C programming language, unless specied
otherwise. Coding style must conform to professional norms. At a minimum, code must be commented, have
descriptive names for identiers, and contain a header with pertinent information. Students are encouraged to use
inline documentation systems such as Doxygen. A plain text README.txt must be included with each assignment
submission summarizing and documenting the work submitted.
This course does not require you to use any particular computing platform however, your work must adhere to
open standards. At the start of every semester, the instructor will detail the platform and tools used to grade student
3 of 6

Fall 2014 CSU Fullerton Computer Science 411 Mobile Device Application Programming

assignments. It is the students responsibility to ensure that the assignments execute to his or her satisfaction on
the instructors grading platform.
Exceptions are made on a case by case basis given enough time and evidence to weigh the merits of the application.
The development tools are only available on the Apple computers. A lab with the appropriate development
tools and emulators is available within the Computer Science Department. The lab will be available to students
outside of class time, but for limited hours and not on weekends. Microsoft Windows, Unix, Unix-like, and other
computer platforms cannot be used to complete the homework assignments.
Having your own development tools, i.e. an Apple computer, is in your own best interest. Writing software
is an intellectually challenging and time consuming activity that will undoubtedly require many hours of eort
per week. To increase the likelihood of your success in this course, consider investing in an inexpensive, Intel
architecture Apple computer running at least Mac OS X 10.8 (Mountain Lion).
The course uses iOS 7, OS X 10.[8|9] (Mountain Lion|Maverick), and Xcode >5.
The department will not provide smartphones or tablet computers for students, just emulators included with
the Apple development tools. Students are encouraged to arrange to bring their own i(Device) or borrow one to
help them debug their applications. Only the nal project is required to be demonstrated on an Apple iPhone,
iPad or iPod.
In summary, to pass this class you must have an Apple computer that is compatible with the development tools
used in this class.
In order to sign up for Apples iOS Developer program, you must ll out the online form at http://bit.
ly/1uVpcEy by the end of the second week of instruction. After lling out the form, each student will receive an
email invitation to Apples iOS Developer University program. You will need to complete the registration process
within 30 days of receiving the invitation code in order to be blessed by Apple. This will give you the privilege of
loading your own software on a stock Apple i(Device). At the end of the semester you will be removed from the
iOS Developer University program.
Beyond the assigned readings, there will be approximately eight assignments in total. There are approximately
two written assignments and six programming assignments.
Participation: in the context of this course participation is dened as the following:

Arriving to class prepared and on time. Taking notes.


Actively listening to the lecture and asking questions when appropriate.
Annotating code listings and handouts.
Bringing any required materials to class.
When needed/desired, seeking assistance to complete assignments.
Barring an emergency, not leaving the class session early unless the instructor consents.

Quizzes & Exams: There may be a small number of quizzes that will be administered in class. The quizzes will
cover material that has been discussed over the past 10 calendar days prior to the quiz, including any assigned
reading. Quizzes may or may not be announced. A quiz score will be counted as an assignment.
The dates for the exams are listed on the syllabus. Unless stated otherwise, all quizzes and exams are closedbook. Students are not permitted to use anything that uses electricity during an exam, such as electronic calculators,
cellular phones, and portable computers.
Quizzes and exams cannot be taken after the test date.
Academic Dishonesty: Students are encouraged to assist one another and discuss the course materials with your
peers. It is your responsibility to be aware of and follow the spirit of CSU Fullertons academic honesty policy which
can be found at http://www.fullerton.edu/senate/documents/PDF/300/UPS300-021.pdf. By submitting
work for evaluation, you acknowledge that you have adhered to the spirit of the universitys academic honesty policy
and that your submission is an original work by you unless otherwise directed to work in groups. Failure to follow
the spirit of the academic honesty policy will result in a severely negative evaluation of the work in question and
may result in involving the Department Chair and the Judicial Aairs oce to seek a disciplinary remedy.
ADA Accommodations: Any student who, because of a disability, may require special arrangements in order to
meet course requirements must contact the instructor and the Oce of Disability Support Services as soon as
possible to make the necessary arrangements. The instructor may request verication of need from the Dean of
Students Oce. Students are encouraged to contact the Oce of Disability Support Services within the rst
4 of 6

Fall 2014 CSU Fullerton Computer Science 411 Mobile Device Application Programming

week of the semester to best ensure that the appropriate accommodations are implemented in a timely fashion.
The Oce of Disability Support Services website is http://www.fullerton.edu/DSS/. They can be reached
by phone at 657-278-3117 or TDD at 657-278-2786. Their email address is dsservices@fullerton.edu.
Their oce is located in University Hall, room 101.
Emergency Procedures: For your own safety and the safety of others, each student is expected to read and understand the guidelines published at http://www.fullerton.edu/emergencypreparedness/ep_students.
html. Should an emergency occur, follow the instructions given to you by faculty, sta, and public safety ocials. An emergency information recording is available by dialing 657-278-0911 or 657-278-4444.
Instructional Continuity: Due to an event such as an epidemic or a natural disaster that disrupts normal campus
operations, students must monitor the course mailing list for any instructions and assignments that the instructor
announces.
Class Notes & Recordings: California Education Code section 66450 prohibits any business or person from
selling or otherwise distributing or publishing class notes for a commercial purpose. Section 66451 provides for
associated criminal penalties. It is important to know NoteUtopia and any similar company that distributes/sells
class notes violates these statutes.
Any photography, audio recording or video recording of students, the instructor, and presentations is expressly
prohibited without prior consent of the instructor.
Course Rules:

All students must have an email address, be subscribed to the course mailing list and read email regularly.
Attendance at all regularly scheduled lecture and discussion section is mandatory.
Do not eat during lecture.
If it makes noise, silence it.
Portable computer use is not allowed in lecture except for taking notes.
Quizzes and Exams cannot be taken after the test date.
The student is responsible to be aware of any course announcements including changes to due dates and
requirements.
Never submit an assignment via email.
Never send attachments to the instructor unless directed to do so.
Work submitted must be appropriately prepared and typeset.
A students nal project may not be submitted late. Any assignment submitted late will have 10% deducted
from the total points possible for every day that it is late. For example:
1 day late max. score of 90100
2 days late max. score of 81100
3 days late max. score of 74100

Third party code may not be used in student work without prior instructor consent. Failure to gain and
document instructor consent will be construed as willful academic dishonesty.
When third party code is incorporated into student work, failure to wholly document the codes origin,
copyright and license will be construed as willful academic dishonesty.
Due to an act of nature, medical emergency, an act of violence by a non-state actor, severe civil unreset, or
hostilities between nations, students have 10 calendar days to petition the instructor to retake any exam/quiz
or submit an assignment without late penalty.
Exceptions will be made on a case by case basis, provided there is time to evaluate the merits of such an
application.
Student Checklist: The checklist below summarizes the actions that a student must take in the rst week of the
course.
2 Sign yourself up for the course mailing list, http://mailman.ecs.fullerton.edu/mailman/listinfo/
cs411.
2 Submit your UUID for your iOS computers http://bit.ly/1uVpcEy
2 Download the PDF books recommended for this course and start reading.
5 of 6

Fall 2014 CSU Fullerton Computer Science 411 Mobile Device Application Programming

2 Set up your development environment: Xcode 5 with command line tools.


2 Bookmark the course web page, http://gamble.ecs.fullerton.edu/teaching/fall14/cs411/.
2 Add the course midterm and nal dates into your personal calendar.
2 Graduate students only: have your nal project topic approved by the start of the tenth week, November 27.
2 Start working on your rst assignment; see course web page.

Copyright 2014 Michael Shafae. All Rights Reserved.


$Id: cs411_syallbus.tex 5131 2014-08-25 06:33:29Z mshafae $

6 of 6

You might also like