Rurple NG

Aug. 13th, 2009 02:31 pm
ciphergoth: (Default)
[personal profile] ciphergoth
I've been writing a program for teaching people how to program:



And I've blogged about it on the work blog. I start by quoting Cory Doctorow's Little Brother:
If you’ve never programmed a computer, you should. There’s nothing like it in the whole world. When you program a computer, it does exactly what you tell it to do. It’s like designing a machine — any machine, like a car, like a faucet, like a gas-hinge for a door — using math and instructions. It’s awesome in the truest sense: it can fill you with awe.

A computer is the most complicated machine you’ll ever use. It’s made of billions of micro-miniaturized transistors that can be configured to run any program you can imagine. But when you sit down at the keyboard and write a line of code, those transistors do what you tell them to.

Most of us will never build a car. Pretty much none of us will ever create an aviation system. Design a building. Lay out a city.

Those are complicated machines, those things, and they’re off-limits to the likes of you and me. But a computer is like, ten times more complicated, and it will dance to any tune you play. You can learn to write simple code in an afternoon. Start with a language like Python, which was written to give non-programmers an easier way to make the machine dance to their tune. Even if you only write code for one day, one afternoon, you have to do it. Computers can control you or they can lighten your work — if you want to be in charge of your machines, you have to learn to write code.

Date: 2009-08-13 02:02 pm (UTC)
From: [identity profile] robot-mel.livejournal.com
Neat! One thing I like about the age I am is that when we got personal computers programming was just something you learned along with it. (At least if your dad was a software engineer like mine was) And then in the early days of the internet you actually had to learn the HTML rather than having applications to do it for you. I think (like cars) it's much more fun when you understand how it works.

I never built a car, but I did rebuilt the engine on my VW Beetle - twice...

Date: 2009-08-13 08:16 pm (UTC)
From: [identity profile] skx.livejournal.com
Yeah for most people I know that are programmers/IT-related they started like that.

For me it was the fact that the family computer came with a manual which introduced BASIC and we had very small budget for buying games .. so I'd experiment with programming.

In many ways computers were simpler then. (Not necessarily easier due to RAM/feature constraints, but definitely simpler.)

Date: 2009-08-14 09:34 am (UTC)
lovingboth: (Default)
From: [personal profile] lovingboth
It was certainly possible to 'know' a system in a way that is impossible now, even down to being able to build several of the 8 bit micros yourself from TTL chips.

Date: 2009-08-14 09:36 am (UTC)
From: [identity profile] ciphergoth.livejournal.com
One of the exercises on our degree course was to build your own microprocessor from logic gates. You only had 256 bytes of memory, but it was still way cool, and you had tremendous freedom of design - eg you wrote your own instruction set and you could decide whether to have a single bus or separate instruction and data buses.

Date: 2009-08-14 11:18 pm (UTC)
lovingboth: (Default)
From: [personal profile] lovingboth
You've seen opencores.org, haven't you?

The one slightly critical comment I'd make on this is that the first line should say '.. how to program in Python', but I haven't played with it properly yet.

Date: 2009-08-14 11:19 pm (UTC)
From: [identity profile] ciphergoth.livejournal.com
No, it's programming I mean to teach; Python is just the choice I've made for what to teach. Though one of those people programmed a little before, a long time ago, so it's more of a rediscovery.

Date: 2009-08-14 11:45 pm (UTC)
lovingboth: (Default)
From: [personal profile] lovingboth
Hmm, when I think about introducing programming to JA, it's doing it via starlogo-ng or possibly Forth driving a Mindstorms robot. But that's probably me...

The former means not having to answer 'Why do some words have to have (parentheses) at the end?' with 'Because that's what Python insists on', just a very intuitive (YMMV) graphical IDE where you put building blocks in the place you want and get very graphical results. Does it do the indenting of source for you? If not, that's another thing I'd need to explain, etc.

The latter means a very interactive environment where you're encouraged to factorise and reuse short definitions.

This doesn't stop me being very impressed with it and I accept seven year olds may well not be your target audience :)

Date: 2009-08-15 07:56 am (UTC)
From: [identity profile] ciphergoth.livejournal.com
It does indent source for you, but you still need to explain it. I agree that the parentheses are frustrating, but as I say in the blog post the payoff is that people start off using a language that they won't have to throw away when they get more sophisticated.

Profile

ciphergoth: (Default)
Paul Crowley

January 2025

S M T W T F S
   1234
5678 91011
12131415161718
19202122232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 11th, 2026 02:59 pm
Powered by Dreamwidth Studios