I was inspired by this and created a version with customizable ball count, accessible code... and a speed slider, to satisfy the less patient among us.
I'm very impressed, this made my day (my month ?). Too bad your site lacks some nice video demos on the front page.
To other HN readers, look what I found in it's tutorial : https://www.youtube.com/watch?v=dkvB4nb8PXw
I agree, this article is well explained but it's not MCTS.
To be more accurate, this is Monte Carlo, and here it is applied to search the tree of game turn possibilities and doing stats on it. But Monte-Carlo Tree Search is a "reserved" name of a specific algorithm, involving more than what is done in the article : some kind of caching, and some optimisations.
In fact, it would be a great addition to this article to do a part 2, and explaining how to extend the code to do MCTS.
I imagine this two way trip would be a better MCTS presentation than the classic ones describing the algorithm step by step in one shot.
It would be very interesting to see proper MCTS applied to 2048. Monte Carlo Tree Search performs well on problems with linear reward. 2048 has exponential reward, with subsequent states having much higher tile scores. This nonlinearity tends to cause MCTS to fall into traps - one rollout will find a state evaluation with a much higher score, and will thereafter bias all subsequent rollouts to that same (potentially suboptimal) path. If there are clever ways around this, such as board evaluation heuristics that scale linearly, then I'd love to see them. In practice, a minimax approach that enumerates all successor states up to a particular depth has worked best for me.
I stumbled upon this old post from Iñigo Quilez, and this made my day. Especially because I did not know about the Babylonian multiplication, let alone its proof. The absence of explanation in the post made it into a nice puzzle, I had to figure things out by myself. Maths teaching should more often be like this kickstarted discovery...
I spent some time looking at the geometric 'proof' in the photo. Was still wondering why this method would have any advantage over our conventional way of multiplying numbers because squaring would need multiplication too. Then I realized that with a table of squares one could do the calculation quite easily. To calculate the product of any 2 numbers from 1 to 100 one would need the squares of the numbers from 1 to 200. Armed with this one can calculate the product of any two numbers from 1 to 100 (there are 10'000 such combinations) with the formula. Sweet!
Yeah, the algorithm is only thousands of years old but it's very useful on the 6502. See 'Fast Signed Multiply' at http://www.ffd2.com/fridge/chacking/c=hacking9.txt for an implementation in C64 3D routines.
It is also useful for other things. For example it shows that the product of two normally distributed random variables has the same distribution as the difference between two independent chi square variables.
True, that does remove the necessity of the table. However, I was checking how the Babylonians did it and the article that I read seems to indicate that they used base-60 tables. On a different note, does anyone know if this method has been exploited on CPUs without multiplication circuitry in the ALU?
Hi everyone, I'm the guy behind Silent Teacher. I just had the surprise to see my work on HN, in fact a colleague of mine published it without me knowing, I didn't have the chance to really explain the goal.
This is a side project, and the goal is not to teach how to code. I agree with several comments here, it's sometime confusing, it's short and minimalistic.
The real goal is far less ambitious. I just wanted people to catch a glimpse of what is coding. It's like stepping into un unknown world for a few minutes.
And it's not aimed at everybody. Some people are driven away by written explanations, or can feel patronized very quick, and I wanted to address that. Here, the first questions make you feel confident, then with tries and errors, by yourself (or apparently so) you understand a bit how this works.
The story behind this is : I was never able to explain how code works to my wife. She is math-o-phobic and she never gave me the chance to explain... just the fact of explaining something like this scares her away.
But one day, sitting next to her on the train, I opened my JavaScript console and began typing 3 + 4, then without a word I pointed the keyboard and screen to her... 20 minutes later we were doing functions and variables, without even a word.
This is how this project was born.
Sorry for those who where mislead by the title of this HN post. We have other tools currently in development to address code teaching (one more focused on code reading, one more focused on creativity, one more focus on JavaScript ...), and only when 3 or 4 of these will be published will we be able to teach properly to a larger audience.
Thanks for all the feedback today, I really appreciate it.
Do you have any demos or profiles of your other educational projects? I'm working on project that uses a pedagogy similar to the Silent Teacher, I'm always curious to see what other people are doing in that area.
No, but there are works in progress and we hope to release some very soon.
If you want to take part in beta tests, you can leave your email there on the two "coming soon" projects here :
http://www.toxicode.fr/learn
Nice article ! One comment : on the "Selling Time Over Money" part, it seems to me that some business manage to do the opposite.
Take Ikea, for instance.
Typically you buy some furniture there, hoping to spend little money in exchange of giving up your sunday afternoon precious time.
If you take into account the time spent assembling the furniture, with a reasonable hourly rate, some furnitures there are not so cheap anymore.
The Ikea business implies that sometimes we prefer money over time.
https://explorers.toxicode.fr/?remoteWorkspace=pong-war