At MartianCraft, we are big believers in sharing our knowledge. As such, we’re always eager to explore new possibilities about how to educate. And since many of us have children, teaching kids about programming is an area of special interest.
Swift Playgrounds sets the stage to be an educational force, lowering the barrier to entry for software engineering. At WWDC 2017, Playgrounds was greatly expanded, and is a tool which is likely to be quickly adopted in many educational settings.
At last year’s Worldwide Developer Conference, we got a glimpse of the future of software development education - particularly in the field of computer programming - in the form of Swift Playgrounds on iPad. I had a chance to use the built-in Swift course (including the cute Byte character) with a young person interested in programming in the Summer of 2016 and I got to see a glimpse of the potential right then.
Unfortunately, a few things were still really discouraging at the time - particularly the lack of localization, which really cut the fun short for someone whose first language is not English and who only just started to learn the language.
However, the potential of this approach was visible right from the start: by getting rid of the boilerplate and reducing code to the bare minimum required to teach the lesson’s concept, using a visual representation of the program’s output and encouraging the learner to go through the lessons one by one, applying the knowledge they have learned so far, Apple hit the exact right spot for many of us here at MartianCraft and other developers, parents and teachers all over the world. In fact, while writing this very paragraph, I noticed a friend of mine tweeting about teaching their child how to program with the Playgrounds app on iPad.
There is very little doubt that Apple was on to a phenomenal way of getting young people excited about the art of programming. Developers all over the community have come up with very exciting ways on how to use this technology, from giving entire live coding tech demos to distributing playground books to facilitate a developer checking out an API for the first time.
A few days before this year’s WWDC, Apple announced that the Playgrounds app, in version 1.5, would gain support for controlling various external accessories from third party manufacturers such as robots, drones and even musical instruments. These options include popular products such as LEGO MINDSTORMS, Sphero robots, or Parrot drones. It is a very logical step for the platform, particularly since Apple has been openly playing with support for Sphero robots ever since the original introduction of the app. In the periphery of this year’s WWDC in San Jose, I got to experience first hand what this can mean for education.
I attended a workshop held by IBM that used 12.9“ iPad Pros with a custom playground book to connect to and control a TJBot.
Thanks to the playground books format and a Bluetooth connection to the robot, we could first control a SceneKit-enabled virtual version of TJBot on our iPads before moving on to controlling an actual TJBot that was sitting on the table, leading up to the highlight where we could ask the robot, using natural speech, to take a picture using the camera in its eye and analyze the contents and subsequently speak the description of the scene back to us.
Owed to the versatility and format of Swift Playgrounds, IBM could teach us about all of these APIs in just 45 minutes. It got me so excited about the possibilities of using a self-built robot and an iPad that now, I cannot wait until my daughter is of an age where she and I can start toying with these things together. Just like my friend who tweeted about teaching his children, this is truly a piece of technology that will bring people closer together.
Apple has been consistently improving Swift Playgrounds since its introduction about a year ago, and at WWDC proper, the Swift Playgrounds team proceeded to put on some of the week’s most captivating presentations in which they told us about various exciting changes to Playgrounds which would come in version 2.0, due to be released later in the year, such as:
Added support for new iOS 11 frameworks, such as:
- Added support for camera access
- Added a method to copy edited code between pages
- Controlling speed of execution
- Stepping through instructions
- Communicating runtime issues back to the user
- Public & private resource access control
- Support for Swift 4
With these changes and localization support which arrived in March, the Swift Playgrounds team had a lot of interesting things to talk about at this year’s WWDC.
WWDC 2017 Sessions
Aside from the above mentioned What’s New in Swift Playgrounds session, which is a very important talk in its own right and gives a great overview of the technology and this year’s changes, there were a few other very interesting talks:
- In session 410, Localizing Content for Swift Playgrounds, we learn about the advances made in making Swift Playgrounds accessible to learners who might not be as capable of reading and speaking English as native speakers are, or adults who have had decades of experience in using the English language in a professional environment. The built-in Learn to Code courses still instruct learners to write code in American English (which is a good thing), but the instruction material and prose surrounding the curriculum can now be accessed in Chinese (Simplified), Japanese, French, German and Spanish (Latin American) as well as English.
As the whole topic is aimed at learners as young as 12 years old, this is a major step towards opening up this kind of programming education to a much bigger audience.
While I personally have a major knowledge gap when it comes to working with 3D, the content in session 605, SceneKit in Swift Playgrounds, got me really excited about giving it all a try. In this session, we learned a few really interesting tidbits about the history of the Learn to Code curriculum and its origins in a 2D space, followed by how it was eventually converted into the polished 3D, SceneKit-powered version that was eventually released last year. This talk managed to take my ignorance towards the oh-so-hard world of 3D programming and get me really interested in approaching the subject without any reservations.
The final session of the week for me - and one of my favorites of the entire conference - was session 416, Teaching with Swift Playgrounds, in which the presenters explained a lot of details behind the idea of using using Swift Playgrounds to educate using a focus on the learner instead of the content, by giving the learner actual goals and making them passionate about the task at hand. What I noticed about my own preconceptions in terms of 3D programming using SceneKit - which were entirely dismissed by the above mentioned session - is that new technology doesn’t have to be daunting if it’s put in a familiar context, if the presentation is encouraging and if the steps are manageable but rewarding for someone who is just starting out in the area. Even for those not interested in Swift Playgrounds, this talk offers a lot of insight into the process of teaching and learning and should be high up on everyone’s list of best WWDC sessions in 2017.
Build your own Playground Books
Swift Playgrounds is meant for everyone, from complete beginners who have never written a line of code before to veteran software developers and educators who want to create content that enables learners to playfully explore the subject matter and improve their skills over time.
Apple has made the Playground Book Package format open, which enables everyone to create content for the platform, up to the level that Apple did in their excellent Learn to Code series. For a detailed explanation, read the documentation and be sure to watch WWDC 2016’s session on the topic.
Using Swift Playgrounds, Apple has laid the foundation for the future of teaching about programming and has expanded on this concept with numerous exciting changes before and at WWDC 2017. Programming is becoming a more important skill for everyone to have, not just professional software engineers, so I have no doubt that this is the start of a great future. Even as a seasoned programmer, I hope that more and more API providers use this format to educate me about their platforms, like IBM did with TJBot. So if you have anything to teach a younger audience - be it 12 year olds who have never coded before, the insanely bright WWDC scholarship winners that attended the conference or even seasoned developers who might simply not be familiar with your area of expertise - consider taking the time to create a Playgrounds Book to help share your unique knowledge. Better yet, if you work for a company that could benefit from teaching your (potential) customers about your technology using a Playground Book, pitch the idea to your boss and get paid for participating in the future of programming education.
As the final words in the last WWDC Swift Playgrounds session this year put it: “Now go forth, and teach!”