Education Research Questions around Live Coding: Vygotskian and Non-Constructionist
September 30, 2013 at 5:38 am 6 comments
I posted my trip report on the Dagstuhl Seminar on Live Coding on Blog@CACM (see the post here). If you don’t want to read the post, check out this video as a fun introduction to live coding:
I have a lot more that I want to think through and share about the seminar. I’m doing a series of blog posts this week on live coding to give me an opportunity to think through some of these issues.
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.
Entry filed under: Uncategorized. Tags: collaboration, computing education research, constructionism, image of computing, live coding, music, Vygostky.
6 Comments Add your own
Leave a comment
Trackback this post | Subscribe to the comments via RSS Feed
1. Marvel Girls in Stem Mentor Contest: The value and challenge of role models | Computing Education Blog | October 31, 2013 at 1:45 am
[…] in how they frame her involvement in science. Since I’ve been thinking about live coding, I’ve been wondering more about the importance of seeing embodiments of STEM workers that are o…. Perhaps Marvel can provide that through this […]
2. Teasing apart the issues of women in computing: Impact of Hollywood | Computing Education Blog | November 25, 2013 at 1:31 am
[…] Which seems to say that it’s mass media (like Hollywood) that deters women from computer science — the argument suggested below. I disagree. Yes, students are getting uninformed ideas about computer science from mass media, but that’s because they don’t see the real thing anywhere. People don’t leave Disneyworld thinking that six-foot rats can talk — because they have some other experience of rodents. Our real challenge is giving students the opportunity to see a real programmer, real programming, re…. […]
3. Want More Women in Tech? Tell them what it is. Give them the choice. | Computing Education Blog | January 27, 2014 at 1:08 am
[…] idea what it is. If students never have access to computer science, never see computer science, never see programming or a programmer or any code, then it’s not a […]
4. Two weeks in Germany: Human-centered software development and STEM Ed PhD students and Risk | Computing Education Blog | May 22, 2015 at 7:48 am
[…] (for example here). I’ve only been to Dagstuhl once before at the live-coding seminar (see description here) which was fantastic and has influenced my thinking literally years later. The seminar next week […]
5. The need for better software and systems to support active CS learning | Computing Education Blog | March 31, 2017 at 7:00 am
[…] a receiver built-in). I gather all the session data while I teach with the podium computer and do live coding on my computer (two screens in the massive lecture hall). I save the session data back to the network drive. […]
6. Inverse Live Coding: A practice for learning web development | Computing Education Research Blog | February 4, 2019 at 7:00 am
[…] readers of this blog now, I am a fan of live coding (see blog post here) where a teacher writes code live in front of the class. The positive aspects of live coding […]