SlideShare a Scribd company logo
1 of 33
Download to read offline
E X T R A C U R R I C U L A R
S W I F T
S A L LY S H E PA R D / / @ M O S T G O O D
T H E
O P P O RT U N I T Y
Lot’s of people will talk to you about Swift.

They’ll talk to you about type safety, relying on the compiler and optionals.

They’ll talk to you about functional patterns.

They’ll talk to you about functions as first-class objects.

I want to talk about the potential of Swift in learning.

About using it’s clear, concise syntax to teach the concepts and practices of programming.
T H E N E E D
But why? Why teach kids to code?

Learning to code does not mean funnelling every child into a job as a programmer. 

By the time they are adults the landscape will have changed 

probably beyond our imagination. 

The real benefit of teaching kids to code is to pass on skills that are useful in many other
paths through life. 

Ordered thinking, problem solving, abstraction and attention to detail are general skills
that benefit any occupation.
B R I D G I N G T H E
G A P
Resources in schools are often limited, and it's difficult for teachers to not only maintain
knowledge of technology but to also learning new technologies.

Because of this, it’s essential to have ways of complimenting the current curriculum.

When I heard about this after school club for teaching children to code, I really wanted
to get involved.

So a few months ago I went to a code club induction session, super-excited about the
possibility of teaching kids to code.
W H AT I S C O D E
C L U B ?
W W W. C O D E C L U B . O R G
What is code club?

-For children aged 9-11

-Volunteer-led after-school coding club.

-For one hour a week, kids get to learn to program starting with Scratch and working
their way up through HTML and CSS up to Python.
E X T R A C U R R I C U L A R
After-school clubs are often the only place where children can discover what is going on
behind the games they play. 

It's great for them because they are not forced to be there, they want to be there, it
creates a different relationship for them.

We are a huge, untapped, reservoir of knowledge and enthusiasm that can make a real
difference.

I love that we are a passionate, excited and friendly community and I think it would be
amazing to leverage that excitement and pass it on to a new generation of programmers.
C O D E C L U B
C U R R I C U L U M
I wanted to spend some time working on helping kids learn to code, but I couldn’t commit
to running a club.

I’ve been looking at the Code Club tools and examining them as a framework for how
Swift could be an amazing tool for learning.

Before I get into what I’ve been working on, I want to give you a brief overview of what
gets covered in code club.
H T T P : / / S C R A T C H . M I T. E D U
S C R AT C H
The first two terms involves using Scratch to build programmatic structures like loops and
conditions with coloured blocks and immediately see the results on the screen.

It’s all drag and drop, so it really focuses on learning logic without having to also learn a
language.

It’s mostly targeted at simple game mechanics as a way to get children interested.
H T M L & C S S
After completing Scratch, the students can move onto a term of HTML and CSS.

They get to build some simple websites and learn how to style them.
P Y T H O N
Finally, they get to learn Python.

It builds well off of everything they’ve learned so far, but focuses on learning more
about programming languages.

The lessons for the first term of Python include:

Printing text, catching errors, variables, data types, conditionals, loops, using libraries,
collections.

It provides a decently comprehensive introduction to structures and data types.

I’d like to take a moment to look at the Python language and tools and why they make a
good choice for learning.
W H Y P Y T H O N ?
So why choose Python for learning?

Simple, clear syntax: 

-there’s no division between primitives and objects.

-no complications around pointer notation and memory management.

Focuses on what-to-do not how-to-do-it.

Widely available:

-free to obtain and ships with most OS.

Wide selection for functions like math, drawing etc..

And it has a choice of interaction methods.

There’s Python IDLE. This is the method of choice for Code Club.

And There are also Web-based tools.

So now we understand the basis for using Python, let’s take a look at Swift in comparison.
S W I F T A S A N
A LT E R N AT I V E
Swift embraces most of the points that made Python a good choice: 

Simple syntax, focus on what over how, 

great library support from Foundation and UIKit, 

and some choices as to how to interact with it.

In less than a year, Swift has become hugely popular, just imagine where it will be in
5-10 years.
A C C E S S I N G
S W I F T
There are three main ways to access Swift

-Xcode

-REPL

-Web-based tools
X C O D E
Xcode gives you access to full projects and playgrounds.

Playgrounds allow you to use a huge spread of libraries and features to ‘live code’
anything from ‘Hello, world’ up to Scene Kit 3D game views.
R E P L
The closest match for the Python IDLE is the Swift REPL. 

This can be access by typing ‘swift’ on the command line and requires at least that the
Xcode Command Line tools package be installed. 

The REPL allows commands to be typed and executed immediately, referencing
previously typed declarations and commands. 

Alternatively you can pass in a Swift file at the command prompt and have it executed
automatically. 

You can also specify command line arguments, which can be accessed via
Process.arguments
W E B - B A S E D
T O O L S
W W W. R U N S W I F T L A N G . C O M
There are also some great web-based resources for running Swift, like
runswiftlang.com. 

They are restricted to using Foundation only and so you do not have access to UIKit.

The big advantage of this is you can run it on any computer that has access to the
internet and you don’t need to install any software or tools.
T H E
C H A L L E N G E S
There are some challenges to overcome before Swift can be embraced as a learning tool.
E N V I R O N M E N T
A N D FA C I L I T I E S
The biggest problem is schools don’t usually have Macs, schools are most likely to have
PC hardware running Windows. 

