Algebra 2

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

Algebra 2

michel paul-2
In our 'more motivated' Alg 2 classes we use Paul Foerster's Algebra Trigonometry text.  I really like what he does, but it's clearly from another age.  He integrates programming into the curriculum, but it's all in BASIC.  Following is something I sent to my dept chair and colleagues that teach the same course.  So far, no responses.

Important point - they don't even pay any attention to these problems that involve BASIC.  They just ignore them.  However, I find it interesting that this is the text they consider the best for our 'more motivated' students.  It has really been fascinating looking at what Foerster did regarding the integration of programming into the curriculum.  So many of his examples could be written as one-liners in Python.

Last night was 'Back to School Night'.  That's when we put on a little 10-minute show about our course.  I attempted to explain to parents how computational thinking is changing how science thinks about the physical world, how this is creating brand new inter-disciplinary majors like computational biology, how CS is the new mathematics, that this Python stuff is not something on top of the Algebra, it IS Algebra.

Lots of great response.  That was good.  Definitely some got it.

But it's still so weird juggling world views. 

================================================

Problem 32, pg. 92:

Write a program to find the equation of a line between two points.  The input should be the two coordinates of the two points.  The output should be the equation in slope-intercept form.  The program should be able to handle cases where the slope is either zero or infinite.

Here's Foerster's suggested solution in BASIC.  I'm sure you can understand it.  Any competent math teacher should:

10 INPUT "TYPE X1, Y1"; X1, Y1
15 INPUT "TYPE X2, Y2"; X2, Y2
20 RI = Y2 - Y1
25 RU = X2 - X1
30 IF RI = 0 THEN 60
35 IF RU = 0 THEN 70
40 M = RI / RU
45 B = Y1 - M*X1
50 PRINT "Y = ";M;"X + ";B
55 GOTO 75
60 PRINT "Y = "; Y1
65 GOTO 75
70 PRINT "X = "; X1
75 END

Wow, that sure is old!  : )

Here's the same solution in Python:

x0, y0 = input('Enter x0, y0 --->')
x1, y1 = input('Enter x1, y1 --->')
rise = y1 - y0
run = x1 - x0
if rise == 0: print 'y =',  y0
elif run == 0: print 'x =',  x0
else:
    m = rise/run
    b = y0 - m*x0
    print 'y =', m, 'x +', b

You can see the same logic, but it's a bit shorter.  That's because there's no use of GOTO.  The elimination of GOTO was one of the important features in the development of PASCAL, and ever since those days GOTO has been considered bad style.  It produces crazy and cumbersome code.  Functional organization is far superior.

You can see that the Python version is just as easy to read, or easier, than the BASIC.  So, you can use Python in this simple procedural sort of way.  However,  Python supports various paradigms, so you can also organize things functionally:

def slope_intercept(A, B):
    x0, y0 = A
    x1, y1 = B
    rise, run = y1 - y0, x1 - x0
    if run == 0: return None, x0
    m = rise/run; b = y0 - m*x0
    return m, b

And even here, the code is longer than it needs to be.  You can cut it down to:

def slope_intercept(A, B):
    rise, run = A[1] - B[1], A[0] - B[0]
    if run == 0: return None, A[0]
    return rise/run, A[1] - rise/run*A[0]

And you can even cut it down more, but that's not the point.

This accomplishes the same thing as the original, just without printing the equations.  You would then call this function to obtain the values of m and b for printing, if that's what you wanted to do, or, you could chain this function together with other functions to construct something more complex.  It's what functional analysis is all about.  You consider I/O stuff decoration.  It's not the important part mathematically speaking. 

Functional decomposition of tasks ---> sure sounds like Analysis to me!  : )  Isn't it essentially the same kind of thinking?

_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

André Roberge
2008/10/3 michel paul <[hidden email]>:

[SNIP]


>
> Here's the same solution in Python:
>
> x0, y0 = input('Enter x0, y0 --->')
> x1, y1 = input('Enter x1, y1 --->')
> rise = y1 - y0
> run = x1 - x0
> if rise == 0: print 'y =',  y0
> elif run == 0: print 'x =',  x0
> else:
>     m = rise/run
>     b = y0 - m*x0
>     print 'y =', m, 'x +', b
>

I find that this (and even more so for the other solutions below) not
as readable as it should be.  For me, if/elif/else really gain from
being indented, and blank lines can also add to divide the program
into "functional unit".  So I would write instead:

x0, y0 = input('Enter x0, y0 ---> ')
x1, y1 = input('Enter x1, y1 ---> ')

rise = y1 - y0
run = x1 - x0

if rise == 0:
    print 'y =', y0
elif run == 0:
    print 'x =', x0
else:
    m = float(rise)/run   # avoid dividing two integers ...
    b = y0 - m*x0
    print "y = %f x + %f" % (m, b)

with perhaps some thoughts given to having a set number of decimal
places for the floats.

Just a thought...

André



> You can see the same logic, but it's a bit shorter.  That's because there's
> no use of GOTO.  The elimination of GOTO was one of the important features
> in the development of PASCAL, and ever since those days GOTO has been
> considered bad style.  It produces crazy and cumbersome code.  Functional
> organization is far superior.
>
> You can see that the Python version is just as easy to read, or easier, than
> the BASIC.  So, you can use Python in this simple procedural sort of way.
> However,  Python supports various paradigms, so you can also organize things
> functionally:
>
> def slope_intercept(A, B):
>     x0, y0 = A
>     x1, y1 = B
>     rise, run = y1 - y0, x1 - x0
>     if run == 0: return None, x0
>     m = rise/run; b = y0 - m*x0
>     return m, b
>
> And even here, the code is longer than it needs to be.  You can cut it down
> to:
>
> def slope_intercept(A, B):
>     rise, run = A[1] - B[1], A[0] - B[0]
>     if run == 0: return None, A[0]
>     return rise/run, A[1] - rise/run*A[0]
>
> And you can even cut it down more, but that's not the point.
>
> This accomplishes the same thing as the original, just without printing the
> equations.  You would then call this function to obtain the values of m and
> b for printing, if that's what you wanted to do, or, you could chain this
> function together with other functions to construct something more complex.
> It's what functional analysis is all about.  You consider I/O stuff
> decoration.  It's not the important part mathematically speaking.
>
> Functional decomposition of tasks ---> sure sounds like Analysis to me!  :
> )  Isn't it essentially the same kind of thinking?
> _______________________________________________
> Edu-sig mailing list
> [hidden email]
> http://mail.python.org/mailman/listinfo/edu-sig
>
>
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

Ivan Krstić-2
In reply to this post by michel paul-2
On Oct 3, 2008, at 9:22 PM, michel paul wrote:
> ever since those days GOTO has been considered bad style.  It  
> produces crazy and cumbersome code.

(This generalization is patently incorrect. *Bad* use of GOTO tends to  
create more spectacular problems in code organization than bad use of  
a number of other language features, which is why GOTO has earned its  
reputation. When used correctly, goto is almost a necessity for clean,  
understandable code in the face of certain flow complexities such as  
nested loops or multiple "fail, shared cleanup, return" situations  
within the same function.)

--
Ivan Krstić <[hidden email]> | http://radian.org

_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

michel paul-2
In reply to this post by André Roberge
m = float(rise)/run   # avoid dividing two integers ...
...
print "y = %f x + %f" % (m, b)

with perhaps some thoughts given to having a set number of decimal
places for the floats.

