We have been developing chatbots to do specific ideas, one to continue to carry on a conversation with a human, to order pizzas. This has been interesting as we use http://motion.ai for students to develop in.
However, I felt something was missing, and I came across this last night. http://www.cs4fn.org/teachers/activities/sweetcomputer/sweetcomputer.pdf The Sweet Computer.
How can a computer learn from experience?
The class challenge a machine made of sweets to the game of Hexapawn (a little like a game of chess with only pawns and on a 3x3 board). At the start the machine only knows the basic rules of the game. The more it plays the better it gets: when it loses the class punish it by eating its sweets allowing it to learn from its mistakes.
Using the game Hexapawn, students use machine learning to develop a machine that will always win. 1.5Kg of Jelly beans later the students have developed a machine that always wins. The thinking, thoughts, challenges that I saw today, the "will this work" statements, the "I want to try this", "I want to test this idea" were statements that showed engagement in the learning. The frustration as one student would beat the machine, however the machine was learning so when the next student tried the same combination, they lost. Watching students as the explained the rules of the game I saw students communicating clearly, through words as well as actions.
Note: the colours in the pdf seem to be incorrect
• 5 red sweets • 11 yellow sweets • 13 purple sweets • 12 brown sweets • 13 blue sweets
• 5 red sweets • 11 yellow sweets • 13 purple sweets • 12 orange sweets • 13 blue sweets
Also problem solving with the students as we worked through the instructions, while text is a great form for communication, pictures would have helped show layout of the cards. Also using better colours in the task of the beans, I have still to figure out why brown jellybeans exist, as I have yet to see that as a colour in the packet.
I must say that this was an enjoyable lesson for many of the students and others around as Jelly Beans were handed to the winners, as well as losers.
What is a programming about?
How can computers win at games?
Explore programming without worrying about programming languages and investigate how a computer is able to win at board games like chess, by writing instructions to play perfectly at noughts and crosses followed by a tournament to find the best.
Maybe an extension could be to 3d print the objects required to play? or lasercut pieces and a board...