Posts tagged ‘Logo’
Making Desktops on the way to Dynabooks: Happy 80th Birthday to Alan Kay!
Yesterday was Alan Kay’s 80th birthday.
As Ben du Boulay and I wrote in our history of computing education research (see here), Alan and the Learning Research Group group at Xerox PARC asked a question in the 1970’s that has changed how all of us interact with computers, “How would we change computing to make it about learning?” Their efforts to build the Dynabook gave us the desktop user interface that we have today. It’s the greatest public impact of research in computing and learning.
Alan has been a mentor to me for years, and he still influences me, such as in the comments he contributes in this blog . I’m grateful for those opportunities to learn from and be inspired by him. I spoke in my SIGCSE 2019 Keynote (see the clip here) about how finding “Personal Dynamic Media” by Adele Goldberg and Alan (see link here) set the direction of my career. I first met Alan when he came to a workshop I helped organized in 1995. Here’s a picture that Ben Shneiderman took and shared with me:

That’s Alan on the right, and that’s me in the middle. The guy on the left is Wally Feurzeig, the guy who implemented the first Logo (with Danny Bobrow).
Wishing Alan happy days and many more years!
Higher Ed and the Role of a Computing Culture: Interview on No Such Thing Podcast
When I visited the To Code and Beyond workshop last month (as mentioned in this podcast), I was interviewed by Marc Lesser for the No Such Thing podcast, which he just released. (My keynote is also in his podcast series here.) It’s a wide ranging interview, from woodworking to the work I’ve started with History professors Bob Bain and Tamara Shreiner, from how I began teaching computing in 1980 to how I’ve been inspired by (to name a few) Alan Kay, Yasmin Kafai, E. Paul Goldenberg, Brian Harvey, and Bob Kozma. Marc’s framing for the podcast is interesting (pasted below): How do we “bottle” me? In other words: How do we create more computing educators who care about CS for All, especially at the higher education level? The episode can be found here.
At the top of the last episode you learned about Mark Guzdial. Mark is a Professor in the College of Engineering at the University of Michigan. After his talk at Cornell Tech’s “To Code and Beyond” I had a chance to sit down with Mark and ask what questions had bubbled up while I listened to his talk live. Probably my most pressing question: what you’re saying is great, but we’ve all seen professors like you on youtube – Mark is a brilliant, animated, ukulele playing Computer Science professor, who, from my time with him, seems as passionate about you learning about his passion topic, as he is about the topic itself. He’s a rare mix, and what I’m sure many in the audience wondered – what the country is wondering right now – is how do we bottle some of that, and help thousands of teachers in every state offer young people the experience that surely the students in Mark’s class have each semester. For what it’s worth, out-of-state tuition at his school is $43,476 with a 26% acceptance rate. A wicked problem, indeed.
Computational Mapping: An important set of skills in Computational Thinking we can define and test
Last month, I blogged for CACM about a “Twitter convo” (conversation) that I was part of recently, Computational Thinking, education for the poor and rich, and dealing with schools and teachers as they are: A Twitter Convo #doesComputationalThinkingExist.
Part of that conversation was a series of tweets about meanings and alternative terms for computational thinking.
- Lorena Barba tweeted a thread with different definitions of computational thinking, including many she disagreed with and a few that she recommended to us.
- Mitchel Resnick tweeted that they use “computational fluency” to recognize the importance of students developing their voice and identity — “the importance of having the ability to create and express oneself with digital technologies”
- Mark Sherman said that his group at MIT is using the phrase “computational action” to think about how people can use computing to “take action on local, authentic problems, and make a difference.”
- Not in the convo but relevant is Yasmin’s Kafai’s argument to shift computational thinking to computational participation (see CACM piece here) which changes the focus to the social context and the interaction with others around use of computing. (Thanks to Ben Shapiro for pointing out the connection.)
Shuchi Grover emphasized in this convo that she sees CT as the connection between programming and other kids of thinking skills. The skills that she’s promoting and teaching are critical to the use of computing in science, for example (as she talked about here). I think she has her finger on an important set of skills, but I don’t think that they’re “computational thinking” by any of the most popular and often-used definitions for CT. CT has a set of meanings associated with it. W are more likely to hide a good set of concepts behind a vague term than to get the term re-associated with a good, new meaning.
Here’s a proposal for a name for at least part of what Shuchi is promoting and teaching: Computational mapping. Computational mapping is about making an association between computational representations and objects in other domains. Computational mapping skills include using the computational representations to improve understanding of and predictions in the other domains. Computational mapping skills should also include recognizing the limitations of the computational representation, when the mapping is missing critical characteristics of the objects in the domain which limit our understanding and predictive capabilities.
Most computer programs are mapping from the real world (that is continuous and filled with complex and real numbers) to a set of discrete values that can be represented in bits. There is not a 1:1 relationship between the real world and the computational world. Whenever we create a mapping, we may be capturing exactly the right things (e.g., if you want to simulate projectile motion, position and time is all you really need), but it’s more likely a mismatch, though many times the mismatch is not something we worry about. Our RGB color scheme can’t capture all colors, or all colors that butterflies can see, but that’s okay — we’re just making colors for humans.
I see computational mapping skills in lots of the things I think about today.
- When Seymour Papert was first promoting the Logo turtle, he talked about it being “body-syntonic.” You could map the turtle to your knowledge and sense about one’s own body. That’s making programming easier through computational mapping skils
- I attended a fascinating Engineering Education Research session where we talked about Julie Gainsburg’s work on engineering judgement. I particularly like one of her paper titles, “Developing skeptical reverence for mathematics.” When is a mathematical or computational model a good enough or precise enough estimation? When you get a result that you didn’t expect, when should you question the implementation of your model, and when should you realize that the results are telling you something new? Engineers and scientists have to do this all the time, and it’s harder when the result is coming out of a computer, looks really slick (high-quality graphs!), and has many decimal places.
- Joy Buolamwini’s terrific TED talk and Algorithmic Justice League are pointing out that our algorithms for facial recognition are missing critical characteristics of faces that we want to be able to recognize. To even realize that that can happen, that you can come up with computational recognition systems that aren’t recognizing the parts of the world that you need, is part of computational mapping skills.
- The use of types in programming languages are really an exercise in computational mapping. Does this type really capture the characteristics of the objects and data that I need? When are my types mismatched? When are my types insufficient, e.g., are floating point numbers really the same as real numbers?
- I recently told Alan Kay about some work I’m doing in using simulations for teaching social science. He cautioned me that it’s too easy to get the mapping wrong when modeling social science concepts on a computer. Physical situations (like projectile motion) are more exactly mapped and are a better place to learn through using computational modeling. He’s right, of course. But if we modeled physical situations in elementary/middle school, then high school would be a good place to explore the limitations of computational modeling and simulation, and social science is a good place for that.
CT is such a big and vague term that I’m not sure that it’s useful anymore. We’re better off coming up with new terms (like Mitchel and Mark are doing) for the exact skills we are aiming to teach. Let’s spend our time studying the things that we think are important and that we can actually define. Both the power and limitations of computational modeling feel like something that all citizens of the 21st century should be aware of.
Remembering Seymour Papert by Sherry Turkle
A lovely piece on Seymour’s passing by Sherry Turkle.
Seymour called the identification of mind and object, mind and machine, the ‘ego-syntonic’ quality of programming. He used the language of syntonicity deliberately, to create a resonance between the language of computation and the language of psychoanalysis. And then he heightened the resonance by talking about body syntonicity as well. Which brings me to the boy draped around the Turtle. Seymour loved to get children to figure out how to program by ‘playing Turtle’. He loved that children could experience their ideas through the Turtle’s physical actions. That they could connect body-to-body with something that came from their mind.We love the objects we think with; we think with the objects we love. So teach people with the objects they are in love with. And if you are a teacher, measure your success by whether your students are falling in love with their objects. Because if they are, the way they think about themselves will also be changing.
How do we move forward in CS Ed and not just retrace the past?
Interesting essay from Neil Brown who decided to try to resurrect some of the best of CS Education research software from the past. As I mentioned in a previous blog post, I have found that Logo code from the past doesn’t run as-is on modern Logo implementations. I was just talking to a colleague about how great it would be to be able to run Boxer and HyperCard again. (Yes, I have a license for Livecode, but it’s not the same interface as HyperCard.) Etoys still runs on everything, but it’s a rare exception. It’s important to make progress that we build on the past, and not simply re-invent it, forget it, or mis-remember it.
I did have one or two successes, such as getting a version of the GENIE editor running in an emulator. And it was a revelation that greatly pushed forward my understanding of old structured editors. By modern standards, they were awful. The papers’ descriptions didn’t make clear how tedious and fiddly the navigation was, how unhelpful the editor was, how awkward it was to deal with errors. Running the software was an absolutely crucial step to comparing our work to theirs. It allowed me to understand the design and critique the editor’s operation for myself, rather than relying on the authors’ incomplete descriptions of their own software.For all the other editors which I couldn’t run, there are these reviewers asking the perfectly valid question in research: “How does your work relate to previous work X?” And the honest answer is: I don’t know. Perhaps nobody can know any more — the paper wasn’t very detailed and the software is lost in time. This is no way to do research.
We overvalue innovation and entrepreneurship: Shifting the focus to Maintenance over Fads
Until I heard this recent Freakonomics podcast, I was not aware of this response to innovation and entrepreneurship trends. The quote below speaks directly to engineering education, but is as much about computing education.
The value of engineering is much, much more than just innovation and new things. Focusing on taking care of the world rather than just creating the new nifty thing that’s going to solve all of our problems. If you look at what engineers do, out in the world, like 70-80 percent of them spend most of their time just keeping things going. And so, this comes down to engineering education too, when we’re forcing entrepreneurship and innovation as the message, is that we’re just kind of skewing reality for young people and we’re not giving them a real picture and we’re also not valuing the work that they’re probably going to do in their life. That just seems to me to be kind of a bad idea.
Source: In Praise of Maintenance – Freakonomics Freakonomics
The quote is from Lee Vinsel who was a co-author on a thought-provoking essay, Hail the maintainers, sub-titled: “Capitalism excels at innovation but is failing at maintenance, and for most lives it is maintenance that matters more.”
To take the place of progress, ‘innovation’, a smaller, and morally neutral, concept arose. Innovation provided a way to celebrate the accomplishments of a high-tech age without expecting too much from them in the way of moral and social improvement.
It’s easy to see this emphasis on innovation over maintenance. We talk about disruption and transformation much more than reforming, repairing, or improving. We talk more about creation than understanding.
We increasingly teach computer science to prepare students to be innovators and create new things (e.g., join startups), when the reality is that most computer science graduates are going to spend the majority of their time maintaining existing systems. (See the papers by Beth Simon and Andy Begel tracking new hires at Microsoft.) Few who do enter the startup world will create successful software and successful companies, so it’s unlikely that those students who aim to create startups will have a lifelong career in startups. In terms of impact and importance, keeping large, legacy systems running is a much greater social contribution than creating yet another app or game, when so few of those startup efforts are successful. Aren’t we then as guilty as the engineering educators, described in the first quote?
In terms of what we teach in computing and how, innovation and maintenance is a hard balance to strike. As Alan Kay has noted, “The computing revolution hasn’t happened yet.” We’re still inventing and innovating because what we have isn’t good enough. But, that desire to value what’s new leads us to overvaluing the fad of the moment, rather than exploring, developing, and understanding what we have at-hand. Why do we have to keep changing the introductory programming language, when it’s clear that we don’t understand how students learn (and don’t learn) the programming languages that we currently teach? Why did we give up on Logo when it’s still better than most languages for children today? It’s a tough balance — to strive for better than we have, but valuing, developing, and improving what we currently have.
Logo Summer Institute 2016 available
As readers of this blog know, I started in computing education working in Logo. My first published paper ever was at Logo84, the International Logo Conference at MIT, and an early paper I wrote on using Logo to teach music to young children is still available. I did a post here on all the great interdisciplinary curricula that existed for Logo. There are still Logo workshops available for teachers, and there are slots open for this summer.
The Logo Summer Institute is an intensive workshop in creative computing for K12 teachers, parents, and technology integrators. Our project-based approach supports computational thinking and STEAM learning and teaching. The program is highly individualized to accommodate novices as well as more experienced participants, teachers of different subjects, and those who work in informal settings as well as in classrooms.Learn to code as you explore and create projects using Scratch, Makey Makey, Hummingbird, Arduino, LEGO and a many other hardware and software platforms.The Logo Summer Institute provides a relaxed atmosphere with a small group of colleagues and a great deal of personal attention from experienced workshop leaders. We have a low participant to facilitator ratio and daily advisory meetings to insure that participants’ individual needs are met.
Source: Logo Foundation Workshops | Logo Summer Institute 2016
The Algorithmic Future of Education: The History of the Future of Education
I find the history of both computer science and education fascinating, so this keynote by Audrey Watters is particularly interesting for me because it’s on both. The most often highlighted line in the article is this one:
Education technology is, despite many of our hopes for something else, for something truly transformational, often a tool designed to meet administrative goals.
Audrey shows how educational technology has been used to mechanize our theoretical understanding of what’s the best kind of education.
Now some of these strengths of tutors may be supposition or stereotype. Nonetheless, the case for tutoring was greatly reinforced by education psychologist Benjamin Bloom who, in 1984, published his article “The Two Sigma Problem” that found that “the average student under tutoring was about 2 standard deviations above the average of the control class,” a conventional classroom with one teacher and 30 students. Tutoring is, Bloom argued, “the best learning conditions we can devise.”But here’s the challenge that Bloom identified: one-to-one tutoring is “too costly for most societies to bear on a large scale.” It might work for the elite, but one tutor for every student simply won’t work for public education. Enter the computer — and a rekindling of interesting in building “robot tutors.”
Source: The Algorithmic Future of Education — The History of the Future of Education — Medium
But as she points out, what we end up losing when we mechanize education is the part that is most important. The best part of a good educational experience is the most human part, which is the part which we cannot put into the computer. I recommend the whole article.
Logo changes: The challenge of making a square in modern Logos
I’ve always been a Logo fan. After WIPSCE and my thoughts about the value of resurrecting Logo (see the post), I decided to download some modern Logo implementations and do the classic square.
to square :size repeat 4 [fd :size rt 90] end
The basic square works perfectly fine in Brian Harvey’s Berkeley Logo (see here) — it’s a straightforward implementation from the past. That means that you’re missing more modern and more platform-dependent features (e.g., no sound at all, no networking primitives, etc.).
Next, I tried StarLogo. Took me awhile to figure it out — I had to put the pen down (PD) because it wasn’t by default, and then I had a hard time getting the procedures to work, so I just typed in the code directly. I think I drew a square, but I think I was actually controlling thousands of turtles, because the effect was not at all what I expected.
I then tried NetLogo, which changes turtles from the old days. When you start out, you have no turtles at all. You have to create a turtle, and then you can ask the turtles to do something. I did it, but I didn’t get a square. Or maybe it’s a square but just wrapped around a lot?
The point is that modern Logo implementations were developed for different purposes than older Logo implementations. StarLogo and NetLogo are modeling platforms that support thousands of turtles. That makes it confusing for an oldster like me who wants to do the old things. If we want to be able to use the old curriculum, we’ll have to make some new Logo implementations that work like the old ones but provide the kinds of facilities that we’d want to play with today. Shouldn’t Logo know about the Web? I’d like to be able to manipulate pixels in a picture and samples in a sound — probably no surprise.
Larry Cuban on why requiring coding is a bad idea
Larry Cuban is a remarkable educational historian. He’s written an article about why requiring coding is a bad idea, and links it to the history of Logo in the 1980’s. I think #1 is the most important, and is similar to Seymour Papert’s “Why School Reform is Impossible” article and to Roy Pea’s concerns about requiring computing.
The reasons are instructive to current enthusiasts for coding:
1. While the overall national context clearly favors technological expertise, Big Data, and 21st century skills like programming, the history of Logo showed clearly, that schools as institutions have lot to say about how any reform is put into practice. Traditional schools adapt reforms to meet institutional needs.
2. Then and now, schools eager to teach coding , for the most part, catered to mostly white, middle- and upper-middle class students. They were and are boutique offerings.
3. Then and now, most teachers were uninvolved in teaching Logo and had little incentive or interest in doing so. Ditto for coding.
4. Then and now, Logo and coding depend upon the principle of transfer and the research supporting such confidence is lacking.
Modern Logo implementation available through Turtle Art website
This is wonderful for several reasons. So great to see a new version of Logo available that runs in a browser. So really great to see something new from Brian Silverman, one of the smartest people I’ve ever met. Brian has taught me a lot about education and computing, and he does wonderful work. Thanks to Gary Stager for pointing me to this.
I’ve been teaching a lot of Logo lately, particularly a relatively new version called Turtle Art. Turtle Art is a real throwback to the days of one turtle focused on turtle geometry, but the interface has been simplified to allow block-based programming and the images resulting from mathematical ideas can be quite beautiful works of art. you can see some examples in the image gallery at Turtleart.org. Turtle Art was created by Brian Silverman, Artemis Papert (Seymour’s daughter), and their friend Paula Bonta. Turtle Art itself is a work of art that allows learners of all ages to begin programming, creating, solving problems, and engaging in hard fun within seconds of seeing it for the first time. Since an MIT undergraduate in the late 1970s, Brian Silverman has made Papert’s ideas live in products that often exceeded Papert’s expectations.
Coding the Curriculum: How High Schools Are Reprogramming Their Classes
I’d love to see more detail on what they’re doing. It’s what Seymour Papert wanted for Logo, now happening not far from MIT and the original Logo experiments. I love what they say later in the piece about the goal being computing for creativity and calculation, not to become a professional software developer.
It’s a new, albeit eccentric experiment. The school isn’t launching mandatory programming courses into the schedule, exactly, but is instead having its teachers introduce coding (ideally, in the most organic ways possible) into their respective subjects. Calculation-heavy courses such as math and science, as well as humanities such as English, Spanish and history — even theater and music — will all be getting a coded upgrade.
True, Beaver may be the first of its kind to experiment with coding in every class, but the idea that more high school students should take STEM-related courses — particularly in programming and coding — isn’t new.
via Coding the Curriculum: How High Schools Are Reprogramming Their Classes.
Teaching Programming with Music: An Approach to Teaching Young Students About Logo
This isn’t really a part of my live coding series, but maybe it’s a good transition. I recently re-found this tech report, that I wrote in 1989–on teaching Logo by having kids build music, collaborative. We didn’t have the lovely separation of program and process that the live coders have, but we did have an interesting opportunity to play with music and phrasing and chords and computing with children (ages 9-11, roughly).
When ten students are exploring music in the same small room, the discovery of harmonies and disharmonies is almost guaranteed. The students soon discovered that songs played together sound different than when each is played separately. The Atari 800 supports multiple voice sounds, and in some classes we used multiple voice play statements. Ironically, even in those classes where we used the full capabilities of the Atari, the students seem to prefer single voices emitting from multiple computers than multiple voices emitting from a single computer.
When students remarked on the sound of multiple computers playing simultaneously, I would set up some joint music projects. First, I would explain to the students how to calculate the length of a song; that is, the sum of the durations in the song. So play [c 20 e 30 rest 10 g 40] has a duration of 100 (20+30+10+40).
We had various multiple-computer activities based on the length of songs in these classes. One of the first was to have each student write a song whose length was a large number, say, 500. The students were to enter their songs and the command to play them, but to wait before hitting the Return key. On the count of three, all the students would press Return at once.
The resulting song was always interesting. The younger students and those less confident in mathematics tended to play only two or three notes, each with a long duration. The older students and those wishing to show off would tend to write long songs with shorter durations (e.g., five or ten beats per note). When the group song was played, the younger students’ part became a background (sometimes harmonious, mostly dischordant) for the older students’ melody.
via Teaching Programming with Music: An Approach to Teaching Young Students About Logo.
Coding Is Coming To Every Industry You Can Think Of, Time To Start Learning It Now
A nice piece arguing motivating computing across the curriculum and computing for everyone. Next step: thinking about how to teach computing across the curriculum.
As British technologist, Conrad Wolfram said in a TED talk on teaching math with computers: “In the real world math isn’t necessarily done by mathematicians. It’s done by geologists, engineers, biologists, all sorts of different people.”
The same applies for computer science. Just ask Alex Tran, fellowship program manager at Code for America, a nonprofit “civic startup accelerator” that sees coding as a new form of public service. Each year, he works with more than 20 startups and fellows who build a variety of apps and online programs to improve how citizens engage and interact with their communities. So far, they’ve built tools for services like community disaster management, food stamps, virtual townhalls, student data interoperability, and even snazzy icons.
Learning to Code may be Enough — if it happens
I highly recommend Shuchi Grover’s piece in EdSurge news (linked below). She makes a great point — that the goal of learning computing goes beyond learning to code. It’s not enough to learn to code. She talks about the challenge of learning to code:
I have encountered 12-14 year olds who have ostensibly marched through an entire Javascript course online but struggle to correctly configure terminating conditions for loops that involve Boolean operators in a fairly simple program. Anecdotal evidence from classrooms and teachers that use tools like Scratch, Alice or even the newly released Tynker suggests that while children comfortably learn to modify ready-made pieces of code as a starting point, they struggle when they must progress to tracing unfamiliar code, creating their own algorithmic programs, or debugging. This is not surprising at all. Algorithmic problem solving is not as easy as the “What schools don’t teach” Code.org video would have viewers believe.
There are similar themes in Roy Pea’s 1983 paper with Midian Kurland, “On the cognitive prerequisites of learning computing programming.”
Even among the 25% of the children who were extremely interested in learning programming, the programs they wrote reached but a moderate level of sophistication after a year’s work and approximately 30 hours of on-line programming experience. We found that children’s grasp of fundamental programming concepts such as variables, tests, and recursion, and of specific Logo primitive commands such as REPEAT, was highly context-specific and rote in character. To take one example: A child who had written a procedure using REPEAT which repeatedly printed her name on the screen was unable to recognize the efficiency of using the REPEAT command to draw a square. Instead, the child redundantly wrote the same line-drawing procedure four times in succession.
Coding is hard. Coding has always been hard. We want students to know more than just code about computing.
I’m not sure that Shuchi is right. Maybe learning to code is enough — if it happens. When I studied foreign languages in secondary and post-secondary school (Latin and French for me), there was a great emphasis on learning the culture of a language. There was an explicit belief that learning about the culture of a language facilitated learning the language. Does it go further? Can one learn the language without knowing anything about the culture? If one does learn the language well, did you necessarily learn the culture too? Maybe it works the same for programming languages.
Our human-centered computing PhD students who focus on learning sciences and technologies (LS&T) are required to read two chapters of Noss and Hoyles 1996 book Windows on Mathematical Meanings: Learning Cultures and Computers. They make the argument that you can’t learn Logo well apart from an effective classroom culture. As Pea and Kurland noted in 1983, and Grover has noted thirty years later in 2013, students aren’t really learning programming well.
What if they did? What if students did learn programming? Would they necessarily also learn computing? And isn’t it possible that a culture that taught programming well would also teach things beyond coding? Maybe even problem-solving skills? David Palumbo’s excellent review of the literature on programming and problem-solving pointed out that there was very little link from programming to problem-solving skills — but for the most part, students weren’t learning programming. I don’t really think that that would work, that learning to code would immediately lead to learning problem-solving skills. I do wonder if learning to code might also lead to learning the other things that we think are important about computing.
There is a positive evidence for the value of classroom culture. Consider the work by Leo Porter and Beth Simon, where they found that combining pair programming, peer instruction, and Media Computation led to positive retention and learning (as measured by success in later classes). Porter and Simon have also noted how students learning programming also develop new insight into the applications that they use. Maybe it’s the case that if you change the culture in the classroom and what students do, and maybe students learn programming and computing.
Recent Comments