Teaching App Development with Swift Course Materials Overview



Similar documents
geniusport mobility training experts

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Mobile App Design and Development

Developing Applications for ios

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

COLLIN COLLEGE COURSE SYLLABUS

MEAP Edition Manning Early Access Program Hello! ios Development version 14

Mobile Application Development

City of Dublin Education & Training Board. Programme Module for. Mobile Technologies. leading to. Level 6 FETAC. Mobile Technologies 6N0734

Arduino Training - Basics of Micro-controllers Programming Basics

research: technical implemenation

CSCI E-65: Mobile Application Development Using Swift and ios

Building Mobile Applications Creating ios applications with jquery Mobile, PhoneGap, and Drupal 7

MA-WA1920: Enterprise iphone and ipad Programming

How To Develop An App For Ios (Windows)

Android Mobile App Building Tutorial

2. About iphone ios 5 Development Essentials. 5. Joining the Apple ios Developer Program

the gamedesigninitiative at cornell university Lecture 1 Course Overview

Mobile Application Design and Development Industry Certification

ios Application Development &

Objective C and iphone App

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Module Title: Software Development A: Mobile Application Development

SUMMER SCHOOL ON ADVANCES IN GIS

Student Teaching Expectations Undergraduate Early Childhood Education/Early Childhood Special Education Program SPCED-UE 1503 Fall Semester Juniors

View Controller Programming Guide for ios

Literature Review: Starting Mobile Application Development for E-Sports Portal Hayoung Noh

COMMUNITY COLLEGE OF CITY UNIVERSITY CITY UNIVERSITY OF HONG KONG. (English) Application for Portable Devices (Chinese)

Take Your Team Mobile with Xamarin

Mobile Application Development ITP 342 (3 Units)

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

INFORMATION TECHNOLOGY EDUCATION PROGRAMMING AND ANALYSIS COURSE SYLLABUS. Instructor: Debbie Reid. Course Credits: Office Location:

Learning ios Programming

Customize Mobile Apps with MicroStrategy SDK: Custom Security, Plugins, and Extensions

Creating Mobile Apps Development and Deployment

An Introduction to Modern Software Development Tools Creating A Simple GUI-Based Tool Appleʼs XCode Version 3.2.6

Xcode Application note

Basic Computer Skills Module 2. Software Concepts

Chapter 13: Program Development and Programming Languages

Mobile App Testing is not something special

Apple Professional Development

Xcode Project Management Guide. (Legacy)

Software Development Environment. Installation Guide

Shelly, G. B., & Campbell, J. T. (2012). Web design: Introductory (4th ed.). Boston, MA: Course Technology.

HTML5. Turn this page to see Quick Guide of CTTC

Network+ Guide To Networks 5e

Cross-Platform Development

PD 360 Training. Getting Started Series. PD 360 Essentials (Distance Learning) PD 360 Essentials. School Leadership and PD 360

Distance Education Learning Resources Unit Document Title: Online Course Review Checklist Last Updated: July 17, 2013 by the DE Office Draft Final

CURRICULUM VITAE. Senior ios developer position

iphone ios 6 Development Essentials

EM L05 Managing ios and Android Mobile Devices with Symantec Mobile Management Hands-On Lab

Guide to Teaching Coding

KonyOne Server Prerequisites _ MS SQL Server

ADITION ios Ad SDK Integration Guide for App Developers

A Brief Insight on IOS deployment in Education System- need for 3 rd Platform implementation in Schools

Promethean Academy. Copyright Information

COMPARING APPLE S IOS WITH SAMSUNG S BADA MOBILE SOFTWARE DEVELOPMENT PLATFORMS

Educational Technology Department Updated Course Descriptions. July 1, 2015

City University of Hong Kong. Information on a Course offered by Department of Computer Science with effect from Semester A in 2014 / 2015

ios Dev Crib Sheet In the Shadow of C

How To Use Titanium Studio

Managing Existing Mobile Apps

How To Teach A Mobile Operating System To An It Project

Mobile Application Development ITP 342 (3 Units)

