Note: This post is re-blogged from https://csforhumanity.wordpress.com/2015/10/12/reactions-to-a-cs10k-webinar-block-party/.
I write this without having listened to the recording of the first half of the webinar, Block Party: Meet Some of the Creative Minds Behind Blockly, Scratch, and More!, which took place live on the evening of October 7, 2015. I hope my reactions prove spurious after listening to the recording of the full webinar. I am afraid, however, they will not be. And at the very least, they reflect my experience. I hope they will resonate with some others, and encourage you to share your enthusiasm for computing with others.
I listened to, and participated in the chat for approximately the last 25 minutes of the event. There was certainly some interesting discussion, among some very enlightened and well- meaning people, representing thought leaders in Computer Science and/or Computing Education.
Given that, however, I cannot help but ask question: Why did the majority of what I heard focus narrowly on how we teach what is often taken as a vocational skill, namely programming, most effectively? There were a few half-hearted nods to computer science-specific formulations. The message I got loud and clear, however, was that we should figure out how can we get kids proficient in Java(script) as quickly as possible.
And it intrigues me that this ended up being the case. I know many of the people who participated, and they believe firmly in much more transcendent ideals. Why, one of the curricula based on one of these blocks languages is entitled The Beauty and Joy of Computing.
I recently had a small difference of opinion with Dr. Mark Guzdial on Facebook, in which I critiqued an article about new CS courses in Georgia for emphasizing only the vocational good they could do. His response, paraphrased, was thats often how these things end up getting sold. Much more exclusively on that idea in another post, but to boil it down, theres much more to computing and any of these languages, and we lose so much richness when we devolve into a discussion of optimizing teaching of programming.
Im not saying anything particularly new, but computing to me is about much more than the act of programming. Programming is often the last stage of a bout of computing. First, we assess the problem in our head, devising a strategy to approach it. We (why We and not I? Because computing is rarely a solitary endeavor,) may discuss it with peers, we may sketch flowcharts or notes on whiteboards or in notebooks. We often search for facts and figures, data, that have nothing to do with computers, but about the real-world problem we are trying to solve with an application of computing. Using a variety or combination of methods, decomposition/solution of parts/reassembly; machine learning; data mining; etc., we plan, eventually program and test, then repeat to find better, and finally adequate solutions. This, for tonight, is my barely adequate description of an experience of computing.
Why the disparity then, between the possible discussion space and what ended up being talked about? Certainly it was not because the blocks languages that were being discussed are learning or play languages. Scratch and the languages that spawned from it scaffold creativity of several kinds. Alice and its relatives are also about self-expression, though with a slightly different flavor. Pencil Code, to my poor estimation, strives to give fast ability to control real tools. Admittedly, though, Im biased, and know the most about about one particular tool, MIT App Inventor.
MIT App Inventor strives to give beginners and experienced programmers fast control over mobile devices (yes, still Android only) through high level abstractions that allow the app creator to do real, meaningful things. What does that mean? There are myriad examples, ranging from crowdsourcing access to sanitary toilets in Lagos, to developing apps for tracking student location on school and/or city buses, both domestically in the US and in Bangalore, among other locations. Are they all so goody-goody? No - kids (and adults) make fart noise apps too - and those are popular and exciting, and represent the thrill of computing as well - they allow the app inventor to make something that promotes cognitive dissonance - a phone farting!?! How much more fun, and relatively innocently disruptive can you get?
So, to close, lets strive to elevate the discussion - lets talk about the Beauty and Joy of Computing, farting phones and all. Lets talk about why we love computing, and how programming enables that.
Somehow, with only a gut feeling to support this, I suspect that we should curtail our inclination to debate in the esoteric weeds the relative merits of one blocks-to-text conversion tool vs. another. Instead, lets spend more time developing and telling the inspirational stories to pass to youth who may not hear them otherwise. Enthusiasm is contagious, sometimes Im convinced if we share our true enthusiasm for problem solving and computing, vs. vigorously discussing arcane points, we will share that youthful enthusiasm with a larger AND broader audience of youth.