[Edu-sig] 'discovery learning' with Python...
kirby urner
kirby.urner at gmail.com
Sun Oct 10 04:08:21 CEST 2010
That's cool.
I was hoping my bold assertion of being almost alone on the front
lines would inspire protests from my comrades.
Kirby
On Sat, Oct 9, 2010 at 6:35 PM, Calcpage <calcpage at aol.com> wrote:
> 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 <kirby.urner at gmail.com> 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 <JGroves at kaplan.edu>
>> 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
>> Edu-sig at python.org
>> http://mail.python.org/mailman/listinfo/edu-sig
>
More information about the Edu-sig
mailing list