That's cool.

lines would inspire protests from my comrades.

> I've been selling python, SAGE and the Litvin text to High School math and

> compsci teachers for some time too!

>

> I've been talking up python on the AP Calculus, AP Physics and AP CompSci

> listservs quite a lot actually. I also promote python on my blog!

>

> Regards,

> A. Jorge Garcia

> Applied Math & CS

> Baldwin SHS & Nassau CC

>

http://shadowfaxrant.blogspot.com>

http://www.youtube.com/calcpage2009> Sent from my iPod

>

> On Oct 9, 2010, at 8:33 PM, kirby urner <

[hidden email]> wrote:

>

>> Greetings edu-siggers --

>>

>> The appended thread is from the Math Forum and my role is somewhat

>> tangential i.e. I'm always the only one present quoting any Python.

>>

>> Complete thread in case anyone wants more context:

>>

http://www.mathforum.org/kb/thread.jspa?threadID=2154964&tstart=0>>

>> No one else in the world has the job of promoting Python to K-12 math

>> teachers so directly and publicly, except for the Litvins with their

>> ground-breaking MFTDA (Math for the Digital Age and Programming

>> in Python, Skylit publishing).

>>

>> Per my Grossology slides included in the presentation in Vilnius,

>> there's a recognized way to gain some bandwidth among multi-tasking

>> youth by including stuff that's "gross" or "demented" (see exhibit

>> below).

>>

>> Cartoons often exploit this technique, with adults as well. There's

>> a whole genre of cartoons considered "sick and twisted" (Bill Plympton

>> an example contributor). Portland, Oregon has many festivals

>> centering around such content.

>>

>> Such comedic material is apropos per the Monty Python genesis of

>> the name Python. I've often though of Python's subculture as TV-14

>> and above, meaning we're not trying to compete with the Alan Kays

>> of this world, or with Scratch (which is also fun for grownups, if given

>> permission by their peers).

>>

>> Python takes typing, is not a visual language, takes some lexical

>> sophistication. There's no reason to feature the same language at

>> all levels or in all circumstances, obviously.

>>

>> Anyway, nothing below is especially "sick and twisted" besides the

>> term "snake barf", which refers to the interpreter's coming back with

>> traceback error messages (raising exceptions) when uninterpretable

>> (inedible) expressions get offered.

>>

>> Thinking of the Python interpreter as this "creature" that responds

>> in a kind of "chat window" is not a bad way to go, given the name.

>>

>> You'll also see more of my "everything is a python in Python", a variant

>> on "everything is an object". The paradigm object, in having special

>> names (if only __init__ and __repr__), i.e. a "rack of __ribs__" is

>> somewhat snakelike in appearance.

>>

>> Relevant slides:

>>

>>

http://www.4dsolutions.net/presentations/connectingthedots.pdf>> (slides 11, 12 re "everything is a snake", 23, 24 re Grossology).

>>

>> Exhibit: "demented cartoon" (Ren and Stimpy, Aqua Teenage

>> Hunger Force, and Spongebob would be other examples).

>>

>>

http://www.youtube.com/watch?v=Li5nMsXg1Lk>>

>> Having such toons communicating more mathematical concepts,

>> including Python (as one of many machine executable math

>> languages, as Leibniz envisioned), would be a feature of Python.tv

>> (which Holden Web is keeping safe for when the time comes).

>>

>> Kirby

>>

>>

>> ========================

>>

>> Date: Oct 8, 2010 4:27 PM

>> Author: kirby urner

>> Subject: Re: Mathematician

>>

>> On Fri, Oct 8, 2010 at 11:36 AM, Jonathan Groves <

[hidden email]>

>> wrote:

>>>

>>> Mike and Wayne and others,

>>>

>>> I did look up what Johnson and Rising's book "Guidelines for Teaching

>>> Mathematics" (2nd edition) says about discovery learning, and the

>>> book says more about discovery learning than what I remembered.

>>> Here are some things the book does say about discovery learning.

>>> I will not list everything, but here are some of the big ideas I find

>>> that are worth mentioning.

>>

>> Like here's what I might call "discovery learning"...

>>

>> The teacher is projecting in front of the whole class, and enters the

>> sequence below. She doesn't necessarily talk a lot during the

>> demo, other than saying things like "lets see what this does",

>> "how about this?" i.e. noises associated with doing some inquiry.

