How to create a learnable programming environment (uses Processing for illustration)

Learnable Programming

'We often think of a programming environment or language in terms of its features – this one “has code folding”, that one “has type inference”. This is like thinking about a book in terms of its words – this book has a “fortuitous”, that one has a “munificent”. What matters is not individual words, but how the words together convey a message.

Likewise, a well-designed system is not simply a bag of features. A good system is designed to encourage particular ways of thinking, with all features carefully and cohesively designed around that purpose.

This essay will present many features! The trick is to see through them – to see the underlying design principles that they represent, and understand how these principles enable the programmer to think." ’

wow! Did you write that? That’s a piece of thinking there.
Thanks for sharing.
Need some time to think about it. A couple years, maybe…

\.\ inspiring. thanks!


(@Jmv38 - as far as I can see, Bret Victor wrote this paper, not gebloom, whose real name is different)

This was brought up on another thread I believe, a long time ago,
here. It caused a great deal of controversy…lots of arguing on that thread.

my English is poor?could u use examples for illustration?

This piece is by Bret Victor, who’s work has had a huge influence on recent developments in programming (e.g., Xcode Playgrounds feature).

However I do think there is some value in blind experimentation — or “play” — that is often undervalued.

Play? What do you mean @Simeon?

Playing is what I’ve been doing for two years! <:-P

@Jmv38 like when you watch kids figure something out. They don’t seem to care about obstacles or the proper way of doing things. They just push the system in all directions until they find the boundaries — like the microwave example in that essay; I think kids would figure it out by playing with the buttons and watching what happens.

That said, I really enjoy Bret Victor’s work and it has inspired a lot of the features in Codea.

@Ignatz - lucky git :slight_smile: Actually I’ve said before, Codea is my favourite game on my ipad (and the reason I won’t swap to an Android tablet!)

@TechDojo, likewise. Codea is the only reason I considered an iPhone (I like to play my own games B-))

i see?Codea is designed to be very friendly and easy-to-use?we could play with Codea like kids.

Yes, we (adults) could play with Codea like kids. But, based on my experience, kids still couldn’t play with Codea as kids. :wink:

No, it’s a fairly adult toy, rather like remote control model aeroplanes - but unlike a model aeroplane, Codea doesn’t destroy itself if your program crashes :smiley:

It’s for adults who sometimes want to feel like kids again. You can’t really go back and program on a C64 or the like. It won’t be the same. But Codea somehow achieves the impossible and gives us a new old toy and happy memories

My name is Gary Bloom, and I’m interested in any technologies that help with learning programming (especially, because I’m so bad at it). People learn in many different fashions, and I’m astonished that there has been so little progress in technology-assisted learning to program.