Sunday, June 14, 2020

Flag Day Post (Stewart Chapter 3: Inconstant Moon)

Table of Contents

1. Introduction
2. Reblogging: Hofstadter and Quines
3. Calculating the Cosmos Chapter 3: Inconstant Moon
4. Some Rapoport Math Problems
5. Shapelore Learning 13-5: Fingerings to Umbelings and Kuggles
6. Shapelore Learning 13-6: One-offness
7. Lemay Chapter 7 Part 1: More About Methods
8. More About Quines and Quads in Java
9. Mocha Music: "Meet Me in Pomona," "Show Me the Numbers," "Nine, Nine, Nine"
10. Conclusion: More About Traditionalists, Tracking, and Race

Introduction

Let me begin with welcome to our third summer post, and happy Flag Day! It's a national holiday, but one of the lesser known ones. It refers to the day that Betsy Ross first presented the national flag, with thirteen stripes and only thirteen stars, back in the year 1777.

In today's post, we'll be continuing with our summer projects. This includes the third chapter of Stewart's book, the Plain English versions of the next two Geometry lessons in Chapter 13, and finally, Lesson 7 in Java.

Reblogging: Hofstadter and Quines

And speaking of Java, we don't have to go far back in time for our reblog for today. This marks the second straight year that I've posted on Flag Day.

Last year, I made one final post from Hofstadter's book and the BlooP language -- this time, it's all about "quines," or programs whose output is the same as the program itself. These are also known as "self-reproducing programs."

I'm only reblogging the parts from last year where I discuss the BlooP Quines:

And sure enough, the next diagram is of this bar of soap, with "Quine sentence" above the water line and "process required for understanding" below it.

Now Hofstadter shows us a self-producing program, written in the BlooP language. Such a program is also called a quine, and the author reverses the name and names his program "eniuq":

DEFINE PROCEDURE "ENIUQ" [TEMPLATE]: PRINT [TEMPLATE, LEFT-BRACKET, QUOTE-MARK, TEMPLATE, QUOTE-MARK, RIGHT-BRACKET, PERIOD].

ENIUQ
['DEFINE PROCEDURE "ENIUQ" [TEMPLATE]: PRINT [TEMPLATE, LEFT-BRACKET, QUOTE-MARK, TEMPLATE, QUOTE-MARK, RIGHT-BRACKET, PERIOD].
ENIUQ'].

"It is important to realize that the character string which appears in quotes in the last three lines of the program above -- that is, the value of TEMPLATE -- is never interpreted as a sequence of instructions."

Anyway, here is a link to some quines written in other languages:

https://cs.lmu.edu/~ray/notes/quineprograms/

And returning to 2020, we obviously want to focus on the quines from that link written in Java:

This is a direct translation of the classic K&R quine.

class Q{public static void main(String[]a){String s="class Q{public static void main(String[]a){String s=%c%s%c;System.out.printf(s,34,s,34);}}";System.out.printf(s,34,s,34);}}

I found a slightly shorter version on the Rosetta Code quine page, making use of the positional specifier in printf:
class Q{public static void main(String[]a){String s="class Q{public static void main(String[]a){String s=%c%s%1$c;System.out.printf(s,34,s);}}";System.out.printf(s,34,s);}}

I tried cutting-and-pasting, and this is what it ends up looking like. I suppose it's important for the whole program to be all in one line, since the output (which needs to be identical) is also in one line.

We already know almost enough Java to figure out how these quines work. The code basically creates a String object s that contains the entire program, and then prints it. Those special characters with percent signs are somehow quining the string so that it repeats.

Also, I notice that the command to display this String is printf -- so far, Laura Lemay has only taught us println. I heard that there's also a printf command in C that can theoretically be used in C++ as well, though it's rare.

We'll return to our new Java lesson later in this post. I decided to spice things up by starting with the reblog in today's post rather than end with it.

Calculating the Cosmos Chapter 3: Inconstant Moon

Chapter 3 of Ian Stewart's Calculating the Cosmos is called "Inconstant Moon." As usual, it begins with a quote:

It is the very error of the moon: She comes more nearer earth than she was wont, and makes men mad.

-- William Shakespeare, Othello

And the proper chapter begins:

"Our moon is unusually large. It has a diameter just over one quarter of the Earth's, much larger than most other moons: so large, in fact, that the Earth-Moon system is sometimes referred to as a double planet."

So today's chapter is obviously about the moon. We'll learn much more about earth's closest neighbor in today's reading:

"There are other surprises about the Moon, too, and we'll come to those in due course. The Moon's exceptional nature adds weight to a natural question: how did the Earth acquire its satellite?"

The simplest theory, that the moon was formed from the solar nebula (as described in the last chapter), fails because the moon has too much angular momentum and not enough iron:

"In the 1800's Charles Darwin's son George came up with another theory: in the early days the Earth, still molten, was spinning so fast that part of it broke off under the action of centrifugal force."

Perhaps the future moon broke out of the Pacific Ocean -- but it most likely didn't, since moon rook is older than the Pacific ocean floor. It's possible that the moon was captured by earth's gravity:

"There's a precedent: Neptune's moon Triton is exceptional not just in its size, compared with the planet's other moons, but in the direction of motion, which is 'retrograde' -- the opposite way round to most of the bodies of the solar system, including all of the planets."

But while the moon and earth have very different surfaces, the moon's surface turns out to be similar to earth's mantle, suggesting that they perhaps have a similar origin after all:

"The Moon is unusually large, and tidally locked to its primary. Any viable theory has to explain, or at least be consistent with, these observations to be remotely plausible."

One theory is called the giant impact hypothesis -- some object, perhaps the size of Mars, collided with our planet, and the remains of that object formed both the moon and the mantle. Some of the rock would vaporize:

"So the Moon would end up with much less iron than the Earth, but the surface rocks of the Moon and the Earth's mantle, condensing back from the vaporized silicates, would be extremely similar in composition."

But this doesn't explain why the far side of the moon has a thicker crust than the near side:

"Instead, a second, smaller moon collected together in a so-called 'Lagrange point,' in the same orbit as the Moon but 60 degrees further along it (see Chapter 5)."

We're currently in Chapter 3, so it won't take us that long to reach Chapter 5. At any rate, the second moon would have crashed into the first moon ("the moon") about 10 million years after first impact.

The movement of molten rock is modeled using "fluid dynamics," first formulated by Euler and Daniel Bernoulli in the 18th century:

"It formulates the physical laws of fluid flow as a partial differential equation, which describes the velocity of the fluid at each point in space changes over time in response to the forces that act."

(I was reading watching some Numberphile videos recently, and there was a recent video made on that channel on the Navier-Stokes equations on fluid flow.) Here's how these equations work -- the fluid particles are considered to be balls:

"Each ball can be represented by its central point, and we have to calculate how these points move as time passes."

Here Stewart provides the only picture in this chapter -- a crude graph, representing the density of a fluid (solid line) as a sum of fuzzy droplets (dashed bell-shaped curves).

But the calculations required are very complicated -- he estimates that we need 36 trillion calculations just to determine the state one second in the future:

"Do the same again and we find out what happens two seconds from now, and so on. To find out what happens a thousand years ahead, we're looking at a period of about 30 billion seconds, and the complexity of the calculations is 30 billion times 36 trillion -- abut 10^24, one septillion."

Fortunately, scientists found a way to simply the calculations. They were able to find a model in which the moon forms as it should:

"The origin of the Moon had been solved. Or had it? Simulating the giant impact theory of the Moon's formation involves two main phases: the collision itself, creating a disc of debris, and the subsequent accretion of part of this disc to form a compact lump, the nascent Moon."

And the calculations had worked for the first phase, the collision:

"The pioneering work became a kind of orthodoxy, and some of its assumptions ceased to be questioned."

But there are some problems with the phase of the theory where the moon is actually formed. In particular, the moon should have gotten more of its rock from the object that impacted with the earth:

"Be that as it may, the original idea that the impactor splashed off a chunk of Earth's mantle, but did not itself contribute much to the eventual Moon, would be much more convincing."

It's also possible that earth and the impactor were very similar, both in composition and in distance from the sun:

"Moreover, being in roughly the same orbit improves the chance of a collision. On the other hand, could two large bodies form in the same orbit?"

Further calculations show that this scenario has about a 1/3 chance of having happened. Even though we don't know for sure whether the impactor theory is true, Stewart concludes the chapter as follows:

"But to get both the chemistry and the angular momentum right, a large impactor seems unavoidable."

Some Rapoport Math Problems

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

(8 nCr 4) * 1/(4 + 1)

Here (8 nCr 4) is how I write the binomial coefficient 8 choose 4 in ASCII. It actually refers to TI calculator symbol for binomial coefficient. Actually n and r shouldn't appear because n = 8 and r = 4, so it's more accurate to write something like _8 C _4 (where _ is ASCII for "subscript"). But I will keep (8 nCr 4) due to its familiarity on the TI calculator.

To find (8 nCr 4), we either write out Pascal's triangle or use factorials 8!/(4!(8-4!)). This is small enough for us to write out Pascal, but we might rather do factorials anyway. In either case, we obtain 70 as the value of this coefficient:

70/(4 + 1) = 70/5 = 14

Therefore the desired answer is 14 -- and of course, today's date is the fourteenth.

There is one Geometry problem from the Rapoport calendar this week:

A rope is tied to the center of one side of a gazebo. Find the max length of the path it can take, as a multiple of pi.

[Here is the given info from the diagram: the gazebo is a regular hexagon of side length 6, and the length of the rope is 9.]

This is a tricky problem, especially if you're looking at this blog and not at a diagram. It's clear that if the gazebo weren't there, the path the rope can take is a circle of radius 9 -- the length of the rope -- and the length of this path would be 18pi. But the gazebo wall blocks part of this path. Notice that if the wall were infinitely long, we could still trace out half of this circular path, of length 9pi.

But the wall isn't infinitely long -- instead, its length is only 6. Since the rope is tied to the center of a size, that's a length of 3 from either of the near vertices. Since the length of the rope is 9 units, this leaves us 6 more units, so we can start to trace out a small arc of a circle of radius 6 and centered at that vertex.

But how much of the arc can we trace out? We notice that this corresponds to the exterior angle of the regular hexagon -- its measure is 360/6 = 60. The arc length of a 60-degree arc of radius 6 turns out to be 2pi(6)60/360, which is 2pi.

And we could just as easily have chosen the vertex on the other side of the point where the rope is tied as well. Therefore the total length is 9pi + 2pi + 2pi = 13pi. Rapoport already supplies the pi, so we only need to give the 13 -- and of course, this problem was from yesterday, the thirteenth.

This problem is straightforward as long as we remember that a hexagon is a sixside -- oh, and speaking of Plain English:

Shapelore Learning 13-5: Fingerings to Umbelings and Kuggles

Lesson 13-5 of the U of Chicago text is called "Tangents to Circles and Spheres." Let's start out by translating the words in the title into Anglish.

We begin with "tangents." Right in our text, it reads:

"The word 'tangent' comes from the Latin word meaning 'touching.'"

And if I were to choose "touching" as my replacement word here, you'd jump in and remind me that "touching" is itself French. (Touche!) In fact, both "tangent" and "touch" ultimately go back to the same Latin word.

At the Anglish website, the first suggested word for "touch" is handle. But finger is also listed there, and fingering definitely has the connotation of "touching."

It's probably better just to grandfather in "touch," and use touching for "tangent." By the way, this doesn't necessarily mean that we'll use the same word for a "tangent" in trig. I'll make the final decision when we get to Chapter 14.

Meanwhile, the Shapelore page at the Anglish website uses umbeling for "circle." Another suggested word is ring, but this word already has other definitions in math (such as Latin "annulus," which I mentioned in my last post). I think "circle" is well-known enough for us to grandfather in.

As for "sphere," the most obvious word to use is ball. The problem is that "ball" is also used in math as well, and its definition is distinct from "sphere" -- a sphere is a surface only, while a ball consists of a sphere and its interior. The Anglish website mentions kuggle, which comes from German -- but warns that the word might be Semitic (that is, Hebrew/Yiddish) rather than Germanic. It's possible that "sphere" should just be grandfathered in as well -- once again, do most people outside of a Geometry class know what a "sphere" is?

In the Table of Contents for my blog posts, I write the chapter titles in pure Anglish. But I suspect that in a Plain English, "circle" and "sphere" are both grandfathered in, and only "tangent" needs to be changed to touching. So the Plain English title is "Touchings to Circles and Spheres," even though it contains three words that aren't Old English.

Let's translate some of the lesson into Plain English now:

Unstraight reasoning has been used at least since the time of Euclid to show provedsayings. (That last word means "theorems" -- grandfathered "proved" plus sayings. But I will changed "deduce," which appears enough in math, to show.) Early in this century, some mathematicians tried to see what could be shown without unstraight reasoning. ("Mathematicians" should be scorelorers in Anglish, but it's grandfathered since we can't escape the fact that we're doing math.) These mathematicians allowed themselves to use only straight proofs. They were unable to find straight proofs for many important provedsayings for which there were unstraight proofs. These attempts point out that unstraight reasoning is needed.

Let's define our new word, touching:

A touching to a circle is a line which touches the circle in exactly one point.

"Line" and "point" are grandfathered. The word "intersects" can normally be changed to "crosses," which is a Latin/Norse word that's grandfathered. But here we keep the French word "touches," since that justifies the new name "touching."

We proceed with our first theorem:

If a line is upright ("perpendicular") to a spoke of a circle at the spoke's endpoint on the circle, then it is touching the circle. (For "radius" -- which is clearly Latin -- the Shapelore page uses "spoke." The word "radius" might be used enough outside of Geometry to grandfather in, but it surely seems like a word that can be replaced with Anglish here.)

Proof:
Draw: Here is a shape and the provedsaying restated.
Given: Circle O, OP upright l
Prove: l is touching the circle

Look: ("Analyze" -- the suggested word is look at.) It needs to be shown that no other point of l is on the circle. Guess another point is on the circle. This will lead to a gainsaying ("contradiction").

Write: Guess Q is another point on l and on the circle. Since Q is on l, Threeside OPQ is a right threeside with longside ("hypotenuse") OQ. So OQ > OP. But since Q is on the circle, OQ = OP. The saying OQ > OP and OQ = OP is a gainsaying. By the Law of Unstraight Reasoning, the guess must be untrue. So l touches the circle in exactly one point. By the meaning of touching (enough onlay -- "sufficient condition") -- l is touching Circle O.

Here is the next theorem, which is the converse:

If a line is touching a circle, then it is upright to the spoke drawn to the point of touching.

Proof:
Draw: Below is a shape. Restate the given and prove in terms of the shape.
Given: m is touching Circle O at point P.
Prove: OP upright m,

Look: The othernotway is as follows:
Given: OP is not upright to m.
Prove: m is not touching Circle O at point P.

If the othernotway is proven true, then the original saying is true.
Write: Since OP is not upright to m, a different lith ("segment"), OQ, can be drawn from O upright to m. Locate R on m so that Q is between R and P and QR = QP. Then Triangle OQR = OQP because of the SAS Allsameness Provedsaying. So OR = OP. This means R is on CIrcle O (it is the same length from O as P). So m contains two points on the circle. Thus m is not a touching.

The othernotway has been proved. By the Law of the Othernotway, the original saying is true.

These two theorems can be combined to form the Radius-Tangent Theorem:

Spoke-Touching Provedsaying:
A line is touching a circle if and only if it is upright to a spoke at the spoke's endpoint on the circle.

The one example in this lesson shows how to estimate the radius of the sun, given the radius of the moon and distances to the moon and sun. It fits well with the Stewart chapter that we read at the start of this post, but I don't wish to take the time to translate it into Plain English. Instead, we'll move up to the next lesson:

Shapelore Learning 13-6: One-offness

Lesson 13-6 of the U of Chicago text is called "Uniqueness." The word "unique" is easily written in Anglish as one-of-a-kind. But we want the word "uniqueness," and "one-of-a-kindness" doesn't sound quite right here. Instead, we can use one-off for "unique," and hence one-offness for "uniqueness."

As we proceed with this lesson, notice that we leave "exact" untranslated -- it's grandfathered in:

When some people think of mathematics, they think of exactness. They think every question has exactly one answer. You know that isn't always the case. Some worthlinks ("equations"), like x^2 = 49, have more than one answer. Any proof can be done in many different ways. Estimation (This is a tricky one -- guess works, but I've already used it for "assumption." The other suggested word for "estimation" is reckoning.) is one important part of mathematics. Likelihood ("probability") and statistics (This word needs to be replaced, but I can't think of a good one right now. Actually, the word "statistics" is German, but it ultimately goes back to Latin.) are not exact.

There are two key terms to define in Plain English here, "uniquely determined" (one-of-a-kind named) and "auxiliary" (helping):

For instance, if you are given an akinside ("parallelogram"), either leaning ("diagonal") is one-off named and can be a helping lith. The reason for this is part of the Point-Line-Plane Guessing studied in Learning 1: Through two points, there is exactly one line. The phrase "exactly one" tells you that the line is one-of-a-kind named.

Let's move on to the first theorem of this lesson:

One-offness of Akins ("parallels") Provedsaying (Playfai's Akin Guessing):
Through a point not on a line, there is exactly one parallel to the given line.

Proof:
Since there is at least one akin, the only other maybehood is that there is more than one akin. This is the situation to draw and the saying to reason from. A shape is drawn below.


  1. Guess there are two different lines x and y through P akin to line l.
  2. Then angles 1 and 2 are matching angles, and so are angles 1 and 3. So, since || lines => matching angles =, Angle 1 = 2 and also Angle 1 = 3.
  3. This means Angle 2 = 3. But then the angle between lines x and y must have breadth 0, which means the lines x and y are the same.
  4. The last finding in step 3 gainsays the guess of step 1. So we have reached an untrue finding. By the Law of Unstraight Reasoning, the guess of step 1 is untrue, so there is not more than one line through P akin to l. Since there is at least one such line, we can find that there is exactly one line through P akin to l.
The next theorem here is the Glide Reflection Theorem. This reminds me that the Common Core transformations (reflections, translations, and so on) need new Plain English words.

Actually, there are already simple words for the isometries -- slide (translation), turn (rotation), flip (reflection), walk (glide reflection), and size change (dilation). Not all of these words are Anglish, but they are simple enough that we can grandfather them in.

In a walk, the midpoint of the lith linking a point to its look-alike ("image") lies on the mirror. (The word "mirror" is French, but we can grandfather it to mean the axis of a reflection or glide.)

Proof:
Use the shape at the right.
Given: C = t = r_l(A), where T is a slide akin to l. N is the midpoint of AC.
Prove: l contains N.

Let B = r_l(A) and let M be the midpoint of AB. Now mark the shape.

From the Midpoint Linking Provedsaying, MN is akin to BC. But, from the meaning of flip, l contains M, and because the slide T is akin to l, l is akin to BC. Thus both l and MN are akin to BC through M. By the One-offness of Akins Provedsaying, l and MN must be the same line. Thus l contain N.

Lastly, we reach the Postulates of Euclid. So far, I've used guesses for "postulates" -- it's the same word we've used for "assumptions," since postulates are indeed assumptions. I wonder whether something like guessedsaying might be better, to go with provedsaying for "theorem":

Guessedsayings of Euclid:
  1. Two points name a lith.
  2. A lith can be extended indefinitely along a line.
  3. A circle can be drawn with any center (grandfathered) and any spoke.
  4. All right angles are allsame.
  5. If two lines are cut by a crossline (again, "cross" isn't English, but it's simple enough for us to prefer it to "transversal"), and the inside angles on the same side of the crossline have a total breadth of less than 180, then the lines will cross on that side of the crossline.
The lesson ends up with a brief mention of non-Euclidean Geometry. I won't translate it into Plain English, but just cut-and-paste from the Shapelore page:

Shapelore is one of the oldest boughs of scorelore, and for a great deal of time, it was thought of as its own witcraft. One of its most nameknown thinkers was Euclid, an oldtide Greek scoreloreman, whose thoughts on the bough still shape the groundwork of today's shapelore. In truth, he even has his own underbough of shapelore, fittingly named after him: Euclidish Shapelore.
After some time went by, others found out that there were more ways to reckon in shapelore, though they were not seen as being true by others. It was not till the 19th Yearhundred that such other shapelore boughs were seen as being true. Some of the makers of new shapelore boughs and reckonways were Nikolai Ivanovich Lobachevsky and Bernhard Riemann.

Lemay Chapter 7 Part 1: More About Methods


Here's the link to today's lesson:

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

Lesson 7 of Laura Lemay's Teach Yourself Java in 21 Days! is called "More About Methods." Here's how this chapter begins:

Methods are arguably the most important part of any object-oriented language. Whereas classes and objects provide the framework, and class and instance variables provide a way of holding that class's or object's attributes, the methods actually provide an object's behavior and define how that object interacts with other objects in the system. Yesterday you learned a little about defining methods. With what you learned yesterday, you could create lots of Java programs, but you'd be missing some of the features of methods that make them really powerful and that make your objects and classes more efficient and easier to understand.

As usual, by "yesterday," Lemay means the last lesson, which for us was last week.

Today's lesson, as we can see here, is all about methods -- what other languages call "functions," "procedures," or "subroutines":

When you call a method in an object, Java matches up the method name and the number and type of arguments to choose which method definition to execute.

The same is true in C++, so I'm familiar with this. And we'll be overloading a method in our first class, which is a rectangle class.

Here's an example of creating an overloaded method. Listing 7.1 shows a simple class definition for a class called MyRect, which defines a rectangular shape. The MyRect class has four instance variables to define the upper-left and lower-right corners of the rectangle: x1y1x2, and y2.

I'm going to enjoy this MyRect class, since it's Geometry. By the way, the author includes this note:

Why did I call it MyRect instead of just Rectangle? The java.awt package has a class called Rectangle that implements much of this same behavior. I called this class MyRect to prevent confusion between the two classes.

Perhaps I might try using the built-in Rectangle class later on. For now, let's get to the first listing:


Listing 7.1. The MyRect class.
 1: class MyRect {
 2:     int x1 = 0;
 3:     int y1 = 0;
 4:     int x2 = 0;
 5:     int y2 = 0;
 6: }
And there's another note here:

Don't try to compile this example yet. Actually, it'll compile just fine, but it won't run because it doesn't (yet) have a main() method. When you're finished building this class definition, the final version can be compiled and run.

OK, Lemay, I won't try to compile it yet. The first thing we do is add methods, including the overloaded method buildRect. There are three versions of this method -- one that takes four ints that correspond to the four member variables, one that takes two Point objects (the Point class that we've seen earlier), and one that takes a Point (for a vertex) and two ints (length and width):


 1:import java.awt.Point;
 2: 
 3:class MyRect {
 4:    int x1 = 0;
 5:    int y1 = 0;
 6:    int x2 = 0;
 7:    int y2 = 0;
 8: 
 9:    MyRect buildRect(int x1, int y1, int x2, int y2) {
10:        this.x1 = x1;
11:        this.y1 = y1;
12:        this.x2 = x2;
13:        this.y2 = y2;
14:        return this;
15:    }
16: 
17:    MyRect buildRect(Point topLeft, Point bottomRight) {
18:        x1 = topLeft.x;
19:        y1 = topLeft.y;
20:        x2 = bottomRight.x;
21:        y2 = bottomRight.y;
22:        return this;
23:    }
24: 
25:    MyRect buildRect(Point topLeft, int w, int h) {
26:        x1 = topLeft.x;
27:        y1 = topLeft.y;
28:        x2 = (x1 + w);
29:        y2 = (y1 + h);
30:        return this;
31:    }
32: 
33:    void printRect(){
34:        System.out.print("MyRect: <" + x1 + ", " + y1);
35:        System.out.println(", " + x2 + ", " + y2 + ">");
36:    }
37: 
38:    public static void main(String args[]) {
39:        MyRect rect = new MyRect();
40: 
41:        System.out.println("Calling buildRect with coordinates 25,25 
 50,50:");
42:         rect.buildRect(25, 25, 50, 50);
43:         rect.printRect();
44:         System.out.println("----------");
45: 
46:         System.out.println("Calling buildRect w/points (10,10), (20,20):");
47:         rect.buildRect(new Point(10,10), new Point(20,20));
48:         rect.printRect();
49:         System.out.println("----------");
50: 
51:         System.out.print("Calling buildRect w/1 point (10,10),");
52:         System.out.println(" width (50) and height (50):");
53: 
54:         rect.buildRect(new Point(10,10), 50, 50);
55:         rect.printRect();
56:        System.out.println("----------");
57:    }
58: }

We move on to constructors, which also appear in C++. These are special methods that are used to construct new instances of a class. We read:

As you learned on Day 4, "Working with Objects," when you use new, Java does three things:




  • Allocates memory for the new object
  • Initializes that object's instance variables, either to their initial values or to a default (0 for numbers, null for objects, false for booleans, '\0' for characters)
  • Calls the class's constructor method (which may be one of several methods)
Our first example of a constructor is in a Person class, in our next listing:


Listing 7.3. The Person class.
 1: class Person {
 2:     String name;
 3:     int age;
 4: 
 5:    Person(String n, int a) {
 6:         name = n;
 7:         age = a;
 8:     }
 9: 
10:    void printPerson() {
11:        System.out.print("Hi, my name is " + name);
12:        System.out.println(". I am " + age + " years old.");
13:    }
14: 
15:  public static void main (String args[]) {
16:     Person p;
17:     p = new Person("Laura", 20);
18:     p.printPerson();
19:     System.out.println("--------");
20:     p = new Person("Tommy", 3);
21:     p.printPerson();
22:     System.out.println("--------");
23:  }
24:}

And here is the output produced by this program:

Hi, my name is Laura. I am 20 years old.
--------
Hi, my name is Tommy. I am 3 years old.
--------

So, Laura Lemay, are you really only 20 years old? Somehow, I have a feeling that Lemay was over 20 even at the time she wrote this text. (Of course, she's definitely over 20 by now, since it's been more than 20 years since she wrote it.)

Our final example for today is a MyRect2 class -- it's just like MyRect, except that buildRect is written as a constructor -- since that's really what it is, a constructor:


Listing 7.4. The MyRect2 class (with constructors).
 1: import java.awt.Point;
 2: 
 3: class MyRect2 {
 4:     int x1 = 0;
 5:     int y1 = 0;
 6:     int x2 = 0;
 7:     int y2 = 0;
 8: 
 9:     MyRect2(int x1, int y1, int x2, int y2) {
10:         this.x1 = x1;
11:         this.y1 = y1;
12:         this.x2 = x2;
13:         this.y2 = y2;
14:     }
15: 
16:     MyRect2(Point topLeft, Point bottomRight) {
17:         x1 = topLeft.x;
18:         y1 = topLeft.y;
19:         x2 = bottomRight.x;
20:         y2 = bottomRight.y;
21:     }
22: 
23:     MyRect2(Point topLeft, int w, int h) {
24:         x1 = topLeft.x;
25:         y1 = topLeft.y;
26:         x2 = (x1 + w);
27:         y2 = (y1 + h);
28:     }
29: 
30:     void printRect() {
31:         System.out.print("MyRect: <" + x1 + ", " + y1);
32:         System.out.println(", " + x2 + ", " + y2 + ">");
33:     }
34: 
35:     public static void main(String args[]) {
36:         MyRect2 rect;
37: 
38:         System.out.println("Calling MyRect2 with coordinates 25,25 50,50:");
39:         rect = new MyRect2(25, 25, 50,50);
40:         rect.printRect();
41:         System.out.println("----------");
42: 
43:         System.out.println("Calling MyRect2 w/points (10,10), (20,20):");
44:         rect= new MyRect2(new Point(10,10), new Point(20,20));
45:         rect.printRect();
46:         System.out.println("----------");
47: 
48:         System.out.print("Calling MyRect2 w/1 point (10,10)");
49:         System.out.println(" width (50) and height (50):");
50:         rect = new MyRect2(new Point(10,10), 50, 50);
51:         rect.printRect();
52:         System.out.println("----------");
53: 
54:     }
55: }
That first constructor with four int parameters looks a bit weird -- we must use this in order to distinguish between the four parameters (of the class) and the four instance variables (of the class), as both have the same names x1, x2, y1, y2.

More About Quines and Quads in Java

It's time for me to write my non-Lemay projects now. Let's start with the quine program from above, since I did blog it at the start of today's post.

Fortunately, I was able to get both versions of the quine to work. And I was careful to write the entire program on a single line -- the output, after all, is on a single line, and the program and output must be identical, by definition of quine.

But now I want to begin another project -- the Quadrilateral Hierarchy project. As we were starting Java, I mentioned how I wanted to create a quadrilateral class. I haven't decided what day I would begin the project -- I would proceed through each lesson in Lemay and decide based on what I learned from her lessons.

Well, today Lemay mentions a rectangle class -- and a rectangle is indeed a quadrilateral. Perhaps we can write a quadrilateral class whose instance variables correspond to all four vertices, just as the rectangle classes have instance variables for two vertices.

But technically speaking, knowing the coordinates of two vertices isn't enough even to specify a rectangle unless we know that its sides are parallel to the axes -- and for all rectangles in Java, it's assumed that the sides are parallel to the axes. In fact, if we allow oblique axes, then given a pair of points, there exist infinitely many rectangles such that the given pair are the endpoints of a diagonal.

And in fact, given the coordinates of all four vertices of a quad, it takes some effort to determine whether the quad is a rectangle or not. Of course, we've already written slope and distance methods that can help us here.

Oh, and finally, we notice that all the parameters in the rectangle classes are ints. We'd like to be able to consider quads whose parameters aren't integers, or whose vertices aren't lattice points.

And so let me start my own Quadrilateral class. The instance variables of this class won't be vertices, but side lengths and angle measures instead. In other words, this is Synthetic Geometry rather than Coordinate Geometry.

A quadrilateral has eight parts -- four sides and four angles. So we could have eight variables, but is this the minimum? Recall that in previous posts (from years ago), I wrote that SASAS and ASASA are congruence theorems for quads. Thus we only need five member variables?

But which representation should we use -- SASAS or ASASA? To answer this, suppose that we were making a triangle class. The Triangle Hierarchy consists of all the names for triangles that we know -- acute, obtuse, right, equilateral, isosceles, and scalene.

Now notice that if all we had were two angles of the triangle (AA), then we already have enough information to place the triangle on the hierarchy. Given two angles, it's easy to subtract them from 180 to find the third angle, and then the largest angle is used to determine whether the angle is acute, obtuse, or right. And by the Isosceles Triangle Theorem, a triangle has congruent sides if and only if it has congruent angles, so knowing the angle measures also tells us whether a triangle is equilateral, isosceles, or scalene. And so ASA gives us much more information than SSS or SAS -- and therefore a triangle class should have variables corresponding to ASA (or AAS).

Likewise for quadrilaterals, it's better to have more angles than more sides, so ASASA is thus preferable to SASAS. Once again, given three angles, it's easy to find the fourth by subtracting the three known angles from 360.

If we're given ASASA, here's how we would classify the quad and place it on the hierarchy:

  • A quad is a rectangle if all three angles are 90.
  • A quad is a rectangle if its angles satisfy the rectangle condition and both sides are equal.
  • A quad is a parallelogram if the two opposite angles are equal, and the middle angle is the supplement of the other two.
  • A quad is a rhombus if its angles satisfy the pgram condition and both sides are equal.
  • A quad is a trapezoid if the middle angle is supplementary to one of the other angles.
  • A quad is an isosceles trapezoid if the middle angle is supplementary to one of the other angles and equal to the remaining angle.
  • A quad is a kite if it the two opposite angles are equal and the two sides are equal.
If we were to use SASAS instead of ASASA, then it remains easy to identify isosceles trapezoids and parallelograms, but not kites.

So let's try writing a class. We'll begin with a Quad class:

class Quad {
     double a = 0;
     double ab = 0;
     double b = 0;
     double bc = 0;
     double c = 0;

     Quad(double a, double ab, double b, double bc, double c) {
          this.a = a;

          this.ab = ab;
          this.b = b;
          this.bc = bc;
          this.c = c;
     }

     double d() {
          return 360-a-b-c;
}


As you might expect, a, b, c are angles, while ab and bc are sides. We also include a simple method d() that finds the fourth angle d of the quad.


Now we can use extends to create some more quads in the hierarchy:

class Kite extends Quad {
     Kite(double a, double ab, double b) {
          this.a = this.c = a;
          this.ab = this.bc = ab;
          this.b = b;
     }
}

class Trap extends Quad {
     Trap(double a, double ab, double b, double bc) {
          this.a = a;
          this.ab = ab;
          this.b = b;
          this.bc = bc;
          this.c = 180-b;
     }
}

class IsoTrap extends Trap {
     IsoTrap(double a, double ab, double bc) {
          this.a = this.b = a;
          this.ab = ab;
          this.bc = bc;
          this.c = 180-a;
     }
}

class Pgram extends Trap {
     Pgram(double a, double ab, double bc) {
          this.a = this.c = a;
          this.ab = ab;
          this.bc = bc;
          this.b = 180-a;
     }
}

Once again, we have choices to make -- our rectangle class extends IsoTrap or Pgram? As we can't extend from two classes in Java (whereas we can in C++), we're forced to make a choice -- and I'll wait until later to make that choice.

Mocha Music: "Meet Me in Pomona," "Show Me the Numbers," "Nine, Nine, Nine"


Here's a link to the Mocha website:

https://www.haplessgenius.com/mocha/

In today's post, I'll cover the songs I performed during Weeks 5-6 at the old charter school. Because the LA County Fair field trip occurred during this stretch, I sang only three songs during that time.

And that leads directly to the first song I sang during this stretch -- "Meet Me in Pomona":

MEET ME IN POMONA, MONA

First Verse:
When Mona came up to the school, as she sat,
She hung up her coat and her hat.
She gazed around, but no teacher she found,
So she said "Where can the class be at?"
She remembered the noted, she flipped,
She saw it was a permission slip.
It said, "Hear, hear, it's too slow to learn here,
So let's go on this crazy field trip."

Refrain:
Meet me in Pomona, Mona,
Meet me at the fair.
Don't tell me that I'll learn science,
Any place but there.
The bus will leave for the fair soon,
We can stay there all afternoon.
Meet me in Pomona, Mona,
Meet me at the fair!

Second Verse:
At the fair Mona said, "Here I am!
So first I will get on this tram."
She went to the farm and she saw at the barn,
Cows, pigs, chickens, and even a lamb.
And then Mona wanted to go,
To see the monkey named Mojo,.
Peacocks and giraffes and a whole lot of laughs,
And when to leave there she didn't know.

This song is my first parody -- one which is definitely based on a real song with real lyrics that I changed to suit my purpose. For parodies, the best way for me to post the tune is to go to YouTube and find a karaoke version of the original song. Then instead of singing the actual lyrics, we can sing my version instead.

So here is a karaoke version of "Meet Me in St. Louis, Louis":


The second song for today is "Show Me the Numbers." This song was definitely one of my weaker efforts, for several reasons. The title actually refers to the name of an Illinois State STEM project that we did around this time. But that's not what the song was all about.

At the time that I wrote this song, I knew that my classroom behavior and management were starting to fall apart. And so out of desperation, I wrote a song about following rules. The words mention "minutes" of free time for following rules and so-called "demerits" for breaking rules. (I chose the word "demerits" because it sort of rhymes with "minutes" and so it fits in the song, even though most schools don't use "demerits" these days. Actually, since then I've read about a few schools that still have a demerit system after all.)

But in the end, the minute/demerit system never worked out. Many students in all three grades continued to talk loudly. I wanted to give the class a minute or two anyway for the few students in each class who were quiet. But then the next class would come in and, having heard how loud the previous class was from the room next door, wonder how those earlier kids got any minutes at all. So the system was exposed for the farce that it was -- and I never sang "Show Me the Numbers" again.

There are perhaps better ways I could have managed the classes here. Even at the time I wrote the song that year, I posted on the blog that I wanted to increase positive interactions. In this case, I should have praised the students who were quiet and set them up as exemplars for the other students to follow. (This is called modeling a procedure, in this case a procedure to be quiet.) Ignore any students who claim that making them be quiet is unfair (since they'll say that I'm unfair no matter what I say). Abandon any whole-class reward plan until most students are behaving, and instead come up with some sort of individual/small-group reward.

(Another problem with the song is that it also referred to rewards/demerits for students I caught using phones when they weren't supposed to -- outside after PE. It's awkward to try to enforce rules outside the classroom when I'm having trouble enforcing them inside the classroom. Thus I should forget about it and focus only on what happens within the four walls of my classroom only.)

And so I'm now going to rewrite "Show Me the Numbers" from scratch. Instead of referring to an unenforceable minute/demerit system, let's change it to the ten decade rules that I posted on the blog back at the start of January. The "numbers" here now refer to the numbered rules:

SHOW ME THE NUMBERS

First Verse:
Show me number one,
Improve each time we run.
Show me number two,
Sacrifice through and through.
Show me number three,
Remember what we see.
Show me number four,
Memorize more and more.
Show me number five,
Hail heroes fifty-five.
Show me the numbers,
Now 'til summer.

Second Verse:
Show me number six,
Observe our heroes' tricks.
Show me number seven,
All the way sing to heaven.
Show me number eight,
Follow routines, don't wait.
Show me number nine,
Stay in class all the time.
Show me number ten,
Work as long as we can.
Show me the numbers,
Now 'til summer.


But I'm actually considering changing some of the decade rules in the wake of the coronavirus. For example, should we have students stay in class the entire period (Rule #9) or send them out to wash their hands often? And the rule about 1955, intended to have the students keep their phones away (Rule #5), could be dropped because it might be considered more sanitary to have them use their own phones than share laptops or other high-touch objects. (Yes, their phones are dirty too, but each phone belongs to one student, as opposed to a Chromebook shared by others.)

So we'll see what classrooms look like once they reopen. As for now, the "Show Me the Numbers" song will ignore the realities of the coronavirus.

I want to write this new tune in 20EDL. The reason is just to be different -- plus I performed the original version of this song on September 20th, so there's a 20 right there.

But I'm struggling to come up with new tunes. Composing new tunes isn't easy -- I can choose random notes, but the tune must be written to fit the lyrics.

So I don't have any Mocha code to post here. Instead, I'll write something easier -- a simple quine in Mocha BASIC. This is easy -- there's a LIST command that lists the whole program. Thus our quine is just:

10 LIST

And our third and final song for today is the Square One TV song "Nine, Nine, Nine." Here are the lyrics to this song, courtesy Barry Carter:

http://wordpress.barrycarter.org/index.php/2011/06/07/square-one-tv-more-lyrics/#.V-SYfCgrKUk

Nine Nine Nine

Lead vocals by Reg E. Cathey

Backup vocals by Cynthia Darlow

Nine nine nine
Fantastic number nine
It’s perfectly consistent
It works out every time
Nine nine nine
That crazy number nine
Times any number you can find
It all comes back to nine
Two times nine is eighteen
Eight and one is nine
Three times nine is twenty-seven
Seven and two is nine
Four times nine is thirty-six
Six and three is nine
Five times nine is forty-five
Five and four is nine
Six times nine is fifty-four
Five and four is nine
Seven times nine is sixty-three
Six and three is nine
Eight times nine is seventy-two
Seven and two is nine
Nine times nine is eighty-one
Eight and one is nine
Nine nine nine
Fantastic number nine
It’s perfectly consistent
It works out every time
Nine nine nine
That crazy number nine
Times any number you can find
It all comes back to nine
Nine times ten is ninety
Just drop the zero sign
Nine times eleven is ninety-nine
Makes me rhyme with another line
Then nine and nine is eighteen
And eight and one is nine
Times any number you can find
It all comes back to nine
This work for bigger numbers, too?
Yup.
Let’s try this’un: three thousand four hundred’n eighty seven
Hmm … nine times three thousand four hundred eighty seven is
Thirty-one thousand three hundred eighty-three
Three plus one plus three plus eight plus three is eighteen;
One plus eight is nine.
It always works!
Nine nine nine
Fantastic number nine
It’s perfectly consistent
And it works out every time
Nine nine nine
That crazy number nine
Times any number you can find
It all comes back to nine
It all comes back to nine
It all comes back to nine

10. Conclusion: More About Traditionalists, Tracking, and Race

OK, I didn't want this to turn into yet another traditionalists' post. But our main traditionalists have been especially active lately. Yesterday, Barry Garelick made a post -- and this post has drawn a whopping eight comments.

And while I didn't want to have a fourth straight post about race -- yes, race is indeed mentioned in the traditionalists' discussion. Ever since the passing of George Floyd, everything has suddenly turned into a racial issue.

Well, at least I'm burying this racial discussion into the bottom of the post. What it does mean is that this is probably the longest "conclusion" that I've ever blogged.

“A study released this week in the journal Educational Researcher found teachers cover significantly less algebra material in those classes at predominately black schools than their peers in schools that are mostly white or have no racial majority.”
The solution to this in some school districts, such as San Francisco, is to eliminate algebra in 8th grade entirely. That way no one benefits, and both black and white students are disadvantaged equally.
Garelick mentions a link to a Federalist article that he wrote back in December 2016. This article is racially charged, especially since Garelick reports that a black teacher severely criticized him for what he wrote in that article.

I most likely read the article at the time he wrote it, but I didn't link to it on the blog. And I refused to link to it for a very good reason -- at the time, I was actually teaching at the old charter school. It was a school with a large black population (with the remaining students mostly Hispanic). There was no way that I'd link to such a racially charged article that might harm the students in my actual class.

Recall that at the time I was at that charter school, there were only 14 eighth graders in the entire school -- two were Hispanic and the rest were black. All eighth graders were placed in Common Core Math 8 -- not because it was San Francisco, but because our school was so small. Garelick's article appeared right after a new girl had transferred into my class -- she'd been in Algebra I at her old school, so she certainly would have appreciated Algebra I at our school if we'd offered it. I've written about this girl before -- her cousin, who was struggling in math and other subjects, would have had much trouble if we'd insisted on teaching all 14 eighth graders Algebra I.

There are two main commenters in the thread here. One of them is the usual SteveH. But the other poster is called "Anon for this one." Since SteveH responds to Anon's comment, we'd better start with Anon today:

Anon for this one:
What if they’re covering less algebra material because the students have weaker foundations in basic skills? It would be better to spend 8th grade getting those foundations down, do algebra in 9th grade, and embark on a path that still has them calculus-ready with solid fundamentals by freshman year of college.

At this point, Garelick himself chimes in, reminding Anon that his concern is with SFUSD eighth graders who are strong enough for Algebra I, not the weaker students who aren't.

Anon for this one:
First, I absolutely agree that kids who are ready should start algebra in 8th grade, and kids who aren’t yet ready should spend 8th grade getting ready.

The solution, of course, is tracking. Black kids who are actually ready for algebra should absolutely take algebra in 8th grade. As should white kids, Hispanic kids, Asian kids, Native American kids, Middle Eastern kids, etc. Black kids who aren’t yet ready should spend 8th grade getting ready, just like anyone else.

Sometimes I wonder whether placing students in different classes for high school math should still count as "tracking." If so, then it's the tracking that still persists long after all other forms of tracking, especially elementary school tracking, have disappeared. Outside of San Francisco and small charter schools, this math "tracking" still exists.

It's now SteveH's turn to comment:

SteveH:
Aaarrrgh! Tracking doesn’t just magically start in 8th grade. The tracking split is normally done at the end of 6th grade to sort kids into at least two levels for 7th grade math. The algebra in 8th grade track gets a proper (and traditionally taught) course in Pre-Algebra and the others get various sorts of lower and slower alternatives.

Full Inclusion in K-6 creates age-tracked classes with a wide range of abilities and willingness, and schools have this fairy dust hope that students will learn naturally or “when they’re ready.” Many of us parents know better, so our kids are now tracked at home starting in Kindergarten. It’s discouraging to see so many side with teachers and their ED-school philosophies over the needs of those students they claim to want to help the most. The goal of education is not to statistically reduce poverty. The goal is to provide equal individual educational opportunity. K-6 schools get this backwards and make that goal more difficult.

This isn’t a Democratic or Republican conflict or issue. It’s an issue of reality versus belief. Right now, K-6 schools under CC are ignoring the reality of the tracking we parents have to provide at home starting in Kindergarten. Parents and students – key stakeholders – have no choice. There’s a lot of spin going on to explain away reality.

We might as well leave most of SteveH's first comment out, since it's what he always says. But the important thing here is that according to SteveH, elementary school "tracking" still exists. First, he calls dividing students into grade levels "age-tracked classes," and then he refers to kids whose parents teach traditionalist math at home as being "tracked at home."

As for "age-tracked classes," we've seen that classes that aren't tracked by age end up being tracked by race. The real "fairy dust hope" is that you can track students by race without the parents of the lower-tracked race complaining about it.

And as for "tracked at home," notice that if some parents are the ones doing the tracking, then the school gets to wash its hands of any racial tracking. The parent of a child on the low track may visit the classroom and see the child's classmates all of the same race, compare it to the race of the students on the high track, and severely criticize the school (no matter how much "equal individual educational opportunity" the school seems to be providing). A parent at home who teaches the child low-track material can't blame the school for placing the child on the low track.

Now it's time for Anon's third post, and here we see that Anon is looking at this from the perspective of a college teacher:

Anon for this one:
I didn’t mean to imply that tracking should only start in 8th grade. I just meant that students should be in the class that they’re demonstrated to be ready for, not the class determined by their age. I’m not in the k-12 system so I’m not familiar with the lingo.

I see a disturbing number of students who took calculus in high school (meaning that they were enrolled in a course with “calculus” in the title) and passed the class (meaning they got enough points on homework assignments and curved tests written and graded by a teacher who needs to keep the principal happy) yet place into not even “college” algebra but remedial math. That’s quite a feat. In my university system, there are numerous ways to get out of remedial math. There are multiple state tests taken in high school which can exempt one from remedial math. A good SAT score can exempt you from remedial math. A 3 on the AP Calculus test would get you out of remedial math. Crossing a certain threshold on the placement test taken when you enter would get you out of remedial math. In other words, you need to do poorly on 5-6 separate tests, taken over a span of a year and a half, in order to get into remedial math. This isn’t about taking one test with too little sleep, or taking one test the day after a family tragedy when your mind is elsewhere.

Anon seems to complain about grade inflation here (which is what "keep the principal happy" really means) -- there are students who get passing grades in Algebra or Calculus but then can't pass the college placement exams. And Anon implicitly suggests that the solution is for teachers to give F's (not D's or D-'s, but the sixth letter of the alphabet) to anyone who would fail the placement exam, even if this means giving 90-95% of the class F's.

(As for the "principal" mentioned in Anon's post, the natural conclusion here is that principals should not criticize teachers who fail 90-95% of the class, but give them medals for upholding standards. To take this one step further, the parent of a child who gets an F shouldn't criticize the teacher for being too tough, but criticize the child for not studying -- and male sure that their teen gets at least two hours a night of screen-free study, using only a pencil/pen, paper, and a textbook, no matter how much the teen screams or claims that taking away the phone is mean.)

But here's what Anon and the traditionalists always forget -- that's exactly right, forgetting. It's possible for a student to get a perfect score on an Algebra or Calculus test, and then forget everything as soon as the test is over.

Let me tell you something -- I've never received a grade lower than B in any history class, from elementary school to AP Government. I passed the AP Government, Econ, and US History exams with flying colors. I scored Honors (top 14%) on the Golden State Exam in US History. And yet, if there were such a thing as a history placement test and you were to give it to me right now, I'd most likely fail it. Many students forget what they've learned even after passing the test. What's true for me in history holds for many other students in math. The only difference is that you don't need to take a history placement test to take college history courses, but you do need to take a math placement test to take college math courses.

So what do Anon and other traditionalists expect teachers to do? "Congratulations, young student, you scored 91% on your Algebra I final. But I'm giving you an F anyway because I built a time machine, and saw that in the future you'll forget it all and fail your college math placement exam. So I'd better give you an F so as not to give your future college professor any false hopes about you."

I've posted (a song version of) the ten decade rules earlier in this post, including the bicycle rules about memorizing and remembering things. Certainly, there's nothing wrong when traditionalists say that students should memorize and remembering the addition and times tables. It's the math beyond arithmetic where memorization becomes a problem.

One of the first things in math that students have trouble remembering is adding fractions. Students might get an A on the adding fractions test, then scarcely a month later, they're adding the denominators again. So we can reteach adding fractions the following year, the student gets another A, and then a month later they're still adding the denominators. The rules for integer arithmetic also tend to be forgotten after the test, no matter how high the test score is. And if students forget this a month later, then of course they'll forget it six years later when it's time for the placement exam.

Anon for this one:
And, if that isn’t crazy enough, some colleagues declare that, in the name of equity, our middling students should then be sent to PhD programs. After all, they got a piece of paper with the words “Bachelor of Science” stamped on it, they got that paper from an accredited university, and it would be unfair to deem their preparation insufficient. Their GRE Quantitative Reasoning scores tell us that they’re still weak on high school math, but my colleagues declare that the GRE means nothing. Just like every other test showing poor performance means nothing. PhD programs that care about “equity” should take our students, and we should ignore deficits that have been present and growing since middle school or earlier.

It’s insanity.

To many students, taking math and other courses is just hoop-jumping. Some non-STEM students will insist that they've never done any math above high school level without a calculator. They sincerely believe that they should be able to get their non-STEM PhD without knowing anything above high school math. They believe that math should be an elective starting in first grade, so only nerds who say "I love math!" at age 14 will take it. They believe that they should be allowed to get their non-STEM PhD without knowing high school math -- they'll be able to earn a six-figure income and live comfortable lives knowing only arithmetic. They believe any math beyond arithmetic is just hoop-jumping. They believe that the person who makes high school math an elective will be a hero, the most popular person in the world.

Indeed, someone made a comment about this on Facebook. The thread began with the question "Were you popular in high school?" and one response was, "I don't remember anything I learned in high school anyway. A big waste of 4 years. To get a GED, you need 8th grade knowledge." (I assume this refers to all classes, not just math.) The commenter suggests that she'll have her future child "take the route less traveled in Education" -- presumably homeschool and have her child take the GED at age 14, and that this country is doing education all wrong.

And that's what the traditionalists need to understand. Not everyone believes that it's important to remember high school math -- and they believe that failure to remember high school math shouldn't block anyone from being successful in life.

Here is SteveH's second post of the thread:

SteveH:
The problem of low slope NON-STEM Common Core expectations starts in Kindergarten. This predates CC, but now it’s institutionalized. CC guarantees that NO students will be ready for a proper algebra I class in 8th grade. However, many of us STEM parents give our children what they need in terms of individual problem sets, mastery , and understanding. Ask us parents of the best math students who do get to calculus in high school and have the possibility for STEM careers. Ask us. It’s not difficult. The academic gap is still there and growing. We won’t let our kids fail.

When we STEM parents tell you that there’s something wrong, don’t just ignore us because it doesn’t fit your assumptions. Perhaps you can’t deal with the fact that you’re fundamentally and systemically wrong. High school IB/AP math tracks are rigorous and traditionally taught. Why is it that K-8 has to be different, but they claim better success with understanding.” It’s been 20 years I’ve studied and lived this with my son. I still haven’t gotten an answer. They couldn’t use those techniques in high school because reality would smash them down.

OK, this is just the usual SteveH material, with nothing new here. The high school classes might be traditionalist, but then many students forget what they learned in the traditionalist classes.

My job as a teacher is to convince as many students as possible that this believe is wrong -- that math is really worth learning, and that they should strive to remember as much as they can. But then traditionalists also need to meet halfway and accept that some students view the need to learn math as a barrier, not an opportunity.

The last post in the comment thread is from pkadams. The racial content of this post is controversial, enough so that I don't even want to repost it here on my blog. I fear that the racial content will be hurtful to my former students at the old charter school, as well as the students in the districts where I'm a sub. I wouldn't want any student of mine to Google my blog, see the post, and then think that this represents my beliefs, even if I'm just quoting someone else.

So if you want to know what pkadams says, just click on the link to Garelick's blog above and read it for yourself.

Based on her avatar, pkadams appears to be a white woman. But she's quoting Thomas Sowell, who is a black man. Sowell has express some controversial things that I don't wish to repeat on the blog.

Even though SteveH tells us that traditionalism isn't a political "Democratic or Republican conflict," pkadams tells us that Sowell is conservative. She also tells us that he's of an older generation -- indeed, his 90th birthday is at the end of this month.

The controversial comment that pkadams paraphrases Sowell as saying is about Civil Rights.

To avoid the controversy on this blog, let's just change it to tracking. If Sowell is correct, then blacks were better off when there was tracking, even if they were being placed on the lowest track.

If Sowell is correct, then black parents shouldn't complain when their children are being placed on the lowest track, since the children will be better off there. Of course, parents did complain, which is evidence against Sowell's position with regards to tracking.

And once again, this leads to the ultimate solution to the tracking problem. If tracking should exist, then parents should be the ones to place students on tracks, not anyone at the school. Teachers can meet with parents to make recommendations about where to place the student. But if the parents are skeptical and believe that the teachers are trying to talk them down to a lower track due to their race, then they can place their children on the higher track.

This can go for all tracking -- hard 1955-style tracking, mild Path Plan tracking, and perhaps even SteveH's sixth-grade math split. Then the school can finally wash its hands of the racial tracking problem, once and for all.

No comments:

Post a Comment