Course Descriptions for MS degree in Instructional Design and Technology:

Issues in Android on Mobile Platform and Their Resolution

Web Design Introductory Concepts Techniques 3E

Robotics and Engineering Design (SKN11) Syllabus

iphone Objective-C Exercises

EM L18 Managing ios and Android Mobile Devices with Symantec Mobile Management Hands-On Lab

CALIFORNIA S TEACHING PERFORMANCE EXPECTATIONS (TPE)

Homeschool Programming, Inc.

Course Descriptions. preparation.

School of Education MASTER OF ARTS IN TEACHING. Master of Arts in Teaching

Creating a Jeopardy Review Game using PowerPoint software.

Developing Cross-platform Mobile and Web Apps

QML and JavaScript for Native App Development

Choosing a Mobile Application Development Approach

Native, web or hybrid mobile-app development

Computer Science. Computer Science 207. Degrees and Certificates Awarded. A.S. Computer Science Degree Requirements. Program Student Outcomes

Standards of Quality and Effectiveness for Professional Teacher Preparation Programs APPENDIX A

Career and Technical Education Programs of Study

A Modular Approach to Teaching Mobile APPS Development

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

Transcription:

Teaching App Development with Swift Teaching Programming with ios and Swift ios, Swift and the Apple toolset provide an excellent platform for teaching students how to program. With this collection of lesson plans, instructors can engage students with a project-based curriculum, and guide students in learning object-oriented programming with Swift. Project-Based Learning This overview describes the structure and principles behind the projects and lesson plans for teaching a hands-on, project-based, introductory course in developing ios apps with the Swift programming language. 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. 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. Course Learning Outcomes 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. Upon successful completion of this course, students should be able to: 1

1. Define key programming terms relevant to Swift and ios programming. 2. Describe the process of creating ios apps. 3. State the purpose of the Apple developer tools, such as Xcode, Instruments, debugger, analyzer, and ios Simulator. 4. Distinguish well-written code from poorly-written code. 5. Recognize patterns and idioms present in the Cocoa Touch API and other Apple frameworks. 6. Employ the Apple developer tools to create an ios app. 7. Demonstrate programming best practices in Swift. 8. Examine and subdivide app functionality into properly designed components. 9. Explain and summarize ios API features including location, mapping, sensors, gestures, multimedia and user interface components. 10.Plan, prepare and build an original ios app, from concept to working program. While all projects and lessons target these learning outcomes, we encourage you to pick and choose projects and lessons that best fit your own course plan. Prerequisites This course assumes 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. This course assumes that students will engage in project-based, hands-on learning, either individually or in pairs, at an Apple workstation with the latest versions of OS X, Xcode and the ios SDK installed prior to the first day of class. Lastly, using the Xcode Downloads preference item, you should have installed the latest ios and Xcode doc sets. Instructors can verify the development environment by running the Level 1 Flashlight project. Summary of Prerequisites Instructor familiarity with Swift and ios programming with Apple developer tools. Student familiarity with an object-oriented language such as Java, Ruby or Python. Instructor's Apple computer with projector, Xcode, ios SDK and documentation installed. Student Apple computers with Xcode, ios SDK and documentation installed. 2

Overview Of Course Materials This curriculum is designed to teach ios programming through the creation of multiple apps using Swift, the ios SDK, and Apple developer tools. Each project focuses on a single app or feature set, such as a Unit Converter app that converts degrees Celsius into Fahrenheit. Projects are divided into lessons, each of which includes: An overview of the feature to be implemented. Learning outcomes and relevant vocabulary. Step-by-step instructions supporting instructors in leading student learning. Presentation slides to help communicate concepts. Xcode projects for instructors and students. This menu of projects and lessons accommodates different course structures and levels of student experience. You can choose what you would like to incorporate into your course. Levels, Projects and Lessons 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. Level 1: Xcode Fundamentals and Swift Word Collage SpaceAdventure Level 2: Single View Apps and Model-View-Controller Clock Stopwatch UnitConverter Level 3: Frameworks and APIs EasyBrowser Found NoiseMaker Gesturizer FingerPainter 3

