How We Approach Coding in our Schools: What is Coding?

It’s an interesting exercise siphoning up all the articles and opinions on coding in the classroom, especially in a country like Ireland where it’s been thrust, front and center, into the spotlight (and curriculum plans).

A little bit of coding
A little bit of coding

 

Of course, I’m in favor of it, especially if it’s done in a way that mirrors the curriculum I developed, which emphasizes learning how to think like a computer over a specific toolset. I tend to favor programming languages like Logo that let you teach a concept first, then optimize, and repeat the lesson with follow languages like Python, Java, Swift. A bit like Simon Lewis mentions in his opinion piece in The Journal.ie, “Opinion: ‘We don’t need to teach computer science and coding in our schools’.” I think the title is geared to get a bit more traffic, but his general idea is about right:

The most important thing pupils need to learn about problems is how to break them down into smaller pieces and then tackle them in different ways.

He urges us not to add computer science to the curriculum as a separate subject based on his experience in the UK and with the worry that computer science will become divested of its true power: allowing students to solve problems in a creative fashion. And I tend to agree, to a point. I think that a well-designed curriculum, and maybe mine is not 100% there yet, it needs more meat, but Apple’s Intro to App Development with Swift is an excellent candidate. I’m a little biased — I spent 13 years with Apple, after all — but I think their course has an excellent balance of teaching concepts and problem solving techniques. It’s like an apprenticeship for the 21st century; teaching them real-life, hands-on skills they could use to get a tech job. It may be done in one of Apple’s programming languages and on Apple’s platform, but the skills would transfer to any other software platform.

But overall, I agree with Simon: not every kid is going to become a programmer, but I think the point is to introduce them (even at primary age) to coding as a problem solving tool, and show them that it could be an option, either in their personal lives or as a professional route.

 

On the other side of the coin are odd, straw men kind of articles like

Coding is not “fun,” it’s technically and ethically complex

I’m guessing the author ran across a program that thought it needed to dress up coding as more than it is, as he takes issue with classes “insisting on the glamor and fun of coding” that make coding a frivolous pursuit. And while I agree with him that learning how to code, as with just about anything, carries with it ethical considerations, but that’s no reason that it can’t also be enjoyable. There is certainly a mindset that’s required when coding, but the author sets up a false dichotomy that programming must either be taught as a deadly serious topic that requires “superhuman focus” or as a “fun and interactive” activity that anyone can do.

Now, again, I don’t know what courses the author has run up against, but I don’t know that I’ve seen any that pitch programming as a subject in which you don’t need discipline to progress. In that it’s like any other skill: it requires practice and usually more learning outside of the classroom if you expect to progress and become really good at it.

We have plenty of hobbyists in all sorts of fields, I don’t think it’s that harmful to introduce a student to a skill that might lend them the ability to throw together a little app for themselves that would fulfill a very personal need, the way someone might build a shoddy bookshelf for themselves, with just a little knowledge of carpentry.

Sure, programming is hard at a certain level, but that doesn’t mean it can’t be fun and broken down in a way that more people can grok the concepts…

 

Fraser Speirs – Teaching Swift

Great write-up (as usual) by Fraser Speirs on his experience teaching Apple’s Learn to Code Swift courses.

I particularly like this insight:

I took the approach of simply being far more active in the classroom.

Instead of relying on Seesaw for grading and inspecting students’ work during class, Fraser was up and about the classroom helping out.

I know I’ve found that being active in the classroom seems to work out better for the kids’ understanding.

App Development with Swift

As someone who’s designed a set of curricula around introducing people to coding and app development, I am blown away by Apple Education’s latest offering, App Development with Swift.

The teacher’s guide gives great support for educators running the course and takes a great approach to giving their students a real feel for all facets of building out an app, not just the nitty gritty of code.

Guidelines for the teacher running a class

I love the tips for reviewing students’ code and extra material for adapting the lessons to your particular classes predilections.

If you’re looking to teach programming in the classroom, the Apple Education folks are putting out some great resources to help you on your way.

App Development with Swift

Apple Education

Education, Books, Professional & Technical

May 24, 2017

View Item

This Teacher Guide, a companion to the two-semester long App Development with Swift course, is designed for you to use with high school and college students. It includes tips for extending or adapting lessons, increasing collaboration, and assisting students who need extra support. It also includes downloadable Keynote presentations for each lesson, solution code for the labs presented in the student guide, and a rubric for evaluating student work.

All Aboard 2017

Lots of interesting stuff going on around Ireland this week around digital literacy for kids (and adults).

http://allaboard2017.ie/events/

Whether your thing is movie making or coding or literacy or how we learn, there’s a ton of stuff in and around the universities and schools around Ireland and a ton going on in Dublin over the next few days.

And if you’ve got young kids, there are some excellent resources to share with them about issues with going online and a general digital citizenship primer, including a television series called Making Ireland Click.

Developing the Junior Cycle Technology Curriculum

If you’re interested in this sort of thing (and live in Ireland, presumably), the National Council for Curriculum and Assessment (NCCA) has an online interest form for people keen to help develop the junior cycle technology curriculum.

As they say:

To avail of further expertise, the NCCA is seeking expressions of interest from individuals who would like to contribute to work on the new Technology specification.

Programming can be a lot of fun…

Sounds like a good time to me…

Sneaky Programming, Sis

I like Finland’s approach to teaching computer programming: In Finland, Kids Learn Computer Science Without Computers

Programming people

This was very like how I pitched to get computer programming into a Montessori middle school: it’s not so much about time in front of screens, but more about introducing kids to the concepts involved in getting a computer to do what you want it to do. We spent the first three weeks (of a ten week course) away from the computer and outside, or working with materials in the class like dice, poker chips, and a whole bunch of cardboard boxes.

One week they worked with basic commands for their fellow classmates like forward, back, right, left and directed each other around a grid to pick up the prizes. They became the computer with an exercise like the one we would run at Loreto Primary School in Dalkey. We did everybody’s favorite exercise of making a peanut butter and jelly sandwich.

Gear for offline programming

The next week they used dice to generate some results they wanted to store in variables and remember for later. We also turned the set of commands you’d need to make someone perform jumping jacks into a function so we could easily make people do some jumping jacks. We even invented our own function, monkeyJumps(numberOfJumps) that I’m pretty sure is physically impossible to perform.

In the third week we developed a few new card games to show off conditional logic:

if the card is red:

Award your team 1 point

else

if the card is higher than 9:

Award the other team one point

else

Award your team the same number of points on the card

We mixed in some hands on work with Raspberry Pis and the excellent Kano.me Screen Kit and Computer Kit to demystify what a computer actually is a little bit, but you’d be amazed how far you can get, teaching kids how to program a computer without actually having a computer.

Intro to Programming at Loreto Primary School in Dalkey

This morning I was able to present, along with CoderDojo Dalkey, to the Loreto Primary School in Dalkey. It was a chance to prepare the girls for next week, during which we’d be running them through the excellent Minecraft Hour of Code and demystify the coding process a little bit.

Welcome to Dalkey
Welcome to Dalkey

We were allowed to direct the girls through a little exercise (originally designed by Gary Kacmarcik), which I’ve used previously in much smaller groups. Instead of assigning the task of CPU, or display, or memory/ALU to one particular person, we assigned the CPU tasks to classes.

We had sixth class girls be the display (for sheer reach at the white board at the front of the hall and their coordinate plane knowledge), fifth class be the CPU, fourth class be the logic unit, and third class be the memory.

Loreto
Loreto by the sea

Instead of circuits and wires our connections were all done wirelessly, with shouting across the hall. To minimize injuries, each group would shout their command or request or response to the appropriate component in question with a little guidance from some mentors.

You can follow along with the slides I’ve prepared, explaining the process (we didn’t use the slides, but they outline what we did do), as well as look at a copy with the presenter’s notes, in case you’d like to try this one at home with your own kids.