I did robots for elementary age kids for 3 summers now. Now, I only have them for one week of 2 hours a day, so an ongoing thing run as an after school program might work better, but based on my experience, I think it would be rather painful.
Right up front you need to understand that there's a big difference between working with your kid or your kid and their 2-3 friends and working with a room full of kids that don't really know you. Kids no longer have built-in respect for adults. They'll run right over you and treat you like a substitute teacher. It takes a lot of work to get and maintain control of a group of elementary age kids, especially around exciting stuff like robots. Parents being there is a mixed bag of stuff. Some are great and a few will make you nuts.
I've tried Lego Mindstorms and even just taking the top 2-3 kids and setting them up with a (original not NXT) Mindstorms kit didn't work. They didn't have the patience to follow build instructions for more than 15 minutes. They cobbled together some "stick a wheel on a motor" platforms and crashed them into each other. That's about as far as I could get them in 2 days so I've never gone back to Mindstorms in that group. I would never try Mindstorms with the large group of all the kids in our camp, unless we planned on the kits being "expendable". Too many pieces go missing.
I've tried Vex and that's worked somewhat well. I have seveal of the original Vex kits and we've only used them in radio-control mode. We've done mostly robo "sports" like soccer, obstacle courses, and "just smash into each other". Each kit doesn't come with enough to build much of an arm, but you can make a single servo flipper / weapon with something like a cardboard scoop. Or put a kill button on top and let them smack each other's kill button. I haven't had elementary kids building anything with Vex parts, but they did do cardboard work like scoops and "armor". The Vex kits held up well. One even got squashed hard by a table and I was able to hammer all the bent metal back mostly to the original shape.
There is a newer, significantly cheaper Vex kit that's mostly plastic and comes with a gripper arm and a wireless camera. If I were to go shopping now, that's what I'd try.
I've also tried teaching anything resembling programming, algorithms, etc. and have made no progress. I tried some activities from "Computer Science Unplugged", an ebook sold online. It's got hands-on activities for kids like having them bubble sort themselves. It looks neat, but in practice I had a real control problem when I tried it. It might work better in a more controlled, longer-term setting, like a classroom.
We also tried some scratch-built bots using cheap motors and eventually salvaged toys, but those never worked that well. If you don't have a geared-down motor there isn't much you can do. You can set up motors to just spin the shafts as the wheels so that slows them down, but you still basically have a dumb, fast bug that just runs. Adding logic and sensors to it is possible, but pretty far beyond anything I've been able to teach to kids that age.
We did watch the "Great Robot Race" DARPA challenge video from Nova. Two years in a row it kept the kids fairly captivated if I split it into 15 minute segments and we discussed it in between.
For year two, one of the activities we did was "Robot Arena 2", a PC game version BattleBots. You can do construction, including picking different weapons, wheels, motors, etc. It was a rough start, but once we had a few kids into it, it was a real winner. It runs on pretty old PCs and is only $20 if you can find it. Unfortunately we could never get network play working reliably.
Now, through all of this, I've had my own elementary-age daughter working on both Mindstorms and Vex. She's been perfectly capable of building stuff with Vex, following the Mindstorms builds, and understanding the algorithms for the built-in Mindstorms programs. I also know elementary age kids do First Lego League. So I know elementary-a
For years, Mythical Man Month was required reading in Gus Baird's freshman class at Georgia Tech. He also required The Psychology of Computer Programming (Weinberg), which is ok. I think we also had to read The Soul of a New Machine (Kidder), which is great.
My list would include Programming Pearls, The Design of the Unix Operating System (Bach), Knuth's books, the big white MIT "CLR" algorithms book (Cormen), The Turing Omnibus, Code Complete (McConnell), and a CRC math reference. Maybe the Pocket Ref.
I started with 8-bits like the Atari 400 and C-64, but I don't think typing in BASIC games (or pages and pages of hex dumps) from a magazine works for kids today. Then I moved on to Turbo Pascal and like everyone else in the late 80s, wrote a Tetris game. Then things like C-robots and TinyMUD got me going in C.
These days, I'd point a kid to something like Microsoft XNA or Silverlight games, using free downloads of Visual Studio Express. Java games, especially for mobile, might be interesting too, but the Microsoft stuff is a little more kid-friendly.
New business model: offset the high cost of CD-Rs (and CD-RWs) by letting AOL and others imprint their logos on them. Or have free ones that have a session already burned with AOL software.
One blank CD-R is enough to hold a 1-hour episode...
Similar use here, except I encode shows for Realplayer since I watch most of my TV while at the computer. I can easily put 6 hours on a disk at a quality that's fine for me.
This is funny, because just this morning I was reading how Microsoft is expanding their services and consulting branch. Just like Oracle, IBM, SAP, and everyone else that have already figured out that they don't make that much money by selling software.
Isn't this exactly what rms said umpteen years ago? Free the software. If you want to make money, sell support or other services.
Real & MS & QT give away the client, then charge big $$ for encoding/server software...
Of those three, I use Real's stuff most of the time. They at least attempt to provide players for platforms other than Windows. A lot of people stream RealMedia for free, especially for low demand applications.
You can download a free version of their encoder (Real System Producer Basic) if you search the web site hard enough (the bottom of this page: http://www.realnetworks.com/developers/index.html. The limitations don't seem that severe. The worst is that the encoded file intentionally won't play with older versions of the player. Hint: if you search hard enough, you can find older versions of Real Producer Basic that help avoid that problem.
Streaming Real video or audio over HTTP is free and works from most web servers. To do it, you name the actual RealMedia file with a.ra extension and built a text file with a.ram extension. Inside that text file, put the full URL to the.ra file. Then link to the text file. Sure it's supposed to be less efficient than "real" streaming, but most people don't care.
The FCC's e911 regulation means that mobile phones will now give their location using GPS coordinates...
To pick a bone, this is wrong. Mobile phones won't come with GPS receivers. The cellular system provides a rough location based on your signal strength into the tower face(s). The MAN can locate you (ask Kevin Mitnick), but not using this system.
I haven't seen a BSOD on our Win2000 Pro installs yet, but I have seen it crash hard...
Same here. I abuse Win2000 Pro hard all day long and it keeps running. In more than 6 months I've only had one unexplained crash. In that time I've had maybe 4 explainable crashes (all due to RealPlayer and my video driver). Of course, in all that time my OpenBSD box only went down once and that was by my choice (due to a 2 hour power outage).
Sentry makes at least two models of fire-resistant boxes for protecting media: a small ($255) and large ($410).
Personally, I haven't been able to spring for one of those and I keep mine in a cheap ($49) Sentry fire safe with a four-leaf clover and rabbit's foot.
Having worked a lot of fire and flood scenes, here's some advice that can help around the house:
It's pretty rare for a average house to burn to the ground. Apartment buildings seem to burn down easier than a house, but they are still fairly rare. A mobile home is much worse -- don't live in one.
Keep important stuff like that low to the ground, but not so low that it floods. (It seems like everyone that lives in low-lying areas keeps their family pictures in the bottom drawer of the dresser.) I've seen cases where smoke detectors and everything plastic melted in the top 3 feet of a room, but the bottom half is almost untouched (heat-wise).
Keep doors shut. I've seen fires where the core part of the house was decimated (hole in the roof, interior walls burned through) but the kid's room barely smelled of smoke because the door was shut.
As for the top causes of fires: Don't light candles. Don't cook french fries. Don't smoke, especially in bed. Don't use those $20 halogen lamps where they can tip over (or get pushed by the kids). An please, if you have to look under the bed for something, buy a flashlight -- don't use a cigarette lighter.
I knew a guy that used to have some box that (if I remember correctly) output it's own weird sound sequence for headphones and had blacked-out glasses with LEDs mounted in them that flashed in all sorts of patterns. I think it was supposed to be a relaxation device.
Now if someone would build blinking LED sunglasses into a portable MP3 player (or as an addon), we'd be set.
One of my favorites is Ice Cream Source. For just $59.94 you can get six pints of Ben & Jerry's delivered. It seems like a wacked business model, but they seem to still be going.
"Heisenbugs", as you call them, are almost always the result of memory management bugs.
Absolutely. In about 75% of the cases I've seen they were from clobbering something on the stack. In one case I built malloc() and free() wrappers and preceeded every array or memory reference with a (#ifdef DEBUG) check to make sure the index was in bounds. I found dozens and dozens of cases where the indexes went out of bounds.
One of my favorite is code sort of like this:
main()
{
int x[100];
int i;
for ( i=0; i != 101; i++ )
{
x[i] = i * i;
}
}
Where overflowing the array steps on the loop index.
Another case I saw that my team chased off and on for weeks was one where we didn't initialize one field of a time-related structure.
It probably doesn't impact anyone these days, but we spent an hour one day stripping some 16-bit Windows or DOS code down to just a dang printf("Hello world."); and it cored inside the printf(). Finally we noticed that there were a lot of large arrays declared locally in main(), so the stack was almost completely used up. The next function call would core no matter what.
The NYTimes article states "... a cost of up to $100 million." My question is, how in the world can this cost $100 million? Even as a 10-year plan, that's $10 mil a year. This (online lecture notes) seems very similar to what most professors at most universities and colleges already do. Granted, the cost of video lectures might bump this up, but I'm sure VoyeurDorm and other porn sites spend a lot less than this and (despite the "dorm" in their name) don't have the benefit of student labor.
... I see paired programming as fairly wasteful of my time.
Whenever I've done this, we actually work on two different projects (on two machines) at the same time. We'll both code for until we hit a bump or get something finished, etc., then we'll look over the other person's code.
I did robots for elementary age kids for 3 summers now. Now, I only have them for one week of 2 hours a day, so an ongoing thing run as an after school program might work better, but based on my experience, I think it would be rather painful.
Right up front you need to understand that there's a big difference between working with your kid or your kid and their 2-3 friends and working with a room full of kids that don't really know you. Kids no longer have built-in respect for adults. They'll run right over you and treat you like a substitute teacher. It takes a lot of work to get and maintain control of a group of elementary age kids, especially around exciting stuff like robots. Parents being there is a mixed bag of stuff. Some are great and a few will make you nuts.
I've tried Lego Mindstorms and even just taking the top 2-3 kids and setting them up with a (original not NXT) Mindstorms kit didn't work. They didn't have the patience to follow build instructions for more than 15 minutes. They cobbled together some "stick a wheel on a motor" platforms and crashed them into each other. That's about as far as I could get them in 2 days so I've never gone back to Mindstorms in that group. I would never try Mindstorms with the large group of all the kids in our camp, unless we planned on the kits being "expendable". Too many pieces go missing.
I've tried Vex and that's worked somewhat well. I have seveal of the original Vex kits and we've only used them in radio-control mode. We've done mostly robo "sports" like soccer, obstacle courses, and "just smash into each other". Each kit doesn't come with enough to build much of an arm, but you can make a single servo flipper / weapon with something like a cardboard scoop. Or put a kill button on top and let them smack each other's kill button. I haven't had elementary kids building anything with Vex parts, but they did do cardboard work like scoops and "armor". The Vex kits held up well. One even got squashed hard by a table and I was able to hammer all the bent metal back mostly to the original shape.
There is a newer, significantly cheaper Vex kit that's mostly plastic and comes with a gripper arm and a wireless camera. If I were to go shopping now, that's what I'd try.
I've also tried teaching anything resembling programming, algorithms, etc. and have made no progress. I tried some activities from "Computer Science Unplugged", an ebook sold online. It's got hands-on activities for kids like having them bubble sort themselves. It looks neat, but in practice I had a real control problem when I tried it. It might work better in a more controlled, longer-term setting, like a classroom.
We also tried some scratch-built bots using cheap motors and eventually salvaged toys, but those never worked that well. If you don't have a geared-down motor there isn't much you can do. You can set up motors to just spin the shafts as the wheels so that slows them down, but you still basically have a dumb, fast bug that just runs. Adding logic and sensors to it is possible, but pretty far beyond anything I've been able to teach to kids that age.
We did watch the "Great Robot Race" DARPA challenge video from Nova. Two years in a row it kept the kids fairly captivated if I split it into 15 minute segments and we discussed it in between.
For year two, one of the activities we did was "Robot Arena 2", a PC game version BattleBots. You can do construction, including picking different weapons, wheels, motors, etc. It was a rough start, but once we had a few kids into it, it was a real winner. It runs on pretty old PCs and is only $20 if you can find it. Unfortunately we could never get network play working reliably.
Now, through all of this, I've had my own elementary-age daughter working on both Mindstorms and Vex. She's been perfectly capable of building stuff with Vex, following the Mindstorms builds, and understanding the algorithms for the built-in Mindstorms programs. I also know elementary age kids do First Lego League. So I know elementary-a
For years, Mythical Man Month was required reading in Gus Baird's freshman class at Georgia Tech. He also required The Psychology of Computer Programming (Weinberg), which is ok. I think we also had to read The Soul of a New Machine (Kidder), which is great.
My list would include Programming Pearls, The Design of the Unix Operating System (Bach), Knuth's books, the big white MIT "CLR" algorithms book (Cormen), The Turing Omnibus, Code Complete (McConnell), and a CRC math reference. Maybe the Pocket Ref.
These days, I'd point a kid to something like Microsoft XNA or Silverlight games, using free downloads of Visual Studio Express. Java games, especially for mobile, might be interesting too, but the Microsoft stuff is a little more kid-friendly.
I worked with a guy that did a Hawaiian shirt drive of shame.
Ten-Tec has radio kits. The two regenerative shortwave receivers are fun. Vectronics also has some non-ham radio kits.
I once heard a 3.5" disk called a "stiffy".
"Nobody has yet circumnavigated the moon in a rocket space ship, but the idea is not laughed down."
Some would say this is a big hit -- that we actually never went to the moon.
New business model: offset the high cost of CD-Rs (and CD-RWs) by letting AOL and others imprint their logos on them. Or have free ones that have a session already burned with AOL software.
One blank CD-R is enough to hold a 1-hour episode...
Similar use here, except I encode shows for Realplayer since I watch most of my TV while at the computer. I can easily put 6 hours on a disk at a quality that's fine for me.
One word: Dilberito.
"From Dilbert Creator Scott Adams comes a totally new, delicious meatless, hand-held meal that will change the way you think about convenience foods."
There are some interesting artifacts of the process. Look at the water in the second photo set. Or the top half of the pole.
This is funny, because just this morning I was reading how Microsoft is expanding their services and consulting branch. Just like Oracle, IBM, SAP, and everyone else that have already figured out that they don't make that much money by selling software.
Isn't this exactly what rms said umpteen years ago? Free the software. If you want to make money, sell support or other services.
Real & MS & QT give away the client, then charge big $$ for encoding/server software...
Of those three, I use Real's stuff most of the time. They at least attempt to provide players for platforms other than Windows. A lot of people stream RealMedia for free, especially for low demand applications.
You can download a free version of their encoder (Real System Producer Basic) if you search the web site hard enough (the bottom of this page: http://www.realnetworks.com/developers/index.html. The limitations don't seem that severe. The worst is that the encoded file intentionally won't play with older versions of the player. Hint: if you search hard enough, you can find older versions of Real Producer Basic that help avoid that problem.
Streaming Real video or audio over HTTP is free and works from most web servers. To do it, you name the actual RealMedia file with a .ra extension and built a text file with a .ram extension. Inside that text file, put the full URL to the .ra file. Then link to the text file. Sure it's supposed to be less efficient than "real" streaming, but most people don't care.
The FCC's e911 regulation means that mobile phones will now give their location using GPS coordinates...
To pick a bone, this is wrong. Mobile phones won't come with GPS receivers. The cellular system provides a rough location based on your signal strength into the tower face(s). The MAN can locate you (ask Kevin Mitnick), but not using this system.
If you've watched any american television or movies in the past 20 years you know that a CB radio or handheld can talk to anyone else with a radio.
I haven't seen a BSOD on our Win2000 Pro installs yet, but I have seen it crash hard...
Same here. I abuse Win2000 Pro hard all day long and it keeps running. In more than 6 months I've only had one unexplained crash. In that time I've had maybe 4 explainable crashes (all due to RealPlayer and my video driver). Of course, in all that time my OpenBSD box only went down once and that was by my choice (due to a 2 hour power outage).
No. Really, go look up LBJ. He wasn't President in 1941.
But that's kind of moot in this thread. LBJ didn't run for reelection. "I shall not seek, nor will I accept, my party's nomination..."
My wife was born on 4/5/67. Her grandmother was born on 12/13/14. Spooky.
Sentry makes at least two models of fire-resistant boxes for protecting media: a small ($255) and large ($410).
Personally, I haven't been able to spring for one of those and I keep mine in a cheap ($49) Sentry fire safe with a four-leaf clover and rabbit's foot.
Having worked a lot of fire and flood scenes, here's some advice that can help around the house:
It's pretty rare for a average house to burn to the ground. Apartment buildings seem to burn down easier than a house, but they are still fairly rare. A mobile home is much worse -- don't live in one.
Keep important stuff like that low to the ground, but not so low that it floods. (It seems like everyone that lives in low-lying areas keeps their family pictures in the bottom drawer of the dresser.) I've seen cases where smoke detectors and everything plastic melted in the top 3 feet of a room, but the bottom half is almost untouched (heat-wise).
Keep doors shut. I've seen fires where the core part of the house was decimated (hole in the roof, interior walls burned through) but the kid's room barely smelled of smoke because the door was shut.
As for the top causes of fires: Don't light candles. Don't cook french fries. Don't smoke, especially in bed. Don't use those $20 halogen lamps where they can tip over (or get pushed by the kids). An please, if you have to look under the bed for something, buy a flashlight -- don't use a cigarette lighter.
I knew a guy that used to have some box that (if I remember correctly) output it's own weird sound sequence for headphones and had blacked-out glasses with LEDs mounted in them that flashed in all sorts of patterns. I think it was supposed to be a relaxation device.
Now if someone would build blinking LED sunglasses into a portable MP3 player (or as an addon), we'd be set.
The kid's father says "Without 2600 (he would) probably be one of those pot-smoking, crack-sniffing guys...
Read the article again. The kid (Patrick) said that, not his father (Michael):
One of my favorites is Ice Cream Source. For just $59.94 you can get six pints of Ben & Jerry's delivered. It seems like a wacked business model, but they seem to still be going.
"Heisenbugs", as you call them, are almost always the result of memory management bugs.
Absolutely. In about 75% of the cases I've seen they were from clobbering something on the stack. In one case I built malloc() and free() wrappers and preceeded every array or memory reference with a (#ifdef DEBUG) check to make sure the index was in bounds. I found dozens and dozens of cases where the indexes went out of bounds.
One of my favorite is code sort of like this:
main() { int x[100]; int i; for ( i=0; i != 101; i++ ) { x[i] = i * i; } }
Where overflowing the array steps on the loop index.
Another case I saw that my team chased off and on for weeks was one where we didn't initialize one field of a time-related structure.
It probably doesn't impact anyone these days, but we spent an hour one day stripping some 16-bit Windows or DOS code down to just a dang printf("Hello world."); and it cored inside the printf(). Finally we noticed that there were a lot of large arrays declared locally in main(), so the stack was almost completely used up. The next function call would core no matter what.
The NYTimes article states "... a cost of up to $100 million." My question is, how in the world can this cost $100 million? Even as a 10-year plan, that's $10 mil a year. This (online lecture notes) seems very similar to what most professors at most universities and colleges already do. Granted, the cost of video lectures might bump this up, but I'm sure VoyeurDorm and other porn sites spend a lot less than this and (despite the "dorm" in their name) don't have the benefit of student labor.
Whenever I've done this, we actually work on two different projects (on two machines) at the same time. We'll both code for until we hit a bump or get something finished, etc., then we'll look over the other person's code.