Certainly, these things makes sense, but given the strange mindset I'm trying to work in, a secondary math curriculum that is already skeptical about the relevance of programming in math classes in the first place, worrying about formatting issues would just further alienate both colleagues and students.  They want things to be as simple as possible, otherwise, they immediately lose interest.  So it's a tricky balance.  One detail too much, and it's overload for them.  As it is, the float vs. integer division issue will disappear with Python 3K, and I think that will be good for easier integration into math classes.

For math classes I think it's more pertinent to focus on functional interactions and not on IO issues, and that was what I was trying to get at.

What I have found fascinating is how similar students and teachers are.  You know how math students will ask, "How am I ever gonna USE this?"  Well, that's the same response I would initially receive from math colleagues when mentioning Python.  In both cases, the questioner seldom really wants an answer, they just want to express their disinterest.  But thankfully, this is changing.  My colleagues might still not be interested in pursuing it themselves, but at least at this point they realize that it isn't just BS.




On Fri, Oct 3, 2008 at 6:51 PM, Andre Roberge <[hidden email]> wrote:
2008/10/3 michel paul <[hidden email]>:

[SNIP]


>
> Here's the same solution in Python:
>
> x0, y0 = input('Enter x0, y0 --->')
> x1, y1 = input('Enter x1, y1 --->')
> rise = y1 - y0
> run = x1 - x0
> if rise == 0: print 'y =',  y0
> elif run == 0: print 'x =',  x0
> else:
>     m = rise/run
>     b = y0 - m*x0
>     print 'y =', m, 'x +', b
>

I find that this (and even more so for the other solutions below) not
as readable as it should be.  For me, if/elif/else really gain from
being indented, and blank lines can also add to divide the program
into "functional unit".  So I would write instead:

x0, y0 = input('Enter x0, y0 ---> ')
x1, y1 = input('Enter x1, y1 ---> ')

rise = y1 - y0
run = x1 - x0

if rise == 0:
   print 'y =', y0
elif run == 0:
   print 'x =', x0
else:
   m = float(rise)/run   # avoid dividing two integers ...
   b = y0 - m*x0
   print "y = %f x + %f" % (m, b)

with perhaps some thoughts given to having a set number of decimal
places for the floats.

Just a thought...

André



> You can see the same logic, but it's a bit shorter.  That's because there's
> no use of GOTO.  The elimination of GOTO was one of the important features
> in the development of PASCAL, and ever since those days GOTO has been
> considered bad style.  It produces crazy and cumbersome code.  Functional
> organization is far superior.
>
> You can see that the Python version is just as easy to read, or easier, than
> the BASIC.  So, you can use Python in this simple procedural sort of way.
> However,  Python supports various paradigms, so you can also organize things
> functionally:
>
> def slope_intercept(A, B):
>     x0, y0 = A
>     x1, y1 = B
>     rise, run = y1 - y0, x1 - x0
>     if run == 0: return None, x0
>     m = rise/run; b = y0 - m*x0
>     return m, b
>
> And even here, the code is longer than it needs to be.  You can cut it down
> to:
>
> def slope_intercept(A, B):
>     rise, run = A[1] - B[1], A[0] - B[0]
>     if run == 0: return None, A[0]
>     return rise/run, A[1] - rise/run*A[0]
>
> And you can even cut it down more, but that's not the point.
>
> This accomplishes the same thing as the original, just without printing the
> equations.  You would then call this function to obtain the values of m and
> b for printing, if that's what you wanted to do, or, you could chain this
> function together with other functions to construct something more complex.
> It's what functional analysis is all about.  You consider I/O stuff
> decoration.  It's not the important part mathematically speaking.
>
> Functional decomposition of tasks ---> sure sounds like Analysis to me!  :
> )  Isn't it essentially the same kind of thinking?
> _______________________________________________
> Edu-sig mailing list
> [hidden email]
> http://mail.python.org/mailman/listinfo/edu-sig
>
>


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

michel paul-2
In reply to this post by Ivan Krstić-2
Thanks, it's good to be clear about these things.  I hate perpetuating old myths.

I'd say that in the context of secondary math classes a good reason to use GOTO would probably never arise?  What I want to do is use programming in these classes in a way that resembles the algebra as much as possible.  As far as I can see, pretty much all of the old BASIC things that would appear in math texts using GOTO can be re-written and made more functional, pun intended.


On Fri, Oct 3, 2008 at 11:30 PM, Ivan Krstić <[hidden email]> wrote:
On Oct 3, 2008, at 9:22 PM, michel paul wrote:
ever since those days GOTO has been considered bad style.  It produces crazy and cumbersome code.

(This generalization is patently incorrect. *Bad* use of GOTO tends to create more spectacular problems in code organization than bad use of a number of other language features, which is why GOTO has earned its reputation. When used correctly, goto is almost a necessity for clean, understandable code in the face of certain flow complexities such as nested loops or multiple "fail, shared cleanup, return" situations within the same function.)

--
Ivan Krstić <[hidden email]> | http://radian.org



_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

David MacQuigg
In reply to this post by Ivan Krstić-2
The best discussion I have seen on the "Phony GOTO Debate", as Steve McConnell calls it, is in his book "Code Complete", 2nd ed. chapter 17 "Unusual Control Structures".  Without taking sides, he summarizes the arguments for and against, shows examples of really bad code, examples where GOTO is really beneficial, and a final summary of guidelines for using GOTO.

I would try to avoid the topic with beginning students, but if they have already been using BASIC, and have questions like - Where is the GOTO in Python, then it needs to be discussed in a balanced, non-dogmatic way.

This is a forum on education, so it is appropriate to discuss whether and how to present a topic like this, but I hope we don't try to rehash the original debate.  I doubt there is anything more to be said beyond what is in McConnell.

At 06:55 AM 10/4/2008 -0700, michel paul wrote:

>Thanks, it's good to be clear about these things.  I hate perpetuating old myths.
>
>I'd say that in the context of secondary math classes a good reason to use GOTO would probably never arise?  What I want to do is use programming in these classes in a way that resembles the algebra as much as possible.  As far as I can see, pretty much all of the old BASIC things that would appear in math texts using GOTO can be re-written and made more functional, pun intended.
>
>On Fri, Oct 3, 2008 at 11:30 PM, Ivan Krstiæ <<mailto:[hidden email]>[hidden email]> wrote:
>>On Oct 3, 2008, at 9:22 PM, michel paul wrote:
>>>ever since those days GOTO has been considered bad style.  It produces crazy and cumbersome code.
>>
>>(This generalization is patently incorrect. *Bad* use of GOTO tends to create more spectacular problems in code organization than bad use of a number of other language features, which is why GOTO has earned its reputation. When used correctly, goto is almost a necessity for clean, understandable code in the face of certain flow complexities such as nested loops or multiple "fail, shared cleanup, return" situations within the same function.)
>>
>>--
>>Ivan Krstiæ <<mailto:[hidden email]>[hidden email]> | http://radian.org


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

kirby urner-4
In reply to this post by michel paul-2
2008/10/4 michel paul <[hidden email]>
 

For math classes I think it's more pertinent to focus on functional interactions and not on IO issues, and that was what I was trying to get at.


I'm enjoying this thread.

My spin in Pythonic Math has been to suggest "dot notation" become accepted as math notation, and with it the concept of namespaces, which I tell my students is one of the most important mathematical concepts they'll ever learn.  We look at how several languages deal with the problem (of name collisions, of disambiguation), including Java's "reverse URL" strategy e.g. net.4dsolutions.mathobjects.vector or whatever.[1]

