[Edu-sig] 'discovery learning' with Python...

Calcpage calcpage at aol.com
Sun Oct 10 03:35:44 CEST 2010


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