#DIYMath – Math Wants to be Free

(Cross-posted at Coding 4 Humans)

As a programming and math nerd, I’ve certainly made good use of Wolfram Alpha. After all, it’s free*, it’s ubiquitous (all you need is a Web browser but there are also apps for both Android and IOS) and it’s natural language interface is very powerful and easy to use.  It’s certainly a cost-effective alternative to commercial math packages like Matlab ($50 – $2,150) or even Wolfram’s own Mathematica. ($139 – $2,495)

However, much as I love the folks at Wolfram, it’s nice to have your own math software that:

  • doesn’t require an Internet connection
  • runs on computers you control
  • still gives you a lot of power and flexibility

It’s even better if the software is:

It turns out that there are several software packages that fit the bill, each with their own strengths and weaknesses but all absolutely free and cross-platform. With that in mind, I’m going to be reviewing each of them from the perspective of a teacher and casual programmer. To keep things consistent, I’ll be looking at the following categories:

System Requirements – Because there’s no point downloading the software unless you can actually run it.

Installation – How easy is it to find and install the software? How big of a download is it and how much disk space and RAM does it need? How does installation compare between platforms? I’ll be installing the software on Windows 7, Debian Linux and Mac OS X Mavericks and comparing the experience.

Documentation – Does the developer offer good documentation and/or tutorials? (By ‘good’, I mean documentation you are actually expected to read**.) Is information available from third parties?

Compatibility – Like it or not, MatLab and Mathematica are the big dogs in the math software field. How easily could a MatLab or Mathematica user transition to this package? How easy is it to port code? The easiest way to test this is to see if scripts designed for MatLab or Mathematica will run with minimal or no modification.

Command Line vs. GUI – Some of these packages allow you to run them from the command line as well as in a graphical interface. This is very useful as it allows you to integrate the software with your native scripting language for easy automation. How do the two compare? Do both offer the same functionality? Does the software operate in the same way on different operating systems?

Summary – Pros, Cons and whether I’d recommend this to my students.

As I’ve said, I’m looking at this from the perspective of a math teacher. Are there other aspects of the software you’d like me to examine?

*for a certain definition of ‘free’

**I’ve noticed that a lot of open source software documentation seems to assume that the target audience are those who don’t need to read it. Yes, poor documentation makes me cranky.

Advertisements

#WeHateMath Calculators Considered Harmful

“For this invention will produce forgetfulness in the minds of those who learn to use it, because they will not practice their memory. Their trust in writing, produced by external characters which are no part of themselves, will discourage the use of their own memory within them. You have invented an elixir not of memory, but of reminding; and you offer your pupils the appearance of wisdom, not true wisdom, for they will read many things without instruction and will therefore seem to know many things, when they are for the most part ignorant and hard to get along with, since they are not wise, but only appear wise.”(Phaedrus 274c-275b)

 

The above quote is Socrates complaining about the invention of the written word. He claimed that allowing students to write down facts instead of memorizing them would weaken their minds.

I’m reminded of this when I see some of the reactions to suggestions that we embrace the use of computer technology in the way we teach math. The most noted advocate for this is Conrad Wolfram, who described his philosophy in a 2010 TED Talk.

My first introduction to technology-assisted math was in my high school chemistry class, where we learned how to use a slide rule. (Yes, I’m thatold.) We didn’t have them in math class (or calculators for that matter) so all calculations was done by hand. I didn’t get my first calculator until I went off to college. As this technology got cheaper and more readily available, it began to filter down towards K-12, where I recall a lot of controversy over allowing their use in class. It was felt at the time that it would make students unable to do arithmetic by hand and therefore become dependent entirely on machines to do it for them.

Back in 1957, Isaac Asimov wrote a short story “The Feeling of Power”, about just that kind of future and how society had to rediscover the technique of doing arithmetic by hand. The comments at this page about this story are…..okay, I’m trying to think of how to say this….well, let’s just say there’s a certain ‘you kids get off of my lawn’ quality to them.

Please don’t misunderstand. I absolutely believe that grade school kids should learn how to do arithmetic by hand, to start. But I don’t believe that it’s as simple as we either do all of our math by hand or become completely dependent on machines.

