does mathematics have an assignment operator?

458 views
Skip to first unread message

michel paul

unread,
Dec 18, 2013, 9:51:39 PM12/18/13
to mathf...@googlegroups.com
I know that '=' probably comes to mind, but I've started to wonder about that. This is related to the 'What are the verbs of mathematics?' question. 

We might say, "Let x = 5.", and it does seem like assignment is going on, but it's not because of the '='. It's because of the 'let'. We are making an assertion that is to be accepted, for now, as fact.

Or we could say, "If x = 5, then x + 2 = 7." Here there is no assignment going on, only conditional reasoning. We're not saying that x is 5, just saying that if it is, then certain consequences follow. 

So this got me wondering - does mathematics even have an assignment operator? 

Google that question, and see what you get. It's very interesting. All discussion of assignment occurs in the context of programming languages. Mathematics does not have an assignment operator! And that is because 'to assign' is not a form of 'to be'. I bet that would come as a surprise to lots of math teachers.

--
Michel

===================================
"What I cannot create, I do not understand."

- Richard Feynman
===================================
"Computer science is the new mathematics."

- Dr. Christos Papadimitriou
===================================

kirby urner

unread,
Dec 19, 2013, 1:06:26 AM12/19/13
to mathf...@googlegroups.com

The idea of "naming" in a mathematical sense owes a
lot to geometric diagrams with named features, such as
angles, edges, and later coordinate axes. 

Conventions were adopted such that the appearance of
the name gave reminders of the type of object e.g. theta
became associated with angles, bold face lowercase
became vectors... many typographical conventions were
phased in.

Programming languages for the most part have not
propagated italic, bold, directly in the language.  Upper
and lowercase persist in most.  And with Unicode [tm],
we have opened the door for more variety and new
conventions. 

Languages such as Wolfram's, designed to underpin
traditional typography, allow for alternative semantics
when displaying.  You can see a Reimann Sum symbol,
our you can see a function named Reimann.  Some-
times it adds insights to strip away 1800s typography
and go with something more uniform and consistent.

Speaking of which, we finally got Mathematica up and
running on a Pi today.  Pictures:

http://www.flickr.com/photos/kirbyurner/11442795686/in/photostream/
http://www.flickr.com/photos/kirbyurner/11442844364/in/photostream/
http://www.flickr.com/photos/kirbyurner/11442924404/in/photostream/

I'd hesitate to say Mathematica is outside or not part of
mathematics, and since it is a computer language, I have
to admit that mathematics contains / has programming, and
so does have assignment operators (not always =).  In pre-
computer math it was less explicitly an "operation" and more
a set of grammatical rules, including for diagramming, as
mentioned above.  Objects did come to be named.  Names
have always been important.

But rather than frame it this way (whether assignment is part of
math), I prefer to think that STEM should be atomized no further. 
Whether it's "math" or "technology" or "engineering" just should
not matter that much.  STEM is STEM.  How we carve it up internally
is more a subject for anthropologists to investigate, i.e. it's cultural,
not divinely ordained.

Kirby




--
You received this message because you are subscribed to the Google Groups "MathFuture" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mathfuture+...@googlegroups.com.
To post to this group, send email to mathf...@googlegroups.com.
Visit this group at http://groups.google.com/group/mathfuture.
For more options, visit https://groups.google.com/groups/opt_out.

Phil Wagner

unread,
Dec 18, 2013, 10:50:45 PM12/18/13
to mathf...@googlegroups.com

In CS '=' says take this value and store it in this memory location that I am nicknaming 'x'.

In math I consider 'let x = 5' to be a placeholder. It doesn't have any use as far as I know except to avoid evaluating 2(x²) prematurely. Of course if the value is tedious to write it also serves as a shorthand (e.g. pi).

I'd love to be enlightened further by the links you found or other's thoughts.

--

Maria Droujkova

unread,
Dec 19, 2013, 6:44:52 AM12/19/13
to mathf...@googlegroups.com


On Wed, Dec 18, 2013 at 9:51 PM, michel paul <python...@gmail.com> wrote:
I know that '=' probably comes to mind, but I've started to wonder about that. This is related to the 'What are the verbs of mathematics?' question. 



I think in most texts, the assignment operator is the combinations of = and the words such as "let" or "suppose," for example:

Let x=5

Cheers,
Dr. Maria Droujkova

Mehmet Kayaalp

unread,
Dec 19, 2013, 11:02:10 AM12/19/13
to mathf...@googlegroups.com
Computer science can be considered as a branch of mathematics. But even outside of the realm of computer science, mathematics certainly is capable of representing assignments. However, I do not believe arithmetic and "high school" algebra are capable of representing the concept of assignment.

Here is an assignment that you would frequently see in programming x =: x + 1. As I mentioned earlier, here, a temporal order (directionality) is in place -- there is no such concept in simple equations of arithmetic or high school algebra.

Time is an essential component of physics and directionality (and temporal order) is certainly part of mathematics. You can find plenty of good examples in control theory, where you can represent a feedback system using differential equations.

--mehmet

 



--

Paul Libbrecht

unread,
Dec 19, 2013, 11:12:37 AM12/19/13
to mathf...@googlegroups.com
Phil,

I think scope is important in your description, both in math and programming.

A mathematical statement such as "let x be the fifth member of X" is likely to be hooked to such logical boundaries as a case in a case enumeration (which would, say, give sense to X).

In programming, the scope of x when x=5 is invoked is pretty precise, it can be local, or in some surrounding, or x can be a reference to something which employs other locally available references (e.g. rects[3].width=5).

paul

PS: personally I think the mathematical "let" or even the "thus x is 3" is not an assignment. It is most commonly used in an undefined way ("let x be a prime number"). To see a more CS-analogy, I'd prefer a type declaration.

kirby urner

unread,
Dec 19, 2013, 12:30:20 PM12/19/13
to mathf...@googlegroups.com
The verb "to substitute" has a lot of overlap with "to name" i.e. "to assign a name to".

You'll have some "formula" say for area and then substitute specific values.  Whether you formally say "let W = 30 and H = 50" or just do the substitution, you know that W "stands for" a value in any given case, whereas the general formula is uncommitted to any given case.  That's why we use names in Al Jebr, to remain aloof from the special case.

So math develops that sense of general case expressions using variables, combined with substitution of special case values.  The verb "Let X = " may or may not explicitly enter into it.

There're a lot of (sometimes subtle) differences among the computer languages too, regarding what "assignment" means, and the pairing of names with objects happens in many ways *other than* by means of using = (assignment operator).  E.g. in Python:  for A in [1,2,3,4]: will make A the name of each integer in turn, yet = is not used.

Kirby



michel paul

unread,
Dec 19, 2013, 12:57:42 PM12/19/13
to mathf...@googlegroups.com
I also sent this question out to some of my students and got this very thoughtful response. This student was in my Computational Math class last year and is in AP Comp Sci this year. I was really struck by his statement, "
I've always considered mathematics as we know it to be a method of observation rather than manipulation." Very cool to consider that this is coming from a high school kid.

On Wed, Dec 18, 2013 at 10:15 PM, Chris wrote:
I've always considered mathematics as we know it to be a method of observation rather than manipulation. We create symbols to observe mathematical concepts but we aren't actually doing anything to the numbers other than expressing them in ways that we can understand. However, when it comes to programming we manipulate data within the computer to make it do what we want it to do (hopefully). Of course, as computational "literacy" becomes increasingly necessary in higher level mathematics, surely this gap between mathematics and computational science will narrow.

--

Mehmet Kayaalp

unread,
Dec 19, 2013, 1:59:57 PM12/19/13
to mathf...@googlegroups.com
Michel,

Commendable!

I wonder whether he would revise his statement if you direct him to think about what he would "observe" over time in his marketing account with non-zero compound interest rate before he withdraw any money? In other words, I would let him think about in terms of money (y) and time (t); so how would he approach to model f(y,t)? If he draws it on y, t coordinate system, what would he think about the resulting step function?

The trick here is not to allow him to decompose y (into principal and accumulated amount). Rather, I would say that he can denote his principal as y[t=0] and his balance y[t=n], where n is the number of compounding cycles (years).

The interest rate does not have to be compound, but if it is compound interest rate, the student can get further insight when he tries to model the problem on a spreadsheet where succession of cells would represent the time interval / cycles in question.

Later if he studies statistics, probability theory, or information theory at the graduate level, he would come back to the same idea and would better appreciate time series, autoregressive models, and stochastic processes.

--mehmet

 



--

michel paul

unread,
Dec 19, 2013, 9:05:24 PM12/19/13
to mathf...@googlegroups.com
On Wed, Dec 18, 2013 at 10:06 PM, kirby urner <kirby...@gmail.com> wrote:

I'd hesitate to say Mathematica is outside or not part of
mathematics, and since it is a computer language, I have
to admit that mathematics contains / has programming, and
so does have assignment operators (not always =).

I think we're watching mathematics itself evolve.

Names
 
have always been important.

Like Confucius said, "The beginning of wisdom is to call things by their right names." I tell the students that this has a whole lot to do with object-oriented programming. : )
 
Whether it's "math" or "technology" or "engineering" just should
not matter that much.  STEM is STEM.  How we carve it up internally
is more a subject for anthropologists to investigate, i.e. it's cultural,
not divinely ordained.

Maybe not just anthropologists ... maybe also epistemologists? The categories that make up STEM are not divinely ordained, granted, but each component does emphasize a unique style of thinking and has a history that I think education should present. Otherwise, the letters making up 'STEM' will cease to have meaning, and people will wonder ... why call do we call it 'STEM'?

Math, for example, evolved as an art of pure reasoning, and its successes inspired schools of philosophers to try to derive all knowledge by its methods ... but that approach doesn't work, and education needs to communicate that. Nevertheless, the zen-like nature of pure detached mathematics is still a good intellectual discipline, one of the best.

--
Michel

michel paul

unread,
Dec 19, 2013, 9:11:33 PM12/19/13
to mathf...@googlegroups.com
On Thu, Dec 19, 2013 at 8:02 AM, Mehmet Kayaalp <mehmet....@gmail.com> wrote:
Computer science can be considered as a branch of mathematics. But even outside of the realm of computer science, mathematics certainly is capable of representing assignments. However, I do not believe arithmetic and "high school" algebra are capable of representing the concept of assignment.

Right. And that's what I'm finding significant. I believe it would surprise most high school teachers that math in the traditional K-12 sense cannot represent assignment without reaching beyond itself. That's fascinating.

Time is an essential component of physics 

Yes, and I'm thinking that it is provides an essential distinction between traditional math and the world of programming, with functional programming being an interesting middle ground.

--
Michel

michel paul

unread,
Dec 19, 2013, 9:16:25 PM12/19/13
to mathf...@googlegroups.com
On Thu, Dec 19, 2013 at 9:30 AM, kirby urner <kirby...@gmail.com> wrote:
The verb "to substitute" has a lot of overlap with "to name" i.e. "to assign a name to".

Right, I was actually thinking about that very thing, how 'f(x)' in a sense assigns a value to x when it is called.

I think this would have a lot to do with what the lambda calculus is all about as well.

michel paul

unread,
Dec 19, 2013, 9:39:03 PM12/19/13
to mathf...@googlegroups.com
On Thu, Dec 19, 2013 at 10:59 AM, Mehmet Kayaalp <mehmet....@gmail.com> wrote:

I wonder whether he would revise his statement if you direct him to think about what he would "observe" over time in his marketing account with non-zero compound interest rate before he withdraw any money?

I actually don't think so.
 
In other words, I would let him think about in terms of money (y) and time (t); so how would he approach to model f(y,t)? If he draws it on y, t coordinate system, what would he think about the resulting step function?

I think he would see it as a mathematical structure that we can interpret in terms of money and time if we find that useful but which in itself is simply a mathematical structure. We might use the insights we gain from studying this model to manipulate things to further our interests, but the mathematical structure simply remains a mathematical structure. I think his statement would remain intact.

--
Michel

michel paul

unread,
Dec 19, 2013, 9:48:06 PM12/19/13
to mathf...@googlegroups.com
On Thu, Dec 19, 2013 at 8:12 AM, Paul Libbrecht <pa...@hoplahup.net> wrote:
I think the mathematical "let" or even the "thus x is 3" is not an assignment. It is most commonly used in an undefined way ("let x be a prime number").

That's a good point. 'Let' used with '=' actually doesn't define assignment in any rigorous  way. I like that.

So, we really can affirm, traditional math contains no assignment operator!

Cool.

--
Michel

Joseph Austin

unread,
Dec 20, 2013, 11:29:01 AM12/20/13
to mathf...@googlegroups.com
Paul, 
I'm not sure we can say the discussion is over.

One way of thinking of "assignment" is as an alternative representation of associativity.

For example:  for " bˆ2-4*a*c " we courd write:

p=bˆ2
q=4*a
r=q*c
s=p-r

The programming "reassignment" notation  "x = x + 1"
is related in concept to the summation notation Sigma [i=1..n]
or to recursive notation:
0! = 1
N! = N*(N-1)! for N>0

Perhaps the closest "math" analogue to aaaignment is composition of an operator in group theory,
for example, a permutation.

Computers need "assignment" because they are typically doing repetitive calculations,
the type of calculation that traditional math  represents with subscripted variables or recursion.
As in math, it would be impractical to come up with a unique name and storage location for each intermediate result in a very long series of compostions of binary operators.

Computers, and humans for that matter, may also do complex calculation in which several "final" results are wanted that individually share some components of the calculation.
The most common example is possibly the quadratic equation forumla, in which the radical is used in the equation for both roots.  But we typically avoid writing (and computuing) it twice by using the custom-breaking "plus-and-minus" operator.
Another example is the calculation of binomial coefficients (Pascal's triangle) where interior sums from one level are used twice to compute the next level interior elements.
Since linear parenthesized expressions are not capable of representing such arbitrary "graph" associativity, we need "assignment" or some substitute to avoid redundant calculation.  

Redundancy, of course, is not a problem when viewing math as "definitive" vs. "operative". 
But consider this: in elemetary school, we are primarily teaching opeational math, not definitive math.
What about all the algorithms we teach for placing intermediate digits in rows and column, as as super- or sub-scripts for "carries" and "borrows"--are not these "assignments"?  

Perhaps we could teach these algorithms more effectively if we did use "variables" and "assignment" instead of expecting studnets to internally remember the algorithms or their descriptions in English.

Joe Austin

PS  I tend to be a "existentialist" rather than an "idealist".  I belive there is more significance to the observational/definiional vs operational issue, that is, in the full STEM context, it matters whether we view "reality" as "models" of mathematical ideas or view math as an approximate representation of real things.

michel paul

unread,
Dec 21, 2013, 12:10:38 AM12/21/13
to mathf...@googlegroups.com
On Fri, Dec 20, 2013 at 8:29 AM, Joseph Austin <drtec...@gmail.com> wrote:

I'm not sure we can say the discussion is over.

I agree.

A further point that comes from all of this is that every equation or inequality a student encounters in their mathematical education is a boolean statement, yet they never even hear the term 'boolean'.

They're not taught to consistently analyze an equation as a statement, nor are their teachers, as recent research shows. : )

It seems that our curriculum tends to enforce the notion that mathematical expressions and equations are commands to 'do' something, and there's not a clear distinction drawn between expressions and statements. If presented with an equation of type E, what do you 'do' to 'solve' it? Getting trained in how to respond correctly to specific types of stimuli that might not make any conceptual sense basically sums up a lot of math education. 

I've been thinking that an essential difference between programming vs. traditional high school algebra is that in programming the focus is on constructing meaningful expressions vs. 'solving' equations. Our curriculum makes kids solve equations that have no meaning for them, but programming is all about constructing meaningful expressions.

I think that this distinction right here is huge.   
--
Michel

Linda Fahlberg-Stojanovska

unread,
Dec 21, 2013, 12:31:18 AM12/21/13
to mathf...@googlegroups.com

Excellent discussion. First I thought it rather esoteric, but now I am beginning to see both the point and the value in educational terms. Warm regards to all, Linda

 

P.S. I make my kiddies write a little question mark above not just the equals sign, but also above the not equals and inequality signs when “checking” their answers, i.e. “booleaning”.

--

kirby urner

unread,
Dec 21, 2013, 12:09:02 PM12/21/13
to mathf...@googlegroups.com
On Fri, Dec 20, 2013 at 9:10 PM, michel paul <python...@gmail.com> wrote:
On Fri, Dec 20, 2013 at 8:29 AM, Joseph Austin <drtec...@gmail.com> wrote:



<< SNIP >>
I've been thinking that an essential difference between programming vs. traditional high school algebra is that in programming the focus is on constructing meaningful expressions vs. 'solving' equations. Our curriculum makes kids solve equations that have no meaning for them, but programming is all about constructing meaningful expressions.

I think that this distinction right here is huge.   
--
Michel

Traditional high school math has a lot of "equation solving" in the sense of solving for x, e.g. getting the roots of nth degree equations, usually 2nd degree, and often using the quadratic formula.   Trig identities are likewise algebraically derived. 

Computer algebra programs (like mathematica on the Pi **) are not as easy to write and comprehend as programs which take the results of such manipulations for granted (as proved theorems) and then "plug in the numbers" in special case.  The programs take the tedium and, once debugged, the errors, out of running through a multi-step process.

Take for example the operation of multiplying a matrix by a vector, and having the 12 vertexes of an icosahedron expressed as vectors.  Manually rotation said polyhedron 1 degree around axis K using a matrix is tedious, so if a traditional high school math class ends up doing any linear algebra (probably IB math if so) it still falls short of demonstrating the power of applying such results, whereas if you have computers, you can program what you just learned and "plug in the numbers" to watch your polyhedron smoothly rotate right in front of you, a satisfying culmination of a chapter.

Another favorite of mine is Qhull, which finds the maximum convex hull defined by a cloud of points in space.  Deriving and proving the algorithm is one thing, applying it another.  In my view, applying before deriving is highly acceptable.  It's OK to appreciate the power and relevance of an engine before dissecting how and why it works.

Or take the topic of composites versus primes.  High school math bleeps over a lot of the number and even group theory here in a rush to get to real numbers (enough with set Z, must get to R in a big hurry), I think in part because doing much modulo arithmetic by hand is mistake-prone and uber-boring. 

But if we're also writing little programs to (A) apply Euclid's Method for the GCD and (B) derive the totatives of a number N and (C) make Caley Tables of these totatives modulo N then we're (a) reinforcing all they've learned in another executable math notation (a computer language) and (b) going deeper into the topics and starting to really appreciate the power and relevance of the applications (e.g. RSA cryptography).

I doubt you (or most readers of mathfuture) strongly disagree with any of this but may wonder what it has to say about the assignment operator. 

Mostly I'm suggesting that x**2 + 3*x - 10 = 0 is typical of what's to be solved, by factoring into (x + 5)(x - 2), such that x could be -5 or 2, and/or using the quadratic formula, and that learning the algebraic manipulation with these puzzles is easier than learning how to program a general case computer algebra system or following all its logic.  Yes computers can do integration and differentiation, but it's easier to explain the game to students and have them do it manually.  So the "=" that leads to algebraic manipulation is what's traditional (finding "x").

However the relevance and power of mathematics is what's *not* appreciated because we do not yet augment their learning with an easier kind of programming that takes advantage of theorems proved.  The fact that the set T of N's totatives, form a group modulo N, meaning closure, associativity, inverse and identity element may all be specified, makes more sense when you can look at one set T after another, Cayley Table after Cayley Table.  But that's too tedious to do by hand and the textbooks don't want to devote expensive pages to this investigation, so the whole topic lies fallow.  Yet with computers we're poised to explore.

Fractals:  same thing.  The complex number mathematics is fairly trivial, but the number of computations is astronomical.  In ages before now, astronomical numbers of computations was a sign to move on, but today they're what computers shine at doing.  We need to marry traditional math with more satisfying applications.  Recreating a computer algebra system is not the goal.  Using an alternative math notation to summarize and apply concepts and discoveries is the goal.

Kirby

kirby urner

unread,
Dec 21, 2013, 7:02:54 PM12/21/13
to mathf...@googlegroups.com


On Saturday, December 21, 2013 9:09:02 AM UTC-8, kirby urner wrote:


Computer algebra programs (like mathematica on the Pi **) are not as easy to write and comprehend as programs which take the results of such manipulations for granted (as proved theorems) and then "plug in the numbers" in special case.  The programs take the tedium and, once debugged, the errors, out of running through a multi-step process.


Meant the ** after [Raspberry] Pi to go to a blogpost:

http://controlroom.blogspot.com/2013/12/pi-lab.html

Kirby


Mehmet Kayaalp

unread,
Dec 21, 2013, 11:18:31 PM12/21/13
to mathf...@googlegroups.com
Michel,

I am not sure whether we are on the same page here. Let's agree on our terminology, esp on the meaning of manipulation. 

I've always considered mathematics as we know it to be a method of observation rather than manipulation. 
My interpretation (of your student's statement) is that in an observatory mode, he merely is an outsider, watching the phenomena from a distance; whereas, in the manipulatory mode, he plays an active role in altering events that he is observing.

When we watch an astronomical event in another galaxy, we surely are observing the phenomena that happened many years ago. But almost all human activities on Earth that interact with nature, physical laws and so on are done by definition with our active involvement. All engineering activities, if well planned, are within that realm. A civil engineer builds a bridge, after testing all possible scenarios of human activities in conjunction of the forces of nature acting on the bridge. In order to do that the engineer needs to construct solid mathematical models to prove that the bridge would be safe and sound under foreseeable adverse events.

He said:
when it comes to programming we manipulate data within the computer to make [the computer] do what we want it to do (hopefully).
When an artillery needs to hit a target, the men behind it take the mathematical model of the trajectory, fill in the variables with the data in hand, and make the artillery do what they want it to do (hopefully). So computers are not too different then an artillery in this sense.

Students impressions that mathematics is merely a descriptive activity of past (observed) events may be somewhat indicative of how mathematics is treated in textbooks. I am sure that you would agree that everything that can be done with programming can be done with pen and paper using mathematics; thus, the dichotomy seems artificial and imaginary.

--mehmet

--

Mehmet Kayaalp

unread,
Dec 22, 2013, 12:22:04 AM12/22/13
to mathf...@googlegroups.com
I am not sure whether assignment is a big deal. Here is my 2 cents on this issue.

In Michel's previous thread on mathematical verbs, I said
In many procedural programming languages, there is no equation but assignments. For example,  z := x + y states that we add x and y, and store the sum in z. In a computer, x, y and z refer to actual physical containers (registers).
But, I believe the emphasis on the equation sign (in whatever from) is a bit overrated. We need to pay closer attention to the different nature of algebraic variables and variables in programming languages.

Preliminaries:
In high school algebra when we use system of equations, we describe a number of atemporal (or contemporaneous) facts; that is, the left hand side of equations and right hand side of equations are invariant in time. Any particular variable in one equation is equal to the same variable in other equations. Without any additional syntactic sugar, we can't represent "change" in those equations -- the situation improves significantly with calculus and differential equations in later years, but the latter is not the issue of discussion here.

Computers (Turing machines) are state machines. When we say
x =: x + 1
we mean that the state of x on the right-hand-side (rhs) changes to another state represented on the left-hand-side (lhs).
In other words, x on the rhs is not the same x on the lhs.

x =: -3
for i =: 1 to 10 do:
    x =: x + 1

The above lines indicate that x changes its state 10 times. In a state machine, we enumerate those states with integers. So, in the first iteration we have x[1] = x[0] + 1, where x[0] and x[1] are -3 and -2, respectively. In this second notation, we have no semantic problem with the equation sign; i.e., we can use = sign and =: sign interchangeably. We use similar notations in Markov chains and time-series models, without calling the equation sign an assignment.

--mehmet

michel paul

unread,
Dec 22, 2013, 1:55:57 AM12/22/13
to mathf...@googlegroups.com
On Sat, Dec 21, 2013 at 8:18 PM, Mehmet Kayaalp <mehmet....@gmail.com> wrote:

I've always considered mathematics as we know it to be a method of observation rather than manipulation. 
My interpretation (of your student's statement) is that in an observatory mode, he merely is an outsider, watching the phenomena from a distance; whereas, in the manipulatory mode, he plays an active role in altering events that he is observing.

My understanding of his statement is of course colored by the conversations we've had in class, so I don't want to put words in his mouth, but my sense is that he's referring to something like '2+3'. 

'2+3' is an expression rather than a statement, as there is no verb, and it is also not a command to do something, though it could be interpreted in that way, and that might in fact be the default way many people read it (or feel it). It could also be interpreted as on a number line start at position 2 and then move 3 units. It could describe all kinds of different processes, but the expression in itself actually doesn't imply any one of them. It doesn't imply any kind of action needing to occur at all. It is, outside of any context beyond traditional arithmetic, only an expression of a value, just like '5' is an expression of that same value.

I'm pretty sure that what he's getting at is that an expression like '2+3' already is '5', it doesn't have to become '5'. There are situations where that does happen, like in a computer, but the pure mathematical relation is independent of time. That was kind of how our discussions were going.

We were also discussing how the question, "Does this function halt?" makes no sense in mathematics but is fundamental for computer science. Turing proved its general solution impossible. 

He said:
when it comes to programming we manipulate data within the computer to make [the computer] do what we want it to do (hopefully).
When an artillery needs to hit a target, the men behind it take the mathematical model of the trajectory, fill in the variables with the data in hand, and make the artillery do what they want it to do (hopefully).

Right. They use the mathematical model to help them decide how to manipulate things for their success, but the model itself is simply a description, not a command. If you were to turn the model into a program, yes, then the model would become active.

So computers are not too different then an artillery in this sense.

Students impressions that mathematics is merely a descriptive activity of past (observed) events may be somewhat indicative of how mathematics is treated in textbooks.

Well, most students (and math teachers), given my recent informal study, seem to think of mathematics in procedural and not descriptive terms. And yes, I think the way math is treated in our curriculum does have a lot to do with that procedural rather than descriptive kind of understanding. I think a goal of math education should be to help students mature from a purely procedural understanding of math into a functionally descriptive one. And again, my suggestion is that programming can meet people right there in that procedural way of thinking and help them explore other realms.
 
I am sure that you would agree that everything that can be done with programming can be done with pen and paper using mathematics;

and LOTS and LOTS and LOTS of time!   : )
 
thus, the dichotomy seems artificial and imaginary.

Well, no, I think there is something interesting going on here. And it all has to do with ... Being and Time!  : )


On Thu, Dec 19, 2013 at 9:39 PM, michel paul <python...@gmail.com> wrote:
On Thu, Dec 19, 2013 at 10:59 AM, Mehmet Kayaalp <mehmet....@gmail.com> wrote:

I wonder whether he would revise his statement if you direct him to think about what he would "observe" over time in his marketing account with non-zero compound interest rate before he withdraw any money?

I actually don't think so.
 
In other words, I would let him think about in terms of money (y) and time (t); so how would he approach to model f(y,t)? If he draws it on y, t coordinate system, what would he think about the resulting step function?

I think he would see it as a mathematical structure that we can interpret in terms of money and time if we find that useful but which in itself is simply a mathematical structure. We might use the insights we gain from studying this model to manipulate things to further our interests, but the mathematical structure simply remains a mathematical structure. I think his statement would remain intact. 

--
Michel

michel paul

unread,
Dec 22, 2013, 2:01:13 AM12/22/13
to mathf...@googlegroups.com
On Sat, Dec 21, 2013 at 9:22 PM, Mehmet Kayaalp <mehmet....@gmail.com> wrote:
I am not sure whether assignment is a big deal. Here is my 2 cents on this issue.

In Michel's previous thread on mathematical verbs, I said
In many procedural programming languages, there is no equation but assignments.

How about boolean equations? Certainly you're going to have those. And that's kind of the issue.

Again, a tragedy in our current math education is that every single equation or inequality a student sees is a boolean assertion, but they never, or very seldom, are told about the expression 'boolean'!

But, I believe the emphasis on the equation sign (in whatever from) is a bit overrated.

Well, no, the emphasis is not on the '=' symbol. It's more about boolean equality vs. variable assignment, and it's pretty important if you're designing a programming language to make a clear distinction between assignment vs. boolean comparison. They actually are completely different things, and programming makes this clear, but our current math education does not.

--
Michel

Maria Droujkova

unread,
Dec 22, 2013, 3:09:33 AM12/22/13
to mathf...@googlegroups.com

 
I am sure that you would agree that everything that can be done with programming can be done with pen and paper using mathematics;

and LOTS and LOTS and LOTS of time!   : )
 

Some of those LOTS are on the order of "every human on Earth spending every waking hour, for years." 

Proving the four-color theorem?
Solving chess?
Landing on Mars? And this one could not be solved by lots of humans over time, because it requires FAST computing.

For more elementary examples, I like the collection in Project Euler. These problems are solvable by hand, and would not take a human until the heat death of the Galaxy to finish. It would just be a boring waste to do so - but the problems are fun to solve with programming: http://projecteuler.net/

Cheers,
Dr. Maria Droujkova

kirby urner

unread,
Dec 22, 2013, 10:29:30 AM12/22/13
to mathf...@googlegroups.com

And yet there are simple problems, including chess problems, that computers cannot solve, because their programmers don't have a clue how to code sudden insights and flashes of intuition.  Human intelligence has not been rendered obsolete.  It's an ongoing partnership.

We live in interesting times.

Kirby

Maria Droujkova

unread,
Dec 22, 2013, 10:33:40 AM12/22/13
to mathf...@googlegroups.com


And yet there are simple problems, including chess problems, that computers cannot solve, because their programmers don't have a clue how to code sudden insights and flashes of intuition.  Human intelligence has not been rendered obsolete.  It's an ongoing partnership.

We live in interesting times.

Kirby


I really like the model of partnership, Kirby. And not just partnership with computers.

Consider children.

What are the tasks children do better than adults? What sorts of tasks are better done in multi-age partnerships?


Cheers,
Dr. Maria Droujkova

Jared Monaco

unread,
Dec 22, 2013, 10:49:31 AM12/22/13
to mathf...@googlegroups.com, mathf...@googlegroups.com
The user assigns the operator 

Sent from my iPhone
--

Christian Baune

unread,
Dec 22, 2013, 2:34:46 PM12/22/13
to mathf...@googlegroups.com

No assignment but "bindings" and definitions.

In "let x=3" we mostly bind "3" to "x".

When writing "f(x)=x+1" we define "f(x)" as "(x+1)".

It does have no meaning to writ "x=x+1" since "x" is unbound.
The couple "x=1;x=x+1" is pointless since "x" is already bound.

That's were come indices which add a "temporal" hint.
X_{n+1}=2*X_n+1
There, it is not "x" which is bound but "occurrences" of it.

Prolog is really good at showing one the way to think about it.

When writing "0=x^2+2x+3" it can be seen as "which values can be bound to x to keep that statement true". In fact "x=3" is of the same kind but as we can answer "x must be [bound to] 3" it makes us confused and think of "=" as an assignment.

When faced to "x<3" we don't get confused because we are not used to assign a collection to a single "variable". But if we consider "=" as assignment and not "binding", "<" should be assignment too.

With the binding view, "x<3" ask us to bind anything less than 3 to x.

Now "3<x<5" ask us to bind x to something greater than 3 and check that it is less than 5. We could try all values but once again, it I so trivial that we translate it to "x is a value which lie between 3 and 5".

But it does translate to : "x can be bound to anything greater than 3. The bounded value must be less than 5".

That's a bit of wordplay but doing a bit of Prolog can enlighten on this matter.

In imperative languages (C and basic family), we have try variables and the code flow (aka code path or execution flow) must be taken into account.

In fact all of this seems amazingly clear in end of primary school where pupils write their first equations. The meaning fades away when the subject goes farther since it become more mechanical.

The only way to keep people aware of it is requiring them to put once a while to full statements. (Like "and thus the only values of x which make it true are ...") And forbid shortcut like "x is 3" or "x worth 3". "X" as no value.

It's also like the distinction between "2" as a number or a value.

Kind regards,
Christian

kirby urner

unread,
Dec 22, 2013, 3:45:21 PM12/22/13
to mathf...@googlegroups.com
On Sun, Dec 22, 2013 at 11:34 AM, Christian Baune <progr...@gmail.com> wrote:

No assignment but "bindings" and definitions.

In "let x=3" we mostly bind "3" to "x".


I agree and I think Michel's thesis that pre computer language math had no assignment operator holds a lot of water. 

The notion of labeling, naming, is there.  We name the points of a polyhedron, the vertexes of a triangle.  And we say "Let x =".  But we do not, in traditional mathematics, elevate "naming" to the level of "an operation" such that "=" becomes a kind of binary operator that pairs a name on the left to an expression (something to evaluate) on the right.

What persuades me that Michel is right is how it feels like I'm teaching a foreign language to people who already had high school math, when I call "=" and "operator" and talk about "binding" (i.e. pairing names with objects) as something you do *in the language itself*, just as you might add (+) or compare (==, <, <=, >=, >, !=).  a = 3 "binds the name a to the object 3".

We didn't have that in high school.  In fact, what gets drilled in is any x = y <==> y = x.  But that's not so with the assignment operator.  x = x + 1 is an increment whereas x + 1 = x throws an exception.  That's not a name on the left, it's an expression.

Name on the left, value (object) on the right.  It's asymmetrical.  That left to right ordering is intrinsic to most computer languages yet alien to traditional math in being considered "an operation" (in the formal sense). 

"Naming" was a bit outside the realm of operations.  Putting a letter next to a dot on the chalk board was getting ready to talk about something, not actually performing the operations (yet).

Kirby

Phillip Kent

unread,
Dec 22, 2013, 4:18:50 PM12/22/13
to mathf...@googlegroups.com
Hi all,

This is going back plenty of years but two relevant books that I enjoyed
reading in the 90s are:

"Investigations in Algebra" by Albert Cuoco
http://books.google.co.uk/books/about/Investigations_in_Algebra.html?id=7HvQV8P-hskC
This uses LOGO as a computational language for pre-calculus.

"Learning Abstract Algebra with ISETL" by Ed Dubinsky
http://books.google.co.uk/books/about/Learning_Abstract_Algebra_with_ISETL.html?id=CDxRInjfiuAC

ISETL was a very well-designed language where the issues of programmable
mathematical notation had been thought through - and making the notation
meaningful and learnable for students. I don't know if or where ISETL
can be downloaded. I remember the book had a DOS floppy disk attached to
the back cover!!

Also worth mentioning that Stephen Wolfram has plenty of views on why
Mathematica is a solution to the problem of computational mathematical
language. I think Kirby already put a link here to Wolfram's blog:
http://blog.stephenwolfram.com/2013/11/putting-the-wolfram-language-and-mathematica-on-every-raspberry-pi/

Wolfram's self-centred views are not to everyone's taste, but I have
always been impressed by the way that Mathematica from its very early
versions was really well designed as a practical language for expressing
mathematics.

- Phillip

++++++
Dr Phillip Kent, London, UK
mathematics education technology research
philli...@gmail.com mobile: 07950 952034
www.phillipkent.net
++++++


Phillip Kent

unread,
Dec 22, 2013, 4:21:36 PM12/22/13
to mathf...@googlegroups.com
Addition:

Jim Cottrill's ISETL page...

http://homepages.ohiodominican.edu/~cottrilj/datastore/isetl/

The source code in C is there.



Joseph Austin

unread,
Dec 22, 2013, 8:49:39 PM12/22/13
to mathf...@googlegroups.com
Kirby,
I think we have been using "assignment" all along. But before computers, we didn't have a formal notation for it.
Perhaps we didn't think we needed one; we thought "natural language" and demonstration were good enough.
Perhaps we didn't even realize that we were doing it!

Children have been taught computational algorithms in elementary school for centuries; in doing so, they perform "assignment" by writing intermediate partial results on designated spaces of their paper. 

High school students of science are well aware of a two-step process of "problem solving": first, algebraically maniputlate the equation to "solve" for the variable of interst; second,  substitute values and arithmetically evalaute the algebraic expressions.  All of these steps are "operational" and involve "assignment" in the sense that they (typically)  involve placing new symbols on blank spaces of the paper.  Algebraic equations are "solved" by rewriting the equations in a new form, e.g. "moving" a factor from the numerator on the left to a denominator on the right. Then, the new expressions are evaluated, involving substituting values for variables and computing and combining several intermediate results of binary "operators" according to the rules of PEMDAS. Again, preseving, even temporarily, the individual intermediate results for subsequent use is "assignment". 

School children have an unlimited supply of paper, so they can put each new result in a new space. In early computers, "paper"(memory) was very expensive, so we devised methods to name the "spaces" so we could "erase" symbols we no longer needed and reuse the same "space" for new calculated results.  Hence, x := x + 1.  
Mathematically, this is shorthand for something like x' = x+1  or x[1] = x[0]+1.

Originally computer languages were purely operational and would not be confused with mathematics, though the instructions were often printed as numerals, sometimes in binary or octal.  The programming language FORTRAN, an acronym for "FORmula TRANslation",  was a revolutionary advance in usability of computers,  allowing the computer to translate something close to traditional mathematical notation into the operational instructions for the computer.  The hardware instruction: "add 1 to the number in the accumulator" ended up in FORTRAN as  "x = x+1".  Later languages sought to remove the confusion between assignment and equality by introducing two different symbols, e.g. := for assignment or == for equality or even += for increment.  But the ambiguity of "=" persists among the generations trained in FORTRAN.

Perhaps we have not paid sufficient attention to the computational or operational or procedural or algorithmic aspects of mathematics as distinct from the assertive or axiomatic aspects.  We teach "truths", but we also teach "processes." When we had to explain our processes to machines, we learned to make them explicit, and even simplified them to make them easier for machines to handle. (For example, we converted numbers from decimal to binary.)  

I'd often thought of creating a 2-D "Turing Machine" ** simulator that would operate on a sheet of graph paper and perform "arithmetic" by writing digits in squares the way we teach our children to do it.  In my more radical moments, I'd require every elementary math teacher to program my machine to perform arithmetic before subjecting innocent children to arithmetic lessons!  Then they would understand the difference between  procedural math and assertional math.

** A 2-D Turing machine would operate on an infinite grid of squares instead of an infinite linear tape.  It would have 4 move directions:
up, down, right, left. Otherwise, it would use states, read, write and state transition rules the same as a normal "1-D"  Turing Machine.

Joe Austin

kirby urner

unread,
Dec 22, 2013, 10:30:44 PM12/22/13
to mathf...@googlegroups.com
On Sun, Dec 22, 2013 at 5:49 PM, Joseph Austin <drtec...@gmail.com> wrote:
Kirby,
 
I think we have been using "assignment" all along. But before computers, we didn't have a formal notation for it.
 
Perhaps we didn't think we needed one; we thought "natural language" and demonstration were good enough.
 
Perhaps we didn't even realize that we were doing it!


I agree with you entirely.  To assert that "naming an object" was a "binary operation" with "name on the left and object on the right" would have come across as nebulous Neo-Platonism before now. 

Platonists, often called Realists as opposed to Nominalists (see Catholic Encyclopedia) tend to "reify" everything e.g. talk about abstractions as if they were real objects in the Platonic realm.

Well, what would've sounded like Neo-Platonic hocus-pocus, is these days concretized (as in "rendered concrete"), in that we really do consider assignment to be an operation whereby a name becomes paired with some type of thing floating in "memory".

Not only that, but in some languages the object named will keep track of how many other names it has, and flag itself as "ready for recycling" when all its names have become disconnected.

With the creation of "memory" as a real place, wherein space for objects had to be "allocated", we got the idea of "naming as claiming" i.e. naming as staking out space in memory to "store an object".  That grammar, hitherto a part of "natural language" jumped over the fence to join the notation as a formal operation.

That's why I think Michel's notion holds water.  When we start talking about the symbol "=" as an "assignment operator" or invent new symbols for the purpose, it feels like we're augmenting what we learned in high school, where we named things certainly, but not as "an operation".

Children have been taught computational algorithms in elementary school for centuries; in doing so, they perform "assignment" by writing intermediate partial results on designated spaces of their paper. 

High school students of science are well aware of a two-step process of "problem solving": first, algebraically maniputlate the equation to "solve" for the variable of interst; second,  substitute values and arithmetically evalaute the algebraic expressions.  All of these steps are "operational" and involve "assignment" in the sense that they (typically)  involve placing new symbols on blank spaces of the paper.  Algebraic equations are "solved" by rewriting the equations in a new form, e.g. "moving" a factor from the numerator on the left to a denominator on the right. Then, the new expressions are evaluated, involving substituting values for variables and computing and combining several intermediate results of binary "operators" according to the rules of PEMDAS. Again, preseving, even temporarily, the individual intermediate results for subsequent use is "assignment". 

I agree with all this too and earlier in this thread I mention how "to name" and "to substitute" have overlapping application.  We all learn the game of language from natural language. We do not need special notation to "assign a name to".   But with computer languages, that need from natural language needed to be incorporated more formally.  Memory had to be divvyed up.
 

School children have an unlimited supply of paper, so they can put each new result in a new space. In early computers, "paper"(memory) was very expensive, so we devised methods to name the "spaces" so we could "erase" symbols we no longer needed and reuse the same "space" for new calculated results.  Hence, x := x + 1.  
Mathematically, this is shorthand for something like x' = x+1  or x[1] = x[0]+1.


Right, I sense we are moving in the same direction.  From unlimited paper we move to expensive computer memory -- we forget how expensive today, but in the "big bang" of first computer languages, memory was a hot commodity and to name something was to get it ensconced in this new pricey matrix, this high rent neighborhood with exclusive (and limited) hexadecimal addresses.

 
Originally computer languages were purely operational and would not be confused with mathematics, though the instructions were often printed as numerals, sometimes in binary or octal.  The programming language FORTRAN, an acronym for "FORmula TRANslation",  was a revolutionary advance in usability of computers,  allowing the computer to translate something close to traditional mathematical notation into the operational instructions for the computer.  The hardware instruction: "add 1 to the number in the accumulator" ended up in FORTRAN as  "x = x+1".  Later languages sought to remove the confusion between assignment and equality by introducing two different symbols, e.g. := for assignment or == for equality or even += for increment.  But the ambiguity of "=" persists among the generations trained in FORTRAN.

Today, we are contemporaneous with the Wolfram Language, as the language behind Mathematica is called, and those hammering on this language can tell us about the many ambiguities they needed to address, inherited from pre-computer typography. 

It's not just the equal sign that's overloaded (for both declarative assignment and identification).  We use f(a-b) both to multiply f times (a-b) as well as to "call f" as a function.  Which is it?  Context decides. 

In Wolfram Language, or any computer language, one can't be so cavalier about "context".  The notation has to pin you down.  So we get to where the underlying computer language is *more precise* in its meaning than the hand-me-down mathematical typography of old.
 

Perhaps we have not paid sufficient attention to the computational or operational or procedural or algorithmic aspects of mathematics as distinct from the assertive or axiomatic aspects.  We teach "truths", but we also teach "processes." When we had to explain our processes to machines, we learned to make them explicit, and even simplified them to make them easier for machines to handle. (For example, we converted numbers from decimal to binary.) 

I'd often thought of creating a 2-D "Turing Machine" ** simulator that would operate on a sheet of graph paper and perform "arithmetic" by writing digits in squares the way we teach our children to do it.  In my more radical moments, I'd require every elementary math teacher to program my machine to perform arithmetic before subjecting innocent children to arithmetic lessons!  Then they would understand the difference between  procedural math and assertional math.

As it is, we mostly show them algorithms developed by Al Khwarizmi, from whose name the world "algorithm" derives.  That's a simplification, as the algorithms have undergone a lot of face lifts over the centuries.
 

** A 2-D Turing machine would operate on an infinite grid of squares instead of an infinite linear tape.  It would have 4 move directions:
up, down, right, left. Otherwise, it would use states, read, write and state transition rules the same as a normal "1-D"  Turing Machine.


Sounds interesting.  The 3-D Turing machine might be all rhombic dodecahedrons, each surrounded by 12 of the same.  Most people would probably go with space-filling cubes, but I like space-filling rhombic dodecahedra more.

Kirby

 
Joe Austin

kirby urner

unread,
Dec 22, 2013, 10:47:16 PM12/22/13
to mathf...@googlegroups.com
On Sun, Dec 22, 2013 at 7:30 PM, kirby urner <kirby...@gmail.com> wrote:



On Sun, Dec 22, 2013 at 5:49 PM, Joseph Austin <drtec...@gmail.com> wrote:
Kirby,
 
I think we have been using "assignment" all along. But before computers, we didn't have a formal notation for it.
 
Perhaps we didn't think we needed one; we thought "natural language" and demonstration were good enough.
 
Perhaps we didn't even realize that we were doing it!


I agree with you entirely.  To assert that "naming an object" was a "binary operation" with "name on the left and object on the right" would have come across as nebulous Neo-Platonism before now. 

Platonists, often called Realists as opposed to Nominalists (see Catholic Encyclopedia) tend to "reify" everything e.g. talk about abstractions as if they were real objects in the Platonic realm.

Well, what would've sounded like Neo-Platonic hocus-pocus, is these days concretized (as in "rendered concrete"), in that we really do consider assignment to be an operation whereby a name becomes paired with some type of thing floating in "memory".

Not only that, but in some languages the object named will keep track of how many other names it has, and flag itself as "ready for recycling" when all its names have become disconnected.

With the creation of "memory" as a real place, wherein space for objects had to be "allocated", we got the idea of "naming as claiming" i.e. naming as staking out space in memory to "store an object".  That grammar, hitherto a part of "natural language" jumped over the fence to join the notation as a formal operation.

That's why I think Michel's notion holds water.  When we start talking about the symbol "=" as an "assignment operator" or invent new symbols for the purpose, it feels like we're augmenting what we learned in high school, where we named things certainly, but not as "an operation".

Children have been taught computational algorithms in elementary school for centuries; in doing so, they perform "assignment" by writing intermediate partial results on designated spaces of their paper. 

High school students of science are well aware of a two-step process of "problem solving": first, algebraically maniputlate the equation to "solve" for the variable of interst; second,  substitute values and arithmetically evalaute the algebraic expressions.  All of these steps are "operational" and involve "assignment" in the sense that they (typically)  involve placing new symbols on blank spaces of the paper.  Algebraic equations are "solved" by rewriting the equations in a new form, e.g. "moving" a factor from the numerator on the left to a denominator on the right. Then, the new expressions are evaluated, involving substituting values for variables and computing and combining several intermediate results of binary "operators" according to the rules of PEMDAS. Again, preseving, even temporarily, the individual intermediate results for subsequent use is "assignment". 

I agree with all this too and earlier in this thread I mention how "to name" and "to substitute" have overlapping application.  We all learn the game of language from natural language. We do not need special notation to "assign a name to".   But with computer languages, that need from natural language needed to be incorporated more formally.  Memory had to be divvyed up.
 

I meant to say "we all learn the game of *naming* from natural language" e.g. from picture books and so on.  "Naming objects" is one of our most primitive / elemental heuristics.

And for that reason we feel we bring our ability to name to mathematics.  We do not need mathematics itself to sustain our institution of naming.

Until computer languages burst upon the scene, and their finite supply of "memory". 

All of a sudden, "naming" in the sense of "assigning a name to an object" becomes something formal enough to be given an operator.  Not only that, but we begin to conceptualize the whole process of "giving birth" to an object.  We "construct" another "instance of a type".

I'd say another big step that computer languages catalyzed, was bringing strings, arrays of characters, into the notation as a legitimate "type of thing".  You could concatenate "ab" + "cd" to get "abcd". 

The idea of formal operations and algorithms, extending to types of object beyond numbers, was not new to mathematics, but computer languages hammered it home.  So many operations are "lexical", such as "to capitalize".

Is searching for a lexical pattern within a larger body of text a "mathematical" operation?  Asking this question mainly serves to gauge one's openness to letting "mathematics" absorb such CS topics as "regular expressions".

Again, I think it's often best to avoid such catergorization exercises by saying "STEM is STEM" i.e. we don't need / care / have time to go much lower, unless some real need (other than "divide and conquer") might be demonstrated.

Kirby

Mehmet Kayaalp

unread,
Dec 22, 2013, 11:10:01 PM12/22/13
to mathf...@googlegroups.com
As a person coming from the field of computer science and machine learning, I am all for more programming in K-12 education and building bridges between CS and K-12 math. But my feeling is that we have been overloading the terms (such as variables and equality), using the same term with different meanings in different contexts, and expecting that the students would not be confused. Surprisingly, they frequently compartmentalize these concepts, and do not get confused. Yet, I am not sure whether they are aware of that these terms do not have identical semantics in those different subjects.
--mehmet

Mehmet Kayaalp

unread,
Dec 22, 2013, 11:26:42 PM12/22/13
to mathf...@googlegroups.com
I am sure that you would agree that everything that can be done with programming can be done with pen and paper using mathematics;

and LOTS and LOTS and LOTS of time!   : )
 
thus, the dichotomy seems artificial and imaginary.

The question (at least in my mind) never was whether computers are useful tools that make our lives easier. The subject of our discussion was whether mathematics lacks certain properties that programming has. I was trying to say "no." In hindsight, I would have better said "everything that can be expressed in a computer program can be expressed in standard mathematical terms using pen and paper."
--mehmet

Christian Baune

unread,
Dec 23, 2013, 1:53:13 AM12/23/13
to mathf...@googlegroups.com

Hi,

I always put the bounded "variable" on the left, here is another example:
x=4
x=y+2

Here "x" is bound to 4 then we ask to get something bound to y as such "4=y+2".

We can tell it because each "variable" can either be bound or unbound.Completely bound variables are to be treated as literals while unbound variables are the subject.

When integrating, knowing the distinction is important.
\int x = x^2 / 2
Let c be the constant 4, then
\int c = cx = 4x

This can be a bit backward but we can say that "c" is an alias for 4.
Another interesting thing, I integrated in regard of "x" which wasn't present in expression but implied by convention.
I should have used the "dx" expression in there. If I wrote:
\int c dc = c^2 / 2

Then you would tell that I can't. Yes, c is a constant and "\int" requires a "variable".

Also writing:
\int t dt=x

Isn't an error. It does only mean that x is bound to "t^2/2".

Kind regards,
Christian

--

Maria Droujkova

unread,
Dec 23, 2013, 5:27:49 AM12/23/13
to mathf...@googlegroups.com
Translating between languages - what a beautiful line of thought, Mehmet! The above used to be true among all different branches of math, science, and philosophy (back in the day). I think there are expressions that can't be translated between some programming languages. 

How about translating between different branches of math? Do assignment operators (if any), or verbs from the previous discussion, mean the same thing in topology, number theory, or differential equations?

If we take "all of paper-based math" and "all of computer science" - are there translations of everything from one to the other and back? I don't know enough computer science to answer that question. I have my doubts about evolutionary computation and AI-made software: that is, programs made by machines for machines. Are they still human-readable?

Cheers,
Dr. Maria Droujkova

Christian Baune

unread,
Dec 23, 2013, 6:36:24 AM12/23/13
to mathf...@googlegroups.com
Hi,

Maria, it depends on what you mean by human readable.

To name a few languages with their odds: Prolog, SQL, Go (golang), Lisp, Java, XQuery, VHDL, Executable UML, G (Labview language), Assembly.

They are as much human readable as this "http://typophile.com/files/xits_1-002_word_2007_del_size_6252.png" when you don't know how to read symbols.

It is a bit like Chinese or Hieroglyph for westerners.

Assembly is human readable but a simple sieve algorithm is far easier to read in plain Java or Basic (if you can read English of course).


For the translation matter, well, each of the named languages compiles at some time into machine code. 
That machine code can't always be translated back to any of those language.

So one code can't always be transcompiled to another one without loss of functionality.

But even if you can transcompile, the intention would be lost. Intentions are something computers have nothing to do with.

I tried to name a representative set of languages having a specific paradigm. Having a very quick look at them can enlight someone.

It does exists also esoteric languages like "bequnge" or "snups" but they are mostly toys.

One very interesting one is the Turing language. Despit his name, brainfuck seems a close implementation with I/O capabilities.

Also, note that Prolog has no assignment but can do a lot of things ! XQuery doesn't but trick you :-)

On top of that, you've also presentation languages like HTML, SVG or even languages dedicated to transformation like XSLT/XSL:FO
and compiler/parser generators like "peg", "jison" or "flex"...

A way to dig in is probably to create a language : http://pegjs.majda.cz/online

Kind regards,
Christian


--

kirby urner

unread,
Dec 23, 2013, 3:40:13 PM12/23/13
to mathf...@googlegroups.com
On Sun, Dec 22, 2013 at 8:10 PM, Mehmet Kayaalp <mehmet....@gmail.com> wrote:
As a person coming from the field of computer science and machine learning, I am all for more programming in K-12 education and building bridges between CS and K-12 math. But my feeling is that we have been overloading the terms (such as variables and equality), using the same term with different meanings in different contexts, and expecting that the students would not be confused. Surprisingly, they frequently compartmentalize these concepts, and do not get confused. Yet, I am not sure whether they are aware of that these terms do not have identical semantics in those different subjects.
--mehmet

--

I am under the impression that young people don't play "board games" as much any more, but on the other hand some board games, like chess and Go, have made it to the computer screen. 

Your observation that key terms are overloaded is so important, and learning to consciously tease the different meanings apart is what we do with board games, wherein a "piece" in Monopoly has different properties than a "piece" in chess. 

A Monopoly piece is a lone capitalist, hoping to attain tycoon status (a mix of railroads and hotels is optimum) and dominate the board, whereas a chess piece is part of an army, of fixed rank from birth, with no dice, luck or chance.

My approach to the importance "context" in addressing "overloading" is to keep coming back to timelines, to the "history dimension", to "mathematics through time".  Meanings evolve. 

Look at "dimension" itself.  Who would have predicted "fractional dimensions" (1/n-dimensional) would come on the heals of n-dimensional?  Surprising? 

Lets use the topic of Fractals in particular to tell some intellectual history.  How is mathematics ala Mandelbrot different from maths ala Bourbaki? 

It's a conversation even quite young people might join, as it reflects a spectrum (graphical versus lexical) they're already familiar with.

The pendulum, judging from text books, is quite far swung the other way, with attention to history for the most part discouraged, relegated to side bars.  It's not on the test.  No question in the math section of the SAT is about intellectual history.

The historical perspective is left to the History Channel, or public TV shows like Connections, and to trade books (versus text books). 

Why is math so ahistorical in it's teaching?  You'd need more history to appreciate why.  Catch-22.

But as we more consciously and intentionally bring more programming into the mix, I think it pays to have historical views at the ready.  Yes, computer languages are new.  Yes, technology is sometimes "disruptive" of habits past.  We adapt.  Give examples.  Share timelines.

Schools should be (ideally) role models, when it comes to showcasing what successful adaptation means.  In practice, many demonstrate a "failure to morph" -- as is to be expected. 

Experimentation is as much about discovering what's not working as what's working.  We should not stridently insist that all schools keep to the same pace of innovation, in the same direction. 

Uniformity / conformity is the enemy of learning more quickly from biodiversity and "the errors of others".  When we all conform, we just commit to going off the same cliff together.  It doesn't follow I'm stridently against a "common core", just I'd expect to incorporate it while branching away from it, in pursuit of tomorrow's goals versus reflexively in service of yesterday's.

Kirby

Maria Droujkova

unread,
Dec 23, 2013, 3:49:29 PM12/23/13
to mathf...@googlegroups.com


On Mon, Dec 23, 2013 at 3:40 PM, kirby urner <kirby...@gmail.com> wrote:
On Sun, Dec 22, 2013 at 8:10 PM, Mehmet Kayaalp <mehmet....@gmail.com> wrote:
As a person coming from the field of computer science and machine learning, I am all for more programming in K-12 education and building bridges between CS and K-12 math. But my feeling is that we have been overloading the terms (such as variables and equality), using the same term with different meanings in different contexts, and expecting that the students would not be confused. Surprisingly, they frequently compartmentalize these concepts, and do not get confused. Yet, I am not sure whether they are aware of that these terms do not have identical semantics in those different subjects.
--mehmet

--

I am under the impression that young people don't play "board games" as much any more, but on the other hand some board games, like chess and Go, have made it to the computer screen. 

Two words: Robot Turtles!

Also some links: 

For board game lore in general, my favorite site: http://boardgamegeek.com/

Cheers,
Dr. Maria Droujkova

Joseph Austin

unread,
Dec 23, 2013, 9:12:50 PM12/23/13
to mathf...@googlegroups.com
Kirby,

Re 2-D Turing Machine:  I chose 2-D as the nearest abstract representation of the "paper" that children use to lay out their arithmetic problems.  We nominally lay out the problem in rows and columns (as in "add a column of figures") if you neglect the tic-marks for borrow/carry.  In computers and automata, of course, we can't just wedge the tic-marks in between "full" digits--they need their own real estate!

