Jecel, you may be confounding two things: - Having a mental model: "seeing" a FOR loop in one's mind. - Seeing a visual representation of something like a FOR loop.
There's some research in the Spatial Intelligence and Learning Center (SILC, http://www.spatiallearning.org) that suggests that we encourage more of the former by doing less of the latter. A bad visual representation can actually lead you astray. Sketching and gesture may be more effective at encouraging the development of internal representations.
I blogged on Bret Victor's excellent essay here: http://computinged.wordpress.com/2012/09/28/learnable-programming-thinking- about-programming-languages-and-systems-in-a-new-way/ My concern is about the things that aren't easily translated into a visual form, like user input in the future and the Internet.
Thank you for the Shaw link!
Cheers, Mark
On 11/12/12 2:44 PM, "Jecel Assumpcao Jr." jecel@merlintec.com wrote:
I have just watched the talk "It's Not You, It's Them: Why Programming Languages Are Hard To Teach" by Zed A. Shaw and he is very critical of Bret Victor's ideas, and also mentioned "Squeak Toys" and Scratch as examples of fallacies.
http://oredev.org/2012/sessions/its-not-you-its-them-why-programming-lang uages-are-hard-to-teach
Though I disagree with nearly everything he says, it was still an interesting talk. I think that in many cases he subtly misunderstood some concepts. His complaint about the lack of formal studies, on the other hand, is entirely valid.
An example of his misunderstanding: he shows Bret saying "if a programmer can't see something, then she can't understand it". Zed then complains about mixing text and drawings and using rectangles as a problem domain while the important things are concepts like "for". I am with Bret on this one: if a person can't "see" how a "for" works, they won't understand it. Most people who get good at programming as it is now can see it perfectly in their own heads. Having a visual representation animated on the screen will help the other people. Zed just ignored the first case of seeing and says the second case is a fallacy because "normal" people have trouble switching between linguistic and visual modes.
-- Jecel
squeakland mailing list squeakland@squeakland.org http://lists.squeakland.org/mailman/listinfo/squeakland
Mark,
Jecel, you may be confounding two things:
- Having a mental model: "seeing" a FOR loop in one's mind.
- Seeing a visual representation of something like a FOR loop.
That was my intention, which is why I used the same work for both cases rather than the more proper "imagining" for the first one.
There's some research in the Spatial Intelligence and Learning Center (SILC, http://www.spatiallearning.org) that suggests that we encourage more of the former by doing less of the latter. A bad visual representation can actually lead you astray. Sketching and gesture may be more effective at encouraging the development of internal representations.
Very true, but what interests me is if these internal representations are always visual. For me they are, but Zed Shaw seems to think some people can think of how programs work in purely linguistic terms.
Of course, an external visual representation can get in the way of an internal one. If you read a book and imagine how a given character looks and what they sound like, it can be very jarring to see the movie with an actor who is very different.
So is the problem a matter of the teacher having a visual learning style and the student a non visual one or is it a matter of the teacher's visual style being different from the student's?
I blogged on Bret Victor's excellent essay here: http://computinged.wordpress.com/2012/09/28/learnable-programming-thinking- about-programming-languages-and-systems-in-a-new-way/ My concern is about the things that aren't easily translated into a visual form, like user input in the future and the Internet.
But we are talking about the first lessons and in that case we can choose the domain. We can select games or turtle graphics instead of Fibonacci sequences. The visual stuff can be training wheels to be outgrown. Though I prefer to always have stuff as visual as possible - just compare the debugger in Self with the one in Squeak, for example.
Karl wrote:
I have seen Bret Victors stuff and found them a little lacking in the abstract side of programming.
Much of computing hard to show as graphic. Graphics is good up to a certain limit where the complexity in the graphics is as hard to grasp as the language complexity in question.
What can't be understood as a graph due to that becoming too complex and yet can be understood in some other way? As I mentioned above, I am a purely visual person and am limited by that. If other people can really understand something as purely an equation or some other form and so can do stuff that I can't, then great! But I can only design languages and programming environment for people I know.
The "people won't have to learn to program because of AI" idea was the motivation behind the Fifth Generation project. But you still will have to express your needs to the machine in some way. Spoken language can do a lot, but drawings sometimes help. And then the computer has to show the results.
-- Jecel
squeakland@lists.squeakfoundation.org