Hacker News new | ask | show | jobs
by ethbr0 1037 days ago
Not author, but I've always wanted to approach programming from an algorithms-first perspective with younger kids. Not called algorithms, of course.

If they can create/combine algorithms to solve a problem... that's most of programming.

I'd start with the "robot" problem: have them write a set of steps to complete a simple task, and then have them (or better, someone else) go through the steps precisely (no cheating and assuming they meant something they didn't write!). Then iterate and add/remove steps until the task is actually doable. (Disclaimer: idea cribbed from someone else)

That gets them to grok the "everything needs to be in a program, and a program is only everything that's in it" idea.

The traveling salesman problem (recast in whatever form would be most interesting to the kids) and graph theory problems are also especially visual and explorable.

1 comments

Interesting! I've always been most interested in conveying information to people — human-computer interactions, interface and app design, educational writing like this article. Before I got into programming I was OBSESSED with this amazing circuit-building thing called Snap Circuits as a kid (highly recommend, definitely get a starter set for your kid if you haven't already), but even with that I just wanted to build fun systems — intercoms, doorbells, security systems, robots. From that I did more advanced electronics stuff with Arduino, and that's how I got introduced to real programming.
Snap Circuits looks awesome! LEGO + breadboarding

To date myself, for me it was the computer game The Incredible Machine, which was a Rube Goldberg physics puzzle game... in 1993 on DOS. ;)

Critically, the failure-iteration loop was tight, which really impressed "if at first you don't succeed, try try again" on my younger self.

https://m.youtube.com/watch?v=pTbSMKGQ_rU&t=27s