Level 4: Multiple View Controllers Flashcards RSSReader Journal Level 5: Advanced Frameworks Zombie Simulator Table 1: Projects are composed of lessons, and are grouped by levels of complexity. Instructors should pick and choose projects and lessons that meet course constraints. Each project consists of lessons, and each lesson varies in content and difficulty. Rather than "squeezing in" an hour or two's worth of material, a lesson focuses on a particular app feature, describes how to implement the feature, and emphasizes the concepts necessary for understanding what has been done. You may find that some class meetings will consist of two lessons, or that a lesson may need to span multiple meetings. M T W R F M T W R F UnitConverter Lesson 1,2 3 4 4,5 6 7 8 8,9 10 11 Table 2: Not all lessons are equal in length. Multiple lessons may fit in one class meeting, while others may require two class meetings. Which projects and lessons to incorporate, and how to best fit them into your specific course, are up to you. For example, after an introductory sequence with Swift, you may wish to start with building the Clock app, which includes six lesson plans, concept slides and Xcode projects. Next, you might build the UnitConverter app, which includes eleven lesson plans, presentation slides and Xcode projects. You might then move on to the next level, and build Found, NoiseMaker and Gesturizer, each with their accompanying lessons, presentation slides and code. Level 1 Word Collage SpaceAdventure Level 2 Clock Stopwatch UnitConverter 4

Level 3 EasyBrowser Found NoiseMaker Gesturizer FingerPainter Level 4 Flashcards RSSReader Journal Level 5 Zombie Simulator Table 3: Instructors may treat the levels and projects as a menu, to meet student interest, experience, and course constraints. Although the projects vary in complexity, we have designed each project's lessons to reach the most important learning outcomes as early as possible. This provides instructors and students the option to work on a different app each week, and yet reach the most important learning outcomes, despite not finishing the later lessons within a single project. Rather than spend two weeks on a single project's lessons, instructors may choose to move on to another project, to maintain student interest. Week Project Lessons Concepts Level 1 WordCollage Developer Tools 2 SpaceAdventure Swift 1 3 Clock Views, Controllers, and Outlets 4 Stopwatch MVC, Actions, Outlets and NSTimer 2 5 UnitConverter UI Components, Protocols, Delegates 6 EasyBrowser WebKit Framework 7 Found Map Kit Framework 3 5

Week Project Lessons Concepts Level 8 Gesturizer UIGestureRecognizer 9 FingerPainter UITouch, Core Graphics 3 10 NoiseMaker AV Foundation Framework 11 Flashcards Navigation Controllers and Segues 12 RSSReader Tab Bar Controllers 4 13 Journal Table View Controllers 14 Zombie Simulator Sprite Kit 15 Zombie Simulator Sprite Kit 5 Table 4: A weekly plan for a semester that focuses on one project per week. Engaging Advanced Students Many lessons include an Extensions and Modifications supplement to support instructors in keeping advanced students engaged in exploring ios development. Here are some additional suggestions we have found effective and challenging for advanced students. Leverage them as assistants. When an advanced student finishes an exercise early, empower them as assistants to facilitate other students' learning. Ask them to explain technical details. Much room is left in this curriculum to explore programming topics deeply. Ask advanced students to explain technical details or encourage them to seek out the answers to technical questions online. Present harder problems. While the "Extensions" sections provide additional work related to the lesson, challenge advanced students with genuinely hard problems. Encourage robustness, better error handling and emphasize user experience. Instruct them to explore Instruments, to become more adept with the debugger, to consider and handle edge cases and to think deeper about user experience. (What makes an great app?) Encourage them to create another app of their own choosing. Inform them that they must solve their own problems and bugs although you will try to facilitate. 6

Elevate their workflow to a professional level. Encourage the advanced student to spend time with the Apple developer documentation, to use version control and to explore libraries and frameworks. Deploy to the device. Enable the advanced student to deploy their work to an actual ios device to explore the sensors and camera. Education Standards 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 7