Friday, July 31, 2020

Eid al-Adha Post (Stewart Chapter 10: The Interplanetary Superhighway)

Table of Contents

1. Introduction
2. Lemay Chapter 12: Managing Simple Events and Interactivity
3. More on Java, Spots, and Vectors
4. A Rapoport Math Problem
5. Music: "Runnin'," "No Drens," "Plug It In"
6. Reblogging: Number Bases
7. Traditionalists: Coronavirus Edition
8. Calculating the Cosmos Chapter 10: The Interplanetary Superhighway
9. Shapelore Learning 14-5: Arrows
10. Conclusion

Introduction

Today is July 31st. As the month of July comes to a close, I'm getting more information from my new district -- the one in Orange County -- about its coronavirus plans for the upcoming school year.

I still like my hybrid plan -- the one that only works on my own Eleven Calendar. This is what I referred to in my last post as 3 Day Hybrid #2 -- Shift A learns on Fiveday, Sevenday, Nineday, Shift B on Sixday, Eightday, Tenday, and Shift C on Elevenday, Saturday, Fourday. This is the only plan that respects the sabbaths of the two largest religions in the world -- Christianity and Islam. But of course, my new district's plan is based on the real seven-day week, not my Eleven Calendar.

Speaking of religious holidays, in Islam, today is a major holiday (in addition to being the sabbath) -- Eid al-Adha. It's the day when Muslims celebrate the prophet Abraham (spelled Ibrahim in Arabic). It is one of two Islamic holidays observed by New York Public Schools (the other being Eid al-Fitr, the end of Ramadan), although in the last few years, Eid al-Adha fell during summer vacation when schools are already closed.

There's also a holiday on the Jewish Calendar this week as well -- Tisha B'Av. It's a day of fasting and commemorates the day when the First Temple was destroyed. (Tisha B'Av is on the ninth day of a lunar month and Eid al-Adha on the tenth, so they will occasionally be one day apart, like this year.)

OK, so let's get to the new district's plan. It consists of two stages -- online and hybrid. Therefore it corresponds to Stages 1 and 3 of my old district's plan -- and indeed, for the rest of this post, I'm referring to it as Stages 1 and 3 (even though my new district doesn't number the stages).

In both districts, the Stage 3 hybrid plan is fully online on Monday, and then Shift A attends Tuesday, Thursday while Shift B attends Wednesday, Friday. The difference is that in my new district, there is no 4 x 4 (or 4 x 3) plan where students take three classes per quarter (as in my old district). Instead, they take the standard load of six classes per semester. Classes are still 80 minutes, but in my new district, the Tuesday-Thursday shift attends three classes on Tuesday and the other three on Thursday, and likewise for the Wednesday-Friday shift.

It's interesting that both districts choose Monday as the day when both shifts are at home. Some other districts might choose Monday-Thursday as the in-person days and Friday as the at-home day, which might be more ideal for Muslims. But neither of my districts has a significant Muslim population -- and indeed, I know that my districts were thinking more about all the holidays that fall on Mondays (such as MLK Day and Presidents' Day). If Friday were the at-home day, then students on the Monday-Wednesday shift would lose a day every time Monday is a holiday. Thus it's better to make Monday the at-home day, so that the two shifts would remain equal in holiday weeks.

By the way, in both districts, Mondays are synchronous online learning -- that is, students log in to Zoom at a certain time for each class. When one shift has in-person learning, the other shift would have asynchronous online learning, where they might log in to Google Classroom (or online software such as IXL, Study Island) whenever it's convenient for them. This is how the 180 days and 240 minutes per day are counted.

Of course, all of this is predicated on LA or Orange County being removed from the state watch list at some point during the school year. I still worry that nothing short of a vaccine will make numbers in large urban counties go down far enough -- and a vaccine is likely years away. If my counties aren't removed from the watch list, then they must stay in Stage 1, full distance learning.

I've heard of the possibility of a waiver for counties stuck on the watch list. This waiver would allow elementary schools to open -- the idea being that if both parents are at work, high school students can take care of themselves, but kindergartners can't. Keep in mind that my old district is a high-school only district, while my new district is a K-12 unified school district.

This raises the possibility that Orange County will remain on the watch list all year, while only the elementary schools get a waiver to open. And this would be that, as a sub hired to work in this district, I must either sub in a elementary school or earn a total income of $0 for the school year.

My background, as you already know, is secondary math. The lowest grade that I've ever taught or subbed for is sixth grade, back at the old charter school (including one nine-year-old boy who had skipped a grade). I'm not sure what my comfort level is at teaching students younger than sixth. Yet, if the schools reopen under an elementary waiver, then I'll be expected, as a sub in this district, to cover elementary classes. So what will I do if this situation occurs?

Obviously, I'll try to cover for the highest possible grade at the elementary schools. In this district, elementary is K-6, and as I said earlier, I've taught sixth graders before. But I suspect that there'll be other subs just like me with mostly secondary experience. They'll grab those sixth-grade jobs quickly, leaving the kindergartners just for me. But again, I'm not sure whether I can handle an entire class of five-year-olds, even if there are fewer of them than normal (due to social distancing).

Indeed, the Stage 3 hybrid plan for elementary schools is that both shifts attend school everyday (including Monday) -- one in the morning and the other in the afternoon. This is sort of like the old half-day kindergarten classes before the recent trend to have full-day kindergarten. (I was an AM kindergarten kid.)

I'm not sure how I'll enforce the rules -- most notably the "wear a mask" rule, which many adults fear that young kids will readily break. (Indeed, no one's quite sure how enforcing "wear a mask" will work at the secondary level either.)

Most likely, I'll try to find a teacher of the same grade next door who might be able to help me. But then again, can we as adults enter other teachers' classrooms (before school, that is), or would that also violate social distancing?

As for the blog, recall that as soon as any district reopens, then I'll resume my normal blogging schedule for each day that there are students on campus (that is, Tuesday-Friday based on the secondary hybrid plan). So what should I do if only the elementary schools reopen? It would look awkward to post Geometry lessons on the blog -- as if there were in-person lesson -- when in reality only kids in Grades K-6 are in school.

And so I'll probably stick to a summer blogging schedule until secondary kids are in school in at least one of my districts. If the elementary schools reopen and I must cover a class, then I might even describe it (albeit a few days later), perhaps in "A Day in the Life" format -- although kindergarten is clearly unrepresentative of the secondary math class that I really want to teach.

I still like to believe that the high schools will open in Stage 3 in time for the new high school sports season, which will be at the start of the second semester. (And again, I'd like to believe that in my old district, Stages 2 and 4 will begin roughly at the corresponding quarters -- October for Stage 2 and March for Stage 4.)

But again, the virus will spread the way it wants to spread. The virus won't disappear just because someone says it's the start of the quarter, semester, or sports season. And again, I just don't see the virus numbers going down quickly enough for large urban counties to be dropped from the watch list.

Naturally, this situation won't be ideal. But once again, subbing in elementary schools might be the only way that I can earn any money at all this year.

Lemay Chapter 12: Managing Simple Events and Interactivity

I noticed that a new version of Java downloaded to my computer recently. Let's see how well this version works. We are doing Chapter 12 today -- I briefly did Chapter 11 in my Pi Approximation Day post. 


Here's the link to today's lesson:

http://101.lv/learn/Java/ch12.htm

Lesson 12 of Laura Lemay's Teach Yourself Java in 21 Days! is called "Managing Simple Events and Interactivity," and here's how this chapter begins:


Java events are part of the Java awt (Abstract Windowing Toolkit) package. An event is the way that the awt communicates to you, as the programmer, and to other Java awt components that something has happened. That something can be input from the user (mouse movements or clicks, keypresses), changes in the system environment (a window opening or closing, the window being scrolled up or down), or a host of other things that might, in some way, affect the operation of the program.

In other words, whenever just about anything happens to a Java awt component, including an applet, an event is generated. Some events are handled by the awt or by the environment your applet is running in (the browser) without you needing to do anything. paint() methods, for example, are generated and handled by the environment-all you have to do is tell the awt what you want painted when it gets to your part of the window. However, you may need to know about some events, such as a mouse click inside the boundaries of your applet. By writing your Java programs to handle these kinds of events, you can get input from the user and have your applet change its behavior based on that input.

The first example given here is a mouse clicking "down":


public boolean mouseDown(Event evt, int x, int y) {
    System.out.println("Mouse down at " + x + "," + y);
    return true;
}

(Lemay omits the closing brace, so I just add it on myself.) We read:

By including this method in your applet, every time your user clicks the mouse inside your applet, this message will get printed. The awt system calls each of these methods when the actual event takes place.
We're then warned that in applets, System.out.println might print different places depending on our browser. I already know where it prints on my system -- the same place that it prints during Java applications.

I'm confused at to what return true is for. We read:

Note that this method, unlike the other system methods you've studied this far, returns a boolean value instead of not returning anything (void). This will become important tomorrow when you create user interfaces and then manage input to these interfaces; having an event handler method return true or false determines whether a given component can intercept an event or whether it needs to pass it on to the enclosing component.
(Of course, we know by now that "tomorrow" doesn't really mean tomorrow.)
The example that uses these mouse down events is a Spots applet. It's explained thusly:

This class uses three other awt classes: GraphicsColor, and Event. That last class, Event, needs to be imported in any applets that use events. The class has four instance variables: a constant to determine the maximum number of spots that can be drawn, two arrays to store the x and y coordinates of the spots that have already been drawn, and an integer to keep track of the number of the current spot.
The first listing is this Spots applet:


Listing 12.1. The Spots applet.
 1: import java.awt.Graphics;
 2: import java.awt.Color;
 3: import java.awt.Event;
 4:
 5: public class Spots extends java.applet.Applet {
 6:
 7:     final int MAXSPOTS = 10;
 8:     int xspots[] = new int[MAXSPOTS];
 9:     int yspots[] = new int[MAXSPOTS];
10:     int currspots = 0;
11:
12:     public void init() {
13:         setBackground(Color.white);
14:     }
15:
16:     public boolean mouseDown(Event evt, int x, int y) {
17:         if (currspots < MAXSPOTS) {
18:             addspot(x,y);
19:             return true;
20:         }
21:         else {
22:            System.out.println("Too many spots.");
23:            return false;
24:         }
25:     }
26: 
27:     void addspot(int x,int y) {
28:          xspots[currspots] = x;
29:          yspots[currspots] = y;
30:          currspots++;
31:          repaint();
32:     }
33:     
34:     public void paint(Graphics g) {
35:         g.setColor(Color.blue);
36:         for (int i = 0; i < currspots; i++) {
37:               g.fillOval(xspots[i] - 10, yspots[i] - 10, 20, 20);
38:        }
39:     }
40: }
OK, I'm successfully able to paint the ten spots on my screen. We learn that we're able to track double-clicks as well:


public boolean mouseDown(Event evt, int x, int y) {
    switch (evt.clickCount) {
      case 1:  // single-click
      case 2:  // double-click
      case 3:  // triple-click
      ....
    }
}

There are also events for "mouse up" (releasing the mouse button), "mouse move," and "mouse drag" (as in "dragging" an object across the screen).

The second listing uses these features to draw lines on the screen:

That's it-just 60 lines of code and a few basic methods, and you have a very basic drawing application in your Web browser. Listing 12.2 shows the full text of the Lines applet so that you can put the pieces together.

Um, Lemay -- there are actually seventy lines of code there, not sixty. You miscounted the lines. As usual, I'll fix the line count in this listing:
Listing 12.2. The Lines applet.

 1: import java.awt.Graphics;
 2: import java.awt.Color;
 3: import java.awt.Event;
 4: import java.awt.Point;
 5:
 6: public class Lines extends java.applet.Applet {
 7:
 8:     final int MAXLINES = 10;
 9:     Point starts[] = new Point[MAXLINES]; // starting points
10:     Point ends[] = new Point[MAXLINES];    // endingpoints
11:     Point anchor;    // start of current line
12:     Point currentpoint; // current end of line
13:     int currline = 0; // number of lines
14:
15:     public void init() {
16:         setBackground(Color.white);
17:     }
18:
19:     public boolean mouseDown(Event evt, int x, int y) {
20:        if (currline < MAXLINES) {
21:            anchor = new Point(x,y);
22:            return true;
23:       }
24:        else  {
25:           System.out.println("Too many lines.");
26:           return false;
27:        }
28:     }
29: 
30:    public boolean mouseUp(Event evt, int x, int y) {
31:         if (currline < MAXLINES) {
32:             addline(x,y);
33:             return true;
34:         }
35:         else return false;
36:    }
37: 
38:     public boolean mouseDrag(Event evt, int x, int y) {
39:        if (currline < MAXLINES) {
40:            currentpoint = new Point(x,y);
41:            repaint();
42:            return true;
43:         }
44:        else return false;
45:     }
46:
47:     void addline(int x,int y) {
48:         starts[currline] = anchor;
49:         ends[currline] = new Point(x,y);
50:         currline++;
51:         currentpoint = null;
52:         anchor = null;
53:         repaint();
54:     }
55: 
56:     public void paint(Graphics g) {
57: 
58:         // Draw existing lines
59:         for (int i = 0; i < currline; i++) {
60:             g.drawLine(starts[i].x, starts[i].y,
61:                  ends[i].x, ends[i].y);
62:         }
63: 
64:         // draw current line
65:         g.setColor(Color.blue);
66:         if (currentpoint != null)
67:             g.drawLine(anchor.x,anchor.y,
68:             currentpoint.x,currentpoint.y);
69:     }
70:}
OK, I'm successfully able to draw the lines on my screen. This time, the applet flicker is back, since the paint() method must redraw every line.

We move on to keyboard events. It's more complex than the getKey method on the TI calculator, as there are both key up and key down methods, and it's possible to get both the ASCII code and the actual character:


public boolean keyDown(Event evt, int key) {
    System.out.println("ASCII value: " + key);
    System.out.println("Character: " + (char)key);
    return true;
}


public boolean keyUp(Event evt, int key)  {
   ...
}

I fix Lemay's error in the keyUp method where she misspells boolean. (No, I'm not trying to show Lemay up by pointing out all her typos -- goodness knows how many typos I've made over the years on this blog! It's mainly to alert my readers of the error before they cut-and-paste these into their own JRE's and make the same error.)

Here is a description of the next applet:

Let's look at an applet that demonstrates keyboard events. With this applet, you type a character, and that character is displayed in the center of the applet window. You then can move that character around on the screen with the arrow keys. Typing another character at any time changes the character as it's currently displayed.
This program uses variables like Event.DOWN for the down key, Event.UP, and so on.

Here is the third listing:


Listing 12.3. The Keys applet.
 1: import java.awt.Graphics;
 2: import java.awt.Event;
 3: import java.awt.Font;
 4: import java.awt.Color;
 5: 
 6: public class Keys extends java.applet.Applet {
 7: 
 8:     char currkey;
 9:     int currx;
10:    int curry;
11:
12:     public void init() {
13:         currx = (size().width / 2) -8;  // default
14:         curry = (size().height / 2) -16;
15:
16:         setBackground(Color.white);
17:         setFont(new Font("Helvetica",Font.BOLD,36));
18:     }
19:
20:     public boolean keyDown(Event evt, int key) {
21:         switch (key) {
22:         case Event.DOWN:
23:             curry += 5;
24:             break;
25:         case Event.UP:
26:             curry -= 5;
27:             break;
28:         case Event.LEFT:
29:             currx -= 5;
30:             break;
31:         case Event.RIGHT:
32:             currx += 5;
33:             break;
34:         default:
35:             currkey = (char)key;
36:         }
37:
38:         repaint();
39:         return true;
40:     }
41:
42:     public void paint(Graphics g) {
43:         if (currkey != 0) {
44:             g.drawString(String.valueOf(currkey), currx,curry);
45:         }
46:     }
47: }
Lemay gives us the following warning:

To get this applet to work, you might have to click once with the mouse on it in order for the keys to show up. This is to make sure the applet has the keyboard focus (that is, that its actually listening when you type characters on the keyboard).
And my computer is like that -- I must click inside the applet before the keys appear. I also notice that if I move the letter too far left or up, currx or curry keeps decrementing to negative values, but the letter becomes invisible. So it's possible to move the letter too far up or down.

Some other keys produce interesting effects here. The space bar and Enter keys are invisible, but Backspace and certain other keys appear as a square instead. And while Caps Lock does allow us to change between lowercase and uppercase letter, the Caps Lock itself appears as a foreign character.

On the other hand, some keys don't change the current letter at all. Here's an explanation:

Shift, Control (Ctrl), and Meta are modifier keys. They don't generate key events themselves, but when you get an ordinary mouse or keyboard event, you can test to see whether those modifier keys were held down when the event occurred. Sometimes it may be obvious-shifted alphanumeric keys produce different key events than unshifted ones, for example. For other events, however-mouse events in particular-you may want to handle an event with a modifier key held down differently from a regular version of that event.

We learn that the "Meta" key is actually "Alt" on most PC's, and that these are also used for mice with multiple buttons:


public boolean mouseDown(Event evt, int x, int y ) {
    if (evt.metaDown())
         // handle a right-click
    else if (evt.controlDown())
        // handle a middle-click
    else // handle a regular click
}

Finally, it's possible to dispense with all of these methods with a single handleEvent method:


public boolean handleEvent(Event evt) {
    switch (evt.id) {
    case Event.MOUSE_DOWN:
        System.out.println("MouseDown: " +
                evt.x + "," + evt.y);
        return true;
    case Event.MOUSE_UP:
        System.out.println("MouseUp: " +
                evt.x + "," + evt.y);
        return true;
    case Event.MOUSE_MOVE:
        System.out.println("MouseMove: " +
                evt.x + "," + evt.y);
        return true;
    case Event.MOUSE_DRAG:
        System.out.println("MouseDrag: " +
                evt.x + "," + evt.y);
        return true;
    default:
        return false;
    }
}

In the Q & A, Lemay returns to the Spots applet and tells us what to do if we wish to display more than ten (the maximum number of) spots:

You can do one of a couple things:
The first thing to do is test, in your addspot() method, whether the number of spots has exceeded MAXSPOTS. Then create a bigger array, copy the elements of the old array into that bigger array (use the System.arraycopy() method to do that), and reassign the x and y arrays to that new, bigger array.
The second thing to do is to use the Vector class. Vector, part of the java.util package, implements an array that is automatically growable-sort of like a linked list is in other languages. The disadvantage of Vector is that to put something into Vector, it has to be an actual object. This means you'll have to cast integers to Integer objects, and then extract their values from Integer objects to treat them as integers again. The Vector class allows you to access and change elements in the Vector just as you can in an array (by using method calls, rather than array syntax). Check it out.

OK, Lemay, that's exactly what I'll do. I will check it out.


More on Java, Spots, and Vectors

That's the pattern I've been following lately -- whenever Lemay suggests I try something or check something out, I'll do it. So our goal is to implement the Spots applet using Vectors so that we can expand its size and paint more than ten spots. But Lemay doesn't completely explain how Vectors work, so we'll have to figure it out ourselves.

She does tell us that Vector is part of the java.util package. I assume this means that we need to import java.util.Vector.

Also, she tells us that we need to cast from int to Integer and back, which means that I'll have to use the tags (Integer) and (int).

It took me a while to figure it out, but this is what I came up with:

import java.awt.Graphics;
import java.awt.Color;
import java.awt.Event;
import java.util.Vector;

public class Spots2 extends java.applet.Applet {

    Vector <Integer> xspots = new Vector <Integer> ();
    Vector <Integer> yspots = new Vector <Integer> (); 

    public void init() {
        setBackground(Color.white);
    }

    public boolean mouseDown(Event evt, int x, int y) {
            addspot(x,y);
            return true;
    }

    void addspot(int x,int y) {
         xspots.insertElementAt((Integer)x, xspots.size());
         yspots.insertElementAt((Integer)y, yspots.size());
         repaint();
    }
    
    public void paint(Graphics g) {
    g.setColor(Color.blue);
        for (int i = 0; i < xspots.size(); i++) {
              g.fillOval((int)(xspots.elementAt(i)) - 10, (int)(yspots.elementAt(i)) - 10, 20, 20);       
       }
   }
}   

As you can see, there were a few things I had to figure out that Lemay doesn't explain. First of a-ll, I had to declare xspots and yspots to be Vector <Integer> -- that is, a Vector object whose elements are Integers. Fortunately, I recognize this notation (called "template") from C++.

I kept wanting to use brackets for the elements, as we would in an array -- but then I just kept getting errors over and over. I tried typing in xspots. -- and as soon as I typed that last dot, a list of instance methods appeared on my compiler. I quickly figured out that insertElementAt() is how we insert elements into our Vector. Just as in arrays, the first element is numbered 0 while the last element is size()-1, and so inserting at size() means inserting at the end of the Vector.

To retrieve an element, I found the method elementAt(). Since size() gives the size of our object, this eliminated the need for both currspots and MAXSPOTS.

OK, I was able to meet Lemay's challenge and use Vector to draw more than ten spots, even though I had to figure out several concepts that are beyond what she's taught so far. Well, this is what it takes for me to become an expert coder someday.

A Rapoport Math Problem

Today on her Daily Epsilon of Math 2020, Rebecca Rapoport writes:

The positive root of the equation:

x^2 - 27x - 124 = 0

Let's try factoring this on the left side -- fortunately, 124 doesn't have very many factors:

(x + 4)(x - 31) = 0
x = -4 or x = 31

Therefore the desired positive root is 31 -- and of course, today's date is the 31st. Notice that most quadratics on the Rapoport calendar are factorable -- otherwise the roots would be irrational (and hence not a possible date).

There are no Geometry problems on the Rapoport calendar this final week of July.

Music: "Runnin'," "No Drens," "Plug It In"

This week I post the lyrics for all the songs I sang at the old charter school during Weeks 19-20.

The first song I sang was "Runnin'." This comes from the movie Hidden Figures, since our class took a field trip to watch the movie. I finally posted the lyrics to it on the day that Katherine Johnson died at the age of 101 -- just three weeks before the virus closure. I might as well post them again today:

https://genius.com/Pharrell-williams-runnin-lyrics

[Verse 1]
Summertime in Virginia was a oven (oven)
All the kids eating ice cream with their cousins (cousins)
I was studyin' while you was playing the dozens (dozens)
Don't act like you was there when you wasn't

[Refrain 1]
Runnin' from the man (man) runnin' from the badge (badge)
Don't act like you was there when you wasn't
Runnin' toward our plans (plans) in the judge's hands (hands)
Don't act like you was there when you wasn't

[Pre-Chorus]
I know they say you crawl 'fore you walk
But in my mind I already jog
If I stand still I cannot get far
They want the Moon, I'm on Mars

[Chorus]
Sometime my mind dives deep
When I'm runnin'
I don't want no free ride
I'm just sick and tired of runnin'
Some nights I cry
Cause I can see the day comin'
Together we'll fight
Oh, but no more runnin'


[Verse 2]
You and I are not different from each other (other)
Shut our eyes, when we slumber I see numbers (numbers)
Black and white, we're computers, I ain't colored (colored)
Don't act like you was there when you wasn't

[Refrain 2]
From runnin' to exams (exams) two jobs for a man (man)
Don't act like you was there when you wasn't
In the law of the land (land) the women were often banned (banned)
Don't act like you was there when you wasn't


[repeat Pre-Chorus and Chorus]

Our second song is "No Drens," a parody of TLC's "No Scrubs":

NO DRENS

A DREN is a guy that thinks he's fly
And is also known as a buster
Always talkin' about what he wants
And DOESN'T KNOW BASIC MATH
So (no)

I don't want your number (no)
I don't want to INTERVIEW you and (no)
I don't want YOUR RESUME (no)
I don't want none of your time and (no)

[Chorus:]
I don't want no DREN
A DREN is a guy that can't get no JOB from me
Hanging out the passenger side
Of his best friend's ride
Trying to GET HIRED BY me
I don't want no DREN
A DREN is a guy that can't get no love from me
Hanging out the passenger side
Of his best friend's ride
Trying to GET HIRED BY me

But a DREN is checkin' me
But his MATH is kinda weak
And I know that he cannot approach me
'Cause I'm lookin' like class and he's lookin' like trash
WHEN HE DOESN'T KNOW BASIC MATH
So (no)

I don't want your number (no)
I don't want to INTERVIEW you and (no)
I don't want YOUR RESUME (no)
I don't want none of your time (no)

[Chorus]

The final song is "Plug It In," a song about substituting into equations:

PLUG IT IN

Plug it in, plug it in!
The variables are the letters.
Plug it in, plug it in!
That's where you put the numbers.
Use PEMDAS to simplify,
After you substitute.
To reduce the number of terms
You may need to distribute.
Plug it in, plug it in!


This is a song whose tune is lost, so I could invent a Mocha tune now for it. Even though I don't remember what I originally sang, I suspect I was influenced by this old 1990's commerical:



EDIT: I performed the song in class on September 11th. Look ahead to my September 11th post for my latest version of this song:

http://commoncoregeometry.blogspot.com/2020/09/lesson-1-8-one-dimensional-figures-day.html

In my Pi Approximation Day post, I wrote more about how we might tune a guitar to play some of these EDL songs. In that post -- influenced by the fact that my real guitar has a broken tuning knob keeping the D string stuck at C -- I came up with the following tuning:

EACGAE

with four of the strings matching standard tuning -- only D and B strings are tuned a whole tone low.

So instead of trying to come up with a "Plug It In" tune, let's just assume that my "Plug It In" song matches the jingle above. That way I can spend the rest of this music section on this tuning. (And by posting this on the last day of July, I can click on the July 2020 archives and have this post show up on top.

First of all, I was trying to decide whether to tune (based on Kite colors) the C and G strings green and the rest white, or to tune the C and G strings white and the rest yellow. Relatively speaking there is no difference -- in either case, the high A and E strings are tuned a major sixth above the C and G strings, respectively.

But if the whole point of this tuning is to make the guitar notes match Mocha playable notes, then there is a difference. The note "green G" isn't even playable on Mocha. Meanwhile, although "green C" is playable at Degree 160, we notice that 160 isn't a multiple of 18, so dividing it into 18 equal divisions of length (that is, 18EDL) isn't possible. (If we were fretting our guitar into 16EDL instead, then green C works. But we prefer 18EDL for the "Arabic lute index finger" at 18/17.)

On the other hand, white C is at Degree 162 -- and 162 is a multiple of 18. Thus all the notes on the C string are playable on Mocha. Since 162/18 = 9, all the frets are 9 Degrees apart. So the first fret gives us Degree 153, the second fret gives us Degree 144, and so on. The white G on the next string is Degree 108, also a multiple of 18. The frets on this string are 6 Degrees apart.

Then the other four strings are all tuned to yellow E or A. This means that we must add the syllable "yo" to the color of any note on these strings -- the first fret is "suyo," the fourth fret is "ruyo." The second fret is just yellow or "yo," and the third fret, ordinarily green, cancels out the yellow of the open string to become white or "wa." Only the "wa" notes on these strings (frets 3, 8, 13) are playable on Mocha -- any note containing yellow or "yo" as part of its color is unplayable.

As far as chords are concerned, here are some open chords that are playable in EACGAE tuning:

C: xx0030

G/B: x22023
G/D: xx2023
G6: 322020
Gadd9: 322003

D7: xx2232

Am7: x00000

Em7: 022020

One thing I haven't written much about so far are barre chords. Movable barre chords on a standard guitar (such as F major/minor, F# major/minor, and so on) presume EDO fretting, not EDL. But there's one exception -- the Am7 chord with all open strings. Then placing a barre finger across all the strings (and no other fingers on the fretboard) does produce other minor 7th chords -- for example, doing so at the third fret gives Cm7. An important minor 7th chord here is Bm7:

Bm7: x22222

This means that we can play all six major chords and minor seventh chords that come from the notes of the the G major scale -- except perhaps G major itself. We can play it as G/B or G/D, but we just don't have enough fingers to fret G on the lowest string. (This is like F major in standard tuning -- we'd like to play an F major chord using the open A, but we can't unless we play it as F/A, since there's no extra finger to fret F on the lowest string.)

But as long as we accept G/B or G/D as the G major chord, then it's easy to play many songs in the key of G major. Technically speaking, the key of E (natural) minor has the same major and minor chords as G major, but the fact that all minor chords appear as m7 chords instead of plain minor chords will discourage us from playing songs in minor keys.

Earlier, I was assuming that minor keys would be easier to play in EDL, since both minor chords and EDL scales are utonal (undertonal) while major chords are otonal (overtonal). Again, the simplest EDL with a minor chord (including an octave above the root) is 6EDL, while the simplest EDL with a similar major chord is 30EDL.

But in this tuning, G major is easier to play than any minor key. I was thinking about this -- perhaps in a math class (where many students are in a sad mood anyway, just because it's math), it might be better to play minor songs (to match their mood). Then again, I kept telling myself to write more songs in minor keys, but I end up with more major songs anyway.

One of the few minor songs that I made up for class, ironically, is today's "Plug It In." The early "Dren Song" and "Mousetrap Car Song" are also minor. Today's "No Drens" is a parody of a TLC song that is also in a minor key. (Indeed, many popular songs these days are in minor keys, which was another reason that I meant to compose more minor songs.) But this guitar tuning will tilt my songs more towards the major keys, specifically G major.

Until I get the tuning knob fixed, I will keep my guitar tuned to EACGAE (and I double-checked these notes with my musical keyboard). But if the goal is someday to have a real 18EDL-fretted guitar tuned to EACGAE, then I should only play chords that are playable in EACGAE.

For example, it's tempting to play an Am chord as x00200, fretting the G string at the second fret to make it an A (and get rid of the 7th). The problem is that this A would be a white A, while the open A string is a yellow A. Any chord with two notes with the same letter value but different colors will sound dissonant. Thus I shouldn't play that Am chord at all.

I returned to Kite's website to look for possible 7-limit chords that are playable in EACGAE. Many of these chords combine red/"ruyo" notes at the fourth fret with green/white notes at the third fret. (The Kite name for these chords assumes that the root note is white -- it's possible to play blue or "zo" chords simply by playing a white 3rd, 5th, or 7th above a red root.)

C# gu zogu-5: x44043 (C#dim)
C yo-6: xx0000 (C6)
C yo-7: xx0020 (C7)
C ru gu-7: x34333 (Cmaj7)
E zo yo-6: xx4443 (Em6)

It's worth checking to see whether there are any first fret (su) chords that fit with these above chords.

I also haven't said much about the notes above the fourth fret. The fifth fret is thu (or thuyo on the yellow strings), the sixth fret is white (or yellow), and the seventh fret is lavender (or luyo). Notes involving 11 or 13 different greatly from standard 12EDO/12TET -- as do notes involving 7, but the difference is that there's no simple way even to name 11- or 13-limit notes. Thus chords involving 11 or 13 may sound weird when I try to simulate them on my current 12TET-fretted guitar.

The eighth fret is green (on the white) strings or white (on the yellow strings). Just like the third fret notes, all eighth fret notes are playable in Mocha. The ninth fret is exactly one octave above the open strings (corresponding to the twelfth fret in standard tuning).

Using the remote frets, it's possible to play EDL scales on a single string. To play the 18EDL scale, we start at the open string and play each note up to the ninth fret. To play 16EDL, we start at the second fret and play up to the tenth fret. For 14EDL we play frets 4-11, and for 12EDL frets 6-12.

If we play these scales on the C or G strings, then each scale is Mocha playable. This suggests a way to play actual melodies (lead guitar) rather than just chords (rhythm guitar) -- the melody is played on the C or G strings, and a running bass line can be played on the low E or A strings.

No scale beyond 18EDL can be played on the guitar -- forget about 26EDL, since not even 20EDL is playable here. I'd like it if either 20EDL or 10EDL were playable here, but the problem with 10EDL is that the last note of that scale (the note that completes the octave) would be played at the thirteenth fret, corresponding to fret 22 in standard fretting. My guitar has only 21 frets, and most real guitars don't have a fret 22. This is why we must stop at the 12th fret (19th fret standard), making 12EDL the simplest playable scale. Thus neither 10EDL or 20EDL is playable on this guitar. (It's reminiscent of the fact that Sound 255/Degree 6 is the highest playable note in Mocha, with Degree 5 impossible.)

If my goal is to compose tunes that correspond to playable EDL's on the guitar (either my real guitar, roughly, or a hypothetical guitar fretted to EDL) then we must stick to 12EDL or 18EDL (with 14EDL and 16EDL also possible).

Reblogging: Number Bases

Three years ago today -- July 31st, 2017, the summer after I left the old charter school I blogged about number bases. This is a topic that I blog about from time to time, and it happens that topics related to number bases are landing on reblogging days.

That post is quite long, so I won't reblog that entire post today (especially since I'm doing so many other summer projects this year). When I first posted this three years ago, it drew the attention of some of the quoted posters at the Dozens Online Forum, so I'm happy to repost this today.

Divisibility Rules in Decimal:
I've mentioned the Dozens Online Forum earlier in this post. As its name implies, that forum draws users who believe that the perfect base is dozenal, or base 12.

But before we try to discover the perfect base ourselves, note that there are other considerations when determining the perfect base between the size of the base. For example, since our current base is 10 and the dozenalists advocate base 12, why don't we compromise and just use base 11. After all, if 10 and 12 are both human-scale bases, then surely base 11 must be human-scale as well.

At Dozens Online, there are many threads devoted to finding the perfect base. The dozenalists have developed a special jargon for describing number bases, which include:

-- alpha and omega
-- log wheel
-- opaque
-- sevenite
-- SPD
-- Stevinian algorithm
-- tuning
-- twelfty
-- uncial and unqual

Don't worry if you don't understand any of these words now -- by the end of this post, I'll have described all of them. The concepts represented by these terms are used to determine which base is the best.

Let's begin with "alpha" and "omega." These are used for the various divisibility rules. The following is a link to a typical list of divisibility rules:

http://www.mathwarehouse.com/arithmetic/numbers/divisibility-rules-and-tests.php

We notice that many of these divisibility rules are different depending on the factor. For example, divisibility by two only requires looking at the last digit:

A number is divisible by 5 if its last digit is a 0 or 5.

But divisibility by four requires looking at the last two digits:

A number is divisible by 4 if the number's  last two digits are divisible by 4.

And divisibility by three requires looking at all the digits:

A number is divisible by 3 if the sum of its digits  is divisible by 3.

Why do some factors require one digit, others two digits, and others all digits? Well, let's look at the most straightforward divisibility rule:

A number passes the test for 10 if its final digit is 0

If we think about this for a moment, it should be obvious why this works -- a multiple of ten should have a whole number of tens, with no ones left over, so the digit in the ones place should be 0. Of course, this is all because we're working in base 10. In ternary (base 3), a number ending in 0 is a multiple of three, in quaternary a number ending in 0 is a multiple of four, and so on.

This strongly suggests that divisibility rules are base-dependent. The divisibility rules for a base like dozenal are different from the corresponding rules in decimal.

We notice that the divisibility rules requiring only the last digit are 2, 5, and 10 -- and it doesn't escape our notice that 2 * 5 = 10. In general, all factors or divisors of the base have this simplest possible divisibility rule.

The divisibility rule for 9 should sound familiar:

A number is divisible by 9 if the sum of the digits  are evenly divisible by 9.

This rule is mentioned in the Square One TV song "Nine, Nine, Nine." At the Dozens Online Forum, the number one less than the base is called the omega of the base. All factors of the omega have the same divisibility rule, so the digit-sum works for 3 as well as for 9.

On the other hand, 11 is one more than the base:

A number passes the test for 11 if the difference of the sums of alternating digits is divisible by 11.

At the Dozens Online Form, the number one more than the base is called the alpha of the base. All factors of the alpha have the same divisibility rule, but unfortunately 11 is prime, so no factors inherit the alpha rule.

There are other divisibility rules mentioned at the link above. Let's look at six:

Since 6 is a multiple of 2 and 3, the rules for divisibility by 6 are a combination of the rule for 2 and the rule for 3.

This is called a compound test. In this case, it combines the divisor rule for the factor 2 with the omega rule for the factor 3.

Earlier, we mentioned that for 4, we must look at the last two digits. This works because square of the base, 100, is divisible by 4. For 8, we must look at the last three digits. This works because the cube of the base, 1000, is divisible by 8. At Dozens Online, these are called regular tests.

(By the way, another word on the list is "log wheel." Apparently, "log wheel" refers to writing the regular numbers in a base on a wheel. Here "log" means logarithmic -- the regular numbers are spaced logarithmically. In a base like hexadecimal, the regulars are 1, 2, 4, and 8 spaced equally around the wheel, but in bases that aren't powers this is a little more complex.)


Divisibility Rules in Dozenal:
It's now time to look at the divisibility rules in other bases. The following link gives a list of bases that have many divisibility rules relative to the size of the base:

https://mrob.com/pub/math/numbers-5.html#la21

The list of good bases according to this link is:

2, 3, 4, 6, 9, 12, 16, 21, 25, 36, 60, 81, 85, 120, 225, 240

Notice that the link provides the following disclaimer:

21 is the lowest base with 'easy' divisibility tests for 8 different numbers, assuming that the casting out 11's method is not considered 'easy'.

The "casting out 11's" method is what Dozens Online calls the "alpha" method. Surely we want to count the "alpha" method, since Dozens Online counts it and even gives it a special name.

But as it turns out, even though alpha counts, the list of "best bases" including alpha doesn't provide as good a list as the previous list:

2, 3, 4, 5, 7, 9, 11, 15, 19, 25, 29, 35, 41, 49, 55, 71, 119

We notice that most of these bases are odd -- and in fact, many of them are exactly one less than the bases from the first list. For example, we see that base 11 appears on the second list, while base 12 (dozenal) appears on the first list.

At Dozens Online, there is a strong preference for even bases over odd bases. We can look at the multiplication table for decimal to see why -- half of our base is 5. And the 5's times tables are very easy -- 5, 10, 15, 20, 25, 30, 35, 40, 45, and 50. In even bases, the times tables for half of the base are just as easy. So the 4's in octal, the 6's in dozenal, and the 7's in base 14 are just as easy as the 5's are in decimal.

Notice that 9 makes both lists -- now let's look at the times tables in base 9. This base has one fewer digit than decimal, and since it's odd, it doesn't have an easy row in the times table similar to the 5's in decimal. So base 9 is like taking base 10 and eliminating the 5's row -- that is, we're "simplifying" the table by removing one of its easiest rows!

At Dozens Online, odd bases cause a "tuning problem." The user who created this term (icarus) compares this to an old-fashioned radio. We solve the tuning problem by tuning an odd base either up to the next even base or down to the previous even base.

Let's return to bases 11 and 12. Base 11 has divisibility rules for 2, 3, 4, 5, 6, 10, 11, and 12. When we tune this base up to the next even base of 12, the old divisor (11) becomes an omega, while the factors of the old alpha (2, 3, 4, 6, 12) become divisors.

Thus in determining which base has more divisibility rules, we must compare the omega of the odd base to the alpha of the even base. And base 11 has divisibility rules for both 5 and 10, while dozenal has a divisibility rule for 13. Base 11 has one more divisibility rule than 12, and therefore 11 makes the list while 12 doesn't.

This pattern occurs with many of the odd bases on the second list -- the odd base has an even omega while the even base has an odd alpha, and so tuning up from odd base to even base renders both the old omega and its half opaque, while rendering the new alpha (often a useless prime) transparent. So tuning up from base 9 to decimal gives us 11 at the expense of 4 and 8, and tuning up from base 15 to hexadecimal gives us 17 at the expense of 7 and 14. Some cases are even worse -- tuning up from base 29 to base 30 (trigesimal) gives us 31 at the expense of 7, 14, and 28, and so on. This is why mainly odd bases appear on the second list.

As it turns out, the second list overvalues the alpha. Given a choice among the divisor, omega, and alpha rules, we prefer the divisor rule as it's the simplest. We avoid overvaluing the alpha by choosing the first list, where only the divisor and omega rules are considered. Even though this list contains odd bases, there are a healthy number of even bases as well.

Let's look at this first list again:

2, 3, 4, 6, 9, 12, 16, 21, 25, 36, 60, 81, 85, 120, 225, 240

We assume that our ideal base appears somewhere on this list -- and now, finally, we can consider the size of the base. We see that of the smaller bases, of course binary makes the list as it's the smallest possible base, ternary makes the list (as it adds a divisibility rule for 3 to binary), and quaternary makes the list (as it adds a divisibility rule for 4 to ternary). It doesn't take much for small bases to make the list -- and so we consider the smallest nontrivial base on the list to be six. Senary is the first base that makes the list after a base that misses it (base five, or quinary). And so we consider all smaller bases to be below human scale. Like binary, bases 3 and 4 are more suitable for computers (which can handle numbers with many digits) than for humans.

Now we need an upper limit to the human scale. We notice that since we are skipping odd bases, there is a huge gap between hexadecimal and the next even base, 36. This increases the size of the table greatly, and so we consider base 36 to be above the human scale. Base 36 is interesting in its own right, if only because its 36 digits could be the decimal digits 0-9 plus 26 letters a-z.

The larger even bases on the list, 60, 120, and 240, are definitely on the superhuman scale. Of these, 60 and 240 have primes for both alpha and omega, while 120 has these as composites. Because of this, one Dozens Online user, Wendy Krieger, actually advocates 120 as the perfect base. She often refers to this base as "twelfty."

And indeed, base 120 almost made the second list despite it being even. Tuning from base 119 to twelfty gives us 11 and 121 at the expense of 59 and 118. Yet 120 fails to make the list because it merely ties the record set by 119, but only outright record breakers make the list.

Anyway, our human scale runs from base 6 to base 16. In this range, there are four bases that make the list, namely 6, 9, 12, and 16. But base 6 is borderline human scale -- many consider it to be too low of a base (like bases 2-4). And base 16 is also borderline -- many consider it to be too high of a base (like base 36). With base 9 already eliminated as an odd base, this leaves only one base -- the perfect base.

And this is why the Dozens Online Forum was created -- its users view it as the perfect base.

For the rest of this post, I actually want to focus not as much on dozenal as on the borderline cases, and whether we should adjust the borders up or down. This is when we must consider how easy it is to learn arithmetic in the various bases.

By the way, before we leave the list of bases, I point out that the odd bases in the first list can be tuned down to the previous even base -- then the old base's omegas become divisors and the old base's divisors become alphas (thereby restoring the importance of alpha). This means that we could add bases 8, 20, 24, 80, 84, and 224 to the list. (Notice that our usual base, decimal, doesn't make any version of list at all.)

The official name of base 12 is duodecimal, just as base 16 is hexadecimal. Yet advocates of base 12 like to refer to their chosen base as dozenal. This is because "duo" means two, so "duodecimal" actually means two beyond "decimal" (base 10). But base 12 advocates prefer complete independence from decimal, so they don't want a base with "decimal" in its name. Since many people are already familiar with groups of 12 via the concept of a "dozen," the preferred name of the base is "dozenal."

Some base 12 advocates want to go a step further. Even "dozenal" is unacceptable because "dozen" comes from the French word douze, which is the same as the Latin duodecim. So even "dozen" indirectly refers to "decimal" in its name.

There is another Latin word, uncia, that actually means "twelfth." It appears in the English words "inch" (1/12 of a foot) and "ounce" (1/2 of a troy pound). So some Dozens Onlune users prefer using "uncial" as the name of base 12. The name "unqual" is a modification of "uncial" -- the thought being that "uncial" refers to the fraction 1/12 while "unqual" refers to the whole number 12.

We normally write numbers in other bases by writing the name of the base as a subscript (which doesn't show up well in ASCII). So, for example, 43_7 means 43 (base 7). Sometimes Pappas even writes the base out in letters, as in 43_seven. The problem with writing 27_12 to mean 27 (dozenal) is that the base 12 is itself written in decimal -- so again we're favoring decimal.

On the Dozens Online Forum, a special notation is used to name bases:

{a} (decimal)
{c} (dozenal)
{e} (14-mal)
{g} (hexadecimal)

and so on. The idea is that in hexadecimal, the digits are 0-9 and a-f, and so the first letter that isn't used in the base is g, and so {g} is the name of the base. Dozenal requires 0-9 and a-b, and so the next letter {c} is the name of the base. Decimal uses only 0-9, and so the first letter of the alphabet, {a}, can name the base.

To me, it might have been interesting to use {a} for base 9 rather than 10. Then {d} works out to be base 12 (as in dozenal), {f} would be base 14 (as in fourteen-mal), and {h} would be base 16 (as in hexadecimal), and so on. But actually, no one on Dozens Online ever uses "d" for "dozenal." If they do use the subscript"d" to stand for the first letter of a base, it instead means decimal. Instead, the letter "z" is used for dozenal ("dozen" is often shortened to "zen"), "o" is used for octal, and so on. Again, these are subscripts and are separate from the braces, where {a} is decimal and {c} is dozenal.

Here's a link to a Dozens Online post, by the user Double Sharp, which uses the symbols {a} and {c} in order to switch from decimal to dozenal in a single post:

http://z13.invisionfree.com/DozensOnline/index.php?act=ST&f=7&t=1620&view=getnewpost

{a} (default decimal)

Indeed some numbers don't have ten or eleven in them, but most do. The reason why separate-identity is a flawed idea is because it presupposes that ten-ness is inherent in the 1 of "10". Indeed ten-ness is inherent somewhere in that numeral, but it is not to be found in that one. It is to be found in our mental assumption that any number with multiple digits is decimal. If we just overturn that and say that any number on a particular page or post is dozenal, then "10" would instantly switch to having inherent twelve-ness, and it would once again not be found in the "1" but in our assumption.

{c} (default dozenal)

And to me, it is as simple as flicking a mental switch, like I just did, upon which I can say that 7*5=2b or 9*8=60 without batting an eyelid. Yes, in fact, I am fluent in dozenal and know its multiplication tables. I also know them in senary, octal, tetradecimal, and hexadecimal, and hope to soon add octodecimal and vigesimal to that list. I just find it a little uncomfortably constraining in having only two transparent important primes rather than three or four.

By the way, notice that not every dozenalist uses "a" and "b" for digits ten and eleven. Many prefer some version of "X" for ten and "E" for eleven. These many have been influenced by Schoolhouse Rock, which uses them in its multiplication video "Little Twelvetoes." That's right -- in teaching students how to multiply by twelve, the video actually introduces dozenal numerals. A version of "X" is "dek," a version of "E" is "el," and 10, the dozen, is "doh."

In this post, I will stick to "a" for ten and "b" for eleven, especially if I use the marker {c} to denote the dozenal base.

In this above post, Double Sharp is writing about the divisibility rules for dozenal. We've seen that dozenal made the earlier list due to having so many divisibility rules. In this base, the factors which are transparent in dozenal are:

-- 2 (divisor)
-- 3 (divisor)
-- 4 (divisor)
-- 6 (divisor)
-- 8 (regular)
-- 9 (regular)
-- b (omega)
-- 10 (divisor)
-- 11 (alpha)

But Double Sharp laments that only the first two primes are transparent (2 and 3), while the next two primes (5 and 7) are opaque. Double Sharp is willing to skip 5 in favor of 7 (as in octal, where 7 is the omega), but skipping both 5 and 7 in favor of the large primes b and 11 is undesirable.


SPD Divisiblity Rules in Number Bases:
If we count SPD, then 5 is no longer opaque in any base. We can show that in any base, we can resolve 5 using the divisor, omega, alpha, or SPD rules. Indeed, SPD for 5 generally works in base 2, 3, 7, 8, twelve, and also thirteen. The next bases with an SPD for 5 are seventeen and eighteen, but in those bases require memorizing too many multiples of 5. Indeed, the square of seventeen is about twice as much as the square of a dozen, so twice as many multiples of five are needed.

It's also possible to use SPD for factors other than 5, but this is tricky. It can be shown that SPD based on square alpha never works -- instead we need either cube alpha or cube omega. This means that we must divide the digits into groups of three rather than two. For bases like decimal and dozenal, 7 is cube alpha, which is similar to square alpha. But for bases 9 and eleven, 7 is cube omega, which means that we must do the opposite at the "promote" step (that is, if we add 1 to the last three digits, we must subtract 1 from the remaining digits, and vice versa).

Square omega rarely appears as a divisibility rule. This is because b^2 - 1 factors as (b + 1)(b - 1), so almost any factor of square omega is already a factor of alpha or omega. The only time we'd need square omega is for odd bases. In odd bases, either alpha or omega has the factor 4, while the other is also even and thus has the factor 2. Then 8 can be tested with SPD for square omega. If 8 already appears in the alpha or omega, then sixteen is testable with SPD, and so on. Of course, Dozens Online focuses on even bases, where square omega is useless.

Notice that the following link (from Art of Problem Solving, which I mentioned last December) gives us divisibility rules (in decimal) for 7, thirteen, and other primes:

https://artofproblemsolving.com/wiki/index.php?title=Divisibility_rules

Both 7 and thirteen are listed with cube alpha rules (but these aren't true SPD). Of course, using any cube alpha rule entails knowing the multiples of the factor up to the cube of the base.

The above link also mentions a "tail-end" divisibility rule that works for any factor that is coprime to the base (that is, it ends in 1, 3, 7, 9 decimal, or 1, 5, 7, b dozenal). I've used this rule myself when playing "the factor game" with myself -- take a stopwatch, stop it at any random time, and then mentally factor the number that appears. It's stated that this rule works great in binary, where every odd number ends in 1.

There are several bases where thirteen is testable via cube alpha, cube omega, or square alpha. But eleven is never testable with any of these rules. It can be shown that unless it appears as a divisor, alpha, or omega, eleven is testable only via fifth power alpha or omega. Fifth power alpha is basically useless unless we're in binary, where there are only three multiples of eleven to memorize. Notice that eleven could be testable in bases 4, 8, or sixteen by converting to binary first.


Higher Bases and Stevinian Algorithms:
In higher bases, the main concern is whether we can memorize the tables well enough to use the Stevinian algorithms.

I can already hear traditionalists asking, what exactly are these "Stevinian algorithm" -- is it something that traditionalists want us to learn instead of the standard algorithms? Well actually, the Stevinian algorithms are the standard algorithms! They are named for Simon Stevin, a Flemish mathematician who first came up with these algorithms. (This was about a century after the lattice method appeared, according to Pappas.)

Here are a few links to threads discussing the multiplication table in different bases:

http://z13.invisionfree.com/DozensOnline/index.php?showtopic=751
http://z13.invisionfree.com/DozensOnline/index.php?showtopic=539

I wish to pay special attention to bases 14 and 16, as these are near the upper human scale limit. We see that some posters consider 14 human scale, but not 16:

Oschkar:
Bases 8-15: «Natural-scale» bases, and I would say 10, 12 and 14 stand out as particularly practical bases for civilization.
Bases 16-30: «Higher natural-scale» bases. There is a transition here...

Double Sharp:
2. Human-scale bases {7, 8, 9, 10, 11, 12, 14, 15}, from septenary to pentadecimal, excluding the very resistive tridecimal {13}. These are the bases that can be wielded with current algorithms, and would take less than twice the time it does currently to teach multiplication. At my most pessimistic the upper limit shrinks down to duodecimal, but usually I think {14, 15}'s close kinship should help a little. The best bases here are probably {10, 12}.

In fact, here are more threads discussing the multiplication tables in bases 14 and 16:

http://z13.invisionfree.com/DozensOnline/index.php?showtopic=509

Double Sharp:
Here is a line-by-line approach to tetradecimal multiplication:

The 1 and 10 times tables
1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, 10
10, 20, 30, 40, 50, 60, 70, 80, 90, a0, b0, c0, d0, 100

These are very, very trivial.

The 2 and 7 times tables
2, 4, 6, 8, a, c, 10, 12, 14, 16, 18, 1a, 1c, 20
7, 10, 17, 20, 27, 30, 37, 40, 47, 50, 57, 60, 67, 70

These are divisor rows and are thus very simple. The first is in a sense already covered in the doubles in addition. A low example is 6+6, because the natural way to express c on the fingers is to show 6 on each side. A high example is b+b. Normally in decimal you could guess based on the high evens from 12 to 20, but perhaps our heptadactyls from the initialisation would see that the obvious way to express b on just one side is 7 toes plus 4 fingers, leading to 8 on the hands plus 10 on the feet giving 18.

The opening of the sevens row then follows from the limbs easily till 20, and it is obvious how it must continue.

And let's skip to the bottom of this post:

The squares
1, 4, 9, 12, 1b, 28, 37, 48, 5b, 72, 89, a4, c1, 100

These usually come easily.

The 9 and b times tables
9, 14, 1d, 28, 33, 3c, 47, 52, 5b, 66, 71, 7a, 85, 90
b, 18, 25, 32, 3d, 4a, 57, 64, 71, 7c, 89, 96, a3, b0

These rows are very difficult, but almost everything in them has already been covered, so the only difficult fact becomes 9*b=71.

Here's a similar thread for hexadecimal:

http://z13.invisionfree.com/DozensOnline/index.php?showtopic=482&st=24

We notice that Double Sharp first lists divisors of the base as easy, and then later on mentions squares as easy. In an earlier link, icarus gives "easily memorized product maps" -- these are rows which include multiples of the base.

We see that in bases like 14 and 16, neither Double Sharp nor icarus learned the entire table at once, but focuses on the easier products first. Common Core recommends the same in decimal -- which is why there are so many references to tens, doubles, and so on.

Traditionalists: Coronavirus Edition

This is the perfect spot to segue into traditionalists -- once again, ideas about learning arithmetic become more evident when we try to learn a new number base (just as ideas about learning English are revealed when we study a new language.

Barry Garelick makes a new post today:

https://traditionalmath.wordpress.com/2020/07/31/more-of-the-same-dept-3/

A recent article in “Smart Brief” argues that if you change parents’ attitudes about math, you will change the childrens’. This makes sense, but the devil is in the details as they say. The study the author describes (and which she conducted) to substantiate this, views the changing of parents’ attitudes as educating them in the alternative strategies that students are forced to learn in lieu of the standard math algorithms. The standard math algorithms are now delayed until 4th, 5th and 6th grades per the prevailing interpretation of Common Core–and the textbooks that put this interpretation into practice.

Of course, with Garelick everything ultimately goes back to the Stevinian algorithms -- that is to say, the standard algorithms. Of the addition algorithm, he says:

As far as what the author refers to as “concept-based algorithms” or “invented strategies” (which the students likely didn’t invent but had them thrust upon them by a CC-aligned textbook), these are nothing new. They were taught also in earlier eras, but after the standard algorithms were taught and mastered. There were strategies like “making tens” or adding from left to right. For example 56 + 79 can be done by adding 50 + 70 (or 120) and 6 + 9 )or 15). The partial sums are added to get 120+15 or 135.

Later he writes:

I had an algebra student who had to multiply two two-digit numbers. He used a convoluted partial products technique that took up much space on his paper and which he had trouble doing. I tried to show him the standard algorithm, but the habits were set and it was just more confusion.

But many students struggle with the standard algorithm itself. Garelick implies that if this guy had been taught the standard algorithm all along in third or fourth grade, then he'd have no problem multiplying now. (Notice that the number base post I quoted earlier today assumes that Stevinian algorithms are the best -- that whole post was about how to learn the tables, not the algorithms.)

SteveH is our main commenter again:

SteveH:
Students tell their parents they don’t understand discovery math and they teach them what they know – traditional algorithms. This is unlikely to work well because any technique has to be taught over time in incremental steps and parents are conflicting with what’s taught at school. When the child gets back to the discovery approach at school, things only get worse, especially if the teacher intervenes.

Again, SteveH assumes that if the students were taught the Stevinian algorithms all along, then they would be excelling in math. Once again, at the old charter school, I saw some of my students be successful with the lattice method of multiplication.

SteveH:
Ignoring the fact that some of us STEM parents know far, far more than pretend mathematics professors, they come up with a new way of teaching that they KNOW parents don’t understand, but then complain about parents giving conflicting instruction when problems arise. The first question is when did they decide that parents have to be home content helpers and teachers? Why is that necessary?

It's because many students respect their parents much more than they respect their teachers. If the teacher is directly teaching them something they find boring, such as traditionalist math, then such students ignore their teachers and turn in blank papers. But these same students can't just ignore their parents or tutors who are sitting inches (or six feet these days) away from them, even if they're being taught the same traditionalist methods. Therefore teachers have to make their lessons more engaging than parents or tutors need to.

Our main traditionalist Barry Garelick also posted the following last Saturday:

https://traditionalmath.wordpress.com/2020/07/25/new-boss-old-boss-dept-covid-19-edition/

In light of the rapidly approaching school year, there have been a host of articles about how teaching must change.  And so I was not terribly surprised to see that National Council of Mathematics Teachers (NCTM) and the National Council of Mathematics Supervisors (NCSM),have jumped on this bandwagon and announced that math teaching must change in their latest report.

Garelick summarizes the NCTM article with his commentaries attached. So I'll attach my own counter-commentaries to his commentaries:


  • Set math goals that focus on learning.

How else are math goals established? The implication, given NCTM’s past history, is that providing instruction for procedures, with worked examples and scaffolding is “inauthentic” and therefore is not focused on learning.
By "inauthentic," we mean that it leads to students asking the question "When will we use this math in the real world?" An "authentic" task is one that avoids this student question.

  • Implement tasks that promote reasoning and problem-solving.
Most textbooks that were written in previous eras did just that, and did it well.
Garelick has mentioned this before -- texts from his Golden Age of Textbooks (that is, the years surrounding 1955) did word problems correctly, but modern texts don't.


  • Facilitate meaningful problem-solving course.

They want problems to be “relevant”, in the belief that otherwise students have no desire to solve them. Actually, students will want to solve problems for which they have been given effective instruction that allows them to be successful at it.
OK, Garelick has mentioned this before as well. To him, the reason for the question "When will we use this in real life?" isn't because students think the math is irrelevant, but that they feel frustrated when they don't know how to solve them. Thus his solution is to use traditionalist direct instruction to teach the students how to solve the problems -- then the "When will we use this?" question vanishes.

But again, my fear is that students come in from the very first day of middle or high school already believing that math is irrelevant. Thus these students wouldn't even pay attention to the traditionalist direct instruction that would make solving the problems easier -- and by not paying attention, they still won't be able to solve the problems. This is why I call it the "chicken-and-egg" problem -- since they don't pay attention to direct instruction, they struggle to solve problems, and since they struggle to solve problems, they think math is irrelevant and don't pay attention to direct instruction.

I want to break this "chicken-and-egg" vicious cycle by giving the students something that they find "relevant" and pay attention to. Garelick assumes that simply giving the students direct instruction means that they'll pay attention to it, which never happens unless there's a tutor there to enforce paying attention.

  • Develop procedural fluidity that comes from conceptual understanding.
Although they pay lip service to procedural fluency, it is fairly clear that they believe that mastery of the conceptual understanding behind a procedure must always precede the learning of said procedure.
There's that "fluency" vs. "mastery" idea again. To me it's not necessarily "conceptual understanding" that must precede learning -- it's paying attention and doing the work that must precede it. Again, the idea is that getting the students to "understand" why they must do something means that they are less likely to leave the traditionalist worksheet blank when it's time for direct instruction.


  • Support the productive struggle in learning mathematics.

Worked examples with scaffolding are believed to be “inauthentic” and take away from what would otherwise be a productive struggle. Missing from this type of reasoning is that a person who is trying not to drown is not learning how to swim.
The idea of "productive struggle" here is tricky. Once again, it's all about what the students believe, since they're the ones who actually do the work. Many think that traditionalist worksheets (the ones with worked examples and scaffolding) are -- well, while they won't the exact word "inauthentic," they'll just leave it blank. As usual, I'm all about providing assignments that students are less likely to leave blank.

Our main commenter, as usual, is SteveH:

SteveH:
They’re using the pandemic to push their assumptions and agenda in ways that have nothing to do with the difficulties of online teaching. You would think that the separation might provide a push towards more individual differentiation and acceleration of material. That would have to mean providing more tools for individual mastery of material and cross-grade acceleration. Trying to have online heterogeneous ability groupings for engagement and teamwork is more difficult. It’s also less equitable.


But then of course, SteveH wants to use the pandemic to push the traditionalists' assumptions and agenda -- in this case tracking.
Recall that there were some traditionalists at the Joanne Jacobs website who also promoted taking advantage of online learning to promote tracking -- and warned that if the schools didn't continue this tracking once they opened, parents will pull their high-track kids out of public schools. This prompted me to reblog my Path Plan, a mild form of tracking. (Note: Since the schools aren't about to reopen, the Path Plan is definitely not recommended right now. We need as little student mixing as possible, especially in elementary schools, until the pandemic is over.)

Of course, any discussion of tracking ultimately leads to race. Once again, the solution to the racial tracking problem is to let parents be the ones to select a track for their children -- whether this is online or in-person. Teachers can use data to help guide the parents, but the parents are the ones who ultimately choose a track.

Before I leave the traditionalists, there's one traditionalist I'd like to mention here -- Darren Miller, of Right(-wing) on the Left Coast. That's because he has some strong opinions regarding the reopening plans and the coronavirus.

Miller is in favor of a complete, five-days-per-week reopening of the schools. Indeed, this is what he wrote in his post last Sunday about a hybrid proposal at his school:

https://rightontheleftcoast.blogspot.com/2020/07/travel-in-time-of-rona.html

It reminds me of one of the ideas floating around for opening school.  Half the kids would come to school on Monday and Tuesday, the other half would come to school Thursday and Friday.  Wednesday would be used for "deep cleaning".  What the heck is "deep cleaning"?  I'm trying to imagine the custodians at my school adding this "deep cleaning" to their repertoire.  I'd be surprised if they did anything other than rush through the classrooms with a can of Lysol, spraying all the desks.  Quickly.

I partly agree with Miller here. I'm biased in favor of reopening schools, since that's the only way that subs like me make any money. If schools are open five days per week, then that's more money for me to earn. But I still worry about the coronavirus threat, which is why I endorsed the hybrid plans. And I'm surprised that he doesn't say anything about Governor Newsom and his county "watch list." (He writes that he's in a "little corner of California," but I don't know which county that is.)

But Miller is what I call a "zero-percenter" -- he believes that his chances of dying of the virus, rounded to the nearest percent, is zero. Basically, he believes that even if he maintains all of his 2019 habits without making even the slightest change, his chance of dying is zero. Thus he doesn't want to do anything suggested to lower his risk -- most notably wear a mask. (I wonder, does he wash his hands even once more per day.) I believe that my risk is slightly more than 0%, even though I want schools to open at least some of the time.

We'll continue to follow Miller's blog as we proceed through the pandemic.

Calculating the Cosmos Chapter 10: The Interplanetary Superhighway

I skipped around and covered Chapter 11 on Pi Approximation Day. So let's go back and cover Chapter 10 today.

Chapter 10 of Ian Stewart's Calculating the Cosmos is called "The Interplanetary Superhighway." As usual, it begins with a quote:

"Space travel is utter bilge."

-- Richard Woolley, Astronomer Royal, 1956

And the proper chapter begins:

"When visionary scientists and engineers first started seriously about landing humans on the Moon, one of the first problems was to work out the best route."

This chapter is clearly about space travel. Stewart starts by writing about the first moon landing -- hey, it's still July, the anniversary month, so it's OK to write about it today:

"But as humanity gained experience with space missions, engineers realized that other types of mission have different requirements."

Here the author includes his first picture -- a Hohmann ellipse, with our planet and moon as foci. The thick line shows transfer orbit. This is the path that the Apollo moon missions took. But it's likely that other paths, while taking longer, might be more economical in terms of fuel:

"They also imply that the solar system has a network of invisible mathematical tubes linking its planets, an interplanetary superhighway providing unusually efficient routes between them."

And Stewart's next picture is an artist's conception of the interplanetary superhighway. The ribbon represents one possible trajectory along a tube, and constrictions represent Lagrange points. He returns to the Rosetta comet-landing mission for more possibilities:

"At the time of the landing, comet 67P was 480 million kilometres from Earth and traveling at over 50,000 kph."

We learn that Rosetta's route to the comet was highly indirect:

"It then swung back to meet the Earth for a second time, then back out beyond Mars's orbit again. By now the comet was on the far side of the Sun and closer to it than Rosetta was."

This indirect route was determined to save fuel by taking advantage of the planets' gravity. Finding this route took lots of computing models and algorithms -- or, in a single word, math:

"There are sensible reasons not to rub people's noses in complex mathematical detail, but it does a grave disservice to one of humanity's most powerful ways of thinking to pretend it's not there at all. Rosetta's main dynamic trick was the slingshot maneuver."

And the calculations used to determine Rosetta's route were based on chaos theory:

"In suitable, common circumstances it's just as inevitable a consequence of the laws of nature as those nice simple patterns like periodic elliptical orbits that kick-started the scientific revolution. Since it's there, we have to get used to it."

But how is chaos theory used in this way? We need a source for the chaos:

"A Hohmann ellipse consists of three different two-body orbits (ellipse and circles) patched together, using boosts from propellant to switch the probe from one to another."

The chaos comes from the three-body problem. We consider the orbit of the comet Oterma:

"A century ago, Oterma's orbit was well outside the orbit of Jupiter. After a close encounter, its orbit shifted inside Jupiter's."

The author now includes several diagrams to clarify what he means here. On the far left is the gravitational landscape for Oterma's orbit, showing periodic orbit in 3:2 resonance with Jupiter. Next is the comet's actual orbit from 1910 to 1980, which complex. Next is a tube system for Oterma. On the far right is a close-up of the switching region, when the comet switched from the "tube" outside Jupiter's orbit to the "tube" inside.

To find these tubes, we must consider not just the position of a spaceship but also its velocity:

"A spacecraft travels through a mathematical landscape that has six dimensions rather than two. The tubes and their junctions are special features of the gravitational landscape of the solar system."

We compare these tubes to the natural landscape traveled by a train or roller coaster. In this analogy, "downhill" means lower energy and "uphill" means higher energy:

"Equally important, but less visible, are the hilltops, valley bottoms, and mountain passes of the energy landscape. These features organize the overall geometry, and it's this geometry that creates the tubes."

Again, the Lagrange points of an orbit are the key:

"By exploiting chaos, we can redirect our spacecraft to other destinations in a fuel-efficient, though possibly slow, manner. The tube trick was first used in 1985 to redirect the almost-dead International Sun-Earth Explorer ISEE-3 to rendezvous with comet Giacobini-Zinner."

And Stewart's next picture is the trajectory of the Genesis mission. This was a similar mission to collect solar wind particles, and it involved traveling to L1, the first Lagrange point of our planet's orbit around the sun. The total flight time was just over three years.

These tricks can be used to find fuel-efficient paths to all the planets and back again:

"This flows into another inbound tube...and so it goes. In 2000 Wang Sang Koon, Martin Lo, Jerrold Marsden, and Shane Ross used tubes to design a tour of the moons of Jupiter, with a gravitational boost near Ganymede followed by a tube trip to Europa."

The author's final picture of the chapter is a graph. It shows the low-energy path linked to L1 (dotted) and L2 (solid) points for the four outer planets (J, S, U, N). Those of the inner planets are too small to be visible on this scale. Intersections, where the surrounding tubes meet, provide switching points for low-energy transfer orbits.

Stewart ends the chapter by saying the following about this interplanetary superhighway:

"It doesn't explain, or even support, the Titius-Bode law; instead, it shows that the true organisation of planetary systems comes from the subtle patterns of nonlinear dynamics."

Shapelore Learning 14-5: Arrows

Lesson 14-5 of the U of Chicago text is called "Vectors." Of course, the word "vectors" does need to be replaced with another word.

One obvious Anglish word immediately jumps out at us -- arrows. After all, vectors are represented by directed line segments -- line segments with an arrow at one endpoint. But there's one problem with using arrow to mean "vector." Recall that using ring to mean "circle" is problematic because the word ring has a meaning in higher math (a system analogous to the integers). Well, arrow also has a meaning in higher math as well -- think back to Eugenia Cheng's first book on category theory.

Can the same word arrow mean both "vector" in Geometry and "morphism" in category theory? After all, most students must take Geometry is high school, yet even most college math majors have never heard of category theory. There's already precedent for using one word to mean two unrelated ideas in math, such as "base" (base and height, base and exponent) and "integral" (one is the adjectival form of the noun "integer").

So for now, let's just use arrow for "vector." If I think of a better word between now and the end of this chapter, then I'll let you know.

Oh, and by the way, we just found out today from Lemay that there's a Vector class in Java. Fans of Shapelore and Anglish can't do anything about that name -- we can't change it to Arrow or our Java code won't compile (and Java Vectors are nothing like Geometry vectors anyway). Then again, there's nothing stopping us from writing:

public class Arrow extends Vector {
}

but this is not recommended, since Java Vectors aren't Geometry vectors.

Let's begin the lesson:

The air length between Dallas/Fort Worth International Airport (DFW) and the Los Angeles International Airport (LAX) is the same both ways.

OK, we'll just skip ahead to the math parts:

An arrow is a quantity that has both greatness and way. (That is, it has magnitude and direction. The word "magnus" means great in Latin. Notice that I left "quantity" untranslated here, as it has its own meaning outside of math, but "magnitude of a vector" and "direction of a vector" are pure math.)

Arrows are represented by wayed line liths. (That is, they're directed line segments. Earlier we used straight for "direct," but again here we wish to emphasize the way that they're pointed. I've decided to keep "line" as simple enough not to change, but "segments" can be replaced by liths.) A directed line lith is drawn like a normal line lith, except that is has an arrow at one endpoint. For instance, drawn below is the wayed line lith OA representing a northeast wind of 20 mph. Point O is the starting point of the arrow and A is its ending point. (The word "point" is simple enough to keep, but we definitely need to change "initial" and "terminal" to starting and ending,) Its way is 50 degrees north of east (or 40 degrees east of north) and its greatness is 20, the length OA. Caution: Although a wayed line lith is pictured like a ray, it is not a ray. It has a finite length; it does not go on forever. (I point out that "ray" is simple enough to keep, even though it's the same Latin word as "radius"! The word "finite" probably should be changed, though. But I can't think of a suitable word right now -- perhaps "fleeting," as opposed to "forever," might work.)

Two arrows are worthsame arrows if and only if they have the same way and greatness. (I've already decided to use the word worthsame for "equal." We could say greatnesswaysame as that tells us exactly what's the same, but worthsame should be good enough.)

Arrows are closely related to slides (translations). Like an arrow, a slide is determined by its greatness and way. In a given slide, the liths connecting input to output points have the same way and greatness. This result can be stated in terms of arrows.

Provedsaying (Theorem):
Two arrows are worthsame if and only if their starting and ending points are inputs and outputs under the same slide.

Recall how vectors and translations are taught in the U of Chicago text. In other texts, translations are defined by their vectors. But here, a translation is defined as the composite of two reflections -- not until now do we actually associate translations with vectors.

Remember when you learned to add forward and backward (positive and negative) numbers? You were probably told you could picture the numbers by arrows. For instance, in adding 3 and -8, you drew arrows whose lengths were 3 and 8, but in opposite ways, as shown at the left. Those arrows are, in fact, wayed liths. You were adding arrows! Notice that you started the second arrow at the endpoint of the first. The sum was indicated by the endpoint of the second arrow. This is exactly the rule for adding arrows.

Meaning:
The sum or adding of two arrows AB and BC, written AB + BC, is the arrow AC.

Conclusion

Recall David Joyce, who criticized the use of the term "resultant" of two vectors. The words "sum" and "add" are both Latin. I consider "sum" to be simple in British English (where young pupils are said to be "learning their sums") but not in American English, so we use "adding" instead. (The pure Anglish word, as we've seen before, would be eking.)

As this topic is so closely related to pictures, there aren't so many questions we can do here. We'll continue Shapelore and the rest of my projects in my next post.