>>

>> Students have the ability to follow along and then branch off

>> doing their own experiments. A time allotment is provided, say

>> 15 minutes, at the end of which students volunteer to come in

>> front of the room, take charge of the projector, and give up to

>> 5 minutes elucidation of what they've learned and/or think is

>> going on, for the benefit of the rest of the class.

>>

>> Here's the scroll (reading program), a real time demo in this

>> case (frozen here):

>>

>> Python 3.1rc1 (r31rc1:73069, May 31 2009, 08:57:10) [MSC v.1500 32 bit

>> (Intel)] on win32

>> Type "copyright", "credits" or "license()" for more information.

>>

>>>>> int

>>

>> <class 'int'>

>>

>>>>> int('3')

>>

>> 3

>>

>>>>> int('3', 2)

>>

>> Traceback (most recent call last):

>> File "<pyshell#2>", line 1, in <module>

>> int('3', 2)

>> ValueError: invalid literal for int() with base 2: '3'

>>

>>>>> int(3, 2)

>>

>> Traceback (most recent call last):

>> File "<pyshell#3>", line 1, in <module>

>> int(3, 2)

>> TypeError: int() can't convert non-string with explicit base

>>

>>>>> int('3', '2')

>>

>> Traceback (most recent call last):

>> File "<pyshell#4>", line 1, in <module>

>> int('3', '2')

>> TypeError: an integer is required

>>

>>>>> int('3', 10)

>>

>> 3

>>>>>

>>>>> int('3', 9)

>>

>> 3

>>

>>>>> int('3', 2)

>>

>> Traceback (most recent call last):

>> File "<pyshell#7>", line 1, in <module>

>> int('3', 2)

>> ValueError: invalid literal for int() with base 2: '3'

>>

>>>>> int('1000101010100', 2)

>>

>> 4436

>>

>> New topic. The teacher enters the following in an editor window,

>> saves to site-packages and then runs:

>>

>> def f(g):

>> def anon(x):

>> return g(x + 2)

>> return anon

>>

>> @f

>> def m(x): return 2 * x

>>

>> @f

>> def k(x): return x + 2

>>

>> print ( k(10) )

>>

>> print ( m(10) )

>>

>> Here is the output:

>>

>>>>> ================================ RESTART

>>>>> ================================

>>>>>

>> 14

>> 24

>>>>>

>>

>>

>> Students regularly give lightning talks in this classroom. These are

>> akin to "show and tell", which is a valuable institution at all levels.

>> The standard feature of a lightning talk is it's no more than five minutes

>> (points off for going over), but there's no requirement that it go for

>> that

>> long. Sometimes a student will come to the front of the room and

>> address the class for a much shorter period.

>>

>> Having students come to the front and take control of the projector

>> is a variation on a theme. In a standard Math Lab (does your school

>> have one?) any student has the ability to switch what's on her or

>> his workstation to the screen up front. The teacher may also have

>> this capability, along with mixing controls. A Math Lab session will

>> typically result in an output recording drawing from several workstations

>> and edited in post production. Sound may be added. The growing

>> database of clips is on the school intranet. Fractals alone might

>> account for quite a few gigabytes of storage, with student projects

>> aggregating. College admissions officers may be granted PIN

>> numbers to view student records, with student permission.

>>

>> Anyway, the question is whether projecting content, not explaining

>> everything, encouraging exploration, giving opportunities to elucidate,

>> followed by some teacher explication, is a 'discovery learning' workflow.

>> To the best of my knowledge, 'discovery learning' is not trademarked

>> and so it could well be, without anyone taking serious objection.

>> You may have noticed that the int function (above) wants you to say

>> what base your number object is in, at which point it returns a base 10

>> result. int('3', 2) was asking for something the int function can't do

