Swift Coding Club - education-static.apple.com · every iOS app, too. It has all the tools for...

16
Swift Coding Club High School Coding Facilitator Guide

Transcript of Swift Coding Club - education-static.apple.com · every iOS app, too. It has all the tools for...

Swift Coding Club High School Coding Facilitator Guide

About Everyone Can Code Technology has a language. It’s called code. And we believe coding is an essential skill. Learning to code teaches you how to solve problems and work together in creative ways. And it helps you build apps that bring your ideas to life. We think everyone should have the opportunity to create something that can change the world. So we’ve designed resources and tools that let anyone learn, write, and teach code.

The Everyone Can Code program includes curriculum and resources for school environments and for clubs. Teachers, parent volunteers, or even students can run clubs, which can take place during school or be adapted for after-school and summer programs. Everyone Can Code is designed for students in kindergarten through 12th grade with any level of coding experience. It includes:

• One 60-minute self-paced session per school week

• Three kits covering elementary, middle, and high school levels

• An app design project to motivate and spark student creativity

• Coding activities grounded in everyday life examples

• Hands-on app activities to apply coding concepts

• Flexibility to address various club structures • Fun!

Table of Contents

About 2

Goals 3

Requirements 4

Club content 5

How to use the content 10

Tips for teaching with 11Xcode

Showcase 12

Rubrics 13

Certificate template 16

Goals Students will engage in the app design process and plan their very own app to help solve a problem in their school or community. They’ll apply coding concepts that they learn along the way to create a prototype of their app—and for older students, to also program their app.

During this process, students will deepen their learning through:

• Real-world engagement: Students will focus on designing an app that helps solve a problem in their school or community. Each coding concept lesson also uses real-world examples to show students how coding concepts can apply to everyday situations.

• Communication and creation: Students will use a creative process to design their apps and app pitch presentations. They’ll need to address who their audiences are and how to best communicate their ideas, as well as demonstrate the principles of design. App development projects are also included to help students get creative and build their first mini apps.

• Teamwork: All activities are designed for students to complete in small groups. Students will work in design teams, assigning roles to each member just like professional developers do. They’ll create a shared product and will need to use joint reasoning for the best results.

• Critical thinking: In the coding lessons, students will need to analyze, interpret, synthesize, evaluate, and generate solutions to complete the various activities. With their app project, students will apply the same critical-thinking skillsin a practical, product-driven way as they cycle through the reiterative design process.

• Personalized learning: The materials are designed to be flexible, maximize student choice, and address various skill levels.

3

Requirements Mac. Participants will need Mac computers running macOS High Sierra or Sierra. It’s recommended that they each have their own, but they can also share and code together.

Xcode. This free Mac app from Apple is used to build every other Mac app and every iOS app, too. It has all the tools for creating an amazing app experience. Xcode 8 is compatible with Swift 3, and Xcode 9 is compatible with Swift 4.

Learn more about Xcode.

App Development with Swift. For the advanced level, students are required to have taken or be currently taking an app development course like, App Development with Swift.

Download the Xcode app here.

4

Download App Development with Swift here.

Xcode requires a Mac running macOS High Sierra or Sierra.

Club content There are two levels of materials. Beginner materials are for students with no coding experience and who aren’t taking coding classes. Advanced materials are for students who have taken or are taking an app development course.

Beginner These materials focus on app projects that help students learn the basics of app development, as well as app design activities that let students start designing their own apps.

App Development Projects Eight projects are included to guide a beginner through the basics of both coding concepts and app development. Each project results in a working app and buildson the last, focusing on different aspects of apps, so that by the end students have the skills to build their very own app.

Students aren’t expected to complete all eight projects. The goal is to introduce them to different aspects of apps and inspire them to design their own apps. They’ll need the Intro to App Development with Swift course to do the projects. Make sure students complete the prerequisites needed for each one.

5

Download Intro to App Development with Swift here. (Beginner)

Download app development project guide here.

App Design

In these lessons, students will work together to design their very own app to help solve a problem in their or school or community. Students will engage in a design process where they’ll brainstorm, plan, prototype, and evaluate an app of their own. Students will then create an app pitch video documenting their app design process and show off their app!

The lessons are presented to students in Keynote. This file is meant to be used asan app design journal where students can keep track of their ideas throughout the lessons. Lesson ideas and prompts will guide students through the design cycle. Students should feel free to add and duplicate slides as they see fit. The idea is for them to document their process in the journal to help them reiterate and improve their current app project, as well as use it as a reference and starting point for future projects. Students should first play through the presentation to see what’s in it, then work in slide view to add notes, images, shapes, and more.

For more information and to learn essential skills for Keynote, check out the Apple Teacher Starter Guides to the right.

6

Brainstorm: 5 topics Develop: 3 topics Prototype: 3 topics Evaluate: 2 topics

