CIS 157 • Introduction to App Development with Swift

Jefferson State Community College • Shelby-Hoover Campus • Spring 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 introductory one-semester course is designed to help students build a solid foundation in programming fundamentals using Swift as the language. Students get practical experience with the tools, techniques, and concepts needed to build a basic iOS system.

Prerequisite The official prerequisite is CIS 150 (Introduction to Computer Logic and Programming); however, the textbook is designed for students without a programming background, so although having a basic understanding of programming logic would be beneficial, it is not required. A basic level of computer literacy (using applications, opening and saving files, accessing the Internet) is strongly recommended.

Textbook and Technology The textbook for this course, Intro to 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 introductory app development course focuses on the basics of the Swift language and the process of using Xcode to develop an iOS app. 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 lessons (see the calendar for other dates, including deadlines):

  1. Playground Basics: January 10
  2. Naming and Identifiers: January 17
  3. Strings: January 17, January 22
  4. Hello, world!: January 22
  5. First App: January 24
  6. Functions: February 5
  7. BoogieBot: February 7
  8. Constants and Variables: February 7, February 12
  9. Types: February 12
  10. Parameters and Results: February 14
  11. Making Decisions: February 19
  12. Instances, Methods, and Properties: February 28
  13. QuestionBot: March 5
  14. Arrays and Loops: March 7
  15. Defining Structures: March 12
  16. QuestionBot 2: March 14
  17. Actions and Outlets: April 2
  18. Adaptive User Interfaces: April 4
  19. Enumerations and Switch: April 9
  20. Final Project: April 11, April 16
  21. App Design: April 18

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

Item Number / Points Total Pts.
Exams 4 @ 150 pts. each 600
Item Number / Points Total Pts.
Lessons 21 @ 20 pts. each (1 bonus) 400
Bonus Driver / Navigator (up to 30 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 The Apple-provided iBook contains twenty-one 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.

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 ten 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). The driver will submit the assignment file(s) on Blackboard for both students; the navigator will submit a note stating the name of the driver with which the navigator worked. Each student will receive three points for each unique driver (up to five) and each unique navigator (up to five) with which the student works. This bonus replaces the Pioneer Bonus listed in the Syllabus Addendum.

Examinations After every five to six lessons 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 will 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 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.