
Apple launches Swift Playgrounds for iPad to teach kids to code - tilt
http://techcrunch.com/2016/06/13/apple-launches-swift-playgrounds-for-ipad-to-teach-kids-to-code/
======
wallflower
Before Swift Playgrounds launches to the general public, Hopscotch and
ScratchJr are still two of the best apps for children to explore learning to
code on the iPad.

[https://www.gethopscotch.com/](https://www.gethopscotch.com/)

[https://itunes.apple.com/us/app/scratchjr/id895485086?mt=8](https://itunes.apple.com/us/app/scratchjr/id895485086?mt=8)

For children who are older or more advanced:

Codea
[https://itunes.apple.com/us/app/codify/id439571171](https://itunes.apple.com/us/app/codify/id439571171)

For more of a game-like environment:

Lightbot

[https://itunes.apple.com/us/app/lightbot-programming-
puzzles...](https://itunes.apple.com/us/app/lightbot-programming-
puzzles/id657638474)

~~~
praveenster
In addition to the the ones mentioned above, my 7 year old enjoys codecombat
on the PC (or Chromebook which a lot of elementary schools use these days):

[https://codecombat.com/](https://codecombat.com/)

------
kibwen
I like Swift as a language, but I have my doubts as to its suitability as a
first-time programming language for children. It contains a whole lot of
industry-standard jargon that we as practiced software developers don't think
twice about, and will have to be explained. Like, what the heck is a "string",
and why is it called that? What is this weird vertical character that I've
never seen before (and how do I even begin to type it? is it an emoji?) and
why do two of them next to each other mean "or"?

I don't doubt that kids are smart enough to wade through it all, but if you
put enough obstacles in their path then they're going to wander off and do
something more interesting. It also raises the question of whether you're
teaching kids programming for the sake of programming (in which case you'd
rather use any of the myriad languages that have been designed for young
children), or if you're teaching kids programming for the sake of helping them
solve some problem or achieve some task (in which case you'd probably pick a
language with a more specific focus), or whether you're just teaching them
programming just for the sake of adding to the ranks of the software industry
ten years from now.

~~~
empath75
To be honest, I think that

A) Literally everything is new to a kid, and if they can figure out how to
play pokemon and minecraft, they can figure out what '||' means.

B) Why teach them one way to do things and force them to relearn it a few
years later?

~~~
kibwen

      > B) Why teach them one way to do things and force them 
      > to relearn it a few years later?
    

Who says anyone's being forced to relearn anything? My initial progression of
languages went QuickBASIC -> Visual Basic -> Java, and despite the fact that
Java is nothing like QuickBASIC the concepts helped me immensely in powering
through Java's intimidating learning curve (i.e. "just type `public static
class Hello { public static void main(String[] args) {
system.out.println("Hello"); } }` for now (and for god's sake, make sure the
file name is Hello.java), you'll understand what all that means in about six
months or so").

It's easy to forget that our first exposure to programming involves a lot of
fundamental concepts that are wholly incidental to the semantics of whatever
language we're using. Trivial stuff like case sensitivity of identifiers
(quite surprising to an enormous number of first-time programmers) as well as
highly non-trivial stuff like setting up your programming environment and
teaching people how to invoke the compiler/interpreter. Making the language
itself small and intuitive, even if limited, goes a long way towards giving
students a stone to cling to in the rushing river of unfamiliar concepts that
they're being exposed to.

------
yeldarb
My bet would be on a version of xCode for iPad being released at WWDC 2017.

This seems like a perfect way to get some wide testing of the compiler, coding
keyboard, etc. I wonder what IDE enhancements we can expect from a touch
interface.

~~~
shostack
That's actually a good point. Are there any good development options for the
iPad today that aren't excruciating to use?

~~~
cableshaft
> Are there any good development options for the iPad today...

Yes, there are.

> ...that aren't excruciating to use?

Oh. No, not really. Pythonista is the closest I've seen to an non-excruciating
IDE on the iPad, but that's Python only. Link: [http://omz-
software.com/pythonista/](http://omz-software.com/pythonista/)

------
pokstad
So much of this app reminds me of Codea's way of modifying colors and numbers:

Swift Playground:
[http://www.apple.com/swift/playgrounds/](http://www.apple.com/swift/playgrounds/)

Codea: [https://codea.io](https://codea.io)

~~~
mcphage
Both are based on the work of Bret Victor (for instance,
[http://worrydream.com/#!/LearnableProgramming](http://worrydream.com/#!/LearnableProgramming)),
who worked at Apple for a few years.

~~~
interpol_p
Modifying colours, sprites and sounds with the inline picker directly from
code was my own design. And first appeared in Codea, as far as I'm aware.

I was definitely aware of, and inspired by Bret Victor's presentations (and
certainly took some of his ideas for Codea). But those particular features
were first in Codea before being replicated elsewhere.

------
nickm12
I think it's a shame to teach kids to program on a platform as closed as iOS.

A 12 year old I know wrote an app as a birthday gift for his grandfather who
lived overseas. The app was simple and displayed the grandfather's age with
various different effects. Unfortunately, he wrote the app for iOS and so
there was no easy way to deliver the app to grandfather (the family tried to
submit it to the app store but it was rejected).

At least Swift Playgrounds allows kids to share with one another. Just don't
try to leave the playground.

~~~
Apocryphon
Swift is open, so at least they can take what they learned of the language to
open platforms.

------
satysin
I think this is really cool. It is like a really pretty Scratch-type
environment but teaches actual Swift rather than puzzle blocks.

Also the new coding keyboard looks interesting. A nice surprise from Apple.

------
donatj
I learned on Microsoft Basic and later QBasic. I fully intend to teach my
children using the same.

------
Firebrand
Inspiring the next generation of college students to sign up for freshmen CS
classes and shockingly realize that programming is only a small component in
the field.

~~~
Apocryphon
Or perhaps, turning programming into a cross-discipline skill, and slowly
decreasing the need for a CS degree?

~~~
mcphage
This is what I'm hoping for. I want my kids to learn how to program, not so
that they can become a programmer like me, but so that they can use
programming to inform and enhance whatever they choose to do.

~~~
cableshaft
Yeah, I'm using my programming skills to write scripts to assist me in
making/designing/balancing physical board games. Probably no one would assume
that programming would assist in the hobby in any way, but I'm finding it
quite useful.

------
alexashka
I think it makes for a cute demo but misses the mark - what's desperately
needed are better developer tools - not another 'how to become a programmer in
30 days'.

There's enough beginner material - the stumbling block is the reality
programmers are living in.

Cute demos aren't changing that.

~~~
Jtsummers
I'm not sure there are enough beginner materials.

I've lamented in the past (here even, maybe) that the first computing devices
many people get are primarily designed around consumption. Some types of
content creation (particularly visual and audio, more limited textual), are
very well enabled by these tablet interfaces, but that's not been the primary
focus.

But _programming_ them has long been difficult and required an external
device. Many of my peers' young children are first given an iPad or similar
device, not access to a Tandy 1000, Apple II, Commodore or similar computer
that had a BASIC interpreter baked in. To an extent the fault (on iOS) is
squarely on Apple's shoulders, as for a long time they explicitly made
interpreters and such verboten on iOS. This is a nice turnaround on their
part, and a potentially good tool to get programming into the hands of kids.

~~~
tetraodonpuffer
I thought Apple had allowed interpreters etc. for some time, pythonista looks
quite nice for example (it even has numpy and somebody ported some sort of pip
to it so you can even install modules)

As a first introduction to programming python might be a bit too complicated,
but there do seem to be some BASIC interpreter on the app store it seems

~~~
alexashka
How is it that we can teach chemistry and physics - but when it comes to 'when
this, do that', we throw our hands in the air and claim it is too difficult?

I'm pretty sure calculus is more difficult than intro to python :)

