From New Math to GNU Math
Dot Notation

From New Math to GNU Math

I started learning mathematics in the 1960s here in Portland, Oregon, well before computer languages were shared with elementary schoolers. Computers were mysterious room-filling devices one might look forward to meeting in college. I met my first computer at Princeton in 1976, an IBM mainframe with terminals strategically placed around campus.

In 2018, I visit schools in this same city to share MIT Scratch, Python, and Javascript with elementary, middle and high school students. A lot has changed. We have easy access from Chromebooks, to the cloud. Learning to Code is a thing.

However, most of the content I'm sharing is considered after school enrichment. I show up with a tub of Chromebooks and pass them around. Sometimes we'll use the school's computers.

I know Portland Public Schools has some fascination with MIT Scratch, because a veteran teacher, now retired, shared a thumb drive full of programs she had used in her classrooms and teacher training courses. Also some parents tell me their kids are using Scratch while the school is in session. That's encouraging.

What's not so encouraging is this phony wall that runs between mathematics and computer science, contributing to stagnation, unnecessary redundancy, and disintegration. Concepts that should be connected are kept apart.

The common wisdom is mathematics is something we learn to do in our heads, without executable notations. The symbols sit passively on the page whereas the computations take place in our minds. Once a mind is trained to compute, only then does it make sense to shift some of the burden to technological devices such as calculators and computers.

However since we cannot keep all the details of problem solving in our heads, right from the start we're committing symbols to paper, drawing diagrams, perhaps manipulating colored blocks or an abacus.

We start using these technologies early. Writing with a pencil on paper, or with chalk on a board, or with markers on a plastic surface, all constitute a use of technology. The algorithms we learn involve the manipulation of symbols.

We start with arithmetic and gradually add more concepts and techniques, building up skills through algebra, trigonometry and calculus. At some point, students are allowed to use calculators, but computer languages are something else again, and are properly learned within the domain of computer science. That's a dumbing down we should counter.

This dichotomy, between computer languages and mathematics notations, is what we need to challenge, if we're to free mathematics to keep up with the times and stay relevant. Computer languages are executable mathematics notations and should be treated as such. In practical terms this means introducing "dot notation" as a logical construct and math-oriented grammar. I have written a lot more about this agenda at the Math Forum (math-teach), in my blogs, and on Medium.

"Dot notation" is quite ubiquitous in programming and follows the noun.attribute or noun.verb format. A noun is a thing, an object, with internal state. As such it has properties such as position in space, color, weight. Things also have behaviors. In learning to solve problems, we come to know the types of objects we need. We have numbers of course, which come in many flavors. We also have functions, vectors, matrices and polyhedrons. A triangle is a thing with behaviors and attributes. So is a tabular arrangement of data. So is a web page, per the Document Object Model.

Given "dot notation" comprises a grammar, we have another possible way to connect the dots: Communications Arts. If mathematics textbooks insist on boycotting dot notation, perhaps we can enliven communications with Jupyter Notebooks and introduce dot notation along with data visualization. We'll link through literature to the tools and objects we need.

Thanks to Jupyter Notebooks, programming has become a literate activity, wherein code is interspersed with prose. We tell stories, going back and forth between "markdown cells" and "code cells". We can treat HTML and CSS as extensions to publishing instead of as topics in computer science. Automation and animation go together. We're teaching art.

Look for schools that seek to promote synergy among existing skills and topics, in contrast to those emphasizing isolated islands. Learning to Code makes a lot less sense when treated as a standalone subject. Treat coding as part of mathematics, or as integral within language arts. We don't need further fragmentation and specialization. The ability to code is a generic skill and does not imply a specific career choice such as "computer programmer".

To view or add a comment, sign in

More articles by Kirby Urner

  • Why Geometry?

    Should high school geometry be primarily about proofs? "Yes, of course" is the common sense answer. One reason we…

    1 Comment
  • Do Students Have Space for STEM?

    The questions I'm asking are pretty basic, such as when do we give high school students enough space to spread out, so…

    1 Comment
  • A Jupyter Lab Notebook

    https://youtu.be/9L5x-C1EglY Here's a link to the Jupyter Notebook in question, on Github.

  • Oregon Curriculum Network

    Introductory talk giving my spin on curriculum development. Lots more in the channel.

  • Stress Testing in Portland

    Subjecting C6XTY to high pressure, measuring points of structural failure. What is the strength of this lattice? So…

    1 Comment
  • Truckers Without Borders

    From 4D Solutions: A Storyboard

  • Websites Revisited: Touring as Archiving

    Do you have a favorite website you're not sure will last? The Way Back Machine is great but misses the context only a…

  • Maker Space Hobbies

    What helps pay the bills is my work as a Python instructor. I'm lucky this language remains in hot demand, and not just…

  • Interviewing Prospects

    What's not a secret is if you apply to become an undergraduate at Princeton, the university will attempt to set you up…

  • Pythonic Andragogy

    I branded around this obscure meme, knowing it was bound to raise eyebrows. Both "Pythonic" and "Andragogy" are real…

Others also viewed

Explore content categories