Course Description

Bring Swift into the classroom with this collection of lesson plans, presentations, and Xcode projects to lead students through experiential learning.
Join the Swift Education community to access all materials, including Xcode projects, lesson plans and presentations:
We have designed the projects and lessons in this course to meet specific, clear learning outcomes, which are included in each lesson plan. Each lesson employs the need for recall and convergent, divergent, and evaluative thinking to accommodate different types of learners. These materials accommodate a wide variety of teaching styles and pedagogical approaches, including “active” learning techniques, constructionist methodology, Bloom and Blosser learning taxonomies, “Demonstrate, Collaborate, Facilitate” approaches, peer-supported learning, and your own effective methods. Lessons are flexible, and provide opportunities to answer the “what, how, what if, and why?” to engage student learning and cognition. Lastly, lessons and exercises recognize gender, ethnic and cultural bias, and we have designed these materials to be open to a diverse classroom.
With this collection of lesson plans, instructors can engage students with a project-based curriculum, and guide students in learning programming with Swift.

These course materials do not dictate a step-by-step script for your course. Rather, we provide you with a menu of projects and accompanying lessons to incorporate into your own iOS course. The primary learning outcome for this course is that students will be able to design and create iOS apps. Students will leverage Swift, the iOS SDK, and Apple developer tools. With iOS as the platform, students will learn object-oriented programming, design patterns, type systems, functional language features, user interface design, best practices in programming, and problem analysis.
The primary learning outcome for this course is that students will be able to design and create iOS apps. Upon successful completion of this course, students should be able to:
  • Define key programming terms relevant to Swift and iOS programming.
  • Describe the process of creating iOS apps.
  • State the purpose of the Apple developer tools, such as Xcode, Instruments, debugger, analyzer, and iOS Simulator.
  • Distinguish well-written code from poorly-written code.
  • Recognize patterns and idioms present in the Cocoa Touch API and other Apple frameworks.
  • Employ the Apple developer tools to create an iOS app.
  • Demonstrate programming best practices in Swift.
  • Examine and subdivide app functionality into properly designed components.
  • Explain and summarize iOS API features including location, mapping, sensors, gestures, multimedia and user interface components.
  • Plan, prepare and build an original iOS app, from concept to working program.
In addition, the lessons and exercises acknowledge and support the standards of the ACM Computer Science Teachers Association and the College Board AP Computer Science standards.
CSTA Project Based, Level 3 Course
  • Computational thinking
  • Collaboration
  • Computing Practice & Programming
  • Computer & Communications Devices
  • Community, Global and Ethical Impacts
AP Computer Science Criteria
  • Object-Oriented Program Design
  • Program Implementation
  • Program Analysis
  • Standard Data Structures
  • Computing in Context
These course materials assume that the instructor has read a book on iOS programming, has experience creating basic iOS apps and that the instructor is comfortable with Swift. Students are expected to have prior programming experience, such as programming with Java, C++, Objective-C, Python or Ruby, in an introductory programming course. Students are not required to have prior experience with Swift.
These course materials are designed to teach iOS programming through the creation of multiple apps using Swift, the iOS SDK, and Apple developer tools. Projects are divided into lessons, each of which includes an instructor lesson plan and accompanying Xcode project. All projects are grouped into levels, according to complexity. While levels are meant to be followed in sequence, we encourage you to pick and choose projects within each level according to time, student interest, course structure, and your requirements.