>> (it's not about "converting" the decimal number '3' into base 2 here)

>> whereas something like int('FF', 16) or int('10101', 2) would be perfectly

>> OK, no "snake barf" for feedback (where Python spits back your

>> "animal argument" i.e. raises an exception).

>>

>> Remember "everything is a python in Python" meaning a creaturely

>> object (has behavior and internal state, a self / dictionary), potentially

>> with lotsa __ribs__ (special names) and therefore a spine -- like a

>> snake does.

>>

>> We use a lot of biological metaphors on purpose, given mega-trends in

>> physics teaching these days (math teachers are also welcome to use

>> this free technology, though we understand they're still mostly addicted

>> to calculators).

>>

>> The "decorator syntax" (@) is about taking a function definition and

>> sending it through a wringer of sorts, spitting out a new function of the

>> same name.** In this example, the input function is modified such

>> that its input argument will get bumped up by 2, before a function's

>> machinery is allowed to do its work.

>>

>> Kirby

>>

>> ** I can't help but think of 'Invasion' the TV science fiction soap opera,

>> wherein people were eaten by creatures in the Florida swamp, then

>> returned, almost themselves (but only almost):

>>

>>

http://www.imdb.com/title/tt0460651/>>

>> - -- if these were beginners, I'd do more on the history of the decorator

>> feature, starting with the idea of properties in classes.

>>

>>

>>>

>>> 1. Discovery learning is a difficult teaching method because it must

>>> be continually adapted to students' questions and comments and what

>>> progress they have made thus far. We cannot plan extensively for

>>> discovery learning just as we cannot plan extensively in advance for

>>> a discussion; we will not know how the discussion will go or where it

>>> will lead until we actually do it.

>>>

>>> 2. As I had mentioned earlier, discovery learning is not appropriate

>>> for all situations. One example they give here is trying to get

>>> students to discover a definition.

>>>

>>> 3. The idea of discovery learning is that it helps students find their

>>> own meaning in the mathematical concepts and their own connections of

>>> that concept with their previous knowledge and experiences. Previous

>>> experiences happen to be one reason why our thinking about a concept

>>> makes perfect sense to ourselves and other students but makes no sense

>>> to someone else; that baffled student might not have had those

>>> experiences

>>> to make that explanation meaningful to him or her.

>>>

>>> 4. Some ideas for prompting students to think more deeply (examples

>>> taken

>>> straight from this book):

>>>

>>> "Give me another example."

>>> "Do you believe that, Bill?"

>>> "How do you know that?"

>>> "Can anyone find a case for which John's rule does not work?"

>>> "That seems to work. Will it always?"

>>> "Have we forgotten any cases?"

>>>

>>> 5. The book points out some cautions to discovery learning (as quoted

>>> from

>>> the book):

>>>

>>> a. Be sure that the correct generalizations are the end result.

>>> b. Do not expect everybody to discover every generalization.

>>> c. Do not plan to discover all the ideas of your course. Discovery of

>>> some ideas is too inefficient. Sometimes students do not need an

>>> intuitive,

>>> emprical, discovery approach to understand an idea.

>>> d. Expect discoveries to take time.

>>> e. Do not expect the generalization to be verbalized as soon as it is

>>> discovered.

>>> f. Avoid overstructuring experiences.

>>> g. Avoid jumping to conclusions on the basis of too few samples.

>>> h. Do not be negative, critical, or unreceptive to unusual or off-beat

>>> questions or suggestions. However, incorrect responses must not be

>>> accepted as true; and disruptive, nonessential explorations must be

>>> eliminated. Students should know that their status is not threatened

>>> by incorrect answers.

>>> i. Keep the student aware of the progress he is making.

>>> j. If possible, have crucial ideas "discovered" repeatedly or by

>>> different methods.

>>> k. Finally, each student must recognize why his discoveries are

>>> significant

>>> and how the ideas are incorporated in the structure involved.

>>>

>>> 6. The book gives some examples of ideas that students can try to

>>> discover for themselves:

>>>

>>> a. The difference between the prime numbers 5 and 2 is 3. Why do no

>>> other prime numbers have this property? Here is a related one I have

>>> thought of: 3, 5, 7 are three consecutive odd natural numbers that are

>>> also prime numbers. Are there any other examples of three consecutive

>>> odd natural numbers where all three are prime numbers? If not, then

>>> why is this example the only one possible?

>>>

>>> b. What do we know about sums and products of odd integers?

>>>

>>> c. Why is 1.999....=2?

>>>

>>> d. What is the maximum number of pieces of pie if a round pie is

>>> divided by seven cuts?

>>>

>>> e. How are the slope and y-intercept of a line related to the equation

>>> of a line?

>>>

>>> f. How is the perimeter of a right triangle related to its area?

>>>

>>> g. What is the number of subsets of a finite set? (The book does not

>>> say "finite" but should.)

>>>

>>> h. How can the formulas for areas of geometric figures be related to the

>>> area of a rectangle?

>>>

>>> i. What equality properties apply to inequalities? For those that do

>>> not, can you find conditions for which these equality properties apply

>>> to inequalities?

>>>

>>> Here is one I thought of:

>>>

>>> j. Must we use the LCD to add or subtract fractions? Or will any

>>> common denominator work? If any common denominator works, can you

>>> see why? I like this one because I have seen many students who

>>> believe that adding or subtracting fractions using a common denominator

>>> besides the least common one is wrong simply because "that's not how

>>> I was taught to do that."

>>>

>>>

>>> A comment to Mike Dougherty: In some sense, asking students to discover

>>> the reasoning and logic behind mathematics is discovery teaching.

>>> Sometimes this term refers to getting students to discover ideas and

>>> the underlying logic for themselves such as discovering and proving

>>> a theorem, something similar to what a mathematician has to do when

>>> developing a theory. Other times it can refer to having students fill

>>> in the details of the reasoning after the teacher has presented the big

>>> ideas and some outline of the reasoning with the details omitted so that

>>> students can try to fill those in for themselves. In these cases, the

>>> student is not asked to discover theorems but is asked instead to

>>> discover the proofs of them. It is clear from the examples given above

>>> from the book I had cited that this book uses the word "discovery

>>> learning" or "discovery teaching" in both of these senses.

>>>

>>> I don't know if we explain too much, but I often question if we,

>>> including

>>> myself, explain too much too quickly before giving the students chances

>>> to think about and see these ideas for themselves. That is, if we

>>> explain

>>> too much up front, then we don't give students many chances to think for

>>> themselves. We also give students the impression that it is okay to

>>> take our word for it, especially permanently rather than just temporarily

>>> for convenience, even if they haven't the foggiest idea of why that is

>>> true.

>>> I don't see a problem with a student who wants to take our word for it

>>> for

>>> the time being, especially if they need to use that result immediately,

>>> if the student is willing to try later to see why that is true. Of

>>> course,

>>> if the proof of the result is beyond the scope of the course, then that

>>> is

>>> a completely different matter.

>>>

>>>

>>>

>>>

>>> Jonathan Groves

>>>

>>>

>>>

>>>

>>> On 10/8/2010 at 11:21 am, Michael Dougherty wrote:

>>>

>>>> To me, math is almost automatically "discovery

>>>> learning." Maybe all subjects are but I could argue

>>>> math is more so. It's just a matter of how much of

>>>> it you want them to discover on their own. If I

>>>> teach trigonometric substitution or partial fractions

>>>> decompositions, they will still have to "discover"

>>>> the logic of it as they go, even if I completely

>>>> explain the logic to them in my always brilliant

>>>> lectures. I suppose if I want to give these two

>>>> topics a month instead of a week (collectively), they

>>>> might be able to "discover" it from something closer

>>>> to first principles, but no matter how much I explain

>>>> things they still have to work the problems to

>>>> "discover" what works and what does not.

>>>>

>>>> As they say, give a man a fish and you feed him for a

>>>> day; teach him to fish and you feed him for a

>>>> lifetime.

>>>>

>>>> OK, but now they're asking us to let him discover for

>>>> himself how to fish, perhaps out of desperation?

>>>> He'll know some aspects of fishing better than if

>>>> f you teach him, but he'll miss out on a lot of

>>>> details you could have taught him. And a lot of time

>>>> will be consumed where it did not have to be.

>>>>

>>>> As he gets older, it's good if we can teach him how

>>>> to find the resources to "teach himself," but in the

>>>> beginning it's better to present a logical context

>>>> and let them work through it.

>>>>

>>>> But I submit it's still "discovery," that they will

>>>> make working through problems we give them. The rest

>>>> is arguing about what level we want them to start,

>>>> and how much guidance to give them. Also, how much

>>>> of it we want to be a group activity.

>>>>

>>>> So when I hear "discovery learning," I'm hearing that

>>>> they think we explain too much. In math, that's

>>>> almost impossible, if at some point you make them

>>>> work problems on their own.

>>>>

>>>> - --Mike D.

>>

>> _______________________________________________

>> Edu-sig mailing list

>>

[hidden email]
>>

http://mail.python.org/mailman/listinfo/edu-sig>