I built my first serverless robot and won $1000(towardsdev.com) |
I built my first serverless robot and won $1000(towardsdev.com) |
I took Robocode[1], made a basic Robot class that the kids could easily extend, and then taught them just enough logic and syntax so they could have their robots battle their classmates'.
It was a huge success. We had to close the door to the classroom because the kids were so loud, cheering their robots on.
Whenever a kid was called by the teacher to do their one-on-one, they protested "one more minute, I need to improve my robot!"
In September, my daughter starts university in software engineering; mission accomplished! ;)
Then in (conventional) high school I hosted a workshop on beginning Python (with Turtle) and half the people couldn’t understand why x=2 after “x=1” and “x+=1”.
I won a RobotWars competition in 1984. I got a T-Shirt. Not $1000. :-/
Later I discovered CoreWar [2] and enjoyed that until I learned all of the main classes of algorithms/bots had been identified.
Never heard of Faas Wars but now I'm excited to see what it is like. These programming-based games are way more fun, IMHO, than hackathons.
The evolvers sometimes break the bomber-scanner-paper stereotype. They just don't scale well to normal sized cores.
I wonder if one could make a better ML system than genetic programming for creating CoreWar warriors. Perhaps a neural net connected to a differentiable SAT solver?
That's interesting that you're familiar with how it scales to different cores; I've never played around with the core parameters that much./
In fact, it's been about 12 years since I last played around with CoreWars, so I'm not up on the newest theories.
It would be interesting to see how a genetic algorithm fares against current ML strategies. I'm completely in the dark as to how AlphaGo/AlphaZero work, I only know classifiers/SSD/autoencoders. Would be fun to learn with this environment tho.
Don't expect too much -- I just made this for fun :)
I've been waiting to see if someone implements an AI bot that's trained on all the bots in the competition but maybe you just don't need to.
And for obvious reasons empirical models are also generally made to be understood by humans, though there at least you can argue that the underlying reality was not designed to be intelligible (and frequently isn't hence why we've got shortcuts like thermodynamics to reason about chaos).
Why do you think that situation would be different for any other kind of activity that humans take part in?
It's simply the combinatorial explosion: it's easier to find a surprising and good program in ten lines with pointers limited to a max value of 800, than with hundred lines and a pointer max value of 8000.
x+=1 just complicates the situation; use x=x+1 to avoid adding more special rules for now.
This stuff is teachable, but it doesn't help that the framework is very different than the similar-looking expressions from math class, where "x=1" followed by "x=2" is not allowed.
The problem with learning to program in a classroom environment is that one kid may find exercise one difficult, another kid may find exercise three difficult, etc, the probability that any kid will get 'left behind' at some point is high. Classrooms are pretty bad places for learning.