Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re^2: How to introduce 8 year olds to (Perl) programming?

by blokhead (Monsignor)
on Apr 26, 2005 at 00:06 UTC ( #451392=note: print w/replies, xml ) Need Help??

in reply to Re: How to introduce 8 year olds to (Perl) programming?
in thread How to introduce 8 year olds to (Perl) programming?

This is a really great idea. In fact, we did a very similar thing in my grad-level intro to AI course:

One volunteer was the "brain", one volunteer was the "eyes", and one volunteer was the "robot". Both the brain and the robot volunteers were blindfolded. A bright red box was hidden in the front of the lecture hall, and the task was to get the robot to pick it up.

The brain could only do two things: ask simple yes/no questions to the eyes (ie. is the ball straight ahead? is it less than 10 degrees to our left?), and command the robot to move with simple commands (i.e, turn left 10 degrees, move forward until I say stop, put arms out, move your arms together).

This was a whole lot of fun (even for tired college students), and the professor says that no group has ever successfully gotten the box ;) The lesson was that even with the most sophisticated visual sensors and robotic movement capabilities, the "brain" part of AI is really hard.


Another example for a hands-on activity is to build a sorting network. Have some students be gates and some students be inputs. The input students are each holding a number written on a card. The gate students decide whether the smaller input goes to their left or right. The students will be amazed that no matter how they go into the network, they seem to end up in sorted order at the end.

If you want to get more theoretical than just the basics of programming, ask them whether the sorting gate is correct for all possible inputs. How would you prove it?


  • Comment on Re^2: How to introduce 8 year olds to (Perl) programming?

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://451392]
[choroba]: but undef %hash and %hash = () both work, too, but the first one keeps the memory allocated, while the latter makes it available for other parts of the program.
[choroba]: iirc
[perldigious]: karlgoethebier: Well it is a pretty old and complicated (for me) bit of code I wrote (poorly by my current standards), so I'm expecting everything to break when I add the scoping and find out what else is undesireably scope changed. :-)
[perldigious]: Ah, thanks choroba, that sort of thing was precisely what I was wondering when I asked.
[perldigious]: I didn't want to tie up memory unecessarily basically, I wanted to "delete" it specifically to free it up, and wasn't sure I was even accomplishing that.
[stevieb]: perldigious You should start by writing some unit tests. That'll ensure current functionality doesn't break with changes.
[choroba]: unit tests++

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (6)
As of 2017-07-21 19:55 GMT
Find Nodes?
    Voting Booth?
    I came, I saw, I ...

    Results (335 votes). Check out past polls.