Peer Critique: Learning to Code

Nathan’s computer science course looks great: it has a clean layout and adopts design conventions that make it easy to navigate and understand the various elements of the site. The format is essentially an online textbook organized into chapters. The relatively long paragraphs and chapters and the lack of images make the resource feel like they’re aimed at a scholastically inclined adult audience. Put another way, the appeal of the resource is in the conceptual content, not in its visual richness. The text tends to use precise (if basic) computer science language, which may better prepare the learner to interface with other explanations and documentation, but at the expense of a steeper learning curve that might discourage truly novice learners.

The resource best leverages the affordances of web technology in the interactive Python shells dispersed frequently throughout each chapter. These allow the user to review and manipulate pre-filled code, execute it, and observe the results. Thus learners can apply what they have just learned in the preceding text explanation. Often, these are accompanied by an exercise, where the learner can upload a solution in the form of a .py file. The resource automatically evaluates the submission, reporting the expected result, the actual result, and basic error reporting in the event of a discrepancy. This experience is quite a faithful simulation of a standard development workflow, in the sense that the user is required to deal with modular text files and learns to test and revise code. Again, this assumes a certain facility on the part of the learner to know their way around a computer, as well as some basic familiarity of the mathematics required to generate a solution (e.g. geometry). These are realistic expectations of anyone who will be practicing computer science, but it does add to the sense that the resource is aimed at adults, or at least adolescents.

Instructionally, the resource is very thoroughly structured, with an expanding cyclical pattern of learn a concept by reading, explore a concept by manipulating code, apply a set of concepts by generating a code solution. The learning experience might be enriched with other activities that are less concrete or easily assessed, but that help the learner practice the cognitive skills that are relevant to computer science. For example, it might prompt the learner to review a code sample and make a prediction, then execute the code, and evaluate the accuracy of their prediction. They might record their analysis of why or why not the code performed the way they had expected. Likewise, learners might be asked to debug flawed code, or improve an inefficient algorithm. It’s also important to note that this resource seems to teach concepts of computer science germane to coding, which is a narrow subset of the broader domain of computational thinking. While coding is a very practical and ubiquitous application of computational thinking, it might be helpful to depart from the practice of coding periodically and require the learner to apply the concepts of computational thinking to another domain. This might prove especially valuable to new learners who don’t identify themselves as coders or computer people.

People Have Rights, Not Ideas

I recently had the chance to observe informal learning at the Museum of Natural Curiosity. Beyond the admirably imaginative design, another magical property of the place has stuck with me: in that space, “possible” and “permissible” are nearly synonymous.

It’s a refreshing contrast t0 the belt-barriers and corralled-in queues  of movie theaters and amusement parks, conventions that establish order by making disorder inconvenient. They’re policy lines drawn in the sand of possibility, enforced first by laziness and last by social ire. I know firsthand how adamantly we insist that our canned entertainment be rationed out fairly—my own complaints once got a few miscreants kicked off a raft ride for cutting in line.

Granted, there are boundaries at the MONC, but most of them are literal boundaries—actual walls. And where there aren’t walls, there are robust possibilities. Worried that your water experiment will overflow? Don’t; the entire area is waterproof, and the excess gently flows between cracks in the floor. At the MONC, if it’s possible, it’s almost certainly permissible, which affords a new kind of safety to children. It’s safety to explore, share, experiment, and negotiate life with confidence, with minimal risk of being found inadvertently (and sometimes inexplicably) delinquent.

If only life itself were so idyllic. In life (as in children’s museums), we need boundaries to keep us safe. By definition, great power brings greater consequences, whether for good or for ill.

So we limit power. We legislate against certain abilities for fear of their consequences, and our intent is just. We may disagree in the specifics, whether children should be allowed to run on a playground or climb on the rocks, but most of us agree that their lives are worth protecting. Bounding their world is worth mitigating the risk of harm, because it preserves their potential in other ways. The same idea applies to the checks and balances that limit our political leaders; we dam their power to protect our collective power as a nation.

But what about ideas? Are they worth protecting?

In a word, no.

Unlike children, minorities, or dissident journalists, ideas are quite difficult to harm. They spread almost effortlessly, flying across the globe, as Thomas Jefferson put it, “like fire, expansible over all space, without lessening their density in any point.” It’s not hard to kill an idea; it’s impossible. As Jefferson said, they are “incapable of confinement or exclusive appropriation.”

If ideas then, are immutable and irrepressible, the next best thing is to control their representation. If an idea goes unrecorded in a persistent medium, its ability to spread is greatly diminished. Early librarians and scholars felt this fully, as the prohibitive cost of hand-copying texts precluded all but the most revered texts from propagation. Printing technology greatly expanded the ability to quickly replicate text, and internet technologies have multiplied it as much again.

Today representations of ideas (copies in persistent media) today spread nearly as virulently as the ideas themselves. We have before us a great world of possibility, of consequence.

Many of us abuse this power. We circumvent wishes and agreements and relationships of others in an attempt to get something for nothing. We download, we share, we cheat. We harm each other.

Naturally, our reaction has been to limit that sharing power. We invent technological measures (effective or otherwise) that make disorder inconvenient. We draw lines of fairness in the lawless sands of cyberspace.

But is it worth it? Does bounding our power in this way preserve our potential in other ways?

I don’t think so.

Derived from © 2014 Ebonezee. Licensed under CC-BY.
Derived from “no idea”
© 2014 Ebonezee. Licensed under CC-BY.