Learning to Code

I had an interesting question asked of me recently.

“What’s the best way for a teacher to learn how to code – take a class or learn online?”

I searched my mind for the best answer.  First, as you know, the options aren’t necessarily exclusive, but I think I understood the intent.  I came back with a lame “It depends upon how you learn best” which is probably a correct answer but, I suspect, totally useless.

For me, learning online or via tutorials, is the most expedient way.  Honestly, though, over the years I’ve learned or dabbled in so many different languages, I probably couldn’t sit down and write a program from beginning to end without messing myself up with syntax or any of the rules of the chosen language.

Nonetheless, I think it’s an excellent question and I’m not sure that anyone really has the right answer for all cases.  It’s not framed in the context of knowing how to write the next great program or app.  It’s based on needing to know enough to do meaningful coding with students in a non-computer science class.

If you’ve taken any computer coding course, think of the content.  Most of the time, it covers all of the aspects of the language – including things that you may never need.

Is there a way to learn “just enough” to make a meaningful activity to address curriculum expectations in mathematics or science or whatever subject area you’re interested in?  One of the best examples of learning would be the one provided by code.org.  You can check out the tutorial here.

The tutorial uses Blockly as the language throughout the tutorial.

It’s interesting and fun to work through the activities.  Does it take you where you need to be?

How about Python as a programming language?

Selection_154

If not, how about TouchDevelop?

Recently, I had blogged about the creation of a Flappy Bird-like application via a TouchDevelop tutorial.  It’s a great deal of fun and we know that some people have taken it and had students embrace it.  Again, though, how does the teacher learn enough about TouchDevelop to help students who want to modify the program after the tutorial ends?

And, the point of the tutorial is to know enough to move on to other things.  Perhaps being able to code a solution to a math problem or do a little inquiry with some data in another subject area.  As any computer science teacher will attest (hopefully in the open), this is where the student can clearly outshine the master.  And yet, there’s another thing that any computer science teacher will confess (hopefully in the open), it’s not uncommon to assign a problem that requires a skill far above and beyond the ability of a student to apply current abilities and learn enough new to solve.

After all, of all of the disciplines, mistakes in coding can be unforgiving at times.

I’ll be honest – I still don’t know the answer to the original question.  For me, learning a new language has always been hard work.  I’m the first to admit that it’s been a lot of fun but it’s still work.  In an already crowded daily workload, how does a teacher build learning time into having a life?  With a look given towards critical thinking, making, constructing, coding, … is it something that each individual teacher should be left to learn on her/his own?  Even the choice of a language is a non-trivial task – I’ve made reference to a couple of web-based offerings above but there are languages that can be installed locally that work just as nicely.  There are PD events such as the ECOO BIT Conference or the CSTA Conference where sessions focus on various coding projects, but it this enough to give the non-computer science teacher the skills and confidence to us in the classroom in a meaningful way?

Or is a different approach needed?  Is a more directed approach needed at the provincial or district level to try to provide resources and raise the capacity for coding in schools?  Right now, we know that we’re all over the map.  Some do tutorials and are happy with the results.  Some extend the tutorial and truly apply it in the classroom.  Some have computing abilities already and bypass the tutorials for techniques of their own.

I’m still no closer to a solution.  What about you, kind reader?  What advice would you offer?

 

Enhanced by Zemanta
Advertisements

19 thoughts on “Learning to Code

  1. I start with Bee bots and then move onto bee bot app. Cargo bot used then. Next I use probots. This leads to Logo and logo art which also leads to scratch and hopscotch on iPads. Lego robotics WEdo that links with scratch. The sky is your limit once you learn about procedures, if this etc I love coding from these simple beginnings.

    Like

  2. Mary-Ann Fuduric, OCT says:

    I haven’t done any programming since university BASIC and C+. I’m going to check out some of your links. I have introduced students to Hopskotch to teach them about thinking in steps. My goal for my summer program is to do more coding with the students. Thanks for this post!

    Like

  3. I wonder how much of learning to code is learning the grammar and syntax of a language and how much is learning to “think in code”? Languages like Blockly help with the code-think, but not so much the grammar and syntax. Both are needed for “real” coding (writing software), which I’m assuming is the ultimate goal for the person.
    Which should come first? I’d play with visual languages to make sure you like it, then start a project you want to write in a traditional language. If your ultimate goal is to write a complex app for mobile devices, you have a TON of learning to do if you’re a beginner, so you probably should follow a structured approach (like taking a course or working from an O’Reilly book).

    Like

  4. This is something that has fascinated me since my son first started school.
    I have been programming for some 30+ years and have owned a software firm for 20+.
    Nothing that my son has done in school has had even a remote correlation to anything done in the real world. It is always done in a compulsory 50 minutes once a week, when they are also learning other computer related things like Word, Powerpoint etc – realistically a total waste of time.
    I think that coding is a fantastic skill to learn, however the vast bulk of people will never learn even a tiny fraction of what is needed to be able to use it, and have no call to use it anyway.
    If schools were serious then coding would be a complete subject with the same time dedicated to it as English or Maths – but we all know that that will never occur.
    Otherwise, forget it – the classes are useless for most kids and for the kids who love coding – they will learn the same way as I or any of my programmers did (none of whom learned in school or university) – they will learn by setting out to write something that interests them and learning what they need along the way. They will teach themselves, whether online, through books or via forums doesn’t matter.

    Like

  5. I like your approach to using programming to teach the students about thinking. That’s going away beyond the mechanics of the language and makes it a valuable exercise for the students.

    Like

  6. Thanks for your comments, David. Can I assume that you are not from Ontario? In the Ontario Curriculum, there are a number of full year Computer Studies courses with both a university and college stream.

    Courses dealing with IT items like the Office Suite would be an entirely different course.

    Like

  7. Hi Doug. Good point. No, from Australia, where there was nothing and now in Taiwan where there is almost negative usage of technology in schools. That is fantastic to hear that there are real programming courses being taught in HS, especially if they are elective courses and have kids motivated to learn in them.

    Like

  8. Arta Szathmary says:

    I think that each teacher needs to develop their own PLN (Personal Learning Network). Using social networking, connect with those leaders in the industry who will help them to find the resources that work best for them and their students.

    One of the “buzziest” of buzz words lately is “mobile”. Everyone has them, and should be using them to learn computation thinking, not just “coding” — What? phones and tablets.

    A few of the “app creators” mentioned in this blog are little more than fill in the blank forms, where the black box generates the code. That is not what the students or teachers of today need. They need to be creators, not just consumers.

    With that in mind, please take a look at http://appinventor.mit.edu
    They support constructivism theory of learning and resourses continue to grow daily.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s