Download the app design journal here.

Download Keynote for iPad Starter Guide iOS 10 here.

Download Keynote for Mac Starter Guide macOS Sierra here.

Download App Development with Swift here.

7

Advanced These materials concentrate on app design so that students who are taking or have taken an app development course like App Development with Swift can apply the coding and app development skills they’re learning to build their own app. Students will focus on the app design lessons, which parallel Unit 6 of the App Development with Swift course and take students through the design cycle. They’re the same as the beginner lessons, but include additional ones to help students plan and start the coding and app development process. By the end of the app design lessons, students should have a straightforward vision for their apps, working app prototypes in Keynote, and a clear plan for what they need to code. In the last club sessions, students will build their apps with Xcode.

Download the app design journal (advanced) here.

Here’s an example syllabus for 30 club sessions. You have the flexibility to add additional sessions to expand on app design and coding lessons, or even to add guest speakers and field trips.

Week Beginner Advanced

1 App development project #1 App design - Brainstorm

2 App development project #1 App design - Brainstorm

3 App design - Brainstorm App design - Brainstorm

4 App design - Brainstorm App design - Brainstorm

5 App design - Brainstorm App design - Brainstorm

6 App design - Brainstorm App design - Plan

7 App design - Plan App design - Plan

8 App design - Plan App design - Plan

9 App design - Plan App design - Plan

10 App design - Plan App design - Plan

11 App design - Plan App design - Plan

12 App development project #2 App design - Prototype

13 App development project #2 App design - Prototype

14 App development project #2 App design - Prototype

15 App development project #2 App design - Prototype

8

Week Beginner Advanced

16 App development project #2 App design - Prototype

17 App development project #2 App design - Prototype

18 App design - Prototype App design - Evaluate

19 App design - Prototype App design - Brainstorm/Plan

20 App design - Prototype App design - Prototype

21 App design - Prototype App design - Evaluate

22 App design - Prototype App development

23 App development project #3 App development

24 App development project #3 App development

25 App design - Evaluate App development

26 App design - Brainstorm/Plan App development

27 App design - Prototype/Evaluate App development

28 Showcase prep - app pitch Showcase prep - app pitch

29 Showcase prep - app pitch Showcase prep - app pitch

30 App design - Evaluate App development

SHOWCASE

9

How to use the content The materials are designed to be flexible so that anyone can lead a club, regardless of their coding experience. Here are a few things to consider as you decide how to best use these materials for your club.

Teacher Guides The club materials have been adapted from the Everyone Can Code curriculum for high school. For the beginner app development projects, a Teacher Guideis available that includes additional examples, reflection questions, and more. Use this guide to learn more and enhance your club experience.

Different skill levels If you have a club with varying skill levels, you may want to group students by skill level. If you have a few expert students, they could be student mentors and work with novice students. This may be particularly helpful for an advanced club. There’s no one way to write code. Students should review each other’s code, provide feedback, and help each other debug.

Guided whole group versus self-paced small group Depending on your level of involvement, coding experience, and club size, you can decide whether the club should be more of a guided experience or more of a student self-paced experience. You can also choose to lead the group in designing one app together with students working on different parts, or have groups work independently. All lessons in the sets are designed for small groups to completeat their own pace with little guidance.

In the beginner level, students might want to work through as many projects as they can. If possible, have them do the prerequisites at home so they can focus their club time on working on projects as a group.

10

Download Intro to App Development with Swift Teacher Guide here.

(Beginner)

Tips for teaching with Xcode Debugging Bugs are inevitable. The following tips can help students find and fix them:

• Check the console. It will sometimes have useful information about what went wrong. The red highlight shows the line in the code where the error occurred.

• Encourage students to stop and think about the problem. What are its symptoms? Was it working fine until [X]?

Xcode preferences Set your text editing and other preferences by choosing Xcode > Preferences from the menu bar. You can add developer accounts, customize navigation or fonts, choose certain behaviors when events occur, and more.

11

Keyboard shortcuts

Build the project ⌘ B

Build and run the project ⌘ R

Toggle comments on selected rows of code ⌘ /

Shift the selected code left ⌘ [

Shift the selected code right ⌘ ]

Command ⌘

Refer to Xcode Keyboard Shortcuts for a full list.

Showcase Celebrate students’ work with a showcase! Often, developers need to pitch their ideas to get support for their app. Now that students are budding app developers, they should do the same. Towards the end of the club, ask students to prepare an app pitch. They should prepare a 5–10 minute pitch using a presentation app like Keynote or even create a video. It should tell a compelling story and include:

• Why: What’s the problem the students are trying to solve? • Who: A description of who their app is for • What: An overview of the app • How: Discuss the UX and UI. Include:

– The design – The features – What coding concepts it uses – The prototype and visuals – Improvements made based on user testing

12

Tips for showcase • Recruit judges. They can be advanced student coders,

teachers and staff from the school, and community members who may benefit from the app ideas.

• Record student presentations. Use the videos to review afterward with the student groups.

• Rehearse. Use a few club periods for working on app pitches. You can run rehearsals so students can polish them.

• Give awards. Have some friendly competition. Here are a few award ideas: – Best Engineering: explanation of related coding concepts – Best Innovation: unique use of features to solve their

problem – Best Design: thoughtful UI and UX – Best Pitch: compelling story

Student group/app:

Good Outstanding

Engineering: 1 2 3 4 5

Innovation: 1 2 3 4 5

Design: 1 2 3 4 5

Pitch: 1 2 3 4 5

Notes:

Judges can use the following scale to keep track of their notes and to determine student winners:

13

Total score:

High school beginner To help them evaluate the student pitches, judges can refer to this rubric.

Novice Intermediate Proficient Mastered

Coding The student can explain how coding plays a role in app design.

The student can explain how sequencing, conditional logic, and touch events are important in the app design.

The student can explain how sequencing, conditional logic, and touch events, as well as more advanced coding concepts—such as while loops and types—are important in app design.

The student can explain how sequencing, conditional logic, and touch events, as well as more advanced coding concepts—such as while loops and types—are important in app design. The explanation connects the use of the coding concepts to the app’s overall goal.

User Interface The UI design is consistent, and complements the target audience and purpose of the app.

The UI lets users interact with and explore the app prototype using appealing and consistent visual and nonvisual cues.

The app prototype has a consistent, elegant design and creates new ways of engaging with the device through the UI.

The app prototype features a polished, innovative design and has a unique UI that “just works” for a range of users.

User Experience The app prototype uses iOS features and enables users to move forward and backward within the app.

The app prototype integrates iOS features to achieve the app purpose and enables users to explore personalized pathways within it.

The app prototype combines iOS features to achieve the app purpose. Clear visual cues enable users to explore different pathways within it.

The app prototype uses an innovative combination of iOS features for inputs and outputs of data. Its navigation innovates on the best practices of similar apps. It surprises and delights the user.

Pitch content The pitch shares key information about the app, such as its purpose and target audience.

The pitch clearly explains how the app was designed and how it improves on existing apps that have a similar purpose and audience.

The pitch explains how the app was designed to meet a market demand and how its solution is unique.

The pitch provides evidence of market demand and explains how the app design process ensures app success with key stakeholders.

Pitch delivery The team explains their pitch’s key points.

The team delivers their pitch with confidence and enthusiasm.

The team delivers an engaging pitch, using a range of audience engagement techniques.

The pitch is well articulated, creative, memorable, and fluid across the team.

14

High School advanced To help them evaluate the student pitches, judges can refer to this rubric.

Novice Intermediate Proficient Mastered

Coding Code runs with specified examples. It’s basic with no abstraction.

Code runs without error in all cases. It’s basic and there’s some evidence of abstraction.

Code runs without error. It’s organized with clear Swift naming conventions and there’s high evidence of abstraction. Explanation connects the use of the code to the app’s overall goal.

Code runs without error and is organized. There’s a high level of abstraction and effective use of Swift to achieve clean code. Explanation connects the use of the code to the app’s overall goal and weighs different possible solutions.

User Interface The UI design is consistent, and complements the target audience and purpose of the app.

The UI lets users interact with and explore the app prototype using appealing and consistent visual and nonvisual cues.

The app prototype has a consistent, elegant design and creates new ways of engaging with the device through the UI.

The app prototype features a polished, innovative design and has a unique UI that “just works” for a range of users.

User Experience The app prototype uses iOS features and enables users to move forward and backward within the app.

The app prototype integrates iOS features to achieve the app purpose and enables users to explore personalized pathways within it.

The app prototype combines iOS features to achieve the app purpose. Clear visual cues enable users to explore different pathways within it.

The app prototype uses an innovative combination of iOS features for inputs and outputs of data. Its navigation innovates on the best practices of similar apps. It surprises and delights the user.

Pitch content The pitch shares key information about the app, such as its purpose and target audience.

The pitch clearly explains how the app was designed and how it improves on existing apps that have a similar purpose and audience.

The pitch explains how the app was designed to meet a market demand and how its solution is unique.

The pitch provides evidence of market demand and explains how the app design process ensures app success with key stakeholders.

Pitch delivery The team explains their pitch’s key points.

The team delivers their pitch with confidence and enthusiasm.

The team delivers an engaging pitch, using a range of audience engagement techniques.

The pitch is well articulated, creative, memorable, and fluid across the team.

15

Signature

Awarded to

For

Swift Coding ClubCertificate of Achievement

Date: