Computers allow kids to better understand and learn math

Back in 2010 at TED talks, Conrad Wolfram  spoke about math in schools, and teaching kids real math with the help of using computers (Conrad Wolfram: Teaching kids real math with computers) this video was to me very interesting, so I decided to do some study, and also decided to write this article to present some of my findings, ideas and results.

Teaching math in school

Mathematics in school is simple when you first time start doing math and learning it. However, as you grow older, in school you also study higher levels of math, and these levels become challenging in some cases. There are three factors that impact the way you learn math, these are:

  1.   Your ability to quickly calculate and play with numbers
  2.   The way your teacher is teaching math during a math session
  3.   Your own interest in learning and understanding math

Note: Above I only included three factors, but there are a lot more factors that impact the way we learn math.

Math levels

The math is divided in levels, and each level is unique. Basic level is where we all start, and that is obvious, nobody can start at the last level, even Albert Einstein had to start from basic level.

  1. Basic Math
  2. Pre-Algebra
  3. Algebra
  4. Geometry
  5. Algebra 2
  6. Geometry 2
  7. Trigonometry
  8. Pre-Calculus
  9. Calculus
  10. Advanced Calculus

There are probably a few more levels I haven’t included here.

Computers are great calculators

Personal Computers (PCs) are great calculators and are some of the fastest calculators in the world; of course a modern calculator uses the same technology, the Central Process Unit (CPU), one modern and much known CPU is the Intel® processor. The Arithmetic Logic Unit (ALU) is one of the essential and key features in a CPU, which allows the CPU to perform arithmetic operations Addition, Subtraction and so one. Beside the arithmetic operations, the ALU allows the CPU to perform basic logical operations such as ANDORNOTXOR (exclusive or) and so one.

Humans have created a set of CPU instructions that can be used to tell the CPU what to do; this language is called Assembly (ASM). ASM has been around for a long-time, and is common in many areas in the software world. ASM is still used to build boot loaders in Operating System (OS)development. However, the computer sees everything in 1 and 0 or in binary form, but I would like to demonstrate how a CPU-instruction in ASM will add two numbers, I will be using C++ programming and perform inline ASM.

I will be using the x86 (32-bit) CPU registers to store data. The EAX, EBX, ECX and EDX are the four general registers. I will keep this very basic, with a lot of details.

This code may seem advanced, but is quite easy to understand, okay, I’ll explain. Let’s examine what really happens, we jump to the int declaration.


i. I start by declaring three int variables they get a default value zero.

int valueA, valueB, result = 0; 

ii. Jumping one line, valueA equals 5 and valueB equals 10.

valueA = 5; 
valueB = 10; 


iii. Then we enter the inline code of x86 CPU assembly instructions, we use the MOV instruction to move data from valueA to EAX, and we move data from valueB to EDX (Figure A explains the first move).


Figure A: The MOV instruction makes EAX as the destination for the data variable valueA contains. This is exactly the way the MOV instruction moves data, which can be defined like this: MOV destination, data.
iv. Then we perform addition, by using add eax, ebx which means EAX = EAX + EDX so we store the end result in EAX register.

v. Next, we store the data which EAX contains in the result variable, and finally we XOR (clear) the EAX and EDX registers.

This is another example of how a CPU performs arithmetic calculations. I am glad I was able to provide a demonstration and explanation regarding this.

Programming helps understanding and learning math better

Mathematics appears to be a great subject, but as you move further and begin learning and experimenting with higher levels of mathematics things can get really messy. When   equations and formulas including different theories and rules are involved in mathematics, this will directly make things harder for anybody. However, a key solution to better learning math rules, theories, equations, and formulas is by learning basic programming. If every child started learning basic programming at the age of 10 we would never experience math issues in school, no matter how advanced and complex the math would become at least 90% percent or more of all the students would hopefully pass the test, all this thanks to programming. Children do not need to learn Object Oriented Programming (OOP), they only need the basics (understanding code, data-types, and logic if-else statements), and to learn how to program the application so it can receive input (argument) and provide output (print to the screen) nothing else.

Here’s how programming helps students understand and learn math faster and better. If you know programming, you can make a function in your program that calculates for example the slope of a line. But to make this function you have to learn and understand the formula, the rules and how it is used correctly the mathematical way. However, I will provide two examples, one which is very basic and the other one which is a bit complex, but yet easy as well.

Programming example 1:
Build a program that calculates total price per mile a taxi driver, drives a person. Remember: The taxi company has a fixed price which every customer has to pay the fixed price (f) which equals to $20 USD is added to the price $4 USD / mile.

We have three things to keep in mind:

  1. Price per mile.
  2. How much a customer has to pay?
  3. Remember that 1 Mile equals 10 km

Now this is going to be very simple. But it will allow any student to better remember and understand how this works.

This is the equation or formula which I have setup:



T = Total cost.
P = Price
F = Fixed price
X = Mile(s)

Calculation by either hand on paper or writing it in word like this may seem like a long calculation, but is very short.

T(x) = f + px
T(5) =  20 + (4 * 5)
T(5) = 20 + 20
T(5) = 40

Here’s the code in C++:

int T(int x); 

//$4 USD per mile. 
int p = 4; 
//$20 USD.
const int f = 20;  

void main()
   int Total = 0; 
   Total = T(5); //5 miles = 50 km. 
   cout << "The customer has to pay: $" << Total << " USD" << endl; 
   cout << "" << endl; 

int T(int x)
    return f + (p * x);  


Figure B: The computer did the calculation, but I had to program the software so it can do what I want it to do. This allows me to learn more about the rules, and allows me to determine whether my equation or formula works.

Programming example 2:
In this second programming example, we will be looking at the linear equation, slope and m interception with the Y-axis.