What we actually "do" when "doing" math is rearrange symbols in space.
Prior to computers, we seldom did a formal representation or study of that processes of "doing", 
concentrating instead on what the numerals and formulas "meant" instead of how we created and manipulated them.
But when we "teach" math, especially to beginners, the manipulations seem to dominate over the "meanings",
and I suspect many students, and even teachers, are confused as to which is which.

A Turing Machine is also quite possibly the most reasonable formalization of the thought-process of actually doing arithmetic computation, in that one "reads" symbols in given spaces, uses remembered "number facts" and "step in the process" (that is, transformation rules and state) to determine new symbols to "write" in other blank spaces.  This same formalism can also model what we "do" when "solving" algebraic equations (including Calculus) or constructing "proofs".

Mathematicians use symbols to represent meanings.  They use transformations of symbolic expressions to represent "reasoning" about those meanings.  Understanding this allows us to create alternative representations for the same meanings and "reasonings", to teach "reasoning processes", perhaps even implement such "reasoning processes" with machines.

I think "naming" and "assignment" are just two manifestations of a distinction which until computers has gone largely ignored.

Mehmet,

So is it true that "everything that can be expressed in a computer program can be expressed in standard mathematical terms using pen and paper."

I'm saying that the procedural aspects of mathematics have heretofore NOT be expressed in "standard mathematical terms" but only in natural language and chalk-waving.  The discipline of trying to express them for machines has forced us to expand "standard mathematical terms" to include the procedural as well as the assertional aspects.  If you include Church's lambda calculus 
and Turing's automata within "standard mathematical terms" you are a long way to including all of computer science, but Church and Turing (1930's) barely preceded the advent of computers, and I suspect few traditional math students would encounter either in a "math" class below graduate level.

But I believe 2-D Turing machine exercise I proposed would be a fruitful addition to any K-12 mathematics education curriculum!

Joe Austin














Joe


Joseph Austin

unread,
Dec 23, 2013, 9:30:17 PM12/23/13
to mathf...@googlegroups.com
Maria,
I had an opportunity to play "Robot Turtles" last weekend--
but not enough to see how or whether it addressed decisions, functions and loops or recursion,
which is where programming languages like Papert's LOGO get their power.

But I would consider using something like the LOGO Turtle to do "Geometry" a similar exercise to my suggestion to do arithmetic with a 2-D Turing machine.  This would required a Turtle that could move in straight lines and circles, and move to a specific point or intersection of two lines.

In this case, the "procedural" aspect of geometry would be constructing the actual diagrams described in the proofs,
while the proofs themselves would be the "assertive" aspect.  So are "draw a line from point A to point B" or "construct a circle with center C and radius CR" geometric "assignments"?

Joe Austin

Mehmet Kayaalp

unread,
Dec 23, 2013, 11:46:22 PM12/23/13
to mathf...@googlegroups.com
On Mon, Dec 23, 2013 at 5:27 AM, Maria Droujkova <drou...@gmail.com> wrote:
I think there are expressions that can't be translated between some programming languages. 

Definitely! For example, some programming languages such as SQL have been designed for certain tasks only.

On Mon, Dec 23, 2013 at 9:12 PM, Joseph Austin <drtec...@gmail.com> wrote:
If you include Church's lambda calculus 
and Turing's automata within "standard mathematical terms" you are a long way to including all of computer science, but Church and Turing (1930's) barely preceded the advent of computers, and I suspect few traditional math students would encounter either in a "math" class below graduate level.
 
What I mean by using standard mathematical terms is using existing mathematical conventions without proposing or inventing a new math. 

On Mon, Dec 23, 2013 at 9:12 PM, Joseph Austin <drtec...@gmail.com> wrote:

I'm saying that the procedural aspects of mathematics have heretofore NOT be expressed in "standard mathematical terms" but only in natural language and chalk-waving.  

Could you think of a few lines of sample code that seem inexpressible in mathematical terms? 

Best,
--mehmet

kirby urner

unread,
Dec 24, 2013, 12:06:49 AM12/24/13
to mathf...@googlegroups.com
On Mon, Dec 23, 2013 at 6:12 PM, Joseph Austin <drtec...@gmail.com> wrote:
Kirby,

Re 2-D Turing Machine:  I chose 2-D as the nearest abstract representation of the "paper" that children use to lay out their arithmetic problems.  We nominally lay out the problem in rows and columns (as in "add a column of figures") if you neglect the tic-marks for borrow/carry.  In computers and automata, of course, we can't just wedge the tic-marks in between "full" digits--they need their own real estate!


I Googled 2D and 3D Turing Machines, finding NetLogo has something 2D.

I'm open-minded about including this topic and would expect the Turing Machine to be unveiled at some point in a STEM curriculum... but when and where?   

Should "Turing Test" be mentioned nearby? 

Given my penchant for timelines, all things Alan Turing might be reviewed together, but at deeper levels on subsequent passes ("spiraling" still a good metaphor).  Create a fork in the road at the Enigma machine for coming back to later (cryptography threads).

Here is where I'd invite "concept maps" as 2D drawings -- how shall we connect the concepts and thereby pull "storyboards" (narratives) from them?:

http://mathforum.org/kb/message.jspa?messageID=9346921  (re "concept maps")
 
What we actually "do" when "doing" math is rearrange symbols in space.
Prior to computers, we seldom did a formal representation or study of that processes of "doing", concentrating instead on what the numerals and formulas "meant" instead of how we created and manipulated them.

If we're talking about basic arithmetic and its algorithms, then we have the abacus way and the paper and pencil way (Liber Abaci), to begin with. 

I like the abacus early (I got it in 2nd grade) because of its relation to place value (demystifies zero), bases, and the operation of carrying.  It also gets us talking about timelines again (the history of computing devices).

Story line:  The evolution of machinery to do arithmetic --> the difference between arithmetic and other kinds of mathematics --> the evolution of machinery to do other kinds of mathematics.

These are fascinating topics. 

Always making math like gym, where you always have to "work out" on problems problems problems (so-called exercises) is a mistake I think.  Just getting to kick back and watch some documentaries, read some novels...

I think many learn to hate math (as a school subject) because they don't get to be passive even a little.  Always in the spotlight, always under the gun...

I guess when the teacher lectures that's pretty passive. 

But does the teacher call on people randomly?

Khan Academy and such are popular because if you doze off or get distracted, you can go back over it again. 

Having lectures be recordings offers so many advantages, but also disadvantages such as not being able to insert some question or ask for clarification in real time...

But the teacher can't call on you.  You don't get punished for "not paying attention" -- just rewind.

 
But when we "teach" math, especially to beginners, the manipulations seem to dominate over the "meanings", and I suspect many students, and even teachers, are confused as to which is which.


Yes.  Math class seems very "doing" oriented.  I'm supposed to "do exercises". 

In history class, I could just listen to Mrs. Fabris tell us the history of Rome.  Ah storytelling, just listening, so relaxing.
 
A Turing Machine is also quite possibly the most reasonable formalization of the thought-process of actually doing arithmetic computation, in that one "reads" symbols in given spaces, uses remembered "number facts" and "step in the process" (that is, transformation rules and state) to determine new symbols to "write" in other blank spaces.  This same formalism can also model what we "do" when "solving" algebraic equations (including Calculus) or constructing "proofs".

Better than an abacus you think?
 

Mathematicians use symbols to represent meanings.  They use transformations of symbolic expressions to represent "reasoning" about those meanings.  Understanding this allows us to create alternative representations for the same meanings and "reasonings", to teach "reasoning processes", perhaps even implement such "reasoning processes" with machines.

I think "naming" and "assignment" are just two manifestations of a distinction which until computers has gone largely ignored.


