Saturday, July 9, 2016

Richard Feynman and Teaching

From the  Farnam Street blog.  Excerpts from the book, "Genius : the life and science of Richard Feynman  by James Gleick."
 
Process vs. Outcome
Feynman proposed that first-graders learn to add and subtract more or less the way he worked out complicated integrals— free to select any method that seems suitable for the problem at hand.A modern-sounding notion was, The answer isn’t what matters, so long as you use the right method. To Feynman no educational philosophy could have been more wrong. The answer is all that does matter, he said. He listed some of the techniques available to a child making the transition from being able to count to being able to add. A child can combine two groups into one and simply count the combined group: to add 5 ducks and 3 ducks, one counts 8 ducks. The child can use fingers or count mentally: 6, 7, 8. One can memorize the standard combinations. Larger numbers can be handled by making piles— one groups pennies into fives, for example— and counting the piles. One can mark numbers on a line and count off the spaces— a method that becomes useful, Feynman noted, in understanding measurement and fractions. One can write larger numbers in columns and carry sums larger than 10.
To Feynman the standard texts were flawed. The problem

29
+3

was considered a third-grade problem because it involved the concept of carrying. However, Feynman pointed out most first-graders could easily solve this problem by counting 30, 31, 32.
He proposed that kids be given simple algebra problems (2 times what plus 3 is 7) and be encouraged to solve them through the scientific method, which is tantamount to trial and error. This, he argued, is what real scientists do.

“We must,” Feynman said, “remove the rigidity of thought.” He continued “We must leave freedom for the mind to wander about in trying to solve the problems…. The successful user of mathematics is practically an inventor of new ways of obtaining answers in given situations. Even if the ways are well known, it is usually much easier for him to invent his own way— a new way or an old way— than it is to try to find it by looking it up.”

It was better in the end to have a bag of tricks at your disposal that could be used to solve problems than one orthodox method. Indeed, part of Feynman’s genius was his ability to solve problems that were baffling others because they were using the standard method to try and solve them. He would come along and approach the problem with a different tool, which often led to simple and beautiful solutions.

Wednesday, July 6, 2016

LCM with Scratch

Source code here.  If anything, this is a good way to illustrate that using multiples to find LCM can be extremely time consuming, even for a computer.  The factoring method becomes much more appealing when faced with finding the LCM of 270 and 120.

By the way, it took Scratch 46 seconds to find the LCM of 270 and 120 using this algorithm.  It took Python about 2 seconds using a similar algorithm.





Tuesday, July 5, 2016

Histograms with Scratch, 20 coin tosses

A simple histogram is easy to make with scratch and you can use it to represent coin tosses.  Coin tosses are cool because most students have an ingrained belief that if you flip a coin 20 times, the results will always be close to 10 heads and 10 tails.   Actual results are frequently quite lopsided!  Code is here.


Monday, July 4, 2016

Finding the LCM with Python

Middle school students first learn to find LCM by listing multiples, then they learn to do it by factoring.

I started playing around on Python creating, what I thought would be, a really simple program to find LCM by listing and comparing multiples.  The goal would be to help students understand what LCM means before moving on to simpler ways to find LCM.

My method turned out to be REALLY convoluted and messy.  I just sat down and started typing and did absolutely no planning.

I ended up using TEN variables just to compare two sets of multiples.  It's a good lesson in balancing the "never give up until the problem is solved" mentality to the "quit and find a better way to do it" mentality. In this case, I should have quit, gotten out a sheet of paper, and outlined a better way to do it.

Incidentally....there is no LCM function in Python.  The simplest algorithm I've seen is the one linked above.

Sunday, July 3, 2016

Dividing by 10

Another iterative process that leads middle school students to a better understanding of  our base 10 number system.  It also lets them see the patterns that emerge with decimals when they divide by 10. 

If you run the program for them without showing them the code, most students, even beginners, will be able to program it assuming that they've had some practice with loops.

You might want to help them a little bit with join statements.

My version of the code is here.




Saturday, July 2, 2016

Fibonacci Series with Scratch

The Common Core State Standards encourage students to: Look for and express regularity in repeated reasoning.

 Designing programs that emphasize iterative processes help students recognize patterns and then think about ways to describe the patterns using mathematical operators and variables.

This Fibonacci series program would not be a good one to start with.  Probably a simple skip counting program would be better.   

There are many different ways to code this, and it's fairly challenging so it will keep advanced programmers engaged.  Again, start off my showing the program run, and then have the students do some pseudo-coding before they open their computers.

You don't necessarily need to use all of the "join" statements.  They can get confusing.    This is a simpler version that removes the extraneous join step.