Programming: for the mindset, not just the job market

In the time since I’ve started this blog, teaching kids to code has gotten really…well, trendy. Yet, from what I’ve seen and heard, probing into the reasons people think we should teach programming are connected to the future of the job market.

But there’s a lot more to it than that. Getting students programming, when done well, helps them develop computational thinking, a set of skills and approaches that are relevant to just about any field of study or career. Computational thinking as a mindset is the ability to look at a problem and say, “I have the tools to solve this: I can break it into steps, and I can compare them to problems I know how to solve. I can evaluate my process, and I can find and fix errors. I can persevere when it’s tough. I can work with others who have different ideas, and I know that the best work often comes from collaborating with them.” In a nutshell, it’s the stuff math teachers are referring to when they say, “Look, even if you never solve a system of two equations again, the way of thinking you’re learning from algebra is useful later in life.”

Furthermore, though, and perhaps more importantly, that mindset is not just relevant to other content areas – it can be taught and/or reinforced there too. Based on that belief, two fellow members of the Minnesota Coding in the Classroom Cohort and I gave a presentation today at the MN STEM Network Conference entitled Computational Thinking as a Habit of Mind. And since I had intended to make #tooltimetuesday a regular feature on this blog a hundred million years ago, I thought I’d pass along the resource list we shared with attendees. It contains instructions for the four unplugged (meaning computer-free) activities we did as part of our session, a Padlet containing a graphic that breaks down computational thinking and participants’ thoughts on where those elements appear in their career or content area, and a list of further sources to explore.

If you check it out, note that it’s intended to be a living document – feel free to add resources of your own, favorite computational thinking activities, or ideas for how to adapt activities to be relevant to your content area! Alternatively, leave some love in the comment section: which aspects of computational thinking do you see in your own life or line of work?

The Prodigal Blogger Returns…With a Big Announcement!

It has been far, far too long since I actually managed to get something posted. Last November, I tried to challenge myself to post every day…and didn’t make it. Then, in December, I thought I could rally by posting something every day of Computer Science Education Week…and failed there too (although, no doubt, news of Prime Minister Cameron and President Obama‘s participation in an Hour of Code crossed your path without my interference).

Since then, I’ve been caught up in a deluge of new adventures, all of which will be expounded on at length in due time: I’m now teaching three after-school classes a week through Minneapolis Community Education and mentoring an assortment of high school students as they embark on the Technovation Challenge, as well as working on a couple of independent projects.

Most excitingly, though, I am beyond thrilled to finally be able to announce that plans are well underway for bringing a CoderDojo chapter to Northfield! Given students’ enthusiastic responses to a summer math/computing camp and this past December’s Hour of Code, we expect this 1:1-iPad district to have no trouble filling a room with kids eager to learn to create and not just consume software, and ACM chapters at both colleges will help supply mentors. I could not be more proud to be bringing this to the town of my alma mater, sharing what I’ve learned with the community in which I learned it, and am blown away by the number of things that have come together already. Stay tuned as we finalize details and nail down a date for our first event!

New Hour of Code Tutorial: Frozen!

I got an email this morning from code.org, unveiling their new Hour of Code tutorial: making snowflakes with Elsa and Anna of Arendelle! I was thrilled to see that this event has gained enough traction for Disney to take notice and to use their characters’ outrageous popularity to further something so important (…as opposed to what Mattel’s been up to).  I dove right in to testing it!

Overall, I think it’s a great idea and pretty well designed. I thought it made loops very comprehensible; the jump to nesting them was perhaps sudden but certainly not as scary as it was in my early Java days. I really appreciated being able to speed up the animation and to stop the results as soon as you realize they’re wrong. I’m also pleased to see a totally non-violent introductory tutorial, something to create that doesn’t involve breaking/shooting/killing/blowing up/destroying/fighting anything at all (last year’s favorites included Plants vs. Zombies and Angry Birds themes, which are both fairly innocuous but still about one group fighting another). It’s showing participants that not only is programming something they can do, but that it has uses other than games. I’m totally into that.

One thing I wonder about is the age of prospective participants. Based on watching students’ conversations, observing Halloween costumes, and anecdotes from my sister the professional Elsa impersonator (no, really), it’s looking to me like most of the kids who are still really into it are too young to have learned anything about the measure of angles. Will they get discouraged and be put off of things that look like block-based coding? Will they figure it out through trial and error and authentically learn both computing and geometric concepts? Will they just use brute force to try all the possibilities from the drop-down lists? When I worked with middle school students this summer on drawing parallelograms in Scratch, there was a lot of confusion about “turn __ degrees” versus the known interior angles of the shapes, but maybe that won’t be an issue for kids who haven’t yet learned anything else to get mixed up about. Anyone else who’s tried this (particularly with actual kids), I’d love to hear your thoughts!

Scratch: Your First Ten Minutes

scratchy

At CoderDojo this weekend, I gave a spiel about Scratch programs being like plays (stage, backdrops, costumes, scripts) to new students and flustered parents more times than I can count, so I decided for today I’d make a printable set of uber-readable instructions for getting familiar with those terms. Since it’s Tooltime Tuesday again, I’m sharing it here. I’d love some feedback as to how it could be written, use color, or balance whitespace and print more effectively!

Real talk time

I’d been contemplating a whole slew of post topics for this evening, but frankly, when it comes down to it, I don’t have the energy today to get fired up enough to write anything eloquent or impassioned. I’m being honest about that here, obviously, but I keep picturing myself trying to get up and teach classes in this funk, and I don’t love it. So I’m wondering what other folks – particularly teachers, but anyone in a high-intensity people-facing profession – do on those kinds of days: teachers dealing with grief/trauma/depression/anxiety/whatever else, how do you deal with bad days? Do you call in sick? Declare it a silent reading or movie watching day? Grit your teeth and check your personal life at the door? Level with your students about it and hope that being vulnerable helps them relate to you rather than take advantage of you? Lope along at half speed with no explanation?

Like anything else in education, I’m sure the “right” answer is case-by-case based on situation and personality rather than there being a universal best practice. If anyone can speak to being open with students in ways that build healthy trust rather than inappropriate emotional outlets, though, I’d love to hear what you think.

A fortuitous encounter and a tough conversation

Yesterday, at my first CoderDojo, I had the genuine privilege of chatting briefly with some unexpected allies: three middle school students. They told me about how they started learning Scratch in third grade, and now, four years later, they’re more than ready to move on. They want to learn Javascript and see the whole web world that it opens up, and they want to see their peers able to get jobs whether they can afford to go to college or not (an unsolicited comment, not my suggestion!). They talked about seeing programming skills as being like a ladder, and we decided that Scratch – as an educational tool, one professionals work on rather than in – isn’t the bottom rung. Rather, it’s more like a door that, once opened, lets you see that the ladder exists and that you can – and perhaps even want to – start to climb it. They came to the event to talk to teachers and engineers about what the first couple of rungs might be.

I’ve had vaguely related notions percolating in my head for a little while, our chat really brought the question into focus. A lot of what I’ve said here is starting to feel like old hat, and I have a sneaking suspicion that a lot of the things I tag “objection overruled” are straw man arguments anyhow. It’s not hard to convince people that programming is important and to try an hour of Scratch, really. The trouble now, though, is that we’re still thinking of that as the absolute cutting edge…and it’s not. Scratch has been around for nearly a decade, which means current middle schoolers have few (if any) memories of a world in which tools weren’t being developed to teach them to code. For us old folks (and there I refer, I think, to myself and anyone else who remembers life pre-touchscreen), the last decade is a small enough portion of our lives to feel relatively current, and it’s tough to confront that that may not be the case.

It’s also tough to confront that regardless of our best efforts, we’re going to be surpassed not just by a couple of prodigies, but quite likely by large groups of kids. What I’ve been thinking about lately (and shared with them) is that if I were to get my wish and see widespread quality computer science education beginning in kindergarten or first grade, at what age will my students know than I do? I’ve always thought I wanted to teach middle school, but will junior high programmers have more skills than I do? Certainly by high school, much of what I had to get a BA in computer science to learn will be routine for students.

Which leads us from ego stings to the actual pressing concern: who in the world will teach them? I suspect that part of the success of Scratch so far has been not only that it’s easy for students to catch on to, but for teachers as well. You don’t really need programming background to pick up enough to introduce kids to computational thinking and thereby to be doing enough to pat yourself on the back for offering a nifty STEM opportunity. And maybe that was the point: maybe the hope is that teachers who get that taste will go on to learn and then teach more programming the same way that their students are supposed to. That hardly seems like a scalable solution to me, though.

So I leave you, then, with the same question our conversation more or less derailed on: who will teach the ladder? As long as it’s still possible to work fewer hours and make more money as a software engineer, how in the world can schools hope to compete? By raising all teachers’ salaries to that level? (If only…). With some kind of TFA-style program where web devs agree to teach for two years? (errmmm…). By realizing that a changing world means changing solutions, and embracing some combination of flipped classrooms, MOOCs, and interactive web tutorials? I have some thoughts, but for today, it’s time to climb off the soapbox.

Boys, if you’re reading this, I hope you could see how infectious your enthusiasm and absolute earnestness were. We need people like you on this team – people who haven’t gotten jaded by years of red tape and legislation and budget cuts, whose solution to, “Not all schools can afford computers,” is “Well, we have fundraisers and stuff all the time!”, who remind me that programming not just my dream job to teach but also your dream class to take. I hope our paths cross again!

No, really, EVERYONE

Yesterday’s post talked about some programmer training for people who need to find new careers for a variety of reasons. Up next, perhaps, people who are ready to be retired but need to keep their minds working or be empowered to create things? At the coffee shop where I work, a regular customer – a photographer of advancing years who just got his first smartphone – routinely chats with me about how he wishes he could have learned to code while he was recovering from surgery a couple of years ago. He thinks it would be incredible to be teaching actual programming, not just how-to-turn-on-your-new-Mac, in retirement communities, rehabilitation centers, and nursing homes.

I’m with him – couldn’t Scratch be powerful not just for people who are too young to have learned to type but for people whose fingers are no longer dexterous enough? I’d like to try an Hour of Code with people who feel like the world no longer has time for them.