I had a blip of a realization one day when idly talking to the 6yr old with a prolog terminal at hand. Documented that here - http://sriku.org/blog/2019/07/16/prolog-is-magic/
I had a blip of a realization one day when idly talking to the 6yr old with a prolog terminal at hand. Documented that here - http://sriku.org/blog/2019/07/16/prolog-is-magic/
In general I think starting from nothing is the original sin of programming pedagogy. I think it's easier to learn by example, imitation, and extension and then learn the deeper principles once you need them.
My wish is a game that would be compelling enough to get a few app store downloads but allows for live editing of the source. Say a soccer game where you can start by changing configuration options like the ball color, then maybe you can find where goals are added in and make yours count for more, eventually basic physics like changing acceleration.
Probably not for 6 year olds, but even at the college level I'm not sure about having students start by staring at an empty editor window.
I think you're right in saying that. Back when I was in school, I learnt a lot by copying BASIC programs from mags and typing them in and then modifying them. I don't think I even acknowledge that early stage much now given that learning strategies have evolved from there.
edit: Thinking back to that, it seems to me that one of the attractive aspects of BASIC for interactive programming was line numbers. You could replace any line by typing a fresh line with the target line number instead of going back to edit the program. There's something innocent and simple about that.
The line numbers definitely help you imagine the computer mechanically reading and executing the lines. I wasn't taught with BASIC so in the few times I've had to modify a program with meaningful line numbers I have often used make or similar to just put them in for me. I'm glad someone likes them, I never understood why they existed!
The team's work with Bootstrap (https://www.bootstrapworld.org) is actually pretty awesome .. where they're trying to accommodate even kids who may not have access to a computer. One of the best CS educational efforts I've come across. Check out racketcon2020 ( https://con.racket-lang.org/) where Kathi Fisler (co-founder of Bootstrapworld) is keynoting on "data centric computing".
I think what's left is building it more or less. Also structuring the code for education. For instance keeping the complicated, scary code out of files that will be modified early.
I've also heard good things about "ro blocks", but having watched a stream or two I'm less sure of it as a good introduction.
Computercraft turtles and LUA aren't terrible, but when I see a FOR loop I think C style, while LUAs is the other kind and I'd really love for that for to be named something like ITER instead.
(I would recommend playing a bigger modpack where ComputerCraft is included)