There are usually safeguards in place to limit accessing content outside of the school
network and restrictions on installing additional software on any of these machines. 

At the end of the day, there is a potential roadblock around either needing Mac hardware to
fully engage with Swift or using Web-based tools and accepting the limitations they have.

Outside of having direct access to macs or using web-based tools, there are some other
options I’ve looked into.
S S H I N T O A
S I N G L E M A C T O
R U N R E P L
You can SSH into a mac to run the REPL.

Here you’d use a single Mac with Xcode Command Line Tools installed, either added to
the local network or remotely located and accessible through the firewall as a server and
open up SSH sessions in a command line on any platform to access the REPL.

The difficulties with this are you’d still need a Mac somewhere and you wouldn’t have
access to Playgrounds.
A C C E S S I N G A
M A C V I A V N C
You could also give visual access to a Mac to use Playgrounds across VNC or other
Screen Sharing technology.

Again, with this option you’d still need a Mac somewhere 

and there could be performance issues, but you would have access to Xcode,
Playgrounds and REPL.
R U N O S X I N A
V I RT U A L M A C H I N E
Run OS X in a virtual machine. 

This would enable both Xcode and REPL access.

But, this would require the school to keep Xcode up to date, and for their IT team to
know how to use Macs. 

This could also have performance issues since most computers in schools are not
designed to run Xcode.
C O R P O R AT E
S P O N S O R S H I P
Get some corporate sponsorship to finance a small mobile mac lab.

It means you don’t have to interfere with the schools hardware or network.

You would still have to deal with individual schools requirements over what software is
installed on the machines, how it’s monitored and who is in charge of upkeep.
L I M I TAT I O N S
O N I N P U TThe REPL and Playgrounds are missing one significant feature that Python possess.

And that’s an way to easily capture input from devices, commonly standard input from
the keyboard. 

This input allows interaction with running code, 

and that immediate feedback is a great way of providing a reward for work 

when children might have a small attention span.

Although REPL has access to command line arguments, 

this is still limited and not in real time during execution.
W H AT A B O U T
W I N D O W S ?
Use your skills and imagination to build tools to make using Swift easier in other
environments. Could you make playgrounds that work on Windows?

Or a more full-featured web-based tool?
G O G E T
I N V O LV E D
Kids need the opportunity to learn from coding, not just for the next generation of
programmers but also as general life skills.

Swift is an amazingly suitable language to use to help kids understand the concepts and
practices of programming.

The tools are still maturing and need our input and innovation to reach the ubiquity of
other languages.

Our community is so ideally placed to make a difference to the education and abilities of
children, we owe it to them to make the effort.
H O W T O G E T
I N V O LV E D
There are a number of organisations for supporting this, but these are the two I’m most
familiar with:

Code Club and Stemnet.
R U N A C O D E
C L U B
You can run a club: you don’t have to do this on your own, in fact it’s better to get a few
volunteers to run a club.

There will also be a teacher with you at all times.

Try to get your employer to agree to send a few people from your team, alternate
between weeks if that’s easier.
H O S T A C L U B
You can also host a club.

Code clubs don’t have to be in schools,

they also take part in libraries and community centres.

If you know a place that would work - talk to them.
V O L U N T E E R
T O T E A C H
T E A C H E R S
You can volunteer to teach teachers so they can better support students.

Many teachers don’t have training to properly teach the new computing curriculum,

help them get where they need to go.

