CSC-2310 Mobile App Development
Spring 2018
Instructor: Roger Shore Class Schedule:
Office Location: Congdon Hall 150 MW 12:05-1:45AM CSC-2310
Telephone: 841-9031 TTh 3:30-5:10PM CSC-4210
Office Hours: TTH 8-10AM TBA CSC-4610
MWF 2-3:30PM
E-Mail: rshore@linus.highpoint.edu Web site: linus.highpoint.edu/~rshore

Course Description: An introduction to the fundamentals of application development on mobile devices such as the cell phone or tablet. Students will work in an integrated development environment to write native apps for the selected platform. Current platforms include Eclipse/Android SDK or Xcode/iOS SDK. Emphasis will be placed on the user interface and the syntax and semantics of the language to write correct, efficient, and easily modifiable mobile applications.

Prerequisites: CSC-1720

Course Materials:

  1. Christian Keur and Aaron Hillegrass, iOS Programming: The Big Nerd Ranch Guide (6th Edition), Pearson Technology Group ISBN-13: 978-0134682334
  2. Matthew Mathias and John Gallgher, Swift Programming: The Big Nerd Ranch Guide (2nd Edition) Peasron Technology Group ISBN-13: 978-0134610610
  3. The Swift Programming Language (3.01) - A free resource provided by Apple Inc.
  4. Other resources: The department will provide all software necessary to complete the course. This will require the student to have an account on the departmental server. This account will give them access to the software and space to store solutions to assignments. Access to the server will be provided through a workstation in the departmental lab as well as from any remote location on and off campus.

Rationale: As we all know, there has been a shift in how individuals use technology. Cell phones and tablets are replacing laptop and desktop computers. The implementation of a mobile application on the mobile device is considerably different compared to a desktop application. The intent of this course is to expose students to the necessary tools and programming paradigms for mobile application development. This course would count as an elective course in the major or minor in computer science.

Course Objectives: Class Preparation:It is assumed that you will read the assigned chapters. Although the material may be summarized, lectures will be used mainly to further demonstrate other approaches to problem solving and to answer specific questions.

Programming Projects:: In addition to the major tests and exam, students will participate in a series of programming projects to further develop their mobile app development skills. Each project will require the student to design and implement an application demonstrating an increasing mastery of each learning objective.
Course Policy:
  1. Attendance: Attendance will be taken daily at the beginning of class. You are expected to be present in every class meeting. If absent from class, you are responsible for all lectures, in-class exercises, assignments, and handouts. Caution: Being absent from class does not change the due date of assignments.
  2. Grades: Your final grade will be determined as follows:

    Component

    Aprox. 8 Project Assignments

    2 Major Tests

    Cumulative Final Exam

    Total

    Weight

    40%

    40%

    20%

    100%

    Range
    93-100
    90-93
    87-90
    83-87
    80-83
    77-80
    73-77
    70-73
    67-70
    63-67
    60-63
    0-60
    Grade
    A
    A-
    B+
    B
    B-
    C+
    C
    C-
    D+
    D
    D-
    F
    You must score at least the minimum of a category to be given the associated grade, i.e. an average of 80 is a B- not a C+.
  3. Make-Up test will not be given. Unless prior arrangements have been made with excusable reasons, NO make-up test will be given. If you miss a test your final grade will be used in place of the missed grade. This means the percentage of the final exam will increase. If you miss the final exam, you will receive an F for the course.
  4. Assignments: Assignments, quizzes, and class work sheets will assist you in the understanding of the material presented during class. These will appear in almost every class meeting during the semester. Items completed during class cannot be made up therefore the lowest two grades will be dropped to allow for an occasional absence. Programming assignments will have gracious due dates. You must turn in the assignment by the due date for full credit.
  5. Classroom etiquette:
  6. Lab etiquette:
  7. Honor Code All students are expected to follow the University Honor Code, full details can be found in the Student Handbook. All academic work should be completed with the highest level of honesty and integrity.
  8. Students with Disabilities: Students who require classroom accommodations due to a diagnosed disability must submit the appropriate documentation to Disability Support in the Office of Academic Development, 4th Floor Smith Library. Student’s need for accommodations must be made at the beginning of a course. Accommodations are not retroactive.
Course Topics: Tentative Schedule of Topic Coverage based on iOS development
NOTE: in reality some topics appear repeatedly through out the semester while some topics appear on an as need basis.

Week 1-2: The setup - Development tools and Framework

Week 3: Understanding the environment - Mobile application issues
Week 4: Sensors (camera, compass, accelerometer, GPS) and basic interaction with device
Major Test #1 – Learning objectives 1, 3, 4 and 7
Week 5-10: The following topics cover core concepts that are necessary to develop a mobile app. These topics are introduced as needed and will be used throughout the course.
Major Test #2 - Learning objectives 2, 3, 5, 6 and 7
Week 11-14: Data Persistence, Remote Data-Storage and Communication
  1. Maintaining state between application invocations
  2. File system, Property Lists, SQLite, Core Data
  3. "Back End" / server side of application
  4. HTTP get, post, put, delete
  5. Database design, server side JavaScript / JSON
Week 15: Developers and App Store License Agreements
  1. Establishing the developer account.
  2. Publishing the App.
Cumulative Final Exam – All learning objectives