I tend to look at .py modules as "fish tanks" i.e. ecosystems, with both internal and external (import) dependencies, with the user of said fish tank being somewhat the biologist, in testing to find out what's in there, what the behaviors are. 

Starting with the math module is of course apropos, discussing the functions, not shying away from trig even pre high school, no reason to withhold about cosine just because they're "young" (this is actually a prime time to gain exposure to these useful and time-tested ideas).

Because of my "fish tank" idea, and using the math module as a model, I don't encourage "self prompting" i.e. using raw_input for much of anything.  We need to "feed the fish" directly, i.e. pass arguments directly to functions, with f ( ) looking like a creature with a mouth, ready to eat something.  fish( ).

Regarding GOTO, sometime last month I think it was, I told the story of assembler (JMP) and spaghetti code, Djikstra to the rescue, further developments.  It's through story telling that we get more of the nuance.  I'm a big believer in using this "time dimension" even if not doing anything computer (hard to imagine) i.e. the lives of mathematicians, their historical context, why they did what they did -- critical content, not side-bar dispensible, not optional reading.[2]

Metaphor:  education systems are like those old Heinlein moving sidewalks (science fiction), where you can't jump on the fast-moving one at the center from zero, have to slide from walk to walk, each one a little faster, and likewise when a approaching a destination, start to slow down. 

By including more content from geek world, getting more of a footprint for the circus I work in, I'm giving a sense of one of those fast moving sidewalks at the core of our infrastructure (coded reflexes, superhumanly fast business processes).  Math pre-college should be a door into all sorts of careers (starring roles) that include numerate activities.  It's not about Ivory Tower PhD mathematicians having exclusive access to future recruits, shoving the rest of us aside because our skills are "impure" (not pure math). 

What passes for "pure math" would be something to study in college, after getting a broad sampling ahead of time, good overview, the job of a pre-specializing curriculum.  In the meantime, if your school doesn't give a clear window into computer science in over four years of numeracy training, then hey, its probably a *very* slow moving sidewalk (more 1900s pedantic and plodding than fast paced like TV).[3]

Kirby

[1]  Like when I do the IEEE lecture on Nov 4 at the Armory (theater), I'll be talking about coxeter.4d versus einstein.4d versus bucky.4d -- three namespaces, named for thinkers, in which the concept of "four dimensional" makes sense -- but in quite different language games. (a)

[2]  I like telling the story of those Italian Renaissance era polynomial solvers, a proprietary model in which mathematicians were like race horses, gained owner-patrons who would stable them, let them work out, then they'd have like "cock fights" in the village square, to see how could solve whatever third of fourth degree polynomial fastest.  Without this kind of focus, polynomials wouldn't have the momentum they still have to this day, as a key math topic pre-college (and another kind of "math object" from a Pythonic math point of view).(b)

[3]  Marshall McLuhan wasn't just blowing smoke.  People who grow up on a lot of TV are geared differently and in the early 21st century a lot of what "school" is about is asserting the value system of a pre-TV era (pre computer, pre calculator...).  To "side with the kids" would be entirely subversive of traditional classroom thinking, would involve a lot more learning how to make televisions (multi-track) not just passively viewing it.  In my model numeracy classes, making "math shorts" (like on Sesame Street) and uploading 'em to YouTube, for peers to admire (peers thousands of miles away perhaps -- no problemo) is a big part of the action.


(a) FYI here's the bio of Kirby that went out to subscribers:

An IEEE Oregon Section event

"R. Buckminster Fuller: The History (and Mystery) of the Universe"

with exclusive presentation by local Buckminster scholar and consultant to the playwright, Kirby Urner Tuesday, November 4, 2008 on the Mezzanine at Portland Center Stage Gerding Theater at the Armory

128 NW Eleventh Avenue, Portland, OR 97209

Hors d'oeuvres Reception: 5:30 p.m.

Presentation and Discussion: 6:00 p.m.

Theater Performance: 7:30 p.m.

$49 per person. Tickets are limited.

Please register by October 14, 2008. For more information and to register go to <link here>.

We regret that we cannot offer refunds for cancellations received after October 14.

 

-----

R. Buckminster Fuller: The History (and Mystery) of the Universe

Written and directed by D.W. Jacobs from the life, work and writings of R. Buckminster Fuller

 

Play:

"Everything you've learned in school as 'obvious' becomes less and less obvious as you begin to study the universe." - Buckminster Fuller

Does humanity have the chance to endure successfully on planet Earth, and if so, how? This is the question framed by Buckminster Fuller, the engineer, designer, poet, and philosopher who, among other things, was Mensa's second president and invented the geodesic dome. Join us for an unforgettable journey inside one of the most remarkable minds of the 20th century in a one-man show that blends videos, lectures, poetry and a healthy dash of humanist humor. A hero of the sustainability movement, Bucky framed many of the great ideas of his time and ours. This is your chance to get to know the man behind the world-saving mission.

 

Presentation:

How has the literature developed since the publication of 'Grunch of Giants' in 1983 and what are likely outcomes and future directions projects Fuller started over a lifetime of heavy lifting?

 

Speaker:

Kirby Urner started exploring Fuller's work in earnest following his earning a BA in philosophy from Princeton University, while serving as a high school math teacher in Jersey City. He's served as a contributing editor for McGraw-Hill, Rockefeller Center, political activist for Project VOTE! in Washington DC, and computer programmer for myriad governmental and nonprofit organizations in Greater Portland. Working in cahoots with Kiyoshi Kuromiya, Fuller's lieutenant on a couple of key books, he snagged the domain name bfi.org and served as the Buckminster Fuller Institute's first web wrangler. His 'Synergetics on the Web' is one of the main stops for Bucky scholars to this day (<a href="outbind://83/www.grunch.net/synergetics">www.grunch.net/synergetics). Kirby is an IEEE member.


(b) yes, tell them early that we have no "closed form algebraic solution" to fifth degree polynomials, but that doesn't keep Python from being useful in implementing some of the progessive approximations for root-finding, such as you get under the hood with Mathematica et al.  I've got a prototypical Polynomial class out there somewhere that self solves pretty well, maybe others here do too.


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

Ivan Krstić-2
[Kirby, I find it very difficult to follow your messages; they tend to  
be long and meandering. I'm certain I'm not the only one. Please try  
to be more directly on-topic and succinct.]

On Oct 6, 2008, at 10:56 AM, kirby urner wrote:
> What passes for "pure math" would be something to study in college,  
> after getting a broad sampling ahead of time, good overview, the job  
> of a pre-specializing curriculum.


Speaking with no experience teaching mathematics, only learning it,  
this statement strikes me as sheer nonsense. It's like saying "what  
passes for painting would be something to study in college, after  
getting a broad sampling of brushes, stroke techniques and paint  
chemistry ahead of time, all without ever seeing an actual painting."

This isn't a discussion that's particularly on-topic for Python's edu-
sig, so I won't belabor it much. I share the views expressed at some  
length in Paul Lockhart's excellent "A mathematician's lament" (<http://radian.org/~krstic/LockhartsLament.pdf 
 >). In summary, if you don't show kids that mathematics is something  
beautiful, how are they supposed to have anything but bored disregard  
for the seemingly meaningless mechanics they're taught for 8 years  
before college? Fractions don't qualify as beauty. Many aspects of  
pure mathematics do.

--
Ivan Krstić <[hidden email]> | http://radian.org

_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

kirby urner-4


On Mon, Oct 6, 2008 at 1:28 PM, Ivan Krstić <[hidden email]> wrote:
[Kirby, I find it very difficult to follow your messages; they tend to be long and meandering. I'm certain I'm not the only one. Please try to be more directly on-topic and succinct.]


[ they have been lately, yes, though if you go back in the archive you'll find more succinct ones ]
 

On Oct 6, 2008, at 10:56 AM, kirby urner wrote:
What passes for "pure math" would be something to study in college, after getting a broad sampling ahead of time, good overview, the job of a pre-specializing curriculum.


Speaking with no experience teaching mathematics, only learning it, this statement strikes me as sheer nonsense. It's like saying "what passes for painting would be something to study in college, after getting a broad sampling of brushes, stroke techniques and paint chemistry ahead of time, all without ever seeing an actual painting."

More I'm saying mathematics has a long and proud history outside of Ivory Tower specialties, a johnny come lately invention, whereas Leibniz, to take an example, was what we'd today call a polymath.  Pre-college we do polymath, until you're old enough to make your own choices and maybe not get suckered by folks who talk a brave talk, but seem to dish out the same crufty / stale pablum year after year, left to their own devices, despite tremendous advances in the literature.
 


This isn't a discussion that's particularly on-topic for Python's edu-sig, so I won't belabor it much. I share the views expressed at some length in Paul Lockhart's excellent "A mathematician's lament" (<http://radian.org/~krstic/LockhartsLament.pdf>). In summary, if you don't show kids that mathematics is something beautiful, how are they supposed to have anything but bored disregard for the seemingly meaningless mechanics they're taught for 8 years before college? Fractions don't qualify as beauty. Many aspects of pure mathematics do.

Continued fractions do, especially:

IDLE 1.2.1     
>>> from __future__ import division
>>> 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1))))))
0.61904761904761907
>>> 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1))))))
0.61538461538461542
>>> 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1)))))))))
0.6179775280898876

[ much easier when you have color-coded parentheses checking, like in IDLE ]

Better in Akbar font.  We appear to be approaching something, from above and below.

Kirby

 


--
Ivan Krstić <[hidden email]> | http://radian.org



_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

michel paul-2
In reply to this post by kirby urner-4
My spin in Pythonic Math has been to suggest "dot notation" become accepted as math notation

I absolutely agree with this.

In about 5 weeks I'll be giving a California Math Council presentation that I titled Fractions are Objects, not Unfinished Division Problems.

I submitted the proposal with the attitude of 'who cares?  Let's just see what happens.'

Surprise!  They accepted.

OK, so now I have to have something to say.  : )

I think the theme of 'dot notation' as a kind of standard math notation would be valuable.

Generally, I want to present

1.  The importance of 'computational thinking' as a math standard
2.  Python as a vehicle for this

Thanks very much for any helpful suggestions along these lines.

- Michel

2008/10/6 kirby urner <[hidden email]>
2008/10/4 michel paul <[hidden email]>

 

For math classes I think it's more pertinent to focus on functional interactions and not on IO issues, and that was what I was trying to get at.


I'm enjoying this thread.

My spin in Pythonic Math has been to suggest "dot notation" become accepted as math notation, and with it the concept of namespaces, which I tell my students is one of the most important mathematical concepts they'll ever learn.  We look at how several languages deal with the problem (of name collisions, of disambiguation), including Java's "reverse URL" strategy e.g. net.4dsolutions.mathobjects.vector or whatever.[1]

I tend to look at .py modules as "fish tanks" i.e. ecosystems, with both internal and external (import) dependencies, with the user of said fish tank being somewhat the biologist, in testing to find out what's in there, what the behaviors are. 

Starting with the math module is of course apropos, discussing the functions, not shying away from trig even pre high school, no reason to withhold about cosine just because they're "young" (this is actually a prime time to gain exposure to these useful and time-tested ideas).

Because of my "fish tank" idea, and using the math module as a model, I don't encourage "self prompting" i.e. using raw_input for much of anything.  We need to "feed the fish" directly, i.e. pass arguments directly to functions, with f ( ) looking like a creature with a mouth, ready to eat something.  fish( ).

Regarding GOTO, sometime last month I think it was, I told the story of assembler (JMP) and spaghetti code, Djikstra to the rescue, further developments.  It's through story telling that we get more of the nuance.  I'm a big believer in using this "time dimension" even if not doing anything computer (hard to imagine) i.e. the lives of mathematicians, their historical context, why they did what they did -- critical content, not side-bar dispensible, not optional reading.[2]

Metaphor:  education systems are like those old Heinlein moving sidewalks (science fiction), where you can't jump on the fast-moving one at the center from zero, have to slide from walk to walk, each one a little faster, and likewise when a approaching a destination, start to slow down. 

By including more content from geek world, getting more of a footprint for the circus I work in, I'm giving a sense of one of those fast moving sidewalks at the core of our infrastructure (coded reflexes, superhumanly fast business processes).  Math pre-college should be a door into all sorts of careers (starring roles) that include numerate activities.  It's not about Ivory Tower PhD mathematicians having exclusive access to future recruits, shoving the rest of us aside because our skills are "impure" (not pure math). 

What passes for "pure math" would be something to study in college, after getting a broad sampling ahead of time, good overview, the job of a pre-specializing curriculum.  In the meantime, if your school doesn't give a clear window into computer science in over four years of numeracy training, then hey, its probably a *very* slow moving sidewalk (more 1900s pedantic and plodding than fast paced like TV).[3]

Kirby

[1]  Like when I do the IEEE lecture on Nov 4 at the Armory (theater), I'll be talking about coxeter.4d versus einstein.4d versus bucky.4d -- three namespaces, named for thinkers, in which the concept of "four dimensional" makes sense -- but in quite different language games. (a)

[2]  I like telling the story of those Italian Renaissance era polynomial solvers, a proprietary model in which mathematicians were like race horses, gained owner-patrons who would stable them, let them work out, then they'd have like "cock fights" in the village square, to see how could solve whatever third of fourth degree polynomial fastest.  Without this kind of focus, polynomials wouldn't have the momentum they still have to this day, as a key math topic pre-college (and another kind of "math object" from a Pythonic math point of view).(b)

[3]  Marshall McLuhan wasn't just blowing smoke.  People who grow up on a lot of TV are geared differently and in the early 21st century a lot of what "school" is about is asserting the value system of a pre-TV era (pre computer, pre calculator...).  To "side with the kids" would be entirely subversive of traditional classroom thinking, would involve a lot more learning how to make televisions (multi-track) not just passively viewing it.  In my model numeracy classes, making "math shorts" (like on Sesame Street) and uploading 'em to YouTube, for peers to admire (peers thousands of miles away perhaps -- no problemo) is a big part of the action.


(a) FYI here's the bio of Kirby that went out to subscribers:

An IEEE Oregon Section event

"R. Buckminster Fuller: The History (and Mystery) of the Universe"

with exclusive presentation by local Buckminster scholar and consultant to the playwright, Kirby Urner Tuesday, November 4, 2008 on the Mezzanine at Portland Center Stage Gerding Theater at the Armory

128 NW Eleventh Avenue, Portland, OR 97209

Hors d'oeuvres Reception: 5:30 p.m.

Presentation and Discussion: 6:00 p.m.

Theater Performance: 7:30 p.m.

