CSC 581: Mobile App Development
Spring 2018

11:00-12:15 TuTh
110 Eppley
Dr. David Reed
203D Hitchcock      x2583

Text: App Development with Swift, Swift 4 Edition (v. 2.0.1), Apple Education, 2017.

Prerequisite: CSC 221

Course Description

This project-based course presents the fundamental concepts and techniques of mobile application development. The course will focus on the iOS platform, developing apps using Apple's XCode IDE and the Swift programming language. An overview of other platforms and development tools will be included, and best practices in the design and implementation of mobile content will be studied. Specific topics include the iOS architecture, the Apple UIKit, views, workflows, tables, data persistence, and Web integration.

The specific goals of this course are:

Required Work

Much of the course time will be spent in hands-on learning activities, working through interactive tutorials and developing apps in structured exercises. At the end of each unit, each student will complete a larger assignment, which applies the concepts and skills learned in that unit. A late penalty of 25% will be applied to any late assignment - assignments will not be accepted more than a week late. In the second half of the course, students will propose and implement an app of their own design. This app should address a real-world need and demonstrate good design and programming practices. In the last week of the semester, students will present their apps to the class.

Mixed into the semester will be discussion days, where students discuss assigned articles concerning mobile technology, design principles, and project management. Discussion questions will be assigned and students must submit their answers before class on that day. In addition, there will be one 75-minute midterm exam and a cumulative final exam (see the schedule below for exam dates).

There is no specific attendance policy for the course, although it is expected that absences will leave the student unprepared for tests and assignments. Tests will not be rescheduled except in extreme circumstances. The final grade for the course will be based on the following weightings:

discussion questions 05 %
5-6 unit assignments 25 %
semester project 30 %
75-minute midterm exam 20 %
100-minute final exam 20 %

At the minimum, departmental grading cutoffs for the final average will apply. That is, 92-100% guarantees an A, 87-91% a B+, 82-86% a B, 77-81% a C+, 71-76% a C, and 60-70% a D. Depending on class performance, some shifting of grades (in an upward direction only) may occur as final letter grades are assigned.

It is expected that all students check their Creighton email accounts regularly. Official announcements, such as assignment revisions or class cancellations, will be distributed through Creighton email.

Policy on Collaboration

Creighton's policy on cheating and plagiarism is spelled out in the Student Handbook, with college procedures available online. When completing exercises in class, students are encouraged to work in teams or small groups. However, unit assignments and the semester project should be the sole work of each student.

Violations of this collaboration policy will be dealt with severely, with possible outcomes including failure in the course. In the case of unit assignments, you are encouraged to start early so that there is time to seek help from the instructor as the need arises.

Daily Schedule (check regularly for updates)

Date Topic Readings Assignments
Jan 11 Course overview. (pptx/pdf)    
The iOS landscape. (pptx/pdf)
Getting Started with App Development: (pptx/pdf)
Unit 1
     Swift basics, XCode, Interface Builder,
     flashlight app.
HW1: due 2/2
Feb 1
Readings in mobile development.
Introduction to Swift: (pptx/pdf)
articles: 1, 2, 3, 4
Unit 2.1-2.6
     strings, functions, structs/classes, collections.
Introduction to UIKit: (pptx/pdf)
Unit 2.7-2.10
HW2: due 2/19
     UI elements, auto layout, stack views,
     calculator app.
Readings in mobile development.
Optionals & segues: (pptx/pdf)
articles: Apple, UXPin
Unit 3.1-3.6
Mar 1
     optionals, guards, segues, review,
HW3: due 3/21
     tab controllers, view controller life cycle,
     workflows, project design.
Unit 3.7-3.9
Tables & persistence:
     Swift protocols, MVC pattern,
Unit 4
checkpoint 1
     scroll & table views, saving data, list app.
Readings in mobile development.
checkpoint 2
Apr 3
Working with the Web:
     Swift closures & extensions, HTTP & URL session,
Unit 5
     JSON, concurrency, restaurant app.
Readings in mobile development.
checkpoint 3
Hybrid app development.  
Student demos.
course overview
May 1
FINAL EXAM    Tue, 1:00-2:40

Sample code from class

In the event of disruption of normal classroom activities due to a flu outbreak or other emergency, the format for this course may be modified to enable completion of the course. In that event, you will be provided an addendum to this syllabus that will supersede this version.