Using Workflow as an interface for teaching programming

Erik Peterman
3 min readFeb 2, 2017

--

Workflow interface on iPhone

Workflow for iOS is a powerful automation tool for iPhone and iPad that makes working on iOS easier and better than working on the Mac in many ways. The real brilliance of the app is ease of use a-la-Automator, combined with integrations with apps/tools that people actually use.

Now, workflow can be set up using a simple input-output flow interface from block to block, and I imagine that’s how most people use it. The app is remarkably good at figuring out what you meant by the block order and executing that, rather than throwing errors. However, it also has an extensive list of scripting blocks which allow it to act much more like a traditional programming language.

As such, I think Workflow is an excellent way to teach kids about programming.

At the simplest level, Workflow takes commands in a start to finish order, just like a programming language. I think more importantly than any specific language in teaching kids to code is teaching them to think like a programmer. Workflow’s setup allows for this.

Workflow has blocks for simple ideas like variables, which could be an early lesson in your plan, but also more advanced-concept blocks like “Repeat” and “Repeat with Each” for teaching loops. This could be a later lesson. There are also lists, dictionaries, and more. I strongly encourage you to check out the app and see what tools are all available.

Critically, Workflow implements its interface in drag-and-drop blocks with easily edited and well-documented functions. Workflow is far from the only tool which uses such an interface (Scratch immediately comes to mind) but it is on par in implementation with those other tools, and it’s available on iPad, which is the best classroom learning tool for students.

What also puts Workflow ahead of scratch is the implementation of app and service integration. My favorite part of Workflow is I can write code to interact with apps that I use without having to have studied JSON and HTML API interaction for a year. Those are important programming concepts, but those are not something that you should be worrying about when teaching young kids to code at first.

So why interact with third-party tools at all? It makes the projects fun for kids, and it also makes them understand why programming is worth learning. I can write a generic foo-bar command line program that takes in my typing and outputs typing, but it’s hard to understand why that would ever be useful or important. What would make learning easy is if I could, say, take in text that I’ve copied, combine it with a link that the text came from, and automatically send a message to the class Telegram channel, or take copied text and search Apple Music for a song titled what I copied. There are so many awesome things that can be done with Workflow that are clearly and immediately useful to students, and that’s the difference.

You can get ideas for projects for students from the Gallery, which is a list of simple but widely useful workflows built into the app, if you need to.

I’m interested in better ways to teach code. How are you teaching your class to code? Do you think Workflow is something you could implement into your plans?

--

--

Erik Peterman

University student, engineer, blogger, audiophile, lacrosse player, wikipedia author, headphone addict, aspiring vlogger.