CSC 581: Mobile App Development
Spring 2019

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 (working individually or oin a team of two) 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 30 %
semester project 25 %
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. Unless otherwise specified, unit assignments should be the sole work of each student. Semester projects may be completed individually or with a partner.

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 17 Course overview. (pptx/pdf)    
The iOS landscape. (pptx/pdf)
iOS history
Getting Started with App Development: (pptx/pdf)
     XCode, Interface Builder, UI elements, auto layout,
XCode (Ch 3-4)
Unit 1
HW1: due 2/8
Feb 5
     flashlight app, Swift basics.
Structs & layout: (pptx/pdf)
Unit 2.1-2.6
HW2: due 2/20
     strings, functions, structs & classes,
     Stack View, UIImageView, Tap Gesture Recognizer.
Data & user interaction:
     computed fields, lists, dictionaries, UI controls.
Unit 2.7-2.10
Readings in mobile development.
native?, iOS?
Mar 5
Optionals & navigation:
     optionals, guards, segues.
Unit 3.1-3.6
     tab controllers, workflows, project design.
Protocols & persistence:
Unit 3.7-3.9
Unit 4.1-4.3
     Swift protocols, MVC pattern, popovers.
     scroll & table views, saving data.
Unit 4.4-4.9
Apr 2
Examples & advanced topics.
Project consultations
Platform-independent development:

Mobile Web apps:
May 2
Student demos.
course overview
May 7
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.