First of all, I have no problem doing arithmetic using a machine. Arithmetic is a very mechanical activity, which is one of the reasons why teaching it involves so much memorization. It isn’t something that comes naturally to us humans. However, we should be comfortable with arithmetic so that we can visualize what our answer should look like and to make sure the problem was entered correctly.  (I prefer using a text editor to writing by hand. This doesn’t make me illiterate.)

Math, on the other hand, involves intuition, creativity, imagination and logical thinking. Machines can make the arithmetic part of it easier but you still need to understand the problem well enough to explain it to the machine. We teachers don’t have to fear the use of calculators or computers in a math class if we use them intelligently. Where these machines can be used to our advantage is to reduce student anxiety about the mechanical parts of the problem so they can focus on the part requiring human-based thinking.

In my experience, students hate math because they fear arithmetic. They are so scarred by their grade school arithmetic classes where the slightest error in a long chain of arithmetic would ripple down and cause them to get the problem wrong (and fail the test) that they don’t want to be anywhere near any class that reminds them of that.

I encourage the use of calculators (and spreadsheets and Wolfram Alpha) in my college math class. They take away fear and give us more time to actually talk about math.

#WeHateMath Math without Calculations?

I ran across a couple of articles that discuss something that I’ve been pondering (and talking about on this blog) for a while now. That is, teaching mathematics without requiring that students do the final calculations by hand.

Here’s the basic idea. Computation (formulating solutions to problems) is more important now than ever. However, since we have calculators, computers and even Web sites to crunch the numbers for us, doing the calculations by hand is out-of-date and should be de-emphasized.

This idea was recently promoted by Conrad Wolfram, the head of Wolfram Research, which produces the software package Mathematica and the math engine Wolfram Alpha. Here’s an interview with Wolfram where he describes his idea in a bit more detail.

I’m not saying this is a bad idea, but I can see that there are any number of ways for someone to take this in a negative way. It takes a while to think this through for those of us who (like me) were raised and educated in the traditional math curriculum.

I teach undergraduate math, so I’m always on the look-out for ways to improve my classroom content. That means that sometimes I use my classroom as a lab for a little empirical research.

For example, this term I’m teaching College Mathematics. This is a 100-level class aimed at non-technical students (we’re a career college) and my students are in a mix of majors like Medical Assisting, Graphic Design and Business Administration. The course description is as follows:

 

This course develops problem-solving and decision-making strategies using mathematical tools from arithmetic, algebra, geometry, and statistics. Topics include consumer mathematics, key concepts in statistics and probability, sets of numbers, and geometry. Upon successful completion of this course, students will be able to apply mathematical tools and methods to solve real-world problems.

 

So it’s essentially a course in functional numeracy. For most of these students, this is the only math class in their program.

I decided to test the theory that the thing most people who claim to hate math actually hate arithmetic. My personal opinion is that arithmetic is unnatural and mechanical (since the learning strategy consists of memorization) and that math places more emphasis on creativity, intuition and critical thinking. With this in mind, on my first day of class I did the following:

  1. Explain the difference between math and arithmetic.
  2. Set a policy of ‘no arithmetic by hand, unless it’s absolutely convenient’. (For example, I’m not going to grab a calculator to multiply 9 by 5.)

For each session, I start with a “Math Minute” where I present a short puzzle or thought experiment to get students thinking and discussing some math concept. For the rest of the period I discuss this week’s subject (I can’t change the text or the lesson plan). However, I keep the conversation focussed on concepts rather than calculation. When we work through problems, we spend most of the time thinking through the set-up and then use a calculator (or spreadsheet or Wolfram Alpha) to get the answer. (This is only for problems where the calculation isn’t obvious. See 2 above.)

As you can see, I haven’t made any big changes (evolutionary, not revolutionary). I still have to pay attention to different student learning styles, encourage group participation, share problem-solving tricks and all of the other classroom techniques I’ve been using for years now.

As expected, there was some resistance. I was taking an unusual approach by de-emphasizing those parts of a math class that are traditionally the focus. But overall the response has been positive.

Now I don’t think that all classroom math should be abstracted to machines. In my class, we still use decks of cards and dice to talk about probability, count floor tiles to think about surface area and lots and lots of whiteboard work complete with diagrams. The point is to get students to connect with math and I’m just shifting that connection to the problem set-up process and I’m a fan of whatever works.

 

