Brennan, K. (2013). Best of Both Worlds: Issues of Structure and Agency in Computational Creation, In and Out of School. Doctoral Dissertation, Massachusetts Institute of Technology.
I had the very good fortune to attend a fancy elementary school run on solid constructivist principles. In sixth grade I got to experience the “hard fun” of Sprite Logo. Similarly fortunate kids today are learning Logo’s great-grandchild, Scratch.
Karen Brennan’s doctoral dissertation looks at the ways people teach and learn Scratch, and asks how the study of programming can help or hinder kids’ agency in their own learning. Agency, in this sense, refers to your ability to define and pursue learning goals, so you can play a part in your self-development, adaptation, and self-renewal. This is interesting to me, because every single argument Brennan makes about the teaching of programming applies equally well to the teaching of music.
Brennan examines two common assumptions:
- At-home learning is necessarily low-structure and high-agency.
- In-school learning is necessarily high-structure and low-agency.
But structure and agency don’t need to be in opposition. Ideally, any learning environment will balance the two. A totally structureless environment isn’t an option anyway, because it doesn’t exist. There are always forces acting on you, even if they’re the forces of boredom, distraction or aimlessness. We need to build structures that support learner agency. Good goal. And what structures are those? Brennan says: constructivist ones.
Some bumper sticker slogans from the constructivists:
- Learning by doing is better than learning by being told.
- Learning is not something done to you, but rather something done by you.
- You don’t get ideas; you make ideas. You aren’t a container that gets filled with knowledge and new ideas by the world around them; you actively construct knowledge and ideas out of the materials at hand, building on top of your existing mental structures and models.
- The most effective learning experiences grow out of the active construction of all types of things, particularly things that are
personally or socially meaningful, that you develope through interactions with others, and that support thinking about your own thinking.
There are four components of constructivist learning:
Constructivist learning is closely linked to the idea of intrinsic motivation, also known by its more common name, enthusiasm. The best learning happens when you’re doing an activity that you enjoy for its own sake. Ideally, you’re being challenged but not too frustrated. You’re experiencing what Papert calls “hard fun,” and what Csikszentmihalyi calls flow. Brennan believes that enthusiasm is undermined by such forms of extrinsic motivation as badges, grades and praise. That raises two immediate objections: first of all, people are competitive and sometimes enjoy getting badges and things. But for teachers, the bigger problem is this: without extrinsic benchmarks, how do you assess?
The constructivists care about programming because of their belief that if you’re going to fully participate in our technological culture, you can’t just be a user or a consumer. You have to be a maker, a producer. And if you want to really be an effective creator in the computer world, you really need to learn how to code. Brennan lists the attributes of computational creators:
- They’re familiar with computer science concepts like sequences, loops, and variables.
- They subscribe to the hacker ethos, and believe in being able to remix and reuse others’ code, or being able to abstract and modularize others’ ideas.
- They develop their own new ways of knowing, and feel empowered to ask questions.
So you want your kid to learn to code, or to learn yourself. There are some common obstacles.
- A lack of accessible tools. Programming is hard. Really hard. I consider myself a smart guy, and I have failed many times to learn how to do it. A single missing semicolon can make your program not work. In music, there are some easily-accessed footholds. You can learn some three-chord rock songs on the guitar, or hunt and peck out melodies on the keyboard. There aren’t so many equivalents in the coding world.
- A lack of personally meaningful activities. Programming tutorials are very often structured around building a database, or sorting through lists of things, or doing accounting of some kind. If you aren’t interested in doing those things, it’s hard to see their relevance.
- A lack of support. Programming is way too difficult to learn on your own. You need people to lean on for technical and emotional support. Also, when you finally do learn something, it feels really good to help out other people.
The concept of the “digital native” is malarkey — left to their own devices, kids tend to use computers for mundane purposes rather than innovation and creativity. Most schools have computers in them, but are they being used to make kids into digital producers? Sometimes. More often, though, school computers get used as a delivery system for traditional drills and exercises, or as an easier and faster alternative to the library. Those are both fine and worthwhile, but they represent a missed opportunity. Seymour Papert calls the use of computers for drills “the computer programming the child.” Ideally you want the opposite: the child programming the computer.
Constructivist learning is closely linked to the idea of intrinsic motivation, also known by its more common name, enthusiasm. The best learning happens when you’re doing an activity that you enjoy for its own sake. Ideally, you’re being challenged but not too frustrated. You’re experiencing what Papert calls “hard fun,” and what Csikszentmihalyi calls flow. Brennan believes that enthusiasm is undermined by such forms of extrinsic motivation as badges, grades and praise. That raises two immediate objections: first of all, people are competitive and sometimes enjoy getting badges and things. But for teachers, the bigger problem is this: without extrinsic benchmarks, how do you assess? More on this below.
It would be more likely to describe itself as a “club”, for although it is a school in the sense that people do learn there, it is not a school in that learning is no more the primary reason for participation in the Samba School then it is for membership in a baseball team or for playing any game.
Papert says in Mindstorms:
The samba school, although not “exportable” to an alien culture, represents a set of attributes a learning environment should and could have. Learning is not separate from reality. The samba school has a purpose, and learning is integrated in the school for this purpose. Novice is not separated from expert and the experts are also learning.
So, how do you learn to code in a samba school kind of environment? Scratch was designed to answer this question. It’s accessible — code comes in the form of colorful blocks that snap together like legos. Syntax isn’t an issue, because blocks that don’t work together won’t snap. It’s personal — you can make art, animation or games. There’s a built-in online community that strongly encourages looking at other people’s code and remixing it (with appropriate credit.)
The beautiful thing is that teachers don’t actually need to be experts in Scratch to teach it in a constructivist way. They just need openness, curiosity, and vulnerability as learners. Learning alongside your students is a great way to teach them, actually. Some of my best guitar lessons have come from working out a song at the same time as the student does. Of course, that method is dependent on my ability to pick the song up faster.
Like all online entities, the Scratch community has its problems. There are the usual misunderstandings and hurt feelings, not to mention the usual willful trolls. The remix culture is sometimes problematic; everyone has their own sense of propriety about what counts as originality vs theft, proper attribution and so on. Most challenging is the 80/20 power law thing — a small group of power users get the majority of the attention.
Imperfect though it may be, Scratch offers something crucial: a community of practice, both for students and (just as importantly) teachers. Ideally, you’d want to combine the online Scratch community with face-to-face interactions, in the form of a classroom, a club or just a group of friends.
Brennan is particularly passionate in her argument that teachers need constructivist learning just as much as students do. Papert in The Children’s Machine:
[T]he phrase “teacher training” comes trippingly off the tongues of people who would be horrified at the suggestion that teachers are being trained to “train” children.
Education schools do have a good constructivist apprenticeship aspect, student teaching assignments. Ideally, though, the learning community would continue past certification.
The constructivists talk about the “zone of proximal development,” which refers to the totally commonsensical idea that you can do better problem solving under guidance or in collaboration with more advanced peers than you can by yourself. You do best in the proximal development zone if you have the opportunity for “legitimate peripheral participation.” Think about the way that kids learn playground games. There’s no formal training; they just hang on the edge of the circle following along until they feel confident enough to jump in and stumble through. Samba schools work the same way — beginners start out playing simple clave patterns and gradually work their way up to more complex foreground drumming. Learning in these settings is coextensive with the social experience.
Programming in a constructivist setting gives you rich opportunities to practice “metacognition” — thinking about thinking. While iterating your way through your project, you end up asking yourself these questions:
- What do I want to create?
- What do I need to create it?
- What do I need help with?
- Why didn’t that work as I expected it to?
- Who might help me?
- Who might I help?
- How might I better approach all of these questions?
Kids don’t just struggle because they don’t know things; they also don’t know about the things they don’t know. Ten-year-old Robin says it best: “You don’t know what you don’t know until you know it.” Metacognition needs to be learned like anything else. You need to practice the interplay between:
- Goals (what you’re trying to achieve)
- Strategies (how you try to achieve it)
- Metacognitive knowledge (what you know about learning)
- Metacognitive experiences (how you think about that knowledge in action)
When we do get the chance to learn through creativity, there’s a big psychological obstacle. In traditional schooling, you either get what’s going on, or you’re wrong, and being wrong is shameful. But in programming, you never get it right the first time. You fail, and iterate, and fail differently, and iterate some more. Your program is never totally finished; there’s always another bug to chase down, another feature to implement, something that could be executed more elegantly. That’s why the software we use every day is constantly being updated. I’ve found the same to be true of music, by the way. The piece is never finished, you just stop working on it.
Individual constructivist learning strategies include:
- Taking a break
Social learning strategies include:
- Asking for help
- Studying other people’s projects
- Remixing work
- Working with others
- Helping others
Brennan tells the heartwarming story of an experienced Scratch community member who noticed that a lot of younger kids wanted to do side-scrolling Super Mario type games, but were stymied by their complexity. So this good person developed a side-scroller engine, with a code foundation and an accompanying tutorial, for other Scratchers to remix. The side-scroller engine has been remixed hundreds of times, forming the basis not just for games, but also simulations and art pieces.
Teachers love Scratch, but they have a hard time explaining what’s going on in their classroom, much less assessing it. There’s this feeling that all this creativity lacks legitimacy and respect, especially from the powers that be. But teachers are rightly concerned that bad assessment models (“teaching to the test”) could undermine their constructivist goals. As one teacher in Brennan’s study asks: How do you put a rubric on creativity?
Solutions to this problem vary. Some teachers make a list of objectives to check off, so they can demonstrate that they’re “doing something.” Others try to assess the kids based on their effort. These metrics are necessarily squishy. Another all-too-common outcome is that Scratch teachers feel unable to assess their students at all, and so don’t do it. Brennan quotes teachers talking about how different assessment strategies could help “market”, “sell”, or “prove” Scratch, to “convince” colleagues, administrators, and parents of its worth. This makes me sad.
On a happier note, here are Brennan’s recommendations for designers of learning environments who aim to support the development of learner agency:
- Introduce possibilities: “What can I do? Why might I want to do it?”
- Encourage experimentation: “What are different pathways to achieving my goals?” Make sure to encourage persistence through the many inevitable failures.
- Support access to resources: “What can help me achieve my goals?”
- Cultivate connections with others: “Who can help me achieve my goals? Who might work with me to define and purse goals? Who might appreciate my achievements? Who might I help achieve their goals?”
- Create opportunities for reflection: “What’s the plan for today? What did you do yesterday that you were most proud of? What are three things you are able to do now that you weren’t able to do when we first started?”
I read this and ask myself, what’s the musical equivalent to Scratch? Alex Ruthmann says that the answer is, well, Scratch. He’s working on a set of blocks specifically tailored to the learning and creation of electronic music. He also points to the Hack Day model. Imagine getting a bunch of musicians and music students together and giving them 48 hours to conceive and perform a new piece. I bet you’d learn a ton from that experience.