I advocate treating STEM as a "shaker" (a container we can shake) and pulling out topics connected in educational sequences that might be unfamiliar in our day (because we're so strict about fencing off our "disciplines" -- to the detriment of everyone).

I like moving from geometry to architecture to biology and back.  Icosahedron, geodesic sphere, virus; icosahedral numbers, phi (in architecture), phi (in nature)... and so on.

Venn Diagrams, SQL, rates of change in supermarket inventory as a function of (a) time of year (b) advertising.  Discrete math has rates of change.  Lets exploit that pre-calculus.

Base 10, Base 16 (hex), Base 64 (mime types), Base 2....  around and around and around we go.

As we introduce computer languages, we pull up timelines, we talk about "computer memory" as expensive (a shorthand for "extant" -- the fact that it exists at all is pretty abstract), and we talk about "the assignment operator" as something not really understood as such in earlier times, as a way of naming things in memory.

Kirby

Joseph Austin

unread,
Dec 24, 2013, 9:29:45 AM12/24/13
to mathf...@googlegroups.com
Kriby,

Is a Turing machine a better model of computation than an abacus?

I would argue that it is.  An abacus models "place value" representations, whereas a Turing machine could do calculations with numerals expressed in mixed and over-lapping bases such as coinage, say: quarter dime nickel penny  or  guinea, shilling, pence; or in principle, even in words: "one", "two", "three", ...

 Of course, a Turing "machine" is a mathematical abstraction, not a physical device like an abacus!
We can of course build a simulator for a Turing machine, but the exercise I propose would be performed with pencil and paper,
the way we expect our children to do their arithmetic.

As to the "storyboard" for math, or STEM, it seems to me that what we really want to do is predict "how much" of something we would have or need under certain circumstance, such as in trade or for planting or for war.  As we discover that certain quantities in nature are seemingly related to each other in fixed ways, we learn to describe and exploit these relationships for our predictive purposes. Discovering the quantitative relationships is generally called "science," drawing inferences from them is generally called "math." 

The danger is that, as our inferencing techniques become more sophisticated, we get lost in the process of studying the techniques and forget that the only reason for the techniques is to arrive at useful conclusions.

Joe



Joseph Austin

unread,
Dec 24, 2013, 10:19:34 AM12/24/13
to mathf...@googlegroups.com
Mehmet,
Perhaps I have not made clear what I see as the distinction between assertive and procedural descriptions.
Consider Pascal's Triangle.
One can define Pascal's triangle (the set of binomial coefficients) as a set of numbers that are in a certain relation to each other.

e.g.  T = { t[j,k], j=1..n, k=1..j, such that t[1,k] = t[k,k] = 1 and t[j,k] = t[j-1,k-1] + t[j-1,k] , 1<k<j }

So that is a statement in "standard mathematical terms", except [j,k] would normally be printed as subscripts,
there is are symbols for "such that," and "and." 

But it is not a procedure.

To actually produce a triangle of numerals, one would have to further specify the order of calculation of j, k, and the t's,
and the arrangement of the results (e.g. do you want the right angle at the lower left, as a traditional matrix, or at the top, as the triangle is commonly drawn).
Or suppose I don't want the whole triangle, but only the coefficient  t[11,4].
The formula above defines t[j,k] recursively for any j and k, but it does not specify any specific order of evaluation.
Or I should say, it defines an order of evaluation working backwards through a parallelogram, but that is not the most efficient order,
as it would specify computing some elements in row 10 twice, some in row 9 four times, etc. Or, working forwards, it would compute 10 full rows of the triangle, not all elements of which are needed.

So what "standard mathematical notation" would one use to describe an "optimal" calculation of an arbitrary binomial coefficient?

For another example, consider  "sixty sever plus eighty nine equals one hundred fifty six".
This is an assertion.  In standard mathematical terms, it would be writte 67 + 89 = 156.

But when we ask (teach) a child to "calculate" 67 + 89, the chid does the following:

locate (and temporarily remember) the rightmost digit of the first number (7) and the rightmost digit of the second number (9)
recall (or look up**) the sum of 7 and 9 (the two digits you just found), which sum is the digit string 16.
"put down 6 and carry 1", that is, write 6 in the rightmost area of the answer space,
  and remember that you have a 1 digit left over to add to the next place
locate (and temporarily remember) the next-to-the-left digit of the first number (6)
recall (or look up) the sum of 1 (the remembered carry) and 6 (the digit just found), which sum is 7, and temporarily remember it
locate (and temporarily remember) the next-to-the-left digit of the second number (8)
recall the sum of 7 (remembered from the previous addition) and 8 (the digit you just found), which sum is the digit string 15
in the answer, write the 5 to the left of the 6 and  the 1 to the left of the 5.

** look up: 
locate the addition table, which is an array of rows and columns, each labelled with digits 0 through 9 (or perhaps numerals to 10 or 12).
locate the row for 7 
follow across the 7 row to the column for 8, 
read the numeral printed in cell row 7 column 8, in this case, the digit string 16.

Now, how do you say all that in "standard mathematical terms"?

Joe


kirby urner

unread,
Dec 24, 2013, 10:54:12 AM12/24/13
to mathf...@googlegroups.com



On Tue, Dec 24, 2013 at 6:29 AM, Joseph Austin <drtec...@gmail.com> wrote:

<< SNIP >>
 
As to the "storyboard" for math, or STEM, it seems to me that what we really want to do is predict "how much" of something we would have or need under certain circumstance, such as in trade or for planting or for war.  As we discover that certain quantities in nature are seemingly related to each other in fixed ways, we learn to describe and exploit these relationships for our predictive purposes. Discovering the quantitative relationships is generally called "science," drawing inferences from them is generally called "math." 

Some people say "math" is atemporal i.e. once there's an arrow of time of any kind, you're in the world of mortal flesh and it's not Platonic enough anymore.  Me, I don't care.  STEM is STEM (add an A if in the mood).

The schools I often brainstorm about are in the Oregon high desert, fossil country.  They're mixed age family friendly boarding schools for a cosmopolitan caste who wish to become diplomats or at least diplomatic, i.e. able to get along -- which accounts for the "international school" flavor I'm led to recreate (it's what I had in middle and high school myself, and found congenial -- those were not boarding schools though, nor in any desert).

We want to look at Planet Earth as a whole system quite frequently, ala Google Earth and such (lots of thinking in the round).  Lots of talk about energy (joules, work, conservation of, transformation of...).

Much of the curriculum I'm hammering on involves living close to the land yet availing of high tech at the same time.  Food cultivation and preparation, as well as ecosystem monitoring and modeling, are core curriculum activities. 

We're that Whole Earth Catalog / DIY / Make: / Maker subculture, New Alchemy Institute, BFI.org and all that, some overlap with scouting (in terms of earning credit outdoors).  As a logistics supervisor for my local Food Not Bombs chapter, I pull trailers by bicycle from warehouses to kitchens, a good cardio-vascular activity for a 55 year old.

As background about me, it helps to know that in addition to an international school background, I tend to serve Quaker agendas, and Quakers have a long history of establishing boarding schools.  Some of my more off beat forays in math world get branded as "Quaker geometry" or whatever (e.g. the Quadrays -- cite Wikipedia).
 

The danger is that, as our inferencing techniques become more sophisticated, we get lost in the process of studying the techniques and forget that the only reason for the techniques is to arrive at useful conclusions.

Joe


Sometimes we have to make decisions with insufficient data or otherwise on a basis that's indefensible or unjustifiable except for the fact that we had to do something i.e. the status quo was untenable.  In such cases, follow-up makes all the difference i.e. after your decision you begin to realize the consequences and now is the time to take adjusting action -- fierce concentration may be needed.  This is why, right after a "big mistake", we need a lot of "elbow room" to deal with outcomes, re-vector them in a better direction -- this was maybe the best of several bad alternatives.

I say all that because in many classrooms, when junior makes a mistake it's a somewhat public event, as it is maybe in front of peers.  Recess is likewise fraught with crisis moments when you need to be able to focus. 

Strong curricula take the bull by the horns when it comes to mistake making and don't pretend they don't happen.  Life has a big trial and error component.  We need enough empathy to give people room to make errors and compensate for them, while learning to limit the consequences.

"How to work with uncertainty" is a big part of our "diplomats in training" training i.e. this isn't a world of easy / pat answers, a place to deal with always the same way out of mindless habit.  One must be continually adjusting responses and attitudes.  Sensitivity must remain high, without leaving one overwhelmed by the media (we learn to make media -- audio and video editing may take up hours every week).

STEM is a great source of stories about people coping.  The emergence of computer languages within the context of computer memory is one of those stories (WW2 and Alan Turing a part of it). 

I'm a big believer that education needs a large "how things work" component. 

We're explaining the guts of things, a way of previewing jobs / tasks / roles. 

A lot of the computer stuff we bring in is to render more transparent the everyday business of record keeping / bookkeeping.  So much is done with SQL these days.  We have to study that, to understand just about any business (any supermarket for example). 

I see no reason to hold off until college (it's a mixed age campus anyway, not strictly segregated by age in all cases), and I find it easier to create new courses that include connected STEM topics, versus trying to squeeze these topics into the already-crowded mainstream rubric, wherein CS is always elective and bordering on going away for budgetary reasons.  If I don't want to repeat all the mistakes of the past, I need more of a blank slate.

Kirby

Christian Baune

unread,
Dec 24, 2013, 11:45:41 AM12/24/13
to mathf...@googlegroups.com

I thought my intervention was clear about languages.  Each of them has a specific purpose and even a way of handling common idioms.( their paradigm)

Don't use SQL to solve a Latin Square.
Don't use Go to create reports.
Don't use Prolog to create a web server.
Don't use XSLT to query databases.

But math language can be extended !
Let define Q as a n dimensional operator.
Q(x) is thus the x dimensional operator.
Q (1) is "+"
Q (2) is "×"
Q (3) is "^"
Q (4) is "tetration"

Is Q (10) associative ?

Also, one can now write:
♣ΞQ (2)

3♣5=15

If ☆ ΞQ (10) calculate 2☆3.

Kind regards,
Christian

Mehmet Kayaalp

unread,
Dec 24, 2013, 2:46:11 PM12/24/13
to mathf...@googlegroups.com
On Tue, Dec 24, 2013 at 10:19 AM, Joseph Austin <drtec...@gmail.com> wrote:
Perhaps I have not made clear what I see as the distinction between assertive and procedural descriptions.

Joe, are you saying that mathematics is a declarative language; whereas, programming can be imperative (see URL)? 

 T = { t[j,k], j=1..n, k=1..j, such that t[1,k] = t[k,k] = 1 and t[j,k] = t[j-1,k-1] + t[j-1,k] , 1<k<j }
So that is a statement in "standard mathematical terms", except [j,k] would normally be printed as subscripts,
there is are symbols for "such that," and "and." 
But it is not a procedure.

It depends on what you mean by procedure. One can easily argue that solution of recursion is algorithmic/procedural and, as we all know, the term algorithm is not a trademark concept of computer science (see 356C in the attachment).

Pascal triangle is a mathematical model. How you can produce those numbers computationally using a programming language or with pen and paper is an implementation issue. Usually there are various ways to implement a mathematical model algorithmically---some may not be as efficient, clear or brilliant as others. Any of those algorithmic solutions can be described mathematically in states.

When I explained it to my son last year, when he was 9, I used graph theory.

On Mon, Dec 23, 2013 at 9:12 PM, Joseph Austin <drtec...@gmail.com> wrote:
I'm saying that the procedural aspects of mathematics have heretofore NOT be expressed in "standard mathematical terms" but only in natural language and chalk-waving.  

Do you consider the concept of walk in graph theory (or in this specific case tree traversal) as chalk-waving? Please see the attachment.
Note the publishing date of the reference is 1969 when Frank Harary, the author, was a professor of mathematics at University of Michigan. One can easily argue that the definition of walk is procedural.


For another example, consider  "sixty sever plus eighty nine equals one hundred fifty six". 
This is an assertion.[...]

Now, how do you say all that in "standard mathematical terms"?

Does any of the programming languages that we use treat a two-integer addition differently? If one looks for x in x =  67 + 89, there are obviously a number of different ways to do that. One of them is the algorithm you stated. One could also suggest a more elementary one--use an abacus; explain the addition process on the number line (and deepen the concept of integers and its addition with Peano axiom in college). 

Having written so much on this issue, I started thinking that what you may have in your mind could be rather this: We give kids mathematical models in declarative formulas without defining computational algorithms in mathematical terms step-by-step (as in a geometric proof). Instead of writing mathematical steps (akin to codes in a procedure). we may only be talking about them in vague English terms and chalk-waving. On that I might agree with you. But again this is not a limitation of mathematics but ourselves and what kids can take in---programming is a helpful tool to remedy the situation.

--mehmet
PS. enough talked; may not be able to write on this issue again for awhile.


Joseph Austin

unread,
Dec 24, 2013, 7:57:54 PM12/24/13
to mathf...@googlegroups.com
Christian,
Re your Q operator: 
 
you may be interested in my discussion of the Ackermann Function at:


Ackermann’s function A(m,n,p)  is a recursive function that combines the two operands m and n using p to select the “operator”, 
with p=0 giving addition, p=1 giving multiplication, p=2 given exponentiation, and higher values of p giving “hyper-operations”

In fact, you can "count" it;  that is, it can be defined in terms of the Peano Successor function. 

Since exponentiation is not associative, and higher values of p are defined in terms of "repeated" exponentiation,
Ackermann's function for p=10  is not associative.

Joe Austin

Joseph Austin

unread,
Dec 25, 2013, 8:46:25 AM12/25/13
to mathf...@googlegroups.com

On Dec 24, 2013, at 2:46 PM, Mehmet Kayaalp wrote:
<snip>


For another example, consider  "sixty sever plus eighty nine equals one hundred fifty six". 
This is an assertion.[...]
Now, how do you say all that in "standard mathematical terms"?

Does any of the programming languages that we use treat a two-integer addition differently? If one looks for x in x =  67 + 89, there are obviously a number of different ways to do that. One of them is the algorithm you stated. One could also suggest a more elementary one--use an abacus; explain the addition process on the number line (and deepen the concept of integers and its addition with Peano axiom in college). 

Having written so much on this issue, I started thinking that what you may have in your mind could be rather this: We give kids mathematical models in declarative formulas without defining computational algorithms in mathematical terms step-by-step (as in a geometric proof). Instead of writing mathematical steps (akin to codes in a procedure). we may only be talking about them in vague English terms and chalk-waving. On that I might agree with you. But again this is not a limitation of mathematics but ourselves and what kids can take in---programming is a helpful tool to remedy the situation.

--mehmet

Mehmet
Thank you for your perceptive analysis and references.

Yes, that's what I've been trying to say!  But the mathematical "language" for describing procedure is not as well-developed as the declarative or assertive part of the language.  Perhaps that was an issue the folks like Church and Turing were trying to address. 

Programming languages are a step toward remedying the situation, to add more formality to the procedural description.
Programming languages are necessarily complete and unambiguous (for a given problem domain) because the machine will not tolerate otherwise; but programming languages were not originally intended to be "mathematical" notation.  But now we can use them as a model for extending or reforming "true" mathematical notation to include the domain of procedure description. "State" and "assignment" may be examples of the kinds of additions we must make.

Let me offer another (partial?) contrast:  
mathematics deals with numbers; 
computation deals with digits.  
In between are numerals, representations of numbers by digits, of which there are many.
This approach could be extended to algebra, where we substitute quantities and variables for numbers and digits,
and perhaps to geometry, substituting points and lines for numbers and places and distances for lines.

In my experience, the early years of "math" education are devoted to "computation"--manipulation of symbols;
only in the later years (college, grad school) does it move toward more conceptual "mathematics". 
But as our technology advances, the need to do computation manually is disappearing,
and the need to master more complex concepts is increasing,
yet our educational calendar is stuck in the 19th century.

Joe Austin

kirby urner

unread,
Dec 25, 2013, 11:29:08 AM12/25/13
to mathf...@googlegroups.com
On Sun, Dec 22, 2013 at 1:18 PM, Phillip Kent <philli...@gmail.com> wrote:
Hi all,

This is going back plenty of years but two relevant books that I enjoyed
reading in the 90s are:

"Investigations in Algebra" by Albert Cuoco
http://books.google.co.uk/books/about/Investigations_in_Algebra.html?id=7HvQV8P-hskC
This uses LOGO as a computational language for pre-calculus.

"Learning Abstract Algebra with ISETL" by Ed Dubinsky
http://books.google.co.uk/books/about/Learning_Abstract_Algebra_with_ISETL.html?id=CDxRInjfiuAC


Tim Peters of Python fame put me onto ISETL.  I found a post where I mention that:

https://mail.python.org/pipermail/edu-sig/2002-July/002108.html

This also shows I'm a Kenneth Iverson fan (inventor of APL and later J, both of which I've studied).

Like Kenneth, I think we're faced with myriad "Mathematics Notations" (MNs), more all the time (with perhaps as many forgotten).  Some are executable, some are not.  There is no point going from traditional pre-computer notation to Wolfram Language, or to another computer language, that one "exits math".  Math has continued to grow and now includes these new notations (e.g. the J language, ASCII symbols unlike APL).

If you give me a computer program and ask me to write it "as mathematics" I'll hand it right back and say "here you go".

Kirby

michel paul

unread,
Dec 26, 2013, 5:06:41 AM12/26/13
to mathf...@googlegroups.com
It's amazing how something that might initially appear to be trivial has such deep consequences. And it's fascinating how things we've taken for granted for so long can start to seem new and a little bit unfamiliar when we dig into them. The tidal wave of responses to this query has provided all kinds of useful perspectives. 

Now, here comes another twist!

Earlier I said that the typical equations that high school students encounter are boolean assertions, but it then struck me that this is actually not the case when we write something like 'f(x) = ...' ! Here we are not thinking of the '=' as a boolean operator, and we don't read the statement as being 'true' or 'false'. We read the statement as a definition.  

Once again, in programming languages this is something that must be made explicit: 
  • In Python we say 'def f(x): return ...', 
  • in Scheme we say '(define (f x) (...))', and 
  • in Mathematica we say 'f[x_] := ...'.
So programming languages aside, within the borders of traditional math land, there is definitely some ambiguity in the use of '='. Students use '=' in the sense of 
  1. 'the answer is' (elementary arithmetic), 
  2. 'is sometimes equal to' (solving equations), 
  3. 'is always equal to' (proving identities), 
  4. 'is defined as' (defining functions using Euler notation), 
and these differences in use are never really explicitly spelled out. Many students remain stuck at the first (completely wrong) interpretation, even in more advanced classes.

Perhaps this would be a conceptual point in favor of using mapping notation 'f(x): x → ...' instead of Euler notation? (Not that it would catch on.) 

A little history I found out - originally in Computer Science papers '=' was used for equality and '←' (left arrow) for assignment. Pascal began using ':=' in the sense of the left arrow, as a left arrow was hard to type, but C went in a different direction with '=' vs. '=='.

--
​Michel

===================================
"What I cannot create, I do not understand."

- Richard Feynman
===================================
"Computer science is the new mathematics."

- Dr. Christos Papadimitriou
===================================

John Mason

unread,
Dec 26, 2013, 11:12:27 AM12/26/13
to mathf...@googlegroups.com
I have always enjoyed the French version of definition: "Soie" ("let be ...") which proceeds a mathematial definition, as in Let x = 2y+ 3 or whatever when making a substitution, or, for example, "Let A and B be distinct points in the plane ..." or "let f(x) = (be) 2x^2 + 3.

JohnM



On 26/12/2013 10:06, michel paul wrote:
It's amazing how something that might initially appear to be trivial has
such deep consequences. And it's fascinating how things we've taken for
granted for so long can start to seem new and a little bit unfamiliar when
we dig into them. The tidal wave of responses to this query has provided
all kinds of useful perspectives.

Now, here comes another twist!

Earlier I said that the typical equations that high school students
encounter are boolean assertions, but it then struck me that this is
actually not the case when we write something like 'f(x) = ...' ! Here we
are not thinking of the '=' as a boolean operator, and we don't read the
statement as being 'true' or 'false'. We read the statement as a
definition.

Once again, in programming languages this is something that must be made
explicit:

   - In Python we say 'def f(x): return ...',
   - in Scheme we say '(define (f x) (...))', and
   - in Mathematica we say 'f[x_] := ...'.

So programming languages aside, within the borders of traditional math
land, there is definitely some ambiguity in the use of '='. Students use
'=' in the sense of

   1. 'the answer is' (elementary arithmetic),
   2. 'is sometimes equal to' (solving equations),
   3. 'is always equal to' (proving identities),
   4. 'is defined as' (defining functions using Euler notation),

and these differences in use are never really explicitly spelled out. Many
students remain stuck at the first (completely wrong) interpretation, even
in more advanced classes.

Perhaps this would be a conceptual point in favor of using mapping notation
'f(x): x → ...' instead of Euler notation? (Not that it would catch on.)

A little history I found out - originally in Computer Science papers '='
was used for equality and '←' (left arrow) for assignment. Pascal began
using ':=' in the sense of the left arrow, as a left arrow was hard to
type, but C went in a different direction with '=' vs. '=='.


michel paul

unread,
Dec 26, 2013, 12:35:33 PM12/26/13
to mathf...@googlegroups.com
On Thu, Dec 26, 2013 at 8:12 AM, John Mason <jhma...@googlemail.com> wrote:
I have always enjoyed the French version of definition: "Soie" ("let be ...")

​There's also the Beatles' Let It Be.

: )​
 
which proceeds a mathematial definition, as in Let x = 2y+ 3 or whatever when making a substitution, or, for example, "Let A and B be distinct points in the plane ..." or "let f(x) = (be) 2x^2 + 3.

​Looks like we've come full circle!

​Yeah, it seems that to express assignment in traditional secondary math requires some admixture of natural language. There is no designated assignment operator per se, but this becomes necessary in programming languages where the language has to stand on its own. A program has to execute without a human on the side helping it along.

- Michel

--
You received this message because you are subscribed to the Google Groups "MathFuture" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mathfuture+...@googlegroups.com.
To post to this group, send email to mathf...@googlegroups.com.
Visit this group at http://groups.google.com/group/mathfuture.
For more options, visit https://groups.google.com/groups/opt_out.



--

Jared Monaco

unread,
Dec 26, 2013, 1:37:56 PM12/26/13
to mathf...@googlegroups.com, mathf...@googlegroups.com
I have loved this thread even though I don't know most of the programming or theory. 

Sent from my iPhone

michel paul

unread,
Dec 30, 2013, 4:31:30 PM12/30/13
to mathf...@googlegroups.com
On Sun, Dec 22, 2013 at 11:34 AM, Christian Baune <progr...@gmail.com> wrote:

No assignment but "bindings" and definitions.

This is a great explanation. Thanks. It nicely addresses what I noticed about Euler notation - that we don't read 'f(x) = ' as a boolean assertion. 

Though I do like Euler notation, I see how it causes subtle confusion, the most common one being reading 'f(x)' as the product 'f*x'. But another problem it entails is confusing the understanding of '='. Though it might seem more cumbersome, mapping notation 'f: x → ..'  conveys the idea of a function better, as it illustrates binding! 

- Michel
​​

In "let x=3" we mostly bind "3" to "x".

When writing "f(x)=x+1" we define "f(x)" as "(x+1)".

It does have no meaning to writ "x=x+1" since "x" is unbound.
The couple "x=1;x=x+1" is pointless since "x" is already bound.

That's were come indices which add a "temporal" hint.
X_{n+1}=2*X_n+1
There, it is not "x" which is bound but "occurrences" of it.

Prolog is really good at showing one the way to think about it.

When writing "0=x^2+2x+3" it can be seen as "which values can be bound to x to keep that statement true". In fact "x=3" is of the same kind but as we can answer "x must be [bound to] 3" it makes us confused and think of "=" as an assignment.

When faced to "x<3" we don't get confused because we are not used to assign a collection to a single "variable". But if we consider "=" as assignment and not "binding", "<" should be assignment too.

With the binding view, "x<3" ask us to bind anything less than 3 to x.

Now "3<x<5" ask us to bind x to something greater than 3 and check that it is less than 5. We could try all values but once again, it I so trivial that we translate it to "x is a value which lie between 3 and 5".

But it does translate to : "x can be bound to anything greater than 3. The bounded value must be less than 5".

That's a bit of wordplay but doing a bit of Prolog can enlighten on this matter.

In imperative languages (C and basic family), we have try variables and the code flow (aka code path or execution flow) must be taken into account.

In fact all of this seems amazingly clear in end of primary school where pupils write their first equations. The meaning fades away when the subject goes farther since it become more mechanical.

The only way to keep people aware of it is requiring them to put once a while to full statements. (Like "and thus the only values of x which make it true are ...") And forbid shortcut like "x is 3" or "x worth 3". "X" as no value.

It's also like the distinction between "2" as a number or a value.

Kind regards,
Christian

On Dec 22, 2013 5:05 PM, "Jared Monaco" <mona...@gmail.com> wrote:
The user assigns the operator 

Sent from my iPhone

On Dec 22, 2013, at 10:33 AM, Maria Droujkova <drou...@gmail.com> wrote:



And yet there are simple problems, including chess problems, that computers cannot solve, because their programmers don't have a clue how to code sudden insights and flashes of intuition.  Human intelligence has not been rendered obsolete.  It's an ongoing partnership.

We live in interesting times.

Kirby


I really like the model of partnership, Kirby. And not just partnership with computers.

Consider children.

What are the tasks children do better than adults? What sorts of tasks are better done in multi-age partnerships?


Cheers,
Dr. Maria Droujkova

Algot Runeman

unread,
Dec 31, 2013, 12:01:45 PM12/31/13
to mathf...@googlegroups.com
On 12/18/2013 09:51 PM, michel paul wrote:
I know that '=' probably comes to mind, but I've started to wonder about that. This is related to the 'What are the verbs of mathematics?' question. 

Well, heck. You guys are all so serious about this thread!
As a present to you, and to lighten the mood as 2014 begins, here's a symbol for the job, if you want it.



As far as I know it is a new symbol, even though it does resemble the Green Lantern thingy.
When I fiddled with it and posted it to the clipart section at my site, I even called it "Symbol waiting for a mathematician." :-)

Happy New year, in any case.
All the best to you and yours.
--Algot
-- 
-------------------------
Algot Runeman

algot....@verizon.net
Web Site: http://www.runeman.org
Twitter: http://twitter.com/algotruneman/

Reply all
Reply to author
Forward
0 new messages