Halloween and holiday money spent | 万圣节及其他节日的花费

Today in class Emma asked how much money people spent on Halloween every year.   So, the class went on doing research on this question.

Here are what the children have found out:

People spent about $6.9 billion on Halloween each year. That’s a lot!   But why do people spent so much money on Halloween?!

The wisest answer among us may actually be children, whose uncluttered minds spoke the following super impressive and honest words (credit to Vickie, our little teacher and author):

If people didn’t spend so much money on Halloween, then we could use all that money to improve buildings, roads, the Navy, Army, Air Force etc.  Plus, why don’t the people save the money for retirement or to just to pay off their college student loan or mortgage.

Later in the class Jonathan asked how much do people spend on other holidays. We started making a list of Holidays and about how much dollars they spend each year.

  • Halloween: 6.9 billion
  • St.Patrick’s day: about 4.6 billion
  • Valentines day: about 19.7 billion
  • Mothers day: about 21.4 billion
  • Fathers day: about 16 billion
  • 4-Day Black Friday Weekend: 5.7 billion
  • Christmas: 465 billion
  • 4th of July: 6.7 billion

That’s a lot of money spent on holidays!!  We will discuss more in the next class.

Use snippets to code faster | snippet 加速编程

Until NeuralLink or other developments that can help us bypass typing all together, we want to find ways to save ourselves time from typing code.   Using snippet is a must for children, who may not be great at typing.   Here is how to do it in Sublime Test 3 (ST) and Visual Studio Code (code).

Sublime Test:
Tools – > Developer -> New Snippet.

VS Code:
Shift + Control + p

Write the snippet:

Snippets are json files. Use this web app, or some packages, or write json if you prefer to put the code into the json format.

Explaining .json snippet in VS Code:

  • The first set of “” encloses the name of the snippet (call it anything you like).
  • Prefix defines a prefix used in the IntelliSense drop down. For example, if you have a snippet for plotting, you may want to prefix it with “plot”.
  • body is the snippet content.
  • Note that: $1, $2 for tab stops
  • Description is the description.  When you start typing the prefix of a snippet, its description will come up.

The white lion | 白狮子

Today in class we talked about the story called “The White Lion”.    The young minds remember and tell that story so well.

The story is about a little white lion.

The story began in a dark night where the white lion and his big brother were waiting for their mother to come back with dinner.  They were small cubs.    The brother of the white lion went to see if their mother was close by.

But a snake bit his brother and ate him.  The little white lion ran as fast as he could from the snake.  He got lost so he just climbed a tree to rest in for the night.  Meanwhile in a village close by villagers were running out of food. The villagers sent a boy to go to the woods to look for food.
More

Our cofounder’s new book release

We are really proud of our co-founder(联合创始人 lián hé chuàng shǐ rén), Sarah Chen, for her new book release, which is now public.   Congratulations!

Her book is available in various outlets:

Here is her pre-release announcement on LinkedIn in July this year.

 

 

Digital currency | 数字货币

DC/EP 是 Digital Currency/Electronic Payment.

An important piece of recent financial news that you might have missed is that the Chinese central bank (央行) has issued its own digital currency, saying that its design is similar to Facebook’s proposed cryptocurrency Libra.

Digital currency is a big deal.

It not only affects how people go about their daily lives, but also world politics.

For example, we know that the United States sanctions certain countries by blocking them from the banking system. But what if these countries and the rest of the world start to use digital currency as the world currency instead of relying on the US dollar?

That would be really bad for the US.

For the young, it is time to learn how DC and EP work, and be ready for change.

ChineseCentralBankDigitalCurrenyDesgin

秋天好 | Autumn is good

Do you like fall?  We talked about autumn (qiū)(tiān) in this weekend’s Chinese lesson.

(qiū)(tiān)(dào)(qiū)(tiān)(hǎo)
(lán)(lán)(tiān)(kōng)白(bái)(yún)飘(piāo)
(bǎo)(bǎo)(tái)(tóu)(hā)(hā)(xiào)
magic math mandarin

Fall is here.  Fall is good.
Blue sky and white clouds.
The baby looks up and laughs.

Besides 中文, we are also working with other organizations to help children with computer programming 编程.

极客星晨少儿编程

Decision trees | 决策树 jué cè shù

Today, we focused our the class on decision tree. Decision tree is a way to organize data.   You can look at it this way: you ask a bunch of questions and make a bunch of decisions, and organize data based on these decisions.

For example, if our data consists of colors and shapes of 3 pieces of fruits. We have 1 yellow apple, 1 red apple and a yellow banana. We have two features: shape and color.

By organizing our data, we can identify types of fruit. We go through our data on shape and color one by one. If we first organize our data by color, we know that will incorrectly group the yellow apple with the yellow banana. But if we first organize our data by shape, that will right away group apples and banana separately. So we organize this data by shape, and then by color (if we want to make a distinction between yellow apple and red apple).
Magic Math Mandarin
The way to organize data may be (highly likely) different for another dataset of fruits. But you get the point: we organize data to best group things. In each step of the way, our data gets more organized. The “energy distribution” has become lower entropy.

That was a classification tree model.

When we have lots of decision trees for different random parts of a larger data, we have the so-called “random forest” 随机森林 model, originated by Leo Breiman.

We showed in class how to code a decision tree from scratch.  Here is a shorter version using Python sklearn library.

 

Entropy | 熵 shāng

Nothing is lost, nothing is created, everything is transformed.
― Antoine Lavoisier (August 1743 – 8 May 1794)

Unlike before, we started the class today with a quote. This is because it is really difficult to talk about entropy, and we made many analogies (such as water flows from high to low, a mirror broken never, or almost never, returns to whole again) to bring our attention to how things work in daily life that we have taken for granted.

Some theory/hypothesis says that the universe started with Big Bang, a state with very low entropy. There are many states of high entropy than low entropy (imagine 10…000 to 1). So we will have to cycle through lots of high entropy states before it is low again. Well, we only have barely touched the topic. Whereas our true goal is to talk about the so-called decision tree model, which we will cover tomorrow.

To help you remember the word “entropy” and its meaning (as if we knew!), “en” comes from “energy”.  “tropy” means “transfom”, and comes from Latin.

Entropy is a measure of the number of possible ways energy can be distributed in a system.

By the way, Lavoisier 拉瓦锡 was a great chemist.

Tycho Brahe and Johannes Kepler | 第谷·布拉赫 和 约翰尼斯·开普勒

In today’s class we deviated from our normal computer work and went in further on one of the stories told by Terence Tao in the “Cosmic Distance Ladder” video.  This particular story was about Tycho Brahe and Johannes Kepler.

Statue of Johannes Kepler (left) and Tycho Brahe (right) in Prague

It was a very important story of data and analysis.

Tycho Brahe and Johannes Kepler had totally disparate backgrounds and temperaments.

In spite of this, Tycho’s painstaking and detailed observational data of the planet Mars, combined with Kepler’s mathematical genius, allowed Kepler to derive the three laws of planetary motion. Both Tycho Kepler’s 3 Laws of Planetary Motion and Kepler made significant contributions to the change in the prevailing world view of a geocentric universe. It was the beginning of a systematic study that transformed Medieval thinking – alchemy became chemistry and astrology led to astronomy.

https://chandra.harvard.edu/edu/formal/icecore/The_Astronomers_Tycho_Brahe_and_Johannes_Kepler.pdf

Link for those students who can read in Chinese:
https://baike.baidu.com/item/约翰尼斯·开普勒/973574?fromtitle=%E5%BC%80%E6%99%AE%E5%8B%92&fromid=158768

Logit transform | 分数对数转换

After we discussed logarithm (‘log’) last week, we explored a bit on some commonly used methods that have log embedded in them.   For example, the logit function, or logit transform (using the “natural” logarithm).   We explained its definition by the following Python code.

>>> epsilon=0.001
>>> def logit(c):
>>>  d = np.log((c+epsilon)/(1+ epsilon-c))
>>>  return d

The following is the inverse, which is to bring what was transformed back to what it was before.

>>> def inverse_logit(a):
>>>  b = ((1+ epsilon)*np.exp(a) – epsilon)/(np.exp(a)+1)
>>>  return b

>> print(logit(0.1)) #-2.1883847407670785
>>> print(inverse_logit(logit(0.1))) #0.09999999999999999

It is much more revealing on what the logit transform is doing by looking at some pictures of how this works.  See how fast when it is transformed!   Why it is stretched instead of being shrunk?  We know that taking log is to do division multiple times (recall log10 of a number is how many times it needs to divide by 10 in order to become 1).     But when it applies to numbers between 0 and 1, it gives us the opposite effect.  A positive small number less than one has to divide by 10 negative times to become 1.  For example, 0.01 needs to be divided by 10 negative two times to be restored to 1.  That’s why you see that y axis we have negatives.

On the other hand, we also have positives in the y-axis.  That’s because about half of the numbers (c+epsilon)/(1+ epsilon-c) (the odds) are large positive numbers.  Play around with it and you will surely get it.

Magic Math Mandarin

>> x = np.linspace(0,1,1000)
>>> y = logit(x)
>>> plt.scatter(x=x, y=y, alpha=0.3)
>>> title =”logit transform”
>>> plt.title(“%s”%title)
>>> plt.xlabel(“numbers between 0 and 1 (inclusive”)
>>> plt.ylabel(“after logit transform”)
>>> plt.xlim(-6, 6)
>>> plt.ylim(-6, 6)
>>> plt.gca().set_aspect(‘equal’, adjustable=’box’)
>>> plt.draw()

Look at the same plot with the axis scaled differently:

Magic Math Mandarin