
Future of Coding
Moving Beyond Syntax: Lessons from 20 Years of Blocks Programming in AgentSheets by Alexander Repenning
Episode guests
Podcast summary created with Snipd AI
Quick takeaways
- Alexander Repenning's AgentSheets aimed to cultivate computational thinking in youth, yet struggled to achieve widespread acceptance like Scratch did.
- The co-hosts explore the tension between crafting engaging academic content and maintaining scholarly rigor in their discussions.
- Communication and understanding are enhanced through linguistic diversity, as seen in a co-host's reflections on Southern American English dialects.
- The episode advocates for inclusivity in computer science education, addressing barriers that limit participation from underrepresented demographics.
- Experiential learning is emphasized as essential for developing coding skills, highlighting the importance of resilience and problem-solving in education.
Deep dives
Friendship and Humor
The dynamic between the co-hosts is characterized by lighthearted banter, emphasizing their connection despite ongoing tensions. An amusing exchange about a threatening message involving biscuits adds to the comedic tone of the episode. The co-host rating jokes, specifically a two out of five, showcases their playful approach to tackling the uncertainties in their relationship. This camaraderie sets the stage for a deeper discussion about the nature of their interactions and the complexities involved, likening their situation to a sitcom.
Highlighting Techniques
One co-host shares a new method for highlighting notes using three colors — green, blue, and yellow — aiming to improve the clarity of their discussions. The introduction of a purple pen tool promises a structured organization of thoughts, allowing for a more visually appealing and effective way to present ideas. The focus on coloration and organization reflects a desire to enhance communication during their analysis of academic content, particularly when reviewing the work of others in a way that aligns with podcast discussions. This methodological shift underscores the ongoing effort to bring order to complex topics and ideas while maintaining a lighthearted vibe.
Dialect and Communication
The conversation turns to phonetic distinctions in dialects, as one co-host discusses their Southern American English background, where the words 'pen' and 'pin' are pronounced the same. This personal anecdote sheds light on broader themes of communication and understanding within the context of the podcast's discussions. It brings forth an appreciation for linguistic diversity and its impact on shared experiences, particularly in understanding complex subjects discussed on the podcast. This moment illustrates how language shapes perception, thereby adding a relatable layer to their exploration of academic content.
Evaluating Academic Papers
A core topic of discussion revolves around reviewing an academic paper that follows traditional formulas, leading to concerns about its suitability for engaging podcast material. The hosts express a desire for the content to resonate more meaningfully with their audience, advocating for a balance between academic rigor and accessibility. Concerns about the paper's length and complexity reinforce the need for a more engaging narrative to hold listeners' attention. The co-hosts grapple with the tension between producing high-quality content and ensuring it appeals to a broader audience beyond just academia.
Revisiting the Paper's Premise
The paper, titled 'Moving Beyond Syntax,' aims to provide insights into blocks programming initiated by the author for educational purposes. The co-host expressing reservations about the paper's structure emphasizes a collective confusion about its overall goals and implications. The reference to an extensive list of works cited illustrates the depth of scholarship but simultaneously suggests an overwhelming amount of information. By connecting to their audience's interests, the co-hosts highlight the necessity of clarity and thematic cohesion in academic presentations.
Educational Equity and Accessibility
The discussion reflects on equity and accessibility in computer science education, particularly for underrepresented demographics. The co-hosts note the importance of fostering an environment where diverse groups feel encouraged to engage with programming. Acknowledging societal barriers, they highlight existing challenges like gender bias, suggesting the need for systemic changes that make programming more appealing and accessible. This critical assessment calls for a shift in how computer science is presented in education, advocating for inclusivity in learning.
Programming and Computational Thinking
The authors of the paper make a distinction between programming and computational thinking, suggesting the latter should be prioritized in education. The co-hosts scrutinize this viewpoint, arguing programming is inherently linked to developing computational thinking skills. They emphasize the need for a well-rounded approach that supports students in both areas, fostering critical thinking and problem-solving. Their debate points to a broader tension in educational philosophy regarding the significance of programming as a skill versus its role as a tool for thinking.
Simplicity vs. Complexity in Programming
The conversation touches on the balance between simplifying programming concepts for learners while retaining the essence of coding's complexity. By addressing the accidental complexity often encountered in coding, the co-hosts highlight the value of user-friendly tools that do not oversimplify learning. There is an acknowledgment that while frustrations can arise when programming, these challenges often drive meaningful learning experiences. This perspective reinforces the idea that understanding the intricacies of programming is essential for deeper knowledge and skill development.
Pragmatic Support in Learning
The discussion underlines the necessity for pragmatic support in educational programming tools to enhance user understanding. The co-hosts advocate for programming environments that allow learners to grasp the real-world applications of their code while providing immediate feedback on their actions. This proactive approach encourages students to explore without fear of immediate consequences, enabling a more profound engagement with programming concepts. Their emphasis on practical, relatable learning experiences underscores a desire for educational tools that empower rather than overwhelm.
Exploring Learning Through Experience
The co-hosts emphasize the importance of experiential learning in programming education, drawing attention to the necessity of understanding concepts through trial and error. Personal anecdotes on past experiences with coding illustrate how learning emerges from wrestling with challenges rather than merely consuming information. By championing a hands-on approach, they stress the need for educational tools that encourage exploration and resilience, fostering a deep-rooted comprehension of programming principles. This reflection highlights a broader philosophy about learning that resonates with their audience, promoting intellectual curiosity.
Alexander Repenning created AgentSheets, an environment to help kids develop computational thinking skills. It wrapped an unusual computational model with an even more unusual user interface. The result was divisive. It inspired so many other projects, whilst being rejected at every turn and failing to catch on the way Scratch later did. So in 2017, Repenning published this obit of a paper, Moving Beyond Syntax: Lessons from 20 Years of Blocks Programming in AgentSheets, which covers his findings over the years as AgentSheets evolved and transformed, and gives perspective on block-based programming, programming-by-example, agents / rule / rewrite systems, automata, and more.
This is probably the most "normal" episode we've done in a while — we stay close to the text and un-clam many a thought-tickling pearl. I'm saying that sincerely now to throw you off our scent the next time we get totally lost in the weeds. I hear a clock ticking.
Links
$ Do you want to move beyond syntax? Frustrated by a lack of syntactic, semantic, or pragmatic support? Join our Patreon! Choose the tier that best reflects your personal vision of the future of coding. Get (frequently unhinged) monthly bonus content. Most of all: let us know that you enjoy this thing we do, and help us keep doing it for years to come.
- Argos, for our non-UK listeners. They were acquired by future TodePond sponsor, Sainsbury's.
- Once again, I am asking for your Marcel Goethals makes a lot of cool weird stuff and is a choice follow.
- Scratch isn't baby programming. Also, you should try this bizarre game Ivan programmed in 3 blocks of Scratch.
- Sandspiel Studio is a delightful block-based sand programming simulator automata environment. Here's a video of Lu and Max introducing it.
- Simple Made Easy, a seminal talk by Rich Hickey. Still hits, all these years later.
- Someday we'll do an episode on speech acts.
- Rewrite rules are one example of rewriting in computing.
- Lu's talk —and I quote— "at Cellpond", was actually at SPLASH, about Cellpond, and it's a good talk, about —and I quote— "actually, what if they didn't give up on rewrite rules at this point in history and what if they went further?"
- Oh yeah — Cellpond is cool. Here's a video showing you how it works. And here's a video studying how that video works. And here's a secret third thingthat bends into a half-dimension.
- Here's Repenning's "rule-bending" paper: Bending the Rules: Steps Toward Semantically Enriched Graphical Rewrite Rules
- I don't need to link to SimCity, right? You all know SimCity? Will Wright is, arguably, the #1 name in simulation games. Well, you might not have caught the fantastic article Model Metropolis that unpacks the (inadvertently?) libertarian ideology embodied within the design of its systems. I'd also be remiss not to link to Polygon's video (and the corresponding write-up), which lend a little more colour to the history.
- Couldn't find a good link to Blox Pascal, which appears in the paper Towards "Second Generation" Interactive, Graphical Programming Environments by Ephraim P. Glinert, which I also couldn't find a good link to.
- Projectional / Structural Editor. Here's a good one.
- Baba is You
- Vernacular Programmers
- Filling Typed Holes with Live GUIs is, AFAIK, the most current canonical reference for livelits.
- I'm not linking to Minecraft. But I will link to the Repeater
- 32 Checkboxes
- Wiremod is a… you know what, just watch this.
- Chomsky Hierarchy
- The Witness
- Ivan wrote a colorful Mastodon thread surveying the history of the Connection Machine.
- Harder Drive is a must-watch video by the inimitable Tom7.
- Also couldn't find a good link for TORTIS. :/
- Programming by Example (PbE)
- Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo
- Alex Warth, one of the most lovely humans Ivan knows, is a real champion of "this, because that".
- Ivan's magnetic field simulations — Magnets! How do they work?
- Amit Patel's Red Blob Games, fantastic (fantastic!) explorable explanations that help you study various algorithms and techniques used in game development.
- Collaborative diffusion — "This article has multiple issues."
- Shaun Lebron, who you might know as the creator of Parinfer, made a game that interactively teaches you how the ghost AI works in Pac-Man. It's fun!
- Maxwell's Equations — specifically Gauss's law, which states that magnetic fields are solenoidal, meaning they have zero divergence at all points.
- University of Colorado Boulder has a collection of simulations called PhET. They're… mid, at least when compared to building your own simulation. For instance.
Music featured in this episode:
! Send us email, share your ideas in the Slack, and catch us at these normal places:
See you in the future!
https://futureofcoding.org/episodes/073
Support us on Patreon: https://www.patreon.com/futureofcoding
See omnystudio.com/listener for privacy information.