#WeHateMath Project Euler 10 – Summation of Primes

Summation of primes

Problem 10

The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.

We’ve spoken about primes before but this problem is different. First of all, it seems pretty straightforward. We’re adding up a list of numbers. Granted, we have to generate the list of numbers first but generating a list of primes is not unknown technology. (Like any nerd, I let a computer do the hard work).

The question is (as it is with all of these problems), why do it?  What’s the point? That’s what I had to ponder for a while. So I decided to let my computer grind through a few possibilities. Using a combination of a spreadsheet and some computer code (and there’s no reasonable way to do this without some programming skills), I poked at some numbers.

One of the first things I discovered was that (no surprise) the sums get big pretty quickly. I started by asking Wolfram Alpha to do prime sums for me. It worked fine for 10, 100, 1000 and up to 1000000. But when I asked for the sum of primes less than 2,000,000 it crapped out on me. You see, Wolfram Alpha has built-in limits on how much processing time you can use.

Okay, you have my interest now.

I poked around and found some program code that did sums of primes, loaded it into XCode, compiled and ran it. At first I used it to check the numbers that Wolfram Alpha had given me (no harm in checking). Of course, as the numbers got bigger, the processing took longer and longer. I decided to shorten things by asking for the sum of primes between 1,000,000 and 2,000,000 (since I already had the sum for 1,000,000). I dumped it into my spreadsheet and made a table:

 

N

Sum of Primes

Sum of N

Diff(N, Sum_of_Primes)

Diff(N, Sum_of_N)

10

17.00

55.00

7.00

45.00

100

1,060.00

5,050.00

960.00

4,950.00

1000

76,127.00

500,500.00

75,127.00

499,500.00

10000

5,736,396.00

50,005,000.00

5,726,396.00

49,995,000.00

100000

454,396,537.00

5,000,050,000.00

454,296,537.00

4,999,950,000.00

200000

1,709,600,813.00

20,000,100,000.00

1,709,400,813.00

19,999,900,000.00

1000000

37,550,402,023.00

500,000,500,000.00

37,549,402,023.00

499,999,500,000.00

2000000

142,913,828,922.00

2,000,001,000,000.00

142,911,828,922.00

1,999,999,000,000.00

 

Just for fun, I added a column of straightforward sums plus differences. (You never know what relationships will pop up.) I also ran my prime summing program with a timer and here are the results:

 

Enter min range: 2
Enter max range: 2000000
Sum of prime numbers is: 142913828922
real19m57.296s
user19m42.095s
sys0m0.625s

 

In human-speak, this means that the calculation took almost twenty minutes of ‘real’ time (as in wall-clock time) and about two-thirds of a second of computing time. Just out of curiosity, I ran the same program but just for the primes between one million and two million:

 

Enter min range: 1000000
Enter max range: 2000000
Sum of prime numbers is: 105363426899
real14m20.074s
user14m9.366s
sys0m0.195s

 

Interestingly enough, it took almost the same amount of ‘real’ time but about a third of the computing time. Just for fun, I wondered how much time it would take to do sum of primes up to 1 million:

 

Enter min range: 2
Enter max range: 1000000
Sum of prime numbers is: 37550402023
real5m15.445s
user5m7.393s
sys0m0.213s

 

Well, about one-third of ‘real’ time and a bit more computing time. The latter was to be expected but the former isn’t.

In any event, I’m still not sure about the point to this problem. If I figure it out, I’ll post an update.

Project Euler #7 – Prime Mysteries of the Mind

By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.

What is the 10,001st prime number?

“Mathematicians have tried in vain to this day to discover some order in the sequence of prime numbers, and we have reason to believe that it is a mystery into which the mind will never penetrate.”

Leonard Euler, in G. Simmons, Calculus Gems, McGraw-Hill, New York, 1992

According to Wolfram Alpha, the 10,001st prime number is 104,743. Now (as always) we must ask,“what’s the point?”

To be fair, it’s all well and good that we have these fancy computers that we can just ask for the answer, but let’s dig deeper and get more background on what’s so hot about prime numbers. As the quote above from noted brainiac Leonard Euler indicates, prime numbers are a mystery wrapped in an enigma covered in secret sauce.

We’ve talked about prime numbers before and how they’re used to secure the Internet. But the ancient Greeks studied primes and they didn’t even have smartphones (at least, I don’t think so….nope, they didn’t). One thing to note about primes is that they are devilishly hard to predict. I mean, if I gave you a sequence of even numbers and asked you to determine what the next number in series would be, that would be a no-brainer. However, if I gave you a sequence of prime numbers, that would involve a lot more work. Factoring numbers (our main test for primality) is one of those problems that are known as NP (Non-Polynomial). In plain talk, there are no shortcuts to the answer. But what if we asked the question a different way?

That’s what a man named Eratosthenes did. Prime numbers were as weirdly fascinating to the ancient Greeks as they are to us and Eratosthenes was a noted mathematician of the day. Just to give you a sense of the man, he was also a music theorist, poet, astronomer, invented geography and in his spare time was the chief librarian of the greatest collection of ancient wisdom of his times, the Library at Alexandria, not to mention being the first person to calculate the circumference of the ENTIRE FREAKING PLANET.

Frankly, it’s all I can do to get through my daily Twitter feed before I feel the need for a lie down. But I digress.

Anyway, while his fellow mathematicians were mapping out primes the hard way, Eratosthenes asked the question, “How do we find the prime numbers in a given sequence of numbers?”. One day he had a revelation. He already knew how to find if a number was prime the hard way. But, he reasoned, any multiple of a prime is by definition not prime.
Here’s how it worked. Consider the first ten digits (1 is crossed off since it is neither prime or non-prime).

X 2 3 4 5 6 7 8 9 10

Our first prime is 2, so we cross off all multiples of 2.

X 2 3 X 5 X 7 X 9 X

3 is also a prime, so we cross off all multiples of 3.

X 2 3 X 5 7 X X X

We’ve finished the sequence and all we have left are the primes 2, 3, 5 and 7. We can do this for any sequence of numbers, filtering out the primes like grains of sand through a sieve. Hence the name for this technique, which has survived to this day – the Sieve of Eratosthenes. As a side benefit, this reduces the effort of finding primes to simple arithmetic, making it perfect for handing off to a machine. (In fact, one of the first programming problems they give students is to code up their version of the Sieve.)

One more thought about primes and this one’s a bit more relevant to the Project Euler problem above. If we map out the Nth primes for N in {1, 11, 101, 1001 and 10,001}, we get:

N

Gap

Nth Prime

Gap

1

n/a

2

n/a

11

10

31

29

101

90

547

516

1001

900

7,927

6,926

10001

9,000

104,743

96,816

If we look at the gaps we can see that, as the sequence numbers get bigger, the gaps between primes get bigger. It’s even more obvious when we graph out the first 100 primes:

This actually makes intuitive sense. Larger numbers have more possible factors so are less likely to be prime. (Give that a moment to sink in.) This is an illustration of what is known as the prime number theorem. Here’s the idea:

  • Pick a large positive integer. Call it N.

  • Pick a random integer between 1 and N. Call it R.

The probability of R being random are roughly 1/ln(N). (one divided by the natural logarithm of N). So the bigger N is, the smaller the odds of R being prime. In other words, as we see in our graph above, the gaps between prime numbers get bigger as our numbers get bigger. Like people, prime numbers are easier to understand when we look at them in groups.

“Some order begins to emerge from this chaos when the primes are considered not in their individuality but in the aggregate; one considers the social statistics of the primes and not the eccentricities of the individuals.”

P.J. Davis and R. Hersh, The Mathematical Experience, Chapter 5

 

Project Euler #5 – A Fool Remains

2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.

What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?

 

He who asks is a fool for five minutes, but he who does not ask remains a fool forever.

Chinese Proverb

 

This is an example of why students hate word problems. It’s also an example of why it’s important to practice with word problems.

You see, it’s not just about asking a question. It’s about how the question is framed. Question framing can make a big difference in how easy it is to find the answer. This is related to (but not the same as) the loaded question, which is one of the classic logical fallacies.

So when I come across a problem like this, I try to rephrase the question in such a way that my path to the answer becomes more clear. In this case, the question makes more sense to me when phrased like this:

What numbers can be factored into the first 20 integers? Find the smallest one.

Since I’m lazy, I asked WolframAlpha but it didn’t understand the question. I also considered that multiplying all of the numbers from 1 to 20 together (otherwise known as 20 factorial or 20!) would answer the first part of the question but not the second. (It’s 2432902008176640000, by the way.) (Yeah, probably too big.)

Now, of course, I have a computer that has no problem with mindless arithmetic so I could totally brute-force this by starting at 2520 (since the answer certainly can’t be smaller than that), factoring each number, examining the factors to make sure all required integers are present and so on. But I think there’s a lazier (and hence smarter) way of doing this.

Consider that certain factors automatically get us other factors for free:

20 – gives me 2, 4, 5 and 10

18 – gives me 2, 3, 6, and 9

16 – gives me 2, 4 and 8

14 – gives me 2 and 7

15 – gives me 3 and 5

9 – gives me 3

And so on and so forth. Let’s try that technique with a number we already know, 2520 and the factors from 1 to 10.

10 – gives me 2 and 5

9 – gives me 3

8 – gives me 4

7 – a prime but needs to be in there because we don’t get it anywhere else

6 – got it (2 from 10 and 3 from 9)

5 – got it (from 10)

4 – got it (from 10 via 2 and from 8)

3 – got it (from 9)

2 – got it (from 10 and 8)

1 – duh

So the factors that I care about are 10, 9, 8 and 7. If we multiply these together we get 5040. Not the answer we’re looking for but certainly better than 10! (otherwise known as 3,628,800). My keen eye, however, observes that 5040 is exactly twice 2520, so I have an extra 2 somewhere in my numbers that I don’t need. (I’m going for smallest, after all.) Well, I already get a 2 from the 10 so I don’t need 8. But now I don’t have a 4 (almost sounds like we’re playing Fish) so I’ll substitute to get the factors 10, 9, 7 and 4. Multiplying these together gives us 2520 which is the correct answer.

This is a problem-solving technique I like to use when I want to experiment with solutions. Find a similar, but smaller problem (preferably one where you already know the answer or can easily get to it) and use it as a test case.  (Make sure your logical assumptions are sound, though.)

I think I’m ready to tackle the original problem now. I’m going to use a table so that I can organize my factors more efficiently

 

Factor

Gives me

20

2, 4, 5, 10

19

19

18

3, 6, 9

17

17

16

2, 4, 8

15

3, 5

14

2, 7

13

13

12

2, 3, 4, 6

11

11

10

2, 5

9

3

8

2,4

7

7

6

2,3

5

5

4

2

3

3

2

2

1

duh

Since we don’t get 19,17, 13 and 11 from anywhere else, they have to be part of our final answer. Let’s look at that table again and mark off the numbers we need and don’t need.

Factor

Gives me

20

2, 4, 5, 10

19

19

18

3, 6, 9

17

17

16

2, 4, 8

15

3, 5

14

2, 7

13

13

12

2, 3, 4, 6

11

11

10

2, 5

9

3

8

2,4

7

7

6

2,3

5

5

4

2

3

3

2

2

1

duh

 

So it looks like we just need 19, 18,17,13,11,10,8 and 7. Multiplying these together gives us 465,585,120. A quick calculation at WolframAlpha confirms that the first 20 integers are indeed factors of this number. This seems like a large number but not when compared to 20!, which is  2.43290200817664 × 10^18 or a bit over 2 quintillion.

So that’s definitely an answer, but is it the answer? Based on our experience with the smaller version of this problem, let’s try to substitute 4 for 8 as one of our factors. This gives us 232,792,560 which is not only smaller but is also correct. But can we keep going down? A bit of experimentation shows that with further substitutions cause factors to drop out so that’s no go. So we end up with 19,18,17,14,11,10,4 and 7.

So we looked at a couple of problem-solving techniques that we can add to our intellectual toolkits:

  • If possible, rephrase the question so that it suggests a path to the answer

  • Use a smaller version of the problem to quickly test your potential solutions.

  • As always, use a computer for the boring stuff.

Project Euler #4 – Red Rum, Sir, is Murder

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 x 99.
Find the largest palindrome made from the product of two 3-digit numbers.

This seems like an odd problem (no pun intended). My goal with this series, if you recall, is not just to solve problems from Project Euler (http://www.projecteuler.net) but to figure out the deeper meaning behind each problem. This time I think the solution to the problem may lie in some deeper thinking about the numbers themselves.
You see, there really is no strictly mathematical significance to palindromic numbers. They are only important to people who do math for fun. (Yeah, I know.) In fact, there’s an entire field of study(?) known as recreational mathematics. For those of you out there who hate and/or fear math, this must sound like a seriously strange hobby only slightly less deranged than those people who collect shrunken heads. You’d think so, but if you’re a fan of Sudoku or other logical puzzles, then you’re a fan of recreational math.
But if we give these poor souls the benefit of the doubt, recreational mathematics is a way to move beyond the strictly technical operations of mathematics and explore the deeper relationships between numbers and our human world.
Anyway, back to considering palindromic numbers. A bit of thought tells us that all single-digit numbers are palindromes, so there are 9 single-digit palindromes. For two digit numbers, there are also 9 palindromes (11, 22, 33, 44, etc). For three digits, it starts to get more complicated but let’s think it out.
Our starting digit must be our ending digit so this gives us 9 possible templates such as 1_1, 2_2, 3_3, etc. The middle number can be anything we want so there are 10 possibilities there (don’t forget 0!) so each of our nine templates can be formed into ten different numbers. So the total number of 9 x 10 or 90 possible palindromic three-digit numbers.
I’m starting to see a pattern here. Maybe we can use this technique to narrow down our possible answers to where we’ll know it when we see it. In other words, what should our answer look like? (This is an excellent technique for real, practical math as well since it lets you recognize the answer when you see it.)
Our number will be a palindrome. (Okay, baby steps first. By the way, recognizing palindromes is one more of those things that humans are much better at doing than computers.)
It will be the product of two 3-digit numbers, as stated. So, the first question I might ask at this point is ‘How many digits will our number have?’ I mean, sure, I could write a program that would multiply every possible pair of 3-digit numbers, check each result for palindromicity (yes, that’s a word….now) and just print that out but where’s the fun in that? So I can say for sure that my answer will have at least five digits [ 100 x 100] and no more than six [999 x 999]. Given that we’re looking for the largest number, we can restrict our search to 6 digits.
Consider, however, that we’re looking for the largest palindromic number. So it seems like a good bet that it will start and end with 9. Combine that with my previous assumption and my number will look something like 9xxxx9 (where each x is some digit between 0 and 9). So this gives us a range between 900,009 and 997,999 so we have almost 98,000 possibilities. This is a large number, sure, but is better than our previous field of over 980,000 so we’ve knocked ninety percent off of our search range. We can also ignore prime numbers (why, boys and girls?) and WolframAlpha tells me that there are 7083 primes in our range so that knocks our search space down by a little bit.
Now WolframAlpha tells me that 900,009 isn’t the product of two 3-digit numbers. So assuming I don’t want to just start multiplying at 100 and go up from there, where do I start? I’m planning on having a computer do the grunt work so I’m not too concerned about how much arithmetic I have to do but I want the solution in my current lifetime. (Netflix isn’t going to watch itself, you know.)
So time for more thinking. Does it really matter where I start? I want a pair of 3-digit numbers that are likely to be a bit less than the right answer because I’m going to let my computer sneak up on the real answer by brute force. So let’s set both numbers to 900. (Sort of the math equivalent of Kentucky Windage. Oh, yes, that’s a thing.) What do I tell my computer? I think the logic should go something like this:

A=900
B=900
C=0
PALINDROME=0

{Keep going until I tell you to stop}
C = A * B
{Is C a palindrome AND bigger than PALINDROME?}
Yes: C becomes the new value for PALINDROME
No: B = B + 1
{Is B = 1000?}
Yes: reset B to 900 and add 1 to A
{Keep doing the above until A = 1000}

Print out our answer

I think we have enough information to jump in and do this now. I created a little script and this was the result:

906609 is the largest palindromic number that is a product of two three-digit numbers (993 and 913).

Just out of curiosity (and being an enormous nerd), I ran the script again with a timer and got:

real 0m26.480s
user 0m11.793s
sys 0m17.230s

For those of you who are interested, here’s a link to the script.

So what did we learn?

  • Recreational math is more common than you think.
  • Humans are still smarter than computers.
  • Putting a little thought on the front end into solving a problem makes for less work on the back end.