I saw four sets of computing education research questions in live coding. These are unusual research questions for me because they’re Vygotskian and non-Constructionist.
Live coding is about performance. It’s not an easy task. The live coder has to know their programming language (syntax and semantics) and music improvisation (e.g., including listening to your collaborator and composing to match), and use all that knowledge in real-time. It’s not going to be a task that we start students with, but it may be a task that watching inspires students. Some of my research questions are about what it means to watch the performance of someone else, as opposed to being about students constructing. I’ve written before about the value of lectures, and I really do believe that students can learn from lectures. But not all students learn from lectures, and lectures work only if well-structured. Watching a live coding performance is different — it’s about changing the audience’s affect and framing with respect to coding. Can we change attitudes via a performance?
Vygotsky argued that all personal learning is first experienced at a social level. Whatever we learn must first be experienced as an interaction with others. In computing education, we think a lot about students’ first experience programming, but we don’t think much about how a student first sees code and first sees programming. How can you even consider studying a domain whose main activity you have never even seen? What is the role of that coding generating music, with cultural and creative overtones? The social experience introducing computing is important, and that may be something that live code can offer.
Here are four sets of research questions that I see:
Making visible. In a world with lots of technology, code and programmers are mostly invisible. What does it mean for an audience to see code to generate music and programming as a live coder? It’s interesting to think about this impact for students (does it help students to think seriously about computing as something to explore in school?) and for a more general audience (how does it change adults’ experience with technology?).
Separating program and process. Live coding makes clear the difference between the program and the executing process. On the first day, we saw performances from Alex MacLean and Thor Magnusson, and an amazing duet between Andrew Sorensen at Dagstuhl and Ben Swift at the VL/HCC conference in San Jose using their Extempore system. These performances highlighted the difference between program and process. The live coders start an execution, and music starts playing in a loop. Meanwhile, they change the program, then re-evaluate the function, which changes the process and the music produced. There is a gap between the executing process and the text of the program, which is not something that students often see.
Code for music. How does seeing code for making music change student’s perception of what code is for? We mostly introduce programming as engineering practice in CS class, but live coding is pretty much the opposite of software engineering. Our biggest challenges in CS Ed are about getting students and teachers to even consider computer science. Could live coding get teachers to see computing as something beyond dry and engineering-ish? Who is attracted by live coding? Could it attract a different audience than we do now? Could we design the activity of live coding to be more attractive and accessible?
Collaboration. Live coding is a collaborative practice, but very different from pair programming. Everybody codes, and everybody pays attention to what the others are doing. How does the collaboration in live coding (e.g., writing music based on other live coders’ music) change the perception of the asocial nature of programming?
I’ll end with an image that Sam Aaron showed in his talk at Dagstuhl, a note that he got from a student in his Sonic Pi class: “Thank you for making dull lifeless computers interesting and almost reality.” That captures well the potential of live coding in computing education research — that activity is interesting and the music is real.
So, I think premium goods are premium only when wearing them makes us beautiful… They say ‘each game has its own sorrow’. If we enter that game with no knowledge of how to play or no personality, it is easy to be considered as showing off, arrogant and having no personality.
A participant in Words Vietnam (series launching in about 4 weeks).
Premium only when wearing them makes us beautiful…
Each game has its own sorrow…
These are beautiful phrases.
(via Seej | Zheng3)
The rules to Seej are open source and infinitely expandable. Seej is distributed under the Creative Commons Attribution-ShareAlike License.
At a minimum, you’ll need to download and print the Seej 2013 starter set. It contains flags, catapults, and two kinds of bloxen. (You can still download the original starter set for archaeological purposes.)
Print two sets, find an opponent, and have fun storming the castle!
There’s a wide assortment of additional Seej engines, bloxen, and accessories in The Forge.
These models are free to download and print. They are also distributed under the Creative Commons Attribution-ShareAlike license, so players are free to modify and remix them for their own games.
Players start with three flags, 10 pennies, as many blocks as they like, and at least one siege engine. Try to keep the sides evenly matched. (See Core Rule #3.)
Players agree on a battlefield size. About 1m apart seems to be the right distance for playing with the Zheng3 Penny Catapult. Each player builds a castle and places flags.
Flip a coin to see who goes first.
Players take turns firing projectiles at their opponent’s castle. The first player to topple all three enemy flags wins the game.
Be safe! Although you’re unlikely to injure anyone with the Zheng3 Penny Catapult, the Zheng3 Penny Ballista can do some real damage to soft tissues. Wear eye protection, or better yet, fearlessly face down your enemies with one of these.
This might be a bit much.
Good design, good engineering, and good luck are the three pillars upon which a Seej victory is built. Design your Seej engines well, for your opponents are busy forging superior fortifications in OpenSCAD and SketchUp.
Players may not touch the enemy’s models. Projectiles must be launched from a siege engine: no throwing, dropping, spitting, or otherwise directly involving a human in the siege.
Once a projectile has been fired it’s considered out of play. Keep your unspent ammunition separate from the battlefield to avoid confusion. Play with a backstop to keep projectiles from getting lost.
In the event of a tie, pick up spent projectiles and use them to continue the game. First player to topple an opponent’s flag wins.
No flag may be placed more than 2 block lengths from the leading edge of your castle’s wall. This rule is to prevent smarty-pantses from hiding a flag behind a bookcase.
Strongly suggested: Castle walls should be made of interlocking blocks no larger than 5x3x3 cm. Blocks should fit together loosely enough to give the opponent a sporting chance of destroying a wall with a 10-penny bombardment. (See Core Rule #3.)
Seej engines can be picked up and moved anywhere behind the line created by the leading edge of your structure.
Flags toppled by out-of-game events (seismic activity, strong winds, acts of Dog, etc) may be righted without penalty.
Add or remove as many house rules as you like, as long as all players agree to them before the coin toss. If a rule survives a few games, post it here.
The original Seej Starter Set gets an upgrade to take advantage of the advances made in home 3D printing over the last twelve months. The dawn of the hobbyist resin printer is upon us, so the set includes a one-piece flag and a fancy voronoi bloxen you can use to show off your printer’s capabilities. The proliferation of inexpensive filament printers with smaller build platforms requires the advent of a smaller Seej engine, so I’ve added the Marshmallow Mangonel to the kit. The classic catapult gets improvements inspired by community feedback, too. It’s all compatible with older prints, and is much, much more accurate. Seej is an Open Source tabletop wargame designed to advance the state of 3d printing through competition and player-directed evolution. Rules for Seej are at www.s33j.net. #staytuned, I’m releasing a new player race next week. #stayreallytuned, I’ll be releasing a new Seej Starter Set in 2014. (via Seej Starter Set, 2013 Edition | Zheng3) Hat tip to BoingBoing.net
He [Alan Greenspand] said all his financial models over the past 40 years were wrong. Yet those models informed his adjustment of interest rates, and if they were based on wrong models, he likely harmed the economy, consistently, decade after decade.
pair with Dubberly “Models of Models” from ACM Interactions.
Two touching identical circles have the same area as the negative space they create in a circumscribing larger circle. That allows us to create this gif, where the circles transform without changing area. [can you prove the first sentence?] [code]
This coming Thursday, Ryan Acton, a computational sociology professor at UMass Amherst, is coming to give a talk on his work investigating “digital traces” online. Ryan has been studying network dynamics on websites such as epinions.com, and last.fm. For example, he’s been analyzing group formation around concerts advertised in last.fm and built an R package called scrapeR to collect data directly from R.