$49 per person. Tickets are limited.

Please register by October 14, 2008. For more information and to register go to <link here>.

We regret that we cannot offer refunds for cancellations received after October 14.

 

-----

R. Buckminster Fuller: The History (and Mystery) of the Universe

Written and directed by D.W. Jacobs from the life, work and writings of R. Buckminster Fuller

 

Play:

"Everything you've learned in school as 'obvious' becomes less and less obvious as you begin to study the universe." - Buckminster Fuller

Does humanity have the chance to endure successfully on planet Earth, and if so, how? This is the question framed by Buckminster Fuller, the engineer, designer, poet, and philosopher who, among other things, was Mensa's second president and invented the geodesic dome. Join us for an unforgettable journey inside one of the most remarkable minds of the 20th century in a one-man show that blends videos, lectures, poetry and a healthy dash of humanist humor. A hero of the sustainability movement, Bucky framed many of the great ideas of his time and ours. This is your chance to get to know the man behind the world-saving mission.

 

Presentation:

How has the literature developed since the publication of 'Grunch of Giants' in 1983 and what are likely outcomes and future directions projects Fuller started over a lifetime of heavy lifting?

 

Speaker:

Kirby Urner started exploring Fuller's work in earnest following his earning a BA in philosophy from Princeton University, while serving as a high school math teacher in Jersey City. He's served as a contributing editor for McGraw-Hill, Rockefeller Center, political activist for Project VOTE! in Washington DC, and computer programmer for myriad governmental and nonprofit organizations in Greater Portland. Working in cahoots with Kiyoshi Kuromiya, Fuller's lieutenant on a couple of key books, he snagged the domain name bfi.org and served as the Buckminster Fuller Institute's first web wrangler. His 'Synergetics on the Web' is one of the main stops for Bucky scholars to this day (www.grunch.net/synergetics). Kirby is an IEEE member.


(b) yes, tell them early that we have no "closed form algebraic solution" to fifth degree polynomials, but that doesn't keep Python from being useful in implementing some of the progessive approximations for root-finding, such as you get under the hood with Mathematica et al.  I've got a prototypical Polynomial class out there somewhere that self solves pretty well, maybe others here do too.


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig



_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

kirby urner-4
In reply to this post by kirby urner-4


Continued fractions do, especially:

IDLE 1.2.1     
>>> from __future__ import division
>>> 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1))))))
0.61904761904761907
>>> 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1))))))
0.61538461538461542
>>> 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1)))))))))
0.6179775280898876

Just to extend here a bit, these generators are not computationally efficient; there's a much better way to do continued fractions, in terms of algorithms, Tim Peters showing me some ropes early on in this archive, Cut-the-Knot a pretty good website as I recall, plus several others...

However, sometimes computational efficiency isn't the point so much as conceptual transparency, and in this respect I think these two have pedagogical value:

In Python 3.x...

IDLE 3.0a2     
>>> from continued import *

>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'continued_1', 'continued_2']

>>> thegen = continued_2()  # less pathological

>>> for i in range(10):  print ( next ( thegen) )

1/(1 + 0)=1.0
1/(1 + 1/(1 + 0))=0.5
1/(1 + 1/(1 + 1/(1 + 0)))=0.666666666667
1/(1 + 1/(1 + 1/(1 + 1/(1 + 0))))=0.6
1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 0)))))=0.625
1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 0))))))=0.615384615385
1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 0)))))))=0.619047619048
1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 0))))))))=0.617647058824
1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 0)))))))))=0.618181818182
1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 0))))))))))=0.61797752809

>>> thegen = continued_1()  # the first thing I tried

>>> for i in range(10):  print ( next ( thegen) )

1/(1 + 0)=1.0
1/(1 + 1/(1 + 0))=0.5
1/(1 + 1/(1 + 1/(1 + 1/(1 + 0))))=0.6
1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 0))))))))=0.617647058824
1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 0))))))))))))))))=0.6180338134

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    for i in range(10):  print ( next ( thegen) )
  File "/home/kirby/continued.py", line 4, in continued_1
    yield expr % 0 + "=" + str (eval (expr % "0") )
MemoryError

>>>

def continued_1( ):
    expr = "1/(1 + %s)"
    while True:
        yield expr % 0 + "=" + str (eval (expr % "0") )
        expr = expr % expr # doubles in size, overflow quickly

def continued_2( ):
    expr = "1/(1 + %s)"
    while True:
        yield expr % 0 + "=" + str (eval (expr % "0") )
        expr = expr % "1/(1 + %s)" # more incremental, converges more slowly
       

Kirby
Princeton '80
(noticing krstic's harvard.edu)

PS:  for those not up on this abstruse topic, we're approaching 1/phi in the above examples where phi == (1 + math.sqrt( 5 ))/2
 

[ much easier when you have color-coded parentheses checking, like in IDLE ]

Better in Akbar font.  We appear to be approaching something, from above and below.

Kirby

 


--
Ivan Krstić <[hidden email]> | http://radian.org




_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

mdipierro
In reply to this post by michel paul-2
I agree with this

1.  The importance of 'computational thinking' as a math standard
2.  Python as a vehicle for this

But it is important to make a distinction:

a) a math formula represents a relation between objects and the objects math speaks about (with very few exceptions) do not have a finite representation, only an approximate representation (think of rational numbers, Hilbert spaces, etc.)
b) an algorithm represents a process on how to manipulate those objects and/or their approximate representation.

While math and math teaching could benefit from focusing more on process and computations (and there python can play an important role) rather than relations, it is important not to trivialize things. For example:

In math a fraction is an equivalence class containing an infinite number of couples (x,y) equivalent under (x,y)~(x',y') iff x*y' = y*x'.
Any element of the class can be described using, for example, a python tuple or other python object. The faction itself cannot.

It is important to not to loose sight of the distinctions. Math is gives us the ability to handle and tame the concept of infinite, something that computers have never been good at.

Massimo
________________________________________
From: edu-sig-bounces+mdipierro=[hidden email] [edu-sig-bounces+mdipierro=[hidden email]] On Behalf Of michel paul [[hidden email]]
Sent: Monday, October 06, 2008 10:09 PM
To: kirby urner
Cc: [hidden email]
Subject: Re: [Edu-sig] Algebra 2

My spin in Pythonic Math has been to suggest "dot notation" become accepted as math notation

I absolutely agree with this.

In about 5 weeks I'll be giving a California Math Council presentation that I titled Fractions are Objects, not Unfinished Division Problems.

I submitted the proposal with the attitude of 'who cares?  Let's just see what happens.'

Surprise!  They accepted.

OK, so now I have to have something to say.  : )

I think the theme of 'dot notation' as a kind of standard math notation would be valuable.

Generally, I want to present

1.  The importance of 'computational thinking' as a math standard
2.  Python as a vehicle for this

Thanks very much for any helpful suggestions along these lines.

- Michel

2008/10/6 kirby urner <[hidden email]<mailto:[hidden email]>>
2008/10/4 michel paul <[hidden email]<mailto:[hidden email]>>



For math classes I think it's more pertinent to focus on functional interactions and not on IO issues, and that was what I was trying to get at.


I'm enjoying this thread.

My spin in Pythonic Math has been to suggest "dot notation" become accepted as math notation, and with it the concept of namespaces, which I tell my students is one of the most important mathematical concepts they'll ever learn.  We look at how several languages deal with the problem (of name collisions, of disambiguation), including Java's "reverse URL" strategy e.g. net.4dsolutions.mathobjects.vector or whatever.[1]

