--
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.
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.
--
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'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.
--
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 =).
Nameshave always been important.
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.
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.
Time is an essential component of physics
The verb "to substitute" has a lot of overlap with "to name" i.e. "to assign a name to".
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?
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").
I'm not sure we can say the discussion is over.
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”.
--
--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
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.
I've always considered mathematics as we know it to be a method of observation rather than manipulation.
when it comes to programming we manipulate data within the computer to make [the computer] do what we want it to do (hopefully).
--
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).
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.
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.
On Thu, Dec 19, 2013 at 9:39 PM, michel paul <python...@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.
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 saidIn many procedural programming languages, there is no equation but assignments.
But, I believe the emphasis on the equation sign (in whatever from) is a bit overrated.
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! : )
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
--
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
No assignment but "bindings" and definitions.
In "let x=3" we mostly bind "3" to "x".
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
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 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.
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
--
--
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
--
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.
I think there are expressions that can't be translated between some programming languages.
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.
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.
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.
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
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
Perhaps I have not made clear what I see as the distinction between assertive and procedural descriptions.
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.
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.
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"?
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
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
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. '=='.
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.
--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.
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,
ChristianOn Dec 22, 2013 5:05 PM, "Jared Monaco" <mona...@gmail.com> wrote:The user assigns the operator
Sent from my iPhone
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
Well, heck. You guys are all so serious about this thread!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.

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