In secondary math classes we often say "Math is a language", but we really don't teach it that way. The closest we get to that is calling the comparison operators 'verbs' and the various kinds of values that can be combined into expressions 'nouns'. So, as far as contemporary secondary math thinking is concerned, the only 'verbs' in 'math' are '=', '<', and '>', forms of 'to be'. However, I'd bet that a lot of students, and even teachers, would categorize '+', '-', '*', and '/' as 'verbs'. After all, they seem to suggest 'action'. But is '2 + 3' a sentence or a complete thought? No, it is an expression which is equivalent in value to another expression, namely, '5'. I keep thinking that, mathematically, it makes more sense to say that '2 + 3' is one of the already-existing partitions of '5'. Interestingly, if '2 + 3' were to be taken as a sentence, it would be imperative: "Hey you! Yeah, you! Find the value of 2 + 3, now!" Mathematically speaking, it would be more accurate to read '2 + 3' as 'the sum of 2 and 3'. Mathematically speaking, '2 + 3' is a value that does not need to emerge in time. It already exists. But, computationally speaking, it actually does make sense to think of '2 + 3' as a process. We start with a '2', then we do something with some registers or whatever, and we increment '2' by '3', and we end up with '5'. And then this leads into the question of functions - are they 'nouns' or 'verbs'? In OO terms, functions are how objects relate to other objects. Mathematically speaking, at least according to contemporary secondary textbooks, a function is a set of ordered pairs. The expression 'f(x)' is a VALUE. So, 'f(x)' is a 'noun'. But again, computationally speaking, a function is a process. It takes in some information, does something to it, and then yields some new information. In computational terms, a function is something we 'do' to a value to produce a new value. I do apologize if this is not the correct venue for raising such questions, as it is not language specific, but I find this really interesting. I think it might have a lot to do with contemporary students, and teachers!, not 'getting' what math really is, and it might shed a lot of useful light on the disconnect between the current secondary math curriculum and the current state of computational understanding. This semester, at a high school level, I do intend to teach math as a 'language', and I'd like to get really clear about these kinds of things. Thanks very much for any feedback, Michel Paul
2008/8/3 michel paul <mpaul213@gmail.com>:
In secondary math classes we often say "Math is a language", but we really don't teach it that way.
Turing Award winner Ken Iverson did. He called data objects nouns, functions verbs, identifiers pronouns, and operators (to create new verbs from old) adverbs. So 2 is a noun, as is '2'. 'Hello' is a noun with five member nouns. 1 2 3 4 5 6 is a noun with 2 rows and 3 columns, and thus 6 members. Its shape 2 3 can thus be regarded a a noun with 2 members. Verbs include +-<> and many more that we usually write in non-ASCII symbols. Iverson began using / as an adverb in the 1950s, so that +/1 2 3 puts + between the members of 1 2 3, giving 1+2+3, and similarly for other verbs. Their scope has been very greatly expanded since. I have his textbooks on Arithmetic, Algebra, and Calculus written this way, with every math expression executable. (At One Laptop Per Child we are thinking about going beyond text you can type in and run. We want students to be able to click on expressions in electronic 'books' to execute them, and to be able to tweak the parameters on graphs and have them update. And so on.)
The closest we get to that is calling the comparison operators 'verbs' and the various kinds of values that can be combined into expressions 'nouns'.
So, as far as contemporary secondary math thinking is concerned, the only 'verbs' in 'math' are '=', '<', and '>', forms of 'to be'.
However, I'd bet that a lot of students, and even teachers, would categorize '+', '-', '*', and '/' as 'verbs'.
or even ×÷
After all, they seem to suggest 'action'.
But is '2 + 3' a sentence or a complete thought?
In some programming languages, including all those designed by Iverson, 2+3 is a complete imperative sentence, to which the interpreter responds with the answer. 2+3 5
No, it is an expression which is equivalent in value to another expression, namely, '5'.
Sometimes.
I keep thinking that, mathematically, it makes more sense to say that '2 + 3' is one of the already-existing partitions of '5'.
Interestingly, if '2 + 3' were to be taken as a sentence, it would be imperative: "Hey you! Yeah, you! Find the value of 2 + 3, now!"
Indeed.
Mathematically speaking, it would be more accurate to read '2 + 3' as 'the sum of 2 and 3'.
Mathematically speaking, '2 + 3' is a value that does not need to emerge in time. It already exists.
But, computationally speaking, it actually does make sense to think of '2 + 3' as a process.
We start with a '2', then we do something with some registers or whatever, and we increment '2' by '3', and we end up with '5'.
In Smalltalk we send a message to 2 telling it '+3', and the interpreter looks up the method for 2 to carry out this request.
And then this leads into the question of functions - are they 'nouns' or 'verbs'?
In OO terms, functions are how objects relate to other objects.
In OO, objects have methods.
Mathematically speaking, at least according to contemporary secondary textbooks, a function is a set of ordered pairs.
That's a relation. A function is a relation with no duplicate first values.
The expression 'f(x)' is a VALUE.
The expression 'f(x)' may have a value, but is not required to do so.
So, 'f(x)' is a 'noun'.
You have to be careful of that word 'is'. It may be that 'function' is defined in this way, but functions are many other things besides.
But again, computationally speaking, a function is a process. It takes in some information, does something to it, and then yields some new information.
In computational terms, a function is something we 'do' to a value to produce a new value.
In functional programming, a function must return a value, and not change any values. Code that either does not return a value, or changes values (side effects) may be called a 'procedure'. In procedural programming, the mapping of names (pronouns) and values can be changed by assignment within a procedure.
I do apologize if this is not the correct venue for raising such questions, as it is not language specific, but I find this really interesting. I think it might have a lot to do with contemporary students, and teachers!, not 'getting' what math really is,
My mentor in Buddhism, Rev. Jiyu Kennett, told me early on that she had been unable to do algebra between studying it in school in the 1930s, and the time we met in 1969, because the idea of a variable made no sense. Her teacher had tried to explain 'variable' as a number that changes its value, which she and I both understood cannot happen. When I explained that a variable is a name that can be given to different numbers at different times (a pronoun) without the numbers changing, she went away for about half an hour to try it out, and came back saying that she could do it all now, and we didn't need to talk about it any further. Yale University had several math professors teaching in middle school in New Haven in the 1960s, and reporting similar misunderstandings. The children also frequently asked deep questions in the foundations of mathematics that the teachers had no idea how to deal with. One of the simpler ones is, "Is there a biggest number?" This question was a part of the puzzle of foundations, roughly from Peano, Frege, and Russell to Zermelo and Fraenkel, a period of more than thirty years. If by 'number' you mean the integers, then there is no biggest number. If you mean the Cantor transfinite cardinals, it turns out in Zermelo-Fraenkel set theory with the Axiom of Choice (ZFC, "The Standard Model") that the transfinites have an upper limit. At this point one can argue (pointlessly) whether that limit is or is not a number, since all other numbers can be defined as sets, and the limit cannot. ZFC is apparently consistent, and satisfies all of the requirements of working mathematicians up to its time, but it is deeply dissatisfying to the philosophically-minded. One can also look for other foundations for mathematics, as is currently being done in Topose Theory. If you didn't understand all of that, you are in good company. Nobody knows how this phase of it will come out, and we have even less idea what will come after. Furthermore, it is just the same for set theory as Bohr said of his field, "Anyone who is not shocked by quantum theory has not understood it."
and it might shed a lot of useful light on the disconnect between the current secondary math curriculum and the current state of computational understanding.
In the time since Turing and Goedel proved the essential undecidability of mathematics in general and computation in particular, we do our students a great disservice by pretending that mathematics always gives the right answer.
This semester, at a high school level, I do intend to teach math as a 'language', and I'd like to get really clear about these kinds of things.
Thanks very much for any feedback,
Michel Paul
I can point you to software and textbooks that will help, and put you into contact with others who are doing this.
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
-- Silent Thunder [默雷/शब्दगर्ज] is my name, And Children are my nation. The whole world is my dwelling place, And Truth my destination.
At Sun, 3 Aug 2008 20:03:03 -0700, michel paul wrote:
In secondary math classes we often say "Math is a language", but we really don't teach it that way.
The closest we get to that is calling the comparison operators 'verbs' and the various kinds of values that can be combined into expressions 'nouns'.
I enjoyed reading your lines of thought, and Edward has a good observation. But I also have to point out that when people say "math is a language", it means that Math is a language to describe what it can describe well. But trying to make an analogy to English doesn't get you go too far. After all, why does it have to have anything to do with the English syntax? It is not a great language to express what you would like to do over weekend either. The "language-ness" is not in whether it has verbs and nouns, but the relationship between the target concept (Idea) and the description to mean it, and also something to "think in". And, the language-ness is not in these mathematical symbols and syntax, either. It would be possible to write equations in English-like syntax (like your "sum of 2 and 3" example). But the aspiration of preciseness compactness tends to favor a simpler and less ambiguious notation. So, it would be appropriate to say "math is a language for of physics" but saying "math is a language" doesn't sound like a complete sentence to me. "Is math a language of math?" would be an interesting question^^; Now, computer languages are like mathematics, but much more complex in many ways. It is built on top of some axioms, but the set of axioms tends to be very big. The notation is less ambiguous than typical mathematics one because one of the intended readers of the notation is the computer. -- Yoshiki
We have a spectrum of languages gluing equations and other special notations into a larger patchwork of interconnecting disciplines. It's not that there's the vernacular and then math. OO is actually an approach to (mirror of) human grammar in taking the object thing very seriously, maximizing its value as a generalizing metaphor for building syntax ("dot notation" in many languages, Python included), a really good idea I think, even if we continue with other models as well, start new ones. Is chess a language? This kind of question gets discussed in Wittgenstein's remarks on the foundations of mathematics, other investigations. Looking for a simple yes or no answer is missing the point, of appreciating the varied landscape. What makes machine executable math notations special is they must follow a rule book very precisely, a feature one looks for in any language game claiming to be logical. Sheer runnability against an interpreter is already a kind of proof (jumping a logical hurdle), however trivial (like it runs, so what). By the way, the LEX Institute, based in Japan, other places, takes precisely this 'math is another human language' approach when needing to learn about Fourier Transformations in order to tackle vowel sound studies. These language students tackled the job of teaching themselves using their language-teaching philosophy, resulting in a book 'Who Is Fourier?' and talked about early in the history of edu-sig, especially by Jason Cunliffe, whom I had the good fortune to meet in New York City that time. http://mail.python.org/pipermail/edu-sig/2001-October/001788.html Lots of dovetailing twixt the approach here, and what we find in say O'Reilly's 'Dive Into...' series (also in 'Concrete Mathematics' some...). Kirby On Tue, Aug 5, 2008 at 10:32 PM, Yoshiki Ohshima <yoshiki@vpri.org> wrote:
At Sun, 3 Aug 2008 20:03:03 -0700, michel paul wrote:
In secondary math classes we often say "Math is a language", but we really don't teach it that way.
The closest we get to that is calling the comparison operators 'verbs' and the various kinds of values that can be combined into expressions 'nouns'.
I enjoyed reading your lines of thought, and Edward has a good observation. But I also have to point out that when people say "math is a language", it means that Math is a language to describe what it can describe well. But trying to make an analogy to English doesn't get you go too far. After all, why does it have to have anything to do with the English syntax? It is not a great language to express what you would like to do over weekend either.
The "language-ness" is not in whether it has verbs and nouns, but the relationship between the target concept (Idea) and the description to mean it, and also something to "think in".
And, the language-ness is not in these mathematical symbols and syntax, either. It would be possible to write equations in English-like syntax (like your "sum of 2 and 3" example). But the aspiration of preciseness compactness tends to favor a simpler and less ambiguious notation.
So, it would be appropriate to say "math is a language for of physics" but saying "math is a language" doesn't sound like a complete sentence to me. "Is math a language of math?" would be an interesting question^^;
Now, computer languages are like mathematics, but much more complex in many ways. It is built on top of some axioms, but the set of axioms tends to be very big. The notation is less ambiguous than typical mathematics one because one of the intended readers of the notation is the computer.
-- Yoshiki _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
On Tue, Aug 5, 2008 at 11:56 PM, kirby urner <kirby.urner@gmail.com> wrote: << SNIP >>
Lots of dovetailing twixt the approach here, and what we find in say O'Reilly's 'Dive Into...' series (also in 'Concrete Mathematics' some...).
Kirby
Actually that'd be the 'Head First...' series, but you catch my drift (we've made advances in pedagogy, both around text, and with more cinemagraphic innovations ala ShowMeDo, further expending the range of experimentation (lots to learn, about how to accommodate various learning styles)). Kirby
On Tue, Aug 5, 2008 at 10:32 PM, Yoshiki Ohshima <yoshiki@vpri.org> wrote:
At Sun, 3 Aug 2008 20:03:03 -0700, michel paul wrote:
In secondary math classes we often say "Math is a language", but we really don't teach it that way.
The closest we get to that is calling the comparison operators 'verbs' and the various kinds of values that can be combined into expressions 'nouns'.
I enjoyed reading your lines of thought, and Edward has a good observation. But I also have to point out that when people say "math is a language", it means that Math is a language to describe what it can describe well. But trying to make an analogy to English doesn't get you go too far. After all, why does it have to have anything to do with the English syntax? It is not a great language to express what you would like to do over weekend either.
The "language-ness" is not in whether it has verbs and nouns, but the relationship between the target concept (Idea) and the description to mean it, and also something to "think in".
Most of math uses quite other forms of language, including equations and relations. It turns out that math for imperative programming is the kind that makes the best use of the noun-verb-adverb-pronoun family of distinctions. On the other hand, there are math languages important for computing that are analogous to quite different human languages. Among them is relational algebra, which can express all standard relational database operations, and can be expressed quite directly in Lojban, which has relation words but no separate nouns, verbs, or adjectives. There are also declarative languages such as Prolog that do not specify how to carry out a computation, but do give sets of constraints on the solution that a Prolog engine can process. The question is not, Which language is best? but, Which is best for this purpose? Which is not only a question of inherent mathematics, but of external network effects and ecologies and of available hardware.
And, the language-ness is not in these mathematical symbols and syntax, either. It would be possible to write equations in English-like syntax (like your "sum of 2 and 3" example). But the aspiration of preciseness compactness tends to favor a simpler and less ambiguious notation.
The solution of the cubic equation was discovered and presented in this sort of language. Florian Cajori wrote an excellent History of Mathematical Notation that talks about the relationship between notations and discoveries in considerable detail.
So, it would be appropriate to say "math is a language for of physics" but saying "math is a language" doesn't sound like a complete sentence to me. "Is math a language of math?" would be an interesting question^^;
There are many languages in math.
Now, computer languages are like mathematics, but much more complex in many ways. It is built on top of some axioms, but the set of axioms tends to be very big. The notation is less ambiguous than typical mathematics one because one of the intended readers of the notation is the computer.
Actually, to the mathematician, programming is a fairly simple concept that can be expressed in several different ways as the working out of only two basic concepts, such as the S and K combinators (Unlambda or J), or Lambda expressions and application (LISP and many related languages). Most programming languages have a good deal of unneeded and counterproductive complexity added on, like C++. To the non-mathematician, these simpler solutions seem harder than memorizing the complex syntax of conventional languages, as was often borne in upon Computer Scientist Edsger Dijkstra. He spent much of his career trying to make programming easier to do well, and was regularly told by practitioners that he had made it harder instead. The same principle applies with even greater force in education. "Don't do us no favors," teachers seem to say. "if you make it so that we can really teach this stuff, then we will all have to go learn it ourselves, and we can't." This is a delusion in a way, but not the delusion of the teachersthemselves. It is a delusion enforced by the social system they work in. Like Ethiopian teachers treating questions from students as personal insults, until they get XOs. There experience suggests that there is hope for the profession as a whole.
-- Yoshiki _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
-- Silent Thunder [ 默雷 / शब्दगर्ज ] is my name, And Children are my nation. The Cosmos is my dwelling place, And Truth my destination.
On Sun, Aug 24, 2008 at 1:30 AM, Edward Cherlin <echerlin@gmail.com> wrote: << SNIP >>
Actually, to the mathematician, programming is a fairly simple concept that can be expressed in several different ways as the working out of only two basic concepts, such as the S and K combinators (Unlambda or J), or Lambda expressions and application (LISP and many related languages). Most programming languages have a good deal of unneeded and counterproductive complexity added on, like C++.
Mathematicians may boil it down to a few basic concepts (like a Turing Machine or whatever), but when push comes to shove they like their traditional notations and both MathCad and Mathematica have gone to some length to get those old pre-computer typographies on screen, so that math looks like it used to. Lots of mathy types didn't want to touch a mouse and keyboard as long as programming looked like FORTRAN (not saying I blame them). We've come a long way baby.
To the non-mathematician, these simpler solutions seem harder than memorizing the complex syntax of conventional languages, as was often borne in upon Computer Scientist Edsger Dijkstra. He spent much of his career trying to make programming easier to do well, and was regularly told by practitioners that he had made it harder instead.
Distilling to two concepts might be theoretically advantageous in some context, but trying to code anything sophisticated in such a primitive manner would be tedious to say the least, although I realize LISP is all S-expressions (exciting to purists in that way).
The same principle applies with even greater force in education. "Don't do us no favors," teachers seem to say. "if you make it so that we can really teach this stuff, then we will all have to go learn it ourselves, and we can't." This is a delusion in a way, but not the delusion of the teachersthemselves. It is a delusion enforced by the social system they work in. Like Ethiopian teachers treating questions from students as personal insults, until they get XOs. There experience suggests that there is hope for the profession as a whole.
Yes, it's good to have languages so accessible that we don't really need teachers any more (just self teaching abilities), although if we have them that's cool (teach your peers!). The self-marginalizing of professional adults to where they're not relevant to passing on so many core aspects of the culture, because not venturing to keep up, even if called "teachers" originally, is certainly a social problem. akin to juvenile delinquency in some ways (i.e. whole groups of people feeling they have no accepted role in the ambient culture anymore). Kirby
Thanks for the thoughtful responses on this. Yeah, a distinction between nouns and verbs can't be made too rigid, as, for one thing, some words, like 'shout', can serve as either nouns or verbs depending upon context, and in some languages, such as a designed language, such a distinction might not be necessary, but there is an interesting contrast that naturally arises, similar to the one between 'things' and 'processes'. A related question I had is whether nouns and verbs are processed differently in the brain? From what I've found, the current view is that, yes, there are differences, but there is of course lots of debate about the details. The most recent views explain the difference in terms of grammatical 'markers' associated with noun or verb phrases, not the specific noun or verb itself. "nouns and verbs qua nouns and verbs are not represented in separate regions of the brain." I'm completely unqualified to really say anything further about this, so see Talking Brains.<http://talkingbrains.blogspot.com/2008/08/representation-of-nouns-and-verbs-...> It makes me wonder about how our brains process functions, as we can understand functions as either 'nouns' (values) or 'verbs' (processes acting on other values) or both. Again, to summarize what prompted my original question, those high school math texts that do describe math as a 'language 'typically will call the comparison operators 'verbs', as they contain 'is'. Expressions are not considered complete statements. Equations or inequalities are defined as the only complete statements, and these are built from expressions. Again - that's how the high school texts typically present it. However, it is clearly the case from the discussion here that computational expressions can indeed be interpreted as imperative statements. And, as I mentioned, I bet that most students and teachers automatically think of arithmetic expressions in a computational or imperative way, especially in an age of calculators, so it would seem that this could become part of the argument for weaving computational thinking into the math curriculum? We would be giving them a richer language for expressing the kind of thinking they're already inclined to do. The block Parmenidean universe of traditional high school math where nothing actually 'happens' is kind of distant from how most kids naturally think. - Michel On Sun, Aug 24, 2008 at 8:48 AM, kirby urner <kirby.urner@gmail.com> wrote:
On Sun, Aug 24, 2008 at 1:30 AM, Edward Cherlin <echerlin@gmail.com> wrote:
<< SNIP >>
Actually, to the mathematician, programming is a fairly simple concept that can be expressed in several different ways as the working out of only two basic concepts, such as the S and K combinators (Unlambda or J), or Lambda expressions and application (LISP and many related languages). Most programming languages have a good deal of unneeded and counterproductive complexity added on, like C++.
Mathematicians may boil it down to a few basic concepts (like a Turing Machine or whatever), but when push comes to shove they like their traditional notations and both MathCad and Mathematica have gone to some length to get those old pre-computer typographies on screen, so that math looks like it used to.
Lots of mathy types didn't want to touch a mouse and keyboard as long as programming looked like FORTRAN (not saying I blame them). We've come a long way baby.
To the non-mathematician, these simpler solutions seem harder than memorizing the complex syntax of conventional languages, as was often borne in upon Computer Scientist Edsger Dijkstra. He spent much of his career trying to make programming easier to do well, and was regularly told by practitioners that he had made it harder instead.
Distilling to two concepts might be theoretically advantageous in some context, but trying to code anything sophisticated in such a primitive manner would be tedious to say the least, although I realize LISP is all S-expressions (exciting to purists in that way).
The same principle applies with even greater force in education. "Don't do us no favors," teachers seem to say. "if you make it so that we can really teach this stuff, then we will all have to go learn it ourselves, and we can't." This is a delusion in a way, but not the delusion of the teachersthemselves. It is a delusion enforced by the social system they work in. Like Ethiopian teachers treating questions from students as personal insults, until they get XOs. There experience suggests that there is hope for the profession as a whole.
Yes, it's good to have languages so accessible that we don't really need teachers any more (just self teaching abilities), although if we have them that's cool (teach your peers!).
The self-marginalizing of professional adults to where they're not relevant to passing on so many core aspects of the culture, because not venturing to keep up, even if called "teachers" originally, is certainly a social problem. akin to juvenile delinquency in some ways (i.e. whole groups of people feeling they have no accepted role in the ambient culture anymore).
Kirby _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig
Edward Cherlin wrote:
On Tue, Aug 5, 2008 at 10:32 PM, Yoshiki Ohshima <yoshiki@vpri.org> wrote:
... Now, computer languages are like mathematics, but much more complex in many ways. It is built on top of some axioms, but the set of axioms tends to be very big. The notation is less ambiguous than typical mathematics one because one of the intended readers of the notation is the computer.
Actually, to the mathematician, programming is a fairly simple concept that can be expressed in several different ways as the working out of only two basic concepts, such as the S and K combinators (Unlambda or J), or Lambda expressions and application (LISP and many related languages). Most programming languages have a good deal of unneeded and counterproductive complexity added on, like C++.
The current ACM has the last half of a great interview with Donald Knuth. The whole is great, but the second can be read stand-alone. He was a and is a mathematician by most lights, but said in this interview, "Software is hard. My experience with TeX taught me to have much more admiration for colleagues that are devoting most of their life to software than I had previously done, because I didn't realize how much more bandwidth of my brain was being taken up by that work than when I was doing theoretical work." --Scott David Daniels Scott.Daniels@Acm.Org
participants (6)
-
Edward Cherlin -
Janet Hawtin -
kirby urner -
michel paul -
Scott David Daniels -
Yoshiki Ohshima