Swift Coding Club - education-static.apple.com · Requirements iPad. Participants will need iPad...

17
Swift Coding Club Middle School Facilitator Guide

Transcript of Swift Coding Club - education-static.apple.com · Requirements iPad. Participants will need iPad...

Swift Coding Club Middle School 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 9

Tips for teaching with 11Swift Playgrounds

Showcase 14

Rubrics 15

Certificate template 17

2

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 an app pitch presentation. They’ll need to address who their audiences are and how to best communicate their ideas, as well as demonstrate the principles of design. In the coding lessons, students will complete activities using various drawing, presentation, and other content creation apps to showcase their work and capture their thinking.

• 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 skills in 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 iPad. Participants will need iPad devices running iOS 10. It’s recommended that they each have their own, but they can also share and code together.

Swift Playgrounds. This free iPad app from Apple can help anyone learn coding fundamentals by writing in Swift. Interactive puzzles teach key programming concepts in a way that’s both fun and challenging, building confidence and skills. Once students master the basics, they can apply their skills to a series of challenges and step up to more advanced playgrounds designed by Apple and other leading developers.

Learn more about Swift Playgrounds. Swift Playgrounds requires iOS 10.3 or later

and is compatible with iPad Air or later, iPad mini 2 or later, and all iPad Pro devices.

Download the Swift Playgrounds app here.

4

Club content Overview The materials are designed to equip students with the skills to build their own apps through app design and coding lessons. Pick and Choose activities within the coding lessons let you tailor the club to your students’ interests and dive deeper into a particular coding concept.

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 as an 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.

Download the app design journal here.

Download Keynote for iPad Starter Guide iOS 10 here.

Download Keynote for Mac Starter Guide macOS Sierra here.

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

5

Coding lessons

Coding concepts

In each lesson, students will learn about a fundamental coding concept and explore an everyday situation that’s related to it. The goal is for students to understand the concept as it relates to a familiar example. Students will then apply the coding concept using Swift Playgrounds. With these lessons, students will not only build up their coding skills, but they’ll also start to understand how apps work. This will help them design better apps.

Pick and Choose

Each coding concept also has two Pick and Choose activities. The activity on the left side of the page is designed to deepen understanding of the coding concept and to foster communication and teamwork. For this activity, students use iPad to capture their work and express their thinking.

The activity on the right side helps students reinforce their learning and apply the coding concept to a new context. It uses a playground from the Challenges, Accessories, and Starting Points sections of Swift Playgrounds. Note that the playgrounds from the Accessories section use connected devices like robots and drones, and may take multiple club sessions to complete.

Download beginner coding lessons here.

Download intermediate coding lessons here.

Download advanced coding lessons here.

5 beginner lessons 4 intermediate lessons 4 advanced lessons

10 beginner lessons 8 intermediate lessons 10 advanced lessons

6

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. If you have more time, you might consider spending longer on prototyping, especially for more advanced students. If you have less time, you may even opt to skip some Pick and Choose sessions.

Week Beginner Intermediate Advanced

1 App design - Brainstorm App design - Brainstorm App design - Brainstorm

2 App design - Brainstorm App design - Brainstorm App design - Brainstorm

3 App design - Brainstorm App design - Brainstorm App design - Brainstorm

4 Coding Lesson 1 Coding Lesson 1 Coding Lesson 1

5 App design - Brainstorm App design - Brainstorm App design - Brainstorm

6 App design - Brainstorm App design - Brainstorm App design - Brainstorm

7 Coding Lesson 2 Coding Lesson 2 Coding Lesson 2

8 Pick and Choose Pick and Choose Pick and Choose

9 App design - Plan App design - Plan App design - Plan

10 App design - Plan App design - Plan App design - Plan

11 App design - Plan App design - Plan App design - Plan

12 Coding Lesson 3 Coding Lesson 3 Coding Lesson 3

13 App design - Plan App design - Plan App design - Plan

14 App design - Plan App design - Plan App design - Plan

7

Week Beginner Intermediate Advanced

15 App design - Plan App design - Plan App design - Plan

16 Coding Lesson 4 Coding Lesson 4 Coding Lesson 4

17 Pick and Choose Pick and Choose Pick and Choose

18 App Design - Prototype App Design - Prototype App Design - Prototype

19 App Design - Prototype App Design - Prototype App Design - Prototype

