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 <[email protected]> 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 [email protected] http://mail.python.org/mailman/listinfo/edu-sig