I tend to look at .py modules as "fish tanks" i.e. ecosystems, with both internal and external (import) dependencies, with the user of said fish tank being somewhat the biologist, in testing to find out what's in there, what the behaviors are.

Starting with the math module is of course apropos, discussing the functions, not shying away from trig even pre high school, no reason to withhold about cosine just because they're "young" (this is actually a prime time to gain exposure to these useful and time-tested ideas).

Because of my "fish tank" idea, and using the math module as a model, I don't encourage "self prompting" i.e. using raw_input for much of anything.  We need to "feed the fish" directly, i.e. pass arguments directly to functions, with f ( ) looking like a creature with a mouth, ready to eat something.  fish( ).

Regarding GOTO, sometime last month I think it was, I told the story of assembler (JMP) and spaghetti code, Djikstra to the rescue, further developments.  It's through story telling that we get more of the nuance.  I'm a big believer in using this "time dimension" even if not doing anything computer (hard to imagine) i.e. the lives of mathematicians, their historical context, why they did what they did -- critical content, not side-bar dispensible, not optional reading.[2]

Metaphor:  education systems are like those old Heinlein moving sidewalks (science fiction), where you can't jump on the fast-moving one at the center from zero, have to slide from walk to walk, each one a little faster, and likewise when a approaching a destination, start to slow down.

By including more content from geek world, getting more of a footprint for the circus I work in, I'm giving a sense of one of those fast moving sidewalks at the core of our infrastructure (coded reflexes, superhumanly fast business processes).  Math pre-college should be a door into all sorts of careers (starring roles) that include numerate activities.  It's not about Ivory Tower PhD mathematicians having exclusive access to future recruits, shoving the rest of us aside because our skills are "impure" (not pure math).

What passes for "pure math" would be something to study in college, after getting a broad sampling ahead of time, good overview, the job of a pre-specializing curriculum.  In the meantime, if your school doesn't give a clear window into computer science in over four years of numeracy training, then hey, its probably a *very* slow moving sidewalk (more 1900s pedantic and plodding than fast paced like TV).[3]

Kirby

[1]  Like when I do the IEEE lecture on Nov 4 at the Armory (theater), I'll be talking about coxeter.4d versus einstein.4d versus bucky.4d -- three namespaces, named for thinkers, in which the concept of "four dimensional" makes sense -- but in quite different language games. (a)

[2]  I like telling the story of those Italian Renaissance era polynomial solvers, a proprietary model in which mathematicians were like race horses, gained owner-patrons who would stable them, let them work out, then they'd have like "cock fights" in the village square, to see how could solve whatever third of fourth degree polynomial fastest.  Without this kind of focus, polynomials wouldn't have the momentum they still have to this day, as a key math topic pre-college (and another kind of "math object" from a Pythonic math point of view).(b)

[3]  Marshall McLuhan wasn't just blowing smoke.  People who grow up on a lot of TV are geared differently and in the early 21st century a lot of what "school" is about is asserting the value system of a pre-TV era (pre computer, pre calculator...).  To "side with the kids" would be entirely subversive of traditional classroom thinking, would involve a lot more learning how to make televisions (multi-track) not just passively viewing it.  In my model numeracy classes, making "math shorts" (like on Sesame Street) and uploading 'em to YouTube, for peers to admire (peers thousands of miles away perhaps -- no problemo) is a big part of the action.


(a) FYI here's the bio of Kirby that went out to subscribers:


An IEEE Oregon Section event

"R. Buckminster Fuller: The History (and Mystery) of the Universe"

with exclusive presentation by local Buckminster scholar and consultant to the playwright, Kirby Urner Tuesday, November 4, 2008 on the Mezzanine at Portland Center Stage Gerding Theater at the Armory

128 NW Eleventh Avenue, Portland, OR 97209

Hors d'oeuvres Reception: 5:30 p.m.

Presentation and Discussion: 6:00 p.m.

Theater Performance: 7:30 p.m.

$49 per person. Tickets are limited.

Please register by October 14, 2008. For more information and to register go to <link here>.

We regret that we cannot offer refunds for cancellations received after October 14.



-----

R. Buckminster Fuller: The History (and Mystery) of the Universe

Written and directed by D.W. Jacobs from the life, work and writings of R. Buckminster Fuller



Play:

"Everything you've learned in school as 'obvious' becomes less and less obvious as you begin to study the universe." - Buckminster Fuller

Does humanity have the chance to endure successfully on planet Earth, and if so, how? This is the question framed by Buckminster Fuller, the engineer, designer, poet, and philosopher who, among other things, was Mensa's second president and invented the geodesic dome. Join us for an unforgettable journey inside one of the most remarkable minds of the 20th century in a one-man show that blends videos, lectures, poetry and a healthy dash of humanist humor. A hero of the sustainability movement, Bucky framed many of the great ideas of his time and ours. This is your chance to get to know the man behind the world-saving mission.



Presentation:

How has the literature developed since the publication of 'Grunch of Giants' in 1983 and what are likely outcomes and future directions projects Fuller started over a lifetime of heavy lifting?



Speaker:

Kirby Urner started exploring Fuller's work in earnest following his earning a BA in philosophy from Princeton University, while serving as a high school math teacher in Jersey City. He's served as a contributing editor for McGraw-Hill, Rockefeller Center, political activist for Project VOTE! in Washington DC, and computer programmer for myriad governmental and nonprofit organizations in Greater Portland. Working in cahoots with Kiyoshi Kuromiya, Fuller's lieutenant on a couple of key books, he snagged the domain name bfi.org<http://bfi.org> and served as the Buckminster Fuller Institute's first web wrangler. His 'Synergetics on the Web' is one of the main stops for Bucky scholars to this day (www.grunch.net/synergetics). Kirby is an IEEE member.

(b) yes, tell them early that we have no "closed form algebraic solution" to fifth degree polynomials, but that doesn't keep Python from being useful in implementing some of the progessive approximations for root-finding, such as you get under the hood with Mathematica et al.  I've got a prototypical Polynomial class out there somewhere that self solves pretty well, maybe others here do too.


_______________________________________________
Edu-sig mailing list
[hidden email]<mailto:[hidden email]>
http://mail.python.org/mailman/listinfo/edu-sig


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

kirby urner-4
On Mon, Oct 6, 2008 at 10:05 PM, DiPierro, Massimo
<[hidden email]> wrote:

>
> I agree with this
>
> 1.  The importance of 'computational thinking' as a math standard
> 2.  Python as a vehicle for this
>
> But it is important to make a distinction:
>
> a) a math formula represents a relation between objects and the objects math speaks about (with very few exceptions) do not have a finite representation, only an approximate representation (think of rational numbers, Hilbert spaces, etc.)
> b) an algorithm represents a process on how to manipulate those objects and/or their approximate representation.
>

There's a whole philosophy of mathematics, and of language more
generally, implicit in your (a) and (b), inheriting from both realism
(as in "the reality of Platonic objects") and nominalism (as in "nouns
point to things" -- with "pointing" considered entirely
non-problematic).

