This is a topic for which I'd especially be interested in Ed Cherlin's thoughts, but anyone else who has something to say on this, please chime in.
For a long while now I've been wondering if the procedural/functional divide in programming might correspond to a pre-algebraic/algebraic divide in math education? I've been finding that yes, there is something to this, and I'd like to flesh it out more.I've noticed that all students and even most math teachers tend to think of math in procedural terms. Students think of equations as something to 'do' rather than as statements that have a meaning. If you present a student with a purely symbolic algebraic equation, their first reaction is "What am I supposed to do?" rather than, "What does this mean?"
However, trying to implement Scheme in a traditional Algebra setting was extremely difficult. One issue is operator prefix notation. In Scheme, if you want to express 2 + 3, you have to express it as (+ 2 3). Both kids and math colleagues regard this as exotic and strange and a diversion from 'real' math.
However, it really isn't. In fact, the opposite is true - it points directly to the core of much mathematical misunderstanding on the parts of both students and teachers. Operator prefix notation emphasizes the fact that even 'ordinary' arithmetic operators are functions! Kids, and probably even most math teachers, regard arithmetic operations and functions as two separate topics - they would say we 'use' arithmetic operators in constructing functions, but no, even simple arithmetic operators are themselves functions. An expression like 2 + 3*4 in functional terms becomes (+ 2 (* 3 4)), and we would read it as 'the sum of 2 and the product of 3 and 4', and a cool consequence of this is that it can easily be turned into a binary expression tree. One of the great things about purely functional expression is that it requires no order of operations. So there is much in favor of such a thing.
On Sat, Oct 15, 2011 at 11:55 AM, michel paul <python...@gmail.com> wrote:I've noticed that all students and even most math teachers tend to think of math in procedural terms. Students think of equations as something to 'do' rather than as statements that have a meaning. If you present a student with a purely symbolic algebraic equation, their first reaction is "What am I supposed to do?" rather than, "What does this mean?"Looking forward to Ed's thoughts as well! Meanwhile, can you make an example of a meaning that is not procedural?
I think just given 'X+1' we should withhold our interpretations and
ask for more context.
Perhaps its a move in some notation we haven't learned yet, like
saying "advance the X piece one space". Or maybe it records a
marriage between two individuals named X and 1 (but then the
term "marriage" is as yet undefined). 'X-1' signifies their later
separation.
> Now here's an equation that has no algebraic solution but does have a
> procedural meaning: x = x+1. Algebraically, there is no value for which
> the statement is true. However, this kind of statement is used all the time
> in programming. It means that 'x' now refers to its successor.
> This right here is the functional/procedural divide.
>
What I explain to students is Python has repurposed the keyboard
"=" symbol to serve as "the assignment operator". It's much closer
to a binary operator in that it "binds" the "name" on the left
to the "value of the expression" on the right.
In Scheme-like notation, we might think something like:
(= x 1)
after which
(+ x x)
2
would make sense.
In Python:
x = x + 1
is about rebinding the name 'x' to refer to what 'x' meant before,
with __add__(1) applied to it. We're not sure what the answer
will be, as we don't know what x was, and therefore is.
We treat 1 as a name that never changes what it refers to, i.e.
we cannot say 1 = "a" and thereby rebind the name "1" to point
to the string literal "a". Some names are constants.
Names that might be bound to any object are what we would
usually call "variables" in mathematics, or it least that's a useful
equivalence in some circumstances.
It should not surprise us when there's no simple "one to one"
correspondence between a term's meaning in namespace A,
and it's meaning in namespace B.
Now of course we still want to test for equivalence in value.
x == x + 1
is much closer to the algebraic meaning (as you describe it)
and may be "seen as" evaluating to True or False. One would
think False on the face of it, but again, we have provided no real
information about x. We don't know what type of object it is.
The point is not whether the above is True or False, but that
it's a statement about values of expressions, whereas
x = x + 1
is an operation of renaming, having x mean something new,
albeit based on what it meant before.
Whereas the standard thing to say might be "math and
computer science have different meanings of '='", my
more radical view is more like "logic has advanced in
many directions, some more machine based than others."
Kirby
> Fascinating, Michel! I am doing a unit on functions with my math club - kids
> 7-8 years old and parents. Kids have no misconceptions that addition isn't a
> function, yet. However, they don't see addition as a binary function. They
> see "adding two" (for example) as a unary function.
> Cheers,
> Maria Droujkova
FYI.
We're having a discussion About Functions over on the Math Forum as well.
http://mathforum.org/kb/thread.jspa?threadID=2303870&tstart=0
Kirby
I've noticed that all students and even most math teachers tend to think of math in procedural terms. Students think of equations as something to 'do' rather than as statements that have a meaning. If you present a student with a purely symbolic algebraic equation, their first reaction is "What am I supposed to do?" rather than, "What does this mean?"Looking forward to Ed's thoughts as well! Meanwhile, can you make an example of a meaning that is not procedural?Sure. Take a simple expression like 'x+1'. We typically read it as 'x plus one', and most people would probably agree that it means something like, "Take the value of x and add 1 to it." That's a procedural interpretation. We think of the expression as telling us to do something.However, the expression could well be a reference to an already existing value. The expression 'x+1' might simply refer to 'the number that follows x'. In functional terms, 'successor(x)'. The expression is not a command for us to do something but is a reference to a value.
Similarly, the expression 'a+b' doesn't have to mean "Start with the value a and then add b to it." It could simply refer to 'the sum of a and b'
, that value that is already composed of the partitions a and b.In the case of equations, 'ax+b = c' doesn't have to mean 'find x', but that would be the typical knee-jerk schoolish response. What the equation is saying is that we can express the value of c as 'the sum of a product and a number'.
Now here's an equation that has no algebraic solution but does have a procedural meaning: x = x+1. Algebraically, there is no value for which the statement is true. However, this kind of statement is used all the time in programming. It means that 'x' now refers to its successor.
This right here is the functional/procedural divide.
I am struggling with how I would teach this. Is it the difference between the object and its name? So, "a+b" functionally is the name of the sum, rather than the value - an alias for it, so to speak?
, that value that is already composed of the partitions a and b.In the case of equations, 'ax+b = c' doesn't have to mean 'find x', but that would be the typical knee-jerk schoolish response. What the equation is saying is that we can express the value of c as 'the sum of a product and a number'.Well, "expressing the value of c" is still a procedure, something you do, right? I think this throws kids.I can think of the biggest difference as "equation, an object" (which can be, for example, true or false or beautiful or linear - an object with qualities) and "equating, an action" or "solving, an action". But again, there is no clear line, it's so subjective!Now here's an equation that has no algebraic solution but does have a procedural meaning: x = x+1. Algebraically, there is no value for which the statement is true. However, this kind of statement is used all the time in programming. It means that 'x' now refers to its successor.
On Sat, Oct 15, 2011 at 11:55 AM, michel paul <python...@gmail.com> wrote:
This is a topic for which I'd especially be interested in Ed Cherlin's thoughts, but anyone else who has something to say on this, please chime in.
For a long while now I've been wondering if the procedural/functional divide in programming might correspond to a pre-algebraic/algebraic divide in math education? I've been finding that yes, there is something to this, and I'd like to flesh it out more.
I've noticed that all students and even most math teachers tend to think of math in procedural terms. Students think of equations as something to 'do' rather than as statements that have a meaning. If you present a student with a purely symbolic algebraic equation, their first reaction is "What am I supposed to do?" rather than, "What does this mean?"
Looking forward to Ed's thoughts as well! Meanwhile, can you make an example of a meaning that is not procedural?
However, trying to implement Scheme in a traditional Algebra setting was extremely difficult. One issue is operator prefix notation. In Scheme, if you want to express 2 + 3, you have to express it as (+ 2 3). Both kids and math colleagues regard this as exotic and strange and a diversion from 'real' math.
I think it's exotic to treat ADDITION this way. I would start from inviting kids to define their own function - a la "function machine" metaphor! Something like (@ 2 3) as 2*2+3 (or whatever strikes their fancy).This is the classic pedagogic pitfall I call "too simple to be an exemplar." More along the same lines:- Don't introduce addition by adding zero- Don't introduce multiplication by multiplying by 0, 1 or doubling- Don't introduce functions by y=xHowever, it really isn't. In fact, the opposite is true - it points directly to the core of much mathematical misunderstanding on the parts of both students and teachers. Operator prefix notation emphasizes the fact that even 'ordinary' arithmetic operators are functions! Kids, and probably even most math teachers, regard arithmetic operations and functions as two separate topics - they would say we 'use' arithmetic operators in constructing functions, but no, even simple arithmetic operators are themselves functions. An expression like 2 + 3*4 in functional terms becomes (+ 2 (* 3 4)), and we would read it as 'the sum of 2 and the product of 3 and 4', and a cool consequence of this is that it can easily be turned into a binary expression tree. One of the great things about purely functional expression is that it requires no order of operations. So there is much in favor of such a thing.
Fascinating, Michel! I am doing a unit on functions with my math club - kids 7-8 years old and parents. Kids have no misconceptions that addition isn't a function, yet. However, they don't see addition as a binary function. They see "adding two" (for example) as a unary function.
Cheers,
Maria Droujkova
--
You received this message because you are subscribed to the Google Groups "MathFuture" group.
To post to this group, send email to mathf...@googlegroups.com.
To unsubscribe from this group, send email to mathfuture+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mathfuture?hl=en.
I am struggling with how I would teach this. Is it the difference between the object and its name? So, "a+b" functionally is the name of the sum, rather than the value - an alias for it, so to speak?Maria, this paragraph caught my attention because of the pedestrian interpretation of the first sentence. I believe that - systemwise - optimal conditions or results never happen in reality. There is always something that begs for improvement; somebody may puts their heart to promoting that; the society may start changing and the gradient is in the direction of betterment - for a while at least. Then the pendulum will have to go in another direction because some aspects of the adopted idea that was auspicious in one set of circumstance may become detrimental in another. This is especially true if the new idea is being taken as an universal truth.The context for my rant is the notion of peer-to-peer learning. I do believe that kids (at least most of the average kids) do better in groups, communicating with each other. This is just one possible interpretation of the "peer-to-peer" concept. Another would see kids in a group being more active in defining their learning priorities and then even further on picking up study materials and so on. I am a little apprehensive when - in the context of a discussion on the overhaul of the educational system the emphasis falls on the "peer-to-peer" concept. I do believe that teachers will have their role - albeit much different from what it is now - in any future establishment. It does not matter whether they will be called mentors or chaperons or anything else; there will have to be somebody professional whose responsibility will be to keep children engaged by at least helping them to find what is best suitable to their level, interests, and abilities.
--
...here will have to be somebody professional whose responsibility will be to keep children engaged by at least helping them to find what is best suitable to their level, interests, and abilities.
why will have to be? Do you mean that this role will not eliminate because children can not engaged and find the best by themselves?
--
...here will have to be somebody professional whose responsibility will be to keep children engaged by at least helping them to find what is best suitable to their level, interests, and abilities.
why will have to be? Do you mean that this role will not eliminate because children can not engaged and find the best by themselves?
I would not say "cannot engage" and would use "may not engage" but the reason for the need in trained professionals is the enormity of the available materials and also because a foresight is needed. A totally random pursuit of information or perceived interests may lead to a tremendous waste of time. Additionally, "best" is not well defined so that the choices may need to be supplied by a trained professional.Alex
--
The resources can be internal or external to the system or super-system. Resources can be substances or fields. TRIZ gives highest priority to use the resources already available inside the system. Let's see what kind of resources can be used in problem solving. The resources are classified into substances, energy, space, time, functions, information and combined resources.
In case anyone wants a visualization on that one:
http://youtu.be/TR_8SDNQ0ks (math video)
(I like to combine such pure math with some wholesome home economics topics:
http://youtu.be/dZfmPREbTd8 (same author)
Some kids (not all, right) like demented stuff like this, one of my
themes here on mathfuture (search on "demented" sometime).
Kirby
Yes, it's instructive to use real explosives sometimes.
A curriculum is somewhat defined by what kinds of access it provides,
to resources.
The math curriculum I'm working on has baked in features promoting
access to nutritious foods.[1]
Doing the problems requires processing food (for real) in some cases.
I like maths that gets you "dirty" (in stark contrast to the paper and
pencil crowd).
Art colonies might be more likely to tap in. The parents are already
hands-on types.
Kirby
[1] http://mathforum.org/kb/thread.jspa?threadID=2299146&tstart=30
(more about the Gnu Math curriculum in Portland, Oregon)
I will ask a series of questions with a particular goal. Namely, I want to figure out how to help kids appreciate the procedural/functional difference.
...
Similarly, the expression 'a+b' doesn't have to mean "Start with the value a and then add b to it." It could simply refer to 'the sum of a and b'"find the sum of a and b" vs. "the sum of a and b"?I am struggling with how I would teach this. Is it the difference between the object and its name? So, "a+b" functionally is the name of the sum, rather than the value - an alias for it, so to speak?
In the case of equations, 'ax+b = c' doesn't have to mean 'find x', but that would be the typical knee-jerk schoolish response. What the equation is saying is that we can express the value of c as 'the sum of a product and a number'.Well, "expressing the value of c" is still a procedure, something you do, right?
Now here's an equation that has no algebraic solution but does have a procedural meaning: x = x+1. Algebraically, there is no value for which the statement is true. However, this kind of statement is used all the time in programming. It means that 'x' now refers to its successor.How do we explain the difference to kids? Because this equation has a logic "solution" - you can determine its truth value, "false".
This right here is the functional/procedural divide.MariaD
--
You received this message because you are subscribed to the Google Groups "MathFuture" group.
To post to this group, send email to mathf...@googlegroups.com.
To unsubscribe from this group, send email to mathfuture+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mathfuture?hl=en.
...
Whereas the standard thing to say might be "math and
computer science have different meanings of '='", my
more radical view is more like "logic has advanced in
many directions, some more machine based than others."
On Mon, Oct 17, 2011 at 4:22 AM, Maria Droujkova <drou...@gmail.com> wrote:I will ask a series of questions with a particular goal. Namely, I want to figure out how to help kids appreciate the procedural/functional difference.OK. Then here's a better example for that purpose -In procedural thinking the question, "How do I find n!?" could be answered "Let f = 1. While n is positive, let f = the product of n and f, and let n = n-1. When n = 0, f is n!."
In functional thinking the question, "What is the value of n!?" could be answered, "If n < 2, the value is 1. Otherwise, the value is the product of n and (n-1)!."Check out Phil's recent Broken Airplane blog on this.
What I meant by resources (There are different users of the platform, with different roles at different times + different resources)
I hope it provokes revelation.
For example some terms like THERMAL EXPANSION can be considered as utilizing methods to encourage students to be excited about their subjects! or sharing authority and responsibility with students, teachers, and parents!
>> Whereas the standard thing to say might be "math and
>> computer science have different meanings of '='", my
>> more radical view is more like "logic has advanced in
>> many directions, some more machine based than others."
>
> Yeah, I like that.
> - Michel
>
Ads a kind of corollary, I wouldn't say that functional programming is
closer to mathematics than imperative, but that mathematics has many
forks and branches, like cooking, leading to flavors and flavor
families.
The imperative branch went from structured to object oriented
programming is now showing off a "math objects" approach wherein you
see "what makes it tick" by writing the source code for, say, a
rational number or vector.
The functional branch is more interested in looking at programs as
proofs or at proofs that double as programs. I find the functional
branch more Bourbakian in flavor but maybe that's just me.
Certainly it inherits from Lambda Calculus, which means you see the
greek letter "lambda" a lot more. Python, tellingly, only has what we
call "little lambda" which basically defines a function that doesn't
need its own name.
One of the philosophical conundrums I work on is this:
(a) as a Wittgenstein camper (a kind of "occupy philosophy" school),
I'm trained to think of "meaning" in operational terms, i.e.
regardless of definitions, you will be fine tuning your meanings on
the front lines in applications, in the "war zone" of "math at work"
(not suggesting there need be violence -- on the contrary, if the math
is any good, it'll show you a way free, like a martial art). To think
this way, I've needed to wean myself from any simplistic view of
language based on nominalist and/or Platonist paradigms in the sense
that I no longer see "meaning" as a kind of "pointing" by referents to
their meanings (even if "pointing" is still an important way of
communicating).
(b) as a Pythonista, I'm blessed with a rather elegant nominalist
logic, with namespaces comprised of names referring to objects on the
heap. The objects do the real work, whereas the names are more like
TV remotes: they provide the controls, crafted in syntax, that give
scripts agency over their players, make them do stuff (the imperative
paradigm). So I've got a "perfect nominalism in a bottle" that in
dimmer days I might come to view as a heresy, and reflexively attack
based on Wittgensteinian predilections.
My synthesis of these two is to associate Python with Wittgenstein in
his Tractatus phase, as embraced by the Vienna Circle of his day.
Here's the propositional calculus Russell was hoping for, a simple
nominalist paradigm but nuanced and endowed enough to run on machinery
and lightning fast speeds. This is what workaday logic became: the
backbone of the global economy, or its organizing rubric. Leibniz had
anticipated the drift of the zeitgeist (he was good at that).
On the other hand, to gain perspective, I operationally develop
meaning by spinning new ones into existence, showing off the power of
the PI (Philosophical Investigations) and what it teaches us.
Tractatus relates to tractare or traction, work through friction,
dragging a stick through the dirt, behind a tractor, a plow. This
tractor then starts behaving much like a turtle in Logo, leaving
patterns in the field. We discover a more explorational vista wherein
nominalism gives way to the more flexible (less rigid) and mature
philosophy of the later Wittgenstein.
Yeah, "clear as mud" as Maureen would say (one of my teachers). Just
giving a snapshot of where my head's at sometimes, between grading
papers and cooking with math teachers, engaging in various logistics /
maneuvers (how to feed OccupyPortland and still keep our other
circuits open? -- Metro needs more bizmos around the perimeter,
education mobiles.... (a two way street, geeks learn even more than
they teach, to stay geeks).
http://controlroom.blogspot.com/2011/10/at-wherecamppdx.html
"""
During one of the breaks, I showed Igal the faux socialist realist
memes I've been weaving into my Pythonic Andragogy, complete with
Tractor Art. Given he reads Cyrillic, we slowed down and zoomed in on
some of my slides. I gave him the whole presentation in under three
minutes, including the Cult of Athena slide at the end.
"""
Kirby
"""
Kirby
--
You received this message because you are subscribed to the Google Groups "MathFuture" group.
To post to this group, send email to mathf...@googlegroups.com.
To unsubscribe from this group, send email to mathfuture+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mathfuture?hl=en.
--
You received this message because you are subscribed to the Google Groups "MathFuture" group.
To post to this group, send email to mathf...@googlegroups.com.
To unsubscribe from this group, send email to mathfuture+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mathfuture?hl=en.
Small world (or rather, as the Russian saying goes, thin stratum) - I interviewed Emmanuel of "Bootstrap" for the Math Future series, this January: http://mathfuture.wikispaces.com/Bootstrap+World
I feel this has to do with the operational/structural distinction in math ed (Dubinsky, Sfard).
Kirby, thanks very much for your perspective. I've always appreciated your use of Wittgenstein. Yeah, you can't put math into a box. Even math evolves. I like that.
From all the various responses - I get that there really does seem to be something to a procedural/functional way of thinking that corresponds to an arithmetic/algebraic divide in mathematical maturity; however, we don't need 'purity' tests as to what is 'real' math and what is not.
I like the rigor and discipline that functional thinking promotes, but sometimes it's nice to throw a simple loop together to display the behavior of something. I like being able to say things in different ways at different times for different purposes.
This year I started my computational class off with purely functional expression, and I do like what I'm seeing. Last year I would compare the functional approach with what they would see in their text, but in doing it that way the value of the functional approach wasn't really clear to them. So this year I restricted them to only functional expression in the beginning, and I think it had a really good effect. Now I'm opening it up to general Pythonic expression and the use of Sage.
I studied a little Haskell over the summer via The Haskell Road to Maths, Logic, and Programming, and I just loved it. I was even thinking about starting my course off with it, but I want to get more grounded in it before I start to do that. I did use some of the easier exercises in that book to develop a sequence of functional exercises, just translated them into Python. Haskell is very cool - feels like a blend of Scheme and Python, though it is a strictly functional language. Haskell has a great way of handling list comprehensions.
I link them, as I think the latter, with his "operational mathematics" and continual refinement of definitions "in the field" as it were, is demonstrating of "meaning as use" in action, in a mathematical realm.
Kathleen
--
> We treat 1 as a name that never changes what it refers to, i.e.
> we cannot say 1 = "a" and thereby rebind the name "1" to point
> to the string literal "a".
Except in Smalltalk, where it was stated in one of the original books that
the interpreter could run for a surprising length of time before falling
over if you redefined one of the basic constant number classes.
> Some names are constants.
Like 0: and others from _9: to 9: in J, each of which is a constant
_function_ returning its designated value no matter what arguments it is
applied to.
0: 2
0
1: 0 1 2 3 4
1
3 _2: 4
_2
http://jsoftware.com/help/dictionary/dconsf.htm
> Names that might be bound to any object are what we would
> usually call "variables" in mathematics, or it least that's a useful
> equivalence in some circumstances.
Pronouns, in Iverson's analysis.
http://www.jsoftware.com/help/dictionary/dict2.htm
--
Edward Mokurai
(默雷/धर्ममेघशब्दगर्ज/دھرممیگھشبدگر
ج) Cherlin
Silent Thunder is my name, and Children are my nation.
The Cosmos is my dwelling place, the Truth my destination.
http://wiki.sugarlabs.org/go/Replacing_Textbooks
On Sun, October 16, 2011 6:22 pm, Maria Droujkova wrote:
> On Sat, Oct 15, 2011 at 11:55 AM, michel paul
> <python...@gmail.com>wrote:
>
>> This is a topic for which I'd especially be interested in Ed Cherlin's
>> thoughts, but anyone else who has something to say on this, please chime
>> in.
>>
>> For a long while now I've been wondering if the procedural/functional
>> divide in programming might correspond to a pre-algebraic/algebraic
>> divide in math education? I've been finding that yes, there is
>> something to this, and I'd like to flesh it out more.
Very interesting. I am going to have to give cursory answers, but please
ask about any point you find interesting or baffling. ^_^
>> I've noticed that all students and even most math teachers tend to think
>> of math in procedural terms.
Not inherently a bad thing. In fact, I am going to encourage that kind of
thinking in the books I am working on, starting with a J translation of
Ken Iverson's Algebra: An Algorithmic Treatment. (Newly under CC license,
with J newly under GPL)
http://booki.treehouse.su/algebra-an-algorithmic-treatment/edit/
But I also encourage non-procedural thinking, for example in set theory
and its applications to structures in category theory, model theory, and
topose theory, and in much of geometry. All of this no doubt sounds exotic
and difficult, if you assume that I am going to give you university
lectures on these subjects, rather than preparing the ideas for children
to grasp. It is a matter of extracting the ideas from the calculations,
notations, and proof techniques.
I hold up Feynman's wonderful little book QED as the best example of this.
As he stated in the lectures that became the book, he could explain all of
the fundamental ideas of this branch of Quantum Mechanics in a few hours,
as long as he didn't have to teach how to get all of the answers, which
his graduate students had to spend years learning.
>> Students think of equations as something to 'do'
>> rather than as statements that have a meaning. If you present a student
>> with a purely symbolic algebraic equation, their first reaction is "What
>> am I supposed to *do*?" rather than, "What does this *mean*?"
I believe that this is an artifact of the school culture in which
everything is going to be on the test, with no time for exploring on one's
own.
> Looking forward to Ed's thoughts as well! Meanwhile, can you make an
> example of a meaning that is not procedural?
In mathematics, the procedural and the non-procedural are fully
equivalent. This is conceptually related to the situation in physics,
where we can write both time-varying and time-invariant equations for
anything.
The best example is the dozens of Turing-equivalent modes of expression
for computable functions, including but not limited to
* Turing machines and their innumerable variations
* Markov algorithm
* Post normal systems
* Lambda Calculus
* Any Turing-complete programming language
* G�del's recursive functions
* Combinatory Logic
* Diophantine equations
* Tilings of the plane
All but the last two are routinely presented as sequential systems, where
there are transformation or execution rules to follow from an initial
state step-by-step to a final state (or not, as the case may be). One can
look at certain classes of tilings, described in Tilings and Patterns, by
Gr�nbaum and Shephard, from either point of view. Each tile has
jigsaw-puzzle style projections and indentations which allow them to fit
together to tile the plane in exactly one way (non-procedural) so that
rows of the result in half of the plane represent successive tape states
of a Turing machine (procedural).
Diophantine equations come closest to the purely non-procedural, because
the whole point of representing all recursive sets (and thus all
statements in logic and arithmetic) in Diophantine equations is that we
can write an equation which can be proved to have a solution if and only
if we can prove a G�del sentence, that is, if and only if arithmetic is
inconsistent. (Hilbert's 10th Problem, book by Yuri Matiyasevich, Martin
Davis, and Hilary Putnam) Therefore there is no algorithm for solving all
Diophantine equations.
>> However, trying to implement Scheme in a traditional Algebra setting was
>> extremely difficult. One issue is operator prefix notation. In Scheme,
>> if you want to express 2 + 3, you have to express it as (+ 2 3). Both
>> kids and math colleagues regard this as exotic and strange and a
>> diversion from 'real' math.
This has not been a problem in introducing Turtle Art to first graders. It
may be that it is more natural when snapping blocks together into trees
than in linear textual programming. I have done some work on how to move
from Turtle Art to Logo (LISP dialect, prefix/Polish notation), Python
(infix), and FORTH (postfix/Reverse Polish Notation/RPN). Turtle Art has
built-in links to all three.
The idea that LISP is a diversion from real math shows how far the schools
have strayed from real math.
> I think it's exotic to treat ADDITION this way. I would start from
> inviting
> kids to define their own function - a la "function machine" metaphor!
> Something like (@ 2 3) as 2*2+3 (or whatever strikes their fancy).
http://jsoftware.com/help/primer/explicit_tacit_trans.htm
]f=.13 : '(x*x)+y'
] + [ * [ NB. [ returns its left argument; ] returns its
right argument
3 f 4
3 (] + [ * [) 4
4 + 3 * 3
13
> This is the classic pedagogic pitfall I call "too simple to be an
> exemplar."
> More along the same lines:
> - Don't introduce addition by adding zero
> - Don't introduce multiplication by multiplying by 0, 1 or doubling
> - Don't introduce functions by y=x
This is particularly the problem for RPN calculators. RPN is much simpler
than parentheses once you get three or more levels deep, as engineers and
programmers routinely do. However, we do not ask schoolchildren to do so.
We therefore cannot ask them to buy the more powerful RPN calculators,
even though that would enable them to take on more challenging and more
interesting topics.
Fortunately, this issue goes away with one-to-one computing, which is
catching on around the world, in rich and poor countries alike, in part
because computers with Free Software and Creative Commons content cost
less than printed textbooks. Even commercial software and digital content
costs less than printed materials. Computers can run any kind of software,
usually at no extra charge.
> However, it really isn't. In fact, the opposite is true - it points
>> directly to the core of much mathematical misunderstanding on the
>> parts of both students and teachers. Operator prefix notation
>> emphasizes the fact that even 'ordinary' arithmetic operators are
>> functions! Kids, and probably even most math teachers, regard
>> arithmetic operations and functions as two
>> separate topics - they would say we 'use' arithmetic operators in
>> constructing functions, but no, even simple arithmetic operators are *
>> themselves* functions. An expression like 2 + 3*4 in functional terms
>> becomes (+ 2 (* 3 4)), and we would read it as 'the sum of 2 and the
>> product of 3 and 4', and a cool consequence of this is that it can
>> easily be turned into a binary expression tree. One of the great
>> things about purely functional expression is that it requires no order of
>> operations. So there is much in favor of such a thing.
As I was saying, that is what we do in Turtle Art with first graders.
2
+ 3
*
4
We do not turn it into an expression tree. The children construct the tree
directly. See any of the tutorials at
http://wiki.sugarlabs.org/go/Activities/TurtleArt/Tutorials
> Fascinating, Michel! I am doing a unit on functions with my math
> club - kids 7-8 years old and parents. Kids have no misconceptions
> that addition isn't a function, yet. However, they don't see
> addition as a binary function. They see "adding two" (for example)
> as a unary function.
Go, kids! They always come up with the best philosophical questions in
math, no matter how little their parents or teachers may know.
They are exactly right from the point of view of Combinatory Logic and
thus of many kinds of functional programming. For example, the K
combinator in CL always returns its first argument, thus.
Kxy
x
So the expression Kx is a constant function that returns x no matter what
it is applied to. Thus KK is the constant function that always returns K.
This combination of function and one argument is called Currying, after CL
pioneer Haskell Curry.
You can teach your kids to write (+2) 3, yielding 5 as the result.
See Raymond Smullyan, To Mock a Mockingbird, for a puzzle-based
introduction to CL, culminating in G�del's Theorem.
We do Currying in J with the bond conjunction, written &, which attaches
one argument to a dyadic verb and returns a monadic verb. For example,
f=.+&2 NB. Tacit definition without argument variables; function
assignment
f 3
5
f 0 1 2 3 4
2 3 4 5 6
log=.10&^. NB. Common logarithm, base 10.
log 10 100 .001 2
1 2 _3 0.30103
> Cheers,
> Maria Droujkova
> 919-388-1721
>
> Make math your own, to make your own math
--
Technically, neither. In your expression, a and b are names of a sort that
we usually call variables. They behave like pronouns in human languages,
with the ability to change referent at the user's will, through formal
assignment in programming, or by changing the focus of one's attention in
human language. Names of this kind have values by definition, that is, by
assignment or intent.
Values are typically constants in some number system or structure, such as
a vector space or set theory.
Expressions, however, have values through a process of conversion between
equivalent expressions known as evaluation, following some set of rules.
Each programming language and each algebraic or other mathematical
structure defines a different set of rules for such conversions. We want
to be able to divide expressions into equivalence classes, where any
member of a class can be turned into any of the others using the rules
given, and where classes generally contain one expression in the form of a
value.
In very formal math, we can define addition by the rules
a+0=a
a+n= s(a+p(n))
where s is the successor function that gives us the next larger number,
and p is the predecessor function that gives us the next smaller number
but cannot be applied to 0. Or we can define addition using the definition
of binary circuitry, or in a multitude of other ways.
>>> Maria, this paragraph caught my attention because of the pedestrian
>>> interpretation of the first sentence. I believe that - systemwise -
>>> optimal
>>> conditions or results never happen in reality. There is always
>>> something
>>> that begs for improvement; somebody may puts their heart to promoting
>>> that;
>>> the society may start changing and the gradient is in the direction of
>>> betterment - for a while at least. Then the pendulum will have to go in
>>> another direction because some aspects of the adopted idea that was
>>> auspicious in one set of circumstance may become detrimental in
>>> another.
>>> This is especially true if the new idea is being taken as an universal
>>> truth.
Men of one idea, like a hen with one chick, and that a duckling.--Thoreau
A foolish consistency is the hobgoblin of little minds.--Emerson
>>> The context for my rant is the notion of peer-to-peer learning. I do
>>> believe that kids (at least most of the average kids) do better in
>>> groups,
>>> communicating with each other. This is just one possible interpretation
>>> of
>>> the "peer-to-peer" concept. Another would see kids in a group being
>>> more
>>> active in defining their learning priorities and then even further on
>>> picking up study materials and so on. I am a little apprehensive when -
>>> in
>>> the context of a discussion on the overhaul of the educational system
>>> the
>>> emphasis falls on the "peer-to-peer" concept. I do believe that
>>> teachers
>>> will have their role - albeit much different from what it is now - in
>>> any
>>> future establishment. It does not matter whether they will be called
>>> mentors
>>> or chaperons or anything else; there will have to be somebody
>>> professional
>>> whose responsibility will be to keep children engaged by at least
>>> helping
>>> them to find what is best suitable to their level, interests, and
>>> abilities.
There are endless varieties of collaboration to choose from. We have a
vast solution space available to us, but we do not yet know what the
questions are. The most important questions inherently do not have right
answers.
* Is this real?
* Why should you believe me?
* What is the most important thing to do next?
Children know without saying so that these are among the most important
questions, but adults tell them to ignore all that and focus on preparing
for the tests that determine rewards and punishments. See To Kill a
Mockingbird for the best exposition of these problems by a character just
entering first grade. Much of the best material was, of course, left out
of the movie, but there is still plenty left there.
(Did you recognize my questions as ontology, epistemology, and ethics? We
don't need to bother children with the two-dollar words when they already
know the reality, but we need to have words for talking among ourselves.)
>> Love your rant, Alex! It really helps me to clarify an aspect of the
>> "curriculum as a platform" idea in my mind. I would like to use fractal
>> as a
>> metaphor here.
>>
>> There are different users of the platform, with different roles at
>> different times. For each role, users connect with peers - for quality,
>> review, intellectual support, warm fuzzies and so on. Also, there are
>> more
>> advanced roles that are "special peers" - PI, project leader, moderator,
>> class organizer, teacher, and so on. Again, these helper figures, let's
>> call
>> them mentors for now, are matched to each role. So, for example, I can
>> be a
>> peer in a writer group designing a unit about functions, a mentor to a
>> student circle studying functions, and receive guidance from you,
>> playing
>> the role of a mentor in designing units.
>>
>> This model is fractal,
Particularly when you consider not just who talks with one child, but who
talks with whom throughout the global human network (and who doesn't get a
chance to).
When Kingman Brewster was President of Yale, he said that he was proud
that everybody at Yale was well-known to somebody who was well-known to
him (two degrees of separation). I am proud that I can make educational
presents for more than two million children every day, and that I am at
most five degrees from each and every one of them. I would like to reduce
that number. You have the opportunity to do the same.
There are children at the back of beyond or under hostile regimes such as
North Korea's who are much further away. We can provide them with
computers, electricity, and Internet connections for less than the cost of
printed books today, and bring them fully into our fractal network, so I
know of no reason not to go full steam ahead. Of course there are plenty
of excuses, starting with, "We've never done it that way." Well, duh, you
couldn't do it that way before! But that's just lame.
>> in that everybody can find peers, get help from a
>> mentor, and be a mentor to someone else. I can see different people
>> playing
>> these three roles in different amounts. Someone who plays the role of
>> mentor
>> to kid groups a whole lot, for example, can be a teacher in a very
>> traditional sense. Still, a teacher will have some amount of peer
>> support
>> and of mentor support, both for his or her own well-being and for the
>> quality assurance within the system.
Quite right.
>> Cheers,
>> Maria Droujkova
>> 919-388-1721
>>
>> Make math your own, to make your own math
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups
>> "MathFuture" group.
>> To post to this group, send email to mathf...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> mathfuture+...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/mathfuture?hl=en.
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "MathFuture" group.
> To post to this group, send email to mathf...@googlegroups.com.
> To unsubscribe from this group, send email to
> mathfuture+...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/mathfuture?hl=en.
>
>
Would it help to have software for easy calculation of determinants and
other algebraic functions? There are several packages that can do that. I
use J, Ken Iverson's last version of APL.
http://jsoftware.com/help/dictionary/d300.htm
"The phrases -/ . * and +/ . * are the determinant and permanent of square
matrix arguments. More generally, the phrase u . v is defined in terms of
a recursive expansion by minors along the first column, as discussed
below."
J also has vector inner product, matrix product, matrix inverse, least
squares, and other array functions as primitives.
Hiya - I am not entirely sure that this is a point in this conversation but I am wondering (a) whether anyone here has read LiPing Ma on Chinese vs. US Elementary school math education and (b) whether the differences discussed in this book is really a “procedural vs. functional” approach. (I have not yet read it.)
Background of comment: In the LinkedIn Group: Math, Math Education, Math Culture there is a discussion Teaching Integration as Anti-Differentiation or introducing students to Riemann Sums: pros/cons! Let's share some thoughts/ideas! I made a comment that to me everything in math is about making connections and that to me it was important to connect integration to geometry. (Formulation of this thought actually came from the Math2.0 event with Maria Terrell of Cornel U. which was great.) Anyway, my friend Rebecca Hanson asked if I too was reading LiPing Ma … I had never heard of this, but find both this and Rebecca’s blogs about applying it: http://mathseducationandallthat.blogspot.com/2011/05/how-do-chinese-do-it-introduction.html quite interesting.
Do we tend to teach mathematical recipes? Ask me – today I taught Horner’s Scheme a.k.a. synthetic division…. Seemed like a mathematical recipe to me. One kid asked me why we change the sign (i.e. if we are dividing by x-3, why do we use +3?) My lame answer was -“It’s like roots – what makes x-3=0”.
Not yet, but clearly I need to.
> (b)
> whether the differences discussed in this book is really a "procedural vs.
> functional" approach. (I have not yet read it.)
I took a brief look. So far what I have found is that Chinese teachers are
described as having a deeper and more confident conceptual understanding
of what they teach than US teachers, when both are teaching algorithms.
The issue in education is not about the distinction between procedural and
functional programming. Procedures use named variables, and proceed
step-by-step, changing their values until one is reached that represents
the final answer. Functional programming leaves values alone, and does not
change them. Programs in functional languages do not use named variables.
Neither has anything to do with primary-school paper-and-pencil algorithms
such as long division, or with abacus techniques, or calculators, or
anything other than computer programming.
Typical procedural languages include C, Python, and FORTH, while Haskell
is a fully functional language. LISP, APL/J, and Smalltalk can go either
way.
Both procedural and functional programming, however, are fully
algorithmic. There are also non-algorithmic logic programming languages,
such as Prolog.
A procedural definition of a mean or average function in J would be
mean1=. 3 : '(+/y)%#y'
where the functions used are
+/ sum of list
% division
# number of items
and y is the name of the argument.
The functional definition is
mean2=. +/ % #
J is now Free Software, so you can try this yourself.
> Background of comment: In the LinkedIn Group: Math, Math Education, Math
> Culture there is a discussion Teaching Integration as Anti-Differentiation
> or introducing students to Riemann Sums: pros/cons! Let's share some
> thoughts/ideas!
Check out Don Cohen, The Mathman, and his Calculus By and For Young People.
http://www.mathman.biz/
> <http://www.linkedin.com/e/-d07eb0-guzw0opo-55/vaq/79282846/33207/58152839/v
> iew_disc/?hs=false&tok=0W-b68ITsB1B01> I made a comment that to me
> everything in math is about making connections and that to me it was
> important to connect integration to geometry. (Formulation of this
> thought
> actually came from the Math2.0 event with Maria Terrell
> <http://mathfuture.wikispaces.com/GoodQuestions> of Cornel U. which was
> great.)
Curious. I don't know how to explain integration without geometry, since
it is defined as finding the area under a curve. What is this other
process?
I have an outline of the subject intended for preschoolers at
http://wiki.sugarlabs.org/go/Activities/TurtleArt/Tutorials/Kindergarten_Calculus
where I need to add in the illustrations.
> Anyway, my friend Rebecca Hanson asked if I too was reading LiPing
> Ma . I had never heard of this, but find both this and Rebecca's blogs
> about applying it:
> http://mathseducationandallthat.blogspot.com/2011/05/how-do-chinese-do-it-in
> troduction.html
> <http://www.linkedin.com/redirect?url=http%3A%2F%2Fmathseducationandallthat%
> 2Eblogspot%2Ecom%2F2011%2F05%2Fhow-do-chinese-do-it-introduction%2Ehtml&urlh
> ash=rw0v&_t=mbox_invm> quite interesting.
>
> Do we tend to teach mathematical recipes?
Sometimes, and indeed sometimes we must. Computation is not the main part
of math, but it is an essential part.
I am currently translating Ken Iverson's Algebra: An Algorithmic Treatment
from 1970's APL into Iverson's last programming language, J. In the
process, I am converting most of the procedural APL into functional J,
which Iverson called Tacit Programming. (I contributed to the design of
Tacit Programming in J in my paper Pure Functions in APL and J.)
> Ask me - today I taught Horner's Scheme a.k.a. synthetic division. Seemed
> like a mathematical recipe to me. One kid asked me why we change the sign
> (i.e. if we are dividing by x-3, why do we use +3?) My lame answer was
-"It's
> like roots - what makes x-3=0".
Why is that lame?
Iverson liked to point out the close connection between polynomials and
place value notation, and between the algorithms for each. For example,
evaluating the polynomial 5x�+3x+2 at 10 gives 532. The difference is that
we do not do borrows and carries in polynomial arithmetic.
<< snip >>
> Typical procedural languages include C, Python, and FORTH, while Haskell
> is a fully functional language. LISP, APL/J, and Smalltalk can go either
> way.
>
I've reached a tentative conclusion (in other threads) to accept OO
(an imperative form) as an analog for the theater.
Objects are actors, controlled by a script which gives them their cues.
We imagine humans have "internal state" (both mentally and physically
-- that's the grammar) and objects have state too, with varying levels
of privacy.
In Python, we even say objects have a self, and distinguish the
attributes of selfhood from the attributes of the species (type).
Yes, theater is an analog for life itself, obviously.
Functional programming, on the other hand, is loath to have state,
side effects, secrets, anything not out in the open and subject to the
rigors of proof.
That's fine. No one said it's either / or. Use any languages you
want, for whatever purpose.
I do not accept, though, that imitating theater is "wrong" or that
solutions should not be "worked out" (or "solved") in such a context.
OO goes with theater even more when you access a game engine
environment (aka a simulation or world model) populated with little
figurines (action figures, avatars, sims -- dolls in the doll house).
OO = object oriented, I should have said.
Kirby
1. Definitely I do not understand the difference between procedural vs. functional programming and I have to admit I did not understand the examples.
Do you not do any calculations or solve problems with functional programming? I program in Fortran, Pascal, JavaScript and Scratch. Are these all procedural languages?
2. I think I understand the idea of a named variable:
Given the problem: Coffee costs $2/kg. I had $5 before I bought coffee and now have $1. How much coffee did I buy?
People language: Let x= # kg of coffee I purchased. (BTW - I often wonder whether to write # and frequently just write kg ...)
People language: Then 1=5-x*2 [$]
Algorithm for solving linear equation in one unknown goes here..., i.e. procedural programming. Result: x=2.
People language: I bought 2 kg of coffee.
But I do not understand how this problem would translate into functional programming.
3. Re: Integration
You wrote: Curious. I don't know how to explain integration without geometry, since it is defined as finding the area under a curve. What is this other process?
Are you an engineer? To an engineer, the primary purpose of integration is to find the “area under the curve”. (See BELOW for other process.)
BTW: The discussion has now turned to geometrically explaining the Fundamental Theorem of Calculus (the relationship between indefinite and definite integrals).
My contribution is: http://www.screencast.com/t/4wRwjVI7lVh0
4. You wrote: I have an outline of the subject intended for preschoolers at http://wiki.sugarlabs.org/go/Activities/TurtleArt/Tutorials/Kindergarten_Calculus where I need to add in the illustrations.
Wow – can preschoolers understand this?
5. I wrote: "It's like roots - what makes x-3=0".
You wrote: Why is that lame?
I considered this a lame explanation – even though we have gone on extensively about the meaning of roots – because they do not really understand the relationship between roots and factoring.
(a) One needs to make sure they thoroughly understand that using Horner’s Scheme with a gives you the value of the polynomial p(x) at x=a, i.e. the last number out is actually p(a) by substituting by hand. (We did 2 quick examples.)
(b) One needs to make sure they thoroughly understand that if p(a)=0 then a is a root AND (x-a) is a factor. (No examples done.)
(c) I had just learned that they had NEVER done long division of polynomials (apparently it was cut from the program and no, I do not understand how they could do factoring in this program without this, but apparently they do).
(d) One needs for them to learn how to correctly write down the meaning of the numbers obtained by Horner’s Scheme (Without ever having done long division, it is a bit much for them to truly understand this, but indeed this was my goal.)
(e) One needs for them to validate the result written as p(x)/(x-a)=q(x)+p(a)/(x-a) by finding the LCD and multiplying out by hand and
(f) THEN one needs to rewrite this as p(x)=q(x)*(x-a)+p(a) and again emphasize “if a is a root, then (x-a) is a factor and vice-versa”.
I do like your example from Iverson polynomial = decimal example. That is cool!
=====
BELOW: The original question in the discussion was whether to start teaching integration with Riemann Sums or Anti-Derivatives (“area under the curve” was not suggested). Most of the original responses were that RS is the proper mathematical way to approach integration, i.e. Plan 1 below.
===Well – in my opinion and extensive experience - RS “fakes you out” that you are discussing area and geometry, but you really are not; you are doing a mathematical study – particularly if you lead with it.
In a typical program of study for first year engineering students everywhere I have lived (US and Eastern Europe), integration is taught in 2nd semester.
Plan 1: Start by explaining integration by drawing RS, doing the proofs that everything converges no matter the subdivisions, you use the squeegee[sic] theorem, … and then you stop. You define primitives (anti-derivatives) and prove the arbitrary constant thingee. Then you prove the Fundamental Theorem of Calculus again using fancy mathematical language.
Plan 2: Start by defining integration as anti-derivation.
Then you do indefinite integrals and depending on your program, you go on and on starting with formulas, then substitution, integration by parts, …. (We used to do 18 methods for solving symbolic integrals – I kid you not.)
Now – if you haven’t done RS, you do them now as above in plan 1. Then you go onto definite integrals (proper with substitution, integration by part; change of variables,… improper,….) Somewhere in the mist[sic] of this, you mention as an aside (or maybe draw a quickie picture) that the definite integral from a to b of a positive function is the area bounded by the curve on the top, the x-axis on the bottom and the two vertical lines x=a and x=b on the sides. (It is not mathematically correct to say “area under the curve”.) This fact is not mathematically interesting since functions that are “interesting” to integrate are hard to graph and calculating area requires at least a sketch and so you then dive into area between two curves, arc length and volume and surface area under rotation for all the different types of functions, but of course you must explain parametric functions, polar functions, changes between coordinate systems from scratch because in grades 5-12 these things are never mentioned. I should mention that by this point, spring has come and nobody gives a damn.
I taught this way to engineering students for probably 20 years (5 as a teaching assistant and 15 as a professor). Finally I noticed that the kids weren’t getting the main point of integration which is – as you state- “area under the curve”.
So now I baldly state: 1.Indefinite integrals=anti-derivatives. 2. Definite integrals=area under curve for a positive function (so be careful of your curve). 3.The relationship between these (1) and (2) is .... (FTC)
Three sentences and I can start showing them the power of integrals.
After doing some really basic indefinite integrals, my first problem is: Find the area of the triangle with vertices (0,0), (0,3),(2,0) using geometry and integration. More triangles, trapezoids and then other easy to graph functions.
Later we go to numeric integration RS/Trapezoid/Simpson and sometimes integration of Taylor polynomials. (I do think RS has a place here.)
Now we have some real math going that they can see and test and connect with stuff they already know.
> 1. Definitely I do not understand the difference between procedural vs. functional programming <snip>
Here is a MathPiper worksheet I just put together to help explain the
difference between these two styles of programming:
http://206.21.94.61/misc/permalink/procedural_vs_functional.html
> 2. I think I understand the idea of a named variable:
>
> Given the problem: Coffee costs $2/kg. I had $5 before I bought coffee and now have $1. How much coffee did I buy?
>
> People language: Let x= # kg of coffee I purchased. (BTW - I often wonder whether to write # and frequently just write kg ...)
>
> People language: Then 1=5-x*2 [$]
>
> Algorithm for solving linear equation in one unknown goes here..., i.e. procedural programming. Result: x=2.
>
> People language: I bought 2 kg of coffee.
>
> But I do not understand how this problem would translate into functional programming.
I think that maybe what was referred to as functional programming
earlier this thread may be better described as symbolic programming.
Here is a worksheet which has some examples of symbolic programming
that use the equation 1 = 5 - x*2:
file:///home/tkosan/temp2/symbolic_programming.html
Ted
--
You received this message because you are subscribed to the Google Groups "MathFuture" group.
To post to this group, send email to mathf...@googlegroups.com.
To unsubscribe from this group, send email to mathfuture+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mathfuture?hl=en.
> I think that maybe what was referred to as functional programming
> earlier this thread may be better described as symbolic programming.
> Here is a worksheet which has some examples of symbolic programming
> that use the equation 1 = 5 - x*2:
>
> file:///home/tkosan/temp2/symbolic_programming.html
Here is the correct link to the worksheet:
http://206.21.94.61/misc/permalink/symbolic_programming.html
Ted
The transition from a calculator to a full screen display is through
interactive console languages, such as Scheme, J, R, Python, Logo...
Smalltalk (a long list)
Mathematica, Mathcad, SAGE, Squeak, Pippy (Python for XO)... Geogebra.
All good examples of interactive environments.
Languages such as C, on the other hand, are not designed with an
interpreter in mind, but a compiler, which begets different behaviors.
The line between functional and object oriented programming might be
blurry sometimes, but the former prides itself on aiming towards
Apollonian provability.
The latter excepts that murky and surprising events may occur and
allows code to grow beyond the control of the coder.
That might be an over-simplification of course. Another promising
trajectory: object oriented languages are patterned on "the theater"
(agents with interiority -- state).
Kirby
My experience is that seemingly weak students have been put off learning
by bad teaching. Anybody who was capable of learning to speak a language
as a child is capable of programming. The question is, what went wrong?
What obstacle has been set up in the student's mind? Let me give you an
example.
I had a mentor with an advanced degree in music and the highest level of
Buddhist monastic training, who told me that she could not do algebra
because a teacher had told her that a variable is a number that can change
its value. Utter nonsense, and she knew that, but she did not know what to
do about it. I explained that there is no such thing as a variable; there
are only variable names that function like pronouns, referring to
different numbers at different times. Thus, "you" can maintain its
reference for the duration of a conversation, or in a group can point to a
different person every time you shift your attention, and similarly for
"x". She went off by herself for twenty minutes, and returned to say that
she could do it now.
Another metaphor for variables is putting an item in a labelled box or
file folder from which it can be retrieved (or copied) later. Turtle Art
does that.
One of the best accounts of bad teaching is Scout's account of her first
day in school, in To Kill a Mockingbird.
> Most of
> them will not be able to understand either way: x has no meaning and
> syntax of computer languages are not clicking. What I did find that works
> with them is step by step instructions of what to do (simulations with
> GeoGebra and sliders is very good) which later can be supplemented with
> "Good Questions". That way they start gaining Self confidence because
> they see results and with the good questions can reflect on it.
Quite right.
I wonder whether they would find Turtle Art helpful. Tony Forster and I
have been creating Turtle Art tutorials at every level from preschool to
Computer Science. You start by having the student be the turtle, trailing
a colored ribbon on the floor, and then drawing on paper. At every stage,
there is a clear connection between turtle commands and specific actions.
Also, using snap-together block programming, we bypass text and especially
syntax, and get straight to the real structure of what we are trying to
do.
http://wiki.sugarlabs.org/go/Activities/TurtleArt/Tutorials
> One can also create a kind of "math Theatre" scenario where they actually
> play the situation by examples (Linda's coffee example below is an idea
> situation and one can also create a simulation with programming
> (NLVM<http://nlvm.usu.edu/>does a lot of good stuff on this)
> Dr. Dani Novak
> Math Department
> Ithaca College, Ithaca NY 14850 USA
> no...@ithaca.edu
> http://faculty.ithaca.edu/novak/
> http://www.ithaca.edu/dani
--
You received this message because you are subscribed to the Google Groups "MathFuture" group.
To post to this group, send email to mathf...@googlegroups.com.
To unsubscribe from this group, send email to mathfuture+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/mathfuture?hl=en.
Interestingly, Smalltalk (one of the first object oriented languages) had a left arrow symbol for assignment " ← ". But, because it required a special key stroke in it's native IDE editior and was hard to recreate in other text editors, assignment has reverted to the two ascii symbols ":= ".Other languages use " <- " for assignment I think.Smalltalk's class library for collections (which other OOP languages copied) was derived from set theory.Darius
> Now here's an equation that has no algebraic solution but does have a
> procedural meaning: x = x+1. Algebraically, there is no value for which
> the statement is true.
--
Technically, neither. In your expression, a and b are names of a sort that
we usually call variables. They behave like pronouns in human languages,
with the ability to change referent at the user's will, through formal
assignment in programming, or by changing the focus of one's attention in
human language. Names of this kind have values by definition, that is, by
assignment or intent.
There are children at the back of beyond or under hostile regimes such as
North Korea's who are much further away. We can provide them with
computers, electricity, and Internet connections for less than the cost of
printed books today, and bring them fully into our fractal network, so I
know of no reason not to go full steam ahead. Of course there are plenty
of excuses, starting with, "We've never done it that way." Well, duh, you
couldn't do it that way before! But that's just lame.
I see that you have not been informed about the true depth of the North
Korean disaster. India, Bangladesh, Peru, Brazil, South Korea, these are
countries building their own computers for their schools. Niue in the
Pacific has recently decided that it cannot afford its satellite Internet
connection to the rest of the world, but it has a network on the island
itself.
North Korea has _no public Internet_ outside Pyongyang, and precious
little inside: One Internet cafe and a few hotels. There is no serious
thought given to feeding the country's children, much less giving them
computers in school. The only political question taken seriously is
maintaining the regime in existence through every totalitarian measure
known to man.
http://en.wikipedia.org/wiki/Internet_in_North_Korea
"North Korea is almost completely isolated from the rest of the world and,
while there is a public telephone network, there is no broadband data
network. Satellite Internet coverage from BGAN and Thuraya is available,
offering download speeds up to 492 kbit/s and upload speeds of 400 kbit/s;
however it would be extremely difficult to smuggle a satellite terminal
into the country. The one Internet cafe in Pyongyang uses a satellite
Internet connection, as do some of the more upmarket hotels.
"According to one report, as recently as 2009 many North Koreans had never
heard of the Internet, although a few of the government elite are
connected to the Internet via a link to China. Kim Jong-il himself is said
to love 'surfing the net'."
> Why be bothered if strong webified subcultures want their intranets
> behind firewalls, cut off from the outer world?
This does not in fact occur. Apart from North Korea, no country with the
slightest degree of technology has cut itself off from the Net in recent
years for any other reason than poverty. Not even Iran or Myanmar.
> Perhaps the denizens come and go freely, but while they're there,
> part of what they're there for is the excellent quality editing, the
> filtering of what goes to the LCDs.
Sorry, that doesn't mean anything to me. Denizens of what, or where? What
editing? Who do you think filters what goes to the LCDs, other than the
corrupt governments of the LCDs?
> They *want* to experience this kind of programming.
>
> That's why they'e here (like choosing a school, college or company).
Who? Where?
> Closer to home: keeping Havana free of fast food establishments
> is no less capitalist than theme parks like Disneyland, which don't
> allow KFC on Main Street (it'd spoil the atmosphere).
>
> Having Havana stay somewhat retro, yet with lots of electronic
> upgrades, is not a contradiction.
>
> You can leap frog the North Americans into a "slow food" resort
> island aesthetic that isn't run by crime bosses in Miami or New York
> (plenty of local control over local assets, with lots of tourists on
> student visas, coming over to engage in work-study).
>
> No need to repeat history -- couldn't if we wanted to, is much closer
> to the truth.
I don't understand what you wrote above well enough to be certain, but it
seems to me, Kirby, that you are confused.
> Kirby
At university we were suggested to subvocalize "is given" for any
assignment symbol. (Perhaps that's more socially polite than the
authoritative command of "assignments". :) )
One lesson I give to my 3rd to 5th graders is to open up the Grapher
application on the iMacs that we have, open up one or more of the 3D
examples, and let them edit the function by adding and subtracting the
variable names in the formula or adding or changing the constants to
see how it affects the shapes of the 3D models.
There is no "solution" or "solve for this shape or value" or right or
wrong. The functions just are what they are, and students take
ownership for what they create (.... um, except for the divide by
zeros, then its the computer's fault that they don't get something
meaningful ;-) ). And not too infrequently, the new 3D designs are
quite stunning.
One may just see monkeys hammering at the keyboards, but these
children still posses a sense of aesthetic we often miss or
undervalue.
My point in the lesson for the children is that mathematics is a
language that can describe something wonderful, and not to be afraid
of playing with (making visual jokes/metaphors?) in it. Even I myself
couldn't create those formulas from scratch. I'm an empirical "adapt
and change" kind of person, which matches my software programming
background.
- Darius
I see that you have not been informed about the true depth of the North
Korean disaster. India, Bangladesh, Peru, Brazil, South Korea, these are
countries building their own computers for their schools. Niue in the
Pacific has recently decided that it cannot afford its satellite Internet
connection to the rest of the world, but it has a network on the island
itself.
> behind firewalls, cut off from the outer world?
This does not in fact occur. Apart from North Korea, no country with the
slightest degree of technology has cut itself off from the Net in recent
years for any other reason than poverty. Not even Iran or Myanmar.
> Perhaps the denizens come and go freely, but while they're there,
> part of what they're there for is the excellent quality editing, the
> filtering of what goes to the LCDs.
Sorry, that doesn't mean anything to me. Denizens of what, or where? What
editing? Who do you think filters what goes to the LCDs, other than the
corrupt governments of the LCDs?
> They *want* to experience this kind of programming.
>
> That's why they'e here (like choosing a school, college or company).
Who? Where?
> Closer to home: keeping Havana free of fast food establishments
> is no less capitalist than theme parks like Disneyland, which don't
> allow KFC on Main Street (it'd spoil the atmosphere).
>
> Having Havana stay somewhat retro, yet with lots of electronic
> upgrades, is not a contradiction.
>
> You can leap frog the North Americans into a "slow food" resort
> island aesthetic that isn't run by crime bosses in Miami or New York
> (plenty of local control over local assets, with lots of tourists on
> student visas, coming over to engage in work-study).
>
> No need to repeat history -- couldn't if we wanted to, is much closer
> to the truth.
I don't understand what you wrote above well enough to be certain, but it
seems to me, Kirby, that you are confused.
> Yes, and in Python we call "=" the "assignment operator",At university we were suggested to subvocalize "is given" for any
> not to be confused with any assertion of equality, which
> is what "==" is for.
assignment symbol. (Perhaps that's more socially polite than the
authoritative command of "assignments". :) )
One lesson I give to my 3rd to 5th graders is to open up the Grapher
application on the iMacs that we have, open up one or more of the 3D
examples, and let them edit the function by adding and subtracting the
variable names in the formula or adding or changing the constants to
see how it affects the shapes of the 3D models.
There is no "solution" or "solve for this shape or value" or right or
wrong. The functions just are what they are, and students take
ownership for what they create (.... um, except for the divide by
zeros, then its the computer's fault that they don't get something
meaningful ;-) ). And not too infrequently, the new 3D designs are
quite stunning.
One may just see monkeys hammering at the keyboards, but these
children still posses a sense of aesthetic we often miss or
undervalue.
My point in the lesson for the children is that mathematics is a
language that can describe something wonderful, and not to be afraid
of playing with (making visual jokes/metaphors?) in it. Even I myself
couldn't create those formulas from scratch. I'm an empirical "adapt
and change" kind of person, which matches my software programming
background.
- Darius
Yes, I did exaggerate. I should have said that any college student who
learned to speak or use sign language as a child can learn to program. I
am aware of some of the disabilities that can prevent or at least
interfere with various kinds of learning, having worked with such children
in the past.
I am sorry to hear of your son's problem. Have you tried Cuisenaire rods?
I am wondering whether he has sufficient grounding in counting and
measuring with things, rather than names and symbols. Can he compare
lengths?
Also, I have done a bit of work with visual numerals. I wonder whether
these would make more sense to your son.
http://wiki.sugarlabs.org/go/Activities/TurtleArt/Tutorials/Numerals
I still maintain that your son can learn programming, even if not
mathematical programming. Would you be willing to try an experiment?
> *Julia Brodsky
> www.artofinquiry.net*
In the APL community the usual term is "gets". There are other terms in
other communities. In OOP, of course, one sends a message to an object,
and the object decides what to do with the message.
> I think these distinctions do matter. I agree with Hume that the psyche
> is not obliged to follow only "rational" rules.
>
> A lot of the resentment against "imperative programming" seems to
> arise precisely because "to command" is to be imperious and stern,
> whereas precocious young minds just want to wander freely.
>
> So you have a lot of these "I was a child prodigy" types excoriating
> the "imperative language" teachers, retroactively fighting back for
> their being "bossed around" so much when younger.
That's why I wrote a You Be the Turtle tutorial for Turtle Art. The
children get to command the teacher and each other, taking turns, so
nobody is the permanent boss. Then, of course, they get to tell the
computer, which never complains.
> That's all entirely irrational though, as "imperative programming"
> really has nothing to do with being a bully or dull teacher. The
> computer runs through pipelines of operations either way.
>
>
>
>> One lesson I give to my 3rd to 5th graders is to open up the Grapher
>> application on the iMacs that we have, open up one or more of the 3D
>> examples, and let them edit the function by adding and subtracting the
>> variable names in the formula or adding or changing the constants to
>> see how it affects the shapes of the 3D models.
Just so. This method has been discovered many times by researchers using
many different kinds of software. I have seen instances in Logo, LISP,
APL, Smalltalk, and several other languages, and in several kinds of math
software.
>> There is no "solution" or "solve for this shape or value" or right or
>> wrong. The functions just are what they are, and students take
>> ownership for what they create (.... um, except for the divide by
>> zeros, then its the computer's fault that they don't get something
>> meaningful ;-) ). And not too infrequently, the new 3D designs are
>> quite stunning.
>>
>
> Yes that's excellent and is what I do with VPython as well.
>
> Just staring at a blank canvas (empty page) with the expectation
> one should now program something is somewhat paralyzing at
> first. Recalling is such much harder than recognizing, as every
> language learning knows.
>
> We learn language from those who already speak it well.
With no presumption in the early days that we have to speak perfectly or
not at all.
The essential point in Seymour Papert's book, Mindstorms: Children,
Computers, and Powerful Ideas. What if we could structure a mathematical
culture so that children could pick up math language in exactly the way
they pick up everyday language. Or what if math language were part of
everyday language? Of course, the adults who were left out might not like
that.
> and not to be afraid
>> of playing with (making visual jokes/metaphors?) in it. Even I myself
>> couldn't create those formulas from scratch. I'm an empirical "adapt
>> and change" kind of person, which matches my software programming
>> background.
Shoulders of giants. Even the shoulders of midgets are worth something.
> It's like flying around in Google Earth and then plotting fictitious trips
> with a trip planner.
>
> Figure out how to get from the airport in Frankfurt to such and such a
> hotel.
>
> The topology of cities on a sphere, interconnected by transportation
> networks:
> some math classes let students explore that, uninhibited.
>
> It's not forbidden to spend hours looking at your Earth.
Or sky, or other planets...
> Kirby
>
>
>
>> - Darius
I find your disdain for the facts unbecoming. I was in South Korea in the
Peace Corps. We were labelled CIA agents in the North Korean press. The
assassination squad that tried to get President Park Chung Hee only
succeeded in killing a good friend of my best friend, and a few others who
happened to be on the same bus. There is more, much more. North Korea
really is the last stronghold of Stalinism. It really does have 18,000
artillery pieces (as best we can count) aimed at Seoul. It really does
systematically starve its people. Nothing that the US did or is accused of
doing during the Korean War (started by the North, btw) or since can
excuse this behavior. Nothing that the US has done in Korea can compare
with Japanese Imperial rule, which among other things outlawed the Korean
language in Korea.
You may be thinking of Venezuela or Bolivia, where elected governments
have been trying to come to grips with a hostile US and entrenched elites,
with limited success. Or the victims of the US War on Drugs in Mexico,
Colombia, and elsewhere. Or the death squads.
But where there is a problem, it is not simply the doing of the US. There
are coffee-growing countries in Latin America where the only coffee you
can get in a restaurant is Swiss Nescaf�. The UK, France, the Netherlands,
Spain, even Germany, Austria, and Italy, were far more nasty imperial
powers than the US, even counting the massacres in the Philippines and
shenanigans in Hawai'i. The baleful influence of those empires is still
felt around the world. However, the imperial powers in North Korea were
China, Japan, and the Soviet Union, long before the US got involved.
> I'm happy to see North Korea acquire Internet
This is why I say that you are confused. Not happening. Not going to
happen. North Korea is doing everything in its power not to get Internet.
Get lost. Go away. Fuggedaboudit.
> but I'd like to see it
> happen thanks to friendlier Asian entities closer to home (like South
> Korea, after bases closed).
China and South Korea would be happy to assist if asked, but they are in
fact ordered to butt out. US bases will not be closed even after Korean
reunification, just as in Germany.
> I don't trust anything Washington DC wants to do, pretty much on
> principle as its track record is too horrible to ever win my loyalty
> again in this lifetime.
Cynthia McKinney gave me that line when she was the Green Party candidate
for President. She wouldn't talk to me about One Laptop Per Child and
Sugar Labs because Nicholas Negroponte's brother is John "Death Squad"
Negroponte.
I have no time for people who will let the perfect be the enemy of the
good in this way. This is apparently fine with them, because they have no
time for me, or us, or any of our 2 million + children so far.
> Other American cities with more smarts and courage should
> develop their own relations with Pyongyang, just as Portland is
> working on relations with Havana and Unilever (Ben & Jerry's).
No chance. It is not a matter of courage. First, according to North Korean
policy, it would have to be a city with no Korean-speaking population,
native or foreign. Second, it would have to be in a non-capitalist
country. European Social Democracies, Gulf oil states, and even
run-of-the-mill impoverished African sort-of-democracies don't qualify,
either. That pretty much leaves Pakistan and Myanmar, which have
cooperated with North Korea on nuclear proliferation in the past, but not
on educating children.
> > Why be bothered if strong webified subcultures want their intranets
>
>> > behind firewalls, cut off from the outer world?
>>
>> This does not in fact occur. Apart from North Korea, no country with the
>> slightest degree of technology has cut itself off from the Net in recent
>> years for any other reason than poverty. Not even Iran or Myanmar.
>>
>>
> Hah, I wasn't thinking in terms of nation-states, which I consider part
> of the "old topology" (pre 21st century). More like corporations,
> which though they're connected, are not so accessible from the
> outside and may include lots of monitoring and restricted access
> from the inside.
No wonder I had no idea what you were talking about. Nothing to do with
North Korea.
> Americans like to kvetch about censorship but then commute to
> Big Brother shops that warehouse them in cube farms and monitor
> their browser activities, LOL.
I don't kvetch. I helped to write the book on getting around Internet
censorship, now available in Arabic, Chinese, Farsi, Russian, and Spanish.
There is no point in a Korean version yet, because they don't have to
censor the Net when nobody can get to it.
http://en.flossmanuals.net/bypassing-censorship/
>> > Perhaps the denizens come and go freely, but while they're there,
>> > part of what they're there for is the excellent quality editing, the
>> > filtering of what goes to the LCDs.
>>
>> Sorry, that doesn't mean anything to me. Denizens of what, or where?
>> What
>> editing? Who do you think filters what goes to the LCDs, other than the
>> corrupt governments of the LCDs?
>>
>>
> Like a Club Med or a resort casino complex, where everything you
> see is filtered. No outside media. More like Disneyland in that way.
>
> But you're not a prisoner. Leave if you like.
Oh, right. First World Problem.
>> > They *want* to experience this kind of programming.
>> >
>> > That's why they'e here (like choosing a school, college or company).
>>
>> Who? Where?
>>
>>
> Just talking about relatively insular / cliquish compounds, more like
> the Vatican for example. The Pope probably has to sign in with a
> password and authenticate, or if he doesn't it's because the workstation
> itself is like the Pope mobile: for his use in particular.
Again, totally irrelevant.
>> > Closer to home: keeping Havana free of fast food establishments
>> > is no less capitalist than theme parks like Disneyland, which don't
>> > allow KFC on Main Street (it'd spoil the atmosphere).
>> >
>> > Having Havana stay somewhat retro, yet with lots of electronic
>> > upgrades, is not a contradiction.
>> >
>> > You can leap frog the North Americans into a "slow food" resort
>> > island aesthetic that isn't run by crime bosses in Miami or New York
>> > (plenty of local control over local assets, with lots of tourists on
>> > student visas, coming over to engage in work-study).
>> >
>> > No need to repeat history -- couldn't if we wanted to, is much closer
>> > to the truth.
>>
>> I don't understand what you wrote above well enough to be certain, but
>> it seems to me, Kirby, that you are confused.
>>
>>
> I'm talking about a project I'm working on to help Havana preserve its
> characteristic culture when the ban is lifted on Americans traveling
> there. Some of the neighboring islands get press (favorable) because
> the usual fast food franchises have not invaded and it doesn't look
> like a Phoenix strip mall everywhere you look.
>
> How to keep Havana from being destroyed by KFC and McDonald's?
> Or Pyongyang come to think of it?
Not your problem. Their problem in Pyongyang is starvation, not
first-world problems like McDonald's. I am not impressed by people who
think that they know better than oppressed peoples what they need most. In
Buddhism, we call that trying to do other people's training. I work with
people who go to the countries concerned and ask what is most urgent.
> These may not be real questions for you, but if you think I'm confused
> about them then you're mistaken.
Yes, I'm sure you know about what you are working on, but we didn't, and
nothing you said about such issues is in any way relevant to North Korea.
The confusion on your part includes the fact that you expect us to know
what you are talking about when you provide us no clues.
> These are real questions confronting
> everyone dealing with globalization. The crassly commercial culture of
> the North Americans is not welcome everywhere, lets be clear. We
> certainly find it distasteful around here and are working to counter it
> as best we can.
I think I have a better way to do that, but you don't act interested in
hearing what I have to say about such things. Never mind. I'll talk to the
children.
You may think I shouldn't be assigned to working on this problem, understood.
Been to Korea too, best friends with an ambassador's son etc. Dunno
when again if ever.
Thanks for sharing some of your autobio. Mine is on Wikieducator.
>
> I think I have a better way to do that, but you don't act interested in
> hearing what I have to say about such things. Never mind. I'll talk to the
> children.
>
It's true I'm into andragogy these days.
Used to do more pedagogy, may again in future.
Kirby
PS: I'm somewhat pleased Bhutan (a former family home) doesn't allow
Peace Corps, hope it stays that way. WUSC is less problematic as a
model.
Please allow me to drop a short word on the matter.
When I was a student at Moscow State University back in the times of the
USSR, a Professor of the Mech-Mat Department, Yuri Petrovich Soloviev,
has told me the following story. He supervised a group of students from
North Korea. A few students from the group attended irregularly and
often skipped doing homework. Unable to improve the situation, Yuri
Petrovich wrote to the N. Korean embassy asking for a word of advice on
the matter. About a week later, the lazy students disappeared
completely. About a month later, Professor Soloviev got an official
letter from the embassy. It read along these lines, "Dear Comrade
Soloviev, we'd like to thank you for informing us about the heinous
crime students such and such have committed wasting people's money paid
for their education. We would further like to inform you that the
villains were withdrawn to their Motherland and properly executed."
Professor Soloviev was a very kind man. I cannot imagine the pain he
felt till his last day...
Internet in N. Korea? People who believe it's possible know very little
about the regime running the country.
Very Truly Yours,
Oleg Gleizer.
>> working on relations with Havana and Unilever (Ben& Jerry's).
Guys,
Please allow me to drop a short word on the matter.
When I was a student at Moscow State University back in the times of the USSR, a Professor of the Mech-Mat Department, Yuri Petrovich Soloviev, has told me the following story.
can get in a restaurant is Swiss Nescafé. The UK, France, the Netherlands,
--
You received this message because you are subscribed to the Google Groups "MathFuture" group.
To post to this group, send email to mathf...@googlegroups.com.
To unsubscribe from this group, send email to mathfuture+unsubscribe@googlegroups.com.
Спасибо,
Олег. (Меня
зовут
по-русскый
Эдуард
Георгиевич
Черлын.)
> When I was a student at Moscow State University back in the times of the
> USSR, a Professor of the Mech-Mat Department, Yuri Petrovich Soloviev,
> has told me the following story. He supervised a group of students from
> North Korea. A few students from the group attended irregularly and
> often skipped doing homework. Unable to improve the situation, Yuri
> Petrovich wrote to the N. Korean embassy asking for a word of advice on
> the matter. About a week later, the lazy students disappeared
> completely. About a month later, Professor Soloviev got an official
> letter from the embassy. It read along these lines, "Dear Comrade
> Soloviev, we'd like to thank you for informing us about the heinous
> crime students such and such have committed wasting people's money paid
> for their education. We would further like to inform you that the
> villains were withdrawn to their Motherland and properly executed."
Oy, veh iz mir! Or in Korean, 아이구!
Yes, that is North Korea: The executions will continue until morale improves.
> Professor Soloviev was a very kind man. I cannot imagine the pain he
> felt till his last day...
>
> Internet in N. Korea? People who believe it's possible know very little
> about the regime running the country.
Usually, I find, they do not want to know. There is a lot of that about,
not only in politics but sometimes even in mathematics, as witness Bishop
Berkeley vs. Newton, the "howls of the Boeotians" against Lobachevskii,
Gauss, Riemann, Bolyai, et al., Kronecker vs. Cantor, or "Jewish
mathematics" under the Third Reich.
> --
> You received this message because you are subscribed to the Google Groups
> "MathFuture" group.
> To post to this group, send email to mathf...@googlegroups.com.
> To unsubscribe from this group, send email to
> mathfuture+...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/mathfuture?hl=en.
>
>