Live data from Hacker News

Bret Victor: Learnable Programming

worrydream.com

61–70 of 193 posts

Re: Bret Victor: Learnable Programming

#61
post #6

Couple random thoughts: 1. Is Bret Victor now the Linus of cutting-edge programming environments? 2. I don't have enough experience with Light Table or the Khan Academy environment to know whether Khan is just a first step on the way to something like Bret's vision, or more of a diversion. I was fairly impressed with the Khan env in my limited time with it. 3. I HATE telling people they shouldn't speak their mind and…

> 1. Is Bret Victor now the Linus of cutting-edge programming environments? Linus actually implements his solutions to things that he rants about, and releases his code, so that analogy isn't quite right. Bret gives us nice big-picture ideas and leaves the implementation for others. I think many of the specific ideas mentioned by Bret will quickly fall apart when trying to actually implement something non-trivial. Bu…

Light Table should be an interesting implementation to follow then. It seems to be guided by many of big-picture ideas of Bret Victor but at the same time has to somehow make money as a real product.

Re: Bret Victor: Learnable Programming

#62
This is all very inspiring and nice, but I hate it that all of his examples deal with variables that contain numbers.

With numbers it's easy. You can use sliders to increase and decrease their value. You can see a little preview of the value contained in a variable.

But most of the time variables contain much more complicated information than just basic numbers. Maybe they're objects, or strings containing large pieces of HTML.

This type of data is hard to visualize and obtain "immediate feedback" from. So I think it's still hard to apply the "show the data" concept in a way that it works well for all kinds of coding exercises, and not just for coding canvas elements.

Re: Bret Victor: Learnable Programming

#63
Beautiful and inspirational, and yet...

Sometimes becoming able to hold the 'invisible state' in memory is the skill to learn.

Consider the 'dual N-back' drilling which seems to improve working memory, and then also (by some studies) other testable fluid intelligence. The whole point is holding more and more hidden state in your mind. (To 'show the state' would defeat the purpose of the game.)

Similarly, sometimes struggling with the material is the best way to internalize it.

Consider some studies that show noisy, hard-to-read text (as on a poorly-printed copy) is better remembered by readers than clean typography. Apparently, the effort of making out messy printing also strengthens the recall.

So I'd be interested in seeing comparative testing of the vivid 'Victor' style, and other styles that are more flawed in his analysis, to see which results in the most competence at various followup dates.

We might see that the best approach is some mix: sometimes super-vivid interactivity, for initial explanation or helping students over certain humps, but other times intentionally-obscurantist presentations, to test/emphasize recall and the ability to intuit/impute patterns from minimal (rather than maximal) clues.

Re: Bret Victor: Learnable Programming

#64
I just want to clap with joy after reading this. I learnt Logo when I 9 years old and those were the best days of my programming life. I still remember the mad excitement of drawing the first smiley face and the first house. I just want to ask the new age educators : Why so serious? It was supposed to be fun.

Re: Bret Victor: Learnable Programming

#65

There's already two comments here about being "harsh" or "ungracious" towards Khan Academy which is ridiculous. The usual HN article that contains criticisms is usually limited to that. Some rant that took 10 minutes to write and contains nothing constructive. Bret Victor put an insane amount of time into this (I can only assume) and is truly advancing mindsets about programming tools and learning. We should all be t…

It's important to point out that was Bret Victor that created this concept from which Kahn Academy took inspiration from. https://vimeo.com/36579366 http://ejohn.org/blog/introducing-khan-cs/

As Bret Victor says in his essay, live coding is not a new concept and he did not create it.

The current trend in live coding seems to have spawned from a discussion between two computer musicians (Fabrice Mogini and Julian Rohrhuber) in 2001, with masses of related prior art going back to Lisp machines, Self, Smalltalk, corewar etc.

Re: Bret Victor: Learnable Programming

#66
post #59

If you really want to label: ellipse(65,50,60,60) Wouldn't using something like Python's keyword arguments better than some external labelling? ellipse(radius_x=65, radius_y=50, center_x=60, center_y=60) More characters but these are just training wheels. Once the learner understands the basics you can do away with them. API's and libraries should be designed to allow both forms. Everyone is a beginner with some aspe…

I personally like

  ellipse({axes: {horiz:65, vert:50}, center: {x:60, y:60}})
The function takes a specifiable object, and It's All JSON^tm. It also nests objects in objects in a satisfying, somewhat intuitive way.

Argument keywords are not reified and don't require special forms. Instead, they just happen to be the labels of an object.

I can see why you might not want to start with this concept for pedagogical reasons (you have to know a little about defining a Javascript object). But I would think you would want to move to this soon, so you can also get the programmer's special feeling of creating abstractions that make code disappear.

Re: Bret Victor: Learnable Programming

#68
post #56

I think this article raises some brilliant points, and is very well written, but I also feel that it falls short of the mark Bret was aiming for. As he himself alludes to, most of what he is teach is not programming - it is individual actions. Just as being taught the meaning of individual words does not teach you to write, being taught what certain functions or statements do does not teach you to program. What is im…

> I'm sorry Bret, but Alan is right. You do need to be able to think like a machine. I would like to bring in another Alan Perlis quote: "You cannot move from the informal to the formal by formal means." Programming is the art of formalizing things to a point where they are executable. Executable by what is the point of contention here. I think you are saying (and I somewhat agree) that ultimately your programs and i…

I dont think it needs to be a real machine in the sense of a physical one, just in the sense of an execution environment.

What worries me about Bret's tools is that it looks like they make it easier for someone to produce something without knowing why. When you learn maths at school, you're normally taught to show your working - getting the answer isn't enough, you need to understand the process. Having so many sliders and timelines to pull around is fine, but at the end of the day we need to teach people functions and variables and recursion and combinators and so forth, and I'm not sure how one does that in this system. In a sense, it is skipping the architecture stage - working not just how to build, but what to build in the first place.

Re: Bret Victor: Learnable Programming

#69
post #59

If you really want to label: ellipse(65,50,60,60) Wouldn't using something like Python's keyword arguments better than some external labelling? ellipse(radius_x=65, radius_y=50, center_x=60, center_y=60) More characters but these are just training wheels. Once the learner understands the basics you can do away with them. API's and libraries should be designed to allow both forms. Everyone is a beginner with some aspe…

I think Bret made it pretty clear that these ideas are not training wheels. There's a section titled "These are not training wheels". The goal is not to do away with them but to make programming about them.

Re: Bret Victor: Learnable Programming

#70
post #59

If you really want to label: ellipse(65,50,60,60) Wouldn't using something like Python's keyword arguments better than some external labelling? ellipse(radius_x=65, radius_y=50, center_x=60, center_y=60) More characters but these are just training wheels. Once the learner understands the basics you can do away with them. API's and libraries should be designed to allow both forms. Everyone is a beginner with some aspe…

Named keywords help, but they don't give better overview of what each part represents. In other words they lower the barrier, but not by far (a novice programmer might still scratch his head and say... Radius what? of x? And why center y? Is x vertical? Or horizontal? from where do I calculate? ).

However his examples do strike me as amazingly ambitious. How would one go around implementing a custom way to tell the application "Hey I'm width! And I'm height! Calculate us from this and that point!". I'd pay good money for someone to truly deliver on Victors ideas. LightTable might be a good start, but it's nowhere near even completeing 30% of ideas presented.

Post reply on HN