(Find out more: http://www.codeclubpro.org/become-a-trainer)
W R I T E /
I M P R O V E
M AT E R I A L S
If you’re worried about commitment, or maybe terrified of children, you can contribute
by making some cool new projects.
There are almost 3000 code clubs worldwide.

Since it’s so global, there’s a massive need for the materials to be translated into other
spoken languages,

so if you speak other languages, then help them out.
S T E M N E T
A M B A S S A D O R
W W W. S T E M N E T. O R G . U K
There’s also STEMNet where you can go and volunteer on a more ad-hoc basis: they do
lots of career fairs and classroom talks. They also have active forums where you can help
teachers and other volunteers out.

They also handle getting the necessary background checks you need, and Code Club
recommend going through STEMNet to get this sorted.

As developers, we make magical, wonderful things, if you’ve lost that feeling - of making
something magical then spend some time teaching kids, and you’ll get it back.
T H A N K S !
S A L LY S H E PA R D / / @ M O S T G O O D

More Related Content

What's hot

Spain evaluation report of students performance
Spain evaluation report of students performanceSpain evaluation report of students performance
Spain evaluation report of students performanceJose Luis Leon Gonzalez
 
Why learn how to code
Why learn how to codeWhy learn how to code
Why learn how to codeJoey Rigor
 
It is difficult
It is difficultIt is difficult
It is difficultPVS-Studio
 
Shut Up! No one is listening! Web 2.0 and Mobile Media Are Speaking.
Shut Up! No one is listening! Web 2.0 and Mobile Media Are Speaking.Shut Up! No one is listening! Web 2.0 and Mobile Media Are Speaking.
Shut Up! No one is listening! Web 2.0 and Mobile Media Are Speaking.Courtney Teague
 
Python programming for beginners
Python programming for beginnersPython programming for beginners
Python programming for beginnersBenishchoco
 
Invasion of the dynamic language weenies
Invasion of the dynamic language weeniesInvasion of the dynamic language weenies
Invasion of the dynamic language weeniesSrijit Kumar Bhadra
 
What is the best programming language for beginner?
What is the best programming language for beginner?What is the best programming language for beginner?
What is the best programming language for beginner?Designveloper
 
Agile2011
Agile2011Agile2011
Agile2011Caelum
 
Summer Workshop (Yates)
Summer Workshop (Yates)Summer Workshop (Yates)
Summer Workshop (Yates)yatesm2
 
1. Introduction Original - To Print
1. Introduction Original - To Print1. Introduction Original - To Print
1. Introduction Original - To PrintChinthaka Fernando
 

What's hot (12)

Spain evaluation report of students performance
Spain evaluation report of students performanceSpain evaluation report of students performance
Spain evaluation report of students performance
 
Why learn how to code
Why learn how to codeWhy learn how to code
Why learn how to code
 
It is difficult
It is difficultIt is difficult
It is difficult
 
Developers survival-guide
Developers survival-guideDevelopers survival-guide
Developers survival-guide
 
eLearning Systems on examples
eLearning Systems on exampleseLearning Systems on examples
eLearning Systems on examples
 
Shut Up! No one is listening! Web 2.0 and Mobile Media Are Speaking.
Shut Up! No one is listening! Web 2.0 and Mobile Media Are Speaking.Shut Up! No one is listening! Web 2.0 and Mobile Media Are Speaking.
Shut Up! No one is listening! Web 2.0 and Mobile Media Are Speaking.
 
Python programming for beginners
Python programming for beginnersPython programming for beginners
Python programming for beginners
 
Invasion of the dynamic language weenies
Invasion of the dynamic language weeniesInvasion of the dynamic language weenies
Invasion of the dynamic language weenies
 
What is the best programming language for beginner?
What is the best programming language for beginner?What is the best programming language for beginner?
What is the best programming language for beginner?
 
Agile2011
Agile2011Agile2011
Agile2011
 
Summer Workshop (Yates)
Summer Workshop (Yates)Summer Workshop (Yates)
Summer Workshop (Yates)
 
1. Introduction Original - To Print
1. Introduction Original - To Print1. Introduction Original - To Print
1. Introduction Original - To Print
 

Viewers also liked

Making an app like 'Clear' Accessible
Making an app like 'Clear' AccessibleMaking an app like 'Clear' Accessible
Making an app like 'Clear' AccessibleSally Shepard
 
Developing for Apple TV
Developing for Apple TVDeveloping for Apple TV
Developing for Apple TVSally Shepard
 
Crafting Great Accessible Experiences
Crafting Great Accessible ExperiencesCrafting Great Accessible Experiences
Crafting Great Accessible ExperiencesSally Shepard
 
Implementing inclusive interfaces in iOS
Implementing inclusive interfaces in iOSImplementing inclusive interfaces in iOS
Implementing inclusive interfaces in iOSSally Shepard
 
Building habits: keeping users engaged
Building habits: keeping users engagedBuilding habits: keeping users engaged
Building habits: keeping users engagedSally Shepard
 

Viewers also liked (6)

Inheriting iOS code
Inheriting iOS codeInheriting iOS code
Inheriting iOS code
 
Making an app like 'Clear' Accessible
Making an app like 'Clear' AccessibleMaking an app like 'Clear' Accessible
Making an app like 'Clear' Accessible
 
Developing for Apple TV
Developing for Apple TVDeveloping for Apple TV
Developing for Apple TV
 
Crafting Great Accessible Experiences
Crafting Great Accessible ExperiencesCrafting Great Accessible Experiences
Crafting Great Accessible Experiences
 
Implementing inclusive interfaces in iOS
Implementing inclusive interfaces in iOSImplementing inclusive interfaces in iOS
Implementing inclusive interfaces in iOS
 
Building habits: keeping users engaged
Building habits: keeping users engagedBuilding habits: keeping users engaged
Building habits: keeping users engaged
 

Similar to Teaching Kids to Code with Swift

Future web developer, you are going to be tremendously valuable
Future web developer, you are going to be tremendously valuableFuture web developer, you are going to be tremendously valuable
Future web developer, you are going to be tremendously valuablePolcode
 
MITx: 11.132x Design and Development of Educational Technology, Assignment 1
MITx: 11.132x Design and Development of Educational Technology, Assignment 1MITx: 11.132x Design and Development of Educational Technology, Assignment 1
MITx: 11.132x Design and Development of Educational Technology, Assignment 1AnilMull
 
Beginners guide-to-coding-updated
Beginners guide-to-coding-updatedBeginners guide-to-coding-updated
Beginners guide-to-coding-updatedSaidLezzar
 
Web2.0 And You Ppt
Web2.0 And You PptWeb2.0 And You Ppt
Web2.0 And You PptLisa Read
 
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112Thinkful
 
Coding wp2-comparative study-si(1)
Coding wp2-comparative study-si(1)Coding wp2-comparative study-si(1)
Coding wp2-comparative study-si(1)Georgeta Manafu
 
Open Source Presentation Ppt Memphis
Open Source Presentation Ppt   MemphisOpen Source Presentation Ppt   Memphis
Open Source Presentation Ppt Memphisnbteacher
 
A Technical Driven Seminar
A Technical Driven SeminarA Technical Driven Seminar
A Technical Driven SeminarDeepak Chawla
 
Ites Scratch Software Review
Ites Scratch Software ReviewItes Scratch Software Review
Ites Scratch Software ReviewCM Ites
 
La entrada de las tecnologías móviles en el salón de clases: estrategias para...
La entrada de las tecnologías móviles en el salón de clases: estrategias para...La entrada de las tecnologías móviles en el salón de clases: estrategias para...
La entrada de las tecnologías móviles en el salón de clases: estrategias para...Antonio Delgado Pérez
 
TelaSocial Presentation and Lessons Learned with the Pilot Case at ICMC-USP
TelaSocial Presentation and Lessons Learned with the Pilot Case at ICMC-USPTelaSocial Presentation and Lessons Learned with the Pilot Case at ICMC-USP
TelaSocial Presentation and Lessons Learned with the Pilot Case at ICMC-USPMarcio
 
C# o basico
C#   o basicoC#   o basico
C# o basicoTiago
 
Become Part Of The Next Generation Of Digital Creators With Ironhack
Become Part Of The Next Generation Of Digital Creators With IronhackBecome Part Of The Next Generation Of Digital Creators With Ironhack
Become Part Of The Next Generation Of Digital Creators With IronhackTechMeetups
 
Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...Laura Martin
 
How To Get Started In Tech With No Experience
How To Get Started In Tech With No ExperienceHow To Get Started In Tech With No Experience
How To Get Started In Tech With No ExperienceUdemezue John
 

Similar to Teaching Kids to Code with Swift (20)

Future web developer, you are going to be tremendously valuable
Future web developer, you are going to be tremendously valuableFuture web developer, you are going to be tremendously valuable
Future web developer, you are going to be tremendously valuable
 
Cracking the code
Cracking the codeCracking the code
Cracking the code
 
MITx: 11.132x Design and Development of Educational Technology, Assignment 1
MITx: 11.132x Design and Development of Educational Technology, Assignment 1MITx: 11.132x Design and Development of Educational Technology, Assignment 1
MITx: 11.132x Design and Development of Educational Technology, Assignment 1
 
Beginners guide-to-coding-updated
Beginners guide-to-coding-updatedBeginners guide-to-coding-updated
Beginners guide-to-coding-updated
 
Web2.0 And You Ppt
Web2.0 And You PptWeb2.0 And You Ppt
Web2.0 And You Ppt
 
Christopher Hunter CV
Christopher Hunter CVChristopher Hunter CV
Christopher Hunter CV
 
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
pdx893ff61f-1fb8-4e15-a379-775dfdbcee77-7-14-26-112
 
Coding lessons.pdf
Coding lessons.pdfCoding lessons.pdf
Coding lessons.pdf
 
Code Now
Code NowCode Now
Code Now
 
Coding wp2-comparative study-si(1)
Coding wp2-comparative study-si(1)Coding wp2-comparative study-si(1)
Coding wp2-comparative study-si(1)
 
Open Source Presentation Ppt Memphis
Open Source Presentation Ppt   MemphisOpen Source Presentation Ppt   Memphis
Open Source Presentation Ppt Memphis
 
A Technical Driven Seminar
A Technical Driven SeminarA Technical Driven Seminar
A Technical Driven Seminar
 
Ites Scratch Software Review
Ites Scratch Software ReviewItes Scratch Software Review
Ites Scratch Software Review
 
ROBOTICS.pptx
ROBOTICS.pptxROBOTICS.pptx
ROBOTICS.pptx
 
La entrada de las tecnologías móviles en el salón de clases: estrategias para...
La entrada de las tecnologías móviles en el salón de clases: estrategias para...La entrada de las tecnologías móviles en el salón de clases: estrategias para...
La entrada de las tecnologías móviles en el salón de clases: estrategias para...
 
TelaSocial Presentation and Lessons Learned with the Pilot Case at ICMC-USP
TelaSocial Presentation and Lessons Learned with the Pilot Case at ICMC-USPTelaSocial Presentation and Lessons Learned with the Pilot Case at ICMC-USP
TelaSocial Presentation and Lessons Learned with the Pilot Case at ICMC-USP
 
C# o basico
C#   o basicoC#   o basico
C# o basico
 
Become Part Of The Next Generation Of Digital Creators With Ironhack
Become Part Of The Next Generation Of Digital Creators With IronhackBecome Part Of The Next Generation Of Digital Creators With Ironhack
Become Part Of The Next Generation Of Digital Creators With Ironhack
 
Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...Computer Science Is The Study Of Principals And How The...
Computer Science Is The Study Of Principals And How The...
 
How To Get Started In Tech With No Experience
How To Get Started In Tech With No ExperienceHow To Get Started In Tech With No Experience
How To Get Started In Tech With No Experience
 

More from Sally Shepard

Swift on Raspberry Pi
Swift on Raspberry PiSwift on Raspberry Pi
Swift on Raspberry PiSally Shepard
 
Swift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSwift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSally Shepard
 
Porting iOS apps to tvOS
Porting iOS apps to tvOSPorting iOS apps to tvOS
Porting iOS apps to tvOSSally Shepard
 
Porting iOS apps to tvOS
Porting iOS apps to tvOSPorting iOS apps to tvOS
Porting iOS apps to tvOSSally Shepard
 
Helping Users Create Good Habits @ AltConf 2017
Helping Users Create Good Habits @ AltConf 2017Helping Users Create Good Habits @ AltConf 2017
Helping Users Create Good Habits @ AltConf 2017Sally Shepard
 
iOS Accessibility Testing Workshop
iOS Accessibility Testing WorkshopiOS Accessibility Testing Workshop
iOS Accessibility Testing WorkshopSally Shepard
 
Helping Users Create Good Habits @ MCE 2017
Helping Users Create Good Habits @ MCE 2017Helping Users Create Good Habits @ MCE 2017
Helping Users Create Good Habits @ MCE 2017Sally Shepard
 
Debugging Accessibility @ Craft Conf
Debugging Accessibility @ Craft ConfDebugging Accessibility @ Craft Conf
Debugging Accessibility @ Craft ConfSally Shepard
 
Debugging Accessibility
Debugging AccessibilityDebugging Accessibility
Debugging AccessibilitySally Shepard
 
Implementing Inclusive Interfaces
Implementing Inclusive InterfacesImplementing Inclusive Interfaces
Implementing Inclusive InterfacesSally Shepard
 
Making apps for the Apple TV
Making apps for the Apple TVMaking apps for the Apple TV
Making apps for the Apple TVSally Shepard
 
Beyond VoiceOver: making iOS apps accessible
Beyond VoiceOver: making iOS apps accessibleBeyond VoiceOver: making iOS apps accessible
Beyond VoiceOver: making iOS apps accessibleSally Shepard
 

More from Sally Shepard (13)

Swift on Raspberry Pi
Swift on Raspberry PiSwift on Raspberry Pi
Swift on Raspberry Pi
 
Swift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSwift hardware hacking @ try! Swift
Swift hardware hacking @ try! Swift
 
Porting iOS apps to tvOS
Porting iOS apps to tvOSPorting iOS apps to tvOS
Porting iOS apps to tvOS
 
Porting iOS apps to tvOS
Porting iOS apps to tvOSPorting iOS apps to tvOS
Porting iOS apps to tvOS
 
Helping Users Create Good Habits @ AltConf 2017
Helping Users Create Good Habits @ AltConf 2017Helping Users Create Good Habits @ AltConf 2017
Helping Users Create Good Habits @ AltConf 2017
 
iOS Accessibility Testing Workshop
iOS Accessibility Testing WorkshopiOS Accessibility Testing Workshop
iOS Accessibility Testing Workshop
 
Helping Users Create Good Habits @ MCE 2017
Helping Users Create Good Habits @ MCE 2017Helping Users Create Good Habits @ MCE 2017
Helping Users Create Good Habits @ MCE 2017
 
Debugging Accessibility @ Craft Conf
Debugging Accessibility @ Craft ConfDebugging Accessibility @ Craft Conf
Debugging Accessibility @ Craft Conf
 
Accessibility
AccessibilityAccessibility
Accessibility
 
Debugging Accessibility
Debugging AccessibilityDebugging Accessibility
Debugging Accessibility
 
Implementing Inclusive Interfaces
Implementing Inclusive InterfacesImplementing Inclusive Interfaces
Implementing Inclusive Interfaces
 
Making apps for the Apple TV
Making apps for the Apple TVMaking apps for the Apple TV
Making apps for the Apple TV
 
Beyond VoiceOver: making iOS apps accessible
Beyond VoiceOver: making iOS apps accessibleBeyond VoiceOver: making iOS apps accessible
Beyond VoiceOver: making iOS apps accessible
 

Recently uploaded

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 

Recently uploaded (20)

Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 

Teaching Kids to Code with Swift

  • 1. E X T R A C U R R I C U L A R S W I F T S A L LY S H E PA R D / / @ M O S T G O O D
  • 2. T H E O P P O RT U N I T Y Lot’s of people will talk to you about Swift. They’ll talk to you about type safety, relying on the compiler and optionals. They’ll talk to you about functional patterns. They’ll talk to you about functions as first-class objects. I want to talk about the potential of Swift in learning. About using it’s clear, concise syntax to teach the concepts and practices of programming.
  • 3. T H E N E E D But why? Why teach kids to code? Learning to code does not mean funnelling every child into a job as a programmer. By the time they are adults the landscape will have changed probably beyond our imagination. The real benefit of teaching kids to code is to pass on skills that are useful in many other paths through life. Ordered thinking, problem solving, abstraction and attention to detail are general skills that benefit any occupation.
  • 4. B R I D G I N G T H E G A P Resources in schools are often limited, and it's difficult for teachers to not only maintain knowledge of technology but to also learning new technologies. Because of this, it’s essential to have ways of complimenting the current curriculum. When I heard about this after school club for teaching children to code, I really wanted to get involved. So a few months ago I went to a code club induction session, super-excited about the possibility of teaching kids to code.
  • 5. W H AT I S C O D E C L U B ? W W W. C O D E C L U B . O R G What is code club? -For children aged 9-11 -Volunteer-led after-school coding club. -For one hour a week, kids get to learn to program starting with Scratch and working their way up through HTML and CSS up to Python.
  • 6. E X T R A C U R R I C U L A R After-school clubs are often the only place where children can discover what is going on behind the games they play. It's great for them because they are not forced to be there, they want to be there, it creates a different relationship for them. We are a huge, untapped, reservoir of knowledge and enthusiasm that can make a real difference. I love that we are a passionate, excited and friendly community and I think it would be amazing to leverage that excitement and pass it on to a new generation of programmers.
  • 7. C O D E C L U B C U R R I C U L U M I wanted to spend some time working on helping kids learn to code, but I couldn’t commit to running a club. I’ve been looking at the Code Club tools and examining them as a framework for how Swift could be an amazing tool for learning. Before I get into what I’ve been working on, I want to give you a brief overview of what gets covered in code club.
  • 8. H T T P : / / S C R A T C H . M I T. E D U S C R AT C H The first two terms involves using Scratch to build programmatic structures like loops and conditions with coloured blocks and immediately see the results on the screen. It’s all drag and drop, so it really focuses on learning logic without having to also learn a language. It’s mostly targeted at simple game mechanics as a way to get children interested.
  • 9. H T M L & C S S After completing Scratch, the students can move onto a term of HTML and CSS. They get to build some simple websites and learn how to style them.
  • 10. P Y T H O N Finally, they get to learn Python. It builds well off of everything they’ve learned so far, but focuses on learning more about programming languages. The lessons for the first term of Python include: Printing text, catching errors, variables, data types, conditionals, loops, using libraries, collections. It provides a decently comprehensive introduction to structures and data types. I’d like to take a moment to look at the Python language and tools and why they make a good choice for learning.
  • 11. W H Y P Y T H O N ? So why choose Python for learning? Simple, clear syntax: -there’s no division between primitives and objects. -no complications around pointer notation and memory management. Focuses on what-to-do not how-to-do-it. Widely available: -free to obtain and ships with most OS. Wide selection for functions like math, drawing etc.. And it has a choice of interaction methods. There’s Python IDLE. This is the method of choice for Code Club. And There are also Web-based tools. So now we understand the basis for using Python, let’s take a look at Swift in comparison.
  • 12. S W I F T A S A N A LT E R N AT I V E Swift embraces most of the points that made Python a good choice: Simple syntax, focus on what over how, great library support from Foundation and UIKit, and some choices as to how to interact with it. In less than a year, Swift has become hugely popular, just imagine where it will be in 5-10 years.
  • 13. A C C E S S I N G S W I F T There are three main ways to access Swift -Xcode -REPL -Web-based tools
  • 14. X C O D E Xcode gives you access to full projects and playgrounds. Playgrounds allow you to use a huge spread of libraries and features to ‘live code’ anything from ‘Hello, world’ up to Scene Kit 3D game views.
  • 15. R E P L The closest match for the Python IDLE is the Swift REPL. This can be access by typing ‘swift’ on the command line and requires at least that the Xcode Command Line tools package be installed. The REPL allows commands to be typed and executed immediately, referencing previously typed declarations and commands. Alternatively you can pass in a Swift file at the command prompt and have it executed automatically. You can also specify command line arguments, which can be accessed via Process.arguments
  • 16. W E B - B A S E D T O O L S W W W. R U N S W I F T L A N G . C O M There are also some great web-based resources for running Swift, like runswiftlang.com. They are restricted to using Foundation only and so you do not have access to UIKit. The big advantage of this is you can run it on any computer that has access to the internet and you don’t need to install any software or tools.
  • 17. T H E C H A L L E N G E S There are some challenges to overcome before Swift can be embraced as a learning tool.
  • 18. E N V I R O N M E N T A N D FA C I L I T I E S The biggest problem is schools don’t usually have Macs, schools are most likely to have PC hardware running Windows. There are usually safeguards in place to limit accessing content outside of the school network and restrictions on installing additional software on any of these machines. At the end of the day, there is a potential roadblock around either needing Mac hardware to fully engage with Swift or using Web-based tools and accepting the limitations they have. Outside of having direct access to macs or using web-based tools, there are some other options I’ve looked into.
  • 19. S S H I N T O A S I N G L E M A C T O R U N R E P L You can SSH into a mac to run the REPL. Here you’d use a single Mac with Xcode Command Line Tools installed, either added to the local network or remotely located and accessible through the firewall as a server and open up SSH sessions in a command line on any platform to access the REPL. The difficulties with this are you’d still need a Mac somewhere and you wouldn’t have access to Playgrounds.
  • 20. A C C E S S I N G A M A C V I A V N C You could also give visual access to a Mac to use Playgrounds across VNC or other Screen Sharing technology. Again, with this option you’d still need a Mac somewhere and there could be performance issues, but you would have access to Xcode, Playgrounds and REPL.
  • 21. R U N O S X I N A V I RT U A L M A C H I N E Run OS X in a virtual machine. This would enable both Xcode and REPL access. But, this would require the school to keep Xcode up to date, and for their IT team to know how to use Macs. This could also have performance issues since most computers in schools are not designed to run Xcode.
  • 22. C O R P O R AT E S P O N S O R S H I P Get some corporate sponsorship to finance a small mobile mac lab. It means you don’t have to interfere with the schools hardware or network. You would still have to deal with individual schools requirements over what software is installed on the machines, how it’s monitored and who is in charge of upkeep.
  • 23. L I M I TAT I O N S O N I N P U TThe REPL and Playgrounds are missing one significant feature that Python possess. And that’s an way to easily capture input from devices, commonly standard input from the keyboard. This input allows interaction with running code, and that immediate feedback is a great way of providing a reward for work when children might have a small attention span. Although REPL has access to command line arguments, this is still limited and not in real time during execution.
  • 24. W H AT A B O U T W I N D O W S ? Use your skills and imagination to build tools to make using Swift easier in other environments. Could you make playgrounds that work on Windows? Or a more full-featured web-based tool?
  • 25. G O G E T I N V O LV E D Kids need the opportunity to learn from coding, not just for the next generation of programmers but also as general life skills. Swift is an amazingly suitable language to use to help kids understand the concepts and practices of programming. The tools are still maturing and need our input and innovation to reach the ubiquity of other languages. Our community is so ideally placed to make a difference to the education and abilities of children, we owe it to them to make the effort.
  • 26. H O W T O G E T I N V O LV E D There are a number of organisations for supporting this, but these are the two I’m most familiar with: Code Club and Stemnet.
  • 27. R U N A C O D E C L U B You can run a club: you don’t have to do this on your own, in fact it’s better to get a few volunteers to run a club. There will also be a teacher with you at all times. Try to get your employer to agree to send a few people from your team, alternate between weeks if that’s easier.
  • 28. H O S T A C L U B You can also host a club. Code clubs don’t have to be in schools, they also take part in libraries and community centres. If you know a place that would work - talk to them.
  • 29. V O L U N T E E R T O T E A C H T E A C H E R S You can volunteer to teach teachers so they can better support students. Many teachers don’t have training to properly teach the new computing curriculum, help them get where they need to go. (Find out more: http://www.codeclubpro.org/become-a-trainer)
  • 30. W R I T E / I M P R O V E M AT E R I A L S If you’re worried about commitment, or maybe terrified of children, you can contribute by making some cool new projects.
  • 31. There are almost 3000 code clubs worldwide. Since it’s so global, there’s a massive need for the materials to be translated into other spoken languages, so if you speak other languages, then help them out.
  • 32. S T E M N E T A M B A S S A D O R W W W. S T E M N E T. O R G . U K There’s also STEMNet where you can go and volunteer on a more ad-hoc basis: they do lots of career fairs and classroom talks. They also have active forums where you can help teachers and other volunteers out. They also handle getting the necessary background checks you need, and Code Club recommend going through STEMNet to get this sorted. As developers, we make magical, wonderful things, if you’ve lost that feeling - of making something magical then spend some time teaching kids, and you’ll get it back.
  • 33. T H A N K S ! S A L LY S H E PA R D / / @ M O S T G O O D

Editor's Notes

  1. Hello! My name is Sally Shepard You can tweet at me @mostgood I’m here to talk about extracurricular swift.
  2. Lot’s of people will talk to you about Swift. They’ll talk to you about type safety, relying on the compiler and optionals. They’ll talk to you about functional patterns. They’ll talk to you about functions as first-class objects. I want to talk about the potential of Swift in learning. About using it’s clear, concise syntax to teach the concepts and practices of programming.
  3. But why? Why teach kids to code? Learning to code does not mean funnelling every child into a job as a programmer. By the time they are adults the landscape will have changed probably beyond our imagination. The real benefit of teaching kids to code is to pass on skills that are useful in many other paths through life. Ordered thinking, problem solving, abstraction and attention to detail are general skills that benefit any occupation.
  4. Resources in schools are often limited, and it's difficult for teachers to not only maintain knowledge of technology but to also learning new technologies. Because of this, it’s essential to have ways of complimenting the current curriculum. When I heard about this after school club for teaching children to code, I really wanted to get involved. So a few months ago I went to a code club induction session, super-excited about the possibility of teaching kids to code.
  5. What is code club? -For children aged 9-11 -Volunteer-led after-school coding club. -For one hour a week, kids get to learn to program starting with Scratch and working their way up through HTML and CSS up to Python.
  6. After-school clubs are often the only place where children can discover what is going on behind the games they play. It's great for them because they are not forced to be there, they want to be there, it creates a different relationship for them. We are a huge, untapped, reservoir of knowledge and enthusiasm that can make a real difference. I love that we are a passionate, excited and friendly community and I think it would be amazing to leverage that excitement and pass it on to a new generation of programmers.
  7. I wanted to spend some time working on helping kids learn to code, but I couldn’t commit to running a club. I’ve been looking at the Code Club tools and examining them as a framework for how Swift could be an amazing tool for learning. Before I get into what I’ve been working on, I want to give you a brief overview of what gets covered in code club.
  8. The first two terms involves using Scratch to build programmatic structures like loops and conditions with coloured blocks and immediately see the results on the screen. It’s all drag and drop, so it really focuses on learning logic without having to also learn a language. It’s mostly targeted at simple game mechanics as a way to get children interested.
  9. After completing Scratch, the students can move onto a term of HTML and CSS. They get to build some simple websites and learn how to style them.
  10. Finally, they get to learn Python. It builds well off of everything they’ve learned so far, but focuses on learning more about programming languages. The lessons for the first term of Python include: Printing text, catching errors, variables, data types, conditionals, loops, using libraries, collections. It provides a decently comprehensive introduction to structures and data types. I’d like to take a moment to look at the Python language and tools and why they make a good choice for learning.
  11. So why choose Python for learning? Simple, clear syntax: -there’s no division between primitives and objects. -no complications around pointer notation and memory management. Focuses on what-to-do not how-to-do-it. Widely available: -free to obtain and ships with most OS. Wide selection for functions like math, drawing etc.. And it has a choice of interaction methods. There’s Python IDLE. This is the method of choice for Code Club. And There are also Web-based tools. So now we understand the basis for using Python, let’s take a look at Swift in comparison.
  12. Swift embraces most of the points that made Python a good choice: Simple syntax, focus on what over how, great library support from Foundation and UIKit, and some choices as to how to interact with it. In less than a year, Swift has become hugely popular, just imagine where it will be in 5-10 years.
  13. There are three main ways to access Swift Xcode REPL Web-based tools
  14. Xcode gives you access to full projects and playgrounds. Playgrounds allow you to use a huge spread of libraries and features to ‘live code’ anything from ‘Hello, world’ up to Scene Kit 3D game views.
  15. The closest match for the Python IDLE is the Swift REPL. This can be access by typing ‘swift’ on the command line and requires at least that the Xcode Command Line tools package be installed. The REPL allows commands to be typed and executed immediately, referencing previously typed declarations and commands. Alternatively you can pass in a Swift file at the command prompt and have it executed automatically. You can also specify command line arguments, which can be accessed via Process.arguments
  16. There are also some great web-based resources for running Swift, like runswiftlang.com. They are restricted to using Foundation only and so you do not have access to UIKit. The big advantage of this is you can run it on any computer that has access to the internet and you don’t need to install any software or tools.
  17. There are some challenges to overcome before Swift can be embraced as a learning tool.
  18. The biggest problem is schools don’t usually have Macs. A school is most likely to have PC hardware running Windows. There are usually safeguards in place to limit accessing content outside of the school network and restrictions on installing additional software on any of these machines. At the end of the day, there is a potential roadblock around either needing Mac hardware to fully engage with Swift or using Web-based tools and accepting the limitations they have. Outside of having direct access to macs or using web-based tools, there are some other options I’ve looked into.
  19. You can SSH into a mac to run the REPL. Here you’d use a single Mac with Xcode Command Line Tools installed, either added to the local network or remotely located and accessible through the firewall as a server and open up SSH sessions in a command line on any platform to access the REPL. The difficulties with this are you’d still need a Mac somewhere and you wouldn’t have access to Playgrounds.
  20. You could also give visual access to a Mac to use Playgrounds across VNC or other Screen Sharing technology. Again, with this option you’d still need a Mac somewhere and there could be performance issues, but you would have access to Xcode, Playgrounds and REPL.
  21. Run OS X in a virtual machine. This would enable both Xcode and REPL access. But, this would require the school to keep Xcode up to date, and for their IT team to know how to use Macs. This could also have performance issues since most computers in schools are not designed to run Xcode.
  22. Get some corporate sponsorship to finance a small mobile mac lab. It means you don’t have to interfere with the schools hardware or network. You would still have to deal with individual schools requirements over what software is installed on the machines, how it’s monitored and who is in charge of upkeep.
  23. The REPL and Playgrounds are missing one significant feature that Python possess. And that’s an way to easily capture input from devices, commonly standard input from the keyboard. This input allows interaction with running code, and that immediate feedback is a great way of providing a reward for work when children might have a small attention span. Although REPL has access to command line arguments, this is still limited and not in real time during execution.
  24. Use your skills and imagination to build tools to make using Swift easier in other environments. Could you make playgrounds that work on Windows? Or a more full-featured web-based tool?
  25. Kids need the opportunity to learn from coding, not just for the next generation of programmers but also as general life skills. Swift is an amazingly suitable language to use to help kids understand the concepts and practices of programming. The tools are still maturing and need our input and innovation to reach the ubiquity of other languages. Our community is so ideally placed to make a difference to the education and abilities of children, we owe it to them to make the effort.
  26. There are a number of organisations for supporting this, but these are the two I’m most familiar with: Code Club and Stemnet.
  27. You can run a club: you don’t have to do this on your own, in fact it’s better to get a few volunteers to run a club. There will also be a teacher with you at all times. Try to get your employer to agree to send a few people from your team, alternate between weeks if that’s easier.
  28. You can also host a club. Code clubs don’t have to be in schools, they also take part in libraries and community centres. If you know a place that would work - talk to them.
  29. You can volunteer to teach teachers so they can better support students. Many teachers don’t have training to properly teach the new computing curriculum, help them get where they need to go. (Find out more: http://www.codeclubpro.org/become-a-trainer)
  30. If you’re worried about commitment, or maybe terrified of children, then make some cool new projects.
  31. There are almost 3000 code clubs worldwide. Since it’s so global, there’s a massive need for the materials to be translated into other spoken languages, so if you speak other languages, then help them out.
  32. There’s also STEMNet where you can go and volunteer on a more ad-hoc basis: they do lots of career fairs and classroom talks. They also have active forums where you can help teachers and other volunteers out. They also handle getting the necessary background checks you need, and Code Club recommend going through STEMNet to get this sorted. As developers, we make magical, wonderful things, if you’ve lost that feeling - of making something magical then spend some time teaching kids, and you’ll get it back.