Google Blockly? What’s that? And should we say coding or computer programming? We’ll deal with that terminological question in the last paragraph, but let me first tell you about Blockly and about the workshop we had yesterday.
A group of middle- and high-school teachers from Weston met for the day to plan how to incorporate coding into 8th-grade algebra, especially the honors class, which had studied Codea last year. The new constraint this year is that students in the Middle School will all have Chromebooks, a fact that limits the choice of programming languages.
We wanted to choose a user-friendly approach that would connect with algebra, open the door to further study, and not be an unreasonable burden on the teachers. It quickly became apparent that Google Blockly, an easy-to-use visual block-based language, fit the bill, especially if we used the lessons from code.org’s “Express” Course. There’s also a related app, Coding with Chrome, which provides more than enough additional material for a set of activities that are merely a small piece of an algebra course rather than a stand-alone CS course. So we’re going to try it this fall for honors math courses in 7th and 8th grades, and probably also for college-prep 8th-grade math.
So what are the disadvantages? One is simply that some of us are more comfortable with text than with pictures. A second is that Blockly is quite limited: instead of the usual question “How do I do X?”, the question becomes “Can I do X?” A third is that there doesn’t seem to be a reference manual! This is distressing to people like me. The explanation is supposedly that a single reference manual is impossible, since the language is infinitely customizable by individual developers. I’m not sure I buy that.
Oh, I was going to talk about “coding.” Back when I was working in the software development industry, the process was called “computer programming,” which involved several components. The groups I worked with did both design and coding, with the same individuals doing both: if somebody was labeled a coder, it meant that they implemented someone else’s design. So it bugs me to call the whole process coding, since it seems to deny the design part of the process. Oh, well.