The linguistic turn (named by Rorty), launched by Nietzsche and
culminating in Wittgenstein's later works, is about undoing some of
these gestalts, returning us to a more operational view of how
language works in the world (or doesn't).

This is getting way off topic I'm sure some are thinking, and I agree,
so just lets admit we don't all come to mathematics from the same
perspective, and that this is as it should be.

> While math and math teaching could benefit from focusing more on process and computations (and there python can play an important role) rather than relations, it is important not to trivialize things. For example:
>
> In math a fraction is an equivalence class containing an infinite number of couples (x,y) equivalent under (x,y)~(x',y') iff x*y' = y*x'.
> Any element of the class can be described using, for example, a python tuple or other python object. The faction itself cannot.

The way I'd put it is the class Rat (rational number class) spells out
what fractions might do, in terms of __add__, __mul__ and so on, but
then there's no limit on the number of fraction objects you might want
to build from this blueprint, i.e. the type of object is distinct from
the instances, in a pleasing, teachable, lexical way.  At least as
relevant as Bertrand Russell's stuff if you ask me, this object
oriented paradigm.

And yes, no limit on the number of tuples that map to that tuple in
lowest terms, which is where gcd comes in, gotta teach that.  Pre
college algebra with no introduction to Euclid's Algorithm for the GCD
is laughably idiotic and I openly sneer at the idea when I think no
one is looking.

>
> It is important to not to loose sight of the distinctions. Math is gives us the ability to handle and tame the concept of infinite, something that computers have never been good at.
>
> Massimo

I like Knuth's take, lectures at MIT (audio on the web, maybe video
too as I recall), which is very into finitude.

Accepting finitude takes courage too.  I'm glad our computers are
harnessing it, leaving humans to their fantasies of greater greatness.

Kirby
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

Matt K-2
I'm changing pace slightly, after making 2 points:

(1) Dot notation does exist in Maths. Its just called "subscript" notation instead. But its the same thing. I try to make a habit of using subscripts (and sub-subscripts) as much as possible because it shows the same logical relationship.

(2) The fractions you show don't have beauty. In continued fractions, its recursion that has the mathematical beauty.

(3) A practical question - can any high/middle-school teachers give me clear pros/cons of using programming as a tool to teach algebra? I'm rewriting the Year 8 maths program for next year (13-14 year olds) and am considering trialling using Python. The students are the school are very tech-savvy and I wouldn't aim to teach them anything more than formulas really... formulas, basic IO and some ifs. Maybe (maybe) could do a basic for i in range(20) loop, but nothing more than that.

Note that I am the computing teacher in the school; the majority of my teaching is the computing studies subjects for older students (15-18 year olds).



On Tue, Oct 7, 2008 at 3:42 PM, kirby urner <[hidden email]> wrote:
On Mon, Oct 6, 2008 at 10:05 PM, DiPierro, Massimo
<[hidden email]> wrote:
>
> I agree with this
>
> 1.  The importance of 'computational thinking' as a math standard
> 2.  Python as a vehicle for this
>
> But it is important to make a distinction:
>
> a) a math formula represents a relation between objects and the objects math speaks about (with very few exceptions) do not have a finite representation, only an approximate representation (think of rational numbers, Hilbert spaces, etc.)
> b) an algorithm represents a process on how to manipulate those objects and/or their approximate representation.
>

There's a whole philosophy of mathematics, and of language more
generally, implicit in your (a) and (b), inheriting from both realism
(as in "the reality of Platonic objects") and nominalism (as in "nouns
point to things" -- with "pointing" considered entirely
non-problematic).

The linguistic turn (named by Rorty), launched by Nietzsche and
culminating in Wittgenstein's later works, is about undoing some of
these gestalts, returning us to a more operational view of how
language works in the world (or doesn't).

This is getting way off topic I'm sure some are thinking, and I agree,
so just lets admit we don't all come to mathematics from the same
perspective, and that this is as it should be.

> While math and math teaching could benefit from focusing more on process and computations (and there python can play an important role) rather than relations, it is important not to trivialize things. For example:
>
> In math a fraction is an equivalence class containing an infinite number of couples (x,y) equivalent under (x,y)~(x',y') iff x*y' = y*x'.
> Any element of the class can be described using, for example, a python tuple or other python object. The faction itself cannot.

The way I'd put it is the class Rat (rational number class) spells out
what fractions might do, in terms of __add__, __mul__ and so on, but
then there's no limit on the number of fraction objects you might want
to build from this blueprint, i.e. the type of object is distinct from
the instances, in a pleasing, teachable, lexical way.  At least as
relevant as Bertrand Russell's stuff if you ask me, this object
oriented paradigm.

And yes, no limit on the number of tuples that map to that tuple in
lowest terms, which is where gcd comes in, gotta teach that.  Pre
college algebra with no introduction to Euclid's Algorithm for the GCD
is laughably idiotic and I openly sneer at the idea when I think no
one is looking.

>
> It is important to not to loose sight of the distinctions. Math is gives us the ability to handle and tame the concept of infinite, something that computers have never been good at.
>
> Massimo

I like Knuth's take, lectures at MIT (audio on the web, maybe video
too as I recall), which is very into finitude.

Accepting finitude takes courage too.  I'm glad our computers are
harnessing it, leaving humans to their fantasies of greater greatness.

Kirby
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

Anna Ravenscroft


2008/10/7 Matt K <[hidden email]>

(3) A practical question - can any high/middle-school teachers give me clear pros/cons of using programming as a tool to teach algebra? I'm rewriting the Year 8 maths program for next year (13-14 year olds) and am considering trialling using Python. The students are the school are very tech-savvy and I wouldn't aim to teach them anything more than formulas really... formulas, basic IO and some ifs. Maybe (maybe) could do a basic for i in range(20) loop, but nothing more than that.

Not a teacher now, but...

My first experience programming was doing quadratic equations on punchcards. I loved it. It allowed me to learn much more about the equations than if I had to only do them by hand. (Note that I thought quadratic equations were pretty kewl and used to do them for fun while babysitting...) I still find myself turning to the computer to run an equation and see what it really does when the physical mechanics of doing it by hand isn't in the way...

Unfortunately, I was left with the impression that you could *only* do equations unless you went on to become a wizard. So there is a downside, imho, to teaching programming only as part of the math classes. I wish I'd had some in other classes (literature, for example) to help me realize I could use programming more widely.

(Hope this was coherent; still working on my first cuppa joe.)

--
cordially,
Anna
--
Walking through the water. Trying to get across.
Just like everybody else.

_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

Matt K-2
Anna, is what you describe programming (as in Python) or using graphing software (as in Maple/Matlab)? I am not certain which you are referring to by reading your email.

I think the difference is significant - the latter converts an equation to a graph, the former might show students the generalisation of an algorithm.

The downside you describe won't be an issue these days (at least in my school) - Python is so powerful that kids will start playing around with it out of my control - plus they always see what the kids who are older than them are doing.



On Wed, Oct 8, 2008 at 12:08 AM, Anna Ravenscroft <[hidden email]> wrote:


2008/10/7 Matt K <[hidden email]>

(3) A practical question - can any high/middle-school teachers give me clear pros/cons of using programming as a tool to teach algebra? I'm rewriting the Year 8 maths program for next year (13-14 year olds) and am considering trialling using Python. The students are the school are very tech-savvy and I wouldn't aim to teach them anything more than formulas really... formulas, basic IO and some ifs. Maybe (maybe) could do a basic for i in range(20) loop, but nothing more than that.

Not a teacher now, but...

My first experience programming was doing quadratic equations on punchcards. I loved it. It allowed me to learn much more about the equations than if I had to only do them by hand. (Note that I thought quadratic equations were pretty kewl and used to do them for fun while babysitting...) I still find myself turning to the computer to run an equation and see what it really does when the physical mechanics of doing it by hand isn't in the way...

Unfortunately, I was left with the impression that you could *only* do equations unless you went on to become a wizard. So there is a downside, imho, to teaching programming only as part of the math classes. I wish I'd had some in other classes (literature, for example) to help me realize I could use programming more widely.

(Hope this was coherent; still working on my first cuppa joe.)

--
cordially,
Anna
--
Walking through the water. Trying to get across.
Just like everybody else.


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

Anna Ravenscroft


On Tue, Oct 7, 2008 at 7:18 AM, Matt K <[hidden email]> wrote:
Anna, is what you describe programming (as in Python)

Back then it was basic. ;-)
 
or using graphing software (as in Maple/Matlab)?

Never used it.
 
I am not certain which you are referring to by reading your email.

Sorry - I thought the punchcards was pretty telling... ;-)

I think the difference is significant - the latter converts an equation to a graph, the former might show students the generalisation of an algorithm.

The downside you describe won't be an issue these days (at least in my school) - Python is so powerful that kids will start playing around with it out of my control - plus they always see what the kids who are older than them are doing.

Yep. It's nice to have a language you *can* do more than just equations with without it being painful.


--
cordially,
Anna
--
Walking through the water. Trying to get across.
Just like everybody else.

_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

kirby urner-4
In reply to this post by Matt K-2
2008/10/7 Matt K <[hidden email]>:
> I'm changing pace slightly, after making 2 points:
>
> (1) Dot notation does exist in Maths. Its just called "subscript" notation
> instead. But its the same thing. I try to make a habit of using subscripts
> (and sub-subscripts) as much as possible because it shows the same logical
> relationship.
>

Subscript in the sense of "dictionary key" more than "index into
sequence" as the former is more like __dict__ or __module__ (namespace
ideas), the latter more like a sequence wherein order matters
(namespaces are more cardinal than ordinal, more like dictionaries,
e.g. an arbitrary mix of Klingon and Chinese characters as subscripts,
no collation assumed).

> (2) The fractions you show don't have beauty. In continued fractions, its
> recursion that has the mathematical beauty.

I think rank and file math teachers over-hype this "beauty" business,
then hypocritically suppress fractals pre-college, even in the face of
obvious public demand and clear relevance to the complex plane, an IB
topic at least.  Why not just say "interesting" or even "cute".  In my
own curriculum writing, I try harder to be less disappointing to youth
e.g.

>
> (3) A practical question - can any high/middle-school teachers give me clear
> pros/cons of using programming as a tool to teach algebra? I'm rewriting the

I've taught high school math professionally (elite Catholic academy)...

Remember our gnu math curriculum aims at comprehension of RSA
pre-college (the public key thing).  We actually assign
'Cryptonomicon' as required reading in some electives.

So you need group theory, Fermat's Little Theorem (don't have to prove
it), Euler's (more general).  Not any of it in exhaustive detail of
course, just a first pass, opening doors, showing there's life after
calculus.

> Year 8 maths program for next year (13-14 year olds) and am considering
> trialling using Python. The students are the school are very tech-savvy and
> I wouldn't aim to teach them anything more than formulas really... formulas,
> basic IO and some ifs. Maybe (maybe) could do a basic for i in range(20)
> loop, but nothing more than that.

Lots of sequences to get going (polyhedral and figurate numbers
especially, per Oregon Curriculum Network web pages).

Generators useful.

OEIS is available to each student, for independent study.

Vectors require VPython.

>
> Note that I am the computing teacher in the school; the majority of my
> teaching is the computing studies subjects for older students (15-18 year
> olds).

I'm a math teacher for Saturday Academy, or was doing that recently
(lots of public write-ups).  More recently I've been developing a
Python Briefing for mature adults only, mostly teachers who already
know a thing or two about math and computer science, though rarely as
much as I do (grin).

Kirby
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

kirby urner-4
On Tue, Oct 7, 2008 at 9:52 AM, kirby urner <[hidden email]> wrote:

<< SNIP >>

> I think rank and file math teachers over-hype this "beauty" business,
> then hypocritically suppress fractals pre-college, even in the face of
> obvious public demand and clear relevance to the complex plane, an IB
> topic at least.  Why not just say "interesting" or even "cute".  In my
> own curriculum writing, I try harder to be less disappointing to youth
> e.g.

Sorry, missing link:

http://mybizmo.blogspot.com/2008/10/pythonic-math.html

Connects to Kraftwerk and some multi-lingual counting exercises,
important for getting into greek (tetra, penta, hexa...) and hence
Polyhedra, a starting point for our geometry curriculum (the purely
flat stuff comes later, as less intuitive).

Kirby
_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig
Reply | Threaded
Open this post in threaded view
|

Re: Algebra 2

Matt K-2
In reply to this post by Anna Ravenscroft
To Anna:
Thanks for the clarification. I can understand that punchcard *should* be clear to me - but to me I've never seen or used one in my life; I only hear of them in fairytales with abbucusses and dragons.

To Kirby:
You can always subscript with words instead of just letters! That enables you to have more meaning.
(more below)

To Kirby and Andrew:
I really like the idea but it sounds like you guys are talking at far far higher levels that I can achieve. The *stronger* students I'll be teaching, who *choose* to do an elective in computing, will come to properly understand loops only in about 2 years. I've tried to teach recursion to about 4 students while I've been a teacher, and only 2 have ever worked it out - and those students were exceptional. Things like classes are hidden from the students almost entirely until the final year, and even then they are only taught "as needed".

Which is why things like generators and classes for fractions are out. The syntax for that would just be too confusing. We're looking at the level of algebra with these kids where they have mostly learnt to add like terms and are perhaps beginning to factorise a simple common factor. Nothing like difference of two squares... just the beginnings. They'll start to do algebraic fractions and perhaps begin to appreciate the form y = mx + b.

But, it sounds like you've both done it with some success with significantly older (and smarter) students. I think you've motivated me to try it and see what happens!

To Andrew:
I wouldn't expect to see results in a test. Really, if they're trying to be good at tests, the *best* way to do it is by rote. But if we're teaching a deep understanding (which we of course are!) then this will perhaps help - although I wouldn't expect the results to be apparent for a while. A solid understanding of algerbra will really help them once they get into the graphing topic intensely, which is 2 years later.

Further thoughts are welcome of course!

Thanks heaps!
Matt


On Wed, Oct 8, 2008 at 2:36 AM, Anna Ravenscroft <[hidden email]> wrote:


On Tue, Oct 7, 2008 at 7:18 AM, Matt K <[hidden email]> wrote:
Anna, is what you describe programming (as in Python)

Back then it was basic. ;-)
 
or using graphing software (as in Maple/Matlab)?

Never used it.
 
I am not certain which you are referring to by reading your email.

Sorry - I thought the punchcards was pretty telling... ;-)

I think the difference is significant - the latter converts an equation to a graph, the former might show students the generalisation of an algorithm.

The downside you describe won't be an issue these days (at least in my school) - Python is so powerful that kids will start playing around with it out of my control - plus they always see what the kids who are older than them are doing.

Yep. It's nice to have a language you *can* do more than just equations with without it being painful.


--
cordially,
Anna
--
Walking through the water. Trying to get across.
Just like everybody else.


_______________________________________________
Edu-sig mailing list
[hidden email]
http://mail.python.org/mailman/listinfo/edu-sig