20 App Design - Prototype App Design - Prototype App Design - Prototype

21 Coding Lesson 5 Pick and Choose Pick and Choose

22 App Design - Prototype App Design - Prototype App Design - Prototype

23 App Design - Prototype App Design - Prototype App Design - Prototype

24 App Design - Prototype App Design - Prototype App Design - Prototype

25 Pick and Choose App Design - Evaluate App Design - Evaluate

26 App Design - Evaluate App Design - Brainstorm/Plan App Design - Brainstorm/Plan

27 App Design - Brainstorm/Plan App Design - Prototype App Design - Prototype

28 App Design - Prototype/Evaluate App Design - Evaluate App Design - Evaluate

29 Showcase prep - app pitch Showcase prep - app pitch Showcase prep - app pitch

30 Showcase prep - app pitch Showcase prep - app pitch Showcase prep - app pitch

SHOWCASE

8

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 middle school, which has Teacher Guides that include additional examples, reflection questions, and Swift Playgrounds puzzle solutions. Use these guides to learn more and enhance your club experience.

Different skill levels The coding lessons are split into beginner, intermediate, and advanced levels and correspond to Learn to Code 1, 2, and 3 in Swift Playgrounds, respectively. For students with no coding experience, you’ll want to start with the beginner lessons. You may want those with coding experience to spend a session or two going through the Learn to Code 1 and 2 app puzzles in Swift Playgrounds as a quick review, and also to help determine whether they should be doing intermediate or advanced lessons.

If you have a club with varying skill levels, you may want to group students by skill level. If you have a few advanced students, they could be student mentors and work with beginner students.

Download Swift Playgrounds: Learn to Code 1 & 2 Teacher Guide here.

(Beginner and intermediate)

Download Swift Playgrounds:Learn to Code 3 Teacher Guide here.

(Advanced)

9

Guided whole group versus self-paced small group Depending on your level of involvement and coding experience, you can decide whether the club should be more of a guided experience or more of a student self-paced experience. All lessons in the three sets are designed for small groups to complete at their own pace with little guidance. If you prefer to lead the club, the coding concept lessons include prompts and questions that you can use in guided whole group discussions to ensure everyone’s on track and to spark further ideas. The Pick and Choose activities offer students choice in what topics they’d like to explore more, so they lend themselves to more of a small-group, self-paced structure.

10

Tips for teaching with Swift Playgrounds Solve in multiple ways. There are many solutions to the puzzles. If students finish early, encourage them to go back to try solving the puzzles a different way. Thinking flexibly and comparing different solutions can help them improve their critical-thinking skills.

Break down the puzzles. The puzzles get tricky. Students can divide a puzzle into parts to help them think through all the steps to solve it. They can use Pages or Notes to plan and write out their steps before entering the code.

Pair coding. Have students try working together on one iPad. They should brainstorm how to solve the puzzles and take turns writing the code.

Explore the puzzles first. Encourage students to zoom and rotate Byte’s world in the live view so they can take a good look at what they need to accomplish. They can also view it full screen by touching and holding the partition between the two windows, then dragging to the left. Return to the side-by-side view by touching and holding the partition handle on the left and dragging it to the right.

Use accessibility features. Swift Playgrounds works well with the iOS built-in assistive features so that anyone can learn to code. For example, you can invert the colors, enable grayscale, and zoom to adjust visibility for you or your students.

Set up a “Help Desk.” Maintain a space where student experts can provide support to their peers.

11

Choose a character. Students can personalize their experiences in the app by tapping the character to choosa different one.

Snippets Library. To minimize typing, students can tap in the toolbar to access the Snippets Library and quickly drag commonly used pieces of code.

12

Hints. This feature provides suggestions that can help support student learning and eventually reveals a puzzle’s solution. However, students cannot simply cut and paste the solution; they still have to go through the steps and write the code themselves to move on.

Control the speed. Students can speed up or slow down the code.

Highlight code as it runs. Use “Step Through My Code” to highlight each line of code as it runs so students can better understand what the code is doing.

13

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

• Why: The problem the students are trying to solve • Who: A description of who their app is for • What: An overview of the app • How: A discussion about the UX and UI, including:

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

14

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

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

15

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:

Total score:

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 The app prototype’s 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.

16

Signature

Awarded to

For

Swift Coding ClubCertificate of Achievement

Date: