We don’t hear about startups in education in America as we hear about them in other industries. Why? There are multiple reasons. One is the belief that superior education and profit making are conflicting. Are they?

Superior customer service in other industries seems to lead to higher profit. People don’t have any issues with that. Then why with education?

Programming by trial and error is a great way for kids to learn not only programming but also math. — this should play a bigger and bigger role in children’s day to day learning. 玩编程也帮助学习算术。

Somehow I have a feeling that learning long division in this day and age is wrong. 在这个时代还学长除法那就不对了。

Go ahead and tinker with the code in the notebook. Nothing will break, we promise 🙂

I was in China this November to conduct surveys on education. I had a few chances of sitting in some after school education programs and cram school classes, including XDF新东方, and was shocked by the amount of work Chinese kids have to do and was saddened by the way they are learning.

Let’s talk about the amount of work first. I saw very few kids out and about any time of day except commuting hours. Basketball courts are empty, even on weekends. Where are all the kids? They are in endless cram school 补习班 classes.

A middle school child routinely gets up before 7 am and does not go to sleep until midnight or after. Middle school students stay in school until 8 pm, and work on additional homework from 8 pm till midnight. Younger students are often working similar hours. More→

The word AI (artificial intelligence) is everywhere these days. Some of the best young minds are pouring into the field, and industry need is so dire that graduate schools can hardly keep PhD students until graduation.

In the craze of the artificial, real intelligence seems to have been forgotten. Here, the word “real intelligence” means intelligence from real human being.
American k-12 education continues to go downhill regardless of funding, more and more homeless people in New York City are begging in the streets (many are young and able), and millions of prime age citizens are not looking for work where many jobs are left unfilled. More→

I was surprised to learn that my fourth grader daughter is learning long division exactly the same way as how I was taught: a highly mechanical process that is worse than doing dishes.

Now looking back, I learned a lot of math mechanically without putting much thought into what I was doing. Perfecting the steps as if I was self-training to be a robot.

Tomorrow I am going to show why we did long division the way we did, and why there are many other ways.

Geometry helps us see clearly without cluttering our minds with jargon and notations. We will begin with something everyone in machine learning does.

Linear Regression= ” linear regression is a linear approach for modeling the relationship between a scalar dependent variable y and one or more explanatory variables (or independent variables) denoted X.”

What does it mean? Let’s think about it from geometry. If we don’t know how tall Emma is (dependent variable y, or “label”) since we haven’t met her. But we can guess her height by other numbers, such as the length of her shadow (independent variable X, or “feature”). Our guess can be quite accurate if we are in same city where she lives and we are measuring everything at the same time of day.

That was easy. Now we are going to guess the height of many different people, based on the the length of their shadows. Again, our guess can be quite accurate if we all live in same city and we are measuring everything at the same time of day. But this is usually not the case. Say if we live in northeast America and the measures are taken during early afternoon in autumn, our predictions may not be perfect but are still in the ball park. Otherwise we really cannot make a good prediction.

What are we to do with measures that are not taken under perfect conditions? If we know the location and time when the measures are taken, then we can make adjustments to the numbers before using them. But there still can be lots of problems if we made mistakes in taking down the numbers or locations or time. Like a trades person, we have different tools to fix problems. One is called “least squares method”. Some other methods are “weighted least squares”, “maximum likelihood”, “gradient descent” and etc.

I have been blessed to have great teachers in various stages of my school life. A good teacher makes a huge difference in a student’s life. A bad one does too, unfortunately. More→

Lately we have been enjoying playing with turtle-drawing while watching this excellent series of videos of learning Python programming from KidsCanCode. I place it as sticky so that it is easy for the children to find it. I seriously had a lot of fun with these code because, even though I am an experienced programmer, programming for work is not this kind of pure fun.

Small learning steps + immediate results -> reward-> more small steps…-> more small rewards…-> repeat.
Both girls (7 and 9) are so ahead of the game. Besides drawing, I explained the following concepts to the children although they may not remember.
IDEs
Onject oriented programming.

Victoria (our 7 year old) has been taking notes, which is compiled below:

import turtle

v=turtle.Pen() ##v is named “Fred” in the video. But Victoria likes her initial better than Fred for the name of the turtle

v.shape(“turtle”)

v.speed(0)

#1. a loop for drawing a series of circles that are seashell-like

for i in range(50):

v.circle(i*3)

v.left(10)

#2. a loop for drawing a red rose

v.reset()

v.color(“red”)

v.width(4)

for i in range(20):

v.circle(i*3,180) ##radius=i*3 and draw 1/2 of circle because 1/2=180/360

v.right(45)

#3. a loop for drawing a green lettuce-like picture

v.reset()

v.color(“green”)

v.width(5)

for i in range(100):

v.forward(i*2)

v.circle(i*2,90)

v.right(20)

#4. defining a function to draw squares so that we don’t have to type the loop again and again

def square(size): ##to define the function

for i in range(4):

v.forward(size)

v.left(90)

square(100) ##to call the function and make it work

#5. use the square function we have defined and draw lots of “random” squares

import turtle
v=turtle.Pen()
import random
def square(size):
for i in range(4):
v.forward(size)
v.left(90)
square(100)
colorList=[“red”,”purple”,”yellow”,”green”,”orange”,”blue”,”brown”,”grey”]
v.speed(0)
v.width(5)
for i in range(100):
col=random.choice(colorList)
v.color(col)
x=random.randrange(-200,200)
y=random.randrange(-200,200)
v.up()
v.goto(x,y)
v.down()
size=random.randrange(10,200)
square(size)

200 random squares drawn by Victoria using turtle

#interactive

name=input(“What’s your name?”)

print(“Hello “,name)

age=int(input(“How old are you?”)) #int is to convert the string you input to a number because the program treats whatever you input (7, 8, 9, etc) as a string.

print(“Next year you will be “, age+1)

#Number guessing game: when you make a guess, try to pick the number always in the middle of the range (guess why 🙂

import random secret=random.randrange(2, 200) #print(secret)

guess=1 count=0 while guess !=secret: guess=int(input(“Make a guess please:”)) count=count+1 if guess>secret: print(“Your guess is too high.”) elif guess<secret: print(“Your guess is too small.”) else: print(“You got it! You guessed”,count,”times”)

#Fun rock, scissors and paper game

import random moves = [‘r’,’p’,’s’] you_win=[‘pr’,’sp’,’rs’] play=”y” win_count=0 tie_count=0 total_count=0 play=input(“Would you like to play? y/n”) while play !=”n”: computer_move=random.choice(moves) your_move=input(“What is your move, r for rock, p for paper, or s for scissors:”) if your_move not in moves: print(“You have to enter r,p,s.”) your_move=input(“What is your move, r for rock, p for paper, or s for scissors:”) print(“You:”,your_move) print(“Me:”,computer_move) total_count=total_count+1 if your_move==computer_move: print(“Tie”) tie_count=tie_count=0+1 elif your_move+computer_move in you_win: win_count=win_count+1 print(“Congratulations. You win! And you have won”,win_count, “time(s) out of “,total_count, “times. We have”,tie_count,” tie(s).”) else: print(“Sorry, I win!”)

Magic Math Mandarin holds board meetings regularly. Whenever there is a decision that affects all of us or something about how to develop Magic Math Mandarin.

The youngest board member was 6 and now is 7. The next youngest one was 8 and she just turned 9.

During each meeting, everyone must contribute ideas. No matter what the idea is, we discuss and record it. Everyone must speak up. Mistakes are encouraged.