This blog is about Simon, a young gifted mathematician and programmer, who had to move from Amsterdam to Antwerp to be able to study at the level that fits his talent, i.e. homeschool. Visit https://simontiger.com

The video below is part of Daniel Shiffman’s livestream hosted by GROW Le Tank in Paris on 6 January 2019 about KNN, machine learning, transfer learning and image recognition. Daniel kindly allowed Simon to take the stage for a few minutes to make a point about image compression (the algorithm that Daniel used was sort of a compression algorithm):

Here is a different recording (in two parts) of the same moment from a different angle:

“I can see that your son has native speaker skills, but we still cannot give him a passing grade”, the English examinator told me in an apologetic tone of voice. She and her colleague at the Brussels examination committee had just finished their assessment of Simon’s oral English and brought Simon, a whole storm of emotions on his face, back to me in the waiting room.

“We were just wondering, does he speak Dutch? We weren’t sure he understood the tasks and they were written in Dutch”, — the examinator was sympathetic of Simon’s young age as most of the other kids taking the same test were about 6 years his seniors. As it turned out, the first task was to describe several photos of “criminals” (one of them with many piercings), the second task involved choosing two things that Simon would like to do from a list of recreational activities (the list included an escape room and a Stonehenge trip). “I just didn’t know what to say!” Simon was catching his breath in between the sobs. “It’s an impossible question, because I had to choose two things I like from a list where there wasn’t anything I liked!” The examinator suggested Simon could have said why he disliked those things. “If you don’t find something interesting you just don’t find it interesting, it’s a given fact! You can’t explain it!” – he told her in English.

Another fact is that Simon wouldn’t be able to perform these tasks in any of the three languages he speaks. Not because his vocabulary or grammar don’t stretch that far. I often hear him construct amazingly intact sentences, which I immediately record, like this one recently: “This is incredible! We’ve found a connection between a discrete problem, of what’s the smallest number that divides all of the numbers in a given sequence, to a continuous problem, of what is the fundamental frequency of a combination of sine waves. In other words, we found a discrete solution to a continuous problem!” Simon loves deep philosophical or scientific questions, but often cannot answer open questions lacking substance. He doesn’t care if you ask him to describe someone’s looks on a picture, it’s not important to him. He doesn’t know how to pick two things he likes from a list of things he doesn’t like. It’s just the way his mathematical brain is wired.

“Can I send you one of the many videos on Simon’s YouTube channel as an alternative proof of his excellent oral English skills?” I asked, still shocked at the absurdity of the situation. “Because I dare to say Simon speaks English better than any other student you have examined today”. The examinator agreed that I was probably right in my judgement but couldn’t accept anything else but a completed exam task.

Although distressed about what Simon had to go through, I can’t help feeling content with today’s scoop. What can provide a more obvious proof that exams don’t do a good job measuring one’s skill than this example of a 9 year old who gives hour-long science lessons on YouTube, speaks at grown-up creative coding meet-ups and is often mistaken for a native speaker, but doesn’t pass his oral English exam because he’s being asked questions that don’t interest him?

It wasn’t Simon who failed today, it was the exam that failed to measure his English. And this raises a whole lot of questions. Why is this system of measurements, that clearly doesn’t work for everyone, has become decisive in how our society views someone’s ability? And what is the use of spending so much money and nervous cells on something that doesn’t work?

Wouldn’t it be more fair towards both the students and anyone who honestly wants to know their level to actually look at what they can do with their knowledge in real life (their actual projects, videos of their social engagement) instead of the fake setting at the exam? Wouldn’t it be wiser to observe a student’s gradual progress in a given area, instead of stressing the students out and giving them the impression that it’s all about the examinator checking off that box and they can forget what they have learned the next day, because all that matters in our society is the passing grade?

“I’m so neutral about this”, Simon told me (in English) when he was lying in bed the same evening. “Because on the one hand, I kind of feel bad. And on the other hand, it’s so beautiful how we sort of accidentally taught them how exams can show false negatives or false positives. Because the exam showed a false negative. Even the examinators know it’s a false negative”.

Simon explains why the proof that root 4 is irrational is false and shows a couple more related theorems (he came up with) generalizing the relationship between the exponent and the factor of a number.

We were reading “17 Equations that Changed the World” late last night, the chapter about the wave equation. Simon got all excited about timbres (shapes of sound waves), that are essentially sine waves. He said he knew an alternative way to look for the fundamental frequency (the sin x wave):

“The smallest number that’s divisible by all the numbers in a sequence is the product of all those numbers divided by the greatest common divisor/factor of all those numbers. That’s the Chinese remainder theorem (or rather, a generalisation of it).

If you took a rational frequency and an irrational one and made them into waves, the waves would never ever ever meet, except for one point. So sometimes there’s no fundamental frequency. Because we need at least two points where the waves meet up to define a fundamental frequency.

Sadly, this happens most of the time. In fact, not even most. 100 percent of the time there’s no fundamental frequency. Technically, it’s an infinitely small chance that any number you come up with at random is rational! But fortunately for us, we can approximate the fundamental frequency here: use the two points that are closest to the waves meeting to get an approximate fundamental frequency. And it always works!

This is incredible! We’ve found a connection between a discrete problem, of what’s the smallest number that divides all of the numbers in a given sequence, to a continuous problem, of what is the fundamental frequency of a combination of sine waves. In other words, we found a discrete solution to a continuous problem!”

Simon, what does discrete mean?

“I’ll give you an example. The natural numbers, even though they are infinite, they are still discrete, because there are gaps between them. And a number in between those gaps is not a natural number anymore. A continuous thing however is for example like the real numbers. There’re no gaps. Because if there were gaps, any number in between those gaps was another real number”.

This is a behind the scenes video (Simon wasn’t even aware of me filming at first, but he always talks to himself when working out a proof, so that helps). The video shows Simon looking for the number z if sin(z) = 2. He watched this problem explained on the Blackpenredpen channel once, then marched into another room (where he has his whiteboard) and started trying to construct the solution on his own. His solution was partially based on what he saw in the working out shown by Blackpenredpen and partially he worked out the proof himself (and it just happened to coincide with that of Blackpenredpen). He only briefly consulted the explanation video three times while working on the proof. “My proof expanded some steps out so it’s clearer where I’m coming from,” Simon says.

Here is a picture of the work done:

And some pics of the working out in progress:

Simon at first made a mistake in his definition of ln(i):

But later he corrected himself, and that’s the part you can see in the video.

In AI there’s this concept of dimensionality reduction, which reduces a lot of dimensions to three or less dimensions (however you lose a lot of information through that). IQ tests are basically a very, very, very glorified version of dimensionality reduction.

DNA stores zetabytes of information (one zetabyte is already 1000 to the power of 7, a sextillion bytes). OK, 99%is just telling that you are a human, but there’s still very much left and, as you can probably see, it’s still way, way, way too much to be reduced to a single number.

My Times Tables Visualization Poster has arrived! Will probably present this at @CC_Amsterdam @ProcessingOrg Community Day Amsterdam! https://t.co/ChTg0eOLIn

Simon has made an enormous poster from his earlier animated version of the Times Tables Visualization! Simon is hoping to present this project at the Processing Community Day in Amsterdam in January 2019. The poster is already being printed!

Simon writes: This is a visualization for the times tables from 1 to 200.
Start with a circle with 200 points. Label the points from 0-199, then from 200-399, then from 400-599, and so on (you’re labeling the same point several times).

We’ll first do the 2x table. 2×1=2, so we connect 1 to 2. 2×2=4, so we connect 2 to 4, and so on.

2×100=200, where’s the 200? It goes in a circle so 200 is where the 0 is, and now you can keep going. Now you could keep going beyond 199, but actually, you’re going to get the same lines you already had!

For the code in Processing, I mapped the two numbers I wanted to connect up (call them i), which are in between 0 and 200, to a range between 0 and 2π. That gave me a fixed radius (I used 75px) and an angle (call it θ). Then I converted those to x and y by multiplying the radius by cos(θ) for x, and the radius by sin(θ) for y. That gave me a coordinate for each point (and even in between points, so you can do the in between times tables as well!) Then I connect up those coordinates with a line. Now I just do this over and over again, until all points are connected to something.

Unfortunately, Processing can only create and draw on a window that is smaller than a screen. So instead of programming a single 2000px x 4000px poster, I programmed 8 1000px x 1000px pieces. Then I just spliced them together.