CIS 220 • App Development with Swift I

Jefferson State Community College • Shelby-Hoover Campus • Fall 2018

Instructor: Mr. Tommy Battles
Office Health Sciences Building Room 427
Office Hours See Weekly Schedule
E-mail tbattles (at mark) @jeffersonstate.edu

Catalog Course Description This is the first of two courses designed to teach specific skills related to app development using the Swift language.

Prerequisite CIS 157.

Textbook and Technology The textbook for this course, App Development with Swift by Apple Education, is electronic; you may download it on any Mac or iOS device using the iBooks application.

Although you will be able to save your files to iCloud, you may want to bring a USB flash drive to save your work there instead; it can be a new flash drive dedicated to the course, or it can be one you've had for several years that contains files for other purposes. Do not share your flash drive with another student under any circumstance.

Software The integrated development environment (IDE) that supports writing programs in Swift to target macOS, iOS, and related operating systems is Xcode, available for free in the Mac App Store. Xcode is already installed on the Macs in our classroom; you will have access to it during our class time, during the open lab hours mentioned above, and by request (you may need to contact your instructor to make an appointment; the classroom may be in use, or there may not be an authorized Jeff State employee on campus to unlock the classroom). There are source code editors that support Swift syntax for other platforms (e.g., Notepad++ for Windows).

Jefferson State students have access to install Office 365 (currently Office 2016) on multiple computers and devices: after signing into myJSCC, click the link for Office 365 under Unread Messages; log in using your full Jefferson State e-mail address; in the upper-right corner, click the gear symbol for Settings; under Your App Settings, click Office 365; and on the left, click Install Status. Note that your access to Office 365 continues only as long as you are actively enrolled; for long-term access, currently-enrolled students can purchase a four-year subscription to Office 365 University at a discounted price.

Students enrolled in CIS courses at Jefferson State may also obtain other Microsoft software free-of-charge through Microsoft Imagine (formerly DreamSpark); be looking for an e-mail message in your myJSCC account with your login information.

Course Content This intermediate app development course reviews and builds on concepts covered in CIS 157. Some lessons center on small portions of Swift syntax; others walk students through a full app development process. At times students are asked to watch their instructor perform a task before attempting it themselves; otherwise, they are free to work through the steps on their own.

Schedule The following is a tentative schedule of units (see the calendar for other dates, including deadlines):

Grades Refer to the following tables for the contribution of each course item to your grade.

Item Number / Points Total Pts.
Exams 3 @ 200 pts. each 600
Item Number / Points Total Pts.
Lessons 27 @ 10 pts. each (2 bonus) 250
Projects 3 @ 50 pts. each 150
Bonus Driver / Navigator (up to 20 pts.) 0
Non-Exam Total 400

See the syllabus addendum for details on how your final grade is determined as well as other bonus opportunities.

Lessons and Projects The Apple-provided iBook contains three units with a total of twenty-seven lessons, most of which contain a guided coding exercise. For each of these lessons, you will submit the code for the guided exercise; you may also be instructed to submit code for a freestyle assignment or one with more specific steps. There may be a single Blackboard assignment tool for the entire lesson, or there may be separate tools for the different parts of the lesson. There may also be assignments that involve general app planning rather than writing code.

At the end of each unit there is a guided project that incorporates concepts from throughout the unit. These projects tend to be more involved than the assignments from the lessons.

Some assignments require the use of existing files; these will be provided via links either within the iBook or on the assignment's page on Blackboard. You may not use another student's file to continue work on an assignment. Your instructor may add or modify assignment requirements relative to the iBook; he will post these changes on Blackboard. You are expected not only to follow the instructions, but also to ensure that the code executes properly. Grades will reflect both effort and accuracy, but you should aim for as functional a solution as time permits.

Although there may be a variety of ways to code an assignment solution in Swift, your code should include only the syntax discussed in the iBook and / or posted on Blackboard unless you receive prior permission from your instructor.

Assignments are due at 9:59 p.m. on the date of the deadline. Any submission after this deadline will be accepted for half credit per the policy in the syllabus addendum.

Driver / Navigator Bonus Your instructor will select four lesson assignments at random to complete in driver / navigator mode: students will be paired such that one student does the typing (the driver) and the second tells the first what to type (the navigator). Both the driver and the navigator will submit the assignment file(s) on Blackboard, with a comment stating the name of the other student and which role each student performed. Each student will receive five points for each unique driver (up to two) and each unique navigator (up to two) with which the student works.

Examinations At the end of each unit there will be an examination. These examinations will test both your understanding of underlying concepts and your knowledge of Swift syntax and Xcode procedures. Examinations may feature a mixture of multiple-choice questions, one or more problems in which you write the output of a Swift program included in the exam, and / or one or more exercises in which you must write Swift code to solve a problem. Your instructor may allow you access to selected resources during the examination. Examinations are administered on paper; you must bring your own writing utensil (pencil, blue ink, or black ink) for each exam. Because of the cumulative nature of computer programming, you are advised to maintain a thorough understanding of topics covered early in the semester so as not to hinder your performance on examinations covering later lessons.

These are the tentative examination dates:

In the event of an excused absence, you may make up one exam if the make-up occurs within one week of the scheduled exam date. If logistics prevent the scheduling of a make-up within one week, your instructor may choose to substitute your final exam grade in place of that exam grade. If you miss more than one examination, you must contact your instructor to determine if, and how, you will be able to recover the points for the other missed examination(s).

Academic Honesty Students are expected to complete their own work regardless of circumstances. The following activities are violations of the Academic Honesty Code for this course:

Under no circumstances should you post any portion of your solution to any assignment, even in progress, on a public discussion board, forum, or newsgroup. Making such information available on the Internet will be considered academic misconduct.

During an examination, all hats, caps, visors, headphones, and earbuds must be removed unless required for ADA accommodations; additionally, no portable electronic devices (cell phones, media players, etc.) may be used unless required for ADA accommodations.

Your instructor will follow the procedures outlined in the Academic Honesty Code section of the Catalog and Student Handbook should he perceive a violation of the Code. Unless there is evidence that the violation was not due to any action on the part of a specific student, each student involved in the violation will be penalized.