We have two things to keep in mind:

  1. Remember the equation: y = mx + b
  2. Remember that b = y-axis  intercept.



M = slope
B = Y-axis intercept
Y = The total value



Find M-value:



m = y2-y1/x2-x1
m = (3-2)/(2-1)
m = 1


y = 1x + b
y = 1x + 1
y = (1 * 2) + 1
y = 3


Test our calculation:
3 = (1 * 2) + 1

Here’s the code in C++:

double Slope(double y1, double y2, double x1, double x2);  
int Y(double m, int x, int b);

double m = 0; 
int x, y, b = 0; 

void main()
    cout << "Find the Y-axis interception value: "; 
    cin >> b ;
    cout << "\n" << endl; 
    cout << "Calculating..." << endl;
    m = Slope(2, 3, 1, 2); 
    y = Y(m, 2, b); 
    cout << "Y = " << y << endl; 
    cout << "" << endl; 

//Note: Slope function works only when two known points are passed in, 
//single point is not supported by this function. 
double Slope(double y1, double y2, double x1, double x2)
    y2 = y2 - y1; 
    x2 = x2 - x1;

    if(y2 == 0 || x2 == 0)
    { return y2; }
      return y2 / x2; 

int Y(double m, int x, int b)
    return (m * x) + b; 


Figure C: Our program calculating the slope and the Y for us.


I personally think that the nation that first applies “teaching programming” in school, and I mean children start doing basic programming at the age of 10 will increase their economy and produce a lot of smart people. However, this is one of the reasons governments all over the world shall demand that this becomes a reality, because programming covers math, logic thinking and much more. Mathematics has not been an easy subject in school, and that is because of the levels and each individual’s ability to play with numbers, to understand equations etc. But for the coming future, I think programming will play a key role in combating the math problem we see in schools in many parts of the world. The time to change is now, so demand for this change today, for a better tomorrow.

Additional information and resources:
Albert Einstein Biography:
The Arithmetic Logic Unit:
Linear Equation:
Slope-Intercept Form:

The Power of a Virtual School on the Internet

In August 2004, Salman Khan (a.k.a. Sal Khan) a former hedge fund manager, began helping his niece, Nadia, with her math homework. Sal began helping Nadia, by doing videos about different math problems, and how to solve them. Sal uploaded all the videos to YouTube™, and as the time moved one, Sal uploaded more and more videos. Suddenly he had uploaded around 2K of videos, and he became famous and created a virtual school named Khan Academy. However, in this article I will be talking more about this fantastic idea, I will also provide more details about Khan Academy, and the benefits of having it, and the bad things regarding it.

The Khan Academy
Khan Academy is a non-profit (or not-for-profit) organization, with the mission to provide a free world-class education service to anyone, anywhere at any time on earth. The Khan Academy now provides around 2400 around 3500 videos, and consists of a software program which allows anybody to test their skills. The greatest part is the opportunity to be able to test your math skills after watching one or two videos, because you then know exactly how much you’ve learned by watching those videos see Figure A.

Figure A: A video at Khan Academy covering Simple Equations

The software which is built-in into this service is used for practice purposes, and it is a very good option. The software consists of a database, badges and points, and a knowledge map (Figure B).

Figure B: The map is produced using Google™ Technology, and is a very colorful map. The map
provides different levels, for example: Addition, and Addition 2, 3, and so one. Each of these
destinations, provide unique questions which allow the user or a student to put their math skills to the test

The math-games are fun, every time you succeed you’ll get a positive smile, and every time you fail, you’ll get the negative smile, very straight forward (Figure C). However, another very cool thing is that while playing, you can decide to go and watch a video related to that math level (Figure D).

Figure C: Playing subtraction level 4

Figure D: You can directly navigate to a video that covers information about that specific math level, and problem

Note: You can still go back and continue with the current level in the game, without losing everything.

The point and badges system however is really nice. Every time you complete a test in the knowledge map, and every time you watch videos for an amount of time (hours) you’ll get points (Figure E).

Figure E: My account, I have 101,365 points currently

The badges are awesome, and they exist in different types, there are six types, Meteorite, Moon, Earth, Sun, Black Hole and the special Challenge Patches (Figure F).

Figure F: Example of the badges, those are my earth badges on Khan Academy

There are so many things you can do at Khan Academy, why wait when it is available for free just go to the official website

People have been doing videos about all types of subjects, for example you have education videos which teach physics, math, chemistry and much more. Just visiting YouTube™ and searching for simplifying rational expression will give us over 2K in result, and you will find a lot of videos, different people have done that teach you how to simplify an rational expression. However the Khan Academy is very different, you have short videos with a lot of examples, and the voice in these videos is awesome, Salman is very good at speaking and explaining things. The entire idea and system with Khan Academy is really awesome, I personally like the way it is organized. This idea is also great, because Khan Academy can be reached by people all over the world however there is a down-side for those who do not have access to either a computer or Internet.

However, another thing that has been discussed very much in the Media, when Salman Khan appeared on the news, is the following question, Will Khan Academy replace ordinary schools? – remember this is like a virtual school available on the Internet. The clear answer is NO, and this is very obvious as students still need to do the tests, and teachers cannot be fired, just because someone invented the virtual school.

In addition, I personally think that Khan Academy can be used as an extra hand, in case you are home and you get stuck in a math problem which you cannot solve at that moment, because you do not remember how to apply a specific formula. Khan Academy will be your best hand in helping you to successfully solve the math problem, and learn it to the next time. However, a real school is still the best place, and I prefer that rather than going to a virtual school, but that is me.

Additional information and resources:
The Official Khan Academy website: 
About Khan Academy:
The Khan Academy Channel on YouTube: