From kirby.urner at gmail.com Sat Sep 2 01:34:39 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 1 Sep 2006 16:34:39 -0700 Subject: [Edu-sig] More on Dead Languages Message-ID: So I was going over the M situation with Bernita this morning (a health care data tech I know), talking up the predicament at the VA (Veterans Administration), made known to me recently by UC Davis (an active MUMPS/M center). A short memorable form of my currently favorite strategy is "suMerian" i.e. intersect the computer field's challange to recruit dead language programmers with a problem already solved in Antiquities (one of the humanities): make "knowing a dead language" (one or more) a really cool attribute, a source of perks and kudos within the department. That *doesn't* mean you can't also speak the current vogue lingo, Ocaml or whatever. Specialize in two why not: one that's fresh on the scene and one that's relatively ancient, and yet still running some important machines. This, I think, is a far better solution that rewriting and rewriting working code, simply to "keep it in a language we understand or we'll never be able to debug it or enhance it." That *sounds* like a reasonable strategy until you look at the cost in human resources. "Hey, let's take a perfectly good operating system with this tiny glitch, and junk it for this other one, because we don't know any C anymore" -- that'd be the end of Linux right there, and just because it didn't have some new features we wanted. Nobody cared much for C anymore, now that GUIs were so easy, so now it all comes crashing down around us. What a stupid development that'd be. Like leaving the Planet to Eloi, with not a Morlock in sight. So here's my proposal: First, the one I've already made many times (and not just on this list): that CS0 intro/survey courses be whiz bang and more fun, more of a three ring circus, with lots of concepts coming and going, giving candidate majors some dizzying experience of the wide-open field in front of them, if they only apply themselves within our discipline. Second, steal unashamedly from the humanities if there's already an easy fix, in our case a failure to produce enough staff with the right skills to satisfy academia, industry, government and the media (who did I leave out? just consider healthcare and entertainment as industries, religion as all or none of the above). What that looks like in practice might be frontloading with an "easy" language such as Python (you've gotta admit, it's really clean OO), then putting some forks in the road, one going to Java, but another going directly to C, into the guts of our favorite snake. Then bridge to C# by dissecting the same snake yet again. In Java, maybe go with Jython and look at some of that source code. What all these roads have in common: we're getting that an agile language on the surface, is likely a system language under the hood. Something faster to run, but slower to write, now supports something faster to write, but slower to run. Since runtime is plenty fast, we go for the fast writing. But slow writing is still a very much needed skill, IF you're going to go higher on the computer science ladder. I was explaining to Barry and pbd on Barry's boat yesterday about Knuth and his invented software/hardware for encoding the algorithms. A passage of taut and sometimes funny prose, telegraphs to our minds, but then the stupid machine has to be taught, and that takes a funny language. Knuth supplies one that's appropriately low level to keep us living in hardware, just above the metal. That's not a level we're supposed to let go of. We've got to keep a lot of focus there. And so computer science needs that "nose dive" possibility, that after CS0/CS1 a complement of courageous code jockeys will "head for the basement" to study the inner gearworks. Mostly others will do the puppets and animations I mostly write about, given that's what I know best. But that doesn't mean I'm unaware of my peers, and their admirable skills. Assembler language is not really my bag unlike with Barry, a banker, who makes money off it (on code he wrote himself mind you, inside of some kind of power boat dimmer switch). I've never had to, even though I studied it in college, and later in those Peter Norton books. I do make money with Python though, though not yet as much as with Visual FoxPro. Kirby Portland Knowledge Lab Portland "open source capital" Oregon From kirby.urner at gmail.com Mon Sep 4 05:31:55 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 3 Sep 2006 20:31:55 -0700 Subject: [Edu-sig] Ramanujan's Pi (an exercise with generator & decimal features) Message-ID: So here I'm using Python's new extended precision decimal type with one of Ramanujan's crazy pi engines: http://people.bath.ac.uk/ma2lg/project/ramanuja.htm I also used another generator I wrote earlier to get root8 to a lot of digits. Here: http://www.4dsolutions.net/ocn/python/roots.py Factorial -- fact(n) -- is implemented back stage (easily done). As you can see, Python does a great job getting a lot of digits. ======================================================= from __future__ import division from decimal import * getcontext().prec = 100 # setting high precision standard! def pieinsky(): c1 = Decimal(4) c2 = Decimal(1103) c3 = Decimal(26390) c4 = Decimal(396) c5 = Decimal(9801) # code formatted for readability (make it be one line) root8 = Decimal('2.82842712474619009760337744841939615 7139343750753896146353359475981464956 9242140777007750686552831454700276') i = Decimal(0) thesum = Decimal(0) while True: term = (fact(c1*i)*(c2 + c3*i))/(pow(fact(i),4)*pow(c4,4*i)) thesum = thesum + term yield 1/((root8/c5)*thesum) i += 1 >>> pigen = pieinsky() >>> pigen.next() Decimal("3.1415927300133056603139961890252155185995816071100335596565362901= 28551455441321642740854085209704228") >>> pigen.next() Decimal("3.1415926535897938779989058263060130942166450293228488791739637915= 05784400648511674693278393849439482") >>> pigen.next() Decimal("3.1415926535897932384626490657027588981566774804623347811683995956= 44739794558841580205059234965983146") >>> pigen.next() Decimal("3.1415926535897932384626433832795552731599742104203799112167038960= 06945787942847069061241208907980917") >>> pigen.next() Decimal("3.1415926535897932384626433832795028841976638181330306239761655909= 98553105507509100070309837894567968") >>> pigen.next() Decimal("3.1415926535897932384626433832795028841971693993798468327435125072= 81953256921043725789395219809199167") >>> pigen.next() Decimal("3.1415926535897932384626433832795028841971693993751058210209332424= 69729074078272131764032273329551022") >>> pigen.next() Decimal("3.1415926535897932384626433832795028841971693993751058209749445927= 57814327091194665469239192568221775") >>> pigen.next() Decimal("3.1415926535897932384626433832795028841971693993751058209749445923= 07816410719485095770076209900585536") >>> pigen.next() Decimal("3.1415926535897932384626433832795028841971693993751058209749445923= 07816406286209042542808018278896595") >>> pigen.next() Decimal("3.1415926535897932384626433832795028841971693993751058209749445923= 07816406286208998628035262302197974") >>> pigen.next() Decimal("3.1415926535897932384626433832795028841971693993751058209749445923= 07816406286208998628034825342121433") >>> pigen.next() Decimal("3.1415926535897932384626433832795028841971693993751058209749445923= 07816406286208998628034825342117070") Stops changing at this point -- limit reached. It's correct to last two digits, per http://www.mathwithmrherte.com/pi_digits.htm Kirby From andre.roberge at gmail.com Mon Sep 4 05:47:01 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Mon, 4 Sep 2006 00:47:01 -0300 Subject: [Edu-sig] Fwd: [Rur-ple-devel] Crunchy screencast In-Reply-To: <20060904013924.GB18717@tamarapatino.org> References: <20060904013924.GB18717@tamarapatino.org> Message-ID: <7528bcdd0609032047w4d4109f3n385db2213316770a@mail.gmail.com> Demo ... for those interested.... Andr? ---------- Forwarded message ---------- From: Igor TAmara Date: Sep 3, 2006 10:39 PM Subject: [Rur-ple-devel] Crunchy screencast To: rur-ple-devel at lists.sourceforge.net Hi, I just made a screencast showing a couple of things that can be done with crunchy, don't hesitate to use it or put it on screenshots, maybe the people interested can take a look :) http://igor.tamarapatino.org/recursos/scrvideo/democrunchy.html Thanks for such inspiring work, crunchy rocks. From kirby.urner at gmail.com Mon Sep 4 07:06:14 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 3 Sep 2006 22:06:14 -0700 Subject: [Edu-sig] Fwd: [Rur-ple-devel] Crunchy screencast In-Reply-To: <7528bcdd0609032047w4d4109f3n385db2213316770a@mail.gmail.com> References: <20060904013924.GB18717@tamarapatino.org> <7528bcdd0609032047w4d4109f3n385db2213316770a@mail.gmail.com> Message-ID: On 9/3/06, Andre Roberge wrote: > Demo ... for those interested.... > Andr? Way cool. Kinda frenetic seeming at first but I watched it twice and got more the 2nd time. Very impressive. Not sure what library is driving the graphics here, on the canvas object. I should do some more homework. Kirby From johannes.wollard at gmail.com Mon Sep 4 14:42:41 2006 From: johannes.wollard at gmail.com (Johannes Woolard) Date: Mon, 4 Sep 2006 13:42:41 +0100 Subject: [Edu-sig] Fwd: [Rur-ple-devel] Crunchy screencast In-Reply-To: References: <20060904013924.GB18717@tamarapatino.org> <7528bcdd0609032047w4d4109f3n385db2213316770a@mail.gmail.com> Message-ID: <10c99c2a0609040542m4c797888g7c4897fceb2aae1@mail.gmail.com> > > Demo ... for those interested.... > > Andr? > Nice! > Way cool. Kinda frenetic seeming at first but I watched it twice and > got more the 2nd time. Very impressive. Thanks, crunchy really can do some amazing stuff! > Not sure what library is driving the graphics here, on the canvas > object. I should do some more homework. > It's actually a homebrew solution using python to generate javascript which is then sent to the browser to be executed and display the graphics in a canvas element. > Kirby Amazingly the only external dependency of crunchy (other than Python and Firefox) is ElementTree. Johannes -- Johannes Woolard, Entz Rep, Oriel College, Oxford mobile: +44 7837 880296 From andre.roberge at gmail.com Tue Sep 5 02:45:11 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Mon, 4 Sep 2006 21:45:11 -0300 Subject: [Edu-sig] The fate of raw_input() in Python 3000 Message-ID: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> The following is something I have been pondering for quite a while now and am wondering what other people on this list think. According to PEP 3100 (http://www.python.org/dev/peps/pep-3100/ ) raw_input() [as well as input()] is recommended for removal from the built-in namespace, to be replaced by sys.stdin.readline(). While I don't think anyone can argue that this removal makes a major difference for Python as a programming language, I believe it makes a significant difference for using Python as a learning language, adding a non-trivial barrier to learning. Consider the following fake sessions at the interpreter prompt, where I use extra parentheses to turn print as a function (as is also proposed in Python 3000) - these parentheses can of course be used with today's Python. # First ever program >>> print("Hello world!") Hello world! # More complicated example from the first interactive session using today's version >>> name = raw_input("Enter your name: ") Enter your name: Andre >>> print("Hello " + name + "!") Hello Andre! # More or less the same example using the proposed changes. >>> import sys >>> print("Enter your name: ") Enter your name: >>> name = sys.stdin.readline() <-- Andre >>> print("Hello " + name + "!") Hello Andre! To explain the above *simple* program to a beginner, we'd need: 1. to introduce the import statement 2. to introduce the dot notation (something Kirby would be happy with ;-) Furthermore, the flow is not the same as with today's raw_input(). I don't like it. While I totally agree with the proposed removal of input() [anything using eval() in a hidden way is *bad*], my preference would be to keep raw_input()'s functionality, perhaps renaming it to user_input() or ask_user(). Thoughts? Andr? From kirby.urner at gmail.com Tue Sep 5 03:05:12 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 4 Sep 2006 18:05:12 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> Message-ID: On 9/4/06, Andre Roberge wrote: > Thoughts? > > Andr? I tend to agree with you. sys.stdin feels like some musty academic coming in, trying to "prettify" in the sense of nail down according to some vogue theory. Takes away a raw edge. Most think that's a *good* thing, but I'm not so sure. Feels like creeping bureaucracy. But remember, we can always pick a "golden age" version and stick to it. Maybe it's 2.5 for all I know. This 3000 thing could be an "over the hill" version for party hacks and kiss asses (trying to ingratiate themselves with an ancient BDFL). ;-) On the other hand, this is my first time to give the matter much thought. Remember too, can't we always write and include a module like "retro" wherein we go raw_input = sys.stdin.readline and then continue on our merry way? Call it a "soft fork"? Kirby From kirby.urner at gmail.com Tue Sep 5 03:15:06 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 4 Sep 2006 18:15:06 -0700 Subject: [Edu-sig] Ramanujan's Pi (an exercise with generator & decimal features) In-Reply-To: References: Message-ID: On 9/3/06, kirby urner wrote: > So here I'm using Python's new extended precision decimal type with > one of Ramanujan's crazy pi engines: > > http://people.bath.ac.uk/ma2lg/project/ramanuja.htm > University of Bath took the above off-line on the following day, maybe noticing a spike in accesses and realizing this was an old student account, no longer relevant. Pure speculation on my part. Here's another link, I hope more solid, for this marvelous generator for 1/pi: http://rooster.stanford.edu/%7Eben/maths/pi/ramanujan.html Kirby From delza at livingcode.org Tue Sep 5 03:56:00 2006 From: delza at livingcode.org (Dethe Elza) Date: Mon, 4 Sep 2006 18:56:00 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> Message-ID: <124C76F3-4553-4C0D-AF19-27D45F39F26E@livingcode.org> On 4-Sep-06, at 5:45 PM, Andre Roberge wrote: > The following is something I have been pondering for quite a while now > and am wondering what other people on this list think. > > According to PEP 3100 > (http://www.python.org/dev/peps/pep-3100/ ) > raw_input() [as well as input()] is recommended for removal from the > built-in namespace, to be replaced by sys.stdin.readline(). But it is trivial to add this back in: >>> raw_input = sys.stdin.readline > While I don't think anyone can argue that this removal makes a major > difference for Python as a programming language, I believe it makes a > significant difference for using Python as a learning language, adding > a non-trivial barrier to learning. Removing this from built-ins isn't going to be any more confusing or off-putting than trying to understand the difference between input and raw_input in the first place. I remember being tripped up by *that* when I was first learning Python. > Consider the following fake sessions at the interpreter prompt, where > I use extra parentheses to turn print as a function (as is also > proposed in Python 3000) - these parentheses can of course be used > with today's Python. The standard prompt is great, but not the best learning environment. I would recommend that students use IPython instead, and since IPython already adds lots of convenience methods to the global namespace, there's nothing to stop it from pre-populating globals with input and raw_input. That is: 1. It isn't necessary for global functions at the command-line prompt to be in builtins 2. It possible (and desirable) to have different command-line prompts for different purposes 3. It isn't necessary to clutter the builtins with every convenience function, even if we're used to it Now, all that given, I do hope Python doesn't start going down the road that Java has taken and replace >>> open('myfilename.txt') with >>> open(BufferedStream(InputStream(FileStream('myfilename.txt') but I don't think the loss of raw_input is quite on that scale. --Dethe Art is either plagiarism or revolution. --Paul Gauguin From john.zelle at wartburg.edu Tue Sep 5 04:17:48 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Mon, 4 Sep 2006 21:17:48 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> Message-ID: <200609042117.48556.john.zelle@wartburg.edu> I agree whole-heartedly with Andre on this (except that I also want to preserve input, see below). I understand the rationale for eliminating the "redundancy" of these statements, but of course the same argument holds for the print statement. Why not do away with it and just use sys.stdout? The reason is that programs, almost by definition, do input and output. Indeed, one very frutiful way of viewing programs is as a mapping from input to outputs. Given that, any language that does not include both input and output in its core functionality just feels wrong to me. It's one of the weaknesses of languages like C++ and Java that the simplest possible programs (ones that do lowly text IO) require "extra" machinery beyond the standard built-ins. This isn't just another barrier for novices either; it's also an extra burden for the average script writer. Looking at my own code, this change "breaks" virtually everything I have written while at the same time adding extra bulk and decreasing clarity and intent. On Monday 04 September 2006 7:45 pm, Andre Roberge wrote: > The following is something I have been pondering for quite a while now > and am wondering what other people on this list think. > > According to PEP 3100 > (http://www.python.org/dev/peps/pep-3100/ ) > raw_input() [as well as input()] is recommended for removal from the > built-in namespace, to be replaced by sys.stdin.readline(). > > While I don't think anyone can argue that this removal makes a major > difference for Python as a programming language, I believe it makes a > significant difference for using Python as a learning language, adding > a non-trivial barrier to learning. > > Consider the following fake sessions at the interpreter prompt, where > I use extra parentheses to turn print as a function (as is also > proposed in Python 3000) - these parentheses can of course be used > with today's Python. > > # First ever program > > >>> print("Hello world!") > > Hello world! > > # More complicated example from the first interactive session using > today's version > > >>> name = raw_input("Enter your name: ") > > Enter your name: Andre > > >>> print("Hello " + name + "!") > > Hello Andre! > > # More or less the same example using the proposed changes. > > >>> import sys > >>> print("Enter your name: ") > > Enter your name: > >>> name = sys.stdin.readline() > > <-- Andre > > >>> print("Hello " + name + "!") > > Hello Andre! > > To explain the above *simple* program to a beginner, we'd need: > 1. to introduce the import statement > 2. to introduce the dot notation (something Kirby would be happy with ;-) > > Furthermore, the flow is not the same as with today's raw_input(). > > I don't like it. > > While I totally agree with the proposed removal of input() [anything > using eval() in a hidden way is *bad*], my preference would be to keep > raw_input()'s functionality, perhaps renaming it to user_input() or > ask_user(). No! Keep input too! It's the single handiest input statement from any language I've ever used. Dangerous? You bet. But also very, very handy -- especially for simple introductory programs. By the time students are writing production code, they should have a very good handle on what input does behind the scenes. I also like the naming of input and raw_input as they stand. It provides a perfect vehicle for explaining what eval is all about. > > Thoughts? Of course, Guido has always been right in the past :-) But this change just feels wrong to me. It brings a certain consistency at the cost of both efficiency (requiring more code) and charm. Perhaps our BDFL will yet see the light on this one. --John John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From john.zelle at wartburg.edu Tue Sep 5 04:36:44 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Mon, 4 Sep 2006 21:36:44 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <124C76F3-4553-4C0D-AF19-27D45F39F26E@livingcode.org> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <124C76F3-4553-4C0D-AF19-27D45F39F26E@livingcode.org> Message-ID: <200609042136.44092.john.zelle@wartburg.edu> On Monday 04 September 2006 8:56 pm, Dethe Elza wrote: > On 4-Sep-06, at 5:45 PM, Andre Roberge wrote: > > The following is something I have been pondering for quite a while now > > and am wondering what other people on this list think. > > > > According to PEP 3100 > > (http://www.python.org/dev/peps/pep-3100/ ) > > raw_input() [as well as input()] is recommended for removal from the > > built-in namespace, to be replaced by sys.stdin.readline(). > > But it is trivial to add this back in: > >>> raw_input = sys.stdin.readline This is simply not equivalent. readline does not take a prompt as an argument. You'll have to write the function. > > While I don't think anyone can argue that this removal makes a major > > difference for Python as a programming language, I believe it makes a > > significant difference for using Python as a learning language, adding > > a non-trivial barrier to learning. > > Removing this from built-ins isn't going to be any more confusing or > off-putting than trying to understand the difference between input > and raw_input in the first place. I remember being tripped up by > *that* when I was first learning Python. My hunch is that your confusion came because of your experience with other languages. Having an input statement that evaluates just like what you type into the code is a _wonderful_ teaching tool. An input is just a "delayed expression." value = input("Enter an expression: ") where the input is 3+4*5 is just like the line of code value = 3+4*5. Students find that very easy to understand. > > Consider the following fake sessions at the interpreter prompt, where > > I use extra parentheses to turn print as a function (as is also > > proposed in Python 3000) - these parentheses can of course be used > > with today's Python. > > The standard prompt is great, but not the best learning environment. > I would recommend that students use IPython instead, and since > IPython already adds lots of convenience methods to the global > namespace, there's nothing to stop it from pre-populating globals > with input and raw_input. > Sure, there are better learning environments. But the standard prompt is _the sole arbiter_ of what _Python_ actually does. Whenever you want students to figure out a feature of the language, the interactive prompt is the way to go. Let's see how Python interprets that. Using some other environment with built-in defs is not giving you Python. > That is: > > 1. It isn't necessary for global functions at the command-line prompt > to be in builtins But it's useful. See my message that passed yours in cyberspace. > 2. It possible (and desirable) to have different command-line prompts > for different purposes sure. > 3. It isn't necessary to clutter the builtins with every convenience > function, even if we're used to it Built-ins should not be cluttered with _every convenience_, but requiring an import to do _any_ input is silly. Input is not a convenience, it's virtually part of the definition of a useful program. > Now, all that given, I do hope Python doesn't start going down the > road that Java has taken and replace > > >>> open('myfilename.txt') > > with > > >>> open(BufferedStream(InputStream(FileStream('myfilename.txt') This looks like a step in that direction to me. I would like to see a "Zipf diagram" that shows an analysis of the prevelance of various built-ins in extant Python code. I'm betting input has been used over the years as a core feature. It's part of what makes Python Python. While we're at it, isn't opening a file something that really happens at a system or OS level? Perhaps it should be something like: >>>files.PythonFile(os.open(BufferedStream(InputStream(FileStream('myfilename.txt'))))) Why should file opening be any more of a "convenience" than asking the user for input, after all? > but I don't think the loss of raw_input is quite on that scale. It may not be on that scale, but it would certainly cause me to survey the language landscape again to see if there are better languages for teaching. I/O is a core concept in programming, period. Don't make me introduce extended libraries (via import) in order to teach a core concept. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From dblank at brynmawr.edu Tue Sep 5 05:38:39 2006 From: dblank at brynmawr.edu (dblank at brynmawr.edu) Date: Mon, 4 Sep 2006 23:38:39 -0400 (EDT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609042117.48556.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609042117.48556.john.zelle@wartburg.edu> Message-ID: <36343.68.34.179.248.1157427519.squirrel@webmail.brynmawr.edu> I also agree with y'all, but there is a subtlety that I don't like with the current names and which might explain the confusion: raw_input() does less than input(), but looks and sounds like it does more. I might like something similar to: >>> name = ask("What is your name? ") What is your name? John >>> seconds = askexp("What is your age, in days? ") What is your age, in days? 43 * 365 or read(), and readeval(); or prompt(), and eval(prompt()). But, I really hope that they keep an easy-to-use version. -Doug > I agree whole-heartedly with Andre on this (except that I also want to > preserve input, see below). I understand the rationale for eliminating > the "redundancy" of these statements, but of course the same argument > holds > for the print statement. Why not do away with it and just use sys.stdout? > > The reason is that programs, almost by definition, do input and output. > Indeed, one very frutiful way of viewing programs is as a mapping from > input > to outputs. Given that, any language that does not include both input and > output in its core functionality just feels wrong to me. It's one of the > weaknesses of languages like C++ and Java that the simplest possible > programs > (ones that do lowly text IO) require "extra" machinery beyond the standard > built-ins. This isn't just another barrier for novices either; it's also > an > extra burden for the average script writer. Looking at my own code, this > change "breaks" virtually everything I have written while at the same time > adding extra bulk and decreasing clarity and intent. > > On Monday 04 September 2006 7:45 pm, Andre Roberge wrote: >> The following is something I have been pondering for quite a while now >> and am wondering what other people on this list think. >> >> According to PEP 3100 >> (http://www.python.org/dev/peps/pep-3100/ ) >> raw_input() [as well as input()] is recommended for removal from the >> built-in namespace, to be replaced by sys.stdin.readline(). >> >> While I don't think anyone can argue that this removal makes a major >> difference for Python as a programming language, I believe it makes a >> significant difference for using Python as a learning language, adding >> a non-trivial barrier to learning. >> >> Consider the following fake sessions at the interpreter prompt, where >> I use extra parentheses to turn print as a function (as is also >> proposed in Python 3000) - these parentheses can of course be used >> with today's Python. >> >> # First ever program >> >> >>> print("Hello world!") >> >> Hello world! >> >> # More complicated example from the first interactive session using >> today's version >> >> >>> name = raw_input("Enter your name: ") >> >> Enter your name: Andre >> >> >>> print("Hello " + name + "!") >> >> Hello Andre! >> >> # More or less the same example using the proposed changes. >> >> >>> import sys >> >>> print("Enter your name: ") >> >> Enter your name: >> >>> name = sys.stdin.readline() >> >> <-- Andre >> >> >>> print("Hello " + name + "!") >> >> Hello Andre! >> >> To explain the above *simple* program to a beginner, we'd need: >> 1. to introduce the import statement >> 2. to introduce the dot notation (something Kirby would be happy with >> ;-) >> >> Furthermore, the flow is not the same as with today's raw_input(). >> >> I don't like it. >> >> While I totally agree with the proposed removal of input() [anything >> using eval() in a hidden way is *bad*], my preference would be to keep >> raw_input()'s functionality, perhaps renaming it to user_input() or >> ask_user(). > > No! Keep input too! It's the single handiest input statement from any > language > I've ever used. Dangerous? You bet. But also very, very handy -- > especially > for simple introductory programs. By the time students are writing > production > code, they should have a very good handle on what input does behind the > scenes. I also like the naming of input and raw_input as they stand. It > provides a perfect vehicle for explaining what eval is all about. > >> >> Thoughts? > > Of course, Guido has always been right in the past :-) But this change > just > feels wrong to me. It brings a certain consistency at the cost of both > efficiency (requiring more code) and charm. Perhaps our BDFL will yet see > the > light on this one. > > --John > > John M. Zelle, Ph.D. Wartburg College > Professor of Computer Science Waverly, IA > john.zelle at wartburg.edu (319) 352-8360 > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From tjd at sfu.ca Tue Sep 5 06:03:35 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Mon, 4 Sep 2006 21:03:35 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 Message-ID: > The following is something I have been pondering for quite a while now > and am wondering what other people on this list think. > > According to PEP 3100 > (http://www.python.org/dev/peps/pep-3100/ ) > raw_input() [as well as input()] is recommended for removal from the > built-in namespace, to be replaced by sys.stdin.readline(). Let me add my voice to the chorus: removing raw_input() hurts beginners, and, for beginners, it is far preferable than the proposed alternative, which is cryptic and overly specific. I saw Guido's Python 3000 talk at the Vancouver Python Workshop this summer, and I am pretty sure he did not mention this (it was on my mind --- I had read the PEP earlier). I If raw_input were removed, then I expect we would see what happened in the Java world in the early days: every teacher and textbook uses their own home-rolled simple IO package. I hope Python 3000 does not repeat Java's mistake! I don't care about "input". Its there now and hasn't ever been useful to me (eval(raw_input("...")) is a fine alternative), and, more importantly, has apparently not caused confusion among students. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From john.zelle at wartburg.edu Tue Sep 5 15:15:10 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Tue, 5 Sep 2006 08:15:10 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: <200609050815.10430.john.zelle@wartburg.edu> On Monday 04 September 2006 11:03 pm, Toby Donaldson wrote: > > I don't care about "input". Its there now and hasn't ever been useful > to me (eval(raw_input("...")) is a fine alternative), and, more > importantly, has apparently not caused confusion among students. > Again, for similar reasons to those being mentioned, I would like to keep input as well as raw_input. From a pedagogical perspective, it's best to meet students "where they're at." Most of my students have studied algorithms and computation before, but in the context of mathematics. The most straightforward way to start them out is to take their math background and turn it into programs. This has the additional motivation of taking some of the drudgery out of the math. Given that starting point, it's very natural to write programs that "get a number from the user". That's what input allows us to do, it interprets any literal (more generally, expression) provided. Forcing them to use eval(raw_input()) requires introducing strings as a data type, if they are to understand it. While strings are simple and easy to introduce early, they are not as intuitive to my students as numbers. They have never "manipulated" strings before. They've been crunching numbers since second grade. Numbers, then strings is the natural progression. -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From bmiller at luther.edu Tue Sep 5 16:54:57 2006 From: bmiller at luther.edu (Brad Miller) Date: Tue, 5 Sep 2006 09:54:57 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609050815.10430.john.zelle@wartburg.edu> References: <200609050815.10430.john.zelle@wartburg.edu> Message-ID: I too will add one more voice to this chorus, in the hope that numbers will influence Guido. The fact that input and raw_input existed in Python was one important factor in our decision to move our introductory curriculum to Python a couple years ago. I can clearly remember excitedly telling my colleagues: "Look, you can do input with one statement, its easy!" Its hard to say for sure, but if I had seen that in order to get user input I had to import sys and explain to students who are seeing their first programming language what sys.stdin was all about.... I don't think I would have explored Python much further. I do not like the solution of staying with a 'golden age' version of Python. For beginners its nice that they can just go to www.python.org, download one file, run an installation wizard and have the latest version on their Windows machines. Mac users have it even easier. Having to tell them we are using an old version of the language just seems wrong. Much less to tell Mac/Linux users that they need to ignore the modern version that comes on their system. Brad From pchase at sulross.edu Tue Sep 5 16:45:23 2006 From: pchase at sulross.edu (Peter Chase) Date: Tue, 05 Sep 2006 09:45:23 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> Message-ID: <44FD8D83.8090908@sulross.edu> Andre Roberge wrote: > The following is something I have been pondering for quite a while now > and am wondering what other people on this list think. > > According to PEP 3100 > (http://www.python.org/dev/peps/pep-3100/ ) > raw_input() [as well as input()] is recommended for removal from the > built-in namespace, to be replaced by sys.stdin.readline(). > > I've been using Python for CS1. It goes down a lot easier, since there are fewer magical incantations (include, import, using, etc., etc.) . Further, it is definitely not a toy language. Naturally, I'm against removing raw_input. If you want to expose your students to the full horror of a syntactically complete language, why not switch to C++, where you can run programs in the compiler? I ask that, even though I like C++ better than Java. (The C++ library templates seem better organized and less confusing than the Java API, once the major concepts are understood. But then, I mourn for Delphi.) From andre.roberge at gmail.com Tue Sep 5 17:51:07 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Tue, 5 Sep 2006 12:51:07 -0300 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609050815.10430.john.zelle@wartburg.edu> References: <200609050815.10430.john.zelle@wartburg.edu> Message-ID: <7528bcdd0609050851i723f53b3j98aeffb53c7e843c@mail.gmail.com> On 9/5/06, John Zelle wrote: > On Monday 04 September 2006 11:03 pm, Toby Donaldson wrote: > > > > > I don't care about "input". Its there now and hasn't ever been useful > > to me (eval(raw_input("...")) is a fine alternative), and, more > > importantly, has apparently not caused confusion among students. > > > > Again, for similar reasons to those being mentioned, I would like to keep > input as well as raw_input. From a pedagogical perspective, it's best to meet > students "where they're at." Most of my students have studied algorithms and > computation before, but in the context of mathematics. The most > straightforward way to start them out is to take their math background and > turn it into programs. This has the additional motivation of taking some of > the drudgery out of the math. > > Given that starting point, it's very natural to write programs that "get a > number from the user". That's what input allows us to do, it interprets any > literal (more generally, expression) provided. Forcing them to use > eval(raw_input()) requires introducing strings as a data type, if they are to > understand it. While strings are simple and easy to introduce early, they are > not as intuitive to my students as numbers. They have never "manipulated" > strings before. They've been crunching numbers since second grade. Numbers, > then strings is the natural progression. > I don't teach CS, nor do I have formal CS "training" (so, take my comments, including the original issue I raised, with a grain of salt). However, this progression from number to strings makes sense to me ... but I don`t like the idea of using input() in its current form, given the huge potential for misuse. I think some other form, that takes a string and attempts to extract a number (int or float) from it would be better suited in a teaching environment - however, it would have to remain a built-in. Just to explore some alternative, what about having different names such as input_number() and input_string() or get_number() and get_string() or ask_number() and ask_string() ? Andr? > -- > John M. Zelle, Ph.D. Wartburg College > Professor of Computer Science Waverly, IA > john.zelle at wartburg.edu (319) 352-8360 > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From christian.mascher at gmx.de Tue Sep 5 18:33:40 2006 From: christian.mascher at gmx.de (Christian Mascher) Date: Tue, 05 Sep 2006 18:33:40 +0200 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> Message-ID: <44FDA6E4.8050102@gmx.de> >Furthermore, the flow is not the same as with today's raw_input(). > >I don't like it. > >While I totally agree with the proposed removal of input() [anything >using eval() in a hidden way is *bad*], my preference would be to keep >raw_input()'s functionality, perhaps renaming it to user_input() or >ask_user(). > > I agree. Apart from the name raw_input() is a nice thig to have. It was the first annoyance when I started with Java in school, to find it doesn't have anything like it. Even sys.stdin is impractical in Java. ask_user() or user_input() are good names. Christian From radenski at chapman.edu Tue Sep 5 18:50:47 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Tue, 5 Sep 2006 09:50:47 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 Message-ID: > -----Original Message----- > Behalf Of Brad Miller > I too will add one more voice to this chorus, in the hope that > numbers will influence Guido. Me too :-) I would like to see both input and raw_input preserved. Replacing these with more complicated (from pedagogical perspective) methods would probably give an additional reason for educators to look at alternative languages, such as Ruby. There were questions in this list of the appropriateness of the names of the two functions. To me, the names of input and raw_input seem just fine. One can tell students that the input function is more general and interprets the input character sequence as a Python expression, finally delivering its value. In contrast, raw_input is simpler and interprets nothing - simply delivers the input string as a character string. It is logical. Just my ten cents. Atanas Atanas Radenski mailto:radenski at chapman.edu http://www.chapman.edu/~radenski/ There are wavelengths that people cannot see, there are sounds that people cannot hear, and may be computers have thought that people cannot think -- Richard Hamming From tjd at sfu.ca Tue Sep 5 19:23:40 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Tue, 5 Sep 2006 10:23:40 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609050815.10430.john.zelle@wartburg.edu> References: <200609050815.10430.john.zelle@wartburg.edu> Message-ID: As I say, *I* don't find the "input" function useful, but I am happy to keep it around for those free-spirits who do. Toby On 9/5/06, John Zelle wrote: > On Monday 04 September 2006 11:03 pm, Toby Donaldson wrote: > > > > > I don't care about "input". Its there now and hasn't ever been useful > > to me (eval(raw_input("...")) is a fine alternative), and, more > > importantly, has apparently not caused confusion among students. > > > > Again, for similar reasons to those being mentioned, I would like to keep > input as well as raw_input. From a pedagogical perspective, it's best to meet > students "where they're at." Most of my students have studied algorithms and > computation before, but in the context of mathematics. The most > straightforward way to start them out is to take their math background and > turn it into programs. This has the additional motivation of taking some of > the drudgery out of the math. > > Given that starting point, it's very natural to write programs that "get a > number from the user". That's what input allows us to do, it interprets any > literal (more generally, expression) provided. Forcing them to use > eval(raw_input()) requires introducing strings as a data type, if they are to > understand it. While strings are simple and easy to introduce early, they are > not as intuitive to my students as numbers. They have never "manipulated" > strings before. They've been crunching numbers since second grade. Numbers, > then strings is the natural progression. > > -- > John M. Zelle, Ph.D. Wartburg College > Professor of Computer Science Waverly, IA > john.zelle at wartburg.edu (319) 352-8360 > -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From dcrosta at sccs.swarthmore.edu Tue Sep 5 19:28:37 2006 From: dcrosta at sccs.swarthmore.edu (Dan Crosta) Date: Tue, 05 Sep 2006 13:28:37 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: <44FDB3C5.6040901@sccs.swarthmore.edu> Radenski, Atanas wrote: > Me too :-) I would like to see both input and raw_input preserved. > Replacing these with more complicated (from pedagogical perspective) > methods would probably give an additional reason for educators to look > at alternative languages, such as Ruby. I realize this is the education SIG list, but it's important to remember that Python is not just for educators and students (though I believe it makes a great language for those demographics). I used Python extensively for scripting system administration tasks and interactive scripts that our users would use. While hiding the input functions inside the sys module wouldn't make life substantively harder for the sysadmins, it might prove just enough hurdle to look at other options. I will, for the sake of sanity and on-topic-ness, refrain from recanting some of the great Python/Perl battles that the SCCS [1] has suffered over the years. - d [1] Swarthmore College Computer Society, the group at which I was an admin for 3 years. http://www.sccs.swarthmore.edu/ From ajsiegel at optonline.net Wed Sep 6 15:00:25 2006 From: ajsiegel at optonline.net (Arthur Siegel) Date: Wed, 06 Sep 2006 09:00:25 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609042136.44092.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <124C76F3-4553-4C0D-AF19-27D45F39F26E@livingcode.org> <200609042136.44092.john.zelle@wartburg.edu> Message-ID: <1157547625.32193.30.camel@localhost> On Mon, 2006-09-04 at 21:36 -0500, John Zelle wrote: > It may not be on that scale, but it would certainly cause me to survey the > language landscape again to see if there are better languages for teaching. On Tue, 2006-09-05 at 09:45 -0500, Peter Chase wrote: > If you want to expose your students to the full horror of a > syntactically complete language, why not switch to C++, where you can > run programs in the compiler? On Tue, 2006-09-05 at 09:54 -0500, Brad Miller wrote: > Its hard to say for sure, but if I had seen that in order to get > user > input I had to import sys and explain to students who are seeing > their first programming language what sys.stdin was all about.... I > don't think I would have explored Python much further. > > On Tue, 2006-09-05 at 09:50 -0700, Radenski, Atanas wrote: > Me too :-) I would like to see both input and raw_input preserved. > Replacing these with more complicated (from pedagogical perspective) > methods would probably give an additional reason for educators to look > at alternative languages, such as Ruby. * Being dispassionate on the issue itself - I have *never* used raw_input() and, as it happens, I am generally literate enough at this point so that the intentions of sys.stdin.readline is *clearer* to me than is raw_input() - I am disturbed by the tone of the discussion. Guess I prefer the all-in-the-family temper tantrum, then the calm and dispassionate threat - explicit or implicit. I guess I view it also as an example of the result of Python promoting itself to the educational community in the wrong way, and on the wrong footing, from day one - as the easy alternative, rather then as the literate and productive alternative, the *best* alternative for getting a certain class of problems solved in the least circuitous way. In particular, the kinds of real world problems a student might want to solve or explore. Since sys.stdin.readline seems to me *more* literate, I'm OK with it. And will maintain my apparently cloistered, unreal world view of how a motivated student might want most to be approached, and her fragility. Art From john.zelle at wartburg.edu Wed Sep 6 15:53:20 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Wed, 6 Sep 2006 08:53:20 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <1157547625.32193.30.camel@localhost> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609042136.44092.john.zelle@wartburg.edu> <1157547625.32193.30.camel@localhost> Message-ID: <200609060853.20470.john.zelle@wartburg.edu> On Wednesday 06 September 2006 8:00 am, Arthur Siegel wrote: > Being dispassionate on the issue itself - I have *never* used > raw_input() and, as it happens, I am generally literate enough at this > point so that the intentions of sys.stdin.readline is *clearer* to me > than is raw_input() - I am disturbed by the tone of the discussion. > > Guess I prefer the all-in-the-family temper tantrum, then the calm and > dispassionate threat - explicit or implicit. I have no idea what you mean here. Speaking only for myself, I am simply stating that a language that requires me to use an extended library to do simple input is less useful as a teaching tool than one that does not. I also gave arguments for why, as a programmer, I find it less useful. You have not addressed those arguments. > > I guess I view it also as an example of the result of Python promoting > itself to the educational community in the wrong way, and on the wrong > footing, from day one - as the easy alternative, rather then as the > literate and productive alternative, the *best* alternative for getting > a certain class of problems solved in the least circuitous way. So you are saying it's less circuitious when writing a simple script that needs a bit of user interaction that I have to include an import statement and split a single logical operation (asking a user for input) into two steps: first printing a prompt and then calling on my imported library to do the input? I can't say as I follow that logic. To me, one of the beauties of Python is how it mirrors the way I think about algorithms and how I teach my students to think about algorithms. "Get a number from the user" is a primitive operation in my thinking, having a built-in that allows this makes for a straightforward translation from thought to code. That's efficent both in terms of programmer productivity and student learning. > > In particular, the kinds of real world problems a student might want to > solve or explore. > Again, I would like to see the distribution breakdown of this feature in extant code. I think it is widely and heavily used because others view it as I do. That's the real world of problem solving. My _point_ is that input and raw_input meet exactly this criteria, it helps students to directly solve or explore the types of real-world problems that new programmers often want to solve. > Since sys.stdin.readline seems to me *more* literate, I'm OK with it. > First up, you ignored my note pointing out that this is not equivalent to raw_input, as I have to type another line of code for the prompt. You also ignore the fact that you must import sys in order to use this. If by more literate, you mean less convenient to use, then I agree with you. My deeper philosophical point is that operations essential to computing (input and output) should be part of the core language, not things that are imported from the library. That's just as true for plain old programmers as it is for teaching. > And will maintain my apparently cloistered, unreal world view of how a > motivated student might want most to be approached, and her fragility. > Just because a motivated student can (and should be able to) learn something is not an argument to go out of our way to put up hurdles, no matter how small, to their learning. Both input and raw_input are part of the language now (and always have been). Many of us in education see them as being useful to new programmers and real world programmers and are outlining our reasons for such. If you want to convince us otherwise, then you should have a reasoned argument about how this incompatible change significantly _improves_ the language for solving your real world problems. I don't really think this particular case fits your model of promoting Python for the wrong reasons (a case I generally agree with). Of course, I'm just a unreal ivory-tower academic, feel free to dismiss my opinions regardless of the reasoning behind them, pedagogical or otherwise. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Wed Sep 6 20:24:09 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 06 Sep 2006 14:24:09 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609060853.20470.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609042136.44092.john.zelle@wartburg.edu> <1157547625.32193.30.camel@localhost> <200609060853.20470.john.zelle@wartburg.edu> Message-ID: <44FF1249.70804@optonline.com> John Zelle wrote: >On Wednesday 06 September 2006 8:00 am, Arthur Siegel wrote: > > >>Being dispassionate on the issue itself - I have *never* used >>raw_input() and, as it happens, I am generally literate enough at this >>point so that the intentions of sys.stdin.readline is *clearer* to me >>than is raw_input() - I am disturbed by the tone of the discussion. >> >>Guess I prefer the all-in-the-family temper tantrum, then the calm and >>dispassionate threat - explicit or implicit. >> >> > >I have no idea what you mean here. Speaking only for myself, I am simply >stating that a language that requires me to use an extended library to do >simple input is less useful as a teaching tool than one that does not. I also >gave arguments for why, as a programmer, I find it less useful. You have not >addressed those arguments. > > /I think I have. In the decorator discussion on python-list I became the self-appointed founder and chairman of the CLA - Chicken Little Anonymous. Which was some self-deprecation in connection with my role in the int/int and case-sensitivity ddiscussions. And allowing me some freedom to adamantly voice my opinions on the introduction of decorators - I was adamantly against - while letting it be known that I thought Python would well survive the outcome, whatever it ended up being. My opinion here is that you are probably right in some senses, probably wrong in others - and that Python will be not be *significantly* less useful for pedagogical purposes, whatever the outcome of the issue. So I choose to speak to the tone of the discussions as more to the substance of the issue, than is the substance of the tissue itself. And as the more important issue. A strange role to find myself in, sure enough. Art / From pchase at sulross.edu Wed Sep 6 17:37:41 2006 From: pchase at sulross.edu (Peter Chase) Date: Wed, 06 Sep 2006 10:37:41 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <1157547625.32193.30.camel@localhost> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <124C76F3-4553-4C0D-AF19-27D45F39F26E@livingcode.org> <200609042136.44092.john.zelle@wartburg.edu> <1157547625.32193.30.camel@localhost> Message-ID: <44FEEB45.2000808@sulross.edu> Arthur Siegel wrote: > On Mon, 2006-09-04 at 21:36 -0500, John Zelle wrote: > > >> It may not be on that scale, but it would certainly cause me to survey the >> language landscape again to see if there are better languages for teaching. >> > > > On Tue, 2006-09-05 at 09:45 -0500, Peter Chase wrote: > >> If you want to expose your students to the full horror of a >> syntactically complete language, why not switch to C++, where you can >> run programs in the compiler? >> > > On Tue, 2006-09-05 at 09:54 -0500, Brad Miller wrote: > >> Its hard to say for sure, but if I had seen that in order to get >> user >> input I had to import sys and explain to students who are seeing >> their first programming language what sys.stdin was all about.... I >> don't think I would have explored Python much further. >> >> >> > On Tue, 2006-09-05 at 09:50 -0700, Radenski, Atanas wrote: > >> Me too :-) I would like to see both input and raw_input preserved. >> Replacing these with more complicated (from pedagogical perspective) >> methods would probably give an additional reason for educators to look >> at alternative languages, such as Ruby. >> > * > Being dispassionate on the issue itself - I have *never* used > raw_input() and, as it happens, I am generally literate enough at this > point so that the intentions of sys.stdin.readline is *clearer* to me > than is raw_input() - I am disturbed by the tone of the discussion. > > Guess I prefer the all-in-the-family temper tantrum, then the calm and > dispassionate threat - explicit or implicit. > > I guess I view it also as an example of the result of Python promoting > itself to the educational community in the wrong way, and on the wrong > footing, from day one - as the easy alternative, rather then as the > literate and productive alternative, the *best* alternative for getting > a certain class of problems solved in the least circuitous way. > > In particular, the kinds of real world problems a student might want to > solve or explore. > > Since sys.stdin.readline seems to me *more* literate, I'm OK with it. > > And will maintain my apparently cloistered, unreal world view of how a > motivated student might want most to be approached, and her fragility. > > Art > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > !DSPAM:518,44fec68267041915216640! > > > Dost thou think, because thou art virtuous, there shall be no more cakes and ale? From john.zelle at wartburg.edu Wed Sep 6 23:51:40 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Wed, 6 Sep 2006 16:51:40 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <44FF1249.70804@optonline.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609060853.20470.john.zelle@wartburg.edu> <44FF1249.70804@optonline.com> Message-ID: <200609061651.40903.john.zelle@wartburg.edu> On Wednesday 06 September 2006 1:24 pm, Arthur wrote: > John Zelle wrote: > >I have no idea what you mean here. Speaking only for myself, I am simply > >stating that a language that requires me to use an extended library to do > >simple input is less useful as a teaching tool than one that does not. I > > also gave arguments for why, as a programmer, I find it less useful. You > > have not addressed those arguments. > > /I think I have. > > In the decorator discussion on python-list I became the self-appointed > founder and chairman of the CLA - Chicken Little Anonymous. Which was > some self-deprecation in connection with my role in the int/int and > case-sensitivity ddiscussions. And allowing me some freedom to > adamantly voice my opinions on the introduction of decorators - I was > adamantly against - while letting it be known that I thought Python > would well survive the outcome, whatever it ended up being. > > My opinion here is that you are probably right in some senses, probably > wrong in others - and that Python will be not be *significantly* less > useful for pedagogical purposes, whatever the outcome of the issue. > > So I choose to speak to the tone of the discussions as more to the > substance of the issue, than is the substance of the tissue itself. And > as the more important issue. Fair enough. But I still think you are having a hasty reaction here. This discussion (as I have read it) has not been about making Python or programming easy. It's been about what makes Python useful both for programmers and for the education of new programmers. Please see the actual arguments made in this thread. Sometimes I think you dismiss opinions based on pedagogical foundations a bit too quickly and off-handedly. In my experience, a good language for teaching is a good language, period. A barrier for pedagogy is very often a barrier to natural/useful conceptualizations, and that speaks to language design for all users. People often say that Pascal was designed as a "teaching language." I remember a written interview with Nicklaus Wirth where he was asked what makes Pascal a good teaching language, and his reponse, as I remember it, was something like: Pascal is not a teaching language and was never intended to be; it was designed to be a good programming language. The features of its design that make it a good programming language are what make it a good teaching languge. I believe that a good language is one that provides a natural way to express algorithms as we think about them. Python is one of the very best I have found for that. I believe (for reasons already stated) it is less good without raw_input and input. That is and was the "tone" of the discussion, so I'm finding it hard to figure out what you take exception to. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From joshua.zucker at gmail.com Thu Sep 7 00:18:31 2006 From: joshua.zucker at gmail.com (Joshua Zucker) Date: Wed, 6 Sep 2006 15:18:31 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609061651.40903.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609060853.20470.john.zelle@wartburg.edu> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> Message-ID: <721e81490609061518h2a86346h517bfec26a4c662d@mail.gmail.com> On 9/6/06, John Zelle wrote: > People often say that Pascal was designed as a "teaching language." I remember > a written interview with Nicklaus Wirth where he was asked what makes Pascal > a good teaching language, and his reponse, as I remember it, was something > like: Pascal is not a teaching language and was never intended to be; it was > designed to be a good programming language. The features of its design that > make it a good programming language are what make it a good teaching languge. As someone coming here from the Scheme community, specifically PLT Scheme and the DrScheme programming environment (http://htdp.org), I half-agree with the above. I agree, in that what makes Scheme powerful for "real" users also makes it powerful for "student" users. But I disagree, in that one of the key innovations of the PLT team was to make several different languages -- I think about 5 or 6 -- which, at the beginner level, have greatly reduced expressivity compared to standard R5RS Scheme. The tradeoff is that the language can then give very informative error messages. I think for a beginning student, this is a very worthwhile tradeoff! In my own very limited experience, what's great about Python is that it allows many different sorts of approaches: you can think like a C programmer, or an OOP, or even almost like a LISP programmer, and still find that your thinking maps naturally onto reasonably clean and concise code. However, this flexibility makes it very hard for the language to produce error messages that are informative to a beginner! But I stray rather far from the main thread of this discussion. The main reason that I don't choose Java for an intro course is my feeling - backed up by what I see in several otherwise very good textbooks - that it just isn't right to start your programming course by telling students "here's a program, and I know you don't understand 2/3 of it. Just treat those parts like a magic incantation, understand this part here, and let's modify that." I don't teach Java because I don't want to have to explain "static public void main" on the first day. [Though actually some environments, like BlueJ for example, have an interactive mode in which you don't need a main method, so you can avoid this problem.] To me, it would be a noticeable minus if in the early days of the course I had to talk about import, and dot notation, and so on ... to me it feels like being forced into a Java/OOPish mindset for how to structure a program, instead of being able to use functional programming or even just plain old C-like style. I think I'm only talking about maybe the first week of a course here, but still, that first week can do a lot to affect people's impressions of the language or even of programming as a whole. --Joshua Zucker From dblank at brynmawr.edu Thu Sep 7 00:47:39 2006 From: dblank at brynmawr.edu (dblank at brynmawr.edu) Date: Wed, 6 Sep 2006 18:47:39 -0400 (EDT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <721e81490609061518h2a86346h517bfec26a4c662d@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609060853.20470.john.zelle@wartburg.edu> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> <721e81490609061518h2a86346h517bfec26a4c662d@mail.gmail.com> Message-ID: <31389.68.34.179.248.1157582859.squirrel@webmail.brynmawr.edu> I think John and Joshua both hit the nail on the head (below). In trying to figure out what exactly it is that Pascal and Python have (and most other tools do not), I came up with the idea of "pedagogical scalability". Simply, these tools allow the user to do a lot early, but does not impose any particular framework or special knowledge. Yet, as the user gains in experience, there are additional frameworks, syntax, and semantics waiting in the wings. Sometimes when a change such as "remove input" is proposed, the subtle difficulties that result (such as requiring an import, and some knowledge about streams and strings) are not realized. To keep Python pedagogically scalable, it needs methods like input, and raw_input. The only question I think that remains is: what should their names be? -Doug > On 9/6/06, John Zelle wrote: >> People often say that Pascal was designed as a "teaching language." I >> remember >> a written interview with Nicklaus Wirth where he was asked what makes >> Pascal >> a good teaching language, and his reponse, as I remember it, was >> something >> like: Pascal is not a teaching language and was never intended to be; it >> was >> designed to be a good programming language. The features of its design >> that >> make it a good programming language are what make it a good teaching >> languge. > > As someone coming here from the Scheme community, specifically PLT > Scheme and the DrScheme programming environment (http://htdp.org), I > half-agree with the above. > > I agree, in that what makes Scheme powerful for "real" users also > makes it powerful for "student" users. > > But I disagree, in that one of the key innovations of the PLT team was > to make several different languages -- I think about 5 or 6 -- which, > at the beginner level, have greatly reduced expressivity compared to > standard R5RS Scheme. The tradeoff is that the language can then give > very informative error messages. I think for a beginning student, > this is a very worthwhile tradeoff! > > In my own very limited experience, what's great about Python is that > it allows many different sorts of approaches: you can think like a C > programmer, or an OOP, or even almost like a LISP programmer, and > still find that your thinking maps naturally onto reasonably clean and > concise code. However, this flexibility makes it very hard for the > language to produce error messages that are informative to a beginner! > > But I stray rather far from the main thread of this discussion. > > The main reason that I don't choose Java for an intro course is my > feeling - backed up by what I see in several otherwise very good > textbooks - that it just isn't right to start your programming course > by telling students "here's a program, and I know you don't understand > 2/3 of it. Just treat those parts like a magic incantation, > understand this part here, and let's modify that." I don't teach Java > because I don't want to have to explain "static public void main" on > the first day. [Though actually some environments, like BlueJ for > example, have an interactive mode in which you don't need a main > method, so you can avoid this problem.] To me, it would be a > noticeable minus if in the early days of the course I had to talk > about import, and dot notation, and so on ... to me it feels like > being forced into a Java/OOPish mindset for how to structure a > program, instead of being able to use functional programming or even > just plain old C-like style. I think I'm only talking about maybe the > first week of a course here, but still, that first week can do a lot > to affect people's impressions of the language or even of programming > as a whole. > > --Joshua Zucker > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From ms at cerenity.org Thu Sep 7 00:55:54 2006 From: ms at cerenity.org (Michael) Date: Wed, 6 Sep 2006 23:55:54 +0100 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609061651.40903.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> Message-ID: <200609062355.55521.ms@cerenity.org> I've been watching this discussion and wondering - how much of the problems people complain about would go away if here was a "teaching" distribution of python. That is one that did the equivalent of from teaching import * to put things in the global namespace at start time. Generally this wouldn't be wanted, but would be useful for putting back the things which people are worried about losing. ie something akin to: ~/Local> python -i mymods.py >>> myinput >>> ~/Local> cat mymods.py #!/usr/bin/python myinput = raw_input ~/Local> That way you'd get the same default "experience" for beginners (and I think this is vitally important myself "raw_input" and "print" are *absolutely* *without a shadow of a doubt* *must haves* inside the default namespace for a user (however this is implemented - preferably inside an overrideable library rather than as language keywords). Byt that's my tuppence worth. Given we could fake the existance of raw_input today, how useful would a teaching mode be? (think bicycle stabilisers for an analogy as to when they come off) Michael On Wednesday 06 September 2006 22:51, John Zelle wrote: > On Wednesday 06 September 2006 1:24 pm, Arthur wrote: > > John Zelle wrote: > > >I have no idea what you mean here. Speaking only for myself, I am simply > > >stating that a language that requires me to use an extended library to > > > do simple input is less useful as a teaching tool than one that does > > > not. I also gave arguments for why, as a programmer, I find it less > > > useful. You have not addressed those arguments. > > > > /I think I have. > > > > In the decorator discussion on python-list I became the self-appointed > > founder and chairman of the CLA - Chicken Little Anonymous. Which was > > some self-deprecation in connection with my role in the int/int and > > case-sensitivity ddiscussions. And allowing me some freedom to > > adamantly voice my opinions on the introduction of decorators - I was > > adamantly against - while letting it be known that I thought Python > > would well survive the outcome, whatever it ended up being. > > > > My opinion here is that you are probably right in some senses, probably > > wrong in others - and that Python will be not be *significantly* less > > useful for pedagogical purposes, whatever the outcome of the issue. > > > > So I choose to speak to the tone of the discussions as more to the > > substance of the issue, than is the substance of the tissue itself. And > > as the more important issue. > > Fair enough. But I still think you are having a hasty reaction here. This > discussion (as I have read it) has not been about making Python or > programming easy. It's been about what makes Python useful both for > programmers and for the education of new programmers. Please see the actual > arguments made in this thread. Sometimes I think you > dismiss opinions based on pedagogical foundations a bit too quickly and > off-handedly. In my experience, a good language for teaching is a good > language, period. A barrier for pedagogy is very often a barrier to > natural/useful conceptualizations, and that speaks to language design for > all users. > > People often say that Pascal was designed as a "teaching language." I > remember a written interview with Nicklaus Wirth where he was asked what > makes Pascal a good teaching language, and his reponse, as I remember it, > was something like: Pascal is not a teaching language and was never > intended to be; it was designed to be a good programming language. The > features of its design that make it a good programming language are what > make it a good teaching languge. > > I believe that a good language is one that provides a natural way to > express algorithms as we think about them. Python is one of the very best I > have found for that. I believe (for reasons already stated) it is less good > without raw_input and input. That is and was the "tone" of the discussion, > so I'm finding it hard to figure out what you take exception to. > > --John From kirby.urner at gmail.com Thu Sep 7 01:16:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 6 Sep 2006 16:16:25 -0700 Subject: [Edu-sig] IronPython 1.0 on Slashdot Message-ID: As someone consistently upbeat about .NET and Mono (pronouced moe no, not mah no), I share Jim's excitement for the future. Will this be the last year I teach CPython for Saturday Academy? (I doubt it). Kirby >From Slashdot: "IronPython version 1.0 was just released after 3 years of development. Jim Hugunin, the creator of Jython and the lead developer of the Shared Source IronPython, made the birth announcement earlier this week. From the announcement: 'I wanted to understand how Microsoft could have screwed up so badly that the CLR was a worse platform for dynamic languages than the JVM... I found that Python could run extremely well on the CLR ? in many cases noticeably faster than the C-based implementation. [...] Shipping IronPython 1.0 isn't the end of the road, but rather the beginning. Not only will we continue to drive IronPython forward but we're also looking at the bigger picture to make all dynamic languages deeply integrated with the .NET platform and with technologies and products built on top of it. I'm excited about how far we've come, but even more excited by what the future holds!'" http://developers.slashdot.org/article.pl?sid=06/09/06/2134234&from=rss From delza at livingcode.org Thu Sep 7 01:22:54 2006 From: delza at livingcode.org (Dethe Elza) Date: Wed, 6 Sep 2006 16:22:54 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609061651.40903.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609060853.20470.john.zelle@wartburg.edu> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> Message-ID: <80356E97-0C6F-476F-9014-990FBE87311B@livingcode.org> On 6-Sep-06, at 2:51 PM, John Zelle wrote: > I believe that a good language is one that provides a natural way > to express > algorithms as we think about them. Python is one of the very best I > have > found for that. I believe (for reasons already stated) it is less good > without raw_input and input. That is and was the "tone" of the > discussion, > so I'm finding it hard to figure out what you take exception to. I understand the arguments for input() and raw_input(), and agree with them (despite my playing Devil's Advocate earlier in this thread). I would like to see them renamed to be more descriptive of what they actually do (input() and eval_input() ?), but on the whole I agree that they are useful, especially if sys.stdin.readline is not equivalent anyway (but see below about that). But I do understand where Arthur is coming from on this one. A substantial part of the conversation has consisted of phrases like, "if Python does this, I'll look elsewhere," and "I wouldn't have chosen Python if not for input()." Things like that do read like a threat, and they are overblown to say the least. Python has a lot going for it besides input(), to say the least. If anyone really intended to stop using Python over that one, trivial, feature (useful, yes, but still trivial), then I don't see why they would stay with Python because of it. It sure stirred up a lot of commentary though. >> But it is trivial to add this back in: >> >>>>> raw_input = sys.stdin.readline >>>>> > > This is simply not equivalent. readline does not take a prompt as > an argument. > You'll have to write the function. Well, no, you don't really. You could teach students to use print() or sys.stdout.write() for output (including the prompt) and sys.stdin.readline() for input. Or you could write it: def raw_input(prompt=""): sys.stdout.write(prompt) return sys.stdin.readline() Heck, writing that (without having to understand it all) could be a great introduction to programming, by creating their own utility that they can use all the time they learn that there's nothing magic about programming. Anyone can do it. And the system isn't perfect, but if you're missing something, you have permission and ability to add it. My son learned to draw using perspective when he was three, not because he understood it, but because he watched what his older sister did and imitated her. I don't understand the idea that we can't introduce things to students until they've understood all the underlying concepts--that's not how we learn anything else in life. To be honest, in thinking about teaching my nine-year-old and her classmates Python it never occured to me to teach them to use input() or raw_input(). I was going to go straight to PyGame, like LiveWires without the religion. Do you really teach students using the command- line for programs? I live at the command-line myself, but I don't expect that of others. I would teach them how to build a GUI or at least use dialogs for user input--something that they can recognize and relate to. I would certainly introduce the command-line at some point, but not so early that they'd be scared by a little dot notation. Of course, I'm a parent and an amateur teacher. Your mileage may vary. --Dethe Young children play in a way that is strikingly similar to the way scientists work --Busytown News From radenski at chapman.edu Thu Sep 7 01:34:03 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Wed, 6 Sep 2006 16:34:03 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 Message-ID: > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of Michael > Subject: Re: [Edu-sig] The fate of raw_input() in Python 3000 > > I've been watching this discussion and wondering - how much of the > problems > people complain about would go away if here was a "teaching" distribution > of > python. That is one that did the equivalent of > > from teaching import * Nowadays, college students want to do "real programming". You call a language 'teaching' - you loose. I actually have to work hard to convince my students that Python is not just a teaching language, but a language for real work. I show them various rankings based on use, salaries, jobs, etc. A great thing about Python is that it is popular in commercial projects and at the same time, you can teach beginners with it. IMHO, this is one of the most distinguishing features of Python in comparison to other languages > from teaching import * This will immediately create two difficulties. 1. You implicitly declare to your students you are not dealing with "real programming". 2. You most likely have to tell your entry-level students that you cannot explain what the above thing means, but you will tell them later. People switch form Java to Python to *avoid* this kind of situations. > Michael Atanas From dblank at brynmawr.edu Thu Sep 7 02:03:56 2006 From: dblank at brynmawr.edu (dblank at brynmawr.edu) Date: Wed, 6 Sep 2006 20:03:56 -0400 (EDT) Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: References: Message-ID: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> > As someone consistently upbeat about .NET and Mono (pronouced moe no, > not mah no), I share Jim's excitement for the future. Will this be > the last year I teach CPython for Saturday Academy? (I doubt it). > > Kirby > >>From Slashdot: Blame me for the slashdot post. IronPython is an amazingly-true-to-Python implementation. They could have done many evil things (still could) but didn't. There are some issues, but, like Jim and Kirby, have high hopes: - the license is "shared source" but is very open and mostly free of constraints - there is no GUI that will work across Python implementations. A cool project would be to make a standard that would work in Jython, IronPython, and CPython - the Mono group is working on Windows Forms, even though that is not part of the .NET standard. If that is successful, this could be the common GUI - IronPython runs great on Mono I'm working on porting our Python Robotics and associated AI code to IronPython. I think .NET is going to be big in Linux. I hope Guido @ Google and Jim @ Microsoft continue to work towards such common good. -Doug > "IronPython version 1.0 was just released after 3 years of > development. Jim Hugunin, the creator of Jython and the lead developer > of the Shared Source IronPython, made the birth announcement earlier > this week. From the announcement: 'I wanted to understand how > Microsoft could have screwed up so badly that the CLR was a worse > platform for dynamic languages than the JVM... I found that Python > could run extremely well on the CLR ? in many cases noticeably faster > than the C-based implementation. [...] Shipping IronPython 1.0 isn't > the end of the road, but rather the beginning. Not only will we > continue to drive IronPython forward but we're also looking at the > bigger picture to make all dynamic languages deeply integrated with > the .NET platform and with technologies and products built on top of > it. I'm excited about how far we've come, but even more excited by > what the future holds!'" > > http://developers.slashdot.org/article.pl?sid=06/09/06/2134234&from=rss > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From john.zelle at wartburg.edu Thu Sep 7 02:46:39 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Wed, 6 Sep 2006 19:46:39 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <80356E97-0C6F-476F-9014-990FBE87311B@livingcode.org> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609061651.40903.john.zelle@wartburg.edu> <80356E97-0C6F-476F-9014-990FBE87311B@livingcode.org> Message-ID: <200609061946.39987.john.zelle@wartburg.edu> On Wednesday 06 September 2006 6:22 pm, Dethe Elza wrote: > On 6-Sep-06, at 2:51 PM, John Zelle wrote: > > I believe that a good language is one that provides a natural way > > to express > > algorithms as we think about them. Python is one of the very best I > > have > > found for that. I believe (for reasons already stated) it is less good > > without raw_input and input. That is and was the "tone" of the > > discussion, > > so I'm finding it hard to figure out what you take exception to. > > I understand the arguments for input() and raw_input(), and agree > with them (despite my playing Devil's Advocate earlier in this > thread). I would like to see them renamed to be more descriptive of > what they actually do (input() and eval_input() ?), but on the whole > I agree that they are useful, especially if sys.stdin.readline is not > equivalent anyway (but see below about that). I would want to keep the original names if only for historical reasons. > But I do understand where Arthur is coming from on this one. A > substantial part of the conversation has consisted of phrases like, > "if Python does this, I'll look elsewhere," and "I wouldn't have > chosen Python if not for input()." Things like that do read like a > threat, and they are overblown to say the least. I take exception to the word "threat" here. These are statements of intention. There are more Python-like languages all the time. If one of those ends up with a better constellation of features than Python for building a pedagogically sound curriculum, then folks will begin to switch. I think you will find that serious CS educators are always surveying the programming language landscape. These were honest opinions about input and raw_input helping attract us to Python. As I said, losing these takes away some of its charm. It's only a threat if you think we really have some influence over Guido :-). I've been trying to lay out rational arguments on a number of fronts. > Python has a lot > going for it besides input(), to say the least. If anyone really > intended to stop using Python over that one, trivial, feature > (useful, yes, but still trivial), then I don't see why they would > stay with Python because of it. It's a constellation of features. No language is perfect for everyone or every application. However, people with experience teaching have learned that language does matter when it comes to introductory programming. We are arguing for keeping these particular features in the constellation. Does one feature make or break? Of course not, unless it's the only real difference between two languages. > It sure stirred up a lot of commentary though. > > >> But it is trivial to add this back in: > >>>>> raw_input = sys.stdin.readline > > > > This is simply not equivalent. readline does not take a prompt as > > an argument. > > You'll have to write the function. > > Well, no, you don't really. You could teach students to use print() > or sys.stdout.write() for output (including the prompt) and > sys.stdin.readline() for input. Or you could write it: > def raw_input(prompt=""): > sys.stdout.write(prompt) > return sys.stdin.readline() > Look at my previous comments, I said you'd have to write a function for it, which is what you did. > Heck, writing that (without having to understand it all) could be a > great introduction to programming, by creating their own utility that > they can use all the time they learn that there's nothing magic about > programming. No, you've done just the opposite. You've taught them there's a magic incantation they don't yet understand. Students (at least at the level I see) are frustrated and feel patronized by things they are supposed to do without understanding. Then they think their job is to memorize. I don't want them to memorize, I want them to understand. > Anyone can do it. And the system isn't perfect, but if > you're missing something, you have permission and ability to add it. That's an argument for teaching functions (and later classes), which of course we do. You might be surprised to learn that functions are one of the most difficult concepts for my students to grasp. It always surprises me the difficulty they have with this idea, even though it seems trivial to us. Again, a good feature of Python is that they don't have to tackle functions on day 1. > My son learned to draw using perspective when he was three, not > because he understood it, but because he watched what his older > sister did and imitated her. I don't understand the idea that we > can't introduce things to students until they've understood all the > underlying concepts--that's not how we learn anything else in life. I don't think this is analogous, as drawing in perspective is not an analytical skill. Tiger Woods learned to golf at 3 without understanding anything about the golf swing or the physics of the game. Some skills can be learned (are best learned) by imitation. But imitating a computer programmer (at that level anyway) is just typing. Being able to type a program is not the same as programming. Meeting the students where they're at, building on what they can already do, brick by brick, and allowing them to have success is the best way to motivate, in my experience. > To be honest, in thinking about teaching my nine-year-old and her > classmates Python it never occured to me to teach them to use input() > or raw_input(). I was going to go straight to PyGame, like LiveWires > without the religion. I have no experience teaching 9 year olds (my daughter's only 8, and I have no intention of teaching her programming at the moment, as she has more important things to learn like how to read fluently and add and subtract with ease, not to mention multiply). I do have lots of experience teaching college students. There is very little of _practical use_ I can teach them day 1 with something like PyGame. I _can_ teach them _and have them understand_ a program that will help them with their accounting homework. Or one that will answer a question about the risks of gambling. That's a program that they can't buy a better version of off-the-shelf. It's something specific to a problem at hand. It's something most of them couldn't do before I opened their eyes to a new tool. Or they can write a program to investigate a little chaotic function... Those things are conceptually and practically simpler at the command line. Basic bread and butter programming is input-process-output. Sure it's not flashy, but it's useful and they can understand it. Those two things can be strong motivators. > Do you really teach students using the command- > line for programs? I live at the command-line myself, but I don't > expect that of others. I would teach them how to build a GUI or at > least use dialogs for user input--something that they can recognize > and relate to. I would certainly introduce the command-line at some > point, but not so early that they'd be scared by a little dot notation. Basic text-io is the simplest, least mysterious way to start programming. Any kind of GUI environment introduces tremendous intellectual overhead. You will have a hard time convincing me it's better to start with more complicated things and move on to the simpler. It just doesn't make sense. Even your three year old probably didn't start drawing in perspective by looking at a painting of the last supper. > > Of course, I'm a parent and an amateur teacher. Your mileage may vary. It does. But I would also be the first to admit that there is no one-size-fits-all solution to education. I'm sure many students would groove on a PyGame curriculum. I don't think it would best serve the majority of the students that I see in my classes, and there's not enough of me to tailor the curriculum to be a best fit for every single student. It has been an interesting discussion. Now I need to get back to work figuring out how to educate my students tomorrow :-) --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From tjd at sfu.ca Thu Sep 7 03:53:32 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Wed, 6 Sep 2006 18:53:32 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 Message-ID: > > I've been watching this discussion and wondering - how much of the > > problems > > people complain about would go away if here was a "teaching" > distribution > > of > > python. That is one that did the equivalent of > > > > from teaching import * > > Nowadays, college students want to do "real programming". You call a > language 'teaching' - you loose. I actually have to work hard to > convince my students that Python is not just a teaching language, but a > language for real work. I show them various rankings based on use, > salaries, jobs, etc. > > A great thing about Python is that it is popular in commercial projects > and at the same time, you can teach beginners with it. IMHO, this is one > of the most distinguishing features of Python in comparison to other > languages > > > from teaching import * > > This will immediately create two difficulties. > 1. You implicitly declare to your students you are not dealing with > "real programming". > 2. You most likely have to tell your entry-level students that you > cannot explain what the above thing means, but you will tell them later. > People switch form Java to Python to *avoid* this kind of situations. What if instead of naming the package "teaching", it was called something less offensive, like "simpleIO" or "userinput" or "interactive" or "convenience"? Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From yliow at ccis.edu Thu Sep 7 04:15:09 2006 From: yliow at ccis.edu (Liow, Dr. Yihsiang) Date: Wed, 6 Sep 2006 21:15:09 -0500 Subject: [Edu-sig] high school programming club question References: Message-ID: Hi everyone, I've been reading postings in thie group a long time but have not really posting much. Anyway, I have a question. I'm planning to start a high school programming club and I'm looking for materials. I've been programming Python for 4 years and have used PyGame, VPython in some of my CS classes. But the plan for the high school programming club is to attract high school students with no background in programming at all. I'm also planning to start small and grow slowly. So I'm thinking of going an *8-week* intro to programming using Python. The club might meet for 1 to 1.5 hours. I'll try to revive it again in Spring. Perhaps for the weeks between the two 8-week sessions, I'll try to stay in touch with the high school students using a message board. I might involve senior CS students as mentors. That's roughly the plan. The next step is just to find suitable teaching or lab material. I've already looked at LiveWire. Do you have any recommendations? Again this is for high school students with no background in programming and they might meet only 1-1.5 hours/week for 8 weeks. Also, if you have suggestions and tips for such a set up, please *do* let me know. (If you think 8 weeks of 1.5 hours is too little, then please *do* persuade me to modify my plan.) Thanks in advance. - yihsiang From ajsiegel at optonline.net Thu Sep 7 08:41:23 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 07 Sep 2006 02:41:23 -0400 Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> References: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> Message-ID: <44FFBF13.2070908@optonline.com> dblank at brynmawr.edu wrote: > >I'm working on porting our Python Robotics and associated AI code to >IronPython. > > Don't know which came first, the chicken of the egg, but is it presumptuous to assume that Microsoft's funding of Institute for Personal Robots in Education at Bryn Mawr is not totally unrelated to your decision to make the port. http://www.microsoft.com/presspass/features/2006/jul06/07-12robotics.mspx There was a time in the not too distant past where it would not seem quite as wild-eyed radical to suggest some level of discomfort with even the appearance of corporate funding influencing academic outcomes. At a minimum it seems to me that you should make sure that your audience is aware of the facts when posting an opinion about the good works of Microsoft from your academic perch. I have nothing in particular against Microsoft. I do believe that technology has been a factor among factors disruptive of some sensible levels of sensitivity to issues connected to the corporate sponsorship of academic and educational endeavors. Not here in particular, but certainly in general, I think it has indeed had a tremendous impact in influencing the debate about the role of technology in education. There is little academy left, in its more idealized sense - from what I can tell, at least in the US. Things *really are* different, really have evolved into something else again. My own sense is that necessary equilibriums have been disturbed, and instead of Kirby's triumphalism about the role of technology and the Silicon Forest - I feels something closer akin to dread. There is evolution, and there are evolutionary dead-ends. Another friendship secured, I'm sure. Art >I think .NET is going to be big in Linux. I hope Guido @ Google and Jim @ >Microsoft continue to work towards such common good. > >-Doug > > > >>"IronPython version 1.0 was just released after 3 years of >>development. Jim Hugunin, the creator of Jython and the lead developer >>of the Shared Source IronPython, made the birth announcement earlier >>this week. From the announcement: 'I wanted to understand how >>Microsoft could have screwed up so badly that the CLR was a worse >>platform for dynamic languages than the JVM... I found that Python >>could run extremely well on the CLR ? in many cases noticeably faster >>than the C-based implementation. [...] Shipping IronPython 1.0 isn't >>the end of the road, but rather the beginning. Not only will we >>continue to drive IronPython forward but we're also looking at the >>bigger picture to make all dynamic languages deeply integrated with >>the .NET platform and with technologies and products built on top of >>it. I'm excited about how far we've come, but even more excited by >>what the future holds!'" >> >>http://developers.slashdot.org/article.pl?sid=06/09/06/2134234&from=rss >>_______________________________________________ >>Edu-sig mailing list >>Edu-sig at python.org >>http://mail.python.org/mailman/listinfo/edu-sig >> >> >> > > >_______________________________________________ >Edu-sig mailing list >Edu-sig at python.org >http://mail.python.org/mailman/listinfo/edu-sig > > > > From chandrakirti at gmail.com Thu Sep 7 10:54:15 2006 From: chandrakirti at gmail.com (Lloyd Hugh Allen) Date: Thu, 7 Sep 2006 04:54:15 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609062355.55521.ms@cerenity.org> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> <200609062355.55521.ms@cerenity.org> Message-ID: <24d253d90609070154m74a67f8bm86214aa6415a9733@mail.gmail.com> How about from __past__ import raw_input ? Especially as a line that can be included in the IDLE initialization for your students? On 9/6/06, Michael wrote: > I've been watching this discussion and wondering - how much of the problems > people complain about would go away if here was a "teaching" distribution of > python. That is one that did the equivalent of > > from teaching import * > > to put things in the global namespace at start time. Generally this wouldn't > be wanted, but would be useful for putting back the things which people are > worried about losing. > > ie something akin to: > ~/Local> python -i mymods.py > >>> myinput > > >>> > > ~/Local> cat mymods.py > #!/usr/bin/python > > myinput = raw_input > ~/Local> > > That way you'd get the same default "experience" for beginners (and I think > this is vitally important myself "raw_input" and "print" are *absolutely* > *without a shadow of a doubt* *must haves* inside the default namespace for a > user (however this is implemented - preferably inside an overrideable library > rather than as language keywords). > > Byt that's my tuppence worth. Given we could fake the existance of raw_input > today, how useful would a teaching mode be? > > (think bicycle stabilisers for an analogy as to when they come off) > > > > Michael > > On Wednesday 06 September 2006 22:51, John Zelle wrote: > > On Wednesday 06 September 2006 1:24 pm, Arthur wrote: > > > John Zelle wrote: > > > >I have no idea what you mean here. Speaking only for myself, I am simply > > > >stating that a language that requires me to use an extended library to > > > > do simple input is less useful as a teaching tool than one that does > > > > not. I also gave arguments for why, as a programmer, I find it less > > > > useful. You have not addressed those arguments. > > > > > > /I think I have. > > > > > > In the decorator discussion on python-list I became the self-appointed > > > founder and chairman of the CLA - Chicken Little Anonymous. Which was > > > some self-deprecation in connection with my role in the int/int and > > > case-sensitivity ddiscussions. And allowing me some freedom to > > > adamantly voice my opinions on the introduction of decorators - I was > > > adamantly against - while letting it be known that I thought Python > > > would well survive the outcome, whatever it ended up being. > > > > > > My opinion here is that you are probably right in some senses, probably > > > wrong in others - and that Python will be not be *significantly* less > > > useful for pedagogical purposes, whatever the outcome of the issue. > > > > > > So I choose to speak to the tone of the discussions as more to the > > > substance of the issue, than is the substance of the tissue itself. And > > > as the more important issue. > > > > Fair enough. But I still think you are having a hasty reaction here. This > > discussion (as I have read it) has not been about making Python or > > programming easy. It's been about what makes Python useful both for > > programmers and for the education of new programmers. Please see the actual > > arguments made in this thread. Sometimes I think you > > dismiss opinions based on pedagogical foundations a bit too quickly and > > off-handedly. In my experience, a good language for teaching is a good > > language, period. A barrier for pedagogy is very often a barrier to > > natural/useful conceptualizations, and that speaks to language design for > > all users. > > > > People often say that Pascal was designed as a "teaching language." I > > remember a written interview with Nicklaus Wirth where he was asked what > > makes Pascal a good teaching language, and his reponse, as I remember it, > > was something like: Pascal is not a teaching language and was never > > intended to be; it was designed to be a good programming language. The > > features of its design that make it a good programming language are what > > make it a good teaching languge. > > > > I believe that a good language is one that provides a natural way to > > express algorithms as we think about them. Python is one of the very best I > > have found for that. I believe (for reasons already stated) it is less good > > without raw_input and input. That is and was the "tone" of the discussion, > > so I'm finding it hard to figure out what you take exception to. > > > > --John > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From ajsiegel at optonline.net Fri Sep 8 02:27:06 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 07 Sep 2006 20:27:06 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <721e81490609061518h2a86346h517bfec26a4c662d@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609060853.20470.john.zelle@wartburg.edu> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> <721e81490609061518h2a86346h517bfec26a4c662d@mail.gmail.com> Message-ID: <4500B8DA.3090906@optonline.com> Joshua Zucker wrote: >noticeable minus if in the early days of the course I had to talk >about import, and dot notation, and so on ... to me it feels like >being forced into a Java/OOPish mindset for how to structure a >program, instead of being able to use functional programming or even >just plain old C-like style. I think I'm only talking about maybe the >first week of a course here, but still, that first week can do a lot >to affect people's impressions of the language or even of programming >as a whole. > Is it reasonable to expect Guido to design his 100 year language around a one week problem? Art From delza at livingcode.org Thu Sep 7 15:30:17 2006 From: delza at livingcode.org (Dethe Elza) Date: Thu, 7 Sep 2006 06:30:17 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <24d253d90609070154m74a67f8bm86214aa6415a9733@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> <200609062355.55521.ms@cerenity.org> <24d253d90609070154m74a67f8bm86214aa6415a9733@mail.gmail.com> Message-ID: <0693FF3E-AFE8-4A22-BC42-9D73F403F107@livingcode.org> On 7-Sep-06, at 1:54 AM, Lloyd Hugh Allen wrote: > How about > > from __past__ import raw_input +1 ROTFL %-) --Dethe > > ? Especially as a line that can be included in the IDLE initialization > for your students? > > On 9/6/06, Michael wrote: >> I've been watching this discussion and wondering - how much of the >> problems >> people complain about would go away if here was a "teaching" >> distribution of >> python. That is one that did the equivalent of >> >> from teaching import * >> >> to put things in the global namespace at start time. Generally >> this wouldn't >> be wanted, but would be useful for putting back the things which >> people are >> worried about losing. >> >> ie something akin to: >> ~/Local> python -i mymods.py >>>>> myinput >> >>>>> >> >> ~/Local> cat mymods.py >> #!/usr/bin/python >> >> myinput = raw_input >> ~/Local> >> >> That way you'd get the same default "experience" for beginners >> (and I think >> this is vitally important myself "raw_input" and "print" are >> *absolutely* >> *without a shadow of a doubt* *must haves* inside the default >> namespace for a >> user (however this is implemented - preferably inside an >> overrideable library >> rather than as language keywords). >> >> Byt that's my tuppence worth. Given we could fake the existance of >> raw_input >> today, how useful would a teaching mode be? >> >> (think bicycle stabilisers for an analogy as to when they come off) >> >> >> >> Michael >> >> On Wednesday 06 September 2006 22:51, John Zelle wrote: >>> On Wednesday 06 September 2006 1:24 pm, Arthur wrote: >>>> John Zelle wrote: >>>>> I have no idea what you mean here. Speaking only for myself, I >>>>> am simply >>>>> stating that a language that requires me to use an extended >>>>> library to >>>>> do simple input is less useful as a teaching tool than one that >>>>> does >>>>> not. I also gave arguments for why, as a programmer, I find it >>>>> less >>>>> useful. You have not addressed those arguments. >>>> >>>> /I think I have. >>>> >>>> In the decorator discussion on python-list I became the self- >>>> appointed >>>> founder and chairman of the CLA - Chicken Little Anonymous. >>>> Which was >>>> some self-deprecation in connection with my role in the int/int and >>>> case-sensitivity ddiscussions. And allowing me some freedom to >>>> adamantly voice my opinions on the introduction of decorators - >>>> I was >>>> adamantly against - while letting it be known that I thought Python >>>> would well survive the outcome, whatever it ended up being. >>>> >>>> My opinion here is that you are probably right in some senses, >>>> probably >>>> wrong in others - and that Python will be not be *significantly* >>>> less >>>> useful for pedagogical purposes, whatever the outcome of the issue. >>>> >>>> So I choose to speak to the tone of the discussions as more to the >>>> substance of the issue, than is the substance of the tissue >>>> itself. And >>>> as the more important issue. >>> >>> Fair enough. But I still think you are having a hasty reaction >>> here. This >>> discussion (as I have read it) has not been about making Python or >>> programming easy. It's been about what makes Python useful both for >>> programmers and for the education of new programmers. Please see >>> the actual >>> arguments made in this thread. Sometimes I think you >>> dismiss opinions based on pedagogical foundations a bit too >>> quickly and >>> off-handedly. In my experience, a good language for teaching is a >>> good >>> language, period. A barrier for pedagogy is very often a barrier to >>> natural/useful conceptualizations, and that speaks to language >>> design for >>> all users. >>> >>> People often say that Pascal was designed as a "teaching >>> language." I >>> remember a written interview with Nicklaus Wirth where he was >>> asked what >>> makes Pascal a good teaching language, and his reponse, as I >>> remember it, >>> was something like: Pascal is not a teaching language and was never >>> intended to be; it was designed to be a good programming >>> language. The >>> features of its design that make it a good programming language >>> are what >>> make it a good teaching languge. >>> >>> I believe that a good language is one that provides a natural way to >>> express algorithms as we think about them. Python is one of the >>> very best I >>> have found for that. I believe (for reasons already stated) it is >>> less good >>> without raw_input and input. That is and was the "tone" of the >>> discussion, >>> so I'm finding it hard to figure out what you take exception to. >>> >>> --John >> _______________________________________________ >> Edu-sig mailing list >> Edu-sig at python.org >> http://mail.python.org/mailman/listinfo/edu-sig >> > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig When laws are outlawed, only outlaws will have laws. From pgries at cs.toronto.edu Thu Sep 7 15:04:09 2006 From: pgries at cs.toronto.edu (Paul Gries) Date: Thu, 7 Sep 2006 09:04:09 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4500B8DA.3090906@optonline.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609060853.20470.john.zelle@wartburg.edu> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> <721e81490609061518h2a86346h517bfec26a4c662d@mail.gmail.com> <4500B8DA.3090906@optonline.com> Message-ID: <06B0CDC2-EF60-444B-8946-33DA77B78789@cs.toronto.edu> On Sep 7, 2006, at 8:27 PM, Arthur wrote: > Joshua Zucker wrote: > >> noticeable minus if in the early days of the course I had to talk >> about import, and dot notation, and so on ... to me it feels like >> being forced into a Java/OOPish mindset for how to structure a >> program, instead of being able to use functional programming or even >> just plain old C-like style. I think I'm only talking about maybe >> the >> first week of a course here, but still, that first week can do a lot >> to affect people's impressions of the language or even of programming >> as a whole. >> > Is it reasonable to expect Guido to design his 100 year language > around > a one week problem? Is it reasonable to call it a one week problem if it happens three times a year for dozens of instructors and thousands of students? -- Paul Gries Senior Lecturer, Dept. of Computer Science University of Toronto From radenski at chapman.edu Thu Sep 7 15:58:09 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Thu, 7 Sep 2006 06:58:09 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 Message-ID: > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] > On Behalf Of Toby Donaldson > What if instead of naming the package "teaching", it was called > something less offensive, like "simpleIO" or "userinput" or > "interactive" or "convenience"? This is a plausible way to remove the 'teaching' label. I would prefer 'stdin'. Now imagine a beginner who is looking at her very first Python program. The first line she will see in her first program ever will be this: from stdin import * This person and her instructor will have to deal with modules and import FIRST, although the student is not likely to develop multi-modular programs at the very beginning. I wonder how is the instructor going to tell her what is the meaning of 'from stdin import *'? I guess, in the same way instructors tell what 'public static void main (...) is'. In this way we are going to the Java nonsense (nonsense from the perspective of teaching beginners, of course, otherwise Java is a wonderful language). This discussion is difficult because people speak form tow different perspective: the teacher's perspective vs the developer's. In this thread I have a teacher's perspective. I would like to see Python keep, rather than loose its edge as a beginner's language. John Zelle explained what that means very well - several times in this thread only. Let us have more teachers teach Python, and more beginners study and enjoy it. Then we will probably have more Python developers as well. > Toby Atanas From kirby.urner at gmail.com Thu Sep 7 17:11:44 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 7 Sep 2006 08:11:44 -0700 Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: <44FFBF13.2070908@optonline.com> References: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> <44FFBF13.2070908@optonline.com> Message-ID: On 9/6/06, Arthur wrote: > I have nothing in particular against Microsoft. I do believe that > technology has been a factor among factors disruptive of some sensible > levels of sensitivity to issues connected to the corporate sponsorship > of academic and educational endeavors. Not here in particular, but > certainly in general, I think it has indeed had a tremendous impact in > influencing the debate about the role of technology in education. There > is little academy left, in its more idealized sense - from what I can > tell, at least in the US. Things *really are* different, really have > evolved into something else again. My own sense is that necessary > equilibriums have been disturbed, and instead of Kirby's triumphalism > about the role of technology and the Silicon Forest - I feels something > closer akin to dread. There is evolution, and there are evolutionary > dead-ends. > > Another friendship secured, I'm sure. > > Art Interesting as always Art. >From my perspective, USA school kids are already in enforced servitude to Texas Instruments, a private commercial enterprise and maker of TI calculators. Whereas I recognized their keypads for distilling a lot of key symbols to a small turf, their success has prevented our advance to a new level, where open source is plentiful and gnu math topics wonderful. So in getting behind .NET and Monkey, you might see me trying to puppet big industry into fighting with itself -- and you'd be right in seeing that. It's companies against companies. We call that competition and model it in sports (mostly for the competent) or in war (mostly for the incompetent). We put each other "out of business" but also in a position to "learn from our mistakes" i.e. just because that enterprise came to an end, doesn't mean you can't try again another day. So you see, there are certain aspects of being a capitalist tool that I enjoy. What I don't like is the uneven playing field set up between artificial persons in the guise of real ones, and real ones -- an issue not new to you. One approach is to focus on "undoing mistakes in the law" (a kind of debugging). Another approach, mine, is to work with tribal semi-sovereignties on defining new small, medium and large enterprise models that simply operate outside "white man" jurisdiction -- in the sense of *not* inheriting centuries of dreary boilerplate (i.e. "crufty legalese" as we call it in geekese, a different coding language). The Pacific Northwest is a good state for this experiment (lots of wealthy casinos). So, does this mean Indian Gaming is getting involved in the public and private education business, pushing back against the likes of TI and MSFT, other stock ticker entities? Yes. Spirit Mountain (Grand Ronde) has been instrumental in keeping OMSI going (our favorite science museum). It also means we'll be trying out topics Pentagon Math on the rez, well before we look at reaching the burbs. The grand strategy plan is pretty open source, spelled out in some detail (a lot by Fuller, over decades). My longer term readers will find nothing new here -- they already know a lot more. Kirby From pchase at sulross.edu Thu Sep 7 21:32:55 2006 From: pchase at sulross.edu (Peter Chase) Date: Thu, 07 Sep 2006 14:32:55 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4500B8DA.3090906@optonline.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609060853.20470.john.zelle@wartburg.edu> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> <721e81490609061518h2a86346h517bfec26a4c662d@mail.gmail.com> <4500B8DA.3090906@optonline.com> Message-ID: <450073E7.8060704@sulross.edu> Arthur wrote: > Joshua Zucker wrote: > > >> noticeable minus if in the early days of the course I had to talk >> about import, and dot notation, and so on ... to me it feels like >> being forced into a Java/OOPish mindset for how to structure a >> program, instead of being able to use functional programming or even >> just plain old C-like style. I think I'm only talking about maybe the >> first week of a course here, but still, that first week can do a lot >> to affect people's impressions of the language or even of programming >> as a whole. >> >> > Is it reasonable to expect Guido to design his 100 year language around > a one week problem? > > Art > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > !DSPAM:518,450012d7175085519597328! > > > Hey! Just because my car key doesn't work doesn't mean that the car is not functional...oops! Sorry! Wrong argument. Never mind. Peter Chase From bblais at bryant.edu Thu Sep 7 21:06:18 2006 From: bblais at bryant.edu (Brian Blais) Date: Thu, 07 Sep 2006 15:06:18 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> Message-ID: <45006DAA.7010702@bryant.edu> Andre Roberge wrote: > The following is something I have been pondering for quite a while now > and am wondering what other people on this list think. > > According to PEP 3100 > (http://www.python.org/dev/peps/pep-3100/ ) > raw_input() [as well as input()] is recommended for removal from the > built-in namespace, to be replaced by sys.stdin.readline(). > > While I don't think anyone can argue that this removal makes a major > difference for Python as a programming language, I believe it makes a > significant difference for using Python as a learning language, adding > a non-trivial barrier to learning. > > Consider the following fake sessions at the interpreter prompt, where > I use extra parentheses to turn print as a function (as is also > proposed in Python 3000) - these parentheses can of course be used > with today's Python. > > # First ever program >>>> print("Hello world!") > Hello world! > > # More complicated example from the first interactive session using > today's version >>>> name = raw_input("Enter your name: ") > Enter your name: Andre >>>> print("Hello " + name + "!") > Hello Andre! > > # More or less the same example using the proposed changes. >>>> import sys >>>> print("Enter your name: ") > Enter your name: >>>> name = sys.stdin.readline() > <-- Andre >>>> print("Hello " + name + "!") > Hello Andre! > > To explain the above *simple* program to a beginner, we'd need: > 1. to introduce the import statement > 2. to introduce the dot notation (something Kirby would be happy with ;-) > > Furthermore, the flow is not the same as with today's raw_input(). > > I don't like it. > > While I totally agree with the proposed removal of input() [anything > using eval() in a hidden way is *bad*], my preference would be to keep > raw_input()'s functionality, perhaps renaming it to user_input() or > ask_user(). > > Thoughts? > I think that both should stay, perhaps with different names as suggested by others. It would seem that eval(stdin.readline()) is far more confusing to beginners. I don't see input() as dangerous at all, because no serious developer is going to include it in an end-product, and a beginner would never be in a position to do any real harm. On the other hand, input() is extremely useful, and concise. So, is this removal a done-deal, or is there some effective way of reversing the decision? Does Guido read this list? bb -- ----------------- bblais at bryant.edu http://web.bryant.edu/~bblais From ajsiegel at optonline.net Fri Sep 8 11:11:42 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 08 Sep 2006 05:11:42 -0400 Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: References: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> <44FFBF13.2070908@optonline.com> Message-ID: <450133CE.1040107@optonline.com> kirby urner wrote: > We put each other "out of business" > but also in a position to "learn from our mistakes" i.e. just because > that enterprise came to an end, doesn't mean you can't try again > another day. Guess I am a wuss. Bigger booms, less room for mistakes, second chances no longer a given. Competition of ideas and survival of the fittest ideas cannot survive as an ideal if the fittest ones are the ones that attract the most grant funding, end of discussion. End of discussion. Art From delza at livingcode.org Thu Sep 7 23:51:06 2006 From: delza at livingcode.org (Dethe Elza) Date: Thu, 7 Sep 2006 14:51:06 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45006DAA.7010702@bryant.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> Message-ID: <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> > So, is this removal a done-deal, or is there some effective way of > reversing the > decision? Does Guido read this list? It's a done deal (the ToDo list item for it marked [Done]), but it could still be reversed. Public outcry caused Guido to reverse on lambda. I can't remember offhand if map and reduce were spared or not. Guido does read this list, but I don't know how often. If you want his attention, the better way would be to post to the python-3000 list with a message that the edu-sig list has achieved rough consensus that input/rawinput should be kept, although possibly renamed, with a pointer to this thread. No guarantees that will work (and there may be a hue and cry over my use of "consensus"), but it is the most likely way to get input()'s head retroactively off the chopping block. --Dethe "I can't recommend global variables, literals, or reliance on side effects to anyone, but they've always worked for me." --Denis Richie From kirby.urner at gmail.com Fri Sep 8 00:02:50 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 7 Sep 2006 15:02:50 -0700 Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: <450133CE.1040107@optonline.com> References: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> <44FFBF13.2070908@optonline.com> <450133CE.1040107@optonline.com> Message-ID: On 9/8/06, Arthur wrote: > Guess I am a wuss. > > Bigger booms, less room for mistakes, second chances no longer a given. > Competition of ideas and survival of the fittest ideas cannot survive as > an ideal if the fittest ones are the ones that attract the most grant > funding, end of discussion. > > End of discussion. > > Art Who said anything about grant funding? You did. Kirby From kirby.urner at gmail.com Fri Sep 8 00:04:33 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 7 Sep 2006 15:04:33 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <0693FF3E-AFE8-4A22-BC42-9D73F403F107@livingcode.org> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <44FF1249.70804@optonline.com> <200609061651.40903.john.zelle@wartburg.edu> <200609062355.55521.ms@cerenity.org> <24d253d90609070154m74a67f8bm86214aa6415a9733@mail.gmail.com> <0693FF3E-AFE8-4A22-BC42-9D73F403F107@livingcode.org> Message-ID: On 9/7/06, Dethe Elza wrote: > On 7-Sep-06, at 1:54 AM, Lloyd Hugh Allen wrote: > > > How about > > > > from __past__ import raw_input > > +1 > > ROTFL %-) > > --Dethe +1 Kirby From ajsiegel at optonline.net Fri Sep 8 12:50:38 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 08 Sep 2006 06:50:38 -0400 Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: References: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> <44FFBF13.2070908@optonline.com> <450133CE.1040107@optonline.com> Message-ID: <45014AFE.70408@optonline.com> kirby urner wrote: > On 9/8/06, Arthur wrote: > Who said anything about grant funding? > > You did. Return head to sand. Art From ajsiegel at optonline.net Fri Sep 8 13:07:48 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 08 Sep 2006 07:07:48 -0400 Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: <45014AFE.70408@optonline.com> References: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> <44FFBF13.2070908@optonline.com> <450133CE.1040107@optonline.com> <45014AFE.70408@optonline.com> Message-ID: <45014F04.5070704@optonline.com> Arthur wrote: > Return head to sand. On nothing but a hunch I just googled on "MIT Media Center funding". From the wikipedia entry: """ Funding model Funding for the Media Lab works differently from most academic institutions in that the Media Lab receives a great deal of corporate sponsorship. The Media Lab receives substantial funding from a consortium of commercial partners, who gain access to the intellectual property generated at the lab. """ Why the hunch??? Is has seemed to me - just in passing - as a hotbed of intellectual dishonesty. And a noteworthy influence. head from sand -ever? Art From kirby.urner at gmail.com Fri Sep 8 01:12:51 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 7 Sep 2006 16:12:51 -0700 Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: <45014F04.5070704@optonline.com> References: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> <44FFBF13.2070908@optonline.com> <450133CE.1040107@optonline.com> <45014AFE.70408@optonline.com> <45014F04.5070704@optonline.com> Message-ID: On 9/8/06, Arthur wrote: > Why the hunch??? > > Is has seemed to me - just in passing - as a hotbed of intellectual > dishonesty. > > And a noteworthy influence. > > head from sand -ever? > > Art Too much work to read up and pass judgment, with no one paying for my opinion, so I'll just let it go with "maybe, couldn't say just now" (and noting our track record of differing opinions). I'm not banking on said lab's reputation too heavily in my own projects in any case, so can afford some blissful ignorance, I'm thinking. Kirby From ajsiegel at optonline.net Fri Sep 8 01:36:15 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 07 Sep 2006 19:36:15 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> Message-ID: <4500ACEF.6040301@optonline.com> Dethe Elza wrote: >No guarantees that will work (and there may be a hue and cry over my >use of "consensus"), but it is the most likely way to get input()'s >head retroactively off the chopping block. > >--Dethe > I'll throw in a pledge of 3 weeks of silence on edu-sig as adiitional incentive for Guido to find a way to accommodate the will of the professors. Art From dblank at brynmawr.edu Fri Sep 8 02:55:38 2006 From: dblank at brynmawr.edu (dblank at brynmawr.edu) Date: Thu, 7 Sep 2006 20:55:38 -0400 (EDT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4500ACEF.6040301@optonline.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> Message-ID: <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> [Does this capture the essense of the discussion? I know some said that they don't use them, and this would not stop them from not using them :) -Doug] Core Python maintainers, Over on the Python edu-sig, we have been discussing a small aspect of PEP 3100 and its effects on teaching and classroom use. What is at issue is input() and raw_input(), which have been targeted for removal, and marked [done]: http://www.python.org/dev/peps/pep-3100/ Guido suggested in his 2002 "Python Regrets" talk that eval(sys.stdin.readline()) and sys.stdin.readline() can be used for these, respectively. That's not quite true of course, because they also have a prompt. But even that aside, we believe that we would like to keep them as-is. I think that we have consensus among (the teachers of edu-sig) that many of us rely on the ease-of-use of the input() and raw_input() functions for one simple reason: input() and raw_input() can be used on day-1 of class, before discussing imports, streams, strings, eval, or functions. Complete replacement solutions require discussions of all of those topics. We believe that their removal goes against the spirit of Python in the classroom, and Python will be more complicated on the first day of class because of it. There were some suggestions that there could be better names for them, including "ask()" and "askexp()". In any event, we'd rather have them the way they are than not at all. Of course it is easy to add as a site.py implementation, but those of us that teach would rather use 100% Pure Python. For the complete edu-sig discussion, see: http://mail.python.org/pipermail/edu-sig/2006-September/006967.html Thank you for considering leaving this as is, The Teachers of Python edu-sig From kirby.urner at gmail.com Fri Sep 8 03:08:16 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 7 Sep 2006 18:08:16 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> Message-ID: I will add, maybe just to stir the pot, that I usually teach Python interactively in the shell for quite some time before writing any "scripts" and or if my students write stuff, it's for the purpose of importing said stuff into said shell. Ergo, I'm not one of those who uses "raw_input" from "day one". I rarely use it, and given I'd have gone over importing and namespaces in some depth before doing so, I'd accommodate the switch to importing from sys for stdin/stdout i/o w/ few problems (as long as either can still be redirected). I think some of us here maybe grew up in the days of early BASIC, when "a first program" was some loop with a menu, and users prompted with ans = raw_input("Selection?: ") type stuff. I rarely think that way anymore myself. Treating an entire module as interactive, with no looping menu overhead, is far more conducive to transitioning to the GUI event loop later. In some, maybe it's OK to get rid of raw_input if it prevents another generation of lame menu loop programming. Those should be banned except in upper level "lets think like a 1960s mainframer" course (esoteric, not for newbies). Still, that sys.stdin.readline thing looks a lot like Java -- but also C#. Sheesh, why am I worried? IronPython is setting the standard. That should be OK. So seriously, from __past__ import is my preferred solution (I called it 'retro'). I'm not wanting to sign on any petition, in any case -- not my style (except sometimes (signed a "get Shockwave on Linux!" web thingy, also "Bring Duckman cartoons to DVD!")). Kirby From andre.roberge at gmail.com Fri Sep 8 03:49:46 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Thu, 7 Sep 2006 22:49:46 -0300 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> Message-ID: <7528bcdd0609071849x2d7679acg8298a8d38df75878@mail.gmail.com> On 9/7/06, dblank at brynmawr.edu wrote: > [Does this capture the essense of the discussion? I know some said that > they don't use them, and this would not stop them from not using them :) > -Doug] Since I raised the issue in the first place, I'll just mention again one additional point I raised which may have been overlooked. It is generally recognized that input() == eval(raw_input()) is "not safe" and therefore not a good example to give to beginners. Furthermore, in the context of teaching, input() is, I believe, primarily used to extract a number from a string. Thus, I would suggest that input should be replaced by something like def get_number(prompt): s = raw_input(prompt) try: n = int(s) except: try: n = float(s) except: print s + " is not a valid number." return None return n Otherwise, while I am not using Python in a classroom, I certainly agree with the summary below and support it. Andr? > > Core Python maintainers, > > Over on the Python edu-sig, we have been discussing a small aspect of PEP > 3100 and its effects on teaching and classroom use. What is at issue is > input() and raw_input(), which have been targeted for removal, and marked > [done]: > > http://www.python.org/dev/peps/pep-3100/ > > Guido suggested in his 2002 "Python Regrets" talk that > eval(sys.stdin.readline()) and sys.stdin.readline() can be used for these, > respectively. That's not quite true of course, because they also have a > prompt. But even that aside, we believe that we would like to keep them > as-is. > > I think that we have consensus among (the teachers of edu-sig) that many > of us rely on the ease-of-use of the input() and raw_input() functions for > one simple reason: input() and raw_input() can be used on day-1 of class, > before discussing imports, streams, strings, eval, or functions. Complete > replacement solutions require discussions of all of those topics. > > We believe that their removal goes against the spirit of Python in the > classroom, and Python will be more complicated on the first day of class > because of it. > > There were some suggestions that there could be better names for them, > including "ask()" and "askexp()". In any event, we'd rather have them the > way they are than not at all. Of course it is easy to add as a site.py > implementation, but those of us that teach would rather use 100% Pure > Python. > > For the complete edu-sig discussion, see: > > http://mail.python.org/pipermail/edu-sig/2006-September/006967.html > > Thank you for considering leaving this as is, > > The Teachers of Python edu-sig > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From ianb at colorstudy.com Fri Sep 8 03:51:46 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Thu, 07 Sep 2006 20:51:46 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> Message-ID: <4500CCB2.3020708@colorstudy.com> dblank at brynmawr.edu wrote: > I think that we have consensus among (the teachers of edu-sig) that many > of us rely on the ease-of-use of the input() and raw_input() functions for > one simple reason: input() and raw_input() can be used on day-1 of class, > before discussing imports, streams, strings, eval, or functions. Complete > replacement solutions require discussions of all of those topics. I meant to interject a suggestion somewhere, but was only half-tracking the thread. I think a compromise for input() might be possible, that only allows for Python literals, but not expressions. So you could input ``1`` and get the number 1, or ``"1"`` and get the string "1", and allow lists and all that. This actually is more featureful than just eval(raw_input()), which is all input() does now. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From ajsiegel at optonline.net Fri Sep 8 03:51:49 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 07 Sep 2006 21:51:49 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> Message-ID: <4500CCB5.8010307@optonline.com> kirby urner wrote: >So seriously, from __past__ import is my preferred solution (I called >it 'retro'). > Probably an uphill battle. My understanding - based on a short conversation I had with Guido at PyCon 2004, and perhaps other references I have come across - is that he does not support the idea of these kinds of toggles as permanent language features. OTOH, if I recall correctly, Tim Peters has expressed some admiration for the Dr. Scheme scheme of things - which would presumably implies a positive view about its ability to toggle language features. Tim does not strike one as the petition signer type, in any case. I of course think the issue is blown way out of proportion in any case - cannot understand the hesitancy to introduce the concept of import on Day One, thinking it can be explained adequately in one or two succinct sentences (and probably should be in any case), and if it sounds strange on Day One, well so does everything else sound strange on Day One. So the idea that no one is coming back for Day Two for that reason is unreasonable. import is in fact the most exciting statement we have. import OpenGL import VPython import Numarray import some kid's bright idea from yesterday import CandyStore as yummies I would not have been back for Day Two of Python if I didn't understand from Day One, what import could do for me. I think the professors are very wrong here. Art > I'm not wanting to sign on any petition, in any case -- >not my style (except sometimes (signed a "get Shockwave on Linux!" web >thingy, also "Bring Duckman cartoons to DVD!")). > > From dblank at brynmawr.edu Fri Sep 8 05:08:37 2006 From: dblank at brynmawr.edu (dblank at brynmawr.edu) Date: Thu, 7 Sep 2006 23:08:37 -0400 (EDT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4500CCB5.8010307@optonline.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> Message-ID: <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> > I think the professors are very wrong here. This isn't about "I'm right; you're wrong"; it's about making a decsion that can effect the way that *others* want to use Python. Removing input() FORCES people to have to address import, streams, dot notation, functions, and strings. The whole point of keeping input() is to give the teachers a choice to do interesting things without introducing (in their mind) unnecessary topics or syntax. Personally, I have to address import fairly early for other reasons, and have never really used input(). But I don't want to make John Zelle teach the way that I do. In fact, I might want to leave some flexibility for me to adapt in the future. (Just this year, we are teaching Python in our intro courses at Bryn Mawr College, and so is Swarthmore College, Haverford College, and several other colleagues have picked it up. Python is on the move!) Java gives us no choice at all. Talk about "there's one way to do it." You must deal with too much stuff to make the computer do something, anything. I'll revise the letter to include some of the other points, especially those points that make input() BETTER than it is. Revision later... -Doug > Art > > >> I'm not wanting to sign on any petition, in any case -- >>not my style (except sometimes (signed a "get Shockwave on Linux!" web >>thingy, also "Bring Duckman cartoons to DVD!")). >> >> > > > From kirby.urner at gmail.com Fri Sep 8 06:25:55 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 7 Sep 2006 21:25:55 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> Message-ID: On 9/7/06, dblank at brynmawr.edu wrote: > > I think the professors are very wrong here. > > This isn't about "I'm right; you're wrong"; it's about making a decsion > that can effect the way that *others* want to use Python. Removing input() > FORCES people to have to address import, streams, dot notation, functions, > and strings. OK, you've persuaded me: remove it, by all means. Kirby From dblank at brynmawr.edu Fri Sep 8 13:15:31 2006 From: dblank at brynmawr.edu (dblank at brynmawr.edu) Date: Fri, 8 Sep 2006 07:15:31 -0400 (EDT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> Message-ID: <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> > On 9/7/06, dblank at brynmawr.edu wrote: >> > I think the professors are very wrong here. >> >> This isn't about "I'm right; you're wrong"; it's about making a decsion >> that can effect the way that *others* want to use Python. Removing >> input() >> FORCES people to have to address import, streams, dot notation, >> functions, >> and strings. > > OK, you've persuaded me: remove it, by all means. > :) Of course, I meant that it forces people to use those topics before they want to. I assume that you don't really want to dictate to other teachers the order that these items are addressed, right? Just checking... -Doug > Kirby > From john.zelle at wartburg.edu Fri Sep 8 16:04:22 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Fri, 8 Sep 2006 09:04:22 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609071849x2d7679acg8298a8d38df75878@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <7528bcdd0609071849x2d7679acg8298a8d38df75878@mail.gmail.com> Message-ID: <200609080904.22309.john.zelle@wartburg.edu> First up, I support the "petition"/ suggestion whatever you want to call it. I'm somewhat disappointed that our discussion here seems to have gotten derailed by Arthur's comments that it's all about ease of teaching. I think I put forward a number or solid arguments about IO being core to programming and the expressiveness of input/raw_input that no one has bothered to address. Whether you want to teach import day 1 is only one small point in the discussion as far as I'm concerned, and that seems to be the only point that is picked up in certain circles. Anyway, I also strongly support keeping the input statement, and I have to respectfully disagree with the comments below. On Thursday 07 September 2006 8:49 pm, Andre Roberge wrote: > On 9/7/06, dblank at brynmawr.edu wrote: > > [Does this capture the essense of the discussion? I know some said that > > they don't use them, and this would not stop them from not using them :) > > -Doug] > > Since I raised the issue in the first place, I'll just mention again > one additional point I raised which may have been overlooked. It is > generally recognized that input() == eval(raw_input()) is "not safe" > and therefore not a good example to give to beginners. Furthermore, > in the context of teaching, input() is, I believe, primarily used to > extract a number from a string. Thus, I would suggest that input > should be replaced by something like > > def get_number(prompt): > s = raw_input(prompt) > try: > n = int(s) > except: > try: > n = float(s) > except: > print s + " is not a valid number." > return None > return n > There is _nothing_ untoward about allowing a beginner to use input as is. Input is most easily conceptualized as "allowing a user to type an expression at runtime" or as I like to call it a "delayed expression" (see earlier post). It's very easy to grasp that in a program I can write x = 3 or x = "foo" or x = [1,2,3]; if I want to replace the righthand side of that statement with input at runtime, I just do that: x = input("Enter a value for x: "). In other words, I am letting the user write the code. That's a simple concept; saying it's dangerous is just making the statement that "programming is dangerous". Of course it is! But that's exactly what we're giving our students the power to do: be dangerous by programming. This proposal strips input of much of its power. I use input to get all kinds of data, not just numbers. It's a very expressive feature of Python, and it happens also to be padagogically useful. Proposals that turn input into some typed scanning statement ala Java (or C or C++ or Pascal) rob it of it's dynamic nature and make it unpythonic in my book. Python is a dynamic language, let's keep dynamic input. I am more comfortable with Ian's proposal to only allow Python literals (not expressions), but now you've made input more complicated by putting restrictions on it. Why can't I enter exactly what I would put in the assignment statement if I were writing the code? I often fire up Python, type a little loop and use it to evaluate expressions as a calculator. Perhaps I am tainted by my association with languages such as Lisp and Prolog that are beautiful for experimentation because they allow the freedom to intermingle programs and data. I would really miss input as a day-to-day user of Python, not just as an educator. I will have to carry my custom IO module with me and load it on every Python 3000 bearing computer I come across. What a pathetic waste of my time that will be. --Johnny Inputseed ps. That's my last entry on this thread; I've got more pressing things to worry about right now. See Arthur, I do understand it's not a life or death issue :-). > Otherwise, while I am not using Python in a classroom, I certainly > agree with the summary below and support it. > > Andr? > > > Core Python maintainers, > > > > Over on the Python edu-sig, we have been discussing a small aspect of PEP > > 3100 and its effects on teaching and classroom use. What is at issue is > > input() and raw_input(), which have been targeted for removal, and marked > > [done]: > > > > http://www.python.org/dev/peps/pep-3100/ > > > > Guido suggested in his 2002 "Python Regrets" talk that > > eval(sys.stdin.readline()) and sys.stdin.readline() can be used for > > these, respectively. That's not quite true of course, because they also > > have a prompt. But even that aside, we believe that we would like to keep > > them as-is. > > > > I think that we have consensus among (the teachers of edu-sig) that many > > of us rely on the ease-of-use of the input() and raw_input() functions > > for one simple reason: input() and raw_input() can be used on day-1 of > > class, before discussing imports, streams, strings, eval, or functions. > > Complete replacement solutions require discussions of all of those > > topics. > > > > We believe that their removal goes against the spirit of Python in the > > classroom, and Python will be more complicated on the first day of class > > because of it. > > > > There were some suggestions that there could be better names for them, > > including "ask()" and "askexp()". In any event, we'd rather have them the > > way they are than not at all. Of course it is easy to add as a site.py > > implementation, but those of us that teach would rather use 100% Pure > > Python. > > > > For the complete edu-sig discussion, see: > > > > http://mail.python.org/pipermail/edu-sig/2006-September/006967.html > > > > Thank you for considering leaving this as is, > > > > The Teachers of Python edu-sig > > > > > > _______________________________________________ > > Edu-sig mailing list > > Edu-sig at python.org > > http://mail.python.org/mailman/listinfo/edu-sig > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From andre.roberge at gmail.com Fri Sep 8 16:10:30 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Fri, 8 Sep 2006 11:10:30 -0300 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609080904.22309.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <7528bcdd0609071849x2d7679acg8298a8d38df75878@mail.gmail.com> <200609080904.22309.john.zelle@wartburg.edu> Message-ID: <7528bcdd0609080710uba113b0qb4382713ef51b7a@mail.gmail.com> On 9/8/06, John Zelle wrote: > First up, I support the "petition"/ suggestion whatever you want to call it. > > I'm somewhat disappointed that our discussion here seems to have gotten > derailed by Arthur's comments that it's all about ease of teaching. I think I > put forward a number or solid arguments about IO being core to programming > and the expressiveness of input/raw_input that no one has bothered to > address. Whether you want to teach import day 1 is only one small point in > the discussion as far as I'm concerned, and that seems to be the only point > that is picked up in certain circles. > > Anyway, I also strongly support keeping the input statement, and I have to > respectfully disagree with the comments below. > And I certainly defer to John's greater experience in teaching Python - so I rally to and support the viewpoint expressed by John below. Andr? > On Thursday 07 September 2006 8:49 pm, Andre Roberge wrote: > > On 9/7/06, dblank at brynmawr.edu wrote: > > > [Does this capture the essense of the discussion? I know some said that > > > they don't use them, and this would not stop them from not using them :) > > > -Doug] > > > > Since I raised the issue in the first place, I'll just mention again > > one additional point I raised which may have been overlooked. It is > > generally recognized that input() == eval(raw_input()) is "not safe" > > and therefore not a good example to give to beginners. Furthermore, > > in the context of teaching, input() is, I believe, primarily used to > > extract a number from a string. Thus, I would suggest that input > > should be replaced by something like > > > > def get_number(prompt): > > s = raw_input(prompt) > > try: > > n = int(s) > > except: > > try: > > n = float(s) > > except: > > print s + " is not a valid number." > > return None > > return n > > > > There is _nothing_ untoward about allowing a beginner to use input as is. > Input is most easily conceptualized as "allowing a user to type an expression > at runtime" or as I like to call it a "delayed expression" (see earlier > post). It's very easy to grasp that in a program I can write x = 3 or x > = "foo" or x = [1,2,3]; if I want to replace the righthand side of that > statement with input at runtime, I just do that: x = input("Enter a value for > x: "). In other words, I am letting the user write the code. That's a simple > concept; saying it's dangerous is just making the statement that "programming > is dangerous". Of course it is! But that's exactly what we're giving our > students the power to do: be dangerous by programming. > > This proposal strips input of much of its power. I use input to get all kinds > of data, not just numbers. It's a very expressive feature of Python, and it > happens also to be padagogically useful. Proposals that turn input into some > typed scanning statement ala Java (or C or C++ or Pascal) rob it of it's > dynamic nature and make it unpythonic in my book. Python is a dynamic > language, let's keep dynamic input. > > I am more comfortable with Ian's proposal to only allow Python literals (not > expressions), but now you've made input more complicated by putting > restrictions on it. Why can't I enter exactly what I would put in the > assignment statement if I were writing the code? I often fire up Python, type > a little loop and use it to evaluate expressions as a calculator. > > Perhaps I am tainted by my association with languages such as Lisp and Prolog > that are beautiful for experimentation because they allow the freedom to > intermingle programs and data. I would really miss input as a day-to-day user > of Python, not just as an educator. I will have to carry my custom IO module > with me and load it on every Python 3000 bearing computer I come across. What > a pathetic waste of my time that will be. > > --Johnny Inputseed > > ps. That's my last entry on this thread; I've got more pressing things to > worry about right now. See Arthur, I do understand it's not a life or death > issue :-). > > > > Otherwise, while I am not using Python in a classroom, I certainly > > agree with the summary below and support it. > > > > Andr? > > > > > Core Python maintainers, > > > > > > Over on the Python edu-sig, we have been discussing a small aspect of PEP > > > 3100 and its effects on teaching and classroom use. What is at issue is > > > input() and raw_input(), which have been targeted for removal, and marked > > > [done]: > > > > > > http://www.python.org/dev/peps/pep-3100/ > > > > > > Guido suggested in his 2002 "Python Regrets" talk that > > > eval(sys.stdin.readline()) and sys.stdin.readline() can be used for > > > these, respectively. That's not quite true of course, because they also > > > have a prompt. But even that aside, we believe that we would like to keep > > > them as-is. > > > > > > I think that we have consensus among (the teachers of edu-sig) that many > > > of us rely on the ease-of-use of the input() and raw_input() functions > > > for one simple reason: input() and raw_input() can be used on day-1 of > > > class, before discussing imports, streams, strings, eval, or functions. > > > Complete replacement solutions require discussions of all of those > > > topics. > > > > > > We believe that their removal goes against the spirit of Python in the > > > classroom, and Python will be more complicated on the first day of class > > > because of it. > > > > > > There were some suggestions that there could be better names for them, > > > including "ask()" and "askexp()". In any event, we'd rather have them the > > > way they are than not at all. Of course it is easy to add as a site.py > > > implementation, but those of us that teach would rather use 100% Pure > > > Python. > > > > > > For the complete edu-sig discussion, see: > > > > > > http://mail.python.org/pipermail/edu-sig/2006-September/006967.html > > > > > > Thank you for considering leaving this as is, > > > > > > The Teachers of Python edu-sig > > > > > > > > > _______________________________________________ > > > Edu-sig mailing list > > > Edu-sig at python.org > > > http://mail.python.org/mailman/listinfo/edu-sig > > > > _______________________________________________ > > Edu-sig mailing list > > Edu-sig at python.org > > http://mail.python.org/mailman/listinfo/edu-sig > > -- > John M. Zelle, Ph.D. Wartburg College > Professor of Computer Science Waverly, IA > john.zelle at wartburg.edu (319) 352-8360 > From kirby.urner at gmail.com Fri Sep 8 16:31:44 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 07:31:44 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> Message-ID: On 9/8/06, dblank at brynmawr.edu wrote: > :) Of course, I meant that it forces people to use those topics before > they want to. > > I assume that you don't really want to dictate to other teachers the order > that these items are addressed, right? Just checking... > > -Doug I think there's more to this picture than we're discussing here. How does this removal of 'raw_input' and 'input' relate to the proposal to remove 'print'? Will that capability be in sys.stdout or something? As for dictating to teachers, you're right that I don't want to do that. But nor do I want teachers to have the power to freeze features in place just on the basis of what sequence they've trained themselves to use over the years. Inertia in and of itself is just as able to kill and language as keep it lively. For example, I think the way mathematics is taught in most USA public schools these days is a disaster. We should have more phi and less pi. I regard my primary constituency as the end user, but a lot of these kids are too young to vote and/or feel inarticulate when it comes to representing their own long term best interests to adults, so I can't count on them to agree with me. Anyway, you can count on me to recruit for new ways of teaching within a dramatically redesigned curriculum (I call it gnu math). Likewise, I think "future generations" are where Guido should be looking, not at entrenched special interests, be those teachers, astronomers, number crunchers, former C programmers, Perl refugees, dabblers, Schemers or whathaveyou. Python 3000 is Guido's big chance to address weaknesses with the benefit of decades of hindsight. We knew stuff would break, so just telling me such and such will be inconvenient if changed, is not a deterrent (I relish breaking things that need breaking). In the case of raw_input, I haven't had enough time to think about it, nor do I feel I have the whole picture. I recall John Zelle likewise requesting a more detailed roadmap of all proposed changes around i/o. I feel it's an inadequate process for us to just pick this one feature out of the bag, and crystalize as "teachers" around it, either pro or con. I think the best process is for those of us with a strong interest and/or strong opinions about Python 3000, to work directly with the dev people, and not turn edu-sig into some kind of spectator bleechers with block voting. We should remain as individuals and operate the community API effectively in that capacity, not band together in poliltical factions based on which lists we happen to have joined. So I will encourage all subscribers here to avoid any "petition" nonsense. If you wanna talk Pydev, join pydev why not? I also encourage teachers to explore IronPython, as I do think we'll be wanting the shared VMs, whoever is making them (this is *not* a MSFT plug per se). Having multiple languages targeting the same runtime architecture at a software level is too big an advantage to ignore. In retrospect, we'll likely view CPython as a prototype (one that built its own VM, so also bold and pioneering -- something for Guido to always be proud of). Kirby From radenski at chapman.edu Fri Sep 8 16:37:19 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Fri, 8 Sep 2006 07:37:19 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com><45006DAA.7010702@bryant.edu><461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org><4500ACEF.6040301@optonline.com><6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> Message-ID: ________________________________ From: edu-sig-bounces at python.org on behalf of Arthur Sent: Thu 9/7/2006 6:51 PM > import > > is in fact the most exciting statement we have. > > import OpenGL > import Python > import Numarray > import some kid's bright idea from yesterday > import CandyStore as yummies > > I would not have been back for Day Two of Python if I didn't understand > from Day One, what import could do for me. Art, this is indeed a very smart example. You are obviously way more intelligent than the average student whom we need to teach. Our job is to teach Python programming to anyone who may happen to be in our classes. What is good for you may not be good for ordinary beginners. Ordinary mortals usually do not find the meaning of life in the beausty of import statements :-) > I think the professors are very wrong here. May be there are, or may be they are not. > Art Atanas From ianb at colorstudy.com Fri Sep 8 16:42:34 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Fri, 08 Sep 2006 09:42:34 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> Message-ID: <4501815A.2040705@colorstudy.com> kirby urner wrote: > On 9/8/06, dblank at brynmawr.edu wrote: > >> :) Of course, I meant that it forces people to use those topics before >> they want to. >> >> I assume that you don't really want to dictate to other teachers the order >> that these items are addressed, right? Just checking... >> >> -Doug > > I think there's more to this picture than we're discussing here. How > does this removal of 'raw_input' and 'input' relate to the proposal to > remove 'print'? Will that capability be in sys.stdout or something? I believe the plan isn't that print be removed, just turned into a builtin function, like print('x=', x) -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From ajsiegel at optonline.net Fri Sep 8 16:50:28 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 08 Sep 2006 10:50:28 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609080904.22309.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <7528bcdd0609071849x2d7679acg8298a8d38df75878@mail.gmail.com> <200609080904.22309.john.zelle@wartburg.edu> Message-ID: <45018334.3050700@optonline.com> John Zelle wrote: >First up, I support the "petition"/ suggestion whatever you want to call it. > >I'm somewhat disappointed that our discussion here seems to have gotten >derailed by Arthur's comments that it's all about ease of teaching. I think I >put forward a number or solid arguments about IO being core to programming >and the expressiveness of input/raw_input that no one has bothered to >address. > I think that we can credit us all with understanding the range of issues. I said at the beginning that I have never used raw_input, its function was not very clear to me, while sys.stdin.readline *is*. So my disagreement seems to extend to the issue of expressiveness. But it also extends to my view of the role of Python as an introductory language, as glue, as promoting technical literacy. I prefer sys.stdin.readline as the more generally literate alternative. Unless you are telling me that stdin, stdout, stderr are themselves obsolete concepts. I am also trying to say that I do not discount your point as a reasonable, and as expressive of your own aesthetics. Nor do I discount your role in the community as a serious and significant one - one that has earned, on its merits a serious hearing, IMO. I am - in my usual clumsy way perhaps - trying to position this issue like so many other of these kinds of issues, as one on which reasonable people can disagree. And encouraging you to pursue your purpose with some better indication that you have this issue in some reasonable perspective - win or lose. Art From dblank at brynmawr.edu Fri Sep 8 16:54:29 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri, 08 Sep 2006 10:54:29 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> Message-ID: <45018425.8080700@brynmawr.edu> Kirby, As a teacher, I don't have time to argue over on python-dev what should and should not be included in the language. And don't want to! I am thinking of our "petition nonsense" as a data point for those people that do take the time over on python-dev to figure out the best thing to do next, and I'll trust them. It seemed to at least a few people on the list that python-dev'ers may not have fully considered the ramifications of this particular change in regards to teaching. We simply want to let them know about this oversight. John has written probably the best-selling textbook for intro Python; if he is concerned, then they should at least take a second look at it (whatever "it" might be.) As far as I understood the discussion about removing "print", it was to remove it as an expression and add it as a function. This is a good move (in my opinion) because it is now even more parallel with input(), and makes more sense, and makes it more useful. If the discussion was to turn "print" into "sys.stdout.write()" then I think some teachers would again be upset, and rightly so. Maybe they should rename it output() though. :) Now, it's time for the semester to begin... ACK -Doug kirby urner wrote: > On 9/8/06, dblank at brynmawr.edu wrote: > >> :) Of course, I meant that it forces people to use those topics before >> they want to. >> >> I assume that you don't really want to dictate to other teachers the >> order >> that these items are addressed, right? Just checking... >> >> -Doug > > I think there's more to this picture than we're discussing here. How > does this removal of 'raw_input' and 'input' relate to the proposal to > remove 'print'? Will that capability be in sys.stdout or something? > > As for dictating to teachers, you're right that I don't want to do > that. But nor do I want teachers to have the power to freeze features > in place just on the basis of what sequence they've trained themselves > to use over the years. Inertia in and of itself is just as able to > kill and language as keep it lively. > > For example, I think the way mathematics is taught in most USA public > schools these days is a disaster. We should have more phi and less > pi. I regard my primary constituency as the end user, but a lot of > these kids are too young to vote and/or feel inarticulate when it > comes to representing their own long term best interests to adults, so > I can't count on them to agree with me. Anyway, you can count on me > to recruit for new ways of teaching within a dramatically redesigned > curriculum (I call it gnu math). > > Likewise, I think "future generations" are where Guido should be > looking, not at entrenched special interests, be those teachers, > astronomers, number crunchers, former C programmers, Perl refugees, > dabblers, Schemers or whathaveyou. Python 3000 is Guido's big chance > to address weaknesses with the benefit of decades of hindsight. We > knew stuff would break, so just telling me such and such will be > inconvenient if changed, is not a deterrent (I relish breaking things > that need breaking). > > In the case of raw_input, I haven't had enough time to think about it, > nor do I feel I have the whole picture. I recall John Zelle likewise > requesting a more detailed roadmap of all proposed changes around i/o. > I feel it's an inadequate process for us to just pick this one > feature out of the bag, and crystalize as "teachers" around it, either > pro or con. > > I think the best process is for those of us with a strong interest > and/or strong opinions about Python 3000, to work directly with the > dev people, and not turn edu-sig into some kind of spectator bleechers > with block voting. We should remain as individuals and operate the > community API effectively in that capacity, not band together in > poliltical factions based on which lists we happen to have joined. > > So I will encourage all subscribers here to avoid any "petition" > nonsense. If you wanna talk Pydev, join pydev why not? I also > encourage teachers to explore IronPython, as I do think we'll be > wanting the shared VMs, whoever is making them (this is *not* a MSFT > plug per se). Having multiple languages targeting the same runtime > architecture at a software level is too big an advantage to ignore. > In retrospect, we'll likely view CPython as a prototype (one that > built its own VM, so also bold and pioneering -- something for Guido > to always be proud of). > > Kirby > > From kirby.urner at gmail.com Fri Sep 8 17:07:05 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 08:07:05 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> Message-ID: On 9/8/06, Radenski, Atanas wrote: > You are obviously way more intelligent than the average student whom we need to teach. > Our job is to teach Python programming to anyone who may happen to be in our > classes. What is good for you may not be good for ordinary beginners. Ordinary mortals > usually do not find the meaning of life in the beausty of import statements :-) Ordinary mortals should. I don't like pandering to beginners, dumbing it all down for their sake. Arthur, a paradigm beginner at one point (an articulate one though) made it clear that *he* doesn't want dumbing down "to make it easier for newbies" either. He *hates* being condescended to (and I appreciate that). So I, for my part, as a teacher (professionally, I get paid), do NOT regard it as my job to dilute Python to whatever extent necessary. I talk about namespaces immediately, on the very first day, as I've chronicled in this archive. Teachers who don't: I compete with them, I say "here, you learn Kung Fu, there, they treat you like you'll never have skills." > > I think the professors are very wrong here. > > May be there are, or may be they are not. > > > Art > > Atanas And I *certainly* champion the right to take issue with "professors" even within their realm of maximum expertise (teaching, supposedly, but we many times discover otherwise). Kirby From kirby.urner at gmail.com Fri Sep 8 17:12:22 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 08:12:22 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45018425.8080700@brynmawr.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> <45018425.8080700@brynmawr.edu> Message-ID: On 9/8/06, Douglas S. Blank wrote: > Kirby, > > As a teacher, I don't have time to argue over on python-dev what should > and should not be included in the language. And don't want to! I am > thinking of our "petition nonsense" as a data point for those people > that do take the time over on python-dev to figure out the best thing to > do next, and I'll trust them. As a teacher, I don't want other teachers meddling with our snake on a "don't have time" basis -- except in their individual capacities. As "petition signers" I have no interest in them. > It seemed to at least a few people on the list that python-dev'ers may > not have fully considered the ramifications of this particular change in > regards to teaching. We simply want to let them know about this > oversight. John has written probably the best-selling textbook for intro > Python; if he is concerned, then they should at least take a second look > at it (whatever "it" might be.) John gets my respect and attention, but that doesn't mean he adds any weight to his views by circulating a petition (which, for the record *he has not done*). The minute he politicizes it in this way, I start to lower my opinion. > As far as I understood the discussion about removing "print", it was to > remove it as an expression and add it as a function. This is a good move > (in my opinion) because it is now even more parallel with input(), and > makes more sense, and makes it more useful. If the discussion was to > turn "print" into "sys.stdout.write()" then I think some teachers would > again be upset, and rightly so. Maybe they should rename it output() > though. :) I'm sick of these "teachers" you keep talking about. They should all just go away, and let the real programmers have their jobs. Don't even *think* about teaching Python if you haven't coded in it professionally and made real money off it. That's closer to my attitude than "oh, the teachers are upset, we should care." > Now, it's time for the semester to begin... ACK > > -Doug I hope we continue ignoring "teachers" completely, but not John Zelle. I also listen to Arthur and Dethe. Kirby From driscollkevin at gmail.com Fri Sep 8 17:29:24 2006 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Fri, 8 Sep 2006 11:29:24 -0400 Subject: [Edu-sig] Oh, the TEACHERS! Message-ID: <87a8578e0609080829t4b52fb9bicde1ab7ed7bad7a3@mail.gmail.com> > I'm sick of these "teachers" you keep talking about. They should all > just go away, and let the real programmers have their jobs. Don't > even *think* about teaching Python if you haven't coded in it > professionally and made real money off it. That's closer to my > attitude than "oh, the teachers are upset, we should care." In my coding days, I rarely used Python but I use it almost exclusively in teaching (9-12th grade, high school.) I take issue with the hyperbole above but want to steer away from the former thread title. Great developers are not by nature great teachers. Likewise, great teachers may not be great developers. Rather than choosing the either-or proposition, the two ought to work together. I have had great success bringing professionals into my classroom to be guest judges for programming competitions or to present a project with which they are engaged with in the workplace. This complementary system helps students see the connection between their schoolwork and the "real world" very concretely. The poison leaks not from any individuals but rather from the schism between academia and the rest of the programming world. Kevin From driscollkevin at gmail.com Fri Sep 8 17:33:34 2006 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Fri, 8 Sep 2006 11:33:34 -0400 Subject: [Edu-sig] Python and pre-Calculus Message-ID: <87a8578e0609080833q250a1cat4f6ea5398d0b6f19@mail.gmail.com> I'm teaching Pre-Calculus for the first time this year and am hoping to integrate Python as often as possible. My syllabus is focused on exploring functions in various forms, uses, and contexts. The intersections to programming are numerous and beautiful. I'd love to get a brainstorm happening here. Especially addressing the college educators, what do you which your freshman had seen in 11th and 12th grade? Yesterday we worked on building a complete mathematical definition for a Toaster function. Wouldn't you know it? toaster(bread) = toast ... every time! Kevin From dblank at brynmawr.edu Fri Sep 8 17:39:42 2006 From: dblank at brynmawr.edu (Douglas S. Blank) Date: Fri, 08 Sep 2006 11:39:42 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> <45018425.8080700@brynmawr.edu> Message-ID: <45018EBE.7080006@brynmawr.edu> kirby urner wrote: [snip] > I'm sick of these "teachers" you keep talking about. They should all > just go away, and let the real programmers have their jobs. Don't > even *think* about teaching Python if you haven't coded in it > professionally and made real money off it. That's closer to my > attitude than "oh, the teachers are upset, we should care." Wow. What list was this again? This response seems just a tad beyond "passionate." Some might find it even hostile. I think I must have misunderstood the goals of this mailing list. Individuals can send their own comments, whatever they may be, to python-dev. I'm going away, as requested. The noise to signal ratio here is pretty high, and now I fear I have contributed to that. You can find me over at edupython at googlegroups.com. -Doug >> Now, it's time for the semester to begin... ACK >> >> -Doug > > I hope we continue ignoring "teachers" completely, but not John Zelle. > I also listen to Arthur and Dethe. > > Kirby > > From ianb at colorstudy.com Fri Sep 8 18:01:47 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Fri, 08 Sep 2006 11:01:47 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45018425.8080700@brynmawr.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> <45018425.8080700@brynmawr.edu> Message-ID: <450193EB.5020807@colorstudy.com> Douglas S. Blank wrote: > Kirby, > > As a teacher, I don't have time to argue over on python-dev what should > and should not be included in the language. And don't want to! I am > thinking of our "petition nonsense" as a data point for those people > that do take the time over on python-dev to figure out the best thing to > do next, and I'll trust them. > > It seemed to at least a few people on the list that python-dev'ers may > not have fully considered the ramifications of this particular change in > regards to teaching. We simply want to let them know about this > oversight. John has written probably the best-selling textbook for intro > Python; if he is concerned, then they should at least take a second look > at it (whatever "it" might be.) I think this is a good idea; this entire discussion will be rather useless if no one on py-dev or py3k sees it. You don't have to necessarily speak for everyone or for edu-sig, except to note that many people want both input() and raw_input(), and point people at the discussion, and let the discussion progress however it does. The py-dev/py3k lists have a limited audience with a very specific perspective and set of interests, and outside perspectives are useful. Maybe not always appreciated, but at least useful ;) I don't think the email has to be perfect. Maybe change "consensus" to "fairly wide agreement", send it off as you wrote it, and then you and edu-sig can let it go from there without further comment. [I suspect that input() in its current form will not remain, but raw_input() may, but it entirely depends on whether anyone expresses interest in it] -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From kirby.urner at gmail.com Fri Sep 8 18:13:05 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 09:13:05 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45018EBE.7080006@brynmawr.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> <45018425.8080700@brynmawr.edu> <45018EBE.7080006@brynmawr.edu> Message-ID: > You can find me over at edupython at googlegroups.com. > > -Doug > Who said we couldn't be passionate and hostile as teachers? As long as we have it under control. I'm just registering my attitude, risking no one's reputation but my own, on a list set aside for teachers (which is what I am). I think the petition process would set a dangerous precedent, if it were in any way considered a way to get around already established machinery. It'd be just like many teachers I know to think they should get special privileges. I say we give them zero extra power, simply on the basis of their being teachers. That'd be unfair to other constituencies. As a teacher, I'd be deeply ashamed to have my name on a Python Petition of any kind, unless Guido had already signed off on that as a viable community process. To my knowledge, he hasn't. Maybe I'm out of date. Kirby From ianb at colorstudy.com Fri Sep 8 18:29:47 2006 From: ianb at colorstudy.com (Ian Bicking) Date: Fri, 08 Sep 2006 11:29:47 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> <45018425.8080700@brynmawr.edu> <45018EBE.7080006@brynmawr.edu> Message-ID: <45019A7B.8000009@colorstudy.com> kirby urner wrote: > As a teacher, I'd be deeply ashamed to have my name on a Python > Petition of any kind, unless Guido had already signed off on that as a > viable community process. To my knowledge, he hasn't. Maybe I'm out > of date. I don't understand your strong reaction. OK -- saying "if Python 3k takes away input() then I'm going to use Ruby" is pretty lame and will keep an opinion from being taken seriously. But all Doug was talking about was registering the opinion of people on edu-sig, who are not on the py-dev, and who care about these functions where most everyone else is merely indifferent. There's no formal process one way or the other; all you can do is register your opinion, there's no vote, it's not a democracy, but that doesn't mean that participation doesn't matter. -- Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org From kirby.urner at gmail.com Fri Sep 8 18:34:39 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 09:34:39 -0700 Subject: [Edu-sig] Python and pre-Calculus In-Reply-To: <87a8578e0609080833q250a1cat4f6ea5398d0b6f19@mail.gmail.com> References: <87a8578e0609080833q250a1cat4f6ea5398d0b6f19@mail.gmail.com> Message-ID: Hi Kevin -- Over on math-teach we've been hashing over whether "pre calc" is really prehistoric, as in "soon to be known as something else" i.e. if this becomes a popular insert point for such gnu languages as Python, who knows what will happen, but immediately you're putting most printed precalc text books at a disadvantage, since many if not most presume servitude to TI and/or avoid using much technology. If your school gives you a free hand as a teacher (most do not these days), then I'd think you might be interested in exploring convergent sequences, as the calculus immediately beings with limits, and a discussion of what fails to converge, vs. what does. These sequences (or partial sums, as the case may be) become immediately too complicated to compute by hand out to more than a few terms -- the ideal insertion point for a function written in some executable math language like J (or Python). Per the "raw_input" thread, in mathematics we don't "prompt ourselves" inside a function, but feed it through the "mouth" i.e. the curved parentheses after F as in F(x). Kids have usually been trained to think that way before encountering Python, in this day and age, so I hate to ruin that discipline with a lot of extraneous "ask me" type prompting, which again, mathematical functions don't do (have mouth, will use it). Let them code up a "bag" of useful tools in a module and import. If you find yourself writing a lot of scripts that only run from a command line, with a lot of raw_input prompts, maybe you should reconsider -- math is not about building a lot of i/o bureaucracy. Immediate use of tools is to be preferred over anything menu driven. You can develop your domains quickly using list comprehensions, and feed these to functions, also within list comprehensions. And definitely use generators. The fibonacci sequence is a fantastic place to begin, even if your school is a "no da vinci code" zone, sort of the way mine is (we got sick of it after a whole year of hype). We've seen lots of Sequence talk here on edu-sig, plus plenty of code, despite what detractors say about noise to signal ratio (I think they're just lyin' -- we're one of the strongest content lists anywhere). That Ramanujan Convergence Engine for Pi I just published was good, as it exercises the extended precision possibilities of the new Decimal type. Really, we need to be using Decimal quite early in Python. If you haven't encountered it by the 2nd or 3rd week, ask your teacher why this class is so dumb. Of course the reciprocal of convergence is divergence, and we have a lot of those too, especially around polyhedral and figurate numbers, both found in Pascal's Triangle (an ideal use of a generator by the way). I often start my classes with triangular and tetrahedral numbers, as a first simple exercise. Later, we might get to Chaotic, vs. Convergent or Divergent. The four attributes I use (and many of my peers do to) is: convergent, divergent, periodic and aperiodic. The chaotic is aperiodic. Plus you can be divergent and aperiodic or convergently periodic (which is different from settling down to a final limit "at infinity", which you may never do, even in theory sometimes). Here's an old calc page at my website you might get some ideas from: http://www.4dsolutions.net/ocn/precalc.html (Java broken on my box, so couldn't tell if my little applet still works). Kirby On 9/8/06, Kevin Driscoll wrote: > I'm teaching Pre-Calculus for the first time this year and am hoping > to integrate Python as often as possible. My syllabus is focused on > exploring functions in various forms, uses, and contexts. The > intersections to programming are numerous and beautiful. > > I'd love to get a brainstorm happening here. Especially addressing > the college educators, what do you which your freshman had seen in > 11th and 12th grade? > > Yesterday we worked on building a complete mathematical definition for > a Toaster function. Wouldn't you know it? toaster(bread) = toast ... > every time! > > Kevin > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From kirby.urner at gmail.com Fri Sep 8 18:41:38 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 09:41:38 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45019A7B.8000009@colorstudy.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> <45018425.8080700@brynmawr.edu> <45018EBE.7080006@brynmawr.edu> <45019A7B.8000009@colorstudy.com> Message-ID: On 9/8/06, Ian Bicking wrote: > I don't understand your strong reaction. OK -- saying "if Python 3k > takes away input() then I'm going to use Ruby" is pretty lame and will > keep an opinion from being taken seriously. But all Doug was talking > about was registering the opinion of people on edu-sig, who are not on > the py-dev, and who care about these functions where most everyone else > is merely indifferent. There's no formal process one way or the other; > all you can do is register your opinion, there's no vote, it's not a > democracy, but that doesn't mean that participation doesn't matter. > > -- > Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org We have PEPs, forums for debating them, venues in which it's the job of professionals to pay attention. What is someone to make of a "petition" showing up in an inbox, somehow stamped was belonging to Edu-Sig, which is native Python infrastructure. What's it supposed to mean? "Take me seriously just because I'm a Python SIG?" Why? If someone wants to circulate a petition, fine, but don't drag edu-sig into it, is my attitude. That's not what edu-sig is about. It's not a political forum for teachers who are too lazy or otherwise preoccupied, to avoid doing their homework as to how Python's development process is already managed. Do people send petitions to Linus Torvalds about what they'd like in the kernel? Maybe they do. Sounds pretty lame to me if they do. I would hate to see edu-sig debased into some spectator group that sees its mission as kibbitzing about Python 3000, second guessing what the core language developers are up to. That'd just kill the worth of this group to me. I'd hate too see so much good work destroyed by politicians. Kirby From kirby.urner at gmail.com Fri Sep 8 19:14:34 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 10:14:34 -0700 Subject: [Edu-sig] Oh, the TEACHERS! In-Reply-To: <87a8578e0609080829t4b52fb9bicde1ab7ed7bad7a3@mail.gmail.com> References: <87a8578e0609080829t4b52fb9bicde1ab7ed7bad7a3@mail.gmail.com> Message-ID: On 9/8/06, Kevin Driscoll wrote: > The poison leaks not from any individuals but rather from the schism > between academia and the rest of the programming world. > > Kevin I appreciate your moderating tone. I've both been a full time high school teacher (mostly math -- private Catholic academy not so far from World Trade Center NYC), worked for a large text book publisher (McGraw Hill -- Avenue of the Americas), and made a living as a professional programmer (big hospital systems, toe to toe with GE), so at least I have a lot of relevant experience to draw upon. As a gnu math teacher, I'm living this nightmare where gnu software is free, the jobs waiting, yet kids careers are being trashed by know-nothing teacher-bots in servitude to Texas Instruments and ancient textbooks devoid of important key topics. As a Silicon Forest exec, I team with Saturday Academy and PSU, other higher ed, to circumvent this sad state of affairs, and we've made real progress. Python is now used in many of our better academies. Portland is an "open source capital" (for real, not just on paper). Python as a community needs to avoid breaking down as it's put under increasing pressure and scrutiny by a lay public already suspicious of snakes. I've been taken to task on this list by some Europeans who don't understand local politics, but some of our communities are still just days out of Eden, and remember that Devil Snake with a passion, blame it for everything from homosexuality to Hillary Clinton. Now something called Python shows up, and all these geek hackers start talking about DARPA and __rib__ syntax, and the teachers just freak. Not a good scene. We try to avoid it. But this is the real world: a front lines pitched battle over what we teach children. 'Twas ever so. In USA terminology, we call it "culture wars" and know that politicians fight it badly, lamely, for the most part. So, yes, I fear the politicization of the Python community, as it comes into the public eye, as a prized asset in Public Schools (my daughter is a 7th grader in a school designed for geeks and wizards, because this is the Silicon Forest, home to the USA's most aggressive Morlock culture, unless you count Steve Jobs). We're in *no* danger of losing Python, see it spreading quickly, but we *still* don't want life to be difficult for our BDFL, and that means keeping things tidy, neat and clean, well ordered and well oiled. BDFL has to *mean* something. One thing is *doesn't* mean, has *never* meant, is mob rule. So I have to consider, every time someone comes up with a snowball momentum gathering design, a "petition" or "sign here if you agree" type document, to be tallied and scored, whether or not this is going to help Guido and the management team. I don't give teachers a lot of credit for awareness of the ramifications of their "don't have time to play by the rules, but listen to me anyway" exceptionalist attitudes. Yes, I think it's a class issue. The "expert doctors" are supposed to know more. But given my background in Princeton Philosophy, I've become *deeply* suspicious of that reflex. I've seen too much of the damage it does. The 1960s "question authority" ethic was stronger (ended a war, whereas today we send young people into carnage seemingly with no ability to help ourselves -- and I say the Ivory Tower is asleep at the switch, to top it all off). OK, by now everyone still reading is wondering what *any* of this has to do with raw_input. I've tried to give a sense of my sensibilities. Here is a summary: (1) people who want input into Python3000's design should research the process and submit feedback in their own names, with their own reputations on the line, not as "one of a crowd of people" and *especially* not as "the undersigned subscribers of edu-sig" (that'd be pure brain rot from my perspective) (2) prompting oneself for input is a holdover from prehistoric dino terminal window days and should not be front and center. Just like with 'copy' we put it up on a shelf, to discourage accessing this 'honey jar' of a previous generation (bad habits are hard to break) (3) Python is coming under public pressure consequent to various future shock type happenings in the culture wars, which impinge on USAers just as surely as on poor peasants in Afghantistans, sucked into contests not entirely of their own making i.e. the real world is a very rough place, and this scrutiny will stress our community (4) Guido really is benevolent and doing a good job, has a strong track record, so this question of whether "edu-sig" should start issuing "take me seriously" petitions is not just a minor one. I say: keep it the way it is, with edu-sig *outward facing* (helping advance Python) and not inwardly contemplating its own development process (aka navel gazing). Don't let the Ivory Tower get the upper hand. Having worked both sides of the fence, I know there's evil in *both* camps (i.e. there *should* be some tension -- between two competing brands of evil shall we say). We're on the front lines here, and don't have time to get involved in petty politics. How shall we teach Calculus? That's the kind of thing. Not: do we have enough political clout to block work already marked as *DONE* (get it? as in finished, over, complete -- and now it's "oh, but what if we *teachers* don't agree?" I say: "C'mon, get real."). Kirby From tjd at sfu.ca Fri Sep 8 19:22:45 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Fri, 8 Sep 2006 10:22:45 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 Message-ID: > Removing input() FORCES people to have to address import, streams, dot notation, > functions, and strings. How does using the input function avoid the use of functions? :-) Keep in mind that most students have no problem *using* unexplained features if there is a good reason to use them. For instance, most don't freak out because we don't actually tell them how "print" or "+" works. > The whole point of keeping input() is to give the teachers a choice to do > interesting things without introducing (in their mind) unnecessary topics > or syntax. To be honest, even though input() doesn't really matter to me, I find the arguments against it stronger than those for it. I think your letter needs strong arguments for keeping input. I think two points win the day: - it does not appear to be used by as many teachers as raw_input - it is trivial to simulate if you have raw_input > Personally, I have to address import fairly early for other reasons, and > have never really used input(). But I don't want to make John Zelle teach > the way that I do. I think it is okay, however, for a language to make questionable programming practices harder to use. It seems like a good way to prevent errors for everyone who uses the language. > Java gives us no choice at all. Talk about "there's one way to do it." You > must deal with too much stuff to make the computer do something, anything. Actually, Java has many ways to do most things ... for example, reading input can be done with the Scanner class, or various other combinations of IO classes. If what you mean is that Java requires the use of a lot of syntax for simple programs, then I agree. But in my experience in teaching Java, I think that problem is vastly over-stated by most people who use that argument. It is an annoyance of Java to be sure, but most students are able to use things before they completely understand them. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From tjd at sfu.ca Fri Sep 8 19:54:01 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Fri, 8 Sep 2006 10:54:01 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: > > What if instead of naming the package "teaching", it was called > > something less offensive, like "simpleIO" or "userinput" or > > "interactive" or "convenience"? > > This is a plausible way to remove the 'teaching' label. I would prefer > 'stdin'. 'stdin' is probably meaningless to beginners. I think beginners would prefer clear, simple names that don't require experience with Unix or Java. :-) > Now imagine a beginner who is looking at her very first Python program. > The first line she will see in her first program ever will be this: > > from stdin import * Yes, that would be awful. Don't do that. :-) By using a better package name and a more explicit import you could get something that reads better like from userinput import raw_input Or another approach would be to have a package named "user" or "keyboard", so you could write things like import keyboard answer = keyboard.raw_input("Morbo demands an answer: ") Another possibility, is to follow Java's Scanner class: import java.util.Scanner; ... Scanner sc = new Scanner(System.in); System.out.printf("Enter the circle's radius: "); double radius = sc.nextDouble(); A Python version could put the scanner in the main namespace, and allow code like this: print "Enter the circle's radius: " radius = scanner.next_double() print "Enter the circle's name: " name = scanner.next_line() I would prefer a name other than "scanner", but this gives the main idea. This approach has a couple of nice features: - the code is explicit and easy to read --- you can tell just by looking where a double is wanted and where a string is wanted - meaningful, custom error messages can be supplied, i.e. if the next input is not a valid double, then next_double can say it expected a double but found none, next_int could say it expected an int, etc.; this is preferable to the inconsistent behaviour of input: >>> input("Enter radius: ") Enter radius: 4 4 >>> input("Enter radius: ") Enter radius: four Traceback (most recent call last): File "", line 1, in ? File "", line 0, in ? NameError: name 'four' is not defined >>> input("Enter radius: ") Enter radius: for Traceback (most recent call last): File "", line 1, in ? File "", line 1 for ^ SyntaxError: unexpected EOF while parsing > This person and her instructor will have to deal with modules and import > FIRST, although the student is not likely to develop multi-modular > programs at the very beginning. In the Python course I teach, students need to import .py files they write into the interpreter (for testing), so they very soon need to write statements like >>> from lab2 import * Also, the very first statement students see is: >>> import turtle It is not hard to explain this in a way so that beginners can understand it well enough to use it. More details and subtleties of modules and imports come later, as needed. > I wonder how is the instructor going to tell her what is the meaning of > 'from stdin import *'? I guess, in the same way instructors tell what > 'public static void main (...) is'. In this way we are going to the Java > nonsense (nonsense from the perspective of teaching beginners, of > course, otherwise Java is a wonderful language). Its kind of like the nonsense explanations you see for the Python "print" statement and "+" operator. :-) Teaching is filled with IOUs. We often use things before we completely understand them. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From john.zelle at wartburg.edu Fri Sep 8 20:17:13 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Fri, 8 Sep 2006 13:17:13 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45019A7B.8000009@colorstudy.com> Message-ID: <200609081317932.SM01872@brian-birgen.wartburg.edu> OK, I lied: one last post. I see no problem with posting a message to whatever group seems most appropriate and including a pointer to the discussion on this thread. That's not "dragging edu-sig into a political role" it's simply avoiding rehashing what I think has been a fruitful discussion. This is a public forum, and we should be willing to bring the discussion that occurs here to others who might (should?) have an interest. --John On Friday 08 September 2006 11:41 am, kirby urner wrote: > On 9/8/06, Ian Bicking wrote: > > I don't understand your strong reaction. OK -- saying "if Python 3k > > takes away input() then I'm going to use Ruby" is pretty lame and will > > keep an opinion from being taken seriously. But all Doug was talking > > about was registering the opinion of people on edu-sig, who are not on > > the py-dev, and who care about these functions where most everyone else > > is merely indifferent. There's no formal process one way or the other; > > all you can do is register your opinion, there's no vote, it's not a > > democracy, but that doesn't mean that participation doesn't matter. > > > > -- > > Ian Bicking | ianb at colorstudy.com | http://blog.ianbicking.org > > We have PEPs, forums for debating them, venues in which it's the job > of professionals to pay attention. What is someone to make of a > "petition" showing up in an inbox, somehow stamped was belonging to > Edu-Sig, which is native Python infrastructure. What's it supposed to > mean? "Take me seriously just because I'm a Python SIG?" Why? > > If someone wants to circulate a petition, fine, but don't drag edu-sig > into it, is my attitude. That's not what edu-sig is about. It's not > a political forum for teachers who are too lazy or otherwise > preoccupied, to avoid doing their homework as to how Python's > development process is already managed. > > Do people send petitions to Linus Torvalds about what they'd like in > the kernel? Maybe they do. Sounds pretty lame to me if they do. > > I would hate to see edu-sig debased into some spectator group that > sees its mission as kibbitzing about Python 3000, second guessing what > the core language developers are up to. That'd just kill the worth of > this group to me. I'd hate too see so much good work destroyed by > politicians. > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Fri Sep 8 20:33:35 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Fri, 08 Sep 2006 18:33:35 +0000 (GMT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45006DAA.7010702@bryant.edu> <461C973B-93DD-4F4C-A63D-FD36D67B0874@livingcode.org> <4500ACEF.6040301@optonline.com> <6464.68.34.179.248.1157676938.squirrel@webmail.brynmawr.edu> <4500CCB5.8010307@optonline.com> Message-ID: From: "Radenski, Atanas" > You are obviously way more intelligent than the average student > whom we need to teach. Standardized testing seems to indicate me to be a good deal to the better spectrum of the bell curve. But I honestly believe all that buys me is the ability to be a run-of-the-mill-programmer. I certainly have no feeling of being anything other than within the middle of pack in terms of native intelligence among those who actually eventually get some grasp. I honestly feel that curriculum geared to some a population substanitally different than myself can only being some form of busywork for all concerned - as unpleasant as that might sound to those who percieve that to be their employment. Art -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060908/acac4912/attachment.html From john.zelle at wartburg.edu Fri Sep 8 20:50:54 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Fri, 8 Sep 2006 13:50:54 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> Message-ID: <200609081350.54300.john.zelle@wartburg.edu> On Friday 08 September 2006 1:33 pm, ajsiegel at optonline.net wrote: > From: "Radenski, Atanas" > > > You are obviously way more intelligent than the average student > > whom we need to teach. > > Standardized testing seems to indicate me to be a good deal to the better > spectrum of the bell curve. > > But I honestly believe all that buys me is the ability to be a > run-of-the-mill-programmer. Perhaps, but no where near a run-of-the-mill student. > I certainly have no feeling of being anything other than within the middle > of pack in terms of native intelligence among those who actually eventually > get some grasp. > > I honestly feel that curriculum geared to some a population substanitally > different than myself can only being some form of busywork for all > concerned - > > as unpleasant as that might sound to those who percieve that to be their > employment. > That's assuming that the goal of said education is to produce professional programmers. I believe that everyone has something to gain from learning what software is really all about. Most will not rise to the level of professional (or even competent) programmer. Similary, most students taking English classes will never become successful novelists. Does that mean all the others are just doing busywork? I've always thought you a champion of liberal learning, don't all students deserve to have their intellectual worlds expanded to the extent possible? --John ps. That's really, really, my last post. Unless someone actually wants to discuss the substance of the arguments I've made earlier. If challenged, I'll probably take the bait... -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Fri Sep 8 21:04:12 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Fri, 08 Sep 2006 19:04:12 +0000 (GMT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609081350.54300.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609081350.54300.john.zelle@wartburg.edu> Message-ID: ----- Original Message ----- From: John Zelle Date: Friday, September 8, 2006 2:51 pm Subject: Re: [Edu-sig] The fate of raw_input() in Python 3000 To: edu-sig at python.org > On Friday 08 September 2006 1:33 pm, ajsiegel at optonline.net wrote: > > From: "Radenski, Atanas" > > > > > You are obviously way more intelligent than the average student > > > whom we need to teach. > > > > Standardized testing seems to indicate me to be a good deal to > the better > > spectrum of the bell curve. > > > > But I honestly believe all that buys me is the ability to be a > > run-of-the-mill-programmer. > > Perhaps, but no where near a run-of-the-mill student. > > > I certainly have no feeling of being anything other than > within the middle > > of pack in terms of native intelligence among those who > actually eventually > > get some grasp. > > > > I honestly feel that curriculum geared to some a population > substanitally> different than myself can only being some form of > busywork for all > > concerned - > > > > as unpleasant as that might sound to those who percieve that > to be their > > employment. > > > > That's assuming that the goal of said education is to produce > professional > programmers. I believe that everyone has something to gain from > learning what > software is really all about. Most will not rise to the level of > professional > (or even competent) programmer. Similary, most students taking > English > classes will never become successful novelists. Does that mean > all the others > are just doing busywork? I've always thought you a champion of > liberal > learning, don't all students deserve to have their intellectual > worlds > expanded to the extent possible? > > --John > > ps. That's really, really, my last post. Unless someone actually > wants to > discuss the substance of the arguments I've made earlier. If > challenged, I'll > probably take the bait... > > -- > John M. Zelle, Ph.D. Wartburg College > Professor of Computer Science Waverly, IA > john.zelle at wartburg.edu (319) 352-8360 > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060908/759a0890/attachment.htm From ajsiegel at optonline.net Fri Sep 8 21:22:24 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Fri, 08 Sep 2006 19:22:24 +0000 (GMT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609081350.54300.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609081350.54300.john.zelle@wartburg.edu> Message-ID: From: John Zelle > > That's assuming that the goal of said education is to produce > professional > programmers. I believe that everyone has something to gain from > learning what > software is really all about. Most will not rise to the level of > professional > (or even competent) programmer. Similary, most students taking > English > classes will never become successful novelists. Does that mean > all the others > are just doing busywork? I've always thought you a champion of > liberal > learning, don't all students deserve to have their intellectual > worlds > expanded to the extent possible? Part of what would be nice if we each didn't reduce the others ideas/statements to their most absurd interpretation. The fact of the matter is that I *was* an English student, at a very unfancy commuter school and all I remember is being challenged - Chaucer *must* be read in Middle English, Joyce is Joyce, and Shakespeare is Shakespeare, nothing that can be done about that. Modern criticism is erudite, drawing upon deeper notions derived from the serious study of history, philosophy, psychology. Nothing that can be done about that either. I guess there was Composition101 - required course for engineering students. But we couldn't be asking that Guido put designing for that near the top of his agenda, could we? I guess that would be CP4E - which I have felt from the beginning was a miscue - and have never been very shy about saying so, as you well know. Art > > --John > > ps. That's really, really, my last post. Unless someone actually > wants to > discuss the substance of the arguments I've made earlier. If > challenged, I'll > probably take the bait... > > -- > John M. Zelle, Ph.D. Wartburg College > Professor of Computer Science Waverly, IA > john.zelle at wartburg.edu (319) 352-8360 > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060908/c5e66e9f/attachment.html From driscollkevin at gmail.com Fri Sep 8 21:30:10 2006 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Fri, 8 Sep 2006 15:30:10 -0400 Subject: [Edu-sig] Python and pre-Calculus In-Reply-To: References: <87a8578e0609080833q250a1cat4f6ea5398d0b6f19@mail.gmail.com> Message-ID: <87a8578e0609081230l685826abvb38b470265ebc56e@mail.gmail.com> The character of "precalc" is very strange. I find it eerie that some texts spell it "Precalculus" rather than "Pre-Calculus" as though it were a class of knowledge like Algebra, Calc, or Trig. We are building our curriculum without giving students a particular textbook so we do have a healthy amount of flexibility. Though I don't have the same bone to pick with TI, we also don't have access to many graphic calculators (nor can many of my students afford to buy their own.) As such, my colleagues and I are eager to explore other mathematical computing opportunities. Right now, our big picture curriculum leads students to developing a "toolbox" of common functions. If we can literally create a pre-calc toolbox module, it would be a wonderful realization of this goal. There is also some crossover between my programming students and the pre-calc class which will make programming projects flow a little more easily. I will be sure to post more reflections as the year progresses. Kevin On 9/8/06, kirby urner wrote: > Hi Kevin -- > > Over on math-teach we've been hashing over whether "pre calc" is > really prehistoric, as in "soon to be known as something else" i.e. if > this becomes a popular insert point for such gnu languages as Python, > who knows what will happen, but immediately you're putting most > printed precalc text books at a disadvantage, since many if not most > presume servitude to TI and/or avoid using much technology. > > If your school gives you a free hand as a teacher (most do not these > days), then I'd think you might be interested in exploring convergent > sequences, as the calculus immediately beings with limits, and a > discussion of what fails to converge, vs. what does. These sequences > (or partial sums, as the case may be) become immediately too > complicated to compute by hand out to more than a few terms -- the > ideal insertion point for a function written in some executable math > language like J (or Python). > > Per the "raw_input" thread, in mathematics we don't "prompt ourselves" > inside a function, but feed it through the "mouth" i.e. the curved > parentheses after F as in F(x). > > Kids have usually been trained to think that way before encountering > Python, in this day and age, so I hate to ruin that discipline with a > lot of extraneous "ask me" type prompting, which again, mathematical > functions don't do (have mouth, will use it). Let them code up a > "bag" of useful tools in a module and import. > > If you find yourself writing a lot of scripts that only run from a > command line, with a lot of raw_input prompts, maybe you should > reconsider -- math is not about building a lot of i/o bureaucracy. > Immediate use of tools is to be preferred over anything menu driven. > You can develop your domains quickly using list comprehensions, and > feed these to functions, also within list comprehensions. > > And definitely use generators. The fibonacci sequence is a fantastic > place to begin, even if your school is a "no da vinci code" zone, sort > of the way mine is (we got sick of it after a whole year of hype). > > We've seen lots of Sequence talk here on edu-sig, plus plenty of code, > despite what detractors say about noise to signal ratio (I think > they're just lyin' -- we're one of the strongest content lists > anywhere). That Ramanujan Convergence Engine for Pi I just published > was good, as it exercises the extended precision possibilities of the > new Decimal type. > > Really, we need to be using Decimal quite early in Python. If you > haven't encountered it by the 2nd or 3rd week, ask your teacher why > this class is so dumb. > > Of course the reciprocal of convergence is divergence, and we have a > lot of those too, especially around polyhedral and figurate numbers, > both found in Pascal's Triangle (an ideal use of a generator by the > way). > > I often start my classes with triangular and tetrahedral numbers, as a > first simple exercise. > > Later, we might get to Chaotic, vs. Convergent or Divergent. The four > attributes I use (and many of my peers do to) is: convergent, > divergent, periodic and aperiodic. The chaotic is aperiodic. Plus > you can be divergent and aperiodic or convergently periodic (which is > different from settling down to a final limit "at infinity", which you > may never do, even in theory sometimes). > > Here's an old calc page at my website you might get some ideas from: > http://www.4dsolutions.net/ocn/precalc.html (Java broken on my box, > so couldn't tell if my little applet still works). > > Kirby > > On 9/8/06, Kevin Driscoll wrote: > > I'm teaching Pre-Calculus for the first time this year and am hoping > > to integrate Python as often as possible. My syllabus is focused on > > exploring functions in various forms, uses, and contexts. The > > intersections to programming are numerous and beautiful. > > > > I'd love to get a brainstorm happening here. Especially addressing > > the college educators, what do you which your freshman had seen in > > 11th and 12th grade? > > > > Yesterday we worked on building a complete mathematical definition for > > a Toaster function. Wouldn't you know it? toaster(bread) = toast ... > > every time! > > > > Kevin > > _______________________________________________ > > Edu-sig mailing list > > Edu-sig at python.org > > http://mail.python.org/mailman/listinfo/edu-sig > > > From kirby.urner at gmail.com Fri Sep 8 21:54:27 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 12:54:27 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609081317932.SM01872@brian-birgen.wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <45019A7B.8000009@colorstudy.com> <200609081317932.SM01872@brian-birgen.wartburg.edu> Message-ID: On 9/8/06, John Zelle wrote: > OK, I lied: one last post. I see no problem with posting a message to whatever > group seems most appropriate and including a pointer to the discussion on > this thread. That's not "dragging edu-sig into a political role" it's simply > avoiding rehashing what I think has been a fruitful discussion. This is a > public forum, and we should be willing to bring the discussion that occurs > here to others who might (should?) have an interest. > > --John I completely agree with bringing threads to one anothers' attention. I do the same, all the time. Kirby From kirby.urner at gmail.com Fri Sep 8 22:04:02 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 13:04:02 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: On 9/8/06, Toby Donaldson wrote: > Teaching is filled with IOUs. We often use things before we completely > understand them. > > Toby I would like a deeper discussion of why we still need to prompt ourselves for input. I think the model today is "a person writing code for him or herself" i.e. "self as client" -- at least in an early context. We're not guiding the unknowing through a menu tree. We're computer literate, fluent. Why would we ask ourselves for raw_input, when it's much easier to just pass arguments to functions? If you're *really* coding for a complete newbie, then learn GUI programming, meet them where they want to be met. Otherwise, just import and use a namespace, like a real grownup. All this "ask myself for degrees centigrade" stuff is just too 1970s, too BASIC (yech!). Hey, I'd think about putting self-prompting I/O in a more obscure context, like copy (also out of reach as a built-in), maybe making it part of sys or something. :-D Look how C# handles I/O. That's a good example I think. System.console -- would that have been better? No one asked me, I offered no opinion. End of story then. The work is done. Python3000 shouldn't be derailed by politicians, some of whom would, in their heart of hearts, like Python to fail (just as many USA congressman actually *hate* what the USA is exposing about them). As soon as I thought "C#" I felt better. CPython -> C -> C# -> IronPython looks like a dynamite CS sequence. I'm looking forward to seeing which schools have guts enough to try it. Kirby From dcrosta at sccs.swarthmore.edu Fri Sep 8 22:30:41 2006 From: dcrosta at sccs.swarthmore.edu (Dan Crosta) Date: Fri, 08 Sep 2006 16:30:41 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: <4501D2F1.7070609@sccs.swarthmore.edu> kirby urner wrote: > I would like a deeper discussion of why we still need to prompt > ourselves for input. > > I think the model today is "a person writing code for him or herself" > i.e. "self as client" -- at least in an early context. We're not > guiding the unknowing through a menu tree. We're computer literate, > fluent. > > Why would we ask ourselves for raw_input, when it's much easier to > just pass arguments to functions? When I think back to when I was learning to program in 9th grade (I'm not a professional software devel) I know that it was really exciting to be able to twiddle with the computer for a bit, then call my mom over and have her work with my program -- simple guessing games, then eventually moving on to more sophisitcated things like memory, card games, etc. At the time I was learning QBasic, so console-oriented input was what you had. Granted QBasic had no notion of an interactive console -- or rather it did, but that was not a predominant way of interacting with it. But even though it did, it would not have been as exciting to sit my mom down with it and let her play around, and I wouldn't want to have to explain to her (even now with a nearly infinitely more sophisticated understanding of computers and programming than I did in my first months) what a function is, how to interact with it, what arguments are, etc. It may not be how you like to teach computer programming or interacting with computers, but I think there's a very important case to be made for "other as client" at the very beginning, as a way of keeping it interesting, when someone else is going to see it. > If you're *really* coding for a complete newbie, then learn GUI > programming, meet them where they want to be met. Otherwise, just > import and use a namespace, like a real grownup. All this "ask myself > for degrees centigrade" stuff is just too 1970s, too BASIC (yech!). I don't think programming with, eg, raw_input() is programming for a newbie, but it is programming *at the level of a newbie* for someone else who may or may not be -- in my mom's case, sure, if I had made a GUI that might have been easier for her. but the goal was not to make a program for her, the goal was to make a program, and having someone else who could use it was a really powerful motivator that got me to explore ways to extend it beyond the beginning code that was assigned by my teacher. - d From ajsiegel at optonline.net Fri Sep 8 22:30:05 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Fri, 08 Sep 2006 20:30:05 +0000 (GMT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609081350.54300.john.zelle@wartburg.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <200609081350.54300.john.zelle@wartburg.edu> Message-ID: From: John Zelle > > > > But I honestly believe all that buys me is the ability to be a > > run-of-the-mill-programmer. > > Perhaps, but no where near a run-of-the-mill student. For the record, I think that is really only a matter of degree of motivation. Alice's "lessons", for example, might be valid within the domain of people who don't give a shit about learning to program. But then again, the chances of teaching someone who doesn't give a shit about learning to program, to program - without the slight-of-hand of changing the meaning of the word - is zero. And for the record, my own motivation for learning to program was always as a means to an ends. At some level I perceive the details of what it means to be able to program as largely artifical construct in any case - whether it be the Python, Java, Scheme construct. And therefore not compelling, in and of itself. Realizing, as well, that is what is inevitable within these constructs - i.e. what I guess computer science is *really* about - is not something I see as accessible to me, at least without more motivation then I have to dig into it, or the level of the kind of technical intelligence where things might pop out to me more effortlessly. I like to think that in other realms,.something other might be truer, but in the technical realm I see myself as a middle brow, at best. So I have not hesitated to consider my own learning curve as typical, and suggestions from that experience as within the range of what would, should be of interest to professional educators teaching at introductory levels. Art -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060908/8bf34b12/attachment.html From kirby.urner at gmail.com Fri Sep 8 23:15:14 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 14:15:14 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4501D2F1.7070609@sccs.swarthmore.edu> References: <4501D2F1.7070609@sccs.swarthmore.edu> Message-ID: On 9/8/06, Dan Crosta wrote: > It may not be how you like to teach computer programming or interacting > with computers, but I think there's a very important case to be made for > "other as client" at the very beginning, as a way of keeping it > interesting, when someone else is going to see it. This is a good example, of showing off new skills to one's mother. But maybe CP4E is about having one's mother learn to program, in which case maybe the first thing you say is "mom, when you import, you bring in a namespace, which is like stuff you might interact with, like go from zoo import Monkey and then go mymonkey = Monkey("Curious George") To me, this sounds like you're really educating your mother, not making it be about you and your new skills, but about cluing her in, letting her be a part of your world of Python namespaces, where knowing about import is absolutely key. You're not making a monkey out of your mom, by making her loop through some little menu, oblivious of the language underneath, its logic and design. You're "protecting you mother" (aka paradigm end user) from knowing *anything* about Python. That's your goal, that's the whole point (i.e. end user = not a programmer). I'm saying CP4E is here to change all that. Your mom knows how to program, learned how to when she was your age. She's been writing little programs for her kids for decades, plus others for the microwave, light dimmers, heater, plant waterer, and car. Not because she's friggin genius or anything, but because this is 2006, and moms have skills, aren't like in the 1950s (nothing wrong with the 1950s, but nothing improving in 56 years would be laughably stupid). > > If you're *really* coding for a complete newbie, then learn GUI > > programming, meet them where they want to be met. Otherwise, just > > import and use a namespace, like a real grownup. All this "ask myself > > for degrees centigrade" stuff is just too 1970s, too BASIC (yech!). > > I don't think programming with, eg, raw_input() is programming for a > newbie, but it is programming *at the level of a newbie* for someone > else who may or may not be -- in my mom's case, sure, if I had made a > GUI that might have been easier for her. but the goal was not to make a > program for her, the goal was to make a program, and having someone else > who could use it was a really powerful motivator that got me to explore > ways to extend it beyond the beginning code that was assigned by my teacher. > > - d You should just write for yourself at first, and find that satisfying. You shouldn't need this hypothetical guinea pig other. OK, maybe a few times (and mom is proud). Start thinking like a professional really early. Code for the back office if it's back office (don't need no bells and whistles). Don't waste your life polishing API skills no job market will ever need (i.e. some raw_input based dialog, menu tree, looks like a 1960s mainframe). Or rather, don't *start* with that. Even most moms these days know that unless junior learns GUI programming, there's nothing much here, as far as "code for end user" skills. She's secretly unimpressed, but doesn't show it. Kirby From kirby.urner at gmail.com Fri Sep 8 23:27:41 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 14:27:41 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <4501D2F1.7070609@sccs.swarthmore.edu> Message-ID: On 9/8/06, kirby urner wrote: > You're not making a monkey out of your mom, by making her loop through > some little menu, oblivious of the language underneath, its logic and > design. You're "protecting you mother" (aka paradigm end user) from > knowing *anything* about Python. That's your goal, that's the whole > point (i.e. end user = not a programmer). > Just to clarify: I think it *is* condescending to newbies to force them through a lot of raw_input scripts, since this is: (a) not state of the art from and end user's point of view nor is it (not GUI) (b) not state of the art "coding for self" idiom (which'd be more shell interactive) As teachers, we shouldn't be propagating the hidden assumptions that go with raw_input, i.e. that there's this class if people out there "too dumb" to know anything about namespaces or functions. I'm saying this'll all be common knowledge soon. We'll know about 'strings' just as surely as we know about 'numbers'. Why? Because "computer literacy" is not just for some tiny inner circle. It's just basic fluency. Like my friend Gene Fowler puts it (paraphrasing): any poet worth his or her salt should know about XML already. http://controlroom.blogspot.com/2006/08/more-cast.html Kirby From tjd at sfu.ca Sat Sep 9 00:12:57 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Fri, 8 Sep 2006 15:12:57 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: On 9/8/06, kirby urner wrote: > On 9/8/06, Toby Donaldson wrote: > > > Teaching is filled with IOUs. We often use things before we completely > > understand them. > > > > Toby > > I would like a deeper discussion of why we still need to prompt > ourselves for input. Blank screens confuse end users. > I think the model today is "a person writing code for him or herself" > i.e. "self as client" -- at least in an early context. > We're not guiding the unknowing through a menu tree. We're computer literate, > fluent. Why would we ask ourselves for raw_input, when it's much easier to > just pass arguments to functions? I have no idea what you are talking about. > If you're *really* coding for a complete newbie, then learn GUI > programming, meet them where they want to be met. Otherwise, just > import and use a namespace, like a real grownup. All this "ask myself > for degrees centigrade" stuff is just too 1970s, too BASIC (yech!). I have a hard time getting through your rhetoric. > Hey, I'd think about putting self-prompting I/O in a more obscure > context, like copy (also out of reach as a built-in), maybe making it > part of sys or something. :-D > > Look how C# handles I/O. That's a good example I think. Then write a Python library that emulates it and make the world a better place. > System.console -- would that have been better? No one asked me, I > offered no opinion. End of story then. The work is done. Yep, all done. No need to keep posting about. :-) > Python3000 shouldn't be derailed by politicians, some of whom would, > in their heart of hearts, like Python to fail (just as many USA > congressman actually *hate* what the USA is exposing about them). Good grief. Why do I subscribe to this list? > As soon as I thought "C#" I felt better. CPython -> C -> C# -> > IronPython looks like a dynamite CS sequence. > > I'm looking forward to seeing which schools have guts enough to try it. Good for you. Have fun. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From kirby.urner at gmail.com Sat Sep 9 00:28:00 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 15:28:00 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: On 9/8/06, Toby Donaldson wrote: > > I think the model today is "a person writing code for him or herself" > > i.e. "self as client" -- at least in an early context. > > We're not guiding the unknowing through a menu tree. We're computer literate, > > fluent. Why would we ask ourselves for raw_input, when it's much easier to > > just pass arguments to functions? > > I have no idea what you are talking about. In the old days, the end user was confronted with a list of menu choices, usually numbered, and then a flashing prompt. You'd put in a number, corresponding to your chosen menu selection, and thereupon be taken to a "submenu" and so on. Very like these infernal "phone trees" of today ("please listen carefully, as our menu options have changed..."). If you don't remember these days, you must be rather new to the end user experience. > > If you're *really* coding for a complete newbie, then learn GUI > > programming, meet them where they want to be met. Otherwise, just > > import and use a namespace, like a real grownup. All this "ask myself > > for degrees centigrade" stuff is just too 1970s, too BASIC (yech!). > > I have a hard time getting through your rhetoric. I think it's quite expressive. I'm trying to denegrate a style of "learning to program" which I think shouldn't count any more, as a quality intro to the subject. Much better, go to a shell (Ruby, Python, J or whatever... Scheme) and start using the tools you're given. It's a rather large vocabulary sometimes, but the sense of a namepaces, perhaps augmentable (definitely augmentable in Python) is the "first encounter" we want to promote. That's the environment we also target when writing our first programs, e.g. code up a bag of sequence generators for triangular, tetrahedral, fibonacci and so on (just one example -- the math module is the paradigm, or the string module, which I'll be sad to see go). > > Hey, I'd think about putting self-prompting I/O in a more obscure > > context, like copy (also out of reach as a built-in), maybe making it > > part of sys or something. :-D > > > > Look how C# handles I/O. That's a good example I think. > > Then write a Python library that emulates it and make the world a better place. That's your advice, on the record. I have other preferences, also chronicled here. > > System.console -- would that have been better? No one asked me, I > > offered no opinion. End of story then. The work is done. > > Yep, all done. No need to keep posting about. :-) That *is* my attitude about raw_input -- it's going away, the work is done. But now I'd like to talk more about why. Of course Guido might come on the list and say he's persuaded, by all the high level arguments, to reopen the discussion. Would that surprise me. Yes, it would. But stranger things have happened. > > Python3000 shouldn't be derailed by politicians, some of whom would, > > in their heart of hearts, like Python to fail (just as many USA > > congressman actually *hate* what the USA is exposing about them). > > Good grief. Why do I subscribe to this list? Maybe for no good reason? I couldn't tell ya. If you're objecting to my glancing reference to USA politics, then I think you're awfully stringent. We're pretty free ranging around here, like uncaged egg layers. Is that bad? > > As soon as I thought "C#" I felt better. CPython -> C -> C# -> > > IronPython looks like a dynamite CS sequence. > > > > I'm looking forward to seeing which schools have guts enough to try it. > > Good for you. Have fun. > I intend to. Sorry you couldn't understand my verbiage. There's obviously some kind of language barrier between us. > Toby > -- > Dr. Toby Donaldson > School of Computing Science > Simon Fraser University (Surrey) Kirby CEO, 4D Studios Silicon Forest Portand (Oregon) From dcrosta at sccs.swarthmore.edu Sat Sep 9 00:30:51 2006 From: dcrosta at sccs.swarthmore.edu (Dan Crosta) Date: Fri, 08 Sep 2006 18:30:51 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <4501D2F1.7070609@sccs.swarthmore.edu> Message-ID: <4501EF1B.8020405@sccs.swarthmore.edu> kirby urner wrote: > On 9/8/06, Dan Crosta wrote: > >> It may not be how you like to teach computer programming or interacting >> with computers, but I think there's a very important case to be made for >> "other as client" at the very beginning, as a way of keeping it >> interesting, when someone else is going to see it. > > This is a good example, of showing off new skills to one's mother. > But maybe CP4E is about having one's mother learn to program, in which > case maybe the first thing you say is "mom, when you import, you bring > in a namespace, which is like stuff you might interact with, like go > > from zoo import Monkey > > and then go > > mymonkey = Monkey("Curious George") > > To me, this sounds like you're really educating your mother, not > making it be about you and your new skills, but about cluing her in, > letting her be a part of your world of Python namespaces, where > knowing about import is absolutely key. > > You're not making a monkey out of your mom, by making her loop through > some little menu, oblivious of the language underneath, its logic and > design. You're "protecting you mother" (aka paradigm end user) from > knowing *anything* about Python. That's your goal, that's the whole > point (i.e. end user = not a programmer). > > I'm saying CP4E is here to change all that. Your mom knows how to > program, learned how to when she was your age. She's been writing > little programs for her kids for decades, plus others for the > microwave, light dimmers, heater, plant waterer, and car. Not because > she's friggin genius or anything, but because this is 2006, and moms > have skills, aren't like in the 1950s (nothing wrong with the 1950s, > but nothing improving in 56 years would be laughably stupid). > > [...] > > You should just write for yourself at first, and find that satisfying. > You shouldn't need this hypothetical guinea pig other. OK, maybe a > few times (and mom is proud). > Well in that case I agree with you -- it would be great if my mom knew how to program. But let's be realistic: my mom has only recently learned to understand email, she's not about to go out and program her own spam filter. It's just not in her skillset, and more importantly, her interest set. I think you're projecting a bit onto the entire world to think that people are going to program their dimmer switches. Let me draw a related example: it has recently become more or less impossible to own any content sold by the MPAA and television industry, and, less so, by the RIAA. HDMI makes it impossible to do anything other than watch what your cable box records on an expensive HDTV. If you were right, there'd be a million light switch-programming mom march on Washington and Hollywood protesting this insult to their rights. Now wake up: there isn't. People want their technology to do what it needs to do at a basic level, but aren't really out there extending it; whether we like it or not, we're the exception, not the rule, us people more comfortable at a keyboard than a mouse, more comfortable knowing how it works than just knowing that it *does* work. As I said before, I think it's great that you're training the next generation to love the interactive interpreter rather than the monkey menus, if you will. I think it's great you're training people to be self-reliant and program for themselves first, then for others as a job but always still for themselves. Very Snow Crash. But not realistic, and not now. Maybe in 2036 when my generation (I'm 22) grows up and has kids of our own, maybe when I'm Dad, not Dan, people really will be able to program their light switch and microwave -- but I'm not sure what that'll really have gained us, my light switch and microwave work fine. Do yours? > Start thinking like a professional really early. Code for the back > office if it's back office (don't need no bells and whistles). > > Don't waste your life polishing API skills no job market will ever > need (i.e. some raw_input based dialog, menu tree, looks like a 1960s > mainframe). Or rather, don't *start* with that. It's hard to claim that anything you learn in CS1 (or equivalent) is either polished or a skill. Instead, I think the point is to become familiar and comfortable with computers as more than a user, and if that happens to take the form of baby steps, menu monkies, GUI programming, or whatever, as long as it happens it's good. It's evident to all of us that menu monkeying works, because that's how we all got trained programming and look where we are today. It seems fair to say that teaching through the interactive shell using functions and classes will accomplish the same goal. > Even most moms these days know that unless junior learns GUI > programming, there's nothing much here, as far as "code for end user" > skills. She's secretly unimpressed, but doesn't show it. Well, first of all, you evidently don't know my mom at all. Actually, that's a good thing, I don't think she'd like you. But more importantly, I don't think moms (at least not moms like mine) expect junior to learn anything career-relevant in 9th grade. I think the point of primary and secondary education, and to a great extent higher education (I went to a small liberal arts college), is to learn to think critically and creatively, and to problem solve primarily, and secondarily to gain training for a career. --- break --- I want to apologize before this goes any further, I realize my tone is a aggressive, and I should acknowledge that I really don't have that much at stake here in this argument, I'm neither a student learning Python nor a teacher (nor likely to become one any time soon). I was merely trying to voice another kind of opinion in favor of not making impossible a class of programming for the sake of ... well, it really sounds like you've got revolution on your mind. And that's fine, it's important to have your voice, just try not to drown out the rest of us. - d From kirby.urner at gmail.com Sat Sep 9 00:31:20 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 15:31:20 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: > Kirby > CEO, 4D Studios > Silicon Forest > Portand (Oregon) um, Portland. Kirby myspace.com/4dstudios for more re my ToonTown enterprise. From kirby.urner at gmail.com Sat Sep 9 01:02:37 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 8 Sep 2006 16:02:37 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4501EF1B.8020405@sccs.swarthmore.edu> References: <4501D2F1.7070609@sccs.swarthmore.edu> <4501EF1B.8020405@sccs.swarthmore.edu> Message-ID: On 9/8/06, Dan Crosta wrote: > But let's be realistic: my mom has only recently learned to understand > email, she's not about to go out and program her own spam filter. It's > just not in her skillset, and more importantly, her interest set. I > think you're projecting a bit onto the entire world to think that people > are going to program their dimmer switches. Well, at one time the ability to type above 30 words a minute was considered a highly specialized office skill. Only a few people knew how to drive cars (you had to be a pretty good mechanic, or count on getting stranded). Why *does* our culture assume these two classes: those who know how to program, and those who just use other peoples' programs? CP4E at least raises this as a question. To assume this dichotomy as a given, and design curriculum around it, is to my way of thinking, contrary to the goals of CP4E. CP4E is not about *making* people become programmers (in the sense of forcing), but nor is it about passively allowing Python to become the tool of those who believe programming is only for the few. I letting Python's good name get dragged through the mud by such "two culture" elitists is contrary to our BDFL's fond hopes for his language (and mine too -- really a lot of peoples'). I'd like to see basic programming and basic math taught as one and the same subject. I call it gnu math but others might call it something else. If you know what F(x) means, and that F(x) = x^2, means a domain of [1,2,3...] becomes a range of [1,4,9...] then how big a leap is it to write: >>> def F(x): return x*x >>> domain = range(10) >>> output = [F(x) for x in domain] etc. It's really the same content, isn't it, just expressed in an interactive way. Why should any 8th grader have any trouble at the above? Why do we put up with a system that thinks this is "too hard" for newbie X, and yet in *math class* that's precisely what newbie X is expected to know. We test and fail people for not getting math, not making the grade, then we do extensive hand-holding as soon as the computer is involved. Why? Seems hypocritical to me, for us to insist on math savvy as a condition for a degree, but on computer literacy as an esoteric art that one's mother should never have to know. Very strange, very twisted. > Let me draw a related example: it has recently become more or less > impossible to own any content sold by the MPAA and television industry, > and, less so, by the RIAA. HDMI makes it impossible to do anything other > than watch what your cable box records on an expensive HDTV. If you were > right, there'd be a million light switch-programming mom march on > Washington and Hollywood protesting this insult to their rights. Yes, a wonderful development. I promote the future you just described. > Now wake up: there isn't. People want their technology to do what it > needs to do at a basic level, but aren't really out there extending it; > whether we like it or not, we're the exception, not the rule, us people > more comfortable at a keyboard than a mouse, more comfortable knowing > how it works than just knowing that it *does* work. That's precisely the "us versus them" attitude I'm fighting. Now I grant you: the status quo is on your side. But that doesn't mean I support it. I see Python as a *powerful* tool for making this state of affairs go away. Pretty much anyone can drive a car. Maybe in a few years pretty much anyone might import bedroom.dimmer from DwellingMachine and write a few lines to put it on a timer. True, not everyone will. But if she's middle-aged and looks like a mom, *is* a mom, yet does the, I hope you won't act surprised. Python turned out to be that good. They're not scared of computers anymore, not leaving it to the guy geeks to explain it to 'em. A Renaissance happened. > As I said before, I think it's great that you're training the next > generation to love the interactive interpreter rather than the monkey > menus, if you will. I think it's great you're training people to be > self-reliant and program for themselves first, then for others as a job > but always still for themselves. Very Snow Crash. But not realistic, and Thank you. I like the "Very Snow Crash" identification. Very science fiction. Very futuristic. Compare with my other thought: Guido should be focusing on *coming generations* with Python3000, not the needs of today's computer illiterate, likely a dying species. > not now. Maybe in 2036 when my generation (I'm 22) grows up and has kids > of our own, maybe when I'm Dad, not Dan, people really will be able to > program their light switch and microwave -- but I'm not sure what > that'll really have gained us, my light switch and microwave work fine. > Do yours? Maybe not the best example, but I *do* want my DwellingMachine to have an API. I presumed it'd be Java a long time ago, when doing a write-up for OMSI (our favorite science museum), but that was before I'd discovered The Snake and its much simpler __rib__ syntax. > > Start thinking like a professional really early. Code for the back > > office if it's back office (don't need no bells and whistles). > > > > Don't waste your life polishing API skills no job market will ever > > need (i.e. some raw_input based dialog, menu tree, looks like a 1960s > > mainframe). Or rather, don't *start* with that. > > It's hard to claim that anything you learn in CS1 (or equivalent) is > either polished or a skill. Instead, I think the point is to become > familiar and comfortable with computers as more than a user, and if that > happens to take the form of baby steps, menu monkies, GUI programming, > or whatever, as long as it happens it's good. It's evident to all of us But model any given school as "in competition" with other schools. While yours trained you in raw_input menu trees, these other students were going crazy in open range namespaces, and learning to teach their peers the same way, even without any computer science teachers in the room (Project Kusasa model). I worry we're too plodding in CS0/CS1, too like the UK (dangerously slow when it comes to change sometimes, not at all out here on the Pacific Rim, where we compete with Singapore daily). > that menu monkeying works, because that's how we all got trained > programming and look where we are today. It seems fair to say that > teaching through the interactive shell using functions and classes will > accomplish the same goal. > Just why protest if raw_input, and the 1970s style of menu tree prompting, is going away? That was a passing phase, no? Good thing we're beyond it today. > Well, first of all, you evidently don't know my mom at all. Actually, > that's a good thing, I don't think she'd like you. > That's OK. I have a 76 year old mom of my own, whom I recently taught HTML, other webmastering. She now is a full time webmaster with her own site, using DreamWeaver. She's in London right now, probably managing her site from there. > But more importantly, I don't think moms (at least not moms like mine) > expect junior to learn anything career-relevant in 9th grade. I think > the point of primary and secondary education, and to a great extent > higher education (I went to a small liberal arts college), is to learn > to think critically and creatively, and to problem solve primarily, and > secondarily to gain training for a career. > I want to apologize before this goes any further, I realize my tone is a > aggressive, and I should acknowledge that I really don't have that much > at stake here in this argument, I'm neither a student learning Python > nor a teacher (nor likely to become one any time soon). I was merely > trying to voice another kind of opinion in favor of not making > impossible a class of programming for the sake of ... well, it really > sounds like you've got revolution on your mind. And that's fine, it's > important to have your voice, just try not to drown out the rest of us. I don't believe I'm capable of drowning out others in this particular format. I do post frequently, but others may skip, work around me, create and sign petitions, do whatever they like. I develop these strong attitudes from time to time, and act like I'm prosecuting some major war. Those who've been here awhile know I'm somewhat unpredicatable. But I have no listowner powers, don't have the power to cut anyone off. A real bully shoves kids around. Here we're all safe in our cubicles, workstations or whatever, reading some guy sound off from Portland. How is that really bullying? What can I do to you, really? Real bullies, on the other hand, have control over your grades, plus teach you stupid math tricks you'll never need, plus don't teach you Python, other useful skills. Yet they have you where they want you: depending on their school and its curriculum. That, in my view, is where the abuse often lies. And yet these teachers may be the model of politeness, telling you why *these* particular kids will never need any programming skills (like, not in *this* neighborhood they won't need 'em). Kirby From tjd at sfu.ca Sat Sep 9 01:17:55 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Fri, 8 Sep 2006 16:17:55 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: > > I have a hard time getting through your rhetoric. > > I think it's quite expressive. :-) Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From joshua.zucker at gmail.com Sat Sep 9 04:57:48 2006 From: joshua.zucker at gmail.com (Joshua Zucker) Date: Fri, 8 Sep 2006 19:57:48 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <721e81490609081407v2a28ec94g90aade43f3296dfe@mail.gmail.com> References: <721e81490609081407v2a28ec94g90aade43f3296dfe@mail.gmail.com> Message-ID: <721e81490609081957l7bfcf89fmf191ff9f4660d6ea@mail.gmail.com> Thanks, Kirby, for cluing me in that I hadn't posted it to the list. --Joshua ---------- Forwarded message ---------- From: Joshua Zucker Date: Sep 8, 2006 2:07 PM Subject: Re: [Edu-sig] The fate of raw_input() in Python 3000 To: kirby urner On 9/8/06, kirby urner wrote: > I think the model today is "a person writing code for him or herself" > i.e. "self as client" -- at least in an early context. We're not > guiding the unknowing through a menu tree. We're computer literate, > fluent. > > Why would we ask ourselves for raw_input, when it's much easier to > just pass arguments to functions? As someone who has taught a lot of functional programming (Scheme), I have a lot of sympathy for this argument. It wouldn't occur to me to teach raw_input or its equivalent anywhere early in the course, because designing functions is what it's all about! But the Scheme course I taught also came with a lot of teachpacks (read: modules to import) that did things like provide an interactive session with your function (prompting, like raw_input but with more error handling built in, or GUI). Without those, I might have been tempted to teach those input functions after all. The way my thinking is headed is toward event-driven programming (prompted both by some Java books, for which I apologize, and by some good new introductory Scheme lessons). So I'd rather see some dynamic thing, controlled by mouse clicks or key presses, as a relatively "low-level" input function, instead of just raw_input(). But by then I'd expect them to be comfortable with import anyway. My feeling in favor of keeping raw_input() is that it gives one more good choice for beginners. One of the things I enjoy most about Python is that whether I'm thinking like a Fortran programmer, a C programmer, or a Scheme programmer, I still find myself for the most part able to translate my thinking into reasonably good-looking code. Sometimes raw_input() makes me feel like I'm thinking like a BASIC programmer, but that has its place too, no? My feeling against keeping raw_input() is that we don't want them thinking that way anyway, and if someone really likes it, they should just make their own module and import it, which is a good beginner lesson. This latest from Kirby, reminding us that instead of interactive input we could just define a function and give the input that way, makes me lean even more toward the "against" camp. It'd be better education without it. --Joshua Zucker From ms at cerenity.org Sat Sep 9 12:01:15 2006 From: ms at cerenity.org (Michael) Date: Sat, 9 Sep 2006 11:01:15 +0100 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: <200609091101.16101.ms@cerenity.org> On Friday 08 September 2006 23:28, kirby urner wrote: > It's a rather large vocabulary sometimes, but the sense of a > namepaces, perhaps augmentable (definitely augmentable in Python) is > the "first encounter" we want to promote. NO IT'S NOT. You are not the world. It's a first encounter that YOU (and a few others maybe) want to promote. You are not the world. Also, different people learn differently. Forcing a single approach to teaching because you're too pigheaded to recognise that you are not the world is disgusting to see. You are not the world. You are a reason I don't talk about the reason I subscribed to this list in the first place though. Michael. From ms at cerenity.org Sat Sep 9 12:03:27 2006 From: ms at cerenity.org (Michael) Date: Sat, 9 Sep 2006 11:03:27 +0100 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: <200609091103.27626.ms@cerenity.org> On Friday 08 September 2006 23:28, kirby urner wrote: > If you're objecting to my glancing reference to USA politics, then I > think you're awfully stringent. ?We're pretty free ranging around > here, like uncaged egg layers. > > Is that bad? Yes, less than 4% of the world's population live in the USA and learns in a completely different environment. Michael. From chandrakirti at gmail.com Sat Sep 9 14:35:20 2006 From: chandrakirti at gmail.com (Lloyd Hugh Allen) Date: Sat, 9 Sep 2006 08:35:20 -0400 Subject: [Edu-sig] Oh, the TEACHERS! In-Reply-To: References: <87a8578e0609080829t4b52fb9bicde1ab7ed7bad7a3@mail.gmail.com> Message-ID: <24d253d90609090535m2b448ebrc9904fd13490f9b5@mail.gmail.com> On 9/8/06, kirby urner wrote: > (2) prompting oneself for input is a holdover from prehistoric dino > terminal window days and should not be front and center. Just like > with 'copy' we put it up on a shelf, to discourage accessing this > 'honey jar' of a previous generation (bad habits are hard to break) I was thinking about that this morning. I used to teach programming each summer at a math camp, and as a math teacher I have an opportunity to directly teach a programming course every few years (we have two math teachers with CS degrees who each do .5 to .8 programming, but every so often there is an overflow section which would tend to go to me). The curriculum that I inherited and modified in order to teach programming through Python, I initially translated from a nominally C++ curriculum that looked a lot more like a C curriculum. I edited it to include more object-oriented frame of thought, and injected some Tkinter (which did wonders for student interest). The C++ / C curriculum that I modified was probably a revision of a Pascal curriculum, and I don't know the origin of that Pascal curriculum. The model that I tried to convey to the students was that First, a computer program has OUTPUT. We would use print for an 80-minute day and Tkinter for something like a week to simply produce output (which is less boring if you include things like for loops in this time). Second, a computer program has INPUT followed by OUTPUT. This was where raw_input was nice, and students were to use raw_input followed by typecasting for numerical values. Third, a computer program has INPUT followed by COMPUTATION followed by OUTPUT. Eventually they learned to embed a try: except: in a while not loop in order to force the user to give an expected numerical value as the response to a raw_input request. This summary does an incredibly poor job of conveying the pieces of object-oriented thought that were included (e.g., string and list methods early on), but what I see happening with dropping raw_input is that we will probably want to completely and totally revise the curricula such as the one that I just described. I see a little more give-the-kids-a-black-box-module-and-have-them-call-it, which is very popular in java programming. And, of course, I'll want to completely re-write my own syllabus on the next round. Lots more Tkinter, most likely. This (need for curricular revision / rewriting from the ground up) is not a wretched thing, but it is a time-consuming one; and almost every utility program that I have written only for myself to use is now going to be broken. I remember a bit of pedagogical pain when in earlier versions of Python, all of the tutorials said to call a Tk mainloop(); then in IDLE the programs would kill IDLE itself when exited. So I told my students to write the mainloop() invocation, but to comment it out. Eventually I forgot about it. Then when I took the same lesson to a later version of Python, IDLE became smarter and the mainloop() invocation became (properly) necessary again. Every time that old code becomes invalid, there is a risk that not only programs won't run, but (especially if the instructor trusts fundamentals not to shift) lessons are broken as well. Again, I'm not saying that this is a bad thing, but it can be a painful one (especially if a new version of the language is embraced without checking through all of the sample code in each already-written lesson). There is also a risk that folks will freeze at an older version in order to avoid breaking old code. I'm sure that the obvious has also been stated elsewhere. -Lloyd, a TEACHER. (I'd tend to want to change the subject: too, but that would make it hard for me/gmail to track the thread) From bmiller at luther.edu Sat Sep 9 14:31:59 2006 From: bmiller at luther.edu (Brad Miller) Date: Sat, 9 Sep 2006 07:31:59 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <4501D2F1.7070609@sccs.swarthmore.edu> Message-ID: <37492913-7AFA-43C6-AE37-36D07569D747@luther.edu> On Sep 8, 2006, at 4:27 PM, kirby urner wrote: > On 9/8/06, kirby urner wrote: > >> You're not making a monkey out of your mom, by making her loop >> through >> some little menu, oblivious of the language underneath, its logic and >> design. You're "protecting you mother" (aka paradigm end user) from >> knowing *anything* about Python. That's your goal, that's the whole >> point (i.e. end user = not a programmer). >> > > Just to clarify: I think it *is* condescending to newbies to force > them through a lot of raw_input scripts, since this is: > > (a) not state of the art from and end user's point of view nor is > it (not GUI) > > (b) not state of the art "coding for self" idiom (which'd be more > shell interactive) > > As teachers, we shouldn't be propagating the hidden assumptions that > go with raw_input, i.e. that there's this class if people out there > "too dumb" to know anything about namespaces or functions. > > I'm saying this'll all be common knowledge soon. > > We'll know about 'strings' just as surely as we know about 'numbers'. > > Why? Because "computer literacy" is not just for some tiny inner > circle. It's just basic fluency. Like my friend Gene Fowler puts it > (paraphrasing): any poet worth his or her salt should know about XML > already. http://controlroom.blogspot.com/2006/08/more-cast.html I doubt many people on this list would claim that computer literacy is just for some inner circle. But its clear to me that we are not in the same world. In my world I get first year college students that want to major in computer science that have zero experience with programming. We get good bright young students from small towns and small schools. They don't have Saturday Academy. They don't even have computer classes to take in their high schools. If they do, computer class is about how to use Word and Excel. Unfortunately, In this world having strings and xml and modules be common knowledge isn't going to happen anytime soon. Brad > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig Bradley Miller Assistant Professor Computer Science Luther College Decorah, IA 52101 http://www.cs.luther.edu/~bmiller -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060909/e790c33c/attachment.htm From john.zelle at wartburg.edu Sat Sep 9 17:18:40 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Sat, 9 Sep 2006 10:18:40 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: Message-ID: <200609091018.40642.john.zelle@wartburg.edu> On Friday 08 September 2006 4:27 pm, kirby urner wrote: > On 9/8/06, kirby urner wrote: > > You're not making a monkey out of your mom, by making her loop through > > some little menu, oblivious of the language underneath, its logic and > > design. You're "protecting you mother" (aka paradigm end user) from > > knowing *anything* about Python. That's your goal, that's the whole > > point (i.e. end user = not a programmer). > > Just to clarify: I think it *is* condescending to newbies to force > them through a lot of raw_input scripts, since this is: > > (a) not state of the art from and end user's point of view nor is it (not > GUI) This is like saying that Physics students have to start with General Relativity and Quantum Mechanics, because those are state of the art. No one is denying that it's good to teach GUI programming at some point. Is that the simplest way to introduce programming? My learning philosophy is to always search out the simplest thing that illustrates the principles I want my students to learn at the moment. Anything more complex is just adding noise and complicating the learning process. > (b) not state of the art "coding for self" idiom (which'd be more > shell interactive) While I accept the power of twiddling in the shell particularly as an educational tool (again, I come from a Lisp/Prolog tradition), this statement is just silly. How can you define "state of the art" for any "self" but your own. When I write a script to automate some routine task, I virtually always use interactive text input. Why? Because the whole point is to make something routine and automatic. Why would I write a program that forces me to: Start Python Import a module Recall what I'm suppose to invoke and what information it needs. Instead I can write an incredibly simply script that I just click on, and when it needs information it prompts me for it. That's _my_ state of the art in programming for myself. And it's something I can teach students to do for themselves in very short order. Whether I'm writing for myself or whether I want my students to be able to write the simplest possible useful programs for themselves and others, that involves textual input. I'll say it one more time: IO is fundamental to programming; the simplest universal form of IO deserves to be in the core language so that it is easily accessible and available everywhere the language runs. Pascal got that right and Python (pre 3000) has it right. > As teachers, we shouldn't be propagating the hidden assumptions that > go with raw_input, i.e. that there's this class if people out there > "too dumb" to know anything about namespaces or functions. > Translate this to any other discipline. Running with my physics example: "As teachers, we shouldn't be propogating the hidden assumptions that go with Newtonian mechanics, i.e. that there's this class of people out there 'too dumb' to know anything about quantum physics or general relativity." Does that really make sense? The fact that there is more advanced stuff that they will surely learn in due course is in no way a justification for not teaching simpler, useful concepts first. > I'm saying this'll all be common knowledge soon. Define "soon." I see the same demographic as Brad Miller. My students are freshman in college who have never programmed. And frankly, I'm OK with that. > We'll know about 'strings' just as surely as we know about 'numbers'. > > Why? Because "computer literacy" is not just for some tiny inner > circle. It's just basic fluency. Like my friend Gene Fowler puts it > (paraphrasing): any poet worth his or her salt should know about XML > already. http://controlroom.blogspot.com/2006/08/more-cast.html None of the poets I know care a twiddle about XML. I guess we just move in different circles. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From kirby.urner at gmail.com Sat Sep 9 19:01:01 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 10:01:01 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609091101.16101.ms@cerenity.org> References: <200609091101.16101.ms@cerenity.org> Message-ID: On 9/9/06, Michael wrote: > On Friday 08 September 2006 23:28, kirby urner wrote: > > It's a rather large vocabulary sometimes, but the sense of a > > namepaces, perhaps augmentable (definitely augmentable in Python) is > > the "first encounter" we want to promote. > > NO IT'S NOT. You are not the world. > Sounds like Wittgenstein. > It's a first encounter that YOU (and a few others maybe) want to promote. > > You are not the world. No, I'm a school of thought in competition with other schools of thought. My colleagues and I would like our students to avoid some brain dead menu tree 1960s mainframer approach (that might come later, for a more specialized audience), and just learn what they've //already learned// in math class: that functions may be defined and remembered, variables too. That, they already know, since like elementary school. We want to *leverage* what's in math class, and *apply it* in ways they don't ever seem to get around to, when just sticking with TIs (no colorful polyhedron cartoons on Google Video; oh I get it, the culture is sick (not the whole world, mind you)). What's maybe new for these South African kids, studying on their own in TuxLabs, is OO, though that's going to be commonplace even in USA high schools before long. Won't it be nice for community college profs, when 90% of the incoming already know Python, Ruby or something vaguely similar? Heaven. > Also, different people learn differently. Forcing a single approach to > teaching because you're too pigheaded to recognise that you are not the > world is disgusting to see. > This is a "recruit for my school" model, not a "you must take my course" model. A student with your attitude might be enouraged to sign up with the brain dead competition. Fight us, don't join us (then join if you turn out to be any good?). > You are not the world. You are a reason I don't talk about the reason I > subscribed to this list in the first place though. > > > Michael. Just ignore my stupid posts, set a spam filter whatever. I'm a school of thought with views. I'm *not the only one* who thinks "Namepaces on Day One" -- or probably your teacher is clueless. At least do 'import this' fer gosh sake. I say that not because "I'm the world" but because I'm trying to steal you students (that is, if they think my approach might work better for them). Kirby From kirby.urner at gmail.com Sat Sep 9 19:06:52 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 10:06:52 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <37492913-7AFA-43C6-AE37-36D07569D747@luther.edu> References: <4501D2F1.7070609@sccs.swarthmore.edu> <37492913-7AFA-43C6-AE37-36D07569D747@luther.edu> Message-ID: On 9/9/06, Brad Miller wrote: > In my world I get first year college students that want to major in computer > science that have zero experience with programming. We get good bright > young students from small towns and small schools. They don't have Saturday > Academy. They don't even have computer classes to take in their high > schools. If they do, computer class is about how to use Word and Excel. > Unfortunately, In this world having strings and xml and modules be common > knowledge isn't going to happen anytime soon. > > Brad RIght, in your model, we will have another generation or two of wallowing, before high schools in rural areas either disband (why keep 'em if they're so crummy) or get with it. It'll be easy for college professors to assume a "know nothing" clientelle and get away with that. However, my model of South Africa is different. We have Kusasa, with curriculum maps, high level screencasting and mathcasting, some of the content made right here in Portland. We get to the rural areas, with jeep-loads of DVDs (if the cell net isn't working). NGOs are working alongside us. Every kid will know OO by age 18, know Python. Of course that's just a model (mine), not the reality. But that's the direction we're moving in. But in the USA it's: we're this backward ignorant country and are likely to stay this way for at least another generation. My school's answer: fight me then, because we're about changing all that here too (but if not, then at least South Africa isn't a lost cause). Kirby From kirby.urner at gmail.com Sat Sep 9 19:35:50 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 10:35:50 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609091018.40642.john.zelle@wartburg.edu> References: <200609091018.40642.john.zelle@wartburg.edu> Message-ID: On 9/9/06, John Zelle wrote: > This is like saying that Physics students have to start with General > Relativity and Quantum Mechanics, because those are state of the art. No one > is denying that it's good to teach GUI programming at some point. Is that the > simplest way to introduce programming? My learning philosophy is to always > search out the simplest thing that illustrates the principles I want my > students to learn at the moment. Anything more complex is just adding noise > and complicating the learning process. I believe in "cave paintings" which means grossly simplified demos that nevertheless give a sense of what's involved in the production setting. So a little show and tell around GUI programming in the intro session is in order. Not saying they'll be tested. Just the teacher clicking around, writing a quick "Hello World" box, filling in some blanks or whathaveyou -- the kind of thing MSFT would showcase when advertising Visual Studio to CEOs who'll probably never touch the stuff (CTO's problem). But mostly I'm advocating going to the other extreme: drop GUI as a topic and just code up a namespace, reach into the grab bag for functions, like f(x) or cos(x). We pretend kids don't have the background, but if they did *any* work with a TI calculator or an algebra course, they know about functions, at least tacitly. My prerequisite for my Saturday Academy class is algebra only, and typing above 30 a minute really helps (a lot of 'em are getting that from chat rooms these days, buy a typing drill for home). > While I accept the power of twiddling in the shell particularly as an > educational tool (again, I come from a Lisp/Prolog tradition), this statement > is just silly. How can you define "state of the art" for any "self" but your > own. When I write a script to automate some routine task, I virtually always I can define it for my gnu math teachers, the people I work with in South Africa for example. > use interactive text input. Why? Because the whole point is to make something > routine and automatic. Why would I write a program that forces me to: > Start Python > Import a module > Recall what I'm suppose to invoke and what information it needs. Sounds like your "program" is one of these top-to-bottom glued-together script thingys. We don't teach that way. Modules are grab bags, perhaps containing rich data structures (lat/long dictionary say). Modules define namespaces, like boxes of chocolates (Forest Gump understands). This need to glue it all together with some main() -- why? We compete with that idea of "programming." We're not a part of *that* particular conspiracy. Last week, we were working on phi and the fibonaccis. Let's get back to that now. Pull out a file drawer (import) and behold: all our favorite specimens (even the bugs are back). > Instead I can write an incredibly simply script that I just click on, and when > it needs information it prompts me for it. That's _my_ state of the art in > programming for myself. And it's something I can teach students to do for > themselves in very short order. Yeah, we don't like that style. OK for you, works for your students, I think you're probably a dynamite teacher. But... we still don't like that style. Later on maybe, if/when they're committed to CS. But this is just basic numeracy here, and they already know about functions from calculators. import math math.cos( 90 * math.degrees) -- that's what a first class might include. If what stops 'em isn't the Python syntax, but the trig, then we go over the trig. Basic numeracy. All as a bundle. Not your grandfathers math class (but some hoped it'd be for their kids -- remember when the future was, well, futuristic?). > Whether I'm writing for myself or whether I want my students to be able to > write the simplest possible useful programs for themselves and others, that > involves textual input. I'll say it one more time: IO is fundamental to > programming; the simplest universal form of IO deserves to be in the core > language so that it is easily accessible and available everywhere the > language runs. Pascal got that right and Python (pre 3000) has it right. And I'm saying using the shell to trigger namespace events is (a) closer to what a GUI is doing and (b) is fully usable I/O. Use doc strings to remind about inputs. raw_input prompts are the new goto (to be avoided if possible). > > As teachers, we shouldn't be propagating the hidden assumptions that > > go with raw_input, i.e. that there's this class if people out there > > "too dumb" to know anything about namespaces or functions. > > > > Translate this to any other discipline. Running with my physics example: "As > teachers, we shouldn't be propogating the hidden assumptions that go with > Newtonian mechanics, i.e. that there's this class of people out there 'too > dumb' to know anything about quantum physics or general relativity." Does Right, but I see that as a self-serving analogy. You're *defending* the status quo. Notice how CP4E goes for like "riding a bicycle" and "driving a car". Anyone can do it, no big deal. I think CS has a reflex to fight "debasement" of programming into a "what your grandmother knows" skill. But that's what I *want* to have happen, and expect grandmothers *will* have those skills in the not too distant future. Latin moms in Rio will tell The Monkey to block those Evil Toons (point and click yes, but they custom-skinned the GUI, know how it works from hours study. What, working class folk with the free time to study what they used have to pay for, plus hold down a job? What a concept! > that really make sense? The fact that there is more advanced stuff that they > will surely learn in due course is in no way a justification for not teaching > simpler, useful concepts first. > Nothing much simpler than import math, using the names. Raw_input is difficult by contrast. Why don't calculators have raw_input? They can't do I/O? How about dashboards? Cockpit of an airplane. We use control surfaces all day long. That's what a namespace is, an API. You don't need to tie it all together with some main(). This isn't a script. It's a place to do work. Namespaces are like studios. Event driven. More GUI, less "programming" (in the 1960s sense). > > I'm saying this'll all be common knowledge soon. > > Define "soon." I see the same demographic as Brad Miller. My students are > freshman in college who have never programmed. And frankly, I'm OK with that. And frankly, I'm not. High school too wasteful. If it's really about sports, which is OK with me, lets do more sports camps. But for kids who want academic rigor (another kind of sport), it's just not OK to not even *offer* OO by the end of high school. If USA voters want to keep that status quo, fine, but don't think the rest of the world will think twice about thrashing us in the job market if so. Or were we planning to use the Pentagon to keep the rest of the world stone aged, while we went on being mental couch potatoes. If so, think again. Praise the Lord we have television. If the schools have decided to rust in irrelevance, letting it be OK that globalization passes us by, then we can do what we did in Sesame Street, except at a much higher level (still using puppets though -- some of them CGI). Our Snake with __rib__ syntax makes fun cartoons on TV. It slithers around like Kaa, eating stuff (eat method). Hah hah, the 3rd graders laugh. Gnu math is just better. > > We'll know about 'strings' just as surely as we know about 'numbers'. > > > > Why? Because "computer literacy" is not just for some tiny inner > > circle. It's just basic fluency. Like my friend Gene Fowler puts it > > (paraphrasing): any poet worth his or her salt should know about XML > > already. http://controlroom.blogspot.com/2006/08/more-cast.html > > None of the poets I know care a twiddle about XML. I guess we just move in > different circles. > > --John Guess we do. But that's how it is with poets (few and far between). Kirby From kirby.urner at gmail.com Sat Sep 9 20:46:57 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 11:46:57 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609091103.27626.ms@cerenity.org> References: <200609091103.27626.ms@cerenity.org> Message-ID: On 9/9/06, Michael wrote: > > Is that bad? > > Yes, less than 4% of the world's population live in the USA and learns in a > completely different environment. > > > Michael. More advanced, I would hope. The USA is crawling with slow-goer bullies, who want to keep the kids in the dark about way too many key topics. I fight them, tooth and nail. I grew up outside the USA during formative years, so I *do* know that the USA is far from being an advanced nation. But it has potential. Better living standards *could* be ours, with some work. Not a superpower though. Not even close. Kirby From ajsiegel at optonline.net Sat Sep 9 21:30:26 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 09 Sep 2006 15:30:26 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <200609091018.40642.john.zelle@wartburg.edu> Message-ID: <45031652.2010004@optonline.com> kirby urner wrote: > >import math >math.cos( 90 * math.degrees) > >-- that's what a first class might include. If what stops 'em isn't >the Python syntax, but the trig, then we go over the trig. Basic >numeracy. All as a bundle. Not your grandfathers math class (but >some hoped it'd be for their kids -- remember when the future was, >well, futuristic?). > > How you manage to tangle your sensible and salable ideas into a rhetorical jumble that makes them sound a lot more dazed, dazzling, and unsaleable they then are on their merits - confounds me. I am convinced that the problem is that you have engaged the wrong enemy. It is not the school board of Hodunk, Missouri..Talked to with respect for your joint mission of the welfare of their charges, and your sensible ideas presented without your form of Princetonian arrogance - I see a team. Your problem is the radical constructivists. You believe in *typing*, you talk about *mathematical ideas* - trigonometry, even - rather than "analytical skills", which of course means everything and nothing at the same time. They are better funded. You cannot afford your arrogance if you are at all serious about competing. But then I don't believe you are actually trying to win. Would take a kind of discipline that you exhibit does not interest you. Just getting your rocks off? Art From john.zelle at wartburg.edu Sat Sep 9 21:52:25 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Sat, 9 Sep 2006 14:52:25 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <200609091018.40642.john.zelle@wartburg.edu> Message-ID: <200609091452.25910.john.zelle@wartburg.edu> On Saturday 09 September 2006 12:35 pm, you wrote: > But mostly I'm advocating going to the other extreme: drop GUI as a > topic and just code up a namespace, reach into the grab bag for > functions, like f(x) or cos(x). We pretend kids don't have the > background, but if they did *any* work with a TI calculator or an > algebra course, they know about functions, at least tacitly. > > My prerequisite for my Saturday Academy class is algebra only, and > typing above 30 a minute really helps (a lot of 'em are getting that > from chat rooms these days, buy a typing drill for home). > As I said below, I'm all for this kind of interaction, and when input and raw_input go away, I'll probably do more of it. > > While I accept the power of twiddling in the shell particularly as an > > educational tool (again, I come from a Lisp/Prolog tradition), this > > statement is just silly. How can you define "state of the art" for any > > "self" but your own. When I write a script to automate some routine task, > > I virtually always > > I can define it for my gnu math teachers, the people I work with in > South Africa for example. This, of course, misses my whole point that you can't define "state of the art" in "programming for self" for others (me, for example). > > use interactive text input. Why? Because the whole point is to make > > something routine and automatic. Why would I write a program that forces > > me to: Start Python > > Import a module > > Recall what I'm suppose to invoke and what information it needs. > > Sounds like your "program" is one of these top-to-bottom > glued-together script thingys. We don't teach that way. Modules are > grab bags, perhaps containing rich data structures (lat/long > dictionary say). Modules define namespaces, like boxes of chocolates > (Forest Gump understands). First up, I was not talking about the way I teach, but the way I program to automate my environment. To use your terms: defining state of the art in programming for myself. Your model is less convenient for these tasks than the one I describe. Further, I highly doubt that the script I'm writing for those purposes are any less modular than they should be to get the job done. Namespaces are a wonderful tool (which I use liberally), but don't confuse being modular with being good. There's plenty of bad modularity too. > This need to glue it all together with some main() -- why? We compete > with that idea of "programming." We're not a part of *that* > particular conspiracy. Umm, the point of my program is to automate something. That's why I glue it together. If I don't do that, I haven't solved the problem I set out to solve. I'm only 'conspiring' to solve the problems I have at hand. > Last week, we were working on phi and the fibonaccis. Let's get back > to that now. Pull out a file drawer (import) and behold: all our > favorite specimens (even the bugs are back). Great. Fantastic. It has nothing to do with what I was describing. I have plenty of these experimental evnrionments as well. > > > Instead I can write an incredibly simply script that I just click on, and > > when it needs information it prompts me for it. That's _my_ state of the > > art in programming for myself. And it's something I can teach students to > > do for themselves in very short order. > > Yeah, we don't like that style. OK for you, works for your students, > I think you're probably a dynamite teacher. But... we still don't > like that style. Again, I'm talking about writing a useful tool to automate some mundane task. What's "not to like about that style"? Should I make automating that task harder so as to fit your pedagogical style? My arguments had nothing to do with how you or I go about teaching math. > Later on maybe, if/when they're committed to CS. But this is just > basic numeracy here, and they already know about functions from > calculators. > > import math > math.cos( 90 * math.degrees) > > -- that's what a first class might include. If what stops 'em isn't > the Python syntax, but the trig, then we go over the trig. Basic > numeracy. All as a bundle. Not your grandfathers math class (but > some hoped it'd be for their kids -- remember when the future was, > well, futuristic?). Again, this sounds great. I like it, and I'm glad you're doing it. And you don't need raw_input (or input). But having input available in no way impedes this, and for the tasks I'm describing, lack of the same is a hindrance. > > Whether I'm writing for myself or whether I want my students to be able > > to write the simplest possible useful programs for themselves and others, > > that involves textual input. I'll say it one more time: IO is fundamental > > to programming; the simplest universal form of IO deserves to be in the > > core language so that it is easily accessible and available everywhere > > the language runs. Pascal got that right and Python (pre 3000) has it > > right. > > And I'm saying using the shell to trigger namespace events is (a) > closer to what a GUI is doing and (b) is fully usable I/O. Use doc > strings to remind about inputs. raw_input prompts are the new goto > (to be avoided if possible). But it's less convenient and therefore less useful for producing real tools that automate tasks. You are talking about a different form of programming and pedagogy. Docstrings do not solve the problem I describe, because they are passive. I have to go look at them again to remind myself how to use the tool. If I write a program, the program itself knows what it needs and when. > > > As teachers, we shouldn't be propagating the hidden assumptions that > > > go with raw_input, i.e. that there's this class if people out there > > > "too dumb" to know anything about namespaces or functions. > > > > Translate this to any other discipline. Running with my physics example: > > "As teachers, we shouldn't be propogating the hidden assumptions that go > > with Newtonian mechanics, i.e. that there's this class of people out > > there 'too dumb' to know anything about quantum physics or general > > relativity." Does > Right, but I see that as a self-serving analogy. You're *defending* > the status quo. Notice how CP4E goes for like "riding a bicycle" and > "driving a car". Anyone can do it, no big deal. Well far be it for me to suggest an anology that supports what I'm defending :-). Is it true that anyone can write a working GUI program? I don't know if that's any more true than that anyone can comprehend quantum mechanics. But let's use your example: does the fact that we expect everyone to be able to drive a car mean that we _shouldn't_ teach them to ride a bicycle? And shouldn't we even go a step further and take bicycles away because they might learn this useful mode of transportation which is _not_ car driving? Because it sounds to me like this is exactly the argument you are making w.r.t. input. > I think CS has a reflex to fight "debasement" of programming into a > "what your grandmother knows" skill. But that's what I *want* to have > happen, and expect grandmothers *will* have those skills in the not > too distant future. > I hope what you want comes to pass. I can assure you that CS academics have nothing whatsoever against programming as a universal skill, since we profess to believe that CS is much more than programming and say so at every opportunity. I, for one, can't wait to add a bunch more upper-level courses to the major when programming is taken for granted. I'm just not holding my breath... > Latin moms in Rio will tell The Monkey to block those Evil Toons > (point and click yes, but they custom-skinned the GUI, know how it > works from hours study. What, working class folk with the free time to > study what they used have to pay for, plus hold down a job? What a > concept! OK, now I just have no idea what you're talking about. Probably that's because I'm stuck in my dino-world. > > > that really make sense? The fact that there is more advanced stuff that > > they will surely learn in due course is in no way a justification for not > > teaching simpler, useful concepts first. > > Nothing much simpler than import math, using the names. Raw_input is > difficult by contrast. For Gnu-math maybe, but not for the types of useful artifacts I suggested above. And Input is no more difficult than typing expressions (as I've explained) which I assume is the starting point for your Gnu-math. > Why don't calculators have raw_input? They can't do I/O? How about > dashboards? Cockpit of an airplane. You are confusing what's easy for the user with what's easy for the programmer. Underneath, of couse, a modern calculator _does_ have the equivalent of raw_input. It grabs the string constructed in the display, parses and evaluates it. The user interface is all extra baggage built on top of that. From the programmer's standpoint, that extra baggage is more effort. If I already have a console, I can get the useful tool without the extra effort. > We use control surfaces all day long. That's what a namespace is, an > API. You don't need to tie it all together with some main(). This > isn't a script. It's a place to do work. Namespaces are like > studios. Event driven. More GUI, less "programming" (in the 1960s > sense). > Right on. But what I'm talking about _is_ a script. > > > I'm saying this'll all be common knowledge soon. > > > > Define "soon." I see the same demographic as Brad Miller. My students are > > freshman in college who have never programmed. And frankly, I'm OK with > > that. > > And frankly, I'm not. High school too wasteful. If it's really about > sports, which is OK with me, lets do more sports camps. But for kids > who want academic rigor (another kind of sport), it's just not OK to > not even *offer* OO by the end of high school. What if they're not interested in it? I know in your world the schools are hopelessly outdated because they don't teach Gnu math and OO. I'm happy if they teach our children to read and write well and to do some mathematics. I don't even care much what math they do, just as I don't care much what they read and write about. Throw in a basic understanding of science, and a healthy dose of getting along with others, and you've got a curriculum. Of course, one can argue schools are not doing this now, but I don't see how teaching them to program frees up more time for what I consider fundamental skills. If your Gnu-math is better at teaching them some mathematics, that's great; I'm all for it. But I don't care if it teaches them OO. One of the reasons for the conservatism of the educational establishment is that it can be devilishly hard to determine what the core skills are that all educated people should have (unlike other countries, our K-12 system attempts to be universal). You specifically mention OO and Python, but education (currently in the US) is a 13 year program. Will OO still be the dominant paradigm in a dozen years? I have a hunch not. OO institutionalizes side-effects (state change), and side-effects are a bane to managing concurrency. With multi-core, multi-processing machines seeming the most obvious routes to increased computing power, it could be that OO looks as old-fashioned as gotos in a dozen years. Is OO some fundamental/essential skill? I don't think you can measure the value of an education in terms of what specific technologies are learned (and OO is just a technology). Fundamental education is not about what technologies we teach or what technologies we teach with; it's about what kind of citizens we raise. Give my children a good teacher that can really communicate and get the kids excited about _learning_, and what in particular they learn doesn't matter so much. They have their whole lives ahead of them to become great at whatever is meaningful to them. > If USA voters want to keep that status quo, fine, but don't think the > rest of the world will think twice about thrashing us in the job > market if so. Or were we planning to use the Pentagon to keep the > rest of the world stone aged, while we went on being mental couch > potatoes. If so, think again. > Praise the Lord we have television. If the schools have decided to > rust in irrelevance, letting it be OK that globalization passes us by, > then we can do what we did in Sesame Street, except at a much higher > level (still using puppets though -- some of them CGI). This is an interesting juxtaposition of paragraphs. Many studies suggest that TV is the number one contributor to mental couch potatoism. I'd much rather have my kids spending time in our current (backwards, dino-era) schools (at least the ones we have here in Iowa) than watching television, no matter what show is on. Real interactions with live caring people in a social setting is what children need most. No truckloads of DVDs, screencasts, or electronic curriculum of the foreseeable future will change that truth. Until we have truly intelligent machines, there is no substitute authentic interpersonal interaction in terms of communication bandwidth. Education is at its core just communication. > Our Snake with __rib__ syntax makes fun cartoons on TV. It slithers > around like Kaa, eating stuff (eat method). Hah hah, the 3rd graders > laugh. Gnu math is just better. > I have no idea what that paragraph is about. Anyway, this is really, really my last post on this thread. --John ps. And I mean it. -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Sat Sep 9 22:06:23 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 09 Sep 2006 16:06:23 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45031652.2010004@optonline.com> References: <200609091018.40642.john.zelle@wartburg.edu> <45031652.2010004@optonline.com> Message-ID: <45031EBF.7040108@optonline.com> Arthur wrote: >kirby urner wrote: > > > >>import math >>math.cos( 90 * math.degrees) >> >>-- that's what a first class might include. If what stops 'em isn't >>the Python syntax, but the trig, then we go over the trig. Basic >>numeracy. All as a bundle. Not your grandfathers math class (but >>some hoped it'd be for their kids -- remember when the future was, >>well, futuristic?) >> >> > >I am convinced that the problem is that you have engaged the wrong >enemy. > Another way to put it is that I see you as a victim. The substance of "your" ideas, I think you know at some level, are almost apparent to many of us who are literate in ways similar to the ways that you are literate - and whether or not we happen to be mentored by Buckminster Fuller. Computers come into to play - everyone is ready for that. Your grandmother, my great uncle, everyone's Aunt Tillie. Big deal. Stripped of the rhetorical flourishes, what is being suggested is a sensible, logical next step - no radical departure from existing practices and standards. Marginal and necessary improvement to what now exists. What others are offering is what America *really* loves. A Potion. The quick fix. The eat 'til it hurts diet plan. And that is why you fear being bypassed, left in the dust. And why you think you need the costuming. We are, of course, all heros. I go mano vs. mano with the Big Boys at MIT ;) You seem to be up against one nut you found on a math list somewhere. That don't pass as visionary credentials, in my book. Art From radenski at chapman.edu Sat Sep 9 22:49:07 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Sat, 9 Sep 2006 13:49:07 -0700 Subject: [Edu-sig] Compatibility and legacy in language evolution Message-ID: Languages do evolve. For example: Pascal => Modula => Oberon C => C++ Java => Generic Java Python => Python 3000 ... etc... Pascal was once so popular that a US president had publicly acknowledged Pascal's importance for his country. Unfortunately, Pascal had some drawbacks, such as ad hoc IO and lack of modules. So Niklaus Wirth designed Modula, a nice language with uniform I/O and modules. Wirth disregarded compatibility: a valid Pascal program was not a valid Modula program. Although Modula - a very good language - gained some popularity, it was a substantial decline in comparison to Pascal' popularity. Because Modula did not have classes, Wirth developed Oberon, a compact and very efficient OO language. Again, Wirth chose incompatible design: a Modula program is not an Oberon program. Now Oberon is so obscure that many on this list might have never heard of it. Bjarne Stroustrup was educated in the Simula tradition and recognized the benefits of objects, so he decided to improve C by adding objects. Most notably, Stroustrup preferred compatible design in his transition from C to C++. Indeed, C programs are C++ programs as well. (In the I/O area in particular, C++ not only preserved C's I/O means, but even added convenient standard I/O idiom for the new I/O objects.) Look at the results of these evolution lines. Incompatible evolution: Pascal (popular) => Modula (less popular) => Oberon (obscure) Compatible evolution: C (popular) => C++ (popular++) One contemporary example: Sun Microsystem's recent extension of Java with genericity was guided first and foremost by the need to provide full compatibility between the two languages. Sun sacrificed language simplicity and orthogonality for full compatibility. Apparently, incompatible language evolution can invalidate the legacy of the evolving language. Unless you are Microsoft, this is difficult to overcome. In contrast, compatible evolution allows the user base of the language a smooth transition to the new language. Now Python is evolving into Python 3000. Will a valid Python program be a valid Python 3000 program? This is important. I think that the thread on the fate of raw_input actually addresses concerns that go way beyond the fate of raw_input. People are concerned because the lack of compatibility will invalidate some Python legacy, at least in the area of using Python as a teaching tool. Even though compatibility in language evolution can be somewhat detrimental to clean language design, it can promote a wider acceptance of the new language. Atanas From kirby.urner at gmail.com Sat Sep 9 22:52:22 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 13:52:22 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45031652.2010004@optonline.com> References: <200609091018.40642.john.zelle@wartburg.edu> <45031652.2010004@optonline.com> Message-ID: On 9/9/06, Arthur wrote: > kirby urner wrote: > > > > >import math > >math.cos( 90 * math.degrees) > > > >-- that's what a first class might include. If what stops 'em isn't > >the Python syntax, but the trig, then we go over the trig. Basic > >numeracy. All as a bundle. Not your grandfathers math class (but > >some hoped it'd be for their kids -- remember when the future was, > >well, futuristic?). > > > How you manage to tangle your sensible and salable ideas into a > rhetorical jumble that makes them sound a lot more dazed, dazzling, > and unsaleable they then are on their merits - confounds me. > What's so unsensible about using Python as a calculator in math class for starters? That's how Guido's tutorial begins. You don't do anything but quote, then launch the following diatribe: > I am convinced that the problem is that you have engaged the wrong > enemy. It is not the school board of Hodunk, Missouri..Talked to with > respect for your joint mission of the welfare of their charges, and your > sensible ideas presented without your form of Princetonian arrogance - > I see a team. I never mentioned fighting a school board in Missouri, now did I. Trying to pull the wool, hey? > Your problem is the radical constructivists. You believe in *typing*, > you talk about *mathematical ideas* - trigonometry, even - rather than > "analytical skills", which of course means everything and nothing at the > same time. I'm willing to compete in this rarified rhetorical way, sure, but more I'm just into making raw_input seem ridiculous and unsophisticated. Combat that however you may. Maybe Ruby has raw_input? > They are better funded. You cannot afford your arrogance if you are at > all serious about competing. But then I don't believe you are actually > trying to win. Would take a kind of discipline that you exhibit does > not interest you. > > Just getting your rocks off? > > Art You presume I'm fighting some school board, whereas in Portland we're just seeing more and more ways to get our open source capital on the map, *and* to save a bundle, by going with free software (not taking credit for all this momentum by the way -- maybe why you think I'm arrogant is because you live on the other coast, the more backward one. :-D). Kirby From kirby.urner at gmail.com Sat Sep 9 22:56:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 13:56:25 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45031EBF.7040108@optonline.com> References: <200609091018.40642.john.zelle@wartburg.edu> <45031652.2010004@optonline.com> <45031EBF.7040108@optonline.com> Message-ID: On 9/9/06, Arthur wrote: > I go mano vs. mano with the Big Boys at MIT ;) > Sounds awfully sumo. Hope yer doin' some good eatin'! > You seem to be up against one nut you found on a math list somewhere. > That don't pass as visionary credentials, in my book. > > Art I don't know what this is about, but I know we often differ in our assessments. Given your track record, I'm feeling pretty upbeat about all you just said. Thanks for the morale booster. Kirby From ajsiegel at optonline.net Sat Sep 9 23:04:14 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 09 Sep 2006 17:04:14 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <200609091018.40642.john.zelle@wartburg.edu> <45031652.2010004@optonline.com> Message-ID: <45032C4E.3090002@optonline.com> kirby urner wrote: > On 9/9/06, Arthur wrote: > >> kirby urner wrote: >> >> > >> >import math >> >math.cos( 90 * math.degrees) >> > >> >-- that's what a first class might include. If what stops 'em isn't >> >the Python syntax, but the trig, then we go over the trig. Basic >> >numeracy. All as a bundle. Not your grandfathers math class (but >> >some hoped it'd be for their kids -- remember when the future was, >> >well, futuristic?). >> > > > >> How you manage to tangle your sensible and salable ideas into a >> rhetorical jumble that makes them sound a lot more dazed, dazzling, >> and unsaleable they then are on their merits - confounds me. >> > > What's so unsensible about using Python as a calculator in math class > for starters? That's how Guido's tutorial begins. I'm quoting the sensible part. And the part that does not belong to you, and which you are relentlessly trying to trademark. Funny how Bucky has been accused of the same thing. The surrounding grandiose rhetoric is the nonsense.. Art From kirby.urner at gmail.com Sat Sep 9 23:40:38 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 14:40:38 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45032C4E.3090002@optonline.com> References: <200609091018.40642.john.zelle@wartburg.edu> <45031652.2010004@optonline.com> <45032C4E.3090002@optonline.com> Message-ID: > I'm quoting the sensible part. > > And the part that does not belong to you, and which you are relentlessly > trying to trademark. > Hmmm, trademark, now *there's* an idea. Python as a Calulator [tm]. But seriously, when you have a lot of Objects (like Monkeys and Dogs) and want to puppet them, by triggering methods ( mydog.bark() ), you don't want to drill down through some menus. You say I'm just pushing what'll happen by natural evolution if I just abandoned my to-your-ears arrogant tone. Just let the invisible hand do the job, so no one gets all the credit. I don't want all the credit, but I will claim a lion's share in some corners, in some niche markets where I really excel and deserve high ranking. But yes, we'll let the students decide. It's vote with your feet time. CP4E or something both dumber *and* more elitist (not a winning combo in my book). > Funny how Bucky has been accused of the same thing. > Yeah, by the same cast of wannabees. > The surrounding grandiose rhetoric is the nonsense.. > > Art Is that how you lick 'em over at MIT? I'll be quiet down now. We might lose that signal-to-noise ratio of Perfect Phi, that I try to maintain. I think I've made all the points I need to make re raw_input. End of thread, as far as me needing a soap box. I thank the Crunchy Frog for introducing us to that whole terrain. Very fertile. I learned plenty. Kirby From ajsiegel at optonline.net Sat Sep 9 23:48:29 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 09 Sep 2006 17:48:29 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <200609091018.40642.john.zelle@wartburg.edu> <45031652.2010004@optonline.com> <45032C4E.3090002@optonline.com> Message-ID: <450336AD.8030902@optonline.com> kirby urner wrote: > > You say I'm just pushing what'll happen by natural evolution if I just > abandoned my to-your-ears arrogant tone. Just let the invisible hand > do the job, so no one gets all the credit. No. I think I am saying that unless folks like you and I find some way to work together where we substantively agree - we will lose to the Big Boys at MIT. Which is no big deal ...except that the last nail is in the coffin of the American educational system. Evolutionary, in itself, and who knows, maybe for the best. But for someone trying to maintain some hope it might end up otherwise, it does seem a pity I am not shaped like a regular tetrahedron, or willing to do battle under the CP4E flag, Kirby interpretation. Close, but no cigar. Art > I don't want all the credit, but I will claim a lion's share in some > corners, in some niche markets where I really excel and deserve high > ranking. But yes, we'll let the students decide. It's vote with your > feet time. CP4E or something both dumber *and* more elitist (not a > winning combo in my book). > >> Funny how Bucky has been accused of the same thing. >> > > Yeah, by the same cast of wannabees. > >> The surrounding grandiose rhetoric is the nonsense.. >> >> Art > > > Is that how you lick 'em over at MIT? > > I'll be quiet down now. We might lose that signal-to-noise ratio of > Perfect Phi, that I try to maintain. > > I think I've made all the points I need to make re raw_input. End of > thread, as far as me needing a soap box. > > I thank the Crunchy Frog for introducing us to that whole terrain. > Very fertile. I learned plenty. > > Kirby > > From jasonic at nomadics.org Sat Sep 9 23:55:47 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sat, 09 Sep 2006 23:55:47 +0200 Subject: [Edu-sig] Oh, the TEACHERS! --> The Educator must be Educated vs. Anthropormorphic Erroring vs. Finding OUT things you know Already In-Reply-To: <24d253d90609090535m2b448ebrc9904fd13490f9b5@mail.gmail.com> References: <87a8578e0609080829t4b52fb9bicde1ab7ed7bad7a3@mail.gmail.com> <24d253d90609090535m2b448ebrc9904fd13490f9b5@mail.gmail.com> Message-ID: <45033863.1020309@nomadics.org> Hello Wow full moon this month really got Edu-Sig whipped up... And I am feeling somehwere between fascinated and horrified at this discussion, but can't resist adding 0.2 myself, Thanks maybe to two items I read this morning: Unsentimental Education www.thenation.com/doc/20060925/hitchens It is only toward the very end of the memoir that Hughes utters the line that furnishes the title. "By now," he says, "I realized that my main impulse for writing a book was to force myself to find out about things I didn't know." This could be said by or about almost any author--"the educator must be educated," as Marx put it, and no serious person is not self-taught--but it would be as true to say of Hughes that he came to find out things that he knew already. ....................................... Anthropomorphic REBOL http://www.rebol.net/cgi-bin/blog.r?view=0294#comments At times in discussions, documentation, or error messages, REBOL may be treated as a living entity. It's not done that often, but some users find it annoying. I remember that it was annoying in the Logo programming language. If you typed "foo", the system would respond: I don't know how to foo REBOL does not go that far. On the other hand, some users find a degree of anthropomorphism to be useful. It gives them another "mind tool" to help them program REBOL. For example, in R2.0: >> insert 1 ** Script Error: insert expected series argument of type: series port bitset This wording was intentional. I selected that message because it put the most important element, the function name, first. However, that does make it sound a bit anthropomorphic. Just a bit. As an experiment, in R3.0, I changed the error to: >> insert 1 ** Script Error: integer not allowed as the series argument of insert Is that error more clear? Here the offending datatype gets first position, and the function gets the tail. ---------------- That was a post by REBOL's prime creator Carl Sassenrath on his blog as he works towards REBOL3, a better brighter major rewrite which threatens to maybe also break some legacy code. Sound familiar? Actionscript3 under Adobe's tree now, is doing that too, though REBOL is famously short and compact compared to the galactic scaled resources and libraries of Java, Python etc Anyway, in reply there swiftly emerged consensus among experienced REBOL programmers that they like the current [old] error more friendly one better. Among those comments was this gem: *Brian Wisti: *I share Henrik's opinion that the "not allowed" error message is not as clear as the "expected" message. Both tell me I'm using the wrong type, but the "expected" message gives me a full summary of what types I can use. But really, so long as you never get anything like Python's "Syntax Error: Invalid Syntax", I will be pretty content. --------------- I read recently that Lao-Tse thought XML was verbose but that did not matter because computers will someday learn from poets. Jason From da.ajoy at gmail.com Sat Sep 9 23:57:46 2006 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Sat, 09 Sep 2006 16:57:46 -0500 Subject: [Edu-sig] Python and pre-Calculus In-Reply-To: References: Message-ID: <4502F28A.22454.550254@da.ajoy.gmail.com> On 8 Sep 2006 at 18:00, edu-sig-request at python.org wrote: > From: "Kevin Driscoll" > Subject: [Edu-sig] Python and pre-Calculus > > I'm teaching Pre-Calculus for the first time this year and am hoping > to integrate Python as often as possible. My syllabus is focused on > exploring functions in various forms, uses, and contexts. The > intersections to programming are numerous and beautiful. > > I'd love to get a brainstorm happening here. Especially addressing > the college educators, what do you which your freshman had seen in > 11th and 12th grade? > > Yesterday we worked on building a complete mathematical definition for > a Toaster function. Wouldn't you know it? toaster(bread) = toast ... > every time! What happens when you enter: toaster(hand)? I'm brainstorming now: * Turn calculus around. Start with programming functions and talking about them as machines that receive something and output something. It is good that machines be reliable so that with a certain input we can only obtain a specific output. We can't input something and obtain nothing. We can input something at diferent times and obtain different outputs. * Take two x's and apply your function to obtain their corresponding y's . You can talk about the rate of change: by how much does Y changes when we go from x=1 to x=2? Does Y change by the same ammount if we go from x=10 to x=11? * The car analogy: at any given moment a car has a certain speed. If our function is SpeedAt(time) can we calculate the value of the speed of the car, say at time= 10 What happens if the car made stops? What happens if at some point we decided that we were running late and decided to go faster? We can program SpeedAt(time) with if's like if time between 0 and 1 then speed = 10 * time if time between 1 and 10 then speed = 10 if time between 10 and 11 then speed = -10 * time + 110 if time between 11 and 12 then speed = 10 * time - 110 if time between 12 and 30 then speed = 10 if time between 30 and 32 then speed = 5 * time - 140 if time between 32 and 99 then speed = 20 if time between 99 and 100 then speed = -20 * time - 2000 accelation is the rate of change of velocity. How much does velocity change between 1 and 5? SpeedAt(5)-SpeedAt(1) / (5-1) How much does it change between 11 and 12? Program a function RateOfChange(start,finish) How much does it change between 0 and 100? But that's an average acceleration. At some points during the trip the car had postive accelerations and at some points it had negative accelerations, all those canceled out. But at any give time the car has an acceleration, (probably=0) this is an instantaneous acceleration. How would you calculate the acceleration at time = 13? or at time = 31? The answer is the invention of epsilon. and the definition of derivative. Then write the program: InstantaneousRateOfChange(time) if SpeedAt(time) = -0.2 * time ^ 2 + 4 * time how does InstantaneousRateOfChange(time) behave? how does its plot look like? Is this plot a line? Using points in the plot can you come up with the equation of this line? Oh, it's IROC = -0.4 * time + 4 ... how interesting... * Can you know the "Distance from home" by only knowing how SpeedAt(time) behaves. The answer is the concept of integration. A program can be made that approximates the integrals using Riemann (sp?) sums. * The mid interval theorem is directly related with the strategy for solving the "guess a number" game. This is called the Bisection method for finding roots. Daniel From jasonic at nomadics.org Sun Sep 10 00:17:26 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sun, 10 Sep 2006 00:17:26 +0200 Subject: [Edu-sig] Python bites off more than it can chew Message-ID: <45033D76.8090705@nomadics.org> *I'd love to send the photo, but alas mailings lists don trust inline graphics:-( * ***http://www.news.com.au/sundaytelegraph/story/0,,20372915-5006003,00.html * *Jason * *-------------------------- * *A LITTLE bloating after a big meal is an occupational hazard for pythons. But this unfortunate creature found itself unable to slink away and sleep it off.* In fact, after swallowing a pregnant sheep, it couldn't move at all. Firemen in the Malaysian village of Kampung Jabor, about 190km east of Kuala Lumpur, easily caught it after it was spotted on a road. Conservationists were yesterday still deciding whether to keep the 90kg snake in a zoo or release it back into the wild. Pythons eat no more than once a week but when they open their incredible hinged jaws, anything is fair game. This 5.5m python found its eyes were definitely bigger than its belly. In July surgeons were forced to operate on a 4m Burmese python after it inadvertently swallowed a queen-size electric blanket. Humans also have become victims. In 1972 a python in Burma swallowed an eight-year-old boy. But sometimes their food really doesn't agree with them. In October last year, a 3.6m python came off second best in Everglades National Park in Florida. The snake, which tried to swallow a 1.8m alligator whole, exploded, said scientists who found the gory remains. From jasonic at nomadics.org Sat Sep 9 23:49:00 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sat, 09 Sep 2006 23:49:00 +0200 Subject: [Edu-sig] Python bites off more than it can chew Message-ID: <450336CC.3020600@nomadics.org> http://www.news.com.au/sundaytelegraph/story/0,,20372915-5006003,00.html From jasonic at nomadics.org Sun Sep 10 01:00:59 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sun, 10 Sep 2006 01:00:59 +0200 Subject: [Edu-sig] Python bites off more than it can chew In-Reply-To: <45033D76.8090705@nomadics.org> References: <45033D76.8090705@nomadics.org> Message-ID: <450347AB.7070706@nomadics.org> > http://www.news.com.au/sundaytelegraph/story/0,,20372915-5006003,00.html > ... as we see too much raw_input() takes a long time to digest J. From kirby.urner at gmail.com Sun Sep 10 01:31:22 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 16:31:22 -0700 Subject: [Edu-sig] Python bites off more than it can chew In-Reply-To: <45033D76.8090705@nomadics.org> References: <45033D76.8090705@nomadics.org> Message-ID: On 9/9/06, Jason Cunliffe wrote: > *I'd love to send the photo, but alas mailings lists don trust inline > graphics:-( > * > > ***http://www.news.com.au/sundaytelegraph/story/0,,20372915-5006003,00.html > * > > *Jason Frightening. Seems Pythons, like some people, have this "enough is never enough" reflex. Kirby From kirby.urner at gmail.com Sun Sep 10 01:57:31 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 16:57:31 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <450336AD.8030902@optonline.com> References: <200609091018.40642.john.zelle@wartburg.edu> <45031652.2010004@optonline.com> <45032C4E.3090002@optonline.com> <450336AD.8030902@optonline.com> Message-ID: On 9/9/06, Arthur wrote: > But for someone trying to maintain some hope it might end up otherwise, > it does seem a pity I am not shaped like a regular tetrahedron, or > willing to do battle under the CP4E flag, Kirby interpretation. > > Close, but no cigar. > > Art We don't want to be lock step, that's just scare everybody. Better that Kirby and Arthur stay at loggerheads (about what is sometimes unclear). My model is I come to Python from my Fuller School (with all those tetrahedrons you don't need to care about) and shop for stuff I can use. I go home with a car load, very happy with my purchases, and ready to fly a CP4E banner over my Castle Keep (octahedrons also). My knights (mostly female) fan out across the land, recruiting. They flash a Python insignia now and then, but other logos too. Red Bull. Maybe Pixar? You, Arthur of Pygeo, go shopping too, and like what you've found. VPython is getting stronger (doesn't wipe out the old IDLE any more does it?), Pygeo is getting stronger, and you feel emboldened to take on the Big Boys of various description, @ MIT of wherever. Sounds familiar, i.e. we over in our castle recognize that you feel boosted, like you got a shot in the arm from our Shared Snake. Good for you, good for us. Now, turns out you maybe don't want to fly the CP4E banner, or champion tetrahedra the way I do, how should that matter? Even if you fly CP4E, you don't want that confused with Buckydom's Castle. Hey, people are smart, know brand X from brand Y (all that market research is good for *something* anyway). People know Sears isn't Wal*Mart, Ford isn't Chevy. Yes, with the oil companies it's harder to tell. They all look alike somehow -- but I'm sure they see differences in Texas, where they care. The Fuller School is like this game engine, but now with Python bindings (4D/4D++). Wanna play with the buckaneers? Visit Kirby why not, or check in with SNEC. Wanna play against MIT, maybe team with Klein well then, Arthur of Pygeo is likely your man. For hexapents, I recommend Adrian of Packinon. There're any number of schools that might find Python fortifying, a positive ingredient. I'm not upset if you're not on board with the Bucky stuff. That's not how you choose to paint your castle. No one said you had to. You've got other fish to fry. Quite frankly, I expect to recruit *very few* buckaneers to my school by saying such horrifying things as I dare say to those here assembled. I am *not* preaching to some choir on edu-sig, quite obviously. Brad is grossed out and disgusted, others think I'm just being ridiculous. That's all just fine fine, just peachy. I'm not running for political office or win any popularity contest. I'm just being direct about what I see as a positive direction. I want at least to be clear -- much better than diplomatic, at the cost of unclear. Back in my castle, Igor and I are putting the finishing touches on our Monster Curriculum (the way our detractors paint us). >From my perspective, our Silicon Forest needs a dynamite curriculum with teeth, so our kids have a decent shot at the promising lifestyles our economy offers, and/or may offer down the road. Your economy is different? Why should that be a problem? And if the USG chooses to syndicate some of our ideas through the public school system, why should that be any more evil than how TI *already* permeates the culture, likewise through public schools? Better Oregon than Texas. Another slogan: YOU be the glue. (refers to how we see you at the shell prompt -- it's *your* job to keep it together, not some "script"). Kirby From lists at janc.be Sun Sep 10 02:03:05 2006 From: lists at janc.be (Jan Claeys) Date: Sun, 10 Sep 2006 02:03:05 +0200 Subject: [Edu-sig] Compatibility and legacy in language evolution In-Reply-To: References: Message-ID: <1157846586.5109.215.camel@bedsa> Op za, 09-09-2006 te 13:49 -0700, schreef Radenski, Atanas: > Bjarne Stroustrup was educated in the Simula tradition and recognized > the benefits of objects, so he decided to improve C by adding objects. > Most notably, Stroustrup preferred compatible design in his transition > from C to C++. Indeed, C programs are C++ programs as well. That's not true and mr. Stroustrups own books explain how and why; even basic C programs might be invalid as C++ programs (or they work different in C than in C++, which is even worse). -- Jan Claeys From lists at janc.be Sun Sep 10 01:52:02 2006 From: lists at janc.be (Jan Claeys) Date: Sun, 10 Sep 2006 01:52:02 +0200 Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> References: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> Message-ID: <1157845923.5109.207.camel@bedsa> Op wo, 06-09-2006 te 20:03 -0400, schreef dblank at brynmawr.edu: > - there is no GUI that will work across Python implementations. A cool > project would be to make a standard that would work in Jython, > IronPython, and CPython > - the Mono group is working on Windows Forms, even though that is not > part of the .NET standard. If that is successful, this could be the > common GUI Ah, how are you going to to get Windows Forms running on CPython and Jython? (Not to mention that .NET/Mono runs on less platforms than CPython and Jython currently.) > - IronPython runs great on Mono On what Mono version does it run then? -- Jan Claeys From kirby.urner at gmail.com Sun Sep 10 02:46:09 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 17:46:09 -0700 Subject: [Edu-sig] IronPython 1.0 on Slashdot In-Reply-To: <1157845923.5109.207.camel@bedsa> References: <44422.68.34.179.248.1157587436.squirrel@webmail.brynmawr.edu> <1157845923.5109.207.camel@bedsa> Message-ID: On 9/9/06, Jan Claeys wrote: > Ah, how are you going to to get Windows Forms running on CPython and > Jython? Maybe never gonna happen. > > - IronPython runs great on Mono > > On what Mono version does it run then? > Don't recall. Kirby From radenski at chapman.edu Sun Sep 10 02:53:54 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Sat, 9 Sep 2006 17:53:54 -0700 Subject: [Edu-sig] Compatibility and legacy in language evolution Message-ID: Jan Claeys wrote: > Op za, 09-09-2006 te 13:49 -0700, schreef Radenski, Atanas: >> Bjarne Stroustrup was educated in the Simula tradition and recognized >> the benefits of objects, so he decided to improve C by adding objects. >> Most notably, Stroustrup preferred compatible design in his transition >> from C to C++. Indeed, C programs are C++ programs as well. > That's not true and mr. Stroustrups own books explain how and why; even > basic C programs might be invalid as C++ programs (or they work > different in C than in C++, which is even worse). Strictly speaking this is true, but Mr. Stroustrups own papers also explain how important the full C/C++ compatibility is - and that achieving it is his ideal (sect. 5 in this paper): http://www.research.att.com/~bs/compat_short.pdf From kirby.urner at gmail.com Sun Sep 10 03:03:45 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 18:03:45 -0700 Subject: [Edu-sig] Compatibility and legacy in language evolution In-Reply-To: References: Message-ID: On 9/9/06, Radenski, Atanas wrote: > Languages do evolve. For example: > > > Pascal => Modula => Oberon > > C => C++ > > Java => Generic Java > > Python => Python 3000 > > ... etc... Another interesting example: APL => J Kenneth Iverson of Harvard's APL was the first computer language I fell in love with, made me hate FORTRAN or any other punch card language. This was early "dot prompt", an interactive command line. No big long delayed gratification while you write this huge script, then debug it for hours. So *not* the XP style (so the opposite of unit testing as you go). APL you may recall, uses a not-ASCII developed as a chalkboard math notation, then made executable. J is the same thing, but ASCII. You really have to change your thinking to appreciate J's power. I'm still just a yellow belt in that world, Bruce Lee's retarded little brother in some late night Kung Fu flick (he protects me from The Man (played by Roger Hui)). Even in Python world I'm not Mr. Metaclass, nor smooth talkin' Plone Archetypes. Arthur sometimes ridicules my short little code blocks (where are my thousands of lines (answer: in FoxPro)). But that's just or "stars in the sky" style over in Buckyville. We have these weird slogans, like "YOU be the glue." Brad says our private sky is NOT THE WORLD in his posts. He sounds like a philosopher. Some other castle somewhere, where they use "all caps" a lot (I try to be sparing, but yes, I use them too). Anyway, does the fact that J doesn't run APL programs mitigate against it? Does J have a bright future? I'd think so. I sure hope gnu math teachers find a way to teach it. Like with other stuff, it's not "down to the chip" that it's open (and these days, the chip isn't either), and open source J code, like open source IronPython, doesn't imply .NET itself is completely transparent (unlike the Monkey -- the Mono -- which is much more so, or so they tell me (no I don't read a lot of C# in the course of a regular business day)). Kirby From ajsiegel at optonline.net Sun Sep 10 03:11:28 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 09 Sep 2006 21:11:28 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <200609091018.40642.john.zelle@wartburg.edu> <45031652.2010004@optonline.com> <45032C4E.3090002@optonline.com> <450336AD.8030902@optonline.com> Message-ID: <45036640.1000500@optonline.com> kirby urner wrote: > Quite frankly, I expect to recruit *very few* buckaneers to my school > by saying such horrifying things as I dare say to those here > assembled. I am *not* preaching to some choir on edu-sig, quite > obviously. > Yuo can choose to be horrifying. I do, at times, as we all know. I resent when you are horrifying in the name of: >import math >math.cos( 90 * math.degrees) It doesn't belong to you, it doesn't belong to Fuller, it ain't "gnu math" because there ain't no such thing. Except to you and six guys in some Mecca called Portland. You choose to remain at the margins, and martyred as being at being marginalized. It's a game that ain't so funny any more. You are in the process helping marginalize some very sound ideas - not just of your own, that is your business and your psyche - but of others. This is an announcement. >import math >math.cos( 90 * math.degrees) has less than nothing to do with Kirby Urner. He couldn't make it happen if his life depended upon it. Art > Brad is grossed out and disgusted, others think I'm just being > ridiculous. That's all just fine fine, just peachy. I'm not running > for political office or win any popularity contest. I'm just being > direct about what I see as a positive direction. I want at least to > be clear -- much better than diplomatic, at the cost of unclear. > > Back in my castle, Igor and I are putting the finishing touches on our > Monster Curriculum (the way our detractors paint us). > >> From my perspective, our Silicon Forest needs a dynamite curriculum > > with teeth, so our kids have a decent shot at the promising lifestyles > our economy offers, and/or may offer down the road. > > Your economy is different? Why should that be a problem? > > And if the USG chooses to syndicate some of our ideas through the > public school system, why should that be any more evil than how TI > *already* permeates the culture, likewise through public schools? > > Better Oregon than Texas. > > Another slogan: YOU be the glue. > > (refers to how we see you at the shell prompt -- it's *your* job to > keep it together, not some "script"). > > Kirby > > From kirby.urner at gmail.com Sun Sep 10 03:25:56 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 18:25:56 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45036640.1000500@optonline.com> References: <200609091018.40642.john.zelle@wartburg.edu> <45031652.2010004@optonline.com> <45032C4E.3090002@optonline.com> <450336AD.8030902@optonline.com> <45036640.1000500@optonline.com> Message-ID: On 9/9/06, Arthur wrote: > >import math > >math.cos( 90 * math.degrees) > > It doesn't belong to you, it doesn't belong to Fuller, it ain't "gnu > math" because there ain't no such thing. Except to you and six guys in > some Mecca called Portland. > Did you understand the discussion? I shouldn't presume. I was explaining how I don't like "scripting" as a first exposure to programming. I like "stars in the sky" where you build up a namespace of stuff depending on other stuff. Or just use a ready-made, like math or string. So on the first day, we import a namespace and use it. Maybe like this: >>> import myhousehold >>> myDog = Dog("Sarah Angel") >>> import animalcontrol >>> animalcontrol.register(myDog) OK, done Better? I used my own dog instead of cosine, and now it's OK? I don't understand this "doesn't belong" thing. I have access to the metaphysical heritage of all humanity. I think the trig people *wanted* our Mecca to have a bright future (OK, so they didn't know about Portland -- but I don't see the copy protection or EULA I'm supposed to sign or kowtow to before I deploy it as a part of my infrastructure). > You choose to remain at the margins, and martyred as being at being > marginalized. It's a game that ain't so funny any more. What marginalized. I feel we're slaughtering the competition, but they're mostly too big and lumbering to notice. But some see what we're up to, and even enjoy the experience of finding out they're dinos in our eyes (how cute!). > You are in the process helping marginalize some very sound ideas - not > just of your own, that is your business and your psyche - but of others. > Oh, like I'm not entitled to use cosine all of a sudden? Where do you get off bossing me like that? Remind me to use as much trig as I want, any time I want, especially when you're watching. Because yes, doing convergent sequences is Big Time in my curriculum. What do we converge to? Values of sine and cosine. Do we credit Euler? You betcha. Synergetics is all about Euler and Gibbs, Euler and Gibbs. Some people cup their ears, because they *can't stand* to see genius credit genius, instead of themselves (don't worry, I'm nowhere in Published Synergetics, know to look to my betters (not you though)). > This is an announcement. > > >import math > >math.cos( 90 * math.degrees) > > has less than nothing to do with Kirby Urner. He couldn't make it > happen if his life depended upon it. > > Art Duh? Nothing to do with Arthur Siegel either, whoever that is. Kirby From kirby.urner at gmail.com Sun Sep 10 03:38:11 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 9 Sep 2006 18:38:11 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <45031652.2010004@optonline.com> <45032C4E.3090002@optonline.com> <450336AD.8030902@optonline.com> <45036640.1000500@optonline.com> Message-ID: On 9/9/06, kirby urner wrote: > >>> import myhousehold > >>> myDog = Dog("Sarah Angel") Sorry: myDog = myhousehold.Dog("Sarah Angel") we might imagine a SOAP service, plus myDog automatically aquires all kinds of tags, thanks to an SQL lookup inside her parent Multnomah County Licensed Pet class. The way we teach in the Silicon Forest. Gnu Math is just better Kirby 4D Studios From kirby.urner at gmail.com Sun Sep 10 16:27:23 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 10 Sep 2006 07:27:23 -0700 Subject: [Edu-sig] Python and pre-Calculus In-Reply-To: References: <87a8578e0609080833q250a1cat4f6ea5398d0b6f19@mail.gmail.com> Message-ID: On 9/8/06, kirby urner wrote: > And definitely use generators. The fibonacci sequence is a fantastic > place to begin, even if your school is a "no da vinci code" zone, sort > of the way mine is (we got sick of it after a whole year of hype). Per convergent generators, here's one for cosine: def cosgen(x): """ convergent summation to cosine(x) factorial defined off camera """ thesum = 0 n = 0 sign = 1 while True: thesum += (sign * pow(x, 2*n)) / fact(2*n) yield thesum n += 1 sign = -sign >>> from math import cos >>> target = cos(14.21) >>> target -0.072768683554320104 >>> thegen = cosgen(14.21) >>> while abs(target - thegen.next())>0.000001: pass >>> thegen.next() -0.072768693540998033 Now this is a little bit dangerous, but if you're certain of convergence and want to catch when the floating point value is no longer changing, you can get away with: >>> while (thegen.next() <> thegen.next()): pass >>> thegen.next() -0.072768683575483162 >>> target -0.072768683554320104 So we notice some disagreement here. What if we go to more precision? def cosgen(x): thesum = Decimal(0) n = Decimal(0) sign = Decimal(1) two = Decimal(2) while True: thesum += (sign * pow(x,two*n))/fact(two*n) yield thesum n += 1 sign = -sign >>> from decimal import * >>> getcontext().prec = 30 >>> var = Decimal(14.21) >>> thegen = cosgen(var) >>> thegen.next() Decimal("1") >>> while (thegen.next() <> thegen.next()): pass >>> thegen.next() Decimal("-0.0727686835543192487699552024271") >>> target -0.072768683554320104 Still a disrepancy, but I'm thinking the generator is now more precise. Let's push out further: >>> getcontext().prec = 100 >>> thegen = cosgen(var) >>> while (thegen.next() <> thegen.next()): pass >>> thegen.next() Decimal("-0.07276868355431924876995437627048855025971011082339833272762148823931248781362040259253050759451593338") OK, so it looks like math.cosine is only accurate up to -0.0727686835543 then rounding error. Kirby From kirby.urner at gmail.com Sun Sep 10 16:41:55 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 10 Sep 2006 07:41:55 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <45031652.2010004@optonline.com> <45032C4E.3090002@optonline.com> <450336AD.8030902@optonline.com> <45036640.1000500@optonline.com> Message-ID: On 9/9/06, kirby urner wrote: > On 9/9/06, Arthur wrote: > > > >import math > > >math.cos( 90 * math.degrees) > > > > It doesn't belong to you, it doesn't belong to Fuller, it ain't "gnu > > math" because there ain't no such thing. Except to you and six guys in > > some Mecca called Portland. Doesn't belong in Python either. What I *should* have written is: import math math.cos( math.radians (90) ) Maybe that's what you were objecting to (i.e. math.degrees is a *function* -- plus it's radians I really wanted). >>> from math import cos, radians >>> target = cos ( radians( 90 ) ) >>> target 6.1230317691118863e-017 Almost 0 then (but not, because of floating point limitations). Using a generator won't be more accurate unless we do the work to make radians(90) more accurate as well, and that requires some humongous pi. We could use Ramanujan's Engine for that. I'm thinking I need a trig module wherein everything is geared to work in a high precision context, i.e. Decimals throughout. I could set the context and have everything adjust accordingly. There wouldn't have to be a "main()" to tie it all together. You'd have partial sum generators for sine, cosine, tangent. This would help my precalculus students understand about precision and the notion of limits, also about the limitations of floating point and possible workarounds. We'd also have that discussion about not pretending to more precision than the problem allows, e.g. if you're crunching empirical data and your measures are plus/minus 1%, then all this high precision stuff is likely overkill and shouldn't usually be used because misleading and/or wasteful of time/energy. Precision is relative to the application. Kirby From tjd at sfu.ca Sun Sep 10 19:59:17 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Sun, 10 Sep 2006 10:59:17 -0700 Subject: [Edu-sig] Edu-sig Digest, Vol 38, Issue 21 In-Reply-To: References: Message-ID: > Now Python is evolving into Python 3000. Will a valid Python program be a valid > Python 3000 program? This is important. At Vancouver Python workshop this summer, Guido talked about this very point. He mentioned two extreme examples: the current committe work on C++, and Perl 6. C++ is trying *very* hard to remain backwards compatible, while Perl 6 is not. He says he wants Python 3000 to be somewhere in the middle. So source compatibility isn't planned, but migration tools are planned. David Mertz's gives more details in a summary of one of Guido's talks (from OSCON): http://www-03.ibm.com/developerworks/blogs/page/davidmertz?entry=second_day_python_3000 For the kind of simple programs that appear in beginning programming courses, I expect around 100% of the code to be trivially convertible. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From kirby.urner at gmail.com Sun Sep 10 20:02:27 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 10 Sep 2006 11:02:27 -0700 Subject: [Edu-sig] Edu-sig Digest, Vol 38, Issue 21 In-Reply-To: References: Message-ID: On 9/10/06, Toby Donaldson wrote: > For the kind of simple programs that appear in beginning programming > courses, I expect around 100% of the code to be trivially convertible. > > Toby OK, so we agree finally (if we didn't before): the loss of raw_input is really trivial. Kirby From tjd at sfu.ca Sun Sep 10 20:26:00 2006 From: tjd at sfu.ca (Toby Donaldson) Date: Sun, 10 Sep 2006 11:26:00 -0700 Subject: [Edu-sig] Edu-sig Digest, Vol 38, Issue 21 In-Reply-To: References: Message-ID: > > For the kind of simple programs that appear in beginning programming > > courses, I expect around 100% of the code to be trivially convertible. > > > > Toby > > OK, so we agree finally (if we didn't before): the loss of raw_input > is really trivial. Yes, we agree. :-) Of course, I still prefer that it stay. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University (Surrey) From da.ajoy at gmail.com Mon Sep 11 06:16:36 2006 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Sun, 10 Sep 2006 23:16:36 -0500 Subject: [Edu-sig] simple guessing games In-Reply-To: References: Message-ID: <45049CD4.11873.6D63325@da.ajoy.gmail.com> On 9 Sep 2006 at 0:28, edu-sig-request at python.org wrote: > From: Dan Crosta > Subject: Re: [Edu-sig] The fate of raw_input() in Python 3000 > > When I think back to when I was learning to program in 9th grade (I'm > not a professional software devel) I know that it was really exciting to > be able to twiddle with the computer for a bit, then call my mom over > and have her work with my program -- simple guessing games, ... > > But even > though it did, it would not have been as exciting to sit my mom down > with it and let her play around, and I wouldn't want to have to explain > to her (even now with a nearly infinitely more sophisticated > understanding of computers and programming than I did in my first > months) what a function is, how to interact with it, what arguments are, > etc. The following is in Logo. I put the this in a text file: ======================= to i.guess :number if :number < :initial.guess [ print [your guess is less than my number.] ] if :number > :initial.guess [ print [your guess is greater than my number.] ] if :number = :initial.guess [ print [You got it! To try again type: restart] ] end to restart print [Guess a number between 0 and 99] print [Type: i.guess number] make "initial.guess random 100 end restart ======================= Then when I clic on the icon of that file I get: (In Logo the prompt is "?") Guess a number between 0 and 99 Type: i.guess number ? i.guess 50 your guess is less than my number. ? i.guess 70 your guess is less than my number. ? i.guess 80 your guess is less than my number. ? i.guess 90 your guess is greater than my number. ? i.guess 85 your guess is greater than my number. ? i.guess 83 your guess is less than my number. ? i.guess 84 You got it! To try again type: restart ? restart Guess a number between 0 and 99 Type: i.guess number ---- I'm passing arguments to functions. I'm not using "raw_input", I'm using the prompt. AND I'm not teaching mon what a function is. :) Daniel From kirby.urner at gmail.com Mon Sep 11 07:32:45 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 10 Sep 2006 22:32:45 -0700 Subject: [Edu-sig] simple guessing games In-Reply-To: References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> Message-ID: Given we've learned how dot notation triggers behaviors, of strings, of lists, of modules, we now look at our snake's internal __rib__ syntax. Mnemonic (also legal Python, even if __rib__ isn't really a special name [1]): class Snake: """triggering reflexes...""" def __rib__(self): pass def __rib__(self): pass def __rib__(self): pass def __rib__(self): pass def __rib__(self): pass def __rib__(self): pass def __rib__(self): pass def __rib__(self): pass Both __init__ and __repr__ are special methods, ready for our use.[2] [1] http://www.dbforums.com/showthread.php?t=407220 [2] http://www.python.org/doc/current/ref/specialnames.html ======== import random class Secret: def __init__(self): self.__hidden = random.randint(0,100) def guess(self, val): if val > self.__hidden: print "too high" elif val < self.__hidden: print "too low" else: print "You guessed it!" def __repr__(self): return 'A secret number' ======== >>> from sillygame import Secret >>> thesecret = Secret() >>> thesecret.guess(10) too low >>> thesecret.guess(50) too low >>> thesecret.guess(75) too low >>> thesecret.guess(85) too low >>> thesecret.guess(95) too low >>> thesecret.guess(100) too high >>> thesecret.guess(96) You guessed it! === Good work mom! Kirby From ajsiegel at optonline.net Mon Sep 11 09:42:49 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 11 Sep 2006 03:42:49 -0400 Subject: [Edu-sig] simple guessing games In-Reply-To: References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> Message-ID: <45051379.8010005@optonline.com> kirby urner wrote: >class Snake: > """triggering reflexes...""" > def __rib__(self): pass > > Having unilaterally decided that some connection between something Fuller once said about ships (was it ?) and the fact that there is a programming language called Python which is a snake and has ribs (like a ship?) and uses double underscore syntax is so irrestibly clever that it deserves a place in the Urnian Pantheon and private language we will be subject to references to it - in this public forum - for how long??? Hoping to influence that decision: a) One of design features of the programming language named after a comedy troup, not a reptile, that it seems to me is of fundamental significance to tis success is its willingness to be outward facing, not inward - its willingness to leverage the use of generally accepted and commonly used idioms, not be overly clever, i.e be a public language, not a private language. b) Fuller only marginalized himself by resorting to private language. Clever enough poeple like myself find him unbearable to read, which is something quite different from being able to read him, were it bearable to do so. c) Urner is not Fuller. Art From ajsiegel at optonline.net Mon Sep 11 15:02:34 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 11 Sep 2006 09:02:34 -0400 Subject: [Edu-sig] simple guessing games In-Reply-To: <45051379.8010005@optonline.com> References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> <45051379.8010005@optonline.com> Message-ID: <45055E6A.9020508@optonline.com> Arthur wrote: >a) One of design features of the programming language named after a >comedy troup, not a reptile, that it seems to me is of fundamental >significance to tis success is its willingness to be outward facing, not >inward - its willingness to leverage the use of generally accepted and >commonly used idioms, not be overly clever, i.e be a public language, >not a private language. > > FWIW, I also happen to think that the passion around the @decorator debate centered around this issue - many people feeling that the facility had the potential of redirecting Python inward. I still cringe a bit when contemplating lots of @'s in the standard library of Python3000. And FWIW, it seems that it seeems to me that sys.stdin.readline() is more public facing than is raw_input(), and I think my gut preference for it is on that basis. All said at the risk of having my own private conversation. Art From ajsiegel at optonline.net Mon Sep 11 15:38:12 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 11 Sep 2006 09:38:12 -0400 Subject: [Edu-sig] simple guessing games In-Reply-To: <45055E6A.9020508@optonline.com> References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> <45051379.8010005@optonline.com> <45055E6A.9020508@optonline.com> Message-ID: <450566C4.2000300@optonline.com> Arthur wrote: > FWIW, I also happen to think that the passion around the @decorator > debate centered around this issue - many people feeling that the > facility had the potential of redirecting Python inward. I still > cringe a bit when contemplating lots of @'s in the standard library of > Python3000. > > And FWIW, it seems that it seeems to me that sys.stdin.readline() is > more public facing than is raw_input(), and I think my gut preference > for it is on that basis. > > All said at the risk of having my own private conversation. > Interested in finishing my thought, and having to leave for a client and unable to wait to see if there is any general interest in its thread before I do so - its only empty bandwidth after all -- A petition I *did* sign was the one imploring Guido to reconsider his choice of syntax for decorators. I signed it in opposition and dissent to its contents (good that the petition provided for that). So that I was supporting Guido's choice of syntax, and asking him to stick to his guns - thinking that "@" isolated decorators appropriately as something other than Python business-as-usual. Art From kirby.urner at gmail.com Mon Sep 11 16:06:37 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 11 Sep 2006 07:06:37 -0700 Subject: [Edu-sig] simple guessing games In-Reply-To: <45051379.8010005@optonline.com> References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> <45051379.8010005@optonline.com> Message-ID: On 9/11/06, Arthur wrote: > Having unilaterally decided that some connection between something > Fuller once said about ships (was it ?) Yeah, the ribs of a hull become the eaves when you flip the boat over. More in my blog. > and the fact that there is a programming language called Python > which is a snake and has ribs (like a ship?) and uses double underscore > syntax More like a snake -- lots and lots of ribs in a snake. > is so irrestibly clever that it deserves a place in the Urnian Pantheon > and private language Something like that, yes, except it's not quite as private as you'd like, might make it to Saturday Morning cartoons or something (on an instructional channel -- gotta find the transponder). > we will be subject to references to it - in this public forum - for how > long??? What's your problem? Big Boys at MIT are more relevant than Python Pedagogy on edu-sig? People don't have to like or implement my ideas, nor I theirs, but at least I'm speaking to what's up on this list: ways to teach Python effectively. The __rib__ idea is actually very good, as it gets across the idea that we're building reflex behaviors into a creature like object, one with internal state (i.e. self). It brings these so-called special names into sharp focus, which is what many need, as the whole concept of operator overriding is obscure to them, yet intrinsic in my curriculum, where we want to add and subtract vector objects naturally, using + and -, which means overriding __add__ and __sub__ as you know (two of the standard ribs). > Hoping to influence that decision: > > a) One of design features of the programming language named after a > comedy troup, not a reptile, that it seems to me is of fundamental > significance to tis success is its willingness to be outward facing, not > inward - its willingness to leverage the use of generally accepted and > commonly used idioms, not be overly clever, i.e be a public language, > not a private language. The Monty Python allusion is becoming the more archaic with the passing of time, and not because that's anyone's fault or a tragic happening. People will always go back to Monty Python on DVD and get the allusions, lacing through early Python books especially, to the Spanish Inquisition etc. But to programmers not so versed in a previous generation's TV comedy sourced from the UK, the snake image is simply more obvious. Plus it's on the logo, or Python Nation flag or whatever. So my decision to unhook from British comedy and attach to a real Python, is not just taken idley :-D > b) Fuller only marginalized himself by resorting to private language. He never marginalized himself. He had very bold letterhead, covered with awards and degrees, wrote many books, has many large structures to his name, important patents, many students all over the world. What *is* your problem? Medal of Freedom from Ronald Reagan. An Institute (bfi.org). What "marginalized himself"? Nor am I doing that to me. You're trying to, apparently, but failing. Go back to fighting your teddy bear MIT. > Clever enough poeple like myself find him unbearable to read, which is > something quite different from being able to read him, were it bearable > to do so. I already gave you a good picture of my model: My being a student of Bucky's stuff comes before any exposure to Python, chronologically speaking, and while you were doing whatever you did before Pygeo and Python, I was being BFI's first webmaster, collaborating with Applewhite & Bonnie, other Krew, being a buckaneer. THEN I needed open source tools (as in powerful, affordable), so I progressed through the languages I could learn, starting with the ones I used professionally. And THAT'S HOW I came to be here on edu-sig. As a visiting Fuller Schooler, fully endowed and died in the wool or whatever they call it. Not shy about it, not apologetic. So get over it. > c) Urner is not Fuller. > > Art And duh once again? Kirby From kirby.urner at gmail.com Mon Sep 11 16:21:28 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 11 Sep 2006 07:21:28 -0700 Subject: [Edu-sig] simple guessing games In-Reply-To: References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> <45051379.8010005@optonline.com> Message-ID: > Yeah, the ribs of a hull become the eaves when you flip the boat over. > More in my blog. > Like here: http://controlroom.blogspot.com/2006/09/lunch-on-hawthorne.html (made use of Jason's horrifying snake at the bottom -- credit to Reuters) Kirby From ajsiegel at optonline.net Mon Sep 11 16:58:15 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 11 Sep 2006 10:58:15 -0400 Subject: [Edu-sig] simple guessing games In-Reply-To: References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> <45051379.8010005@optonline.com> Message-ID: <45057987.4000701@optonline.com> kirby urner wrote: > What's your problem? Big Boys at MIT are more relevant than Python > Pedagogy on edu-sig? People don't have to like or implement my ideas, > nor I theirs, but at least I'm speaking to what's up on this list: > ways to teach Python effectively. > > The __rib__ idea is actually very good I am quite aware of the fact that you think so. Is it "whats up on this list" if I disagree, and even go further and ask you to reconsider your approach in some fundamental regards - out of sincere interest in it. As close-but-no-cigar, and seeing that old stogey just sitting there, in plain view and seeing you stubbornly rejecting "plain view" as too plain, when it would more to the point to embrace it. Art My curriculum is more plane than plain, and gives some weight to the point that 3 points uniquely determine one. But that is a different story entirely. From pchase at sulross.edu Mon Sep 11 17:19:54 2006 From: pchase at sulross.edu (Peter Chase) Date: Mon, 11 Sep 2006 10:19:54 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <4500CCB5.8010307@optonline.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> <45018425.8080700@brynmawr.edu> <45018EBE.7080006@brynmawr.edu> Message-ID: <45057E9A.2010803@sulross.edu> kirby urner wrote: >> You can find me over at edupython at googlegroups.com. >> >> -Doug >> >> > > Who said we couldn't be passionate and hostile as teachers? As long > as we have it under control. > > I'm just registering my attitude, risking no one's reputation but my > own, on a list set aside for teachers (which is what I am). > > I think the petition process would set a dangerous precedent, if it > were in any way considered a way to get around already established > machinery. It'd be just like many teachers I know to think they > should get special privileges. > > I say we give them zero extra power, simply on the basis of their > being teachers. That'd be unfair to other constituencies. > > As a teacher, I'd be deeply ashamed to have my name on a Python > Petition of any kind, unless Guido had already signed off on that as a > viable community process. To my knowledge, he hasn't. Maybe I'm out > of date. > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > !DSPAM:518,450197d880009539417968! > > > Letting the mask slip so we could see the face underneath, eh Kirby? P. Chase From kirby.urner at gmail.com Mon Sep 11 18:20:09 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 11 Sep 2006 09:20:09 -0700 Subject: [Edu-sig] simple guessing games In-Reply-To: <45057987.4000701@optonline.com> References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> <45051379.8010005@optonline.com> <45057987.4000701@optonline.com> Message-ID: > My curriculum is more plane than plain, and gives some weight to the > point that 3 points uniquely determine one. But that is a different > story entirely. At this point I'm willing to just watch you and your crew (?) steer as you will, flying the Python Nation flag, the CP4E banner, both or neither -- your call. I don't want your help steering my ship, no. I wouldn't consider you qualified in any way, given your strong bias against our late captain. I prefer a more congenial working atmosphere, like I have today. So if we can cut down on the noise level: I promise to not mention __ribs__ on this edu-sig too often, since mostly I'm teaching Python live, face to face, in real classrooms, and can do it there with wild abandon. Observing faculty tend to see merit in my approach and adopt some of its elements (maybe the __ribs__, maybe not -- their call). However, if some new subscriber comes along and asks "how do you handle special name methods?" I'll likely pop up and say: I use this __rib__ mnemonic and teach it quite early as we require familiarity with operator overriding to implement our vector type, our integers modulo N type, our other math object types (but before that, we do more warm fuzzy stuff, with Dog and Monkey, subclasses of Mammal (and they have ribs too, e.g. __init__ and __repr__)). Primitive collection types also have them, as do the number types (float, int, decimal...). You, in turn, should feel free to peddle your obscure and outmoded ideas about geometry, which I'm sure some will appreciate, but quite frankly, I'm not a Euclidean (even if I respect him, and use "his" algorithm -- it's his axioms I don't really need nor make extensive use of (which does *not* mean I have to keep my hands off the trig, so don't try that again (unless you want more noise))). Where I think we have something in common is neither of us just wants to exclusively focus on legal minors, small people too young to vote. I love 'em, but Python is for grownups too. So if you're aiming your geometry at an adult clientelle, then we're likely to overlap in the region of VPython, where already I'm famous for Hypertoons (a big hit at Pycon and OSCON), and for First Person Physics (my main link to Bruce Sherwood and Ruth Chabay is through Bob Fuller emeritus, University of Nebraska (a different Fuller, and a different kind of genius)). Kirby From ajsiegel at optonline.net Mon Sep 11 18:29:44 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 11 Sep 2006 12:29:44 -0400 Subject: [Edu-sig] simple guessing games In-Reply-To: References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> <45051379.8010005@optonline.com> <45057987.4000701@optonline.com> Message-ID: <45058EF8.1020103@optonline.com> kirby urner wrote: > .. and a different kind of genius I think the biggest difference is perhaps is that you are surrounded more by geniuses than am I. I live in a world of continuums. Art From kirby.urner at gmail.com Mon Sep 11 18:38:26 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 11 Sep 2006 09:38:26 -0700 Subject: [Edu-sig] simple guessing games In-Reply-To: <45058EF8.1020103@optonline.com> References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> <45051379.8010005@optonline.com> <45057987.4000701@optonline.com> <45058EF8.1020103@optonline.com> Message-ID: > I think the biggest difference is perhaps is that you are surrounded > more by geniuses than am I. > > I live in a world of continuums. > > Art > Try it my way sometime. You might enjoy the experience. Kirby From ajsiegel at optonline.net Mon Sep 11 18:55:39 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 11 Sep 2006 12:55:39 -0400 Subject: [Edu-sig] simple guessing games In-Reply-To: References: <45049CD4.11873.6D63325@da.ajoy.gmail.com> <45051379.8010005@optonline.com> <45057987.4000701@optonline.com> <45058EF8.1020103@optonline.com> Message-ID: <4505950B.3030303@optonline.com> kirby urner wrote: > Try it my way sometime. You might enjoy the experience. Not a chance. What I will do, is stop trying vis a vis Kirby Urner. With the final bit of advice: If you ever intend to try your schtick in *my* town, wear long underwear - its going to get cold. Fewer geniuses, but more sophisticates around here. Art From kirby.urner at gmail.com Mon Sep 11 19:08:41 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 11 Sep 2006 10:08:41 -0700 Subject: [Edu-sig] simple guessing games In-Reply-To: <4505950B.3030303@optonline.com> References: <45051379.8010005@optonline.com> <45057987.4000701@optonline.com> <45058EF8.1020103@optonline.com> <4505950B.3030303@optonline.com> Message-ID: > Fewer geniuses, but more sophisticates around here. > > Art I know some of the geniuses. Kenneth Snelson for example (kennethsnelson.net). I was his first web master, like to crash in his place (lower west side, studio in Soho) when visiting. He gifted me with a tensegrity, just a little too big to fit through airport security x-ray machine.[1] Picture me going through EWR in early October five years ago, with this triangular cardboard carry-on. These personnel were sophisticated enough to see me as no threat, on the same side. Plus our BFI is in Brooklyn (bfi.org). I'd say we've got "your town" pretty well covered. But yes, long johns advised on cold winter days, especially upstate (wife's sister in Rochester, plus Fuller types in Oswego).[2] Kirby [1] http://worldgame.blogspot.com/2006/05/barrel-tower.html [2] http://synergeticists.org/index.html From kirby.urner at gmail.com Mon Sep 11 20:04:04 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 11 Sep 2006 11:04:04 -0700 Subject: [Edu-sig] simple guessing games In-Reply-To: References: <45051379.8010005@optonline.com> <45057987.4000701@optonline.com> <45058EF8.1020103@optonline.com> <4505950B.3030303@optonline.com> Message-ID: On 9/11/06, kirby urner wrote: > > Fewer geniuses, but more sophisticates around here. > > > > Art > > I know some of the geniuses. > > Kenneth Snelson for example (kennethsnelson.net). And Ed Gunnell, working class Jersey City lad makes Latin Teacher at SDA, a real friend to me. Then he married beautiful Yazz (for whom my car, Razz, is partly named), and went into the flower biz, doing big displays in major downtown NYC venues, Port Authority Area -- one of my favorites, always -- commuting in from a rural paradise. Anyway, strokes of genius, all. Great going Eddie G! And best wishes Arthur. As Dan Rather puts it: may your best work still be ahead of you. Kirby From hughstewart at optushome.com.au Mon Sep 11 07:13:06 2006 From: hughstewart at optushome.com.au (Hugh Stewart) Date: Mon, 11 Sep 2006 15:13:06 +1000 Subject: [Edu-sig] The fate of raw-input() in Python 3000 Message-ID: <000c01c6d560$f6f6e470$d400a8c0@co3041095a> Hi All, After 30 odd years of teaching 'programming' in many languages and at many levels; (High School, College, University) I have come up with the 10:20:70 rule of thumb. 10% of students will have a natural flair, 20% will make competent programmers and the remainder struggle with many of the concepts (This does not mean they don't gain from the experience, in many cases they do). Hence the majority of the students in any group(class) will be the 70%ers and so any assistance from the language is to be valued and the raw_input() and to a lesser extent input() I/O syntax have great value to the beginner. The comments of Dan Crosta ring true for many students. On retirement I toyed with the idea of turning the copious notes I had developed for students into a book/textbook. At the time Python v1.5.2 had just been released and it looked interesting as the language for the book. I took the hundreds of exercises and assignments and reworked them in Python. It was enjoyable. It was also interesting in comparing the strengths and weaknesses displayed relative to earlier languages. As an illustration: an exercise lifted from Oh! Pascal, 2nd. ed. Norton p229-233. Write a program that produces palindromic numbers by the following algorithm: "Start by taking a number. If it isn't a palindrome, reverse the number,sum the number and its reversal. If the new number isn't palindromic reverse the new number, then add it to the reversal. Eventually, the number will become a palindrome." After a few iterations either a palindrome is found or an overflow is reported due to the limitations of the integer representation in most languages. Then, I had neither the time nor interest to develop an extended solution. Since Python 2.3 the extended solution is quite simple (almost trivial) using long integers and extended slices. With this Python generated productivity I had time to play and enter a few numbers at random via raw_input() and to my suprise the number 879 (978) did not produce a palindrome after 100000 iterations. I immediately thought --- here is a conjecture: Not all numbers produce a palindromic number. Some time later a Google search produced the following site of interest: http://mathworld.wolfram.com/PalindromicNumberConjecture.html. To cut to the chase: raw_input() provides an extremely useful I/O function for simple exercise type problems which are so essential in building a beginners repertoire of programming techniques and for 'John Zeller' type problems ( simple quick dirty and effective solutions that get those housekeeping jobs done). Python gives us a programming language of extraordinary productivity at all levels of programming (especially for beginners). Just for Kirby: Buckminster Fuller even says something about palindromic numbers. See http://en.wikipedia.org/wiki/Palindromic_number Hugh -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060911/292441a5/attachment.htm From pchase at sulross.edu Tue Sep 12 16:43:40 2006 From: pchase at sulross.edu (Peter Chase) Date: Tue, 12 Sep 2006 09:43:40 -0500 Subject: [Edu-sig] The fate of raw-input() in Python 3000 In-Reply-To: <000c01c6d560$f6f6e470$d400a8c0@co3041095a> References: <000c01c6d560$f6f6e470$d400a8c0@co3041095a> Message-ID: <4506C79C.5000909@sulross.edu> Hugh Stewart wrote: > > > Python gives us a programming language of extraordinary productivity > at all levels of programming (especially for beginners). > Exactly. Peter Chase Alpine, TX From kirby.urner at gmail.com Tue Sep 12 18:04:19 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 12 Sep 2006 09:04:19 -0700 Subject: [Edu-sig] The fate of raw-input() in Python 3000 In-Reply-To: <000c01c6d560$f6f6e470$d400a8c0@co3041095a> References: <000c01c6d560$f6f6e470$d400a8c0@co3041095a> Message-ID: On 9/10/06, Hugh Stewart wrote: > To cut to the chase: raw_input() provides an extremely useful > I/O function for simple exercise type problems which are so essential > in building a beginners repertoire of programming techniques and > for 'John Zeller' type problems ( simple quick dirty and effective > solutions that get those housekeeping jobs done). This is where you lose me Hugh, and not because I disagree about 'John Zelle' type problems being useful. What I wouldn't necessarily do is make my palindrome finder a standalone script. A Python module usually contains more than just a single function, and everything you code and leave on the disk as a .py file is importable as such (as a module), even if you run it directly. The function to reverse a number might be reusable in another context. Functions are top level in Python. You can feed them to each other. In math class we teach about functions, usually with single-letter names -- usually considered poor practice in CS -- and we teach kids to feed arguments to these functions through mouth-looking pairs of parentheses. This is the kind of awareness I want a newbie to bring to a Python module (a .py file) -- me and those who share my particular outlook in this regard (I'm not speaking for the entire world here obviously). A .py file should be more like a fish tank, full of fun little performers that you gradually add to over time. No main() need tie it all together. It's a vocabulary. Life is full of 'em. We know kids have the mental capacity, e.g. from sports, to track lots of names. Someone objects: but how are you supposed to remember what all these functions do and what arguments they take? Well that's a good question, but how is saving a program named palindrome.py in some subdirectory any more self-explanatory, even if it raw_inputs? Where should we look for it? There should be more documentation -- the perrenial need (Apple fought against the "thick manual" aesthetic, recruited sensitive artist types to our previously drab dweeby field). The functional style is to feed functions through their mouths, not to "pipe in" through intravenous -- a hole right in the body of a function. What I don't like about making palindrome.py a "script" (a standalone .py file) is it fails to develop the sense of "being in a namespace", which is what you get when you fire up the Python shell and import one. Suddenly dir() shows there's more here than just the builltins, lots of little functions to feed, a whole fish tank of fun fishies, all with proper names, presumably with docstrings to explain 'em. My style of teaching beginners is: teach 'em to "feed the fish" i.e. to use functional notation (probably already familiar from math class). Use Python's dir() and help() facilities to remind oneself, or explore for the first time, what's in a .py file. Python modules are far better at self-documenting that brute file systems at the OS level. It's easier to document palindrome( ) in funprograms.py, than it is to save palindrome.py and stuff text in some readme.txt. And we start coding "creatures" right away too. A barking Dog, right away -- maybe something the teacher writes, projected on the big screen. But at least we see it, understand the dot in mydog.bark(3) is invoking an internal bark method. Because modules are just naturally habitates for such class definitions. This is a really big part of the language, not some bolted-on after thought. OO is where it's at. Not some "OO is 2nd year CS2 stuff" (like you're joking right? -- you're *not* the world, right? (praise Allah we have these alternative approaches)). What's *in* a .py file may be a whole lot of Zelle-like short programs, a box of chocolates, none of them more than 20 or so lines. Maybe they call each other sometimes. palindrome() invokes reverseme() etc. An ecology. Stuff depending on other stuff. Another way of saying it: treat Python's shell, plus a code editor, as your working environment. You tweak the source, save, and reload(). This is the work cycle when debugging for example. If you never drop out to the OS the entire hour, so what? It's *not*: run python myscript.py from the terminal window, prompt myself for input, see the thing crash, then go open a text editor to mess with the code. That's *too hard* (unnecessarily hard). All that work in the OS. Why are we messing with the OS so directly? That's a whole different shell, not Python's. Not suitable for beginners, to be mixing OS and Python shells too much. Entirely different namespaces. Too schizo. > Python gives us a programming language of extraordinary productivity > at all levels of programming (especially for beginners). I completely agree. But we shouldn't confuse pedagogy with starting level of sophistication. My beginning students know as little programming as anyone, and have bell curved abilities. But give I fly the CP4E banner, I'm goal directed towards a culture where the caste line between being "a programmer" and "not a programmer" is of fading significance. Students stream in from biology to learn enough Python to go off and write little models, make graphs, study DNA sequencing or whatever. That's just what biologists do, as well as squint through microscopes and/or trap mosquitos and/or culture microbes. This isn't about "becoming a career programmer" at this level, it's about learning to use a computer as one more tool of the trade. I think the "make everything a raw_input script" philosophy harkens back to the days when you had these people called "programmers" who looked at source code a lot, and other people called "users" who never did. Pre CP4E. A very dark age. A huge chasm or wall separated these two psychologies, and when you trained to become a programmer, you needed to internalize this chasm and imagine yourself as a "dumb user" who never looks at source code or has any awareness of namespaces. You had to divide yourself mentally in this way so that you'd be better able to work with the *real* (as in actual, true to life) dumb users in the future (the people you'd meet on the job). I'm saying that's not the CP4E way. We're training *you* to code for *you* right at first, with no prehistorical "dumb users" in the picture. You maybe haven't committed to becoming a computer programmer professionally. You just want to be able to code, like any red blooded American or Russian or Indonesian or whatever. Like driving a car. Like knowing how to swim. A basic skill. Part of numeracy, just like ordinary algebra, already required for a high school degree. You're going to become fluent in the Python environment, productive, and we're not going to introduce you to "scripting" until a little later, when we start to explore the sys module, including sys.args -- the infrastructure for interfacing with the OS outside of Python. That's somewhat advanced, and that's when we get to sys.stdin.readline() as well. We're not just "feeding the fish" in a Python module fish tank from the Python shell anymore, we're doing more sysop type stuff. Now we're more into "scripts" as in "grep through /etc/users/myclubhouse and find out who hasn't paid dues in awhile" -- little maintenance jobs customarily executed from a terminal window, written in Perl, Python, Ruby or whatever. That's one use for 'em, but it's a specialized niche, more for CS majors than biology majors. But anyway when it comes to sysop type stuff, if there're arguments to be passed, we usually just use POSIX switches and sys.arg infrastructure, passing a file name if there's a ton of input to consider. Once again sys.stdin.readline() is a bit on the obscure side. But it's there, in case you need it for some reason. Kirby From da.ajoy at gmail.com Tue Sep 12 18:52:22 2006 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Tue, 12 Sep 2006 11:52:22 -0500 Subject: [Edu-sig] The fate of raw-input() in Python 3000 In-Reply-To: References: Message-ID: On 12 Sep 2006 at 12:00, edu-sig-request at python.org wrote: > To cut to the chase: raw_input() provides an extremely useful > I/O function for simple exercise type problems which are so essential > in building a beginners repertoire of programming techniques and > for 'John Zeller' type problems ( simple quick dirty and effective > solutions that get those housekeeping jobs done). Again, inputs to functions (or procedures), and the prompt, can replace raw_input, as in my first example (simple guessing games). I define the following procedures: to palindrome? :n if 2 > count :n [output "true] if (first :n) = (last :n) [output palindrome? butfirst butlast :n] output "false end to make.pal :n print :n if palindrome? :n [stop] make.pal :n + reverse :n end Then, at the prompt: show palindrome? 121 true I can press the "Trace" button, and I get: show palindrome? 121 ( palindrome? 121 ) ( palindrome? 2 ) palindrome? outputs "true palindrome? outputs "true true show palindrome? 123211 ( palindrome? 123211 ) ( palindrome? 2321 ) palindrome? outputs "false palindrome? outputs "false false Anyway: make.pal 423 423 747 make.pal random 1000 739 1676 8437 15785 74536 138083 518914 938729 1866568 10523249 104755750 162313151 313626412 528252725 1055505550 1610561051 3112211212 5233333325 make.pal random 1000 507 1212 3333 make.pal random 1000 600 606 make.pal 879 879 1857 9438 17787 96558 182127 903408 1707717 8884788 17759676 85455447 159910905 668930856 1326970722 3597766953 7194444906 13288889823 46187778054 91275556218 172541113437 906852258708 1714704517317 8851858591488 17693817173076 84730989012747 159452087916495 754071868171446 1.3982437363419e+15 + doesn't like 51+e9143637342893.1 as input in make.pal I can modify my make.pal procedure, to use lsum instead of "+". to make.pal :n print :n if palindrome? :n [stop] make.pal lsum :n reverse :n end make.pal 879 879 1857 9438 17787 96558 182127 903408 1707717 8884788 17759676 85455447 159910905 668930856 1326970722 3597766953 7194444906 13288889823 46187778054 91275556218 172541113437 906852258708 1714704517317 8851858591488 17693817173076 84730989012747 159452087916495 754071868171446 1398243736341903 4489680109770834 8870459120640678 17630919340181466 84049023732085137 157207047464179185 739178512204881936 1378366914420753873 5161937158617392604 9224874327134784219 18349748644369568448 102836344989054362829 1031099795978498001030 1332108744774477902331 2664206489548955914662 5328402088008801939324 9567793176017603987559 19125686243124317965218 100382657585258586617409 1005099343437844342900410 1145191777925187782805411 2290274655740485554720822 4570549211580961119441744 9041998323271812248892498 17984986745453535487883907 88923865198988990256832878 176747730408977979413665866 845314045388757783451413537 1580628199776515666991827085 7387910196441672446910087936 13785710392884433893820285773 51543913232717882723122044504 92087935365446754446353979019 183185870729892518902707957048 1023945577939707817829786538429 10272302457226894897227542031630 13885327029506744759502962358831 27770653950102489520095034717662 54442397009105087940200970325434 97894704909310065990391049649879 195789398928620021991781990399758 1053782498115819142018611884387349 10491617379283921561203730827260850 16297890183014138074142028198880251 31506779365038285157283066308759512 53102559731076560315566122706520025 105105120453243111622133136502040160 166145326084574337733475490523541661 332290651179148675466950971147083322 555671392358208340043792942303175555 1111242695607505680087595795596352110 1223779651583463480952652861558773221 2447558203266026071796296713128546442 4894016416442953043502503336157103884 9777033932776005096906095782303208868 18465056965651911193811102554696516647 93126626611172023032923018211661573128 175264143222453055955955045323324235267 937796566545993615515505399545665697838 1776593133091987121031021799091331395577 9532524465001958322332239690994645352348 17965059929992927644664478282000289604707 88705758130021215091309151211993284661678 176322406369932430281628202423996470412466 840536481069256633107810236663960074636137 1572172951138623265126511573316920259271185 7383902471434757016282727196585231851983936 13777794052760613933555553304159573594077773 51554843590355754269111087235766298643855504 92110678279622507547122283481521608178701019 183121465460235025985344458052044305466302148 1024325129963675276839788047572576370030423529 10277565430700428034248667434298340069245657730 14053219726704817277725351677380740772702234931 27996440454409525655340704454652581535493469972 55992879907928051300781408810305171980897939944 100986859716845201602661827510620254951895769899 1099954457876297227618389993716722803569854458900 1198499047529379503792389831883950730357399058801 2287008985059750097673779664857010469614809007712 4464018069229390205258449438624911049120707015534 8819125139448791399526798887149931988350315120178 17529340269987682798944687863409863966799630339366 83922643969754619689381566508399592645795834731937 157836387829509249288762133026798284291592769354875 736290355124701732186382464294681227197521552993626 1362689610250493454372874928578362464304943106086263 4989495623744528097011633223361097008245463275948894 9977991347389956104913266446722204916499936541898788 18856972803789902298935542893345398933099773973896587 97426810741588936288289882717899388154098504801862468 183853621582177981476689754446797676418087019503724947 933280927492958796153487398904784350607858304630083328 1756660963896817502206974808798568702305717599359165667 9422280503853992534285633786883364724362904583049832238 17744669907708085168560267673756730548715898166100654487 96190270073897936953064033411432937134873978937097299258 181489549147885874796237956822865983170837958774104508427 906294950625745612867627525051525715868316547516050492608 1712589001241491226736145050202051442636533095042109985217 8838488013647394583098586552222556859012755036463119837388 17675877127293700155208173104445113717916609973926228685776 85434559390231690817179904258885250898171710713198406543447 159869119879363392534369709517770491895343520326407802086905 669549328583986417877967903595486399858778813690386714055856 1328099746267082736755826897280081709628557528379772538001822 3609108099046820994314095969080909695914133901187399017910053 7109305208984632087628291938171719391818268891473808925929116 13228600507068374076256473877343437783746536693838706950968133 46415506467852213739821212650777815621211803741224777451650364 92721121945594428470632425302655521242424697472450653912201828 175531343881199855950274849515211141594848304954900208824314557 930944772683209315354123344656323657543320364513891397167450128 1751999534476407630817146690412647313986641818027793783444899167 9371983978350384838998613583550109454953058998394840527804890738 17742968065600869777997117178099120008806227996779671066598782477 95171757631618567547969378058101319095977407974576471722685707248 179442516254336035095939856017192629281064804949153053336361424407 883866679887686387045348316200118920991723744539683686788976669378 1757833359775372773980795643399148731994337588080467373577953337766 8435166957529110414789652978390527151927803558974240109357486725337 15770443805068120839588206065682044402866596128848380228615083340685 ... Daniel From kirby.urner at gmail.com Tue Sep 12 22:29:50 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 12 Sep 2006 13:29:50 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <721e81490609081957l7bfcf89fmf191ff9f4660d6ea@mail.gmail.com> References: <721e81490609081407v2a28ec94g90aade43f3296dfe@mail.gmail.com> <721e81490609081957l7bfcf89fmf191ff9f4660d6ea@mail.gmail.com> Message-ID: On 9/8/06, Joshua Zucker wrote: > On 9/8/06, kirby urner wrote: > > I think the model today is "a person writing code for him or herself" > > i.e. "self as client" -- at least in an early context. We're not > > guiding the unknowing through a menu tree. We're computer literate, > > fluent. > > > > Why would we ask ourselves for raw_input, when it's much easier to > > just pass arguments to functions? > > As someone who has taught a lot of functional programming (Scheme), I > have a lot of sympathy for this argument. It wouldn't occur to me to > teach raw_input or its equivalent anywhere early in the course, > because designing functions is what it's all about! I don't think it's an accident that the Scheme community seems more prepared to teach in a functional style, and treat .py namespaces as fish tanks full of mouthy functions and class type initializers -- both callables. Top-to-bottom executable scripting, with maybe forks in the road, as in: dumb_user_says = raw_input("yes or no?: ") and likely no going back if you answer it wrong: confirm = raw_input("are you sure??") Not that we don't like being asked a 2nd time, but there are other ways to build in security. You might have to actually go into the source and uncomment something (standard in POSIX environments: cut and paste a commented example, tweak and uncomment). You might have to tweak a permission. Very likely, a program with consequences will log its activities. A big part of a sysop's job: know where programs leave audit trails ( /var/syslog or whatever). Companies sometimes have manuals of style. Code that's potentially dangerous should be flagged as such. Various conventions. Often there's a "no anonymous users" policy i.e. you can't run this code if you're not willing to have your real name in the log as the user. But of course hackers are always looking for ways to bypass such restrictions (sometimes to hack into their own systems, when they've been a little too clever, and now can't remember the stupid passphrase or whatever it was). Very often, companies resort to physical dongles, swipe cards, other hardware, to prevent unauthorized access. Anyway, the most primitive module or namespace is the current session, a kind of temporary scratch pad, where we cut and paste the "keepers" to a "final draft" version. Smalltalk has less of this sense of "saving out to permanent storage" and keeps the current scratch pad as the image (unless you don't save it). I wonder about that workflow, but realize you can internalize any file structure you like in an image: Smalltalk tends to seek the outer frame, and provide everything internally (the tablet itself was the "smalltalk machine" with "lid closed hibernation" -- since the 1960s at least). > But the Scheme course I taught also came with a lot of teachpacks > (read: modules to import) that did things like provide an interactive > session with your function (prompting, like raw_input but with more > error handling built in, or GUI). Without those, I might have been > tempted to teach those input functions after all. People have different motives for getting into programming, which need to be taken into account. Some want to impress their mom's with "look mom, no hands" GUI programs, others want to sit in a back office fine tuning statistical analysis programs that will never see the light of day, but which make the company tons of money and adds quality of life to its customers as well. I'm not saying any of these ways is "wrong". But I think we should acknowledge each language brings forward a sense of an interface. Python's is most naturally a shell. That's how it was designed. And that goes will with today's "unit testing" and "extreme programming" best practices. Work interactively at a work bench, debugging, reloading, while saving out "keeper quality" work to intelligently designed modules, properly populated with docstrings etc. Kirby From kirby.urner at gmail.com Tue Sep 12 22:34:28 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 12 Sep 2006 13:34:28 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <721e81490609081407v2a28ec94g90aade43f3296dfe@mail.gmail.com> <721e81490609081957l7bfcf89fmf191ff9f4660d6ea@mail.gmail.com> Message-ID: On 9/12/06, kirby urner wrote: > Top-to-bottom executable scripting, with maybe forks in the road, as in: > > dumb_user_says = raw_input("yes or no?: ") > > and likely no going back if you answer it wrong: > > confirm = raw_input("are you sure??") > "... is a style we don't really encourage." I should have added. We want random access to stuff saved on the heap, through nothing more than hash table lookup. We don't want serial guidance through a set of this-or-that choices, as if we're not competent to just operate the machinery however we see fit. "We" is not the whole world, just a school of thought that wants CP4E to really *mean* something, not just be rhetoric for mental couch potatoes. Kirby From lists at janc.be Tue Sep 12 23:37:21 2006 From: lists at janc.be (Jan Claeys) Date: Tue, 12 Sep 2006 23:37:21 +0200 Subject: [Edu-sig] Compatibility and legacy in language evolution In-Reply-To: References: Message-ID: <1158097041.5109.294.camel@bedsa> Op za, 09-09-2006 te 17:53 -0700, schreef Radenski, Atanas: > Strictly speaking this is true, but Mr. Stroustrups own papers also > explain how important the full C/C++ compatibility is - and that > achieving it is his ideal Well, strictly speaking language A can only be fully compatible with language B and have more features if language B has a mechanism for extension that ignores unknown features. Considering that C has no such mechanism, C++ will never be 100% compatible with C. -- Jan Claeys From kirby.urner at gmail.com Wed Sep 13 00:01:04 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 12 Sep 2006 15:01:04 -0700 Subject: [Edu-sig] Compatibility and legacy in language evolution In-Reply-To: References: Message-ID: On 9/9/06, kirby urner wrote: > But that's just [our] "stars in the sky" style over in Buckyville. We > have these weird slogans, like "YOU be the glue." Brad says our > private sky is NOT THE WORLD in his posts. He sounds like a > philosopher. Some other castle somewhere, where they use "all caps" a > lot (I try to be sparing, but yes, I use them too). Actually, that was Michael Sparks of cerenity.org who reminds me I'm not the world (thanks Michael). Brad Miller is someone else: http://www.cs.luther.edu/~bmiller/ Not to be confused with... John Miller, author of PhD dissertation, Promoting Computer Literacy Through Programming Python (1.37 MB) which looks at the issues around teaching with Python, and explores some of the threads taken up right here on edu-sig, and available for download from the Python Community edu-sig home page. Kirby From joshua.zucker at gmail.com Wed Sep 13 01:53:02 2006 From: joshua.zucker at gmail.com (Joshua Zucker) Date: Tue, 12 Sep 2006 16:53:02 -0700 Subject: [Edu-sig] Compatibility and legacy in language evolution In-Reply-To: <1158097041.5109.294.camel@bedsa> References: <1158097041.5109.294.camel@bedsa> Message-ID: <721e81490609121653v3273272dyd77b82c5615d2b1b@mail.gmail.com> On 9/12/06, Jan Claeys wrote: > Op za, 09-09-2006 te 17:53 -0700, schreef Radenski, Atanas: > > Strictly speaking this is true, but Mr. Stroustrups own papers also > > explain how important the full C/C++ compatibility is - and that > > achieving it is his ideal > > Well, strictly speaking language A can only be fully compatible with > language B and have more features if language B has a mechanism for > extension that ignores unknown features. Considering that C has no such > mechanism, C++ will never be 100% compatible with C. I think the point is that a C programmer can start writing C++ programs without having to change anything -- legal C programs will still run just fine in C++. Then the C programmer can gradually learn whatever parts of the extensions of C++ at whatever rate, and slowly evolve into a C++ programmer. --Joshua Zucker From kirby.urner at gmail.com Wed Sep 13 02:22:27 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 12 Sep 2006 17:22:27 -0700 Subject: [Edu-sig] Compatibility and legacy in language evolution In-Reply-To: <721e81490609121653v3273272dyd77b82c5615d2b1b@mail.gmail.com> References: <1158097041.5109.294.camel@bedsa> <721e81490609121653v3273272dyd77b82c5615d2b1b@mail.gmail.com> Message-ID: On 9/12/06, Joshua Zucker wrote: > I think the point is that a C programmer can start writing C++ > programs without having to change anything -- legal C programs will > still run just fine in C++. Then the C programmer can gradually learn > whatever parts of the extensions of C++ at whatever rate, and slowly > evolve into a C++ programmer. > > --Joshua Zucker For me it's less a question of what runs what in purely syntactical terms -- if A++ runs A unchanged, then I'd tend to call A++ an "extended version" of A i.e. A++ is the "full language" with A a kernel, core or subset thereof -- and more a question of learning curves. What's a realistic transition? How might we recruit to our language and not loose too many, even the ready and willing, over some cliff? Python is more a cosmopolitan meeting ground of friendly ideas from several good languages (albiet some of them obscure) than it is remote or alien, like J is, or M. Python feels friendly, not intimidating. That's not just because it's agile, although that's a big part of it. I talk about this in my presentation to the London Knowledge Lab earlier this year -- about how I "feel like a genius" when I get my J stuff working, yet I'm suspicious of that. I prefer "an ordinary experience" most of the time, and I get that in Python. http://bfi.org/pythonicmathematics One cool part about all this is I'm *not* required to "abandon J" just because I like Python or vice versa. When it comes to computer languages, I don't believe in monogamy. Don't get married to Python, just hook up. We'll gladly share you with another. Kirby From radenski at chapman.edu Wed Sep 13 03:07:50 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Tue, 12 Sep 2006 18:07:50 -0700 Subject: [Edu-sig] Compatibility and legacy in language evolution Message-ID: > -----Original Message----- > From: edu-sig-bounces at python.org [mailto:edu-sig-bounces at python.org] On > Behalf Of Jan Claeys > Sent: Tuesday, September 12, 2006 2:37 PM > To: edu-sig at python.org > Subject: Re: [Edu-sig] Compatibility and legacy in language evolution > > Op za, 09-09-2006 te 17:53 -0700, schreef Radenski, Atanas: > > Strictly speaking this is true, but Mr. Stroustrups own papers also > > explain how important the full C/C++ compatibility is - and that > > achieving it is his ideal > > Well, strictly speaking language A can only be fully compatible with > language B and have more features if language B has a mechanism for > extension that ignores unknown features. Considering that C has no such > mechanism, C++ will never be 100% compatible with C. Well, compatibility can be defined in *various* ways of course. If one is an extremist regarding compatibility, one can say that C++ is not compatible with itself. Indeed, the same C++ program may behave differently under different compilers - for the simple reason that some language features, particularly those related to integer types, are left implementation-dependent. The same program may run correctly under one compiler and misbehave under another. Hence - C++ is incompatible with itself. What matters in my opinion is not extremism, but a practical compatibility, as already explained by Joshua Zucker: "... a C programmer can start writing C++ programs without having to change anything -- legal C programs will still run just fine in C++. Then the C programmer can gradually learn whatever parts of the extensions of C++ at whatever rate, and slowly evolve into a C++ programmer. " Thinking of it, this kind of compatibility can provide mighty support for an evolving language. > Jan Claeys Atanas Radenski From andre.roberge at gmail.com Wed Sep 13 03:29:48 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Tue, 12 Sep 2006 22:29:48 -0300 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45057E9A.2010803@sulross.edu> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <54339.68.34.179.248.1157684917.squirrel@webmail.brynmawr.edu> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> <45018425.8080700@brynmawr.edu> <45018EBE.7080006@brynmawr.edu> <45057E9A.2010803@sulross.edu> Message-ID: <7528bcdd0609121829qc010242x94c1fb74cd9faaa1@mail.gmail.com> Hi all, I was going to do like John Zelle, and stop contributing to this point, but I have a lot less discipline than he does. A while ago, out of curiosity I bought "Python programming for the absolute beginner" by Michael Dawson to see his approach as it is considered an extremely newbie-friendly way to teach programming in general and programming with Python in particular. Mindful of copyright breaches (hey, I recommend the book!), I think I can safely reproduce his first example in its entirety here: =============== # Game Over # Demonstrates the print command # Michael Dawson - 12/26/02 print "Game Over" raw_input("\n\nPress the enter key to exit.") ========================== That's it. Dawson builds from this simple example, making better and better use of raw_input() as he goes along. Everything is built from extremely simple input/output like others have described: print gives info *to* the user, raw_input() sends information *from* the user to the program. Two core built-in commands, simple to explain, to which other instructions can be added to create more complex programs. I would really like to hear about Dawson's opinion on the removal of raw_input() from Python built-ins... I think that Dawson's book contributes a lot to the stated goals of CP4E. I would also be curious to hear the opinion of those involved in the writing/editing of "How to think like a computer scientist" regarding the same topic... raw_input() is used a lot there too... To the "Kirby"s out there, I am *very aware* that there are other approaches to teach programming/Python. For those that doubt this, have a look at rur-ple (rur-ple.sourceforge.net), a Python Learning Environment I designed based on "Karel the robot" type of approach. In addition to designing the environment, I have written 49 lessons so far ... NONE of which uses/introduces raw_input(): it is simply not required using a graphical environment like rur-ple. By the time I might need to introduce it (if only for completeness), learners will already be familiar with import, functions, etc., so that a user-defined raw_input() could be easily introduced instead. Yet, I think it is a mistake to remove it (as I have stated before). To those that disagree, I would ask: how do you propose in concrete terms (not pie-in-the-sky) to replace Zelle`s book, Dawson's book and How to think like a computer scientist, once raw_input() has disappeared from Python built-ins? Where`s the textbook? Andr? From kirby.urner at gmail.com Wed Sep 13 04:52:32 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 12 Sep 2006 19:52:32 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609121829qc010242x94c1fb74cd9faaa1@mail.gmail.com> References: <7528bcdd0609041745j648ed291h7b40e3ec1883508d@mail.gmail.com> <10163.68.34.179.248.1157714131.squirrel@webmail.brynmawr.edu> <45018425.8080700@brynmawr.edu> <45018EBE.7080006@brynmawr.edu> <45057E9A.2010803@sulross.edu> <7528bcdd0609121829qc010242x94c1fb74cd9faaa1@mail.gmail.com> Message-ID: On 9/12/06, Andre Roberge wrote: > Yet, I think it is a mistake to remove it (as I have stated before). > To those that disagree, I would ask: how do you propose in concrete > terms (not pie-in-the-sky) to replace Zelle`s book, Dawson's book and > How to think like a computer scientist, once raw_input() has > disappeared from Python built-ins? Where`s the textbook? > > Andr? > The computer book industry thrives on changes obsoleting earlier books. Change is what publishers like O'Reilly expect and/or like about this fast moving industry, so I wouldn't worry. Lots of job security. Teachers bring their own biases to their teachings. For me, it's always been about building within languages that offer an interactive command line (APL, dBase/VFP... Python, J). I've saved lots of autobio, to help make my influences obvious (in case anyone cares to know). I'm sorry if I was giving the impression I'm telling other professionals how to do their jobs. More, I'm not expecting others to change, just because I wrote something in an obscure archive. People will keep doing what they do. One or two might experiment with my recommended approach, maybe a few more. I likewise experiment with ideas others share here, incorporate them into by bag of tricks. I want my gnu math teachers to blend a functional approach to Python and ordinary algebra, to create a tastey healthy brew, suitable for enjoying a Silicon Forest lifestyle -- a namespace others elsewhere may find valuable and import. Our world is like this (and I'm sorry about that first line -- left over from a post to Synergeo of earlier today (29094 Re: Polytopes)): IDLE 1.2b2 >>> "not his kissing butt".replace("his kissing","kissing his") 'not kissing his butt' >>> def f(x): return x ** 2 >>> def g(x): return x + 7 >>> def compose(fa, fb): def fc(x): return fa(fb(x)) return fc >>> f(10) 100 >>> g(10) 17 >>> h = compose(f,g) >>> h(10) 289 >>> k = compose(g,f) >>> k(10) 107 Not waiting for textbooks. Just using the web. Kirby From peter at mapledesign.co.uk Wed Sep 13 10:16:30 2006 From: peter at mapledesign.co.uk (Peter Bowyer) Date: Wed, 13 Sep 2006 09:16:30 +0100 Subject: [Edu-sig] The fate of raw_input() in Python 3000 Message-ID: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> [send this to Kirby rather than the list...] At 22:27 08/09/2006, Kirby Urner wrote: >Just to clarify: I think it *is* condescending to newbies to force >them through a lot of raw_input scripts, since this is: I felt exactly the same when I took the introductory programming course for scientists. DOS prompts with odd calculations popping up (this was using C). Looking back, the problem wasn't the raw_input style, but because *there was no progression*. The teaching material did not link everything together so that at the end of the 10 week course you had a large application which you'd built on every week. Instead you had a pile of useless scripts all totally separate giving no idea that software you could write might be useful rather than just boring. Peter -- Maple Design - quality web design and programming http://www.mapledesign.co.uk From ajsiegel at optonline.net Wed Sep 13 12:47:33 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 13 Sep 2006 06:47:33 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> Message-ID: <4507E1C5.2040805@optonline.com> Peter Bowyer wrote: >The teaching material >did not link everything together so that at the end of the 10 week >course you had a large application which you'd built on every >week. Instead you had a pile of useless scripts all totally separate >giving no idea that software you could write might be useful rather >than just boring. > > This would be my feeling as well. But "useless" scripts is all it is realistic to expect to write early on. And there is competition out there. Writing useless scripts or reading great contemporary literature. Hmmm?? Given the choice, another potential CS student bites the dust. I can imagine an introductory course that was in fact more a *reading* course than a writing course - that spent a good deal of its time analyzing the code of relatively straightforward, but interesting, working applications. The satellite view, before we attempt to descend to a finer resolution. Perhaps it's my educational background. When John was making the analogy between an introductory CS curriculum and an English curriculum he said to the effect that it was unrealistic to expect to turn everyone into a Shakespeare. But the fact is that creating writers *at all* is outside the scope of the typical English curriculum - it is attempting to create great *readers*.. I/O. Read/write. Seems to me the typical introductory CS course is quite unbalanced in this respect. My instincts are strong enough on this point that I am working to provide a satellite view exegesis of the PyGeo code as part of the application itself, seeing the ability to read the PyGeo code central to fulfilling its purpose - i.e. unless a student can read the code well enough to at least extract the analytics driving the visible synthetic geometry, PyGeo cannot hope to fulfill its ambitions of tying these approaches to geometric study together in more effective ways - ways that could not be adequately achieved without the use of computer technology - which is the area where I think the use of computer technology should be hanging out, educationally. See "Pygeo as an Introduction to Programming". http://pygeo.sourceforge.net/docs/Overview.html#pygeo-as-an-introduction-to-programming Art . From peter at mapledesign.co.uk Wed Sep 13 13:03:41 2006 From: peter at mapledesign.co.uk (Peter Bowyer) Date: Wed, 13 Sep 2006 12:03:41 +0100 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4507E1C5.2040805@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <4507E1C5.2040805@optonline.com> Message-ID: <7.0.1.0.0.20060913115653.04c62820@mapledesign.co.uk> At 11:47 13/09/2006, Arthur wrote: >I can imagine an introductory course that was in fact more a >*reading* course than a writing course - that spent a good deal of >its time analyzing the code of relatively straightforward, but >interesting, working applications. The satellite view, before we >attempt to descend to a finer resolution. That's a lot like how I learned to program. I bought a book (Professional PHP - nothing like an intro book!) and once I'd read some basics I went in and wrote a proper application - an ecard script, following the outline of Perl code that I'd read previously (without being able to write). That way I learned from someone else (apprenticeship) and wrote something that was *useful* when finished (encouraging me to learn). When studying physics I found the same approach worked, taking a real-world application generated enthusiasm for learning esoteric subjects. If you enjoy learning for the sake of knowledge I guess this approach isn't needed; otherwise I believe it to be the most effective approach. Peter -- Maple Design - quality web design and programming http://www.mapledesign.co.uk From ajsiegel at optonline.net Wed Sep 13 14:18:56 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 13 Sep 2006 08:18:56 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <7.0.1.0.0.20060913115653.04c62820@mapledesign.co.uk> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <4507E1C5.2040805@optonline.com> <7.0.1.0.0.20060913115653.04c62820@mapledesign.co.uk> Message-ID: <4507F730.7090900@optonline.com> Peter Bowyer wrote: > At 11:47 13/09/2006, Arthur wrote: > >> I can imagine an introductory course that was in fact more a >> *reading* course than a writing course - that spent a good deal of >> its time analyzing the code of relatively straightforward, but >> interesting, working applications. The satellite view, before we >> attempt to descend to a finer resolution. > > > That's a lot like how I learned to program. I bought a book > (Professional PHP - nothing like an intro book!) and once I'd read > some basics I went in and wrote a proper application - an ecard > script, following the outline of Perl code that I'd read previously > (without being able to write). That way I learned from someone else > (apprenticeship) and wrote something that was *useful* when finished > (encouraging me to learn). Myself as well. My first "major" Python project was simply a port of some Java code to Python - a 3d math library. Read/write - read the Java, write the Python. But in the end I had something actually useful, to an extent I could not possibly have accomplished at that point on a write/write basis. All this of course makes Open Source of central importance. It happens that the 3d Java library I wanted to port was not open - nice API docs, no source. Luckily someone in Japan had taken upon themselves to do a functionally equivalent Open Source version of the library, .i.e. creating functional source working backward from the API. As it happens, on a *read* basis, about the first thing one can expect to encounter and need to explain (maybe after the doc string) is the "import" statement. To me this feels exactly right. OTOH, a recent post on the Python3000 list - discussing the fate of raw_input() - re-iterates the position that an understanding of the import statement is something that belongs way, way down the road - in a way that was much to sure of itself, for my taste. That one point - where the "import" statement belongs, pedagogically - seems to in some way represent the quake line of different points of view. Bucky might recognize this fact as a symptom of a pre-synergistic stage of things. But one side or the other always needs to lose some surety in order to make a first move in the direction of synergy.. You first ... whoever you is ;) Art > When studying physics I found the same approach worked, taking a > real-world application generated enthusiasm for learning esoteric > subjects. If you enjoy learning for the sake of knowledge I guess > this approach isn't needed; otherwise I believe it to be the most > effective approach. > > Peter > From joshua.zucker at gmail.com Wed Sep 13 15:09:52 2006 From: joshua.zucker at gmail.com (Joshua Zucker) Date: Wed, 13 Sep 2006 06:09:52 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4507F730.7090900@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <4507E1C5.2040805@optonline.com> <7.0.1.0.0.20060913115653.04c62820@mapledesign.co.uk> <4507F730.7090900@optonline.com> Message-ID: <721e81490609130609g70782e09tfdf7ebef78959c33@mail.gmail.com> On 9/13/06, Arthur wrote: > As it happens, on a *read* basis, about the first thing one can expect > to encounter and need to explain (maybe after the doc string) is the > "import" statement. To me this feels exactly right. OTOH, a recent > post on the Python3000 list - discussing the fate of raw_input() - > re-iterates the position that an understanding of the import statement > is something that belongs way, way down the road - in a way that was > much to sure of itself, for my taste. I had the impression that people were talking about a week or two, not "way, way down the road". And of course there are many possible pedagogical approaches. The question about the fate of raw_input(), to me and in the context of this email list (rather than to the rest of you, or to the people actually involved in making the 3000 spec), is about whether we want to shut off some of those possible pedagogical avenues and render obsolete a lot of old curricula. One of the things I like best about Python is that there are a lot of ways to think in it -- you can think like a C programmer or an OOP-type or a functional programmer or even maybe like a BASIC programmer, and you can still write working code. I do like having that big range of possibilities in how to teach. But maybe some of those possibilities are really obsolete, and raw_input() is equally obsolete. Why not learn about functions, or about import, on day 1 anyway? Either way, raw_input() becomes unnecessary. --Joshua Zucker From ajsiegel at optonline.net Wed Sep 13 15:45:07 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 13 Sep 2006 09:45:07 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <721e81490609130609g70782e09tfdf7ebef78959c33@mail.gmail.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <4507E1C5.2040805@optonline.com> <7.0.1.0.0.20060913115653.04c62820@mapledesign.co.uk> <4507F730.7090900@optonline.com> <721e81490609130609g70782e09tfdf7ebef78959c33@mail.gmail.com> Message-ID: <45080B63.3000203@optonline.com> Joshua Zucker wrote: Different people are saying differently nuanced things, true enough. But I was pointing to a particularly post, which seemed to have a way, way down the road approach. You can check me out on this by looking at the Python3000 list of yesterday. But in these kinds of discussions one suspects someone may be stating things a little more strongly than they would otherwise, outside of the polemic impact they are looking to achieve. >But maybe some of those possibilities are really obsolete, and >raw_input() is equally obsolete. Why not learn about functions, or >about import, on day 1 anyway? Either way, raw_input() becomes >unnecessary. > > That seems to be Kirby's position, that obsoleting raw_input() obsoletes some teaching approaches that are obsolete. I am not willing to say that, never having experienced the approach - and having enough on my plate of things about which I feel stronger, with which to piss people off. ;) Andre is concerned about its effects on CP4E. Maybe, OTOH, it is an appropriate step toward CP4E 3000 - a movement with which I might find myself more aligned ;) The truth is I was not meaning to re-open the discussion of raw_input. It has moved to python-dev where it belongs - especially for those who hope for some reversal of the "done deal" status. Having never used it while it was there, but with having it there never getting in the way of anything I wanted to do, I intend to stay out of the discussion. The read/write and import issues that happen to derive from the discussion of raw_input are to me the more generally intersting topics at this point. Art From john.zelle at wartburg.edu Wed Sep 13 15:52:42 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Wed, 13 Sep 2006 08:52:42 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4507F730.7090900@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <7.0.1.0.0.20060913115653.04c62820@mapledesign.co.uk> <4507F730.7090900@optonline.com> Message-ID: <200609130852655.SM01652@[10.1.20.6]> A new twist on this thread: discussing the very nature of intro courses. Should we read more code and program less, should our programs build to something and not be a bunch of random scripts? I think it's obvious to everyone that a course that tackles "real world" problems will be more interesting than one that doesn't. But that doesn't mean simple scripts can't address real world issues. While it's true that the first programs are not polished applications, they certainly can solve real problems. It's also obvious that by the end of the course, students should have progressed beyond the "simple script" phase and be able to write programs that are truly intresting in their own right. A good class is one that can have multiple projects building toward some larger result. Of course, the downside here is that a project that really interests one student may be drop-dead boring to another. Notice that each of you is talking about how you learned by tackling a particular project that was of interest to you personally. It's hard to manage a class of, say, 10 different cumulative projects, although I frequently allow students to choose among several that I lay out for them. BTW, this focus on solving "real" problems is what keeps me from using an approach like Alice. As for spending more time reading programs and less time writing them, if anyone thinks this will interest and motivate _more_ students, I suspect that person has never actually tried to teach a class. It is success in writing programs that keeps students interested and motivated. There's nothing better than that "Yahoo!" when the program works. It's a battle to get students to read any code at all. I specifically chose not to "box off" code in my book to get students used to actually reading the code as part of the text, not as "extra material." Typically students will just "skim over" larger program examples. Finally, all of us can learn a lot by reading others' code, but there is no substitute for actual programming to learn the full problem solving mindset and skills. Once again, most intro CS courses are not just about learning a language. That's a means to a deeper end, which is learning algorithmic thinking and problem solving. Imagine an introductory German class where the students were not asked to actually speak or write German. They might still be learning a lot, but it would not be nearly as useful. So yes, we want our students to be reading cade, especially good code, but I also want my students to be writing programs, lots and lots of programs. It's hard to appreciate what makes code good until you've written some bad stuff yourself. --John On Wednesday 13 September 2006 7:18 am, Arthur wrote: > Peter Bowyer wrote: > > At 11:47 13/09/2006, Arthur wrote: > >> I can imagine an introductory course that was in fact more a > >> *reading* course than a writing course - that spent a good deal of > >> its time analyzing the code of relatively straightforward, but > >> interesting, working applications. The satellite view, before we > >> attempt to descend to a finer resolution. > > > > That's a lot like how I learned to program. I bought a book > > (Professional PHP - nothing like an intro book!) and once I'd read > > some basics I went in and wrote a proper application - an ecard > > script, following the outline of Perl code that I'd read previously > > (without being able to write). That way I learned from someone else > > (apprenticeship) and wrote something that was *useful* when finished > > (encouraging me to learn). > > Myself as well. My first "major" Python project was simply a port of > some Java code to Python - a 3d math library. Read/write - read the > Java, write the Python. But in the end I had something actually useful, > to an extent I could not possibly have accomplished at that point on a > write/write basis. > > All this of course makes Open Source of central importance. It happens > that the 3d Java library I wanted to port was not open - nice API docs, > no source. Luckily someone in Japan had taken upon themselves to do a > functionally equivalent Open Source version of the library, .i.e. > creating functional source working backward from the API. > > As it happens, on a *read* basis, about the first thing one can expect > to encounter and need to explain (maybe after the doc string) is the > "import" statement. To me this feels exactly right. OTOH, a recent > post on the Python3000 list - discussing the fate of raw_input() - > re-iterates the position that an understanding of the import statement > is something that belongs way, way down the road - in a way that was > much to sure of itself, for my taste. > > That one point - where the "import" statement belongs, pedagogically - > seems to in some way represent the quake line of different points of > view. Bucky might recognize this fact as a symptom of a pre-synergistic > stage of things. But one side or the other always needs to lose some > surety in order to make a first move in the direction of synergy.. > > You first ... whoever you is ;) > > Art > > > When studying physics I found the same approach worked, taking a > > real-world application generated enthusiasm for learning esoteric > > subjects. If you enjoy learning for the sake of knowledge I guess > > this approach isn't needed; otherwise I believe it to be the most > > effective approach. > > > > Peter > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Wed Sep 13 17:22:55 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 13 Sep 2006 11:22:55 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609130852655.SM01652@[10.1.20.6]> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <7.0.1.0.0.20060913115653.04c62820@mapledesign.co.uk> <4507F730.7090900@optonline.com> <200609130852655.SM01652@[10.1.20.6]> Message-ID: <4508224F.8010202@optonline.com> John Zelle wrote: >I think it's obvious to everyone that a course that tackles "real world" >problems will be more interesting than one that doesn't. But that doesn't >mean simple scripts can't address real world issues. > But there is a basic, probably irreversible - anti-synergistic - evolution that seems to have occurred that has exasperated the problem. The peeling off of programming introduction to CS, and the peeling off of CS from everything else. Seems to me that in order to tackle real world problems we should be working within a specific problem domain - as a starting point. Within a particular domain, it is more realistic to build in stages, to the point of getting to something useful - within that domain. For many of us, "introduction to programming" is too broad a context in which to be introduced to programming. In the math/programming synergy at an earlier stage (not too early, please) strategy, the introduction course in the CS department evolves into something more than what it apparently needs to be now. We know a little, and presumably know we have an interest in knowing more than that. Kirby, it seems to me, is right about all this. It's just less brilliant to be right about this than Kirby sometimes seems to make it sound. It really is nothing more than accepting the obvious, give up on beating the game, and just play it. The push back on this strategy here had always been yuck, Math. We are turning on back on the artist, the literature types, the hardcore gamer, the web. Yuck on that position, IMO. "What is" isn't infinitely malleable. We are only saying what most obviously is. Where a foundation of and for computing understanding most appropriately grounds itself. The "yuck math" is a position I came to identify with CPUE, early on . Perhaps wrongly, or prematurely, but the association is there. And why I found it necessary to bury that banner, for myself - more than any other reason. Kirby seems to have done better. End of polemics. Art From ajsiegel at optonline.net Wed Sep 13 19:09:08 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 13 Sep 2006 13:09:08 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609130852655.SM01652@[10.1.20.6]> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <7.0.1.0.0.20060913115653.04c62820@mapledesign.co.uk> <4507F730.7090900@optonline.com> <200609130852655.SM01652@[10.1.20.6]> Message-ID: <45083B34.5040507@optonline.com> John Zelle wrote: >So yes, we want our >students to be reading cade, especially good code > How good? Another subtle problem. One of my difficulties in becoming self-taught fluent in certain mathematical ideas: Educators don't want to communicate something irresponsible in connection with the concept of rigor, in a field where rigor is to the essence of things. While at the same time the rigorous statement of things can the impede the possibility of penetration, where a more approximate presentation might be more to the pedagogical point. What I have found that going to the source is often the best approach (though often not). Felix Klein types often seem more comfortable with a more casual and relaxed presentation of their ideas, to a non-peer audience, than do those charged with presenting Klein's ideas to others. The educators seem to feel - the instinct is good enough - more obligated to present Klein's ideas carefully, and therefore rigorously. And seem to feel that only Klein himself has the right to let himself off that hook. Its almost a form of professional etiquette, it seems. "Klein" meant here as a more general concept. Fuller had the solution . Make believe the ideas were his, thereby giving himself leave to present them anyway he chose .But that is a concept hard to roll out. ;). Teasing, Kirby. Art >, but I also want my >students to be writing programs, lots and lots of programs. It's hard to >appreciate what makes code good until you've written some bad stuff yourself. > >--John > >On Wednesday 13 September 2006 7:18 am, Arthur wrote: > > >>Peter Bowyer wrote: >> >> >>>At 11:47 13/09/2006, Arthur wrote: >>> >>> >>>>I can imagine an introductory course that was in fact more a >>>>*reading* course than a writing course - that spent a good deal of >>>>its time analyzing the code of relatively straightforward, but >>>>interesting, working applications. The satellite view, before we >>>>attempt to descend to a finer resolution. >>>> >>>> >>>That's a lot like how I learned to program. I bought a book >>>(Professional PHP - nothing like an intro book!) and once I'd read >>>some basics I went in and wrote a proper application - an ecard >>>script, following the outline of Perl code that I'd read previously >>>(without being able to write). That way I learned from someone else >>>(apprenticeship) and wrote something that was *useful* when finished >>>(encouraging me to learn). >>> >>> >>Myself as well. My first "major" Python project was simply a port of >>some Java code to Python - a 3d math library. Read/write - read the >>Java, write the Python. But in the end I had something actually useful, >>to an extent I could not possibly have accomplished at that point on a >>write/write basis. >> >>All this of course makes Open Source of central importance. It happens >>that the 3d Java library I wanted to port was not open - nice API docs, >>no source. Luckily someone in Japan had taken upon themselves to do a >>functionally equivalent Open Source version of the library, .i.e. >>creating functional source working backward from the API. >> >>As it happens, on a *read* basis, about the first thing one can expect >>to encounter and need to explain (maybe after the doc string) is the >>"import" statement. To me this feels exactly right. OTOH, a recent >>post on the Python3000 list - discussing the fate of raw_input() - >>re-iterates the position that an understanding of the import statement >>is something that belongs way, way down the road - in a way that was >>much to sure of itself, for my taste. >> >>That one point - where the "import" statement belongs, pedagogically - >>seems to in some way represent the quake line of different points of >>view. Bucky might recognize this fact as a symptom of a pre-synergistic >>stage of things. But one side or the other always needs to lose some >>surety in order to make a first move in the direction of synergy.. >> >>You first ... whoever you is ;) >> >>Art >> >> >> >>>When studying physics I found the same approach worked, taking a >>>real-world application generated enthusiasm for learning esoteric >>>subjects. If you enjoy learning for the sake of knowledge I guess >>>this approach isn't needed; otherwise I believe it to be the most >>>effective approach. >>> >>>Peter >>> >>> >>_______________________________________________ >>Edu-sig mailing list >>Edu-sig at python.org >>http://mail.python.org/mailman/listinfo/edu-sig >> >> > > > From francois.schnell at gmail.com Wed Sep 13 19:31:53 2006 From: francois.schnell at gmail.com (francois schnell) Date: Wed, 13 Sep 2006 19:31:53 +0200 Subject: [Edu-sig] Mindstorm NXT and Python ? In-Reply-To: <13a83ca10605021317i2672a87fi2802a8988205397e@mail.gmail.com> References: <13a83ca10605021317i2672a87fi2802a8988205397e@mail.gmail.com> Message-ID: <13a83ca10609131031r7950ce14n9b3d9bf80ef64b09@mail.gmail.com> In case someone is interested I've seen this : http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/498085 *Description:* > > The new Lego Mindstorms NXT brick has an on-board Bluetooth transceiver > that can > connect to a serial port service on a PC. The NXT uses a simple format to > pass > raw bytes between connected Bluetooth devices. This interface allows the > NXT > brick to be controlled from Python. Robot programming in Python anyone? > ... Mindstorms NXT will soon sell in France, at last. --- On 02/05/06, francois schnell wrote: > > Hello, > > I've just read the open source move of Lego concerning it's new Mindstorm > NXT: > http://slashdot.org/articles/06/05/02/111245.shtml > http://mindstorms.lego.com/press/2057/Open%20Source%20Announcement.aspx > > The firmware sources and blue tooth protocols will be available. :) > This definitely interest me and I'll buy one as soon as available (in > August). > > I didn't find anything about using Minstorms with Python yet but it looks > like there'a a SDK for Microsoft Visual Studio Express with VB, C#, J#, C++: > http://msdn.microsoft.com/coding4fun/lego/default.aspx > > Even if Iron Python is not integrated in Visual Studio (I believe), using > the classes with IronPython shouldn't be a problem (I imagine). > Anyway I'm not a fan of .Net/Mono and I'll probably try to explore other > ways . > > I want to see what can be done with Python and this Mindstorms NXT in > particular in an "educational/constructivist" context. > > If you know any projects already using Python and the actual MindstormsI'm also interested or your thoughts on the subject. > > Thanks > > francois > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060913/c1e9ff43/attachment.html From kirby.urner at gmail.com Wed Sep 13 20:06:13 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 13 Sep 2006 11:06:13 -0700 Subject: [Edu-sig] More on teaching about namespaces Message-ID: What I like about namespaces is the idea is intuitively obvious to anyone spending any time in academia, because every professor is one. It takes time to learn just what each means by this or that key term, although supposedly in math it's easier, because all the definitions are agreed upon in advance, axioms too, plus rules of deduction, so the theorems also. My idea of a good first move, after booting some Python GUI shell for the first time, is to go dir(). IDLE 1.2b2 >>> dir() ['__builtins__', '__doc__', '__name__'] Already the filling is: we're not alone. And what are those weird __xxx__ things. They look strange. Thinking like a computer scientist, you mentally pair tics and decide we have three quoted words, like a list of some time. See? Python fits your brain. You're already thinking like a pro. Instead of words we say strings, and a space is just one more character (ASCII 32). But here comes the *big* revelation: >>> dir(__builtins__) ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'None', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__debug__', '__doc__', '__import__', '__name__', 'abs', 'all', 'any', 'apply', 'basestring', 'bool', 'buffer', 'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 'exit', 'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'long', 'map', 'max', 'min', 'object', 'oct', 'open', 'ord', 'pow', 'property', 'quit', 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip'] Ohmygod omygod, what *is* going on now? Obviously errors are a big part of the Python experience (why else would that be the major topic in like the whole first half of the list?), and then you have a bunch of underunder guys (ribs?), and then some short words, including one especially ugly one with an internal underbar. Now, as the teacher, I've probably just been projecting so far, encouraging students to all focus on the big screen up front, and the bouncing laser pointer dot, which drifts over this stuff as I vocalize about content. So I'm the one that shows 'em they can now select from the above list and go (for example): >>> help(iter) Help on built-in function iter in module __builtin__: iter(...) iter(collection) -> iterator iter(callable, sentinel) -> iterator Get an iterator from an object. In the first form, the argument must supply its own iterator, or be a sequence. In the second form, the callable is called until it returns the sentinel. Aha. Lots of jargon. iterator, callable, argument, sequence... Let's try another. >>> help(max) Help on built-in function max in module __builtin__: max(...) max(iterable[, key=func]) -> value max(a, b, c, ...[, key=func]) -> value With a single iterable argument, return its largest item. With two or more arguments, return the largest argument. Hmmmmm, overlapping jargon. There's that iterable notion again. Gotta learn that square brackets mean *optional* stuff, i.e. you don't need it. Is a bare list an iterable? >>> max([1,2,3,4]) 4 Looks like. Let's explore some more.... >>> max([1,2,3,4]) 4 >>> a = [1,2,3,4] >>> b = iter(a) >>> id(a) 23472728 >>> id(b) 23397744 >>> type(a) >>> type(b) >>> max(b) 4 and so on... This might be more for adults with some programming experience already, but not much with Python. But you see how I'm bringing the namespace idea in right away. Immediately upon being in the shell, we're already in one. Best to look around. dir() and help() are your friends. Later, we'll import. But already, we're in a huge fish tank, lots to see and do. Could take an hour at least, to get through this aquarium -- very interactive, so now I'll turn off the projector (actually, I'll leave what you see). Go crazy, play, explore. We'll start up with the formal talk in about 15 minutes, and answer any questions. Bathroom is down the hall to your right. Kirby From ajsiegel at optonline.net Wed Sep 13 20:22:28 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 13 Sep 2006 14:22:28 -0400 Subject: [Edu-sig] More on teaching about namespaces In-Reply-To: References: Message-ID: <45084C64.2040605@optonline.com> kirby urner wrote: >What I like about namespaces is the idea is intuitively obvious to >anyone spending any time in academia, because every professor is one. >It takes time to learn just what each means by this or that key term, >although supposedly in math it's easier, because all the definitions >are agreed upon in advance, axioms too, plus rules of deduction, so >the theorems also. > >My idea of a good first move, after booting some Python GUI shell for >the first time, is to go dir(). > >IDLE 1.2b2 > > >>>>dir() >>>> >>>> >['__builtins__', '__doc__', '__name__'] > >Already the filling is: we're not alone. And what are those weird >__xxx__ things. They look strange. Thinking like a computer >scientist, you mentally pair tics and decide we have three quoted >words, like a list of some time. See? Python fits your brain. >You're already thinking like a pro. Instead of words we say strings, >and a space is just one more character (ASCII 32). > > Damn it if I don't agree. Exactly where I would start as well. Art From john.zelle at wartburg.edu Wed Sep 13 20:31:09 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Wed, 13 Sep 2006 13:31:09 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4508224F.8010202@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609130852655.SM01652@[10.1.20.6]> <4508224F.8010202@optonline.com> Message-ID: <200609131331.09497.john.zelle@wartburg.edu> On Wednesday 13 September 2006 10:22 am, Arthur wrote: > John Zelle wrote: > >I think it's obvious to everyone that a course that tackles "real world" > >problems will be more interesting than one that doesn't. But that doesn't > >mean simple scripts can't address real world issues. > > But there is a basic, probably irreversible - anti-synergistic - > evolution that seems to have occurred that has exasperated the problem. > The peeling off of programming introduction to CS, and the peeling off > of CS from everything else. I'm not sure I understand what you are saying in that paragraph. First, can you tell me what you perceive as the "problem" in this context? I also don't know what you mean by these various "peelings off." Are you saying that the introduction to CS shouldn't be about programming or that CS isn't real world, or something else entirely. I'm just trying to get my head around what your basic premise is here. > Seems to me that in order to tackle real world problems we should be > working within a specific problem domain - as a starting point. Within a > particular domain, it is more realistic to build in stages, to the point > of getting to something useful - within that domain. I think everyone would probably agree that that's a great way to be introduced to programming. Just as using math to solve problems that are personally interesting is a great way to be introduced to mathematics. But computer science and programming share with mathematics this wonderful property (and curse) that they are very general and powerful tools. And in both fields there is an extensive body of knowledge developed that could be of use in virtually limitless domains. If every domain teaches its own programming, then we have tremendous duplication of effort, because the foundational principles are the same. It seems to me this is the exact same tension that exists between having your calculus taught by the mathemticians vs. having it taught by the engineering school and the business school and the music department, etc. There are arguments on both sides. My personal preference would be to have students exposed to calculus by the mathematicians who are not just users, but I hope, have and can convey a deeper understanding of the foundations of calculus. The mathematicians are the "professional owners" of that content. > For many of us, "introduction to programming" is too broad a context in > which to be introduced to programming. OK, so what counts as a domain for you. I could just as easily say for many of us "introduction to algebra" is too broad a context in which to be introduced to algebra. Similarly "introduction to writing" is too broad a context to be introduced to writing. I'm guessing that you think it's OK to count math as a "domain" and so to teach "math classes" and assume that students are learning "math" in their "math classes", even though they can apply this knowledge in limitless other areas. Furthermore, one can easily make the case that these "math students" might be more motivated to learn "math" if they learned it in the context of those other areas of direct interest where they could build up a truly useful "system of mathematics" for their personal use. > In the math/programming synergy at an earlier stage (not too early, > please) strategy, the introduction course in the CS department evolves > into something more than what it apparently needs to be now. We know a > little, and presumably know we have an interest in knowing more than that. I _think_ I'm all for this, but again I'm not sure I know exactly what you are saying. If you are saying that students might get interested in programming through exposure in math (or some other "domain") and then want to turn to CS classes to learn more, that sounds like a good thing. But it's still curious to me that the implied tone here is one of denigrating teaching introductory programming in CS classes because it is "divorced from any domain" and then at the same time suggesting the thing to do is teach programming in the context of math. Teaching a math class is teaching another tool "divorced from any domain." Why is it good to teach algebra in math classes, but somehow wrong to teach programming in CS classes? On the contrary, if you consider math to be a proper domain, they why isn't my field (CS) a proper domain? I take a middle ground that says a good teacher can motivate programming both for its intrinsic beauty and for the utility it brings students to solve whatever problems are appropriate for their current interests and level of understanding. While my students may come from many different disciplines, there are problems common to their lives that we can talk about computer solutions to. Motivation to learn programming need not solely arise from "domain specific" interests. > Kirby, it seems to me, is right about all this. It's just less > brilliant to be right about this than Kirby sometimes seems to make it > sound. It really is nothing more than accepting the obvious, give up on > beating the game, and just play it. > > The push back on this strategy here had always been yuck, Math. We are > turning on back on the artist, the literature types, the hardcore gamer, > the web. But if the literature types, artists, or hardcore gamer types want to learn math, we have no qualms about asking (forcing) them to take math classes. If they want to learn to write, we put them in writing classes. If we want them to program, I don't understand why we wouldn't want to put them in programming classes. Again, I would personally want my children to learn from someone with a "professional interest" in the field who can convey deep appreciation and knowledge. So it seems to me an intro CS class _is_ a perfect place to teach introductory programming, but it needs to be taught in such a way that students see how they can apply the skills to their own interests. If a student wants to build houses, they'll take a shop class, even though they only get to build bookcases. They key is communicating how an important skill they are learning will be useful to them. Sometimes the payoff is immediate, sometimes it's more long term. It's arguable whether this the bast way to teach programming, but it doesn't seem much different to me than the way we teach any other "subject." > > Yuck on that position, IMO. "What is" isn't infinitely malleable. We are > only saying what most obviously is. Where a foundation of and for > computing understanding most appropriately grounds itself. But then it seems to me you are saying that programming should be taught in every single discipline, for there is no area of the human intellectual domain for which I see no application of computing. Something that seeks to ground itself everywhere is nowhere actually grounded. How do we sequence such a curriculum, and how do we prevent "rampant amateurism" in the teaching of computer science principles? Why doesn't this same argument apply to other "literacies" like mathematics and writing? We expect writing teachers and math teachers to have depth in the field. Shouldn't we expect the same of our programming teachers? Or is your argument that the whole system (the way we teach all subjects) needs to be thrown over? I personally don't have the imagination to come up with a better one. That would be Kirby's domain. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From kirby.urner at gmail.com Wed Sep 13 22:15:52 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 13 Sep 2006 13:15:52 -0700 Subject: [Edu-sig] More on teaching about namespaces In-Reply-To: References: Message-ID: > Go crazy, play, explore. We'll start up with the formal talk in about > 15 minutes, and answer any questions. Bathroom is down the hall to > your right. > > Kirby > Now, reviewing what we did just before break: >>> a = [1,2,3,4] >>> b = iter(a) >>> id(a) 23472728 >>> id(b) 23397744 >>> type(a) >>> type(b) I'm showing that feeding a list to the builtin iter, gets you back a new type of object, and hence a *different* object. I know they're different because their ids are different. But what if I feed b, already a listiterator, to iter *again*? >>> c=iter(b) >>> c >>> id(c) 23397744 >>> hex(23397744) '0x1650570' >>> b >>> b is c True You see there's some logic here. Whereas iter ate 'a' to return a different 'b', when it eats 'b' it just returns the same object. Yes, I've referenced said object with the letter 'c', using the assignment operator (=), but "under the hood", b and c have the same id, expressed in decimal, but from the hex conversion you see there's a match. Just to confirm, I use the "is" keyword. What do I mean by keyword? A keyword is different from a builtin. By default, IDLE will colorize the latter purple, the former orange. Let's look at keywords for a minute, and in doing so, we'll discover this powerful keyword used to augment our namespace with additional namespaces: import... >>> help('keyword') Help on module keyword: NAME keyword - Keywords (from "graminit.c") FILE d:\python25\lib\keyword.py DESCRIPTION This file is automatically generated; please don't muck it up! To update the symbols in this file, 'cd' to the top directory of the python source tree after building the interpreter and run: python Lib/keyword.py FUNCTIONS iskeyword = __contains__(...) x.__contains__(y) <==> y in x. DATA __all__ = ['iskeyword', 'kwlist'] kwlist = ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', ... >>> import keyword >>> keyword.iskeyword('is') True >>> keyword.kwlist ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'] Now that's pretty short for a language's list of key words. Many languages have more. How many is this? >>> len(keyword.kwlist) 31 Just 31, compared to how many builtins (pause to let people try the len builtin -- drop a few hints as they flounder): >>> len(dir(__builtins__)) 134 Yeah, woah, big difference. Lots more builtins. Let's check our current namespace again: >>> dir() ['__builtins__', '__doc__', '__name__', 'a', 'b', 'c', 'keyword'] Aha -- those letter references we created, are still here with us. And keyword, a module, has joined __builtins__. We can start purging the namespace if we feel it's too crowded. Restart IDLE, or selectively use del: >>> del a >>> del b Note: even though be is gone, c still references the object in memory. That object won't be garbage collected until no name references it any more. >>> c >>> del c What if we try deleting __builtins__? >>> del __builtins__ >>> dir() ['__builtins__', '__doc__', '__name__', 'keyword'] Didn't work. Nothing happens. But the keyword namespace is easy to get rid of: >>> del keyword >>> dir() ['__builtins__', '__doc__', '__name__'] Interesting. Now here's some interesting stuff: >>> dir(__doc__) ['__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__'] >>> type(__doc__) >>> type(None) >>> dir(None) ['__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__'] __doc__ references nothing at this point and so its type (the type of object it references) is None. There's just this one None in memory: >>> id(None) 505251592 >>> id(__doc__) 505251592 OK, we've reached the end of our first session. Next time we meet, we'll import visual and start making stuff happen on top of OpenGL, using the VPython package. You'll start to appreciate what Python will really do for you. If you don't remember Vectors from high school, don't worry. They're pretty easy, especially with VPython at your elbow. But first, here's a puzzle: >>> 134 < 31 False The '<' operator behaves as you'd expect, but that operator nowhere appeared in the list of builtins or as a keyword. Why is it operational, if it's not in the namespace. Here's a hint. Go dir(134) or dir(31). More next time. Kirby From driscollkevin at gmail.com Wed Sep 13 22:18:10 2006 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Wed, 13 Sep 2006 16:18:10 -0400 Subject: [Edu-sig] More on teaching about namespaces In-Reply-To: <45084C64.2040605@optonline.com> References: <45084C64.2040605@optonline.com> Message-ID: <87a8578e0609131318n44a11971x8fdd2f34bd220e29@mail.gmail.com> It took about 150 emails but all of this raw_input() discussion has finally brought us to a revalatory new place! raw_input() and print() are comfy places to begin because that's where my high school Pascal text began. And that's where my college C text began. And that's where "How to think like a computer scientist" begins... Two texts that have inspired my thinking this year are "Learn to Program" from the Pragmatic Bookshelf and "Why's (poignant) guide to Ruby", the single best piece of CS writing I've seen in at least two years. Anyone who loved newsprint BASIC manuals full of nerdy jokes and little ballpoint pen comics will love it : http://poignantguide.net/ruby/ Kevin PS. The Ruby v. Python debate is moot. On 9/13/06, Arthur wrote: > kirby urner wrote: > > >What I like about namespaces is the idea is intuitively obvious to > >anyone spending any time in academia, because every professor is one. > >It takes time to learn just what each means by this or that key term, > >although supposedly in math it's easier, because all the definitions > >are agreed upon in advance, axioms too, plus rules of deduction, so > >the theorems also. > > > >My idea of a good first move, after booting some Python GUI shell for > >the first time, is to go dir(). > > > >IDLE 1.2b2 > > > > > >>>>dir() > >>>> > >>>> > >['__builtins__', '__doc__', '__name__'] > > > >Already the filling is: we're not alone. And what are those weird > >__xxx__ things. They look strange. Thinking like a computer > >scientist, you mentally pair tics and decide we have three quoted > >words, like a list of some time. See? Python fits your brain. > >You're already thinking like a pro. Instead of words we say strings, > >and a space is just one more character (ASCII 32). > > > > > > Damn it if I don't agree. > > Exactly where I would start as well. > > Art > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From kirby.urner at gmail.com Wed Sep 13 22:31:09 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 13 Sep 2006 13:31:09 -0700 Subject: [Edu-sig] More on teaching about namespaces In-Reply-To: References: Message-ID: > >>> del __builtins__ > >>> dir() > ['__builtins__', '__doc__', '__name__', 'keyword'] > > Didn't work. Nothing happens. But the keyword namespace is easy to get rid of: Wrongo, buddy boy! Something *does* happen when you delete __builtins__. It sticks around *as a dictionary* named __builtins__, but you've purged it from the namespace *as a module* -- which is what allowed dir to treat it as such, and return just a list. Look below: >>> ============= RESTART ============== >>> __builtins__ >>> type(__builtins__) >>> del __builtins__ >>> type(__builtins__) >>> del __builtins__ >>> type(__builtins__) Now if you go dir(__builtins__), it'll just give you the namespace of a regular dictionary, and if you put __builtins__ on the command line and press enter, you'll get a dump of that dictionary's contents (an invocation of its __repr__ method). Thanks a lot Smartypants. I'm sure we'll be seeing *you* here again. Kirby From kirby.urner at gmail.com Wed Sep 13 23:55:22 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 13 Sep 2006 14:55:22 -0700 Subject: [Edu-sig] Namespaces in the Humanities Message-ID: This is going to seem a bit off-topic, but my goal is to show how CS might recruit more liberal arts majors by focusing on namespaces in the humanities. Like I was saying earlier, every professor, of Near Eastern Studies, of Molecular Biology, of Postmodern Poetics, whatever BS, is a walking talking live specimen namespace. And when you get two or more professors in a room, what typically happens? Name collisions, and lots of them. So how has computer science helped solve the problem of name collisions, at least for the benefit of our poor slave electronic robots (AI bots), with no hope of understanding the subtlties of "context" without it? By means of dot notation, is one way. In Python, we'll see what that looks like. But let's get back to those professors for a moment, and take a good example of a name collision, familiar to everyone who studies Bucky Fuller's stuff on occasion (i.e. probably most gnu math teachers). Over on Synergeo (another obscure archive where I'm sometimes active), you'll maybe find some "chalkboard notation" like this: coxeter.4d < > einstein.4d < > fuller.4d What that refers to is the three different trajectories taken by the '4D' meme since like around 1900, when it was caught up in a maelstrom of competing schools of thought.[1] In his 'Regular Polytopes' this master geometer (who recently died -- there's new bio out), H.S.M. Coxeter takes pains to differentiate *his* meaning of "four dimensional" from that of the spacetime Relativity's.[2][3] Coxeter's *not* saying the Einsteinians are wrong to have their own namespace, just that the two schools have different usages for this same '4D' meme. Not getting that there's a difference will lead only to confusion. He mentions some science fiction that fell into this trap. The difference? In hyperspatial geometry, you have as many dimensions as you want, and they're all spatial. In Relativity, the time dimension is singled out for special treatment. Fuller, meanwhile, held back publishing his gestating meaning for '4D' until much later in life (1970s), and, upon unveiling, it turned out to be neither Coxeter's nor Einstein's, but had some family resemblance to both. Fuller's 4D is very like everyday high school's 3D, i.e. the XYZ apparatus, anchored at an origin (0,0,0) is conceived to exist independently of any specific event in spacetime. There's no "where or when" questions that need answering. XYZ exists in pure conceptuality, and gives us a refined idea of "a mathematical space" that's very like our own personal circumstances (i.e. spatial, volumetric), yet is conveniently devoid of what philosophers of the day called "secondary characteristics" e.g. color, sound, tactility -- the messy business of energetic reality. Why Fuller called it 4D instead of 3D is he was very impressed by the simple nature of the Tetrahedron, the fact that it had fewer faces, edges and vertices than the cube. In the world of hard edges, skeletons, sticks, it seemed the simplest of shapes (not a new realization -- mathematicians often call it The Simplex). Spheres seem a lot smoother, true, but in stick world they're just hugely multi-faceted and hence not simple at all. Axiomatically, one needn't buy a Continuum to practice geometry per Democritus. Buckaneering is digital, seems analog only because everything does. And the tetrahedron simply radiates 4ness, really more than 3ness, although the two complementary 3-edge spiral zig-zags always and only co-exist (as the local namespace would have it). And then, taking a page from Kant, we simply identify conceptuality with this Tetrahedron Space (a 4-space) and scoff at Abbott's 'Flatland' as a conceptual impossibility (i.e. we only *pretend* we can imagine a space of fewer dimensions -- always forgetting about the camera). Anyway, this is all a very different namespace than either Professor Coxeter or Professor Einstein were using. More philosophical, vs. Coxeter's mathematical and Einstein's physical. Each guy had his own trademark brand of 4D, and developed his thinking accordingly, systematically, consistently. Fuller came along late in the game, threw a new '4D' in the ring. So as of the 1970s, we have at least three, distinct, not-equal usage patterns, yet all using the same name. What are the chances of name collisions? Very high. But learning from computer science, and Python especially, we have this simple way of cleaning up the mess: use dot notation, to anchor names to their users, their professors (those who profess (Fuller claimed not to be "professing" but was just quibbling over verbs (always the stickler))). coxeter.4d < > einstein.4d < > fuller.4d In sum, I'm including this little chalkboard lecture on "The Three Meanings of 4D" in order to show how we, the liberal arts humanties types, have become enamoured of dot notation as a way to sort out name collisions, and the messes they sometimes engender. Ever since we in the Fuller School got clear on this "three schools" picture, we've had a lot easier time lowering the noise level in our meetings. As Fuller Schoolers, we're less likely to flounder around in BS, and we credit nearby Python Nation's high level of intelligence and civilization for helping us out. We import. We thrive. And we hope our exports are valued too (it's about trading, not stealing i.e. keeping in balance). Kirby [1] Linda Dalrymple Henderson. The Fourth Dimension and Non-Euclidean Geometry in Modern Art (Hardcover). ISBN 0691040087 [2] H.S.M Coxeter, 'Regular Polytopes' ISBN 0486614808, pg. 119 [3] The King of Infinite Space: Donald Coxeter: the Man Who Saved Geometry (Hardcover) by Siobhan Roberts -- which I just purchased about a minute ago from Amazon.com. From kirby.urner at gmail.com Thu Sep 14 02:01:58 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 13 Sep 2006 17:01:58 -0700 Subject: [Edu-sig] Working with Vpython Message-ID: For just starting to explore with VPython window, getting one's feet wet, I'm looking at such as stickworks.py as a simple place to begin (excerpts below). The stickworks namespace wants us to think of Vector objects as radiating from (0,0,0), i.e. they're always tail anchored to the origin. class Vector (object): """ A wrapper for visual.vector that expresses a cylinder via draw(), always pegged to the origin """ radius = 0.03 def __init__(self, xyz, color=(0,0,1)): self.v = vector(*xyz) self.xyz = xyz self.color = color self.cyl = None def draw(self): """define and render the cylinder""" self.cyl = cylinder(pos = (0,0,0), axis = self.v, radius = self.radius, color = self.color) def erase(self): """toss the cylinder""" if self.cyl: self.cyl.visible = 0 self.cyl = None def __repr__(self): return 'Vector @ (%s,%s,%s)' % self.xyz # some vector ops, including scalar multiplication def cross(self, other): temp = cross(self.v, other.v) return Vector((temp.x, temp.y, temp.z)) etc. Edges, on the other hand, otherwise known as line segments, may connect any two points in space, and as such are defined by the arrow *tips* of two Vectors of the type defined above. class Edge (object): """ Edges are defined by two Vectors (above) and express as cylinder via draw(). """ radius = 0.03 def __init__(self, v0, v1, color=(1,0,0)): self.v0 = v0 self.v1 = v1 self.color = color self.cyl = None def draw(self): """define and render the cylinder""" temp = (self.v1 - self.v0).xyz self.cyl = cylinder(pos = self.v0.xyz, axis = vector(*temp), radius = self.radius, color = self.color) def erase(self): """toss the cylinder""" if self.cyl: self.cyl.visible = 0 self.cyl = None def __repr__(self): return 'Edge from %s to %s' % (self.v0, self.v1) You'll find this dichotomy in some published linear algebra books e.g. this one by Wayne Bishop and Stewart Venit ISBN: 087150300X (Wayne being a Cal State prof and one of my sparring partners on math-teach). I'm not using VPython's cylinder and vector objects directly because I'm wanting an even simpler namespace. Vectors are my primary constituent, followed by edges as pairs of vectors, and faces as tuples of vectors defining three or more edges. Of course in the Fuller School we quickly move to a small subset of polyhedra organized in a particular way (or core mandala, source of many dharmas). We harp on Euler's V + F = E + 2. We talk in an alien manner about our 4D Simplex with energy added (4D++). But that doesn't mean every gnu math teachers needs to follow our lead and/or sequence. The curriculum is a network, and the many trailheads go to many places (partially overlapping) in different orders. Plus Arthur of Pygeo has a whole other toolset you could explore. Save the Bucky stuff for later, if ever. Tell 'em I said it was OK. The sequence I'm developing here is: intro to namespaces --> import stickworks as a namespace --> explore in VPython Given stickworks is provided, student creativity will be more in what they can *do* with it. I'll be thinking of some projects. Dissecting and tweaking source code will also be a focus, as fluency gradually develops, plus writing new modules that assume the above as all given. Kirby From andre.roberge at gmail.com Thu Sep 14 03:27:20 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Wed, 13 Sep 2006 22:27:20 -0300 Subject: [Edu-sig] Pre-PEP was: The fate of raw_input() in Python 3000 Message-ID: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> Hi-all, Having had a look at the discussion on the Python-3000 mailing list, I thought it was appropriate to write a draft PEP with the intent of eventually posting it on the Python 3000 list for "serious" discussion/future decision. This proposal could most certainly be strengthened, and the wording improved by a native English speaker with stronger CS background than I have. I have attempted to follow the standard recommended format (including providing both a motivation and rationale ... which seemed a bit redundant and an artificial split...) Feel free to make comments for improvement and even take over the "ownership" of this PEP. Andr? ========================================= PEP: XXX Title: Simple input built-in in Python 3000 Version: $Revision: 0.1 $ Last-Modified: $Date: 2006/09/13 20:00:00 $ Author: Andr? Roberge Status: Draft Type: Standards Track Content-Type: text/x-rst Created: 13-Sep-2006 Python-Version: 3.0 Post-History: Abstract ======== Input and output are core features of computer programs. Currently, Python provides a simple means of output through the print keyword and two simple means of input throught the input() and raw_input() built-in functions. Python 3.0 will introduces various incompatible changes with previous Python versions[1]. Among the proposed changes, print will become a built-in function, print(), while input() and raw_input() would be removed completely from the built-in namespace, requiring importing some module to provide even the most basic input capability. This PEP proposes that Python 3.0 retains some simple user input capability, equivalent to raw_input(), within the built-in namespace. Motivation ========== With its easy readability and its support for many programming styles (e.g. procedural, object-oriented, etc.) among others, Python is perhaps the best computer language to use in introductory programming classes. Simple programs most often need to contain a means to provide information to a user (output) as well as obtaining information from that user (input). Any computer language intended to be used in an educational setting should provide straightforward methods for both input and output. The current proposals for Python 3.0 [1] include a simple output pathway via a built-in function named print(), but a more complicated method for input [e.g. via sys.stdin.readline()], one that requires importing an external module. Current versions of Python (pre-3.0) include raw_input() as a built-in function. With the availability of such a function, programs that require simple input/output can be written from day one, without requiring discussions of importing modules, streams, etc. Rationale ========= Current built-in functions, like input() and raw_input(), are found to be extremely useful in traditional teaching settings. (For more details, see the discussion that followed [3].) While the BDFL has clearly stated [3] that input() was not to be kept in Python 3000, he has also stated that he was not against revising the decision of killing raw_input(). raw_input() provides a simple mean to ask a question and obtain information from a user. The proposed plans for Python 3.0 would require the replacement of the single statement speed = raw_input("What is the average airspeed velocity of an unladed swallow?") by the more complicated import sys print("What is the average airspeed velocity of an unladed swallow?") speed = sys.stdin.readline() The removal of raw_input (or equivalent) would not significantly reduce the built-in namespace while it would steepen significantly the learning curve for beginners. Specification ============= The built-in input function should be totally equivalent to the existing raw_input() function. Open issues =========== With input() effectively removed from the language, the name raw_input() makes much less sense and alternatives should be considered. The various possibilities mentioned in various forums include: ask() ask_user() get_string() input() # rejected by Guido prompt() read() user_input() References ========== .. [1] Miscellaneous Python 3.0 Plans (http://www.python.org/dev/peps/pep-3100/) ..[2] The fate of raw_input() in Python 3000 (http://mail.python.org/pipermail/edu-sig/2006-September/006967.html) .. [3] educational aspects of Python 3000 http://mail.python.org/pipermail/python-3000/2006-September/003589.html Copyright ========= This document has been placed in the public domain. From ajsiegel at optonline.net Thu Sep 14 03:29:32 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 13 Sep 2006 21:29:32 -0400 Subject: [Edu-sig] Namespaces in the Humanities In-Reply-To: References: Message-ID: <4508B07C.1010306@optonline.com> kirby urner wrote: >Why Fuller called it 4D instead of 3D is he was very impressed by the >simple nature of the Tetrahedron, the fact that it had fewer faces, >edges and vertices than the cube. In the world of hard edges, >skeletons, sticks, it seemed the simplest of shapes (not a new >realization -- mathematicians often call it The Simplex). > > He renamed 3d, in an "I know something you don't" sort of way. Paraphrasing Atanas, in another context: Maybe he does, maybe he does't. Art From kirby.urner at gmail.com Thu Sep 14 05:45:55 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 13 Sep 2006 20:45:55 -0700 Subject: [Edu-sig] Namespaces in the Humanities In-Reply-To: <4508B07C.1010306@optonline.com> References: <4508B07C.1010306@optonline.com> Message-ID: On 9/13/06, Arthur wrote: > > > He renamed 3d, in an "I know something you don't" sort of way. > Not really. We say 3D because we think height (1), width (2) and depth (3) come apart as isolatable components of volume. You can have one (any one) with out the others. Really? Anyway, if you conceive of volume as primordial, as rock bottom, then you might reconsider why a "3" and not a "4". Why start with 3 when the most primitive volume has 4 vertices and 4 faces? It's not a completely insane proposal, and it's not like you have to buy into it to the exclusion of every other paradigm. What's cool about namespaces is you can always change channels (if you're mentally limber -- there're limits...). Anyway, it's a remote namespace, quite alien and "out there". I mostly say 3D like an ordinary person. When in Rome... Kirby From kirby.urner at gmail.com Thu Sep 14 06:45:34 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 13 Sep 2006 21:45:34 -0700 Subject: [Edu-sig] Working with Vpython In-Reply-To: References: Message-ID: On 9/13/06, kirby urner wrote: > Given stickworks is provided, student creativity will be more in what > they can *do* with it. > I'll be thinking of some projects. > Probably a most obvious application for an Edge connecting pairs of vectors, is to do simple plotting, either in xy or in xyz. Now that we have generators, it's easy to think of a functions domain as a kind of indefinite loop: >>> def dgen(start, step): while True: yield start start += step >>> domain = dgen(-10, 0.1) Similar to xrange, but spelled out. Could be fancier, including a stop point. Then, if we wanted to graph something like cosine, would could pass both the domain and the function as arguments to a plot generator: >>> import math >>> def f(x): return math.cos(x) Like, if you wanted 200 points, you could just go: >>> mkgraph = xyplotter(domain, f) # initialize a generator >>> for i in xrange(200): mkgraph.next() This'd give you the sinusoidal wave in VPython, complete with zoom in/out and rotate mouse action. Picture: http://www.4dsolutions.net/ocn/graphics/cosines.png Of course you might also want some axes to make the graph more readable. So... adding xyplotter and axes to stickworks.py: ==== def xyplotter(domain, f): x0 = domain.next() y0 = f(x0) while True: x1 = domain.next() y1 = f(x1) e = Edge( Vector((x0, y0, 0)), Vector((x1, y1, 0)) ) e.draw() yield None # could yield something more explicit x0, y0 = x1, y1 # keep last point, get next def axes(x,y,z): v0 = Vector((x,0,0)) v0.draw() v0 = Vector((-x,0,0)) v0.draw() v0 = Vector((0,y,0)) v0.draw() v0 = Vector((0,-y,0)) v0.draw() v0 = Vector((0,0,z)) v0.draw() v0 = Vector((0,0,-z)) v0.draw() ==== see: http://www.python.org/ocn/python/stickworks.py There's a lot more basic algebra to explore. Parametric equations, various curves... All that stuff we do with TI calculators today, and loosely call "precalculus". I don't think the 'generator' concept, using yield instead of return, is that difficult to understand, and so tend to introduce it early on. By this time, generators are intrinsic to core Python, not esoteric "advanced features" (although itertools may be considered esoteric). Kirby Note: One possible student enchancement might be to stick little balls at the ends of the vector and edge cylinders, to make 'em more rounded, less likely to show gaps. From kirby.urner at gmail.com Thu Sep 14 06:48:50 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 13 Sep 2006 21:48:50 -0700 Subject: [Edu-sig] Working with Vpython In-Reply-To: References: Message-ID: On 9/13/06, kirby urner wrote: > ==== > see: http://www.python.org/ocn/python/stickworks.py > Dang, sorry: http://www.4dsolutions.net/ocn/python/stickworks.py Kirby From delza at livingcode.org Thu Sep 14 07:03:31 2006 From: delza at livingcode.org (Dethe Elza) Date: Wed, 13 Sep 2006 22:03:31 -0700 Subject: [Edu-sig] 3,4,10, 17 dimensions In-Reply-To: References: <4508B07C.1010306@optonline.com> Message-ID: <3E7E4F9C-2DBD-435C-9131-3BAEF17BB77C@livingcode.org> Not really apropos to Python, but since the discussion veered into 4D: There's a great flash animation on how to visualize 10 dimensions (companion to a book on the same subject): http://www.tenthdimension.com/flash2.php My favorite redefinition of dimensions (but I can't find it anymore and don't remember where I came across it) was based on rotations. The idea is that we perceive 3 dimensions because the Greeks made the math work out, but we don't really live in perfect 3 spacial (height, depth, width) dimensions any more than there are dimensionless lines which go on to infinity, or infinite perfect planes, or spheres. Bucky called them on the dimensionless geometry, but I don't think he was the one who planted rotation-based dimensions in my head. So, instead of living in 3-D space, we live on a rotating sphere. The rotation of the earth on its axis is one dimension. The rotation of the earth around the sun is another dimension, the rotation of the sun around the Galactic core is another. The rotation of the galaxy relative to other galaxies is a further dimension. Of course, the dimensions go down, too. Rotation of electrons around the nucleus of an atom is one dimension, electron spin is another, etc. I think they had something like 17 dimensions labeled, and it was easy to visualize, and incorporated time (since rotations and orbits are all movement over time), so time did not have to be a seperate, isolated component. The whole thing is kind of wacky, and probably come from some fringe cult like Urantia (I sat through one of their lectures as a kid, and it seemed to have some good ideas for a science fiction novel). I forget how many dimensions are required by superstring theory this week (the 10 dimensions guy claims 10, but I know the answer has varied with the development of the theory, and not all proponents of superstring theory agree on the number of dimensions needed), but for me, thinking of them as these various rotations helps me keep it in perspective, even if it isn't an accurate map of the territory. --Dethe On 13-Sep-06, at 8:45 PM, kirby urner wrote: > On 9/13/06, Arthur wrote: > >>> >> He renamed 3d, in an "I know something you don't" sort of way. >> > > Not really. We say 3D because we think height (1), width (2) and > depth (3) come apart as isolatable components of volume. You can have > one (any one) with out the others. > > Really? > > Anyway, if you conceive of volume as primordial, as rock bottom, then > you might reconsider why a "3" and not a "4". > > Why start with 3 when the most primitive volume has 4 vertices and > 4 faces? > > It's not a completely insane proposal, and it's not like you have to > buy into it to the exclusion of every other paradigm. > > What's cool about namespaces is you can always change channels (if > you're mentally limber -- there're limits...). > > Anyway, it's a remote namespace, quite alien and "out there". > > I mostly say 3D like an ordinary person. When in Rome... > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig "According to the ?New York Times?, last year White House lawyers concluded that President Bush could legally order interrogators to torture and even kill people in the interest of national security - so if that?s legal, what the hell are we charging Saddam Hussein with?" --Jay Leno From vceder at canterburyschool.org Thu Sep 14 15:19:37 2006 From: vceder at canterburyschool.org (Vern Ceder) Date: Thu, 14 Sep 2006 09:19:37 -0400 Subject: [Edu-sig] Pre-PEP was: The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> References: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> Message-ID: <450956E9.3080201@canterburyschool.org> Andre Roberge wrote: > Having had a look at the discussion on the Python-3000 mailing list, I thought > it was appropriate to write a draft PEP with the intent of eventually posting > it on the Python 3000 list for "serious" discussion/future decision. > ... > Feel free to make comments for improvement and even take over the "ownership" > of this PEP. +1 Thanks for doing this, Andre. Vern -- This time for sure! -Bullwinkle J. Moose ----------------------------- Vern Ceder, Director of Technology Canterbury School, 3210 Smith Road, Ft Wayne, IN 46804 vceder at canterburyschool.org; 260-436-0746; FAX: 260-436-5137 From pchase at sulross.edu Thu Sep 14 16:46:03 2006 From: pchase at sulross.edu (Peter Chase) Date: Thu, 14 Sep 2006 09:46:03 -0500 Subject: [Edu-sig] Pre-PEP was: The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> References: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> Message-ID: <45096B2B.2020905@sulross.edu> Andre Roberge wrote: > Hi-all, > > Having had a look at the discussion on the Python-3000 mailing list, I thought > it was appropriate to write a draft PEP with the intent of eventually posting > it on the Python 3000 list for "serious" discussion/future decision. > > Looks great! You can add my name, if you like. From ajsiegel at optonline.net Thu Sep 14 16:57:36 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 14 Sep 2006 10:57:36 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609131331.09497.john.zelle@wartburg.edu> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609130852655.SM01652@[10.1.20.6]> <4508224F.8010202@optonline.com> <200609131331.09497.john.zelle@wartburg.edu> Message-ID: <45096DE0.8070104@optonline.com> John Zelle wrote: >I _think_ I'm all for this, but again I'm not sure I know exactly what you are >saying. If you are saying that students might get interested in programming >through exposure in math (or some other "domain") and then want to turn to CS >classes to learn more, that sounds like a good thing. But it's still curious >to me that the implied tone here is one of denigrating teaching introductory >programming in CS classes because it is "divorced from any domain" and then >at the same time suggesting the thing to do is teach programming in the >context of math. > I have a hard time digesting being told by a CS professor that there is no special relationship between mathematics, algorithmics, and the roots of computer science. Being told that by John Zelle I will try to think harder about it. But I find it hard to even find a way to put this in the "maybe there is, maybe there isn't" category. Art From kirby.urner at gmail.com Thu Sep 14 17:22:40 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 14 Sep 2006 08:22:40 -0700 Subject: [Edu-sig] Pre-PEP was: The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> References: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> Message-ID: I'm glad you went to the work to make this a PEP. That's the way to go! I've interpersed my own views for the record, about why I think raw_input should go away. However, if I lose this little battle, I really won't mind too much. I don't think the success CP4E depends on it strongly, one way or the other. > This PEP proposes that Python 3.0 retains some simple user input capability, > equivalent to raw_input(), within the built-in namespace. In our intro classes, we have to import any namespace beyond what's in __builtins__ and beyond we've written during the session. Even if the target namespace in turns contains raw_input(), we still had to import that target program. Running Python programs from the command line is not the optimum place to begin with beginners, in our view. So we don't see the problem with importing sys.stdin.readline() if that's what our script is going to need. But "scripts" are not where we begin. A lot of the time, we simply feed arguments to functions interactively, in the context of a Python shell session. This approach, we feel, develops a stronger understanding of Python in our students, so we're glad raw_input is being demoted. That will discourage pedagogy which considers command line scripts from the operating system a beginner's environment. > > Motivation > ========== > > With its easy readability and its support for many programming styles > (e.g. procedural, object-oriented, etc.) among others, Python is perhaps > the best computer language to use in introductory programming classes. > Simple programs most often need to contain a means to provide information to > a user (output) as well as obtaining information from that user (input). > Any computer language intended to be used in an educational setting should > provide straightforward methods for both input and output. >>> def f(x): return x*x >>> f(2) 4 is in not way "not straightforward". Input and output have both occured. > The current proposals for Python 3.0 [1] include a simple output pathway > via a built-in function named print(), but a more complicated method for > input [e.g. via sys.stdin.readline()], one that requires importing an external > module. Current versions of Python (pre-3.0) include raw_input() as a built-in > function. With the availability of such a function, programs that > require simple > input/output can be written from day one, without requiring discussions of > importing modules, streams, etc. Modules, aka namespaces, should be discussed very early. The shell is a boring place without import, a key word. > raw_input() provides a simple mean to ask a question and obtain information > from a user. The proposed plans for Python 3.0 would require the replacement > of the single statement > > speed = raw_input("What is the average airspeed velocity of an unladed > swallow?") > > by the more complicated > > import sys > print("What is the average airspeed velocity of an unladed swallow?") > speed = sys.stdin.readline() However, if the source code is in front of you, self-prompting is less of a temptation. Just enter the speed in the source code or feed it to __init__. myswallow.velocity = 10 > The removal of raw_input (or equivalent) would not significantly reduce the > built-in namespace while it would steepen significantly the learning > curve for beginners. Especially if they're being taught the old fashioned way, based on *not* being in the shell and trying to write "scripts" for hypothetical end users who have no access to the source. In sum, raw_input() is mostly used as a crutch by those wedding to a particular pedagogical technique. Whereas I believe teachers have a right to develop their own style, I don't believe it's "the beginners" who are being protected by keeping raw_input as a __builtin__; in this case, I believe it's more teachers trying to stick to their old ways of teaching. Alternatives exist. Beginners need not suffer if raw_input goes to sys. i/o is not such a problem when you know how to work with a namespace directly. Kirby From ajsiegel at optonline.net Thu Sep 14 17:32:12 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 14 Sep 2006 11:32:12 -0400 Subject: [Edu-sig] Namespaces in the Humanities In-Reply-To: References: <4508B07C.1010306@optonline.com> Message-ID: <450975FC.1010204@optonline.com> kirby urner wrote: > It's not a completely insane proposal, and it's not like you have to > buy into it to the exclusion of every other paradigm. > It is, like some other of what I read in (into) Fuller, the apparent stated esoterically. Art From kirby.urner at gmail.com Thu Sep 14 18:34:51 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 14 Sep 2006 09:34:51 -0700 Subject: [Edu-sig] Namespaces in the Humanities In-Reply-To: <450975FC.1010204@optonline.com> References: <4508B07C.1010306@optonline.com> <450975FC.1010204@optonline.com> Message-ID: On 9/14/06, Arthur wrote: > It's not a completely insane proposal, and it's not like you have to > > buy into it to the exclusion of every other paradigm. > > > It is, like some other of what I read in (into) Fuller, the apparent > stated esoterically. > > Art > Not esoteric relative to string theory. Kirby From aharrin at luc.edu Thu Sep 14 19:53:34 2006 From: aharrin at luc.edu (Andrew Harrington) Date: Thu, 14 Sep 2006 12:53:34 -0500 Subject: [Edu-sig] Pre-PEP was: The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> References: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> Message-ID: <4509971E.5030300@luc.edu> Andre, Your English and your organization and rationale are excellent. I would be happy to be added as a signer. Thanks, Andrew Harrington Andre Roberge wrote: > Hi-all, > > Having had a look at the discussion on the Python-3000 mailing list, I thought > it was appropriate to write a draft PEP with the intent of eventually posting > it on the Python 3000 list for "serious" discussion/future decision. > > This proposal could most certainly be strengthened, and the wording improved > by a native English speaker with stronger CS background than I have. > I have attempted > to follow the standard recommended format (including providing both a motivation > and rationale ... which seemed a bit redundant and an artificial split...) > Feel free to make comments for improvement and even take over the "ownership" > of this PEP. > > Andr? > > ========================================= > PEP: XXX > Title: Simple input built-in in Python 3000 > Version: $Revision: 0.1 $ > Last-Modified: $Date: 2006/09/13 20:00:00 $ > Author: Andr? Roberge > Status: Draft > Type: Standards Track > Content-Type: text/x-rst > Created: 13-Sep-2006 > Python-Version: 3.0 > Post-History: > > Abstract > ======== > > Input and output are core features of computer programs. Currently, > Python provides a simple means of output through the print keyword > and two simple means of input throught the input() and raw_input() > built-in functions. > > Python 3.0 will introduces various incompatible changes with previous > Python versions[1]. Among the proposed changes, print will become a built-in > function, print(), while input() and raw_input() would be removed completely > from the built-in namespace, requiring importing some module to provide > even the most basic input capability. > > This PEP proposes that Python 3.0 retains some simple user input capability, > equivalent to raw_input(), within the built-in namespace. > > Motivation > ========== > > With its easy readability and its support for many programming styles > (e.g. procedural, object-oriented, etc.) among others, Python is perhaps > the best computer language to use in introductory programming classes. > Simple programs most often need to contain a means to provide information to > a user (output) as well as obtaining information from that user (input). > Any computer language intended to be used in an educational setting should > provide straightforward methods for both input and output. > > The current proposals for Python 3.0 [1] include a simple output pathway > via a built-in function named print(), but a more complicated method for > input [e.g. via sys.stdin.readline()], one that requires importing an external > module. Current versions of Python (pre-3.0) include raw_input() as a built-in > function. With the availability of such a function, programs that > require simple > input/output can be written from day one, without requiring discussions of > importing modules, streams, etc. > > Rationale > ========= > > Current built-in functions, like input() and raw_input(), are found to be > extremely useful in traditional teaching settings. (For more details, > see the discussion that followed [3].) While the BDFL has clearly stated [3] > that input() was not to be kept in Python 3000, he has also stated that he > was not against revising the decision of killing raw_input(). > > raw_input() provides a simple mean to ask a question and obtain information > from a user. The proposed plans for Python 3.0 would require the replacement > of the single statement > > speed = raw_input("What is the average airspeed velocity of an unladed > swallow?") > > by the more complicated > > import sys > print("What is the average airspeed velocity of an unladed swallow?") > speed = sys.stdin.readline() > > The removal of raw_input (or equivalent) would not significantly reduce the > built-in namespace while it would steepen significantly the learning > curve for beginners. > > > Specification > ============= > > The built-in input function should be totally equivalent to the existing > raw_input() function. > > Open issues > =========== > > With input() effectively removed from the language, the name raw_input() > makes much less sense and alternatives should be considered. The > various possibilities mentioned in various forums include: > > ask() > ask_user() > get_string() > input() # rejected by Guido > prompt() > read() > user_input() > > > References > ========== > > .. [1] Miscellaneous Python 3.0 Plans > (http://www.python.org/dev/peps/pep-3100/) > ..[2] The fate of raw_input() in Python 3000 > (http://mail.python.org/pipermail/edu-sig/2006-September/006967.html) > .. [3] educational aspects of Python 3000 > http://mail.python.org/pipermail/python-3000/2006-September/003589.html > > > Copyright > ========= > > This document has been placed in the public domain. > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Andrew N. Harrington Computer Science Department Director of Academic Programs Loyola University Chicago http://www.cs.luc.edu/~anh 512B Lewis Towers (office) Office Phone: 312-915-7982 Snail mail to Lewis Towers 416 Dept. Fax: 312-915-7998 820 North Michigan Avenue aharrin at luc.edu Chicago, Illinois 60611 From john.zelle at wartburg.edu Thu Sep 14 22:15:21 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Thu, 14 Sep 2006 15:15:21 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <45096DE0.8070104@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> Message-ID: <200609141515.21552.john.zelle@wartburg.edu> On Thursday 14 September 2006 9:57 am, Arthur wrote: > John Zelle wrote: > >I _think_ I'm all for this, but again I'm not sure I know exactly what you > > are saying. If you are saying that students might get interested in > > programming through exposure in math (or some other "domain") and then > > want to turn to CS classes to learn more, that sounds like a good thing. > > But it's still curious to me that the implied tone here is one of > > denigrating teaching introductory programming in CS classes because it is > > "divorced from any domain" and then at the same time suggesting the thing > > to do is teach programming in the context of math. > > I have a hard time digesting being told by a CS professor that there is > no special relationship between mathematics, algorithmics, and the roots > of computer science. > no, No, NO. I never said this. At least I didn't intend to. Please see the top of the message where I ask (virtually beg) for clarification on what you are saying. I thought you were saying that it's OK to teach programming in a math class, because it's being used there to motivate and illustrate mathematical concepts. Hence it is "grounded" in that material in some sense. If what you were saying is that we need to teach CS (and also programming) from it's historical mathematical roots, that's an entirely different position, and one that I'm quite at ease with, although it may not have exactly the same implications for you that it does for me. My fault; I didn't understand the point you were making. I thought you were stating the position of the camp that students will only learn programming if it's about something that matters to them, and I was having a hard time figuring out how the math class context would help (it being just another "artificial" domain). Note also my comment about "some other domain." If I had understood your point (CS is mathematics) that would make no sense. It sounded to me like you were saying CS-types should not be teaching programming, at least not in programming classes. So, I think we both agree that CS is all about a kind of mathematics, and programming itself _is_ a kind of mathematics in the sense that formal logic is a branch of mathematics. We are translating "knowledge" into a formal system. In our case, the formal system is defined by a programming language syntax and semantics. Given that agreement, I still don't understand why, in your mind, an introduction to programming class is less worthy than an introduction to algebra class. Or perhaps a better example, does a Calculus class have to also pay homage to linear algebra? Does a formal logic class need to be about calculus? Why isn't programming itself a legitimate entree into the "world of mathematics?" There are many subfields of mathematics that are commonly taught and largely independent. Once we agree to the mathematical roots of CS/programming and assume that the subject is being taught from a perspective that appreciates those roots, I don't see any reason that programming can't be taught in a programming class. What exactly are you objecting to? Are you saying is a better way to teach programming? If so, what is it? > Being told that by John Zelle I will try to think harder about it. But > I find it hard to even find a way to put this in the "maybe there is, > maybe there isn't" category. Once again, your paraphrase was _not_ what I told you. It may be what you heard, but that was not its intent. Please look at the rest of the post to see how that paragraph was framed. In my mind, when you teach programming, you _are_ teaching mathematics. It doesn't matter if you call it that. Now I'm just trying to figure out what we are disagreeing about. --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From kirby.urner at gmail.com Thu Sep 14 23:07:49 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 14 Sep 2006 14:07:49 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609141515.21552.john.zelle@wartburg.edu> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> Message-ID: On 9/14/06, John Zelle wrote: > introduction to algebra class. Or perhaps a better example, does a Calculus > class have to also pay homage to linear algebra? Does a formal logic class > need to be about calculus? Why isn't programming itself a legitimate entree > into the "world of mathematics?" I just wanted to break in here and say from my perspective it's about killing as many birds with one stone as possible -- except I hate that metaphor, because who wants to kill any birds? Not me. But you get my point, it's about bandwidth. What's a better metaphor? As educators, we should be in a collaborative mindset. If math teachers are in overdrive to drill junior on the existence of "functions" in some quasi-irrelevant twilight zone called "algebra" then the *least* a Python intro course might do is *reinforce* this archaic notion, and be articulate about functions in the Python namespace (where they're "top level" fer gosh sakes -- not bit players). That "mouth" where we put default values, accept optional arguments, keywords, is where the attention should be, as it's complicated, if freeing. raw_input takes the focus from parameter passing, and makes I/O a side-effect of function execution -- or maybe the raw_input was at the module level (even worse)? There's a conspiracy to keep basic numeracy divided between math class on the one hand, and CS-as-a-college-thing-only. I'm far from accusing you of being a member of this conspiracy (on the contrary, your book is quite popular with the high school crowd), but I am it's declared enemy, as I think CS needs a *much* bigger footprint in the early grades, where recruiters for technology-literate jobs are artificially kept at a disadvantage. Let's level the playing field: just knowing how to program doesn't make you a professor of anything, let alone computer science. CS is about communicating a heritage. And that heritage includes being efficient with memory. Design your curriculum intelligently -- as we all should, and need to keep hammering at -- just to stay in the game. Kirby From andre.roberge at gmail.com Fri Sep 15 00:49:11 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Thu, 14 Sep 2006 19:49:11 -0300 Subject: [Edu-sig] Pre-PEP was: The fate of raw_input() in Python 3000 In-Reply-To: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> References: <7528bcdd0609131827q57966b8csf39b98920d5d0570@mail.gmail.com> Message-ID: <7528bcdd0609141549s7786933eo2f670ad3089c4c6e@mail.gmail.com> On 9/13/06, Andre Roberge wrote: > Hi-all, > Replying to myself as I can`t single out an individual response... Thanks to all those that replied; it was nice to come back from a business trip and read so many positive messages :-) I also received a private email from Toby Donaldson who had started working on his own version of such a PEP, and shared it with me. In my opinion, (and I already wrote him to tell him so) Toby's PEP is much better written than mine and I hope he will soon share it with people on this list for feedback. The following step would then most likely be to post it on the python-3000 mailing list. Andr? From kirby.urner at gmail.com Fri Sep 15 02:08:28 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 14 Sep 2006 17:08:28 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609141515.21552.john.zelle@wartburg.edu> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> Message-ID: On 9/14/06, John Zelle wrote: > introduction to algebra class. Or perhaps a better example, does a Calculus > class have to also pay homage to linear algebra? Does a formal logic class > need to be about calculus? Why isn't programming itself a legitimate entree > into the "world of mathematics?" I just wanted to break in here and say from my perspective it's about killing as many birds with one stone as possible -- except I hate that metaphor, because who wants to kill any birds? Not me (OK, I eat chicken). But you get my point, it's about bandwidth. As educators, we should be in a collaborative mindset. If math teachers are in overdrive to drill junior on the existence of "functions" in some quasi-irrelevant twilight zone called "algebra" then the *least* a Python intro course might do is *reinforce* this archaic notion, and be articulate about functions in the Python namespace (where they're "top level" fer gosh sakes -- not bit players). Connecting to our earlier thread: that "mouth" where we put default values, accept optional arguments, keywords, is where the attention should be, as it's complicated, if freeing. raw_input takes the focus from parameter passing, and makes I/O a side-effect of function execution -- or maybe the raw_input was What I think Arthur and I have in common is a willingness to have math and CS augment each other as mutually reinforcing. I think you're likewise willing. But we all have divergent opinions about what's the most effective way to catalyze the synergies. And that's OK. I just get frustrated when we're unable to articulate the various philosophies. At least *clarity* we should have, given the disciplines in focus (known for they're ability to bring light to dark places). Kirby From ajsiegel at optonline.net Fri Sep 15 02:08:26 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 14 Sep 2006 20:08:26 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> Message-ID: <4509EEFA.5080401@optonline.com> kirby urner wrote: > On 9/14/06, John Zelle wrote: > >> introduction to algebra class. Or perhaps a better example, does a >> Calculus >> class have to also pay homage to linear algebra? Does a formal logic >> class >> need to be about calculus? Why isn't programming itself a legitimate >> entree >> into the "world of mathematics?" > > > I just wanted to break in here and say from my perspective it's about > killing as many birds with one stone as possible -- except I hate that > metaphor, because who wants to kill any birds? Not me. But you get > my point, it's about bandwidth. What's a better metaphor? > Ok so far. Except I like to eat chicken well enough. > As educators, we should be in a collaborative mindset. If math > teachers are in overdrive to drill junior on the existence of > "functions" in some quasi-irrelevant twilight zone called "algebra" > then the *least* a Python intro course might do is *reinforce* this > archaic notion, and be articulate about functions in the Python > namespace (where they're "top level" fer gosh sakes -- not bit > players). > > That "mouth" where we put default values, accept optional arguments, > keywords, is where the attention should be, as it's complicated, if > freeing. raw_input takes the focus from parameter passing, and makes > I/O a side-effect of function execution -- or maybe the raw_input was > at the module level (even worse)? In other words, programming is a kind of math, algebra is a kind of math and working the roads together is reinforcing of some of the core concepts of each - although it can be said better than that also. My impression is that this is somewhat second nature as an approach to the Schemers. Except they have to fight the syntax more then we do - though I am sure a Schemer could tell me why it is a good enough trade-off to need to do so. > There's a conspiracy to keep basic numeracy divided between math class > on the one hand, and CS-as-a-college-thing-only. A conspiracy needs a motive. There is not motive and therefore I can't find a conspiracy. There *is* inertia and misinformation. Most of the misinformation is coming from folks with a motive. The same motive I often wake up with in the morning - to make a buck. Perhaps why it seems so transparent to me. > I'm far from > accusing you of being a member of this conspiracy (on the contrary, > your book is quite popular with the high school crowd), but I am it's > declared enemy, as I think CS needs a *much* bigger footprint in the > early grades, where recruiters for technology-literate jobs are > artificially kept at a disadvantage. They are the ones with the motive. If this is about worrying about them, I resign. How the hell you and I come to the same place about dir() confounds me. > Let's level the playing field: just knowing how to program doesn't > make you a professor of anything, let alone computer science. CS is > about communicating a heritage. There is heritage in your world?? I hear more a world where everything is obsolete before it dries. A Gnu Age guru type, you are. Art From kirby.urner at gmail.com Fri Sep 15 02:19:28 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 14 Sep 2006 17:19:28 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <4509EEFA.5080401@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <4509EEFA.5080401@optonline.com> Message-ID: On 9/14/06, Arthur wrote: > Ok so far. Except I like to eat chicken well enough. > Funny. I wrote my post, took Tara to the dentist, then came back and found it on my screen. Thought not sent after all. Added a parenthetical about chicken. Then saw I'd really posted to variants. Then saw your reply to my first. Mentioning chicken. Heh. > In other words, programming is a kind of math, algebra is a kind of math > and working the roads together is reinforcing of some of the core > concepts of each - although it can be said better than that also. I'd say it's patently obvious from an efficiency standpoint that we should be merging math and CS earlier than we do. Those who fight this should be very clear about why. I'm not always willing to be on the defensive. I want to hear from the defense: why no Python in algebra class yet? Let's here some good reasons (and they better be good). > > There's a conspiracy to keep basic numeracy divided between math class > > on the one hand, and CS-as-a-college-thing-only. > > A conspiracy needs a motive. There is not motive and therefore I can't > find a conspiracy. There *is* inertia and misinformation. Most of the Just keeping stuff the same is comfortable and comforting. All you need for a conspiracy is a shared tacit investment in "not rocking the boat". Nothing deeply sinister. But the consequences may be nevertheless ugly. > > I'm far from > > accusing you of being a member of this conspiracy (on the contrary, > > your book is quite popular with the high school crowd), but I am it's > > declared enemy, as I think CS needs a *much* bigger footprint in the > > early grades, where recruiters for technology-literate jobs are > > artificially kept at a disadvantage. > > They are the ones with the motive. If this is about worrying about > them, I resign. By "they" you mean the recruiters? Students come to college already turned off to technology careers. They apparently didn't have much of a positive experience with technology, up to age 18. Except maybe as consumers and users maybe. But not as people who might develop tomorrow's. No Python in algebra class? Why again? Why just the calculators? > There is heritage in your world?? I hear more a world where > everything is obsolete before it dries. > > A Gnu Age guru type, you are. > > Art You're not someone I need to prove anything to, when it comes to heritage. You're not in my way, not blocking my advance. So let's talk heritage some other time, when it might actually matter. Kirby From kirby.urner at gmail.com Fri Sep 15 02:30:59 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 14 Sep 2006 17:30:59 -0700 Subject: [Edu-sig] Ramanujan's Pi (an exercise with generator & decimal features) In-Reply-To: References: Message-ID: Enroute to my iPod. More soon. Kirby On 9/14/06, Mark Engelberg wrote: > Somewhat off-topic, last year I was reading a book about Ramanujan, > and was so inspired by his brilliance and life story, that I wrote a > song about it. Supremely geeky, I know, but in case anyone's curious > to hear it, check out: > > http://www.archive.org/details/Ramanujan > > --Mark From ajsiegel at optonline.net Fri Sep 15 02:31:54 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 14 Sep 2006 20:31:54 -0400 Subject: [Edu-sig] More on teaching about namespaces In-Reply-To: References: Message-ID: <4509F47A.6090100@optonline.com> >My idea of a good first move, after booting some Python GUI shell for >the first time, is to go dir(). > >IDLE 1.2b2 > > >>>>dir() >>>> >>>> >['__builtins__', '__doc__', '__name__'] > >Already the filling is: we're not alone. And what are those weird >__xxx__ things. They look strange. > Easy. Snake ribs ;) Art From joshua.zucker at gmail.com Fri Sep 15 06:42:12 2006 From: joshua.zucker at gmail.com (Joshua Zucker) Date: Thu, 14 Sep 2006 21:42:12 -0700 Subject: [Edu-sig] BASIC? Message-ID: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> Some ad-viewing required, but David Brin is a good author and it's worth reading. The topic: A quest for a computer that can run BASIC. I'm sure we can come up with a good reply to this one! http://www.salon.com/tech/feature/2006/09/14/basic/index_np.html Or, if you don't want to view the ads, here's a copy already posted to another discussion group. http://mathforum.org/kb/thread.jspa?forumID=187&threadID=1449192&messageID=5127823#5127823 Enjoy, --Joshua Zucker From tom.hoffman at gmail.com Fri Sep 15 08:24:51 2006 From: tom.hoffman at gmail.com (Tom Hoffman) Date: Fri, 15 Sep 2006 02:24:51 -0400 Subject: [Edu-sig] BASIC? In-Reply-To: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> Message-ID: <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> I'm not sure what David Brin or Salon have to gain by trolling language geeks, but this article seems precisely tailored to drive Python, Logo, Squeak, etc. advocates completely up the wall. --Tom On 9/15/06, Joshua Zucker wrote: > Some ad-viewing required, but David Brin is a good author and it's > worth reading. The topic: A quest for a computer that can run BASIC. > I'm sure we can come up with a good reply to this one! > http://www.salon.com/tech/feature/2006/09/14/basic/index_np.html > > Or, if you don't want to view the ads, here's a copy already posted to > another discussion group. > http://mathforum.org/kb/thread.jspa?forumID=187&threadID=1449192&messageID=5127823#5127823 > > Enjoy, > --Joshua Zucker > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From ajsiegel at optonline.net Fri Sep 15 15:36:20 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 15 Sep 2006 09:36:20 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <4509EEFA.5080401@optonline.com> Message-ID: <450AAC54.2070703@optonline.com> kirby urner wrote: > Just keeping stuff the same is comfortable and comforting. All you > need for a conspiracy is a shared tacit investment in "not rocking the > boat". Nothing deeply sinister. But the consequences may be > nevertheless ugly. > Somehow can't let this go. I keep thinking that your analysis here is confounded with your Fullerism, which is why I come at it a bit and try to encourage you to separate it from your interest in programming/math synergies. Not asking or expecting you to compromise your Fuller crusade. Just separate the crusades a bit. The fact is, despite how I might sound, my general associations with Fuller are positive - as a freewheeling intelligence, as an "adventurous explorer". Caution to the wind. But if we take someone like Kay - who I think I can see more clearly - as a similar spirit, I think we tend to get some who, out of lack of caution , will be the most right in some cases, the most wrong in others. Like you and like I, on edu-sig. Separate the fact that Fuller has not gotten the recognition you feel he has earned within the academic community, and I think your analysis would be different. I'm all for conspiracy theories. There is little else to fall back on when one feels that things have gone terribly wrong. We seem to share some feelings that things have. I guess I fall back on the simplest possibility - follow the money. The possibility that the Python prompt might be the kind of tool most effective in an educational setting is a tremendous threat. It's not only the fact that it is free, it is the fact that is not even software in the sense that the software industry wants us to believe is necessary for this kind of assignment. The are many billions of dollars at stake. Much else follows from there. It is for others to decide whether my incautious statements along these lines might have some ring of truth. Art From kirby.urner at gmail.com Fri Sep 15 16:32:05 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 07:32:05 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <450AAC54.2070703@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <4509EEFA.5080401@optonline.com> <450AAC54.2070703@optonline.com> Message-ID: On 9/15/06, Arthur wrote: > I keep thinking that your analysis here is confounded with your > Fullerism, which is why I come at it a bit and try to encourage > you to separate it from your interest in programming/math > synergies. Not asking or expecting you to compromise your Fuller > crusade. Just separate the crusades a bit. The fact is, despite how I > might sound, my general associations with Fuller are positive - as a > freewheeling intelligence, as an "adventurous explorer". Caution to the > wind. But if we take someone like Kay - who I think I can see more > clearly - as a similar spirit, I think we tend to get some who, out of > lack of caution , will be the most right in some cases, the most > wrong in others. > > Like you and like I, on edu-sig. Sure, I'm happy to look at two different campaigns. The Fuller thing is going well, and so is CP4E. Both campaigns have teeth, get work done. We win some and we lose some, but the overall trends are, from my perspective, in a healthy direction. > Separate the fact that Fuller has not gotten the recognition you feel he > has earned within the academic community, and I think your analysis > would be different. And it may follow that your analysis of my analysis will change, as name recognition stops being a problem. Fuller's namespace is difficult, but so was Heidegger's. Philosophy was never advertised as easy. > I'm all for conspiracy theories. There is little else to fall back on > when one feels that things have gone terribly wrong. We seem to share > some feelings that things have. > > I guess I fall back on the simplest possibility - follow the money. I have no quarrel with that. > The possibility that the Python prompt might be the kind of tool most > effective in an educational setting is a tremendous threat. It's not > only the fact that it is free, it is the fact that is not even software > in the sense that the software industry wants us to believe is necessary > for this kind of assignment. The are many billions of dollars at > stake. Much else follows from there. And in sounding this note, I think you and Alan Kay are in perfect harmony. He's sung that tune for years, and not even often key. You detest money grubbing software companies polluting academia for selfish ends. Me too. But I also see independent sources of pollution in academia which private companies sometimes effectively fight, by offering that valuable "real world" reality check. > It is for others to decide whether my incautious statements along these > lines might have some ring of truth. > > Art > I appreciate your nothing to lose attitude and willingness to take what you think might be difficult positions for some to take. It used to bother me more, when I felt your positions difficult. Nowadays, I'm in a generally positive stance (winning my war), except I prefer sports metaphors to war metaphors, just like I hate killing birds (and eat chicken). Kirby From kirby.urner at gmail.com Fri Sep 15 16:41:10 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 07:41:10 -0700 Subject: [Edu-sig] BASIC? In-Reply-To: <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> Message-ID: On 9/14/06, Tom Hoffman wrote: > I'm not sure what David Brin or Salon have to gain by trolling > language geeks, but this article seems precisely tailored to drive > Python, Logo, Squeak, etc. advocates completely up the wall. > > --Tom On the contrary, CP4E is going strong. Kirby From ajsiegel at optonline.net Fri Sep 15 16:46:27 2006 From: ajsiegel at optonline.net (Arthur) Date: Fri, 15 Sep 2006 10:46:27 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <4509EEFA.5080401@optonline.com> <450AAC54.2070703@optonline.com> Message-ID: <450ABCC3.3060504@optonline.com> kirby urner wrote: > And in sounding this note, I think you and Alan Kay are in perfect > harmony. He's sung that tune for years, and not even often key. Trying to sing it from the Disney and HP pulpits - if nothing else - maybe it necessarily off-key. Thinking no one would notice from where he was singing it made it arrogantly off-key. And that's just the beginning of some of my problems with the Kay's stance. But I've beaten that dead chicken into the ground by now. Art From driscollkevin at gmail.com Fri Sep 15 17:24:03 2006 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Fri, 15 Sep 2006 11:24:03 -0400 Subject: [Edu-sig] BASIC? In-Reply-To: References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> Message-ID: <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> Read the article a couple times last night. It poses two difficult questions: one concerning the role of programming in education (re: math texts) and the other is the gradual transformation of the PC from toolset to appliance. For the first case, I think it unreasonable to try to recreate the experience of programming BASIC on a C64 (like Brin) or an Apple // (like me.) But what can we learn from it? Can we abstract the curiosity, and challenge/reward systems of that earlier experience to help us create contemporary situations of similar value? The loss of an easily accessible programming environment on every PC is truly sad. However, I found Brin's swipe at the Media Lab unfair. The oft-derided OLPC project proposes a platform designed for exploration and experimentation; a far cry from the Dell PCs in my classroom - seemingly designed for little more than "content-delivery." The most intriguing of Brin's questions must be that of the ubiquitous programming language. Is Python the rightful heir? Kevin On 9/15/06, kirby urner wrote: > On 9/14/06, Tom Hoffman wrote: > > I'm not sure what David Brin or Salon have to gain by trolling > > language geeks, but this article seems precisely tailored to drive > > Python, Logo, Squeak, etc. advocates completely up the wall. > > > > --Tom > > > On the contrary, CP4E is going strong. > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From jasonic at nomadics.org Fri Sep 15 17:50:15 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Fri, 15 Sep 2006 17:50:15 +0200 Subject: [Edu-sig] BASIC? In-Reply-To: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> Message-ID: <450ACBB7.6000904@nomadics.org> http://www.salon.com/tech/feature/2006/09/14/basic/index_np.html hmm... well before y'all get evangelical, don't forget to review picBASIC and ilk. OOGLING... http://www.google.com/search?hl=en&q=picBASIC&btnG=Google+Search BOOKS http://amazon.com/s/ref=br_ss_hs/002-8671143-6752853?platform=gurupa&url=index%3Dblended&keywords=picBASIC&Go.x=0&Go.y=0&Go=Go ARTS++ For really fun some creative applications check out playful but hard-working DorkBots and Artbots events and projects dorkbot {/people doing strange things with electricity/} http://dorkbot.org/ artbots {The Robot Talent Show} http://www.artbots.org enjoy Jason From kirby.urner at gmail.com Fri Sep 15 17:56:59 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 08:56:59 -0700 Subject: [Edu-sig] BASIC? In-Reply-To: <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> Message-ID: On 9/15/06, Kevin Driscoll wrote: > The loss of an easily accessible programming environment on every PC > is truly sad. What loss? What sad? Python, Scheme, Ruby... all free for the cherry picking, takes the brains of a hamster to download and install (if that much -- basic twitch behavior). There's been no loss or leakage of any kind from an engineering point of view. What leaked away, apparently, was any brains in the math teaching sector. Mostly bozos over there. Which is why CS is moving in to take over, flying the banner of CP4E. The Texas "hamster brain" Instruments crowd needs to make room. Kirby From kirby.urner at gmail.com Fri Sep 15 18:08:47 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 09:08:47 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <450ABCC3.3060504@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <4509EEFA.5080401@optonline.com> <450AAC54.2070703@optonline.com> <450ABCC3.3060504@optonline.com> Message-ID: On 9/15/06, Arthur wrote: > Trying to sing it from the Disney and HP pulpits - if nothing else - > maybe it necessarily off-key. Thinking no one would notice from where > he was singing it made it arrogantly off-key. But you see, for me, if Steve Jobs ran some humvees into Average Podunk U or CC, and planted a Pixar flag, opened a boot camp for gnu math teachers (trailers on the field), that'd probably be a big step up in lifestyle for the students. Flatscreens in all dorm rooms, professors who knew something. Once the humvees were gone, maybe next morning (a fleeting circus), students would be left with the impression: oh, there *is* a life after college, and it has high standards too (maybe higher). > And that's just the beginning of some of my problems with the Kay's stance. > > But I've beaten that dead chicken into the ground by now. > > Art Disney is a stronger teacher than Heidegger in my book. Some of those candied-ass profs are preaching up barf bag philo compared to we I get from some of these Silicon Forest execs. Walter Kaufmann was strong, Rorty. I've had some good teachers. If the Ivory Tower had any pride, it'd have raised the CP4E banner all on its own long ago (why should DARPA have all the fun?). And it did, but only over some of its towers (it's really a whole campus ya know, not just this one minaret or whatever). Kirby From driscollkevin at gmail.com Fri Sep 15 18:12:07 2006 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Fri, 15 Sep 2006 12:12:07 -0400 Subject: [Edu-sig] BASIC? In-Reply-To: <87a8578e0609150910u7808e169ydeb890713dc50834@mail.gmail.com> References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> <87a8578e0609150910u7808e169ydeb890713dc50834@mail.gmail.com> Message-ID: <87a8578e0609150912n4f87a0e0wa2d35821968b93c@mail.gmail.com> > There's been no loss or leakage of any kind from an engineering point > of view. What leaked away, apparently, was any brains in the math > teaching sector. Mostly bozos over there. The PCjr shipped with beautiful fold-out schematics of every part. It booted into cartridge BASIC. Did the Macintosh ship with Hypercard? I believe that even Windows 98 shipped with QBasic and a copy of gorilla.bas. A Dell desktop in 2006 comes without any programming tools. (Unless DOS batch support counts.) There are more free tools available online than ever but it seems that PC design continues to move toward appliance status. (See: Trusted Computing http://en.wikipedia.org/wiki/Trusted_computing ) I consider that a loss! Kevin From jasonic at nomadics.org Fri Sep 15 18:15:29 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Fri, 15 Sep 2006 18:15:29 +0200 Subject: [Edu-sig] BASIC? In-Reply-To: <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> Message-ID: <450AD1A1.2070709@nomadics.org> Kevin Driscoll wrote: > The loss of an easily accessible programming environment on every PC > is truly sad. However, I found Brin's swipe at the Media Lab unfair. > The oft-derided OLPC project proposes a platform designed for > exploration and experimentation; a far cry from the Dell PCs in my > classroom - seemingly designed for little more than > "content-delivery." > I can't understand this mourning "lack of programming language" meme. What has changed radically from the 'golden oldie' early days of BASIC on C64, RadioShack Model 100 etc is the advent of the Internet. A rich univers of great free programming languages, examples, people and help. Plus monthly magazines full of complete distros, tools, examples and how-to. But what I do not yet see alas are very CHEAP concise books [booklets] to encourage kids to take up programmming >> a sort of omnibus Python, REBOL, PHP, Processing, picBASIC etc An non-partisan intro cookbook, with CD. Perhaps sold for under $10. Would include an overview of each, a series of over the shoulder screencasts [in flash] on the disc showing how set-by-step how to install and get going, Some useful interesting programs.. Plus some screencasts perhaps offering some direct comparisons about what each language does and its characteristics, links to examples of real-world uses [Python >> Google + Google Earth] [PHP >> most web sites] REBOL >> tiny internet applications Processing >> Art and experiemntal picBASIC >> Industrial controls [actually *show* a few eaxmples of where it is used. For example take the lid off a talking robot in a toystore, ditto the washing machine, the telephone, the subay/bus/credit cared reader] and Experimental Arts [dorkbots/artbots/ robots/toys] [Maybe a liitle dsktop GUI to select a set of images and upload them to a website as an album page ?] [insert your preferred tasks here] ------------------ CP4E EDITIONS "presents Toolkit Book One" An embarassment of riches we have today Jason From kirby.urner at gmail.com Fri Sep 15 18:30:05 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 09:30:05 -0700 Subject: [Edu-sig] BASIC? In-Reply-To: <450AD1A1.2070709@nomadics.org> References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> <450AD1A1.2070709@nomadics.org> Message-ID: > ------------------ > CP4E EDITIONS > "presents Toolkit Book One" > > An embarassment of riches we have today > > Jason Exactly right. If we're doing "military tribunals" all of a sudden (I think Congress may have a better idea), then let's queue up the math teachers to explain why: (1) download and install language x (2) teach basic algebra in terms of x is so tough for them to get. The students would benefit. Instead the plan seems to be: let's get our asses whipped in the civilian job market, but compensate with our bigger guns. That's a non-starter if I ever saw one. My preferred approach: at least give the USA military a free hand to teach Python on base schools, with off base non-DARPA schools allowed to copy the free source code (already paid for by taxpayers, so free for reuse). I have the same policy proposal for the Rez populations i.e the BIA schools, mostly funded from casino money anyway, which tribal elders control and use to build community (e.g. by helping to fund OMSI via Spirit Mountain -- my favorite science museum). To the students I say: CP4E from Python Nation is your friend. We'll rescue you from those dreary crypto-algebra teachers who don't know a computer from a hole in the ground, and wouldn't know a computer language if one bit them on the butt. [sound of 3rd graders laughing] Kirby From jasonic at nomadics.org Fri Sep 15 18:58:01 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Fri, 15 Sep 2006 18:58:01 +0200 Subject: [Edu-sig] GYOML - Grow Your Oen Media lab Message-ID: <450ADB99.1090902@nomadics.org> http://www.folly.co.uk/?q=node/143 From ajsiegel at optonline.net Fri Sep 15 19:29:11 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Fri, 15 Sep 2006 17:29:11 +0000 (GMT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <4509EEFA.5080401@optonline.com> <450AAC54.2070703@optonline.com> <450ABCC3.3060504@optonline.com> Message-ID: ----- Original Message ----- From: kirby urner Date: Friday, September 15, 2006 12:09 pm Subject: Re: [Edu-sig] The fate of raw_input() in Python 3000 To: Arthur Cc: John Zelle , edu-sig at python.org > On 9/15/06, Arthur wrote: > > > Trying to sing it from the Disney and HP pulpits - if nothing > else - > > maybe it necessarily off-key. Thinking no one would notice > from where > > he was singing it made it arrogantly off-key. > > But you see, for me, if Steve Jobs ran some humvees into Average > Podunk U or CC, and planted a Pixar flag, opened a boot camp for gnu > math teachers (trailers on the field), that'd probably be a big step > up in lifestyle for the students. Flatscreens in all dorm rooms, > professors who knew something. Once the humvees were gone, > maybe next > morning (a fleeting circus), students would be left with the > impression: oh, there *is* a life after college, and it has high > standards too (maybe higher). There is no such thing as gnu math, so I have idea what the hell you are talking about. > > Disney is a stronger teacher than Heidegger in my book. And if you submit that book to the marketplace of ideas and few buy it - well, the marketplace has spoken. If you submit motives for a conspiracy of suppression that ring true, that might be considered, in some circles. You haven't, to my ear. Your conspiracy theory seems to be in line with Kay's - that everyone is simply dumber. No wonder you belong to the same support group. > If the Ivory Tower had any pride, it'd have raised the CP4E > banner I have zero stake in the Ivory Tower. And I would like to bury the CP4E banner. So the problem must be a little more complicated than that. Art From ajsiegel at optonline.net Fri Sep 15 19:37:45 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Fri, 15 Sep 2006 17:37:45 +0000 (GMT) Subject: [Edu-sig] BASIC? In-Reply-To: <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> Message-ID: > is truly sad. However, I found Brin's swipe at the Media Lab unfair. > The oft-derided OLPC project proposes a platform designed for > exploration and experimentation; a far cry from the Dell PCs in my > classroom - seemingly designed for little more than > "content-delivery." A swipe at the Media Lab?????????? My God!! I was there first. But feeling lonely. Looking forward to reading this. Art From kirby.urner at gmail.com Fri Sep 15 20:10:42 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 11:10:42 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609141515.21552.john.zelle@wartburg.edu> <4509EEFA.5080401@optonline.com> <450AAC54.2070703@optonline.com> <450ABCC3.3060504@optonline.com> Message-ID: On 9/15/06, ajsiegel at optonline.net wrote: > There is no such thing as gnu math, so I have idea what the hell > you are talking about. > I beg to differ, except begging isn't really my style. > > > > Disney is a stronger teacher than Heidegger in my book. > > And if you submit that book to the marketplace of ideas and few buy it - well, > the marketplace has spoken. Nobody buys Heidegger. Part of Disney's genius as a philosopher was to turn his stuff into cartoons. I've been trying to do something similar, but I can't draw worth beans. > If you submit motives for a conspiracy of > suppression that ring true, that might be considered, in some circles. > You haven't, to my ear. Your conspiracy theory seems to be in line > with Kay's - that everyone is simply dumber. That's a good place to start. Kay gets my attention for being a Slayer of some kind, hard to type him at first. But as the meetings went on, I ended up having fewer and fewer problems with the guy. Plus Smalltalk is a dead language and off my radar, so I'm not feeling like he's a Big Threat to my competing brand of snake oil. > No wonder you belong to the same support group. > I hope not. I like the diversity it adds, to have Alan operating independently, neither of us feeling like we're trying to dictate to the other. If there's leftover business, it's probably that basic background frustration level we all have with technology: it's dumber than it could be or should be, if we just had more time to concentrate and experiment. But stupid wars keep getting in the way. The story of television is instructive. It was all set to go *before* WWII, but the war delayed its inception in the public eye. However, in retrospect, if we'd had more sophistication with this medium, there's every possibility that war could have been made far less devastating, if not altogether prevented. TV, in wise hands, puts a heavy damper on war (as cold warriors discovered). You see "the others" and empathize more, demonize less. Plus there're likely lots of embedded Americans, everywhere you go. > > > If the Ivory Tower had any pride, it'd have raised the CP4E > > banner > > I have zero stake in the Ivory Tower. I don't know what this means exactly. I'd think you'd be trying to plant the Pygeo flag in this or that campus. That's would I'd be doing with such an asset. If you've got it, flaunt it, at least discreetly. > And I would like to bury the CP4E banner. > Not me. I want students to feel someone cares, that not every school of thought is as invested in dumbing them down as it sometimes seems to them. I'm in overdrive trying to make TV executives see the wisdom in taking Basic Education beyond the Sesame Street level. They way they're already doing that with cop shows like NUMB3RS (which mentioned Sloane's Encyclopedia of Integer Sequences in a recent episode), but I say a diet of All Fiction All the Time is not good enough. Bill Nye the Science guy is more on the money. A problem: actually showing source code is frustrating in both NTSC and PAL. HDTV is what's needed. ToonTown aims to focus in high bandwidth Not that source code is all we want to show -- but let's drop this foolish notion that flatscreens spell the end of Lexical Literacy. We stare at Word all day yet still seem to believe that. > So the problem must be a little more complicated > than that. > > Art My assembled CP4E troops keep waiting to be noticed by the lazy Eloi, nursing on their baby algebra books, teaching "precalculus," other pablum. Over and over I've put them on notice: we have an investment in children too ya know, want at least a few Morlocks to play with, not to mention Wizards, other types of Circus Geek (link to chicken). Do you really want us to invade? Wanna negotiate first? All we get back are jeers and sneers: you don't really exist, you're just a mirage. They wish. By now it's too late to negotiate the same way we might have. Too many dead already. Kirby From ajsiegel at optonline.net Fri Sep 15 20:55:45 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Fri, 15 Sep 2006 18:55:45 +0000 (GMT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609141515.21552.john.zelle@wartburg.edu> <4509EEFA.5080401@optonline.com> <450AAC54.2070703@optonline.com> <450ABCC3.3060504@optonline.com> Message-ID: Kirby, You must be *very* frustrated. Because you are sounding highly meshuga. http://www.bartleby.com/61/66/M0236625.html No chance the problem is your sales pitch, not the underlying substance????. It's hard to buy what a meshugana is selling. Make it easier. Pleeeeeeeeeeeeeeeeeeeeeeeeeease. Art From kirby.urner at gmail.com Fri Sep 15 21:48:17 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 12:48:17 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <4509EEFA.5080401@optonline.com> <450AAC54.2070703@optonline.com> <450ABCC3.3060504@optonline.com> Message-ID: On 9/15/06, ajsiegel at optonline.net wrote: > Make it easier. > > Pleeeeeeeeeeeeeeeeeeeeeeeeeease. > > Art > I think to make it easy for the many, it has to be hard for the few. Yes, s'been frustrating. Monkey brains everywhere. :-D But you shouldn't worry Arthur. For one thing, I'm more into HP4E than CP4E these days. I won't drag it all down on some foolish crusade against windmills (we *want* more windpower around here). And also it's partly geographic: the U.S. Army has stolen a lot of land out west, to use for dubious purposes. That's just basic U.S. history 101. In your neck of the woods, that's probably not a story. But out here, there's still a lot of interest in getting a lot of it back. I know that all sounds meshuganistic to your ears (a lotta crazy talk). Tell that to Shoshone. http://www.bartleby.com/61/67/S0366700.html Kirby From ajsiegel at optonline.net Fri Sep 15 22:28:41 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Fri, 15 Sep 2006 20:28:41 +0000 (GMT) Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <4509EEFA.5080401@optonline.com> <450AAC54.2070703@optonline.com> <450ABCC3.3060504@optonline.com> Message-ID: ----- Original Message ----- From: kirby urner > I know that all sounds meshuganistic to your ears (a lotta crazy > talk). "meshuganistic" Not a generally accepted idiom, but I can work with it. It is of course Shoshoni we are speaking ;) Art From jjposner at snet.net Fri Sep 15 22:56:07 2006 From: jjposner at snet.net (John Posner) Date: Fri, 15 Sep 2006 16:56:07 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 Message-ID: <004101c6d909$5e9c4330$e559a8c0@AMDUP> My apologies if someone else has already pointed out this difference between sys.stdin.readline() and raw_input(): they return different strings. >>> a = sys.stdin.readline() spam >>> b = raw_input() spam >>> a 'spam\n' >>> b 'spam' IMHO, that trailing NL character ... (1) ... indicates the fact that these two functions were really designed for different purposes: getting data from a file vs. getting data interactively from a person. (2) ... would impose yet another trap for beginning users to fall into. ("Teacher, I typed in 'Richard', but Python doesn't seem to think I did.") Sure, we can try to sell strip() to the student, but I wouldn't blame him/her for suspecting that Python is so dumb that it doesn't distinguish between the content of a message and the gesture than ends the message. -John Posner From delza at livingcode.org Fri Sep 15 23:17:26 2006 From: delza at livingcode.org (Dethe Elza) Date: Fri, 15 Sep 2006 14:17:26 -0700 Subject: [Edu-sig] BASIC? In-Reply-To: <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> Message-ID: On 15-Sep-06, at 8:24 AM, Kevin Driscoll wrote: > For the first case, I think it unreasonable to try to recreate the > experience of programming BASIC on a C64 (like Brin) or an Apple // > (like me.) But what can we learn from it? Can we abstract the > curiosity, and challenge/reward systems of that earlier experience to > help us create contemporary situations of similar value? Python, Ruby, Perl and AppleScript come standard on every Mac (also AppleScript Studio and a full suite of professional programming tools, but those are an optional install). Python comes standard on every Linux distro that I know of. Windows no longer comes with a programming language, which is a marketing decision on Microsoft's behalf. Brin appears to be extrapolating from Windows the the rest of the computing world (even though he specifically mentions the Mac). Oddly enough, we're in the middle of a renaissance of the kind of build-it-yourself computing environments that he complains is missing, thanks to Make magazine. Embedded programming environments like the Arduino board[1] have never been more accessible, you can write code directly over the web in languages like Frink[2], and more consumer devices are intended to be user-hackable, for example the Roomba[3], Lego Mindstorms[4], the soon-to-be-released Chumby[5], and the Nokia 770 tablet[6]. I have to agree with others on this list, there's an embarrassment of riches to choose from. My biggest puzzle is which environments to teach my kids first. [1] http://arduino.cc/en/ [2] http://futureboy.homeip.net/frinkdocs/FrinkApplet.html [3] http://www.irobot.com/sp.cfm?pageid=248 [4] http://mindstorms.lego.com/Overview/NXTreme.aspx [5] http://www.chumby.com/corporate/whatischumby [6] http://opensource.nokia.com/projects/maemo/index.html --Dethe Simple things should be declarative. Complex things should be procedural. --Adam Bosworth From kirby.urner at gmail.com Fri Sep 15 23:27:04 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 14:27:04 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <004101c6d909$5e9c4330$e559a8c0@AMDUP> References: <004101c6d909$5e9c4330$e559a8c0@AMDUP> Message-ID: On 9/15/06, John Posner wrote: > (1) ... indicates the fact that these two functions were really designed for > different purposes: getting data from a file vs. getting data interactively > from a person. > Hmmmm, didn't know about that difference (I still haven't read the original PEP -- knowing the work is already done reduces my curiosity level). There *is* this strong "everything is a file" metaphor (predates "everything is an object") that makes us *want* to see stdin as "just another file" (why it's satisfying to have the same readline() in both the sys.stdin and open('file') contexts. > (2) ... would impose yet another trap for beginning users to fall into. What's all this fascination with keeping beginners out of traps? Fall in a few times, learn from the experience, brush off and move on. I'm all for pandering to beginners, but they're not entitled to prima donna treatment, any more than their teachers. Real work needs doing. The needs of beginners take a back seat. The needs of 1970s-trained CS teachers take a back seat also. Anyway, my point is you don't teach beginners by raw_input heavy prompting, you teach them by showing them how to: (a) explore the source code without running it (with help and dir) (b) look for the little functions and classes it contains (c) import the ones that look safe and feed them through their standard APIs as callables, and/or dot-trigger them (basic shell operations -- what beginners should start with). If there's no source code included, think twice about running it. Who thinks they have a right to run on your CPU leaving you out of the loop? Authenticate the source at least. I mostly trust MSFT, but I still prefer the kinds of protections the bazaar affords (e.g. I'd never trust USA elections if the core voting code was anything but wide open to public scrutiny). If there's a lot of raw_input, you're likely dealing with 1970s era stuff -- so be careful (CP4E was still pretty weak back then). > ("Teacher, I typed in 'Richard', but Python doesn't seem to think I did.") > Sure, we can try to sell strip() to the student, but I wouldn't blame > him/her for suspecting that Python is so dumb that it doesn't distinguish > between the content of a message and the gesture than ends the message. > > -John Posner Just go a = sys.stdin.readline()[:-1] # because you didn't mean to include /n ? Kirby From kirby.urner at gmail.com Fri Sep 15 23:32:24 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 14:32:24 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <004101c6d909$5e9c4330$e559a8c0@AMDUP> Message-ID: On 9/15/06, kirby urner wrote: > Just go > > a = sys.stdin.readline()[:-1] # because you didn't mean to include /n > > ? > > Kirby Sorry: \n >>> print 'the dog\n' the dog >>> print 'the dog\n'[:-1] the dog >>> Note extra blank line. One thing I liked about that Salon article: harping on "line by line" programming as the criterion. Just dragging and dropping ain't good enough. We're looking for lexical left brain proficiency, not just all right brained GUI goo. Kirby From kirby.urner at gmail.com Sat Sep 16 00:53:23 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 15:53:23 -0700 Subject: [Edu-sig] BASIC? In-Reply-To: References: <721e81490609142142icba5e2di2d554623f45f0d97@mail.gmail.com> <92de6c880609142324w6c0a56a3p4332595bfb649120@mail.gmail.com> <87a8578e0609150824x41fb27fct246588cdb40a0154@mail.gmail.com> Message-ID: > Windows no longer comes with a programming language, which is a marketing > decision on Microsoft's behalf. Seems on OK response to all the flak they got for including a browser (the "Netscape killer" IE). People wanted them to stop taking advantage of their position as the leading OS maker. Stopping with including Java also made sense in that light. "If we're supposed to keep it bare bones, don't insist we do Sun's work for free." Now what if MSFT brings back a branded Python, i.e. IronPython for .NET. Are the Linux people going to start up their hue and cry again, about how an OS maker shouldn't "bundle"? That's absurd, right? Every distro is a bundle of some kind. What *would* be a travesty is if MSFT did anything to sabotage plain old CPython from running, with Tk and everything, or wxPython, just because it now has a "preferred" way of teaching Python to its professional developer teams. And what good is an OS that can't run Java? But MSFT's does, so that's a moot point. > missing, thanks to Make magazine. Embedded programming environments > like the Arduino board[1] have never been more accessible, you can > write code directly over the web in languages like Frink[2], and more > consumer devices are intended to be user-hackable, for example the > Roomba[3], Lego Mindstorms[4], the soon-to-be-released Chumby[5], and > the Nokia 770 tablet[6]. Yeah, the engineers have done a great job of opening opportunities to students. But what have the teachers been doing? Will Intro to CS get you any closer to coding your cell phone in Python? Will they even *tell* you that Nokia has Python-compatible cells? > I have to agree with others on this list, there's an embarrassment of > riches to choose from. My biggest puzzle is which environments to > teach my kids first. Your kids have a geek parent, so they're automatically in the loop. I have this perhaps antiquated notion that a public school system spreads such advantages, such that one's ethnicity does *not* become a chief limiting factor, thanks to our generously stocked meme pool. But whereas I see engineers pouring their hearts into our inventory of share assets, I see precious little coming out the other end, where real kids sit in real chairs staring at real chalkboards. Where's the beef? Why no Python in algebra class? I put it to NCTM directly. I think we're owed really *good* explanations (merely issuing books might not be enough this time). Kirby From kirby.urner at gmail.com Sat Sep 16 03:22:42 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 15 Sep 2006 18:22:42 -0700 Subject: [Edu-sig] Ramanujan's Pi (an exercise with generator & decimal features) In-Reply-To: References: Message-ID: Hey Mark, thanks for sharing this. A good old fashioned balad about a hero and his achievements, which in this case still awe those who come across them (if they have any training). What a painless way to review the bio of a great man. As I listened (in a big hotel room, McMenamins' Kingdom), I thought of many cartoons to go with it, including close-ups of the equations themselves. I don't know if Hardy dressed them up in Sigma Notation or what (do you?), but they're real doozies. That one for 1/pi I was just checking, to like a hundred places, using Python's new decimal type... (earlier this month in this archive). Your "no ordinary mind" refrain connects me to 'Beautiful Mind' whereis if you'd said "boy" (this was his mother's realization), I'd be thinking more of that theme song in Moulin Rouge! ( http://www.imdb.com/title/tt0203009/ ), also appropriate in this context no? Kirby Relevant: http://worldgame.blogspot.com/2005/11/speaking-of-music.html http://worldgame.blogspot.com/2006/01/more-music-millenium-notes.html http://myspace.com/4dstudios http://mathforum.org/kb/message.jspa?messageID=5071745&tstart=0 http://worldgame.blogspot.com/2006/09/across-from-blue-nile.html http://mail.python.org/pipermail/edu-sig/2006-September/006963.html From nelson1977 at gmail.com Sat Sep 16 15:18:41 2006 From: nelson1977 at gmail.com (nelson -) Date: Sat, 16 Sep 2006 15:18:41 +0200 Subject: [Edu-sig] ANN: pyfuzzylib 0.1.3 Released Message-ID: PyFuzzyLib is a library for fuzzy inference engine building. Using pyfuzzylib you can add fuzzy logic to your programs. The program is in it early stage of development, but it is still usable. Every sort of feedback is appreciated! the project homepage is http://sourceforge.net/projects/pyfuzzylib good afternoon, nelson From ajsiegel at optonline.net Sat Sep 16 16:35:35 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 16 Sep 2006 10:35:35 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609141515.21552.john.zelle@wartburg.edu> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> Message-ID: <450C0BB7.3080908@optonline.com> John Zelle wrote: >no, No, NO. I never said this. At least I didn't intend to. Please see the top >of the message where I ask (virtually beg) for clarification on what you are >saying. I thought you were saying that it's OK to teach programming in a math >class, because it's being used there to motivate and illustrate mathematical >concepts. > no, No, No. ;) I am trying to say that some integration of algorithmics into required math education is eminently sensible. Among other things is a statement that computer programming - in some sense of the word - *is* for everyone. Despite all my silliness and "freewheeling intelligence" there being so much noise around these issues - I try to make sure any position I might try to advocate passes some basic test against common sense. I am satisfied this position does. And because I am satisfied it does, I don't feel the need for banners of any kind, for armies or - I would have thought - for confrontations. So I have always been confused why such an idea would meet with *any* resistance on a list such as this. It has from day one. Which has always been a clue to me that I had in some sense entered Chinatown, in arriving here. No - it ain't the Media Lab. It is modest. It is unconnected with Revelation, New Ages, and Second Comings. It brings us to no new dimensions. It actually brings no new great amount of stature to the geeks of the world, or to the software industry. It must be on the right track. Art From kirby.urner at gmail.com Sat Sep 16 17:27:39 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 16 Sep 2006 08:27:39 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <450C0BB7.3080908@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> Message-ID: On 9/16/06, Arthur wrote: > I am trying to say that some integration of algorithmics into required > math education is eminently sensible. As stated, that's too watered down to make a difference I should think. Of course math education centers around algorithmics to some degree, but does that entail any use of a programming language that executes electronically? The word Algorithm comes from an old Iraqi word, the name of this guy from Baghdad. Europe was still in a dark age, with the Church monopolizing computation, when knowledge of simple algorithms that'd let you run a business starting percolating in from the Islamic world. A Renaissance ensued, reaching a high point in Italy at the universities in Bologna, where faculty served at the whim of the students (i.e. student unions had hire and fire capability). To this day, we teach algorithms in math class. But have we said anything about computers yet? No. So your position, as stated above, is not honed enough to advertise anything beyond the status quo. I think John Zelle asked a good question: why should CS be its "own door" into mathemtics, i.e. why pander to other disciplines and make them king? I like his attitude. > Among other things is a statement > that computer programming - in some sense of the word - *is* for > everyone. Despite all my silliness and "freewheeling intelligence" > there being so much noise around these issues - I try to make sure any > position I might try to advocate passes some basic test against common > sense. I am satisfied this position does. I'm satisfied that it does to. But this position made a lot of sense several decades ago (nothing new in your view) and *still* most kids get little if any exposure to computer programming *except* through the CS door in college. Whereas I think CS has a right to develop its own curriculum, I don't think ordinary K-12 math teachers should have been able to strangle computing in the cradle so effectively, without a fight. I wish CS people wouldn't just sit back and say "that's not my problem, I won't see them until college anyway." By then, it's already too late for so many. So many have been turned off already, by how boring and stupid, not to mention difficult, their math classes seemed (with CS not even an option). We're in another dark age. I have similar hopes that Islam will again come to the rescue, even Baghdad specifically, which we've nicknamed Algebra City ("we" the gnu math teachers). > And because I am satisfied it does, I don't feel the need for banners of > any kind, for armies or - I would have thought - for confrontations. > So for you, just having a sensible position is the end of it, hey? Like, "the USA, IF using computer-controlled voting, THEN should have the source code be public and the process transparent." A sensible position no? So there's no fight shaping up, no battle lines to be drawn? I make sense, so now I get to go home and take bath and watch TV? > So I have always been confused why such an idea would meet with *any* > resistance on a list such as this. It has from day one. Which has > always been a clue to me that I had in some sense entered Chinatown, in > arriving here. I'm one of the very few on this list with a history of teaching pre-college age students full time for a living (which is not how I'm living today -- but I still work with the K-12ers, not just the 13-16ers (meaning 4 years after high school)). You also seem to shy away from focusing on children, just want to make sure the Disneys stay out of it somehow. The "resistance" on this list I think has mostly to do with the "not my area of expertise" syndrome i.e. "I want to have expert status in my field, and one way I get that is by deferring to experts in *other* fields -- the golden rule." People who don't properly defer to experts, when on expert turf, are considered arrogant. "You must take your hat off in the presence of kings" is how no one says it anymore, but many still mean it through various social cues. > No - it ain't the Media Lab. > > It is modest. It is unconnected with Revelation, New Ages, and Second > Comings. It brings us to no new dimensions. It actually brings no new > great amount of stature to the geeks of the world, or to the software > industry. > > It must be on the right track. > > Art It wsa "on the right track" thirty years ago when people like Alan Kay first started taking this position. You've apparently added nothing, and now can't understand why anyone would be committing combat troops to the arena, since for you "making sense" is the end of the game, rather than its beginning. Kirby From ajsiegel at optonline.net Sat Sep 16 17:51:22 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 16 Sep 2006 11:51:22 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> Message-ID: <450C1D7A.10001@optonline.com> kirby urner wrote: > On 9/16/06, Arthur wrote: > >> I am trying to say that some integration of algorithmics into required >> math education is eminently sensible. > > > As stated, that's too watered down to make a difference I should > think. Of course math education centers around algorithmics to some > degree, but does that entail any use of a programming language that > executes electronically? Absolutely it does. My recommendation happens to be one called Python. > I'm satisfied that it does to. But this position made a lot of sense > several decades ago (nothing new in your view) and *still* most kids > get little if any exposure to computer programming *except* through > the CS door in college. I don't require that my views represent anything new. That's a harder task than I am prepared to try to handle, under this Sun. And my point exactly, in many ways. > So for you, just having a sensible position is the end of it, hey? > > Like, "the USA, IF using computer-controlled voting, THEN should have > the source code be public and the process transparent." A sensible > position no? So there's no fight shaping up, no battle lines to be > drawn? > > I make sense, so now I get to go home and take bath and watch TV? It is necessary, though not sufficient. You tend to fail on the necessary part. And as you know, I am not simply a passive observer to the scene. I - like everyone - have my motives. I would indeed like something like PyGeo, source code and all, to be something accessible to a decent range of folks. I need help. > You also seem to shy away from focusing on children, just want to make > sure the Disneys stay out of it somehow. I am just more cautious about what I say in regard to the education of children. I understand less. I know I understand less, I say I understand less, but I am unconvinced I understand less than the folks who claim to understand more. > People who don't properly defer to experts, when on expert turf, are > considered arrogant. "You must take your hat off in the presence of > kings" is how no one says it anymore, but many still mean it through > various social cues. Who are the kinds here??? The geeks??? I defer to the educators. But they are being hounded by the geeks and software vendors, and can't be expected to cut through that noise at this particular moment of time. For good reason, they can't tell who to rely on at this point. If there is a moratorium on bold moves at this juncture, I support it. Eventually the din will quiet, and folks will begin to rely on their common sense again, God willing. > It wsa "on the right track" thirty years ago when people like Alan Kay > first started taking this position. Yeah. But Alan Kay is a schmuck. Art From john.zelle at wartburg.edu Sat Sep 16 17:52:54 2006 From: john.zelle at wartburg.edu (John Zelle) Date: Sat, 16 Sep 2006 10:52:54 -0500 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <450C0BB7.3080908@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> Message-ID: <200609161052.54535.john.zelle@wartburg.edu> On Saturday 16 September 2006 9:35 am, Arthur wrote: > John Zelle wrote: > >no, No, NO. I never said this. At least I didn't intend to. Please see the > > top of the message where I ask (virtually beg) for clarification on what > > you are saying. I thought you were saying that it's OK to teach > > programming in a math class, because it's being used there to motivate > > and illustrate mathematical concepts. > > no, No, No. ;) > > I am trying to say that some integration of algorithmics into required > math education is eminently sensible. Among other things is a statement > that computer programming - in some sense of the word - *is* for > everyone. Despite all my silliness and "freewheeling intelligence" > there being so much noise around these issues - I try to make sure any > position I might try to advocate passes some basic test against common > sense. I am satisfied this position does. > > And because I am satisfied it does, I don't feel the need for banners of > any kind, for armies or - I would have thought - for confrontations. > > So I have always been confused why such an idea would meet with *any* > resistance on a list such as this. It has from day one. Which has > always been a clue to me that I had in some sense entered Chinatown, in > arriving here. > > No - it ain't the Media Lab. > > It is modest. It is unconnected with Revelation, New Ages, and Second > Comings. It brings us to no new dimensions. It actually brings no new > great amount of stature to the geeks of the world, or to the software > industry. > > It must be on the right track. And I can't see how any reasonable person could be against that, which I why I thought you were saying something else ;-). By all means, let's agree that teaching some programming as part of math is a sensible enterprise. But that's not happening at the moment, at least not around here. I don't see this as a reason to denigrate the computer scientists who are trying to teach "intro to programming" courses as another entry point into this important mathematical domain. If the students have not yet learned programming but have already learned basic algebra, then an introduction to programming seems the next logical step. There is no conspiracy of CS academia to keep programming out of the secondary schools. College CS programs are just dealing with the situation on the ground as we find it. Let me add just one more thought before signing off on this thread permanently. This undercurrent of "introduction to programming" as somehow being a poor way to teach programming is still bothering me. It _is_ true that mathematics is all about algorithms and CS has undeniable mathematical roots. But the vast history of mathematics is mostly about developing and using notations that are for use by humans (with some obvious attempts at mechanization along the way). The arrival on the scene of the modern general purpose computer is quite new. It seems to me there is still room for teaching math as math and treating the translation of mathematical techniques and algorithms into a fully formal system (a programming language) as a somewhat more specialized kind of mathematics, a subfield in its own right. I'm not arguing that it's the right or wrong thing from a practical perspective, I'm just saying it's not patently ridiculous. I am always suspicious of gurus who argue that there is "one true curriculum." It always seems to me that they are quick to dismiss any course that doesn't contain their pet topic(s) as a waste of time. I can't even count now the number of times that I've been told my education was useless because it didn't include X, where X is some fashionable topic. Yet, my useless education has been incredibly valuable and worthwhile to me. In my mind, there are so many meaningful and valuable things to learn, that we can't possibly begin to pack them all into a single universal curriculum. Once you accept that premise, you realize the important thing is that students are learning _something_. If students are learning mathematical and scientific reasoning, they'll be able to apply those skills to pick up whatever specialized knowledge they need later. So if current math teachers are uncomfortable with teaching programming, I've go no problems with them teaching some math that they do know well and can communicate their passion for. And before I get boxed into another corner where I am not standing, I am not saying that "reasoning skills" are all that matter and that's what we should teach. I don't think those skills can be taught, per se. They are acquired through the process of learning about something. You can't reason deeply without some deep knowledge. My point is that there are lots of great things to learn about that will help develop those skills. I happen to believe a good CS program rooted in programming is one example of a fantastic curriclum for doing this. But of course, I'm self-serving in thinking that. I continue to be part of the vast conspiracy... --John -- John M. Zelle, Ph.D. Wartburg College Professor of Computer Science Waverly, IA john.zelle at wartburg.edu (319) 352-8360 From ajsiegel at optonline.net Sat Sep 16 18:20:17 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 16 Sep 2006 12:20:17 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609161052.54535.john.zelle@wartburg.edu> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> <200609161052.54535.john.zelle@wartburg.edu> Message-ID: <450C2441.9080706@optonline.com> John Zelle wrote: >>It is modest. It is unconnected with Revelation, New Ages, and Second >>Comings. It brings us to no new dimensions. It actually brings no new >>great amount of stature to the geeks of the world, or to the software >>industry. >> >>It must be on the right track. >> >> > >And I can't see how any reasonable person could be against that, which I why I >thought you were saying something else ;-). By all means, let's agree that >teaching some programming as part of math is a sensible enterprise. But >that's not happening at the moment, at least not around here. > In this incedible din, we can locate something that all reasonable people can agree about, and which is not being done - around here either. Ok. What's the plan? Who begins to take responsibility? > I don't see >this as a reason to denigrate the computer scientists who are trying to >teach "intro to programming" courses as another entry point into this >important mathematical domain. > I assure you I was trying to do no such thing.. I in fact am simply listening, and feeling that talents are being wasted, that college professors of CS should not be burderened with what would be sensibly thought of - in other fields - as remedial work. >Let me add just one more thought before signing off on this thread >permanently. This undercurrent of "introduction to programming" as somehow >being a poor way to teach programming is still bothering me. > I said that, yes. But not, I think, in the way that you heard it. I think, again, that the introduction to programming at a college level should be an introduction to programming, not remedial mathematics. Art From kirby.urner at gmail.com Sat Sep 16 19:35:58 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 16 Sep 2006 10:35:58 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <200609161052.54535.john.zelle@wartburg.edu> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> <200609161052.54535.john.zelle@wartburg.edu> Message-ID: On 9/16/06, John Zelle wrote: > > It must be on the right track. > > And I can't see how any reasonable person could be against that, which I why I > thought you were saying something else ;-). By all means, let's agree that > teaching some programming as part of math is a sensible enterprise. But > that's not happening at the moment, at least not around here. I don't see > this as a reason to denigrate the computer scientists who are trying to > teach "intro to programming" courses as another entry point into this > important mathematical domain. If the students have not yet learned > programming but have already learned basic algebra, then an introduction to > programming seems the next logical step. There is no conspiracy of CS > academia to keep programming out of the secondary schools. College CS > programs are just dealing with the situation on the ground as we find it. > > Let me add just one more thought before signing off on this thread > permanently. I wish you wouldn't do that, as one of the more thoughtful voices on edu-sig. But I'm sure you have your reasons. Also, "this thread" is no longer what's in the subject line. We're back to the broad spectrum. There should be no permanent signing off, unless you're leaving edu-sig entirely (in which case, I'm sorry). > mechanization along the way). The arrival on the scene of the modern general > purpose computer is quite new. It seems to me there is still room for > teaching math as math and treating the translation of mathematical techniques > and algorithms into a fully formal system (a programming language) as a > somewhat more specialized kind of mathematics, a subfield in its own right. I don't think "subfield" is the right word, as CS *originates* a lot of content, formalisms, algorithms, you name it. It's not "monkey see monkey do" vis-a-vis the mathematicians and their "parent" discipline. The lineage should have a better self image. Knuth's volumes assures that it will, if it doesn't already. > specialized knowledge they need later. So if current math teachers are > uncomfortable with teaching programming, I've go no problems with them > teaching some math that they do know well and can communicate their passion > for. I think this kind of relaxed approach does to little to factor in the fact of doors slamming shut because opportunities were not offered. Students who would have loved math, had the pedagogy been up to date (as in "uses a computer language") instead hate it. I've lost count of the number of times people have come up to me after a talk and said something like "if math had been taught *like this* I might have stuck with it." There's a trade off with the passage of time, regarding how much dead weight the curriculum can support. "Just focus on whatever you're good at and teach that" doesn't seem a recipe for high standards. Where's the motivation to keep up to date, even within one's own chosen specialty? > for doing this. But of course, I'm self-serving in thinking that. I continue > to be part of the vast conspiracy... > > --John I go back to the sports metaphor. What keeps football players in shape? Coaches for sure, but also playing other teams. There's competition and a way to measure skills. This team is weak on defense, strong on passing -- whatever (I'm not a huge football fan in this chapter, so I won't extend this metaphor much further). How is it that CS faculties measure themselves, or the discipline? Kay kept bringing this up ("low pass filter" talk) in a broader sense: how shall we measure quality? I'm not saying I want to go back to gladiators in the coliseum. But I do think we should be serious about addressing shortcomings and need mechanisms for keeping in shape, whoever "we" may be. Don't use war metaphors if you don't want to. Just recognize that humanity isn't getting a free ride on Spaceship Earth -- there's a lot of work that needs doing, or preventable disasters await. Bernie Gunn, the New Zealand geochemist, tells me that most young scientists he sees don't know how to use their computers except to do emails and office type stuff. Programming is beyond their ken. And yet geochemistry is dying for lack of strong number crunching. This pattern gets repeated. If one feels flooded by incompetent graduates, there's a problem somewhere. College profs love to complain about the quality of incoming freshman (I'm not saying you personally do this a lot), but is that where the quality concerns end? In part it's just a matter of world view. I think humans should have ended starvation as a major cause of death by this time. Some progress has been made, but the fact that in 2006 we've betraying so much past positive futurism, the sincere hopes and dreams of so many hard workers, now gone, is not a trivial matter for me. I wake up every morning apologizing to the dead for our grave incompetence and moronic idiocy. I ask for the strength to be less of a moron today than I was yesterday. I know this is just my Fuller School training coming through, not necessarily relevant to other schools' agendas. Write it off a jihad if you wish, but I'm not going to stop recruiting, trying to get more students to take their role seriously, when it comes to making this a better world. Kirby From kirby.urner at gmail.com Sat Sep 16 19:52:00 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 16 Sep 2006 10:52:00 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <450C1D7A.10001@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> <450C1D7A.10001@optonline.com> Message-ID: On 9/16/06, Arthur wrote: > Absolutely it does. My recommendation happens to be one called Python. So Python wins another fan. > I don't require that my views represent anything new. That's a harder > task than I am prepared to try to handle, under this Sun. You've arrived at a position some have struggled to advance for decades, inventing whole curricula, languages, environments. And now that you're here, you pick fights with the champions of the very position you've come to (very late in the game). > > Like, "the USA, IF using computer-controlled voting, THEN should have > > the source code be public and the process transparent." A sensible > > position no? So there's no fight shaping up, no battle lines to be > > drawn? By the way: if I see a liberal arts USA-based faculty that *doesn't* take a position (one way or another) on whether USA public voting should be open source, if computerized, I ask students to seriously consider not considering that school. A USA-based CS faculty that takes no position on this key issue of our time (important elections just weeks out), involving computers, and yet pretends to teach computer science, is just printing diplomas not worth the paper, in my book. I encourage any grads of that school to ask for a refund, given the extreme social irresponsibility of its curriculum. > > I make sense, so now I get to go home and take bath and watch TV? > > > It is necessary, though not sufficient. > > You tend to fail on the necessary part. > In what way? > And as you know, I am not simply a passive observer to the scene. I - > like everyone - have my motives. I would indeed like something like > PyGeo, source code and all, to be something accessible to a decent range > of folks. That's done. It's on SourceForge. Mission accomplished. > I need help. > If you've taken the position that computer programming should be a part of everyday math class, prepare to be (a) ignored and/or (b) trammeled. Alan Kay fought this battle for years, from many fronts, and hasn't overcome the resistence. Why do you think you'll have a chance? Especially given you fight the more effective warriors (ineffectively and obscurely, but in ways that stroke your own ego). > > You also seem to shy away from focusing on children, just want to make > > sure the Disneys stay out of it somehow. > > I am just more cautious about what I say in regard to the education of > children. I understand less. I know I understand less, I say I > understand less, but I am unconvinced I understand less than the folks > who claim to understand more. You want it both ways. You want to both defer, and be listened to. And all because you taught yourself How to Program late in lafe. Whoopie do. > > People who don't properly defer to experts, when on expert turf, are > > considered arrogant. "You must take your hat off in the presence of > > kings" is how no one says it anymore, but many still mean it through > > various social cues. > > Who are the kinds here??? The geeks??? I'm told by private email that I'm being disrespectful to my betters, because they're big name college professors and I'm just this nobody geek. I won't take my hat off in the presence of my betters, and that offends people. > I defer to the educators. But they are being hounded by the geeks and > software vendors, and can't be expected to cut through that noise at > this particular moment of time. For good reason, they can't tell who to > rely on at this point. If there is a moratorium on bold moves at this > juncture, I support it. I do not defer to educators. They've let us down. Geeks are generally young and hungry to advance their careers and have no time for deep level questioning. Not many battle-hardened warriors join our cause, and education remains terrible. Everyone whines about it, points the finger. But the *real work* doesn't get done, because playing politics is easier. > > Eventually the din will quiet, and folks will begin to rely on their > common sense again, God willing. > Such a pathetic little hope, it seems to me. You'll be buried, another foot soldier. "He was right" will be your epitaph. > > It wsa "on the right track" thirty years ago when people like Alan Kay > > first started taking this position. > > Yeah. But Alan Kay is a schmuck. > > Art What do you know? Precious little. You're a proud little man, not yet effective at anything. Kirby From ajsiegel at optonline.net Sat Sep 16 20:08:27 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 16 Sep 2006 14:08:27 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> <450C1D7A.10001@optonline.com> Message-ID: <450C3D9B.1040803@optonline.com> kirby urner wrote: > > In what way? Many. many. See this post. See most of your posts. You are about as Full(er) of yourself as anyone I have ever encountered. You in fact hold a candle to Alan Kay. One of us *does* need to go away. How about this time its you. Art > From kirby.urner at gmail.com Sat Sep 16 20:44:26 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 16 Sep 2006 11:44:26 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <450C3D9B.1040803@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> <450C1D7A.10001@optonline.com> <450C3D9B.1040803@optonline.com> Message-ID: > One of us *does* need to go away. > > How about this time its you. > > > Art OK, I'll lurk for awhile, see what this group's like without my barrage of input. Not signing off though. I can be an effective activist without offending poor little Arthur and his delicate Pyego. Kirby From ajsiegel at optonline.net Sat Sep 16 20:49:18 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 16 Sep 2006 14:49:18 -0400 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <200609131331.09497.john.zelle@wartburg.edu> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> <450C1D7A.10001@optonline.com> <450C3D9B.1040803@optonline.com> Message-ID: <450C472E.90301@optonline.com> kirby urner wrote: > > OK, I'll lurk for awhile Aaah.... thank you Mr. Urner. And if things go relatively quiet here as result, a few announcements here and there, and ask for help on this or that, sounds fine. You and I have had 5 years to cover our respective territories. It will give me a chance to test my theory that I am really quite a sweety pie, unprovoked. Art From jasonic at nomadics.org Sat Sep 16 20:50:15 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sat, 16 Sep 2006 20:50:15 +0200 Subject: [Edu-sig] Wikimania 2006>> please stop squabbling now and listen up !!! Message-ID: <450C4767.7060604@nomadics.org> Jimbo Wales keynote http://www.supload.com/listen?s=SI0OG2vN04i Lawrence Lessig http://video.google.com/videoplay?docid=-1926631993376203020&hl=en "..the 20th century was very wierd" Wikimania 2006 Archives [Mp3s Google videos ++] http://wikimania2006.wikimedia.org/wiki/Archives have a good weekend Jason From lavendula6654 at yahoo.com Mon Sep 18 07:03:36 2006 From: lavendula6654 at yahoo.com (Elaine) Date: Sun, 17 Sep 2006 22:03:36 -0700 (PDT) Subject: [Edu-sig] Python class at Foothill College Message-ID: <20060918050336.56811.qmail@web31704.mail.mud.yahoo.com> If you would like to learn Python, Foothill College in Los Altos Hills, CA is offering a course starting Mon. evening, 25 Sept. The course is designed for students who are already familiar with some type of programming. Here is the course description: CIS 68K "INTRODUCTION TO PYTHON PROGRAMMING" 5 Units This course will introduce students to the Python language and environment. Python is a portable, interpreted, object-oriented programming language that is often compared to Perl, Java, Scheme and Tcl. The language has an elegant syntax, dynamic typing, and a small number of powerful, high-level data types. It also has modules, classes, and exceptions. The modules provide interfaces to many system calls and libraries, as well as to various windowing systems(X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. Such extension modules can define new functions and variables as well as new object types. Four hours lecture, four hours terminal time. If you would like to sign up for the class, please register beforehand by going to: http://www.foothill.fhda.edu/reg/index.php If you have questions, you can contact the instructor at: haightElaine at foothill.edu Thanks! -Elaine Haight __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From hughstewart at optushome.com.au Mon Sep 18 02:27:45 2006 From: hughstewart at optushome.com.au (Hugh Stewart) Date: Mon, 18 Sep 2006 10:27:45 +1000 Subject: [Edu-sig] wikibooks Message-ID: <001801c6dab9$430761c0$d400a8c0@co3041095a> Hi All, The following site maybe of interest: http://en.wikibooks.org/wiki/Wikibooks:Computing_department Hugh -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060918/92153cd6/attachment.html From kirby.urner at gmail.com Thu Sep 21 01:40:39 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 20 Sep 2006 16:40:39 -0700 Subject: [Edu-sig] The fate of raw_input() in Python 3000 In-Reply-To: <450C472E.90301@optonline.com> References: <7.0.1.0.0.20060913091559.050c1998@mapledesign.co.uk> <45096DE0.8070104@optonline.com> <200609141515.21552.john.zelle@wartburg.edu> <450C0BB7.3080908@optonline.com> <450C1D7A.10001@optonline.com> <450C3D9B.1040803@optonline.com> <450C472E.90301@optonline.com> Message-ID: On 9/16/06, Arthur wrote: > kirby urner wrote: > > > > > OK, I'll lurk for awhile > > Aaah.... > > thank you Mr. Urner. > Well, that was kinda boring. Guess everyone "has a life" outside of edu-sig. Surprise surprise. I almost broke down and but a fancy (blue) TI calculator for my daughter yesterday (while she was getting her teeth cleaned). But I ended up buying her Season V of Smallville instead (for $49.99), and came home nursing fantasies of making Python "the new kid on the block" in America's heartland. My latest strategy: keep harping on those Fractals. TIs can't do fractals except as lexical investigations (same as we do with generators), but in Python we have PIL. The big prejudice in math departments is still: if you don't do it in your head, it's not the hard stuff, and so they persist in underfunding the mathcasting industry. This all goes back to Bourbaki and the pendulum swing away from anything visual. Instead, it's all supposed to be algebraic formalisms, with nothing to "see" (it's no accident that "dark" and "cryptic" are in the same ballpark). Mandelbrot, also French, is well aware of his historic catalyzing function, in helping the pendulum come back the other way. And by extension, he's helping the computer scientists (fractals first showed up on CRTs at IBM), proving to parents and students alike that you just *can't do* contemporary 21st century math, if you skimp on the hardware (the software is of course free). Kirby Related posts: http://mybizmo.blogspot.com/2006/09/focal-points.html http://mathforum.org/kb/message.jspa?messageID=5153234&tstart=0 From ajsiegel at optonline.net Thu Sep 21 15:23:00 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 21 Sep 2006 09:23:00 -0400 Subject: [Edu-sig] Playing games Message-ID: <45129234.6020403@optonline.com> From an article referenced (critically) in todays planet.python.org """ Do the universities provide for society the intellectual leadership it needs or only the training it asks for? Traditional academic rhetoric is perfectly willing to give to these questions the reassuring answers, but I don't believe them. By way of illustration of my doubts, in a recent article on "Who Rules Canada?", David H. Flaherty bluntly states "Moreover, the business elite dismisses traditional academics and intellectuals as largely irrelevant and powerless." So, if I look into my foggy crystal ball at the future of computing science education, I overwhelmingly see the depressing picture of "Business as usual". The universities will continue to lack the courage to teach hard science, they will continue to misguide the students, and each next stage of infantilization of the curriculum will be hailed as educational progress. I now have had my foggy crystal ball for quite a long time. Its predictions are invariably gloomy and usually correct, but I am quite used to that and they won't keep me from giving you a few suggestions, even if it is merely an exercise in futility whose only effect is to make you feel guilty. """ Austin, 2 December 1988 prof. dr. Edsger W. Dijkstra Department of Computer Sciences The University of Texas at Austin Austin, TX 78712-1188 USA Then from: http://www.microsoft.com/presspass/features/2005/sep05/09-12CSGames.mspx *""" Support Includes Lobbying, Sponsorships and Enhanced Development Tools * Microsoft?s and MSR?s efforts to promote new instructional methods and rebuild enrollment in computer science programs go far beyond the RFP awards. In addition to funding, proponents of game-related instruction say they need help changing perceptions about computer games, particularly among veteran computer science faculty who never played computer games when they were growing up. Microsoft and MSR have sought to take a leadership role in these efforts by promoting potential applications for serious games and lobbying government, academia and business about the benefits of game-related instruction in computer science, Nordlinger says. """ As usual in these discussions, the Microsoft stance relies - at it s essence - on maintaining ambiguity about whether we are talking about playing games, or the demanding (I can't do it, for example) notion of writing them. And is in this respect is -at its essence - dishonest. They are indeed playing games. And mostly winning. Python??? The Scheme community seem to me to take something of a stance on these issues. Perhaps that stance is a __built-in__ to the language structure. Python is perhaps more flexible, perhaps multi-paradigm extends to these kinds of issues as well. The best I seem to be able to hope for as a member of the Python community is that it not become identified with a particular paradigm. To me we are due for a different kind of PyCon keynote speaker on the subject of technology and education, in the interest of balance. Perhaps a leading Schemer. Art From ajsiegel at optonline.net Thu Sep 21 17:05:34 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 21 Sep 2006 11:05:34 -0400 Subject: [Edu-sig] Playing games In-Reply-To: <45129234.6020403@optonline.com> References: <45129234.6020403@optonline.com> Message-ID: <4512AA3E.4040403@optonline.com> Arthur wrote: >Then from: > >http://www.microsoft.com/presspass/features/2005/sep05/09-12CSGames.mspx > >*""" > > How the game is being played: More from the same source: """ Studies funded by the National Science Foundation have found that the student retention rate in introductory level computer science classes that use Alice nearly double ? from 47 percent to 88 percent -- among students who are traditionally at risk of dropping out of computer science. On average, these students earned B-level grades, higher than the C-level grades earned by at-risk students who didn?t use Alice. """ "Studies funded by the National Science Foundation" sounds substantial. But of course we are talking about studies about the effectiveness of Alice by the creator of Alice. I suspect all is absolutely consistent - the studies have *no* scientific merit. The answer the studies give is absolutely determined by the question it asks. Is it the right question?????? Science again is the victim. Difficult to maintain by relentless assault on the Pausch world view under the circumstances. Through a serendipitous connection, I have some information he is recently battling serious health issues. He is a young man. I hope the information is mistaken, and if correct - wish him well in this battle. Truly. Art >Support Includes Lobbying, Sponsorships and Enhanced Development Tools * > >Microsoft?s and MSR?s efforts to promote new instructional methods and >rebuild enrollment in computer science programs go far beyond the RFP >awards. > >In addition to funding, proponents of game-related instruction say they >need help changing perceptions about computer games, particularly among >veteran computer science faculty who never played computer games when >they were growing up. > >Microsoft and MSR have sought to take a leadership role in these efforts >by promoting potential applications for serious games and lobbying >government, academia and business about the benefits of game-related >instruction in computer science, Nordlinger says. > >""" > >As usual in these discussions, the Microsoft stance relies - at it s >essence - on maintaining ambiguity about whether we are talking about >playing games, or the demanding (I can't do it, for example) notion of >writing them. And is in this respect is -at its essence - dishonest. > >They are indeed playing games. > >And mostly winning. > >Python??? > >The Scheme community seem to me to take something of a stance on these >issues. Perhaps that stance is a __built-in__ to the language structure. > >Python is perhaps more flexible, perhaps multi-paradigm extends to these >kinds of issues as well. > >The best I seem to be able to hope for as a member of the Python >community is that it not become identified with a particular paradigm. >To me we are due for a different kind of PyCon keynote speaker on the >subject of technology and education, in the interest of balance. Perhaps >a leading Schemer. > >Art > > > > >_______________________________________________ >Edu-sig mailing list >Edu-sig at python.org >http://mail.python.org/mailman/listinfo/edu-sig > > > > From kirby.urner at gmail.com Thu Sep 21 18:12:27 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 21 Sep 2006 09:12:27 -0700 Subject: [Edu-sig] Playing games In-Reply-To: <45129234.6020403@optonline.com> References: <45129234.6020403@optonline.com> Message-ID: On 9/21/06, Arthur wrote: > As usual in these discussions, the Microsoft stance relies - at it s > essence - on maintaining ambiguity about whether we are talking about > playing games, or the demanding (I can't do it, for example) notion of > writing them. And is in this respect is -at its essence - dishonest. Our 23 year old Saturday Academy is making good use of Game Maker, which about programming games, then playing them, the programming some more. We have more sections devoted to Game Maker (based on student demand) than anything else in the catalog. http://www.gamemaker.nl/ http://www.saturdayacademy.org/classes/ViewAll.aspx This same software is now a focus when teachers gather under the auspices of Software Association of Oregon. Here's an example of a Silicon Forest executive teaching Game Maker in his spare time (also Ruby on Rails): http://pdx.techevents.info/codecamp/2/PresenterInfo.aspx?ID=91a87e81-7ac5-4784-9099-63b2576868b4 Game Maker features a lot of drag and drop, but there's lexical (so-called line by line) programming involved as well. From the demos I've seen, it does build computer scientist type thinking in its students. We've discussed Game Maker on this list before e.g.: http://mail.python.org/pipermail/edu-sig/2004-November/004123.html BTW, here's a link to my class (Pythonic mathematics): http://www.saturdayacademy.org/classes/ClassDetail.aspx?id=7571 Kirby From ajsiegel at optonline.net Thu Sep 21 18:33:21 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 21 Sep 2006 12:33:21 -0400 Subject: [Edu-sig] Playing games In-Reply-To: References: <45129234.6020403@optonline.com> Message-ID: <4512BED1.1090505@optonline.com> kirby urner wrote: > http://www.gamemaker.nl/ The first sentence at the site: """ Game Maker Do you want to develop computer games without spending countless hours learning how to become a programmer? """ You insist on promoting the ambiguity. Its creator apparently does not. Art From kirby.urner at gmail.com Thu Sep 21 18:45:07 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 21 Sep 2006 09:45:07 -0700 Subject: [Edu-sig] Playing games In-Reply-To: <4512AA3E.4040403@optonline.com> References: <45129234.6020403@optonline.com> <4512AA3E.4040403@optonline.com> Message-ID: What stood out for me in the Dijkstra talk is something he fights against: (2) the subculture of the compulsive programmer, whose ethics prescribe that one silly idea and a month of frantic coding should suffice to make him a life-long millionaire Now consider this paragraph from Microsoft: """ The percentage of incoming undergraduates indicating plans to major in computer science declined by more than 60 percent between fall 2000 and 2004, and is now 70 percent lower than its peak in the early 1980s. And the number of women and minority students, while low in the past, has declined at an even faster rate, educators say. """ In my view, just knowing how to code is no ticket to great wealth, but a prerequisite for being considered modestly well educated. That doesn't mean you can code giant applications all by yourself, just that you can whip out a few functions to do this or that, maybe find the 100th fibonacci number is if your life depended on it (a simulation). If the overarching goal is "making money" then I can't think of *any* promising career for ya, other than pyramid schemer (already a very crowded field). Where I find a lot of the best software engineering talent is at places like FreeGeek, where making money is not the issue. It's having very high level skills that gets the girlz or boyz to admire ye. Flashing cash is ho hum. Know Perl 6 in your sleep, hit an SQL backend while turning a somersault in bash, and you're in the money (the currency of the realm -- respect, juice, winning and intimidation through POSIX kung fu). The Pycon keynote I look forward to hearing (or even giving) someday, would be something about Python in the Peace and/or Marine Corps. That's how I'll know we've really advanced our cause. Some local colleges and universities won't ever change as it's *already* expected that their "best students" will go elsewhere for an education (like Ramanujan had to go to England for some stupid reason). Kirby From ajsiegel at optonline.net Thu Sep 21 18:57:10 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 21 Sep 2006 12:57:10 -0400 Subject: [Edu-sig] Playing games In-Reply-To: References: <45129234.6020403@optonline.com> <4512AA3E.4040403@optonline.com> Message-ID: <4512C466.6040204@optonline.com> kirby urner wrote: > The Pycon keynote I look forward to hearing (or even giving) someday, > would be something about Python in the Peace and/or Marine Corps. Perhaps my son will be better qualified - having left yesterday for a 2 year stint in the Peace Corps. He will teach on a Pacific Island at a vocational center - no electriity. I made sure he was aware of the OLPC program before he left. Even told him that after he understaood the goals of his program, and his students,that if he concluded that access to computers would be relevant, that I would make inquiries to see if the OLPC folks might be wanting test sites. What I didn't tell him was that some fancy-dancing might be necessary. That the loud-mouth on edu-sig teeing off on the Big Boys at MIT must have been a different Arthur Siegel. ;) My expectation is that he will conclude that OLPC is not relevant to his mission. But he will be the expert in the field, not I. Art From kirby.urner at gmail.com Thu Sep 21 18:59:43 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 21 Sep 2006 09:59:43 -0700 Subject: [Edu-sig] Playing games In-Reply-To: <4512BED1.1090505@optonline.com> References: <45129234.6020403@optonline.com> <4512BED1.1090505@optonline.com> Message-ID: On 9/21/06, Arthur wrote: > The first sentence at the site: > > """ > Game Maker > Do you want to develop computer games without spending countless hours > learning how to become a programmer? > """ > > You insist on promoting the ambiguity. > What ambiguity? If it doesn't take "countless hours" so much the better. Relative to the traditional curriculum, ours has less patience for infinity. > Its creator apparently does not. > > Art Back to your cryptic witticisms I see. I can't turn these into a real coherent position for ya. Kirby From ajsiegel at optonline.net Thu Sep 21 19:47:45 2006 From: ajsiegel at optonline.net (Arthur) Date: Thu, 21 Sep 2006 13:47:45 -0400 Subject: [Edu-sig] Playing games In-Reply-To: References: <45129234.6020403@optonline.com> <4512BED1.1090505@optonline.com> Message-ID: <4512D041.5050907@optonline.com> kirby urner wrote: > Back to your cryptic witticisms I see. I can't turn these into a real > coherent position for ya. It will apparently never be coherent to you. You seem to require a kind of literalism that I think is not to the point. Try this: Computer technology, in general and in education, has not changed a basic realty of economics - you get what you pay for. You get from "writing" computer games by drag and drop exactly what you get. And stripped of pretensions, there is absolutely nothing wrong with that is. It *is* better than nothing, *but* worse than something more than that. The discussion of where it is reasonable to settle under particular circumstances is a reasonable discussion. A discussion geared toward surrounding something like GameMaker with pretense is not. I think there is much of that going on, so I find it necessary to claw at that pretense. Otherwise I would not. Art From kirby.urner at gmail.com Thu Sep 21 20:35:45 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 21 Sep 2006 11:35:45 -0700 Subject: [Edu-sig] Playing games In-Reply-To: <4512D041.5050907@optonline.com> References: <45129234.6020403@optonline.com> <4512BED1.1090505@optonline.com> <4512D041.5050907@optonline.com> Message-ID: On 9/21/06, Arthur wrote: > A discussion geared toward surrounding something like GameMaker with > pretense is not. > > I think there is much of that going on, so I find it necessary to claw > at that pretense. Otherwise I would not. > > Art On the other hand, I'm highly doubtful that you've downloaded GameMaker and assessed it. I said it had line by line coding aspects, I forget how round trip. Having a GUI palette add lines somewhere, or using a slots metaphor to tweak properties (e.g. font color, caption), is as much a skill as freehanding. You need exposure to both. I'm not one of these "all terminal window all the time" types (on the contrary, my Python shell beginning presumes a GUI, with either Tk or wx under the hood). I think you're angling to find a weakness in Game Maker that isn't there, then you pretend you've found it, based on ad copy or web promos, and sound off about how you know of a better way. Count me a skeptic. Your style of analysis quickly demeans and cheapens honest and high quality contributions to the field based on cursory analysis. I'm dubious Pygeo will survive its author for that reason. Kirby From jasonic at nomadics.org Fri Sep 22 00:43:42 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Fri, 22 Sep 2006 00:43:42 +0200 Subject: [Edu-sig] O'Reilly Code Search [beta] Message-ID: <4513159E.4080308@nomadics.org> ..search all the code examples in every O'Reilly book http://labs.oreilly.com/code/ Jason From kirby.urner at gmail.com Fri Sep 22 01:24:48 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 21 Sep 2006 16:24:48 -0700 Subject: [Edu-sig] O'Reilly Code Search [beta] In-Reply-To: <4513159E.4080308@nomadics.org> References: <4513159E.4080308@nomadics.org> Message-ID: Code search on Fibonacci... ...we *finally* get to some Pythonic fibonaccis, after slogging through lots of Java, on page 6: http://labs.oreilly.com/search.xqy?q=fibonacci&t=code&syn=true&page=6 (but is the page reference static?) """ >From Python Cookbook Chapter 17: Algorithms By Alex Martelli and David Ascher ? Published July 01, 2002 ? Statistics Python 2.2's generators provide a wonderful way to implement infinite sequences, given their intrinsically lazy-evaluation semantics... """ Plus there's the recursive version with memory cache (same authors). Both algorithms are more interesting than Java's for-loopers, which are likewise trivial in Python. Kirby On 9/21/06, Jason Cunliffe wrote: > ..search all the code examples in every O'Reilly book > > http://labs.oreilly.com/code/ > > Jason > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From kirby.urner at gmail.com Fri Sep 22 01:45:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 21 Sep 2006 16:45:25 -0700 Subject: [Edu-sig] Fixing a typo (Jerritt Collord) Message-ID: I especially don't like when I spell peoples' names wrong. Me two years ago: """ When I taught Adventures in Open Source with Jerritt Collard this summer, we started with TCP/IP, explaining how it sits on top of Ethernet, the difference between TCP and UDP, the concept of ports, the concept of daemons connected to these ports, such as Apache on port 80. """ http://mail.python.org/pipermail/edu-sig/2004-November/004108.html That's Jerritt Collord (lord, not lard), and former head of http://linuxfund.org/. Kirby From jasonic at nomadics.org Fri Sep 22 02:18:19 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Fri, 22 Sep 2006 02:18:19 +0200 Subject: [Edu-sig] O'Reilly Code Search [beta] In-Reply-To: References: <4513159E.4080308@nomadics.org> Message-ID: <45132BCB.8050303@nomadics.org> no need for finallys... try this: http://labs.oreilly.com/search.xqy?t=code&q=Fibonacci+python ------ Jason From jasonic at nomadics.org Fri Sep 22 00:55:15 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Fri, 22 Sep 2006 00:55:15 +0200 Subject: [Edu-sig] Physics of Superheroes 1 - Death of Gwen Stacy Message-ID: <45131853.6000204@nomadics.org> http://www.youtube.com/watch?v=kuVpwjYgvgg ------ Jason From mpaul at bhusd.k12.ca.us Sat Sep 23 11:25:31 2006 From: mpaul at bhusd.k12.ca.us (Michel Paul) Date: Sat, 23 Sep 2006 02:25:31 -0700 Subject: [Edu-sig] creating an interface vs. using one Message-ID: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> A couple of days ago I attempted to describe to my math dept chair the elegant way you can zip two lists in Python to create a set of ordered pairs. Her response was dismissive, saying you can do the same thing on a TI using lists. Her point was that we were each doing the same thing in a different way. My response was uhhh ... no, there's a huge difference. My point was, and always has been, that thinking in a language is not the same thing as, is deeper than, using a gadget. What follows is the body of an email I sent her. I'd welcome any feedback to help develop my argument. Also - our school is building a new math/science/technology center. I see Python as an excellent kind of thing to get people to explore. I attended the SciPy conference at CalTech in August, just to see what kind of things were going on, and it was amazing. But no one at school seems to care. It's weird. I feel like I've found this treasure, and I keep saying to people, "Hey! I've found this treasure!" But no one cares. It's so weird. A big problem that I see is the focus on the glamour of tech toys. Our district is willing to spend money on SmartBoards, and these are really cool things, but there's so much else they just aren't paying attention to. The focus is on getting gadgets. But my point is that education should be more about language and the articulation of ideas. So here is what I sent my dept chair. Thank you for any suggestions to help get across to my dept what kinds of things COULD be done - I'm still finding out about Python myself. - Michel ============================================================ Here are some points I think are important: Using calculators vs. thinking in a language are NOT two different ways of ?doing the same thing?. What is the ?thing?? True, if you?re creating a list of ordered pairs from two lists, you can ?do it? on a TI or in a Python shell, but the difference in the two approaches is immense. On a TI you have to learn where the buttons are. In a Python shell, all you need to learn is Algebra: >>> x = [0, 2, 4, 6, 8, 10] >>> y = [9, 7, 5, 3, 1, -1] >>> myListOfPoints = zip(x, y) So far, the only syntax issue beyond Algebra is ?zip?. >>> myListOfPoints [(0, 9), (2, 7), (4, 5), (6, 3), (8, 1), (10, -1)] What I?m showing here is precisely what you would get INTERACTIVELY in a Python shell session. What you type at the >>> prompt simply gets evaluated. It?s SO easy! There?s a tremendous unity here ? not a bunch of different buttons. If a student can articulate their thoughts in Algebra, then they can articulate their thoughts in Python. You don?t need yet ANOTHER piece of software to record and display the ?history? of button presses. The symbols hang together NATURALLY because of MEANING. That is important! It really is. Look how simple this is: >>> def f(x): return 2.0*x + 3.0 >>> def g(x): return (x - 3.0) / 2.0 >>> f(5) 13.0 >>> g(13) 5.0 >>> f(g(7)) 7.0 >>> g(f(7)) 7.0 Again, WYSIWYG! That?s it! I?ve defined a function and its inverse, and I?ve shown their composition. The only syntax required other than Algebra is ?def? and ?return?. Sure, you could ?do it? on a TI as well, but it would be kind of clunky. What you see above, you can do on the fly. The argument that not every kid can have access to a computer is, first, false, and second, irrelevant. It?s like using a SmartBoard ? the kids don?t have to have SmartBoards at their seats. That isn?t the point. The teacher uses the SmartBoard as a canvas on which to create artworks of ideas. A record can be kept of what was created. Same with Python. It blends in perfectly with this SmartBoard kind of world. With a language that looks like Algebra, the kids don?t have to learn how to ?use? a piece of software or a gadget. They can take the concepts home with them and download Python for free. You can put Python code on the school web page, and they can download it and use it directly. No special hookups needed. No gadgets. Nothing to buy ? other than the computer, but these days, computers are as common as TV sets. You CANNOT articulate OO on a TI. You can?t create a class. Most people don?t care, right now, because they don?t even know what that means, but I can guarantee you that there?s a bunch of scientists at places like CalTech who DO care! Mathematics is already object-oriented, and the curriculum of the future will need to make students conscious of that fact. OO is not something just for CS majors! Seriously. Language transcends device, because a language can create a device. Devices don?t create language. What a language is is deeper than what a gadget is. With just a slight bit of tweaking, the language of Algebra can become a computational language! That?s really cool. I just don?t get why more people don?t care about that, at least at a high school level. Because, again, I can guarantee you that there are a lot of scientists at CalTech, and JPL out there who DO care and who agree with me that THAT is what 21st century math should be about! Not USING interfaces ? articulating them! From ajudkis at verizon.net Sat Sep 23 13:20:49 2006 From: ajudkis at verizon.net (Andy Judkis) Date: Sat, 23 Sep 2006 07:20:49 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) References: Message-ID: <001d01c6df02$530198a0$6501a8c0@Gandalf> My daughter is a senior, taking AB Calc and struggling with it somewhat. I'm becoming alarmed as I realize how little mathematical intuition she has developed. She used to be good at it, but now she really needs the calculator to tell her how numbers and functions behave. Very frustrating to both of us -- she's come to hate math, and I haven't been able to get her to consider that it is worthwhile, builds strong mental muscles, etc. And she's an intellectual kid, well above average in math (if SATs are any guide) and in a pretty good school system. So what are most kids getting? I think all the points you make are very thoughtful and interesting to me, but I doubt many HS math teachers are going to have any sense -at all- of what OO means, let alone why it matters. I'm a tech guy, not a math guy, and I don't quite understand where OO fits into math education, but I believe you when you say it does. A few concrete examples would help me understand, and might help make your case. Let me reveal my ignorance (there's a lot of it!) and ask if Python has a way to plot a function that's as easy as on the TI. Without that I think it's going to be a very tough sale, unfortunately. Finally, let me say that I really appreciate the tone of your message. Your sincerity and humility really comes through. I'm sure you're going to continue to encounter plenty of frustration with the math faculty but I think you will make some headway, and inspire a lot of kids too. Cheers, Andy Judkis Oceanport, NJ From ajsiegel at optonline.net Sat Sep 23 16:31:22 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 23 Sep 2006 10:31:22 -0400 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> Message-ID: <4515453A.9030009@optonline.com> Michel Paul wrote: > >Language transcends device, because a language can create a device. Devices don?t create language. What a language is is deeper than what a gadget is. With just a slight bit of tweaking, the language of Algebra can become a computational language! That?s really cool. I just don?t get why more people don?t care about that, at least at a high school level. Because, again, I can guarantee you that there are a lot of scientists at CalTech, and JPL out there who DO care and who agree with me that THAT is what 21st century math should be about! Not USING interfaces ? articulating them! > > Praise be. Art From ajsiegel at optonline.net Sat Sep 23 16:35:36 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 23 Sep 2006 10:35:36 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <001d01c6df02$530198a0$6501a8c0@Gandalf> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> Message-ID: <45154638.5000501@optonline.com> Andy Judkis wrote: >Let me reveal my ignorance (there's a lot of it!) and ask if Python has a >way to plot a function that's as easy as on the TI. Without that I think >it's going to be a very tough sale, unfortunately. > There are many ways to do that in Python, i.e. a good number of available libraries supporting such functionality, simply, elaborately and inbetween. It does require that "import" move up the food chain a bit. Art From radenski at chapman.edu Sat Sep 23 17:10:47 2006 From: radenski at chapman.edu (Radenski, Atanas) Date: Sat, 23 Sep 2006 08:10:47 -0700 Subject: [Edu-sig] creating an interface vs. using one References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> Message-ID: From: edu-sig-bounces at python.org on behalf of Michel Paul > Also - our school is building a new math/science/technology center. I see Python as an excellent kind of thing to get > people to explore. I attended the SciPy conference at CalTech in August, just to see what kind of things were going on, > and it was amazing. But no one at school seems to care. It's weird. I feel like I've found this treasure, and I keep saying to > people, "Hey! I've found this treasure!" But no one cares. It's so weird. Michel, I do not think it is weird that your school does not care about Python. It is natural. People normally do *not* care about answers to questions that they never asked. Simply offering something that you believe is cool (Python in this case) is not going to work with adults/administrators. I would suggest that you think of a concrete problem that your department chair is facing. She certainly has some problems to solve as a chair and she certainly would be open to possible solution. Is retention a problem? Is diminishing student interest a problem? You have to identify her problems and then try to convince her how and why Python can be the solution to those problems. Just believing that Python is cool, beautiful, and useful may not do it. But addressing some real concrete needs of your school can do it. They may get quite interested. Show them how Python is a solution to their problem(s). Atanas From mpaul at bhusd.k12.ca.us Sat Sep 23 17:34:21 2006 From: mpaul at bhusd.k12.ca.us (Michel Paul) Date: Sat, 23 Sep 2006 08:34:21 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) Message-ID: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F20@MAIL.bhusd.k12.ca.us> > I don't quite understand where OO fits into math education Fractions can be an example. A fraction is not "really" a decimal. Students treat fractions as though they were unfinished division problems, but a fraction is a two-part data structure, just like complex numbers. In terms of data structures, fractions and complex numbers are similar kinds of things. Students already study how to algebraically represent the behaviors of fractions and complex numbers. With a little tweaking, they could be creating classes. Complex numbers already exist in Python, of course, but I think it would be a very good thing for math students to create their own complex number class. Kirby has great examples of what you can do with a rational number class. There could also be line classes, parabola classes, etc. The typical stuff that we have kids learn in the Algebras could be put into OO terms. A line object could tell you its x an y intercepts, could tell you if it contained a given point, could tell you its point of intersection with another line object, etc. >Let me ... ask if Python has a way to plot a function >that's as easy as on the TI. Without that I think >it's going to be a very tough sale, unfortunately. Yeah, that's the main wall I run into. If there was an EASY way - something as easy as turtle - that would be excellent. Does anyone on the list know of a simple to use Python function plotter? Something you could just hand over to beginners? I know Kirby has done stuff with ray tracing - but I still have to learn about that. The kinds of things you CAN graph with Python are amazing, 3-d and so on, but it requires a bit of effort. Something I saw at the SciPy conference was SAGE - Symbolic Algebra Geometry Explorer. It was really amazing. It's something I'd like to explore more, but using it requires a little knowledge of Unix. You can't just hand it over to a typical student or teacher and have them run with it - requires some tinkering. - Michel -----Original Message----- From: edu-sig-bounces+mpaul=bhusd.k12.ca.us at python.org on behalf of Andy Judkis Sent: Sat 09/23/06 04:20 AM To: edu-sig at python.org Subject: Re: [Edu-sig] creating an interface vs. using one (Michel Paul) My daughter is a senior, taking AB Calc and struggling with it somewhat. I'm becoming alarmed as I realize how little mathematical intuition she has developed. She used to be good at it, but now she really needs the calculator to tell her how numbers and functions behave. Very frustrating to both of us -- she's come to hate math, and I haven't been able to get her to consider that it is worthwhile, builds strong mental muscles, etc. And she's an intellectual kid, well above average in math (if SATs are any guide) and in a pretty good school system. So what are most kids getting? I think all the points you make are very thoughtful and interesting to me, but I doubt many HS math teachers are going to have any sense -at all- of what OO means, let alone why it matters. I'm a tech guy, not a math guy, and I don't quite understand where OO fits into math education, but I believe you when you say it does. A few concrete examples would help me understand, and might help make your case. Let me reveal my ignorance (there's a lot of it!) and ask if Python has a way to plot a function that's as easy as on the TI. Without that I think it's going to be a very tough sale, unfortunately. Finally, let me say that I really appreciate the tone of your message. Your sincerity and humility really comes through. I'm sure you're going to continue to encounter plenty of frustration with the math faculty but I think you will make some headway, and inspire a lot of kids too. Cheers, Andy Judkis Oceanport, NJ _______________________________________________ Edu-sig mailing list Edu-sig at python.org http://mail.python.org/mailman/listinfo/edu-sig From andre.roberge at gmail.com Sat Sep 23 17:40:02 2006 From: andre.roberge at gmail.com (Andre Roberge) Date: Sat, 23 Sep 2006 12:40:02 -0300 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F20@MAIL.bhusd.k12.ca.us> References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F20@MAIL.bhusd.k12.ca.us> Message-ID: <7528bcdd0609230840v210c8398hb5d82d8b75ec7d11@mail.gmail.com> On 9/23/06, Michel Paul wrote: > >Let me ... ask if Python has a way to plot a function > >that's as easy as on the TI. Without that I think > >it's going to be a very tough sale, unfortunately. > > Yeah, that's the main wall I run into. If there was an EASY way - something as easy as turtle - that would be excellent. Does anyone on the list know of a simple to use Python function plotter? Something you could just hand over to beginners? === For a simple function plotter, you might want to have a look at Crunchy (crunchy.sourceforge.net). Work on Crunchy has stopped for the past month or so (and will most likely not resume for another month). Specifically, within Crunchy: go to menu Tutorials -> Using Crunchy. Then, on the left, select Graphics: Plotting. Andr? From derrick at csociety.org Sat Sep 23 17:48:06 2006 From: derrick at csociety.org (derrick) Date: Sat, 23 Sep 2006 11:48:06 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <45154638.5000501@optonline.com> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> Message-ID: <45155736.2060202@csociety.org> Arthur wrote: >Andy Judkis wrote: > > > >>Let me reveal my ignorance (there's a lot of it!) and ask if Python has a >>way to plot a function that's as easy as on the TI. Without that I think >>it's going to be a very tough sale, unfortunately. >> >> >> > >There are many ways to do that in Python, i.e. a good number of >available libraries supporting such functionality, simply, elaborately >and inbetween. > > It does require that "import" move up the food chain a bit. > > I've been thinking about plotting too, and found matplotlib/pylab (http://matplotlib.sourceforge.net/) to be extremely helpful for my plotting needs. if you've ever used matlab plotting, you'll be right at home. i really appreciated the simplicity and functionality of this python plotting package. I also appreciated the examples (http://matplotlib.sourceforge.net/screenshots.html) on their website i could copy, paste and run on my computer and the ability to save in so many different formats. are there other plotting packages you all have used and liked? keeping to the topic of this posting, TI calcs are nice, but all through my undergraduate life, the professors and ta's kept asking why you would want to use a calculator when you could use a computer. looking back, it makes me think how much time some of my profs spent breaking incoming freshman from using calculators and encouraging computers and programming, even in excel and matlab because it was more powerful. and after they finally got you to that point, they would again force you to write out your programs so you would spend time thinking about what you were doing instead of an immediate guess and check strategy. eventually some of my classes said no calculators or computers on exams. i wonder how many people still use their ti calc in their job. i lost mine sophomore year, but i couldn't imagine pushing plot buttons on it, i think it was much more enjoyable to use it like a gameboy or to play pong. dsk From kirby.urner at gmail.com Sat Sep 23 18:19:05 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 23 Sep 2006 09:19:05 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F20@MAIL.bhusd.k12.ca.us> References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F20@MAIL.bhusd.k12.ca.us> Message-ID: On 9/23/06, Michel Paul wrote: > I know Kirby has done stuff with ray tracing - but I still have to learn about that. The > kinds of things you CAN graph with Python are amazing, 3-d and so on, but it requires > a bit of effort. My most recent module along these lines used VPython for more interactive plotting. But it was a very primitive beginning (no tic marks!). However, I *do* like keeping an full XYZ apparatus in the picture, even if the Z axis is suppressed (not drawn), meaning students can rotate their Cosine Wave or Parabola, zoom in and out, study it from all angles. I call the Beyond Flatland, and it's a leading wedge between wimpy calculators on the one hand, and real math on the other. http://www.4dsolutions.net/ocn/graphics/cosines.png VPython module used to plot the above Cosine Wave: http://mail.python.org/pipermail/edu-sig/2006-September/007150.html My suggestion: develop a culture of students contributing to a school Library of Code (a local Vaults of Parnassus if you will). There's something cool about finding your best friends older sister's name on some plotting module you're using, knowing she wrote it two years ago. Give kids a sense of contributing to their peers downline in other words. You can do this with TI programs, true, but the TI language is really black boxy from what little I've seen of it, nor general purpose. Basic numeracy is *not* just about number crunching, but about symbol processing more generally. Out here in the Silicon Forest, it's less of a tough sell, to get Python in the schools: http://mathforum.org/kb/thread.jspa?threadID=1451732&tstart=0 Kirby From kirby.urner at gmail.com Sat Sep 23 18:29:03 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 23 Sep 2006 09:29:03 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> Message-ID: On 9/23/06, Michel Paul wrote: > The only syntax required other than Algebra is "def" and "return". > Here I'd part company a bit and point out that "algebra" is not so nailed down as a namespace that we can't consider "def" and "return" excluded. As we phase in machine executable languages, we'll lose some of our fascination with specific lexemes used to characterize "algebra" in the mass published tree killer textbook era. I think we'll be gradually phasing in OO to make algebra feel more like an extensible type system, with a Vector as class template, lots of instance vectors. Polynomial template, instance polynomials (including NCLB Polynomial)... Python won't be the only notational advance. Mathematica has provided more backward compatability with the ancient stuff, so math profs who need more hand-holding are free to shell out for a crutch. Related reading: http://www.4dsolutions.net/ocn/oopalgebra.html Kirby From kirby.urner at gmail.com Sat Sep 23 18:35:13 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 23 Sep 2006 09:35:13 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> Message-ID: > Here I'd part company a bit and point out that "algebra" is not so > nailed down as a namespace that we can't consider "def" and "return" > excluded. > Got ensnared in my own double-negative, but I think you get my point: just look at J (don't show your chairperson though, too scary) -- a math notation, pure and simple, with a proud heritage as a chalkboard notation at one point (alluding to the APL lineage), but now fully mature, fully machine executable. I'm really glad that you're seeing TIs as the bottleneck. Texas Instruments has single-handedly set math education back a decade, giving other countries a really good opportunity to pass us by. I'm confidant we'll be using more Python than TIs in Algebra City, as the dust settles and the universities get new toys. Kirby From DSayre at wiley.com Sat Sep 23 18:41:33 2006 From: DSayre at wiley.com (DSayre at wiley.com) Date: Sat, 23 Sep 2006 12:41:33 -0400 Subject: [Edu-sig] Daniel Sayre is out of the office. Message-ID: I will be out of the office starting 09/23/2006 and will not return until 10/09/2006. I will be travelling on business in Hong Kong, Macau and India and will have limited access to email. I will do my best to reply to your message in a timely fashion. Should you need prompt assistance, please contact my assistant, Lindsay Murdock, at lmurdock at wiley.com. Best wishes, Dan From ajsiegel at optonline.net Sat Sep 23 20:30:42 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 23 Sep 2006 14:30:42 -0400 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> Message-ID: <45157D52.3070207@optonline.com> kirby urner wrote: >On 9/23/06, Michel Paul wrote: > >>he only syntax required other than Algebra is "def" and "return". >> >> > >Here I'd part company a bit and point out that "algebra" is not so >nailed down as a namespace that we can't consider "def" and "return" >excluded. > > We might all take the opportunity to pontificate with respect to our own particular visions, down to every detail. Mine is one where the significance of the relationship of the circumference of a circle to its diameter is taught and understood in PI squared different ways, including - importantly - as history. The calculation to x digits being the least important or interesting - something a mere machine can accomplish with a little help. But such a discussion is perhaps not exactly to the point right here and now. no further reading required. Art From kirby.urner at gmail.com Sat Sep 23 21:05:54 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 23 Sep 2006 12:05:54 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: <45157D52.3070207@optonline.com> References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> <45157D52.3070207@optonline.com> Message-ID: On 9/23/06, Arthur wrote: > > > We might all take the opportunity to pontificate with respect to our own > particular visions, down to every detail. > Yes, no shortage of disk space, even with the new Google facility in The Dalles not completely operational yet. > Mine is one where the significance of the relationship of the > circumference of a circle to its diameter is taught and understood in PI > squared different ways, including - importantly - as history. The Historically, the use of the word "squared" in this context contains a whiff of a moronic past, when the orthonormalists monopolized world affairs. Fortunately those days are long over (and yes, we still say "squared" when referring to 2nd powering, in the interests of backward compatibility). > calculation to x digits being the least important or interesting - > something a mere machine can accomplish with a little help. > > But such a discussion is perhaps not exactly to the point right here and > now. > > no further reading required. > > Art > You and I don't read the same history books apparently. Kirby From jasonic at nomadics.org Sat Sep 23 21:31:44 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sat, 23 Sep 2006 21:31:44 +0200 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> <45157D52.3070207@optonline.com> Message-ID: <45158BA0.1050204@nomadics.org> umm... I have 'thin' and out-of date background in Math. I am however curious about contexts in which one finds: Pi cubed, Pi to the 4 th Pi to the N etc.. Suggestions examples googlinks welcome. Thanks Jason From da.ajoy at gmail.com Sat Sep 23 21:50:29 2006 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Sat, 23 Sep 2006 14:50:29 -0500 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: Message-ID: <451549B5.26115.47F981B0@da.ajoy.gmail.com> On 23 Sep 2006 at 12:00, edu-sig-request at python.org wrote: > You CANNOT articulate OO on a TI. You can?t create a class. Most people > don?t care, right now, because they don?t even know what that means, but I > can guarantee you that there?s a bunch of scientists at places like > CalTech who DO care! Mathematics is already object-oriented, and the > curriculum of the future will need to make students conscious of that > fact. OO is not something just for CS majors! Seriously. I don't believe this to be true. 2+3 What I see about from a mathematical point of view is two things, and an operator that acts upon those things. The OO point of view is that 2 is an object and that the plus sign is a method of this object and that 3 is the argument of this method. The OO point of view is *nothing like* the mathematical point of view. In math, operators and numbers are two different things and the former don't "belong" to later. Daniel From ajsiegel at optonline.net Sat Sep 23 22:18:40 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 23 Sep 2006 16:18:40 -0400 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: <451549B5.26115.47F981B0@da.ajoy.gmail.com> References: <451549B5.26115.47F981B0@da.ajoy.gmail.com> Message-ID: <451596A0.6040306@optonline.com> Daniel Ajoy wrote: >In math, operators and numbers are two different things and the >former don't "belong" to later. > > To make Kirby's point, I guess it depends on how one defines "in math". "Math is" cannot reasonably be defined to exclude how math is, in many cases, practiced. And math *is* practiced within the OO paradigm. Extensively, expansively, etc. Having gotten to where it has in the struggle for the survival of ideas, one needs to presume it has some inherent strength - of the kind that needs to be respected. But where Kirby seems to see a movement from one paradigm to another as progress, I seem to prefer to see an inclusive expansion of the existing paradigm as such. Art From ajsiegel at optonline.net Sat Sep 23 22:22:59 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 23 Sep 2006 16:22:59 -0400 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> <45157D52.3070207@optonline.com> Message-ID: <451597A3.6070103@optonline.com> kirby urner wrote: > Historically, the use of the word "squared" in this context contains a > whiff of a moronic past, when the orthonormalists monopolized world > affairs. Fortunately those days are long over (and yes, we still say > "squared" when referring to 2nd powering, in the interests of backward > compatibility). Kirby I am trying not to let you provoke me into the bad guy. You make it sooooooooooooooooooooo hard. My disdain for Kirby == Kirby's disdain for the past. But I thought I would not have to articulate that for a time, because I thought he was going away for a time. Is that time past?? Art From kirby.urner at gmail.com Sat Sep 23 22:35:01 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 23 Sep 2006 13:35:01 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: <451549B5.26115.47F981B0@da.ajoy.gmail.com> References: <451549B5.26115.47F981B0@da.ajoy.gmail.com> Message-ID: > The OO point of view is *nothing like* the mathematical point > of view. > The OO point of view is just another mathematics. This idea that there is *one* mathematical point of view is just a holdover from the way you were taught in school i.e. by authoritarians with something to prove. > In math, operators and numbers are two different things and the > former don't "belong" to later. > > Daniel But per my http://www.4dsolutions.net/ocn/oopalgebra.html with embedded rotated by quaternions XYZ cube (yes, wrote it myself -- better programmer than Arthur, duh), that's going to change. What you thought mathematics was, based on what your teachers taught you, is not the obstacle you might have supposed. Kirby From jasonic at nomadics.org Sat Sep 23 22:23:29 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sat, 23 Sep 2006 22:23:29 +0200 Subject: [Edu-sig] The Tao of Math Message-ID: <451597C1.9000905@nomadics.org> http://www.gt-cybersource.org/Record.aspx?NavID=2_0&rid=11273 From ajsiegel at optonline.net Sat Sep 23 23:05:57 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 23 Sep 2006 17:05:57 -0400 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <451549B5.26115.47F981B0@da.ajoy.gmail.com> Message-ID: <4515A1B5.6030706@optonline.com> kirby urner wrote: >But per my http://www.4dsolutions.net/ocn/oopalgebra.html with >embedded rotated by quaternions XYZ cube (yes, wrote it myself -- >better programmer than Arthur, duh), that's going to change. > > Deconstructing Kirby is best left to Kirby, I guess. Art From ajsiegel at optonline.net Sat Sep 23 23:39:23 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 23 Sep 2006 17:39:23 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <000601c6df24$0d2d5810$6501a8c0@Gandalf> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> Message-ID: <4515A98B.5020801@optonline.com> Andy Judkis wrote: > In my humble opinion, there would have to be a "Math teacher" > distribution of Python that has this stuff built in before most > teachers would even consider trying it. Is there such a thing already? If I had a leadership role in the Python community I would be attempting to direct energies toward overcoming the(very real) issues related to making something very much like VPython part of the standard distribution. Its utility is general enough, its footprint small enough, and its spirit as a visual extension to Python on point enough - that the effort would IMO be well worth it. I know Dethe has made some discouraging efforts. And perhaps more radical surgery than Dethe has tried to undertake is necessary to make it adequately crossplatform. But in the scheme of levels of difficulty, and with the resources available to the community, I can't believe this is not doable - were some sense of importance attached to it. Consider - even Kirby begins to understand its potential.. ;) Art From DSayre at wiley.com Sat Sep 23 23:42:04 2006 From: DSayre at wiley.com (DSayre at wiley.com) Date: Sat, 23 Sep 2006 17:42:04 -0400 Subject: [Edu-sig] Daniel Sayre is out of the office. Message-ID: I will be out of the office starting 09/23/2006 and will not return until 10/09/2006. I will be travelling on business in Hong Kong, Macau and India and will have limited access to email. I will do my best to reply to your message in a timely fashion. Should you need prompt assistance, please contact my assistant, Lindsay Murdock, at lmurdock at wiley.com. Best wishes, Dan From jasonic at nomadics.org Sat Sep 23 23:56:28 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sat, 23 Sep 2006 23:56:28 +0200 Subject: [Edu-sig] Distros you can love {was>> Re: creating an interface vs. using one (Michel Paul)} In-Reply-To: <4515A98B.5020801@optonline.com> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> Message-ID: <4515AD8C.2040309@nomadics.org> ... yeah Why oh why is there not a cool Edu-Sig distro ? Or perhaps there is and I'm out-of date.. Anyway, a juicy current example of open-source creative packaging for Pythmathemeduticians to emulate is perhaps Dyne:Bolic http://www.dynebolic.org/ And if there is not yet the distro of your dreams, please step up and specify what would be in it... Thanks Jason From jasonic at nomadics.org Sun Sep 24 00:14:34 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sun, 24 Sep 2006 00:14:34 +0200 Subject: [Edu-sig] Harmonographs + curves Message-ID: <4515B1CA.8080709@nomadics.org> see http://local.wasp.uwa.edu.au/~pbourke/curves/harmonograph/ and http://local.wasp.uwa.edu.au/~pbourke/curves/ From ajsiegel at optonline.net Sun Sep 24 00:55:33 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 23 Sep 2006 18:55:33 -0400 Subject: [Edu-sig] Harmonographs + curves In-Reply-To: <4515B1CA.8080709@nomadics.org> References: <4515B1CA.8080709@nomadics.org> Message-ID: <4515BB65.9040104@optonline.com> Jason Cunliffe wrote: >see > >http://local.wasp.uwa.edu.au/~pbourke/curves/harmonograph/ > >and > >http://local.wasp.uwa.edu.au/~pbourke/curves/ > > then there is Xah. Do you know of him? A plague, to many. But I have always admired his Visual Dictionary work. http://xahlee.org/SpecialPlaneCurves_dir/specialPlaneCurves.html Note, in particular, that the dictionary is ordered with historical reference. I am willing to accept it as my own perculiar sensibility, but math has its meaning to me largely through a view of its historical unfolding. I think it is a sensiblity that deserves a seat at the table. Art From ajsiegel at optonline.net Sun Sep 24 01:19:47 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 23 Sep 2006 19:19:47 -0400 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> <45157D52.3070207@optonline.com> Message-ID: <4515C113.8090000@optonline.com> kirby urner wrote: > Historically, the use of the word "squared" in this context contains a > whiff of a moronic past, when the orthonormalists monopolized world > affairs. Dante reserved the first circle of Hell?Limbo?for the virtuous Pagan, the poets who were born and died before the Coming. No such luck with you? Down to the moronic sewer with them all?? Art From jasonic at nomadics.org Sun Sep 24 01:36:48 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sun, 24 Sep 2006 01:36:48 +0200 Subject: [Edu-sig] Harmonographs + curves In-Reply-To: <4515BB65.9040104@optonline.com> References: <4515B1CA.8080709@nomadics.org> <4515BB65.9040104@optonline.com> Message-ID: <4515C510.8070107@nomadics.org> > http://xahlee.org/SpecialPlaneCurves_dir/specialPlaneCurves.html ah Yes thanks for the reminder. Paul Bourke's web site is beautiful monster it turns out. Available on DVD [tempting:-)] http://local.wasp.uwa.edu.au/~pbourke/index.html > Note, in particular, that the dictionary is ordered with historical > reference. I am willing to accept it as my own perculiar sensibility, > but math has its meaning to me largely through a view of its > historical unfolding. I think it is a sensiblity that deserves a seat > at the table. Remember the superb IBM Eames timeline poster of History of Mathematics ? I am *big* fan of timelines, sequences, historical mappings and visualizations. Believe in the benefits of easily accessible multiple views of life. Historical ordering always welcome. However I take a rather cineaste approach to history, enjoying to explore a molecular triad HMD of intertwined representations [realities]. History / Memory / Documentary which translate respectively approximately as: H - recorded cited sequence M - experienced associative sequence [personal and collective] D - editorialized selective sequence sort or the 3 dimensions of a Sierpinski cube which reveal and obscure truth in equal measure What's this got to do with Python? Well some years ago I worked on trying to implement these 3 views [History Memory Documentary] as a set of functions. First in Mathematica rendering timeline datasets as 3D models. Then later using these structures at the heart of a Zope-based collaboration server with special emphasis on sequencing visual and time-based media. I was not a nearly strong enough programmer at the time to pull it off. I fairly drowned in documentation trying to keep up with Zope which changed significantly daily then [c1999-2000]. But I had a lot of fun combining mxDateTime and SeqDict http://www.egenix.com/files/python/mxDateTime.html http://home.arcor.de/wolfgang.grafen/Python/Modules/Modules.html I'd like to get back into that soon and give it a fresh go. Jason From jasonic at nomadics.org Sun Sep 24 01:49:57 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sun, 24 Sep 2006 01:49:57 +0200 Subject: [Edu-sig] Harmonographs + curves In-Reply-To: <4515C510.8070107@nomadics.org> References: <4515B1CA.8080709@nomadics.org> <4515BB65.9040104@optonline.com> <4515C510.8070107@nomadics.org> Message-ID: <4515C825.4040104@nomadics.org> http://local.wasp.uwa.edu.au/~pbourke/allpages.html From kirby.urner at gmail.com Sun Sep 24 02:36:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 23 Sep 2006 17:36:25 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: <4515C113.8090000@optonline.com> References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F1C@MAIL.bhusd.k12.ca.us> <45157D52.3070207@optonline.com> <4515C113.8090000@optonline.com> Message-ID: > Down to the moronic sewer with them all?? > > Art You're back to your cleverisms. I'll leave ya to 'em. Kirby From kirby.urner at gmail.com Sun Sep 24 03:24:43 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 23 Sep 2006 18:24:43 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <4515A98B.5020801@optonline.com> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> Message-ID: On 9/23/06, Arthur wrote: > If I had a leadership role in the Python community I would be attempting > to direct energies toward overcoming the(very real) issues related to > making something very much like VPython part of the standard distribution. So you're saying not VPython itself, but something like, even very much like. Coded in C++ again or what? You gotta plan, Mr. Leader? > Its utility is general enough, its footprint small enough, and its > spirit as a visual extension to Python on point enough - that the effort > would IMO be well worth it. I know Dethe has made some discouraging Worth what? Joining the graveyard of hardly anyone cares Library modules. Just kidding, a lot of it's useful. Every core needs an immediate heap, a junkyward if you will, with which to demonstrate the awesome powers of import. Beyond that, maybe Tim (the W3 Tim) is right: import should have some syntax like import http://4dsolutions.net/rbf.py, so you could just run 'em off the Internet. > efforts. And perhaps more radical surgery than Dethe has tried to > undertake is necessary to make it adequately crossplatform. But in the > scheme of levels of difficulty, and with the resources available to the > community, I can't believe this is not doable - were some sense of > importance attached to it. > > Consider - even Kirby begins to understand its potential.. ;) > > > Art I think I got it about VPython the moment I started using it (though I've come to appreciate it more over time, what with the stereo view option and all). Took me a lot longer to get over my bias against Pygeo (I didn't like that you'd hijacked and hacked an IDLE, but that's changed). If Python were basic infrastructure in schools, more'd have looked into it by now. But if course it isn't. TIs are. What I don't get is this mystical fascination some people have with the Standard Library. It becomes some kind of Quest to get one's little module blessed by Guido and inducted into this particular python.org motherlode (have some pity on 56Kers will ya?). Some of the best Python add-ons have been, are, and will be, not in the Standard Library. So what? Kirby From kirby.urner at gmail.com Sun Sep 24 04:27:26 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 23 Sep 2006 19:27:26 -0700 Subject: [Edu-sig] Distros you can love {was>> Re: creating an interface vs. using one (Michel Paul)} In-Reply-To: <4515AD8C.2040309@nomadics.org> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4515AD8C.2040309@nomadics.org> Message-ID: Interesting idea, to have a discussion list source a distro. Dunno if that's been done. But then, we're already unusual in being the focus of a PhD thesis. I do expect entrepeneurs will spin distros with custom demographics. Katrina Recovery Zone might be a distro (KRZ), complete with music theme tracks, film clips (first time you boot, check box if you don't want to keep seeing it). Curriculum, not just the distro, will center on community building, levees. Might partner with Dutch directly. Given our new open source business models, I know there's no permission needed premise, as long as GNU guidelines or whatever licensing is obeyed. Stray from the code, and you'll justifiably be challenged, but the code is already very liberal, so I don't see anything holding back the show in any legal sense. Not waiting for any green light from some powdered wig guy in a gown. Kirby On 9/23/06, Jason Cunliffe wrote: > ... yeah Why oh why is there not a cool Edu-Sig distro ? > Or perhaps there is and I'm out-of date.. Anyway, a juicy current > example of open-source creative packaging for Pythmathemeduticians to > emulate is perhaps Dyne:Bolic > > http://www.dynebolic.org/ > > And if there is not yet the distro of your dreams, please step up and > specify what would be in it... > > Thanks > Jason > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From ajsiegel at optonline.net Sun Sep 24 18:30:03 2006 From: ajsiegel at optonline.net (Arthur) Date: Sun, 24 Sep 2006 12:30:03 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> Message-ID: <4516B28B.7040107@optonline.com> kirby urner wrote: > What I don't get is this mystical fascination some people have with > the Standard Library. It becomes some kind of Quest to get one's > little module blessed by Guido and inducted into this particular > python.org motherlode (have some pity on 56Kers will ya?). > Not totally unsympathetic to that point of view. But perhaps - could it happen? - you are selling me short. Can we allow that we are in some sense at battle, and strategy is a OK. i.e. for anyone who thinks that Python's role is potentailly much more significant than as suburb of Squeakland. But that - things going as they are - it is likely to be overlooked more than it should be. In both our battles - yours against the TI calculator, and mine against the 3d Ninja Turtles - VPython-like functionality is essential. It demostrates to your Problems that we are working with something with out-of-the-box more power than what they are committed to, and demostrates to my Problems that, being committed to working with and teaching about abstraction, we are progressive in the tools we use to do so - could be doing EA huminoid avatars and anthromorphic turtles if we chose but choose not, because they are distractions in addressing, teaching and exploring the world of abstraction. Making both those statements by the inclusion of vpython-like functionality in the standard distribution is to me a business decision, and a good one. Art From mpaul at bhusd.k12.ca.us Sun Sep 24 18:47:13 2006 From: mpaul at bhusd.k12.ca.us (Michel Paul) Date: Sun, 24 Sep 2006 09:47:13 -0700 Subject: [Edu-sig] creating an interface vs. using one Message-ID: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> Yes, thank you. I have been reflecting on this, and so far I haven't been able to pin down a site specific issue that Python would clearly address. I should point out that I haven't been stifled in pursuing Python - I have been tolerated. I did have a small group of kids at the beginning of this semester with whom I planned to explore this stuff, but to balance out enrollment numbers they had to close either that class or the AP. Unfortunate, but I do know the kids liked Python. I do keep seeing ways in which Python would be more elegant and more powerful than a clunky interface, and I do see how exploring Python would address a lot of the very issues people have raised in pretentious brain-storming sessions about how we will use our new math/sci/tech building. The biggest issue that I keep finding myself drawn to is not site specific. I keep seeing the need for students to develop more number sense. The emphasis on statistics and the typical use of calculators, I believe, has created a general tendency among both students and teachers to regard numbers as "data". The statistical theme is important, but I think it's time to balance it out with a computational number-theoretic theme. I'm saying that numbers are not just data, they are data STRUCTURES. I think there should be more number theory in the math curriculum, and we could provide that beautifully with something like Python. But I will remain alert to site-specific issues that the use of Python could address. - Michel -----Original Message----- From: Radenski, Atanas [mailto:radenski at chapman.edu] Sent: Sat 09/23/06 08:10 AM To: Michel Paul; edu-sig at python.org Subject: RE: [Edu-sig] creating an interface vs. using one From: edu-sig-bounces at python.org on behalf of Michel Paul > Also - our school is building a new math/science/technology center. I see Python as an excellent kind of thing to get > people to explore. I attended the SciPy conference at CalTech in August, just to see what kind of things were going on, > and it was amazing. But no one at school seems to care. It's weird. I feel like I've found this treasure, and I keep saying to > people, "Hey! I've found this treasure!" But no one cares. It's so weird. Michel, I do not think it is weird that your school does not care about Python. It is natural. People normally do *not* care about answers to questions that they never asked. Simply offering something that you believe is cool (Python in this case) is not going to work with adults/administrators. I would suggest that you think of a concrete problem that your department chair is facing. She certainly has some problems to solve as a chair and she certainly would be open to possible solution. Is retention a problem? Is diminishing student interest a problem? You have to identify her problems and then try to convince her how and why Python can be the solution to those problems. Just believing that Python is cool, beautiful, and useful may not do it. But addressing some real concrete needs of your school can do it. They may get quite interested. Show them how Python is a solution to their problem(s). Atanas From jasonic at nomadics.org Sun Sep 24 18:58:25 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Sun, 24 Sep 2006 18:58:25 +0200 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <4516B28B.7040107@optonline.com> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> Message-ID: <4516B931.7050904@nomadics.org> > Making both those statements by the inclusion of vpython-like > functionality in the standard distribution is to me a business decision, > and a good one. > Well if you are looking for a good business decision then *please* specify and work to compile an uber-useful LiveCD Edu-Sig distro with all the math-edu-geo goodies... That way you avoid conflicts and friction. This distro is free to promote, develop and demonstrate a __range__ of tools covering a range of tastes, philosophies, needs and competences on one disk [package, torrent, ISO, pick your medium]. Install tested and run on existing 'puters [WinXp etc without any collateral damage] It can include brave new 21st century alternative OS curriculae. Then When If it is a obvious success, don't be surprised that the default standard distribution sensibly absorbs the relevant parts someday. Pioneers always lead administrations and institutions right? Jason From mpaul at bhusd.k12.ca.us Sun Sep 24 19:11:52 2006 From: mpaul at bhusd.k12.ca.us (Michel Paul) Date: Sun, 24 Sep 2006 10:11:52 -0700 Subject: [Edu-sig] creating an interface vs. using one Message-ID: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F21@MAIL.bhusd.k12.ca.us> >2+3 > >What I see from a mathematical point of view is two things, >and an operator that acts upon those things. What I see is a partition of the number 5. We commonly say that 2 + 3 "makes" 5, but I prefer to say that the number 5 has the property that it can be partitioned into a group of 2 and a group of 3. That it can be partitioned in this way is what we mean when we say that 2 + 3 == 5. Mathematically, 2 and 3 do not necessarily "turn into" 5, rather, a group of 5 already contains a group of 2 and a group of 3. The concept of an operator acting upon operands is something we develop later. It is also a fact that a group of 5 can be partitioned into a group of 2 and a group of 3 in 10 different ways. It would seem odd to say that these 10 different partitions into 2 and 3 each act to produce a different five, and it would also seem odd to say that these different partitions each act to produce the SAME 5. Rather, the one group of 5 can be partitioned in various ways. In a computational context it is true that 2 .__add__(3) creates a new object, 5, and this is sort of an interesting contrast: computation occurs in time and produces new data from old data, but many kinds of mathematical relations already exist as facts - they do not have to "happen". >The OO point of view is *nothing like* the mathematical point >of view. Numbers already are objects that have properties. They are abstract objects, sure, so you can't analyze them in physical or chemical terms - those aren't the kind of properties they have. A set of N things has geometric properties that are different from a set of N + 1 things. Object-oriented thinking doesn't always have to mean object-oriented PROGRAMMING. Object-oriented thinking already has a deep and rich history in mathematics. For Pythagoras and Plato, numbers were things in themselves, not just wisps in our mind, and I don't think Heisenberg was wrong to say things like QM vindicated Pythagoras. Thematically speaking, of course. What we have accomplished with our technology is to give object-oriented thinking computational power. We no longer have to perform computations - objects themselves can. >In math, operators and numbers are two different things and the >former don't "belong" to later. I see arithmetic statements composed of operators and operands as our descriptions of the ways in which numbers can be partitioned. A sum is the fact of a particular partition. A difference is a complementary partition. Products and quotients involve partitions containing equally sized parts. Our syntax of operators and operands arises later. Or, that's just how I'm able to make sense of things for myself. - Michel -----Original Message----- From: edu-sig-bounces at python.org on behalf of Daniel Ajoy Sent: Sat 09/23/06 12:50 PM To: edu-sig at python.org Subject: Spam: Re: [Edu-sig] creating an interface vs. using one On 23 Sep 2006 at 12:00, edu-sig-request at python.org wrote: > You CANNOT articulate OO on a TI. You can?t create a class. Most people > don?t care, right now, because they don?t even know what that means, but I > can guarantee you that there?s a bunch of scientists at places like > CalTech who DO care! Mathematics is already object-oriented, and the > curriculum of the future will need to make students conscious of that > fact. OO is not something just for CS majors! Seriously. I don't believe this to be true. 2+3 What I see about from a mathematical point of view is two things, and an operator that acts upon those things. The OO point of view is that 2 is an object and that the plus sign is a method of this object and that 3 is the argument of this method. The OO point of view is *nothing like* the mathematical point of view. In math, operators and numbers are two different things and the former don't "belong" to later. Daniel _______________________________________________ Edu-sig mailing list Edu-sig at python.org http://mail.python.org/mailman/listinfo/edu-sig From mpaul at bhusd.k12.ca.us Sun Sep 24 19:21:04 2006 From: mpaul at bhusd.k12.ca.us (Michel Paul) Date: Sun, 24 Sep 2006 10:21:04 -0700 Subject: [Edu-sig] creating an interface vs. using one Message-ID: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F23@MAIL.bhusd.k12.ca.us> Oh yeah - another idea that's been forming - I think an argument can be made for computational modeling to become part of the math/science curriculum. I keep reading articles about how science, particularly biology, is pushing math in new directions, and it seems to me that it's only a matter of time before the concept of creating computational models becomes part of what students learn to do in high school. I've put this idea out to the math and science depts. So far there simply has been no response. But I'm NOT going to shut up. : ) - Michel -----Original Message----- From: edu-sig-bounces at python.org on behalf of Michel Paul Sent: Sun 09/24/06 09:47 AM To: Radenski, Atanas; edu-sig at python.org Subject: Re: [Edu-sig] creating an interface vs. using one Yes, thank you. I have been reflecting on this, and so far I haven't been able to pin down a site specific issue that Python would clearly address. I should point out that I haven't been stifled in pursuing Python - I have been tolerated. I did have a small group of kids at the beginning of this semester with whom I planned to explore this stuff, but to balance out enrollment numbers they had to close either that class or the AP. Unfortunate, but I do know the kids liked Python. I do keep seeing ways in which Python would be more elegant and more powerful than a clunky interface, and I do see how exploring Python would address a lot of the very issues people have raised in pretentious brain-storming sessions about how we will use our new math/sci/tech building. The biggest issue that I keep finding myself drawn to is not site specific. I keep seeing the need for students to develop more number sense. The emphasis on statistics and the typical use of calculators, I believe, has created a general tendency among both students and teachers to regard numbers as "data". The statistical theme is important, but I think it's time to balance it out with a computational number-theoretic theme. I'm saying that numbers are not just data, they are data STRUCTURES. I think there should be more number theory in the math curriculum, and we could provide that beautifully with something like Python. But I will remain alert to site-specific issues that the use of Python could address. - Michel -----Original Message----- From: Radenski, Atanas [mailto:radenski at chapman.edu] Sent: Sat 09/23/06 08:10 AM To: Michel Paul; edu-sig at python.org Subject: RE: [Edu-sig] creating an interface vs. using one From: edu-sig-bounces at python.org on behalf of Michel Paul > Also - our school is building a new math/science/technology center. I see Python as an excellent kind of thing to get > people to explore. I attended the SciPy conference at CalTech in August, just to see what kind of things were going on, > and it was amazing. But no one at school seems to care. It's weird. I feel like I've found this treasure, and I keep saying to > people, "Hey! I've found this treasure!" But no one cares. It's so weird. Michel, I do not think it is weird that your school does not care about Python. It is natural. People normally do *not* care about answers to questions that they never asked. Simply offering something that you believe is cool (Python in this case) is not going to work with adults/administrators. I would suggest that you think of a concrete problem that your department chair is facing. She certainly has some problems to solve as a chair and she certainly would be open to possible solution. Is retention a problem? Is diminishing student interest a problem? You have to identify her problems and then try to convince her how and why Python can be the solution to those problems. Just believing that Python is cool, beautiful, and useful may not do it. But addressing some real concrete needs of your school can do it. They may get quite interested. Show them how Python is a solution to their problem(s). Atanas _______________________________________________ Edu-sig mailing list Edu-sig at python.org http://mail.python.org/mailman/listinfo/edu-sig From kirby.urner at gmail.com Sun Sep 24 21:36:15 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 24 Sep 2006 12:36:15 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> Message-ID: > I think there should be more number theory in the math curriculum, and we could > provide that beautifully with something like Python. > > But I will remain alert to site-specific issues that the use of Python could address. > > - Michel On the number theoretic front, once kids get it about __ribs__ and know they're able to overload __add__ and __mul__, we're ready for an abstract algebra unit. Define a Class of integer that adds and multiplies modulo some modulus N, which may be set as a class-level variable (inherited by all instances). Then use Guido's ultra-simple GCD function to generate the totatives of the same N, i.e. those positives < N with no factors in common. Here's the code: IDLE 1.2b2 >>> def gcd(a,b): while b: a, b = b, a%b return a >>> def totatives(n): return [k for k in range(1,n) if gcd(k,n)==1] >>> totatives(20) [1, 3, 7, 9, 11, 13, 17, 19] >>> totatives(12) [1, 5, 7, 11] You'll find that the totatives of 20, multiplied modulo 20, form an Abelian Group. This isn't too hard to model in Python. Just come up with a row-column multiplication table, maybe a literal XHTML table computed server side (that'd be one option). If N happens to be prime, then you get a Galois Field, i.e. you can bring __add__ into it, provided you now also have 0 (still excluded as a divisor). >>> class Modint(object): modulus = 20 def __init__(self, v): self.v = v % Modint.modulus def __mul__(self, other): return Modint(self.v * other.v) def __add__(self, other): return Modint(self.v + other.v) __rmul__ = __mul__ __radd__ = __add__ def __repr__(self): return "%s modulo %s" % (self.v, Modint.modulus) >>> numset = totatives(20) >>> group = [Modint(j) for j in numset] >>> table = [i*j for i in group for j in group] >>> table [1 modulo 20, 3 modulo 20, 7 modulo 20, 9 modulo 20, 11 modulo 20, 13 modulo 20, 17 modulo 20, 19 modulo 20, 3 modulo 20, 9 modulo 20, 1 modulo 20, 7 modulo 20, 13 modulo 20, 19 modulo 20, 11 modulo 20, 17 modulo 20, 7 modulo 20, 1 modulo 20, 9 modulo 20, 3 modulo 20, 17 modulo 20, 11 modulo 20, 19 modulo 20, 13 modulo 20, 9 modulo 20, 7 modulo 20, 3 modulo 20, 1 modulo 20, 19 modulo 20, 17 modulo 20, 13 modulo 20, 11 modulo 20, 11 modulo 20, 13 modulo 20, 17 modulo 20, 19 modulo 20, 1 modulo 20, 3 modulo 20, 7 modulo 20, 9 modulo 20, 13 modulo 20, 19 modulo 20, 11 modulo 20, 17 modulo 20, 3 modulo 20, 9 modulo 20, 1 modulo 20, 7 modulo 20, 17 modulo 20, 11 modulo 20, 19 modulo 20, 13 modulo 20, 7 modulo 20, 1 modulo 20, 9 modulo 20, 3 modulo 20, 19 modulo 20, 17 modulo 20, 13 modulo 20, 11 modulo 20, 9 modulo 20, 7 modulo 20, 3 modulo 20, 1 modulo 20] Thanks to Euler's Theorem, we know that a message sent into orbit part way (e), will decrypt once we come back around (e*d), modulo N. That's RSA in a nutshell: N is the public key modulus while e*d is one power beyond a phi power (name collision with golden mean) -- here phi means "number of totatives of N". d is of course the big secret, and only needs to be stored on the local machine i.e. you don't need to export it to a receiver (hence the term "public key" (everything you need is in the open, even the algorithm itself (patent expired))). Kirby From kirby.urner at gmail.com Sun Sep 24 21:55:09 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 24 Sep 2006 12:55:09 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <4516B28B.7040107@optonline.com> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> Message-ID: On 9/24/06, Arthur wrote: > In both our battles - yours against the TI calculator, and mine against > the 3d Ninja Turtles - VPython-like functionality is essential. It > demostrates to your Problems that we are working with something with > out-of-the-box more power than what they are committed to, and > demostrates to my Problems that, being committed to working with and > teaching about abstraction, we are progressive in the tools we use to do > so - could be doing EA huminoid avatars and anthromorphic turtles if we > chose but choose not, because they are distractions in addressing, > teaching and exploring the world of abstraction. > > Making both those statements by the inclusion of vpython-like > functionality in the standard distribution is to me a business decision, > and a good one. > > Art We simply disagree on strategy, and not by much. You focus on the python.org download or core + standard library as "the distro" whereas I'm thinking more in terms of a complete Linux or other operating system bundle (Microsoft not precluded from distros -- that's what the vendors do, e.g. HP includes Python as a part of its default XP distro, on Pavilions and such). I'm happy to have VPython in the distro (mix), I just don't think bloating the python.org install file is the way to go. Get a whole computer already outfitted, or rely on school IS (information services) to burn a Gold Disk locally, with everything the faculty has agreed is a keeper. Plus faculty gets to go out on the Internet for more experimental stuff. Vpython is not languishing in obscurity because it's not in the default installer. The barriers are more cultural than technical. Lots of schools have broadband and could be running Pygeo tomorrow if the admins were OK with it. But they're not, and not because of anything to do with Euclid or Klein, both already safely defanged and property of the Ivory Tower. But as I've said before, the whole culture of open source software is still eyed with suspicion, in part because local biz moguls have done their darnedest to make sure it's perceived as Communist or something else scary. I've fought that by reminding people that Snakes on a Plane are inherently even scarier yet i.e. we're capable of something more home grown (i.e. let's stop blaming the Russians for kwel). But that strategy only flies with some audiences. Anyway, I think I should come up with a PEP proposing we rename Standard Library to Forlorn Little Graveyard. Then people might refocus and stop treating it like a Hall of Fame. If you wanna be famous in Python Nation, don't suppose inclusion in the Standard Library is your last/only chance. Agitate for inclusion on a distro, get your work linked, noticed, included. Give use the screencasts about it (e.g. on youtube or video.google). In sum, whereas I think Pygeo has many distribution options, I think trying to bloat the default installer with Vpython is *not* the most efficacious route to that end. You'd do better to team with like-minded math profs on your end, and do an Arthur Siegel Distro, or call it something else. Branding is an art form and I won't pretend to tell you how to run your business from this long distance. Kirby From ajsiegel at optonline.net Sun Sep 24 22:55:27 2006 From: ajsiegel at optonline.net (Arthur) Date: Sun, 24 Sep 2006 16:55:27 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <4516B931.7050904@nomadics.org> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> <4516B931.7050904@nomadics.org> Message-ID: <4516F0BF.5040701@optonline.com> Jason Cunliffe wrote: >Well if you are looking for a good business decision then *please* >specify and work to compile an uber-useful LiveCD Edu-Sig distro with >all the math-edu-geo goodies... > > Jason, what edu-sig have you been visiting??? Do you see a group of people here capable of cooperate decisionmaking? *My* LiveCD is specified. Python2.5, as is, + Numpy + Vpython. I honestly would choose not to confuse the issue further. All we should be thinking about in a distribution of this kind is infrastructure and framework and standards - and that, AFIAK, is all we need. Where is xturtle, where is pygeo, where is crunchy, where is the tetrahedron???? Different realm of things, IMO. Guido in fighting a different strategic battle declared Django to be the defacto standard web framework, knowing I am sure he would take fire. The Numeric/Numarray/Numpy is already the defacto standard multi-dimensional array and linear algebra package. Because there have been cooperate efforts made to keep it a progressive evolution rather than a splinter of projects. I think we need to think here also about defacto standards, rather than the kitchen sink of interesting alternatives. Which is why the LiveCD of the kind I think you have in mind is not the answer. I have had absolutely nothing to do with the creation of Vpython. PyGeo uses it because it serves it needs. It is versalite and serves many other kinds of needs as well. I think it good strategy to push it out front as a defacto standard for basic educational visualization, simulation and modeling tasks. Strategic decisions like this necessarily involve a degree of compromise, and someone with the authority to make a decision that such a compromise is in fact sound strategy. But here we are talking about a library that is so small and basically unpretensious that I see no way of pushing it to the fore without making it part of the standard distribution, which itself assumes the introduction of some of the Numpy functionality as well, which it is my understanding is something already on the drawing board, having Guido's attention and implicit support. Frankly I think Guido is removed from the day-to-day in this realm so I would not expect him to be willing to make a vpython decision. He only made the Django decision when his google work immersed him the the issues. So I have no answers - only ideas that are not driven by self-interest or self-aggrandizement. And which have some degree of strategic merit. Some, as in worth discussing, at a minimum. I am paid to advise in the development of business strategies, by people who could go elsewhere but who know me well and with whom I have developed a track record. And the most important track record I have is the ability to separate my self-interest from their interests. My fee is X if the deal happens, Y if it doesn't and X>Y. I work with people who are confident that if I don't like the smell of the deal, they will know about it, adamantly. But they are also people too smart to follow my advice as from a mountaintop, and yes I have been known to be dead wrong - but usually within some shooting range and I do a pretty decent job of stating my range of certainty up front. This is in the 8.4 to 8.8 out of 10 range - that something substantial will be achieved relative to Python's acceptance in educational settings.. But what is the risk associated with being wrong??? By my analysis, nothing terrible. An extra library. So we have a go, basically. What I can't judge are the depth of the technical difficulties. My intuition that they are manageable is nothing more than intuition - especially when we are discussing the more exotic platforms. Art >That way you avoid conflicts and friction. This distro is free to >promote, develop and demonstrate a __range__ of tools covering a range >of tastes, philosophies, needs and competences on one disk [package, >torrent, ISO, pick your medium]. > > > >Install tested and run on existing 'puters [WinXp etc without any >collateral damage] >It can include brave new 21st century alternative OS curriculae. >Then When If it is a obvious success, don't be surprised that the >default standard distribution sensibly absorbs the relevant parts someday. >Pioneers always lead administrations and institutions right? > >Jason >_______________________________________________ >Edu-sig mailing list >Edu-sig at python.org >http://mail.python.org/mailman/listinfo/edu-sig > > > > From ajsiegel at optonline.net Mon Sep 25 00:17:42 2006 From: ajsiegel at optonline.net (Arthur) Date: Sun, 24 Sep 2006 18:17:42 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> Message-ID: <45170406.1010205@optonline.com> kirby urner wrote: > On 9/24/06, Arthur wrote: > > In sum, whereas I think Pygeo has many distribution options, I think > trying to bloat the default installer with Vpython is *not* the most > efficacious route to that end. You do better at insulting me when you are not particularly trying then when you are. My ideas for vpython is a strategy for PyGeo. I am being clever, manipulative and indirect. And you flushed me out. I frankly haven't been in the mood to even look at PyGeo for the last few months. It will cycle back around where I am again. I generally have too much else going on in the nice weather - as a gardener and as a golfer. PyGeo is indoor fun. We are entering the PyGeo season soon enough, and I will strategize then. So no Mr. Urner, that's not the strategy about which I am concerned. You are immersed more in the world of who gets credit for what than I am. If I worry, its about supporting my family without sacrificing my freedom of motion, and thought. It ain't easy. But it certainly has nothing to do with PyGeo, or Python, for that matter. Not a thing. Art From kirby.urner at gmail.com Mon Sep 25 01:48:59 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 24 Sep 2006 16:48:59 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <45170406.1010205@optonline.com> References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> Message-ID: > You do better at insulting me when you are not particularly trying then > when you are. > OK, I'm not going to dissuade you from trying to jam VPython into the Standard Library. As I've made clear: I think that's a stupid strategy, a waste of time, and not essential to the future promise of VPython, which has everything to do with Curriculum, and very little to do with which Installer file we hide it in. You go ahead and focus on where to shelve it. I'm more interested in what it's good for. One thing it's good for is showing off Beyond Flatland's Renaissance Era perspective, i.e. XYZ instead of just XY. People are gaga for "graphing calculators" but can't even get off the XY plane with their sorry methods. No Polyhedra, no Physical Realism. VPython is good for contrasting a computer-savvy math education with a calculators-only approach. Let's measure the gap, put a price tag on it, in terms of future living standards. What's very likely is that Python will continue acquiring bindings to Game Engines, those full-featured simulators, some of them Quaternion-fueled, that make interactive Imaginary Worlds possible (ninja turtles, Squeakworld, Pygeo, whatever). And yes, you can do Physics in them, projective geometry even (pick yer poison, yar). Silly Arthur thinks a small, easy-to-use XYZ Engine jammed into the Standard Library should be the "winning strategy". We could try it, sure. But don't you think it's a bit condescending, to think teachers won't discover VPython.org just because they're too dumb to look beyond "batteries included"? Is this web framework you're talking about Guido talking about to be Standard Library fare? Even the core Ruby installer isn't bundled with Ruby on Rails is it? Checking... Not seeing it here: http://www.ruby-doc.org/stdlib/ (did I miss it?). The people at Carnegie Mellon are making great strides, not just with VPython, but with Panda3D as well. But other commercial engines already support bindings. No, I don't have a complete list. But with IronPython controlling parrots and other such right from the beginning, I think it's a sure bet that Python will be a favorite of puppetmasters for some time to come. Doesn't take a Financial Wizard to read the writing on the wall. Kirby From kirby.urner at gmail.com Mon Sep 25 03:04:18 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 24 Sep 2006 18:04:18 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> Message-ID: > If N happens to be prime, then you get a Galois Field, i.e. you can > bring __add__ into it, provided you now also have 0 (still excluded as > a divisor). > > >>> class Modint(object): > modulus = 20 > def __init__(self, v): > self.v = v % Modint.modulus > def __mul__(self, other): > return Modint(self.v * other.v) > def __add__(self, other): > return Modint(self.v + other.v) > __rmul__ = __mul__ > __radd__ = __add__ > def __repr__(self): > return "%s modulo %s" % (self.v, Modint.modulus) > Note: you may be wondering "what divisor?" in that no __div__ was defined. The abstract algebra approach is to see __div__ and __sub__ as "syntactical sugars" that combine two operations: inverting the right argument, and then operating with either __mul__ or __add__. In other words, the "multiplicative inverse" of M is "that member of the group which, multiplied by M, gives the multiplicative identity" (1), while the "additive inverse" of M is that which, when __add__ed, gives 0 (the additive identity). Then we define: class Modint(object): # ... stuff omitted def __div__(self, other): return self * other.multinv() # depends on def of __mul__ def __sub__(self, other): return self + other.addinv() # depends on def of __add__ You'll probably also want to hook __pow__ so our k**(-1) gives 1/k etc. as well. Students will have a far better understanding of the *patterns* established within Abstract Algebra, such that when other "math objects" come along, such as Matrices, it'll be easier to talk about their non-commutative (still associative) group properties. They'll understand how * (multiplication) is a generalization across many types of object. Same with +. Polynomials, for example, aren't a group under multiplication because although we have closure (poly * poly == poly), we don't always have inverses, i.e. 1/P is probably a Rational Expression and but not a Polynomial. So we speak of the Ring properties here (ranked between Group and Field, in terms of how many rules and restrictions). As gnu math teachers, we cover all this before college, no problem, using Python, Ruby or whatever. Strong OO is advisable, as it's just natural to consider Polyhedra as Objects (with spin methods, face count attributes etc.), and we *definitely* want lots of those. Yes, with VPython, we'll be able to give visual expression to some of our math objects, such as Vectors and Polyhedra. But other math objects, such as these Integers Modulo N, needn't get involved in direct visualizations. No fancy Physics Engine need apply i.e. the command line (the Python shell) is quite sufficient, thank you very much (in this sense I agree with Arthur, about not always needing Ninjas (too distracting sometimes, like those MSFT "helpers" sometimes (e.g. that guy walks around and explodes sometimes))). Ruby also has pretty strong OpenGL support near its core. In that sense, I think Arthur is right to be pointing to VPython as Python's counterpart add-on. We're not behind Ruby, just assemble differently on the client machine (wxPython -- another whole world). SciPy is a good example of a distro schools might want to start out with. Does it include VPython already? My impression is it's very XY (flatland), less XYZ (spatial), but perhaps I'm out of date on that score. I still don't see that bundling VPython in the core install need be the solution. Guido should rewrite the standard tutorial if so. Or somebody should. But isn't it kind of late in the game to be trying to swallow that battery too? Why not go with my earlier solution: admit that Python's best add-ons aren't necessarily in the Standard Library. The SL is just a starter kit, not the Big Enchilada. I think the logical level at which to bundle is the school. Parents will see Ivan using doing 3D XYZ graphics on a flatscreen in Budapest, and wonder why Johnny at Portland Public is still punching a TI. It's the school that should be asked, not Python.org, which has no responsibility to *push* these solutions on people. We want schools to *pull* based on forces in the marketplace (i.e. competition). We don't want PSF to have to shovel and/or spoon feed. That's not its job. Make *schools* do the work. Python.org has already done more than enough. Everyone associated with Python, including Guido, should have permission to retire with royalties, and not lift a finger to "save education". Twasn't Python Nation that sank it in the first place. Kirby From jasonic at nomadics.org Mon Sep 25 03:08:21 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Mon, 25 Sep 2006 03:08:21 +0200 Subject: [Edu-sig] Blender reminder Message-ID: <45172C05.9030002@nomadics.org> ...while you're disagreeing to agree about VPython, thought I'd remind you about Blender API http://www.blender3d.org/documentation/242PythonDoc/index.html SCRIPTS http://www.blender.org/cms/Python_Scripts.3.0.html GAME ENGINE LOGIC http://www.blender.org/documentation/pydoc_gameengine/PyDoc-Gameengine-2.34/index.html Python programming Index http://jmsoler.free.fr/didacticiel/blender/tutor/index_prog_python_en.htm Intro http://jmsoler.free.fr/didacticiel/blender/tutor/python_script00_en.htm Show this next page to your students and I imagine they'll be quite motivated to learn Wireshadows http://jmsoler.free.fr/didacticiel/blender/tutor/python_wireshadows_en.htm Where to find Python scrtipts for Blender http://jmsoler.free.fr/didacticiel/blender/tutor/cpl_localiserpythonscript.htm French site for Blender and Python scripting http://www.zoo-logique.org/3D.Blender/ Forum http://www.zoo-logique.org/3D.Blender/newsportal/thread.php?group=3D.Blender links to other French Blender sites http://www.zoo-logique.org/3D.Blender/index.php3?zoo=lie wow there must be a lot of Python 3D knowhow developing most if it self-taught / community-taught I think Holland and Gemany also are big fans of it ------ Jason From ajsiegel at optonline.net Mon Sep 25 03:11:42 2006 From: ajsiegel at optonline.net (Arthur) Date: Sun, 24 Sep 2006 21:11:42 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <001d01c6df02$530198a0$6501a8c0@Gandalf> <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> Message-ID: <45172CCE.5040102@optonline.com> kirby urner wrote: > One thing it's good for is showing off Beyond Flatland's Renaissance > Era perspective, i.e. XYZ instead of just XY. People are gaga for > "graphing calculators" but can't even get off the XY plane with their > sorry methods. No Polyhedra, no Physical Realism. VPython is good > for contrasting a computer-savvy math education with a > calculators-only approach. Let's measure the gap, put a price tag on > it, in terms of future living standards. > $1,412.17 Art From ajsiegel at optonline.net Mon Sep 25 03:15:50 2006 From: ajsiegel at optonline.net (Arthur) Date: Sun, 24 Sep 2006 21:15:50 -0400 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> Message-ID: <45172DC6.8010400@optonline.com> kirby urner wrote: >As gnu math teachers, we cover all this before college, no problem, >using Python, Ruby or whatever. Strong OO is advisable, as it's just >natural to consider Polyhedra as Objects (with spin methods, face >count attributes etc.), and we *definitely* want lots of those. > > > Hmmm. But there is no such thing as gnu math, so how can there be gnu math teachers? Who do you think you are leading? Art From kirby.urner at gmail.com Mon Sep 25 04:26:11 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 24 Sep 2006 19:26:11 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: <45172DC6.8010400@optonline.com> References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> <45172DC6.8010400@optonline.com> Message-ID: On 9/24/06, Arthur wrote: > Hmmm. > > But there is no such thing as gnu math, so how can there be gnu math > teachers? > > Who do you think you are leading? > > Art I'm a gnu math teacher and teach gnu math here in Portland, as adjunct faculty with PSU, though that may not last, as Saturday Academy is moving once again... Anyway, why should it matter to you so much whether gnu math "Egg Zists"? The ideas are perfectly mainstream, and all the infrastructure is out there. We're arguing semantics. Kirby From kirby.urner at gmail.com Mon Sep 25 04:36:13 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 24 Sep 2006 19:36:13 -0700 Subject: [Edu-sig] Blender reminder In-Reply-To: <45172C05.9030002@nomadics.org> References: <45172C05.9030002@nomadics.org> Message-ID: On 9/24/06, Jason Cunliffe wrote: > ...while you're disagreeing to agree about VPython, thought I'd remind > you about Blender > Thanks Jason. I don't think there's any disagreement is over VPython. We all know it's good. Arthur seems to think Python.org should lift a finger to help him with his scheming and dreaming, whereas I don't. The Python.org web site is kwel, with downloadables plentiful and sufficient, with lots more just clicks away (the edu-sig home page is especially rich in links). There should be no onus on these hardworking volunteers to address "shortcomings" where there aren't any. Schools should do their own distros and/or do the work to keep up. It's not Guido's problem that schools willfully stay put in the dark ages, with this glaring "make me" attitude if you suggest they upgrade. We don't need to woo them, tempt them, entreat them. We simply supply their competitors with state of the art tools and suggests students vote with their feet. The whole charter school movement is about state and federal governments giving dedicated professionals license to compete in the public tax-supported sphere. It's no longer verbotten to excel and experiment at the same time. If our newest Portland charter wants to follow Winterhaven's lead, and go with Pythonic Math, no one is stopping 'em. For all I know, they're teaching Gnu Math already. Kirby From kirby.urner at gmail.com Mon Sep 25 04:42:54 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 24 Sep 2006 19:42:54 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <45172CCE.5040102@optonline.com> References: <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> Message-ID: On 9/24/06, Arthur wrote: > kirby urner wrote: > > > One thing it's good for is showing off Beyond Flatland's Renaissance > > Era perspective, i.e. XYZ instead of just XY. People are gaga for > > "graphing calculators" but can't even get off the XY plane with their > > sorry methods. No Polyhedra, no Physical Realism. VPython is good > > for contrasting a computer-savvy math education with a > > calculators-only approach. Let's measure the gap, put a price tag on > > it, in terms of future living standards. > > > $1,412.17 > > Art Per student per month at a high tuition academy maybe. Tuition refunds in order? I'm amazed at the intellectual squalor my fellow citizens have acclimated themselves to. Once they develop a taste for real learning, I thinking all this "just getting by" won't seem so acceptable to them. Or at least that's my fond hope. Mediocrity cannot be fought by trying to goad the apathetic into action. Just work around 'em -- why should they care? Kirby From ajsiegel at optonline.net Mon Sep 25 15:02:07 2006 From: ajsiegel at optonline.net (Arthur) Date: Mon, 25 Sep 2006 09:02:07 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> Message-ID: <4517D34F.5050006@optonline.com> kirby urner wrote: > I'm amazed at the intellectual squalor my fellow citizens have > acclimated themselves to. And I am more amazed at you, and who you think you are. Since it is clear to you that you are not among peers here, why not find somewhere to present your visions somewhere where you might be. Is that you face the same problem wherever you go? Funny thing. In the mean time, rather than subject myself to anymore abuse from you in an atmosphere where no one is willing to raise a peep in trying to help me get you to quiet down a bit, I will go away. Art From pchase at sulross.edu Mon Sep 25 15:40:10 2006 From: pchase at sulross.edu (Peter Chase) Date: Mon, 25 Sep 2006 08:40:10 -0500 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <4517D34F.5050006@optonline.com> References: <45154638.5000501@optonline.com> <000601c6df24$0d2d5810$6501a8c0@Gandalf> <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> Message-ID: <4517DC3A.8070108@sulross.edu> I would be happy to raise a peep if I knew what the hell you and Kirby were talking about. Maybe someone in this group could explain it to a Bear of Very Little Brain, like me. In simple terms. Without using abstractions any more than strictly necessary. Arthur wrote: > kirby urner wrote: > > >> I'm amazed at the intellectual squalor my fellow citizens have >> acclimated themselves to. >> > > And I am more amazed at you, and who you think you are. > > Since it is clear to you that you are not among peers here, why not find > somewhere to present your visions somewhere where you might be. > > Is that you face the same problem wherever you go? > > Funny thing. > > In the mean time, rather than subject myself to anymore abuse from you > in an atmosphere where no one is willing to raise a peep in trying to > help me get you to quiet down a bit, I will go away. > > Art > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > !DSPAM:518,4517d4bb255311804284693! > > > From kirby.urner at gmail.com Mon Sep 25 16:34:34 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 25 Sep 2006 07:34:34 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <4517D34F.5050006@optonline.com> References: <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> Message-ID: On 9/25/06, Arthur wrote: > Since it is clear to you that you are not among peers here, why not find > somewhere to present your visions somewhere where you might be. > When did I say that? You're the one who thinks Alan Kay is a shmuck (sp?) and is somehow beating MIT or whatever fantasy. > Is that you face the same problem wherever you go? > No, I have many peers and collaborators. How 'bout you? > Funny thing. > > In the mean time, rather than subject myself to anymore abuse from you > in an atmosphere where no one is willing to raise a peep in trying to > help me get you to quiet down a bit, I will go away. > > Art Excellent suggestion. Maybe come back if you have a good idea for a change. Kirby From kirby.urner at gmail.com Mon Sep 25 16:47:04 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 25 Sep 2006 07:47:04 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <4517DC3A.8070108@sulross.edu> References: <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517DC3A.8070108@sulross.edu> Message-ID: On 9/25/06, Peter Chase wrote: > I would be happy to raise a peep if I knew what the hell you and Kirby > were talking about. > Maybe someone in this group could explain it to a Bear of Very Little > Brain, like me. > In simple terms. Without using abstractions any more than strictly > necessary. As I understand it, Arthur and I were arguing about how to best leverage the educational asset known as VPython (vpython.org), used at Carnegie Mellon, Saturday Academy etc., as a part of the physics curriculum or whatever. He advocates stuffing it in the Standard Library so anyone downloading core Python from python.org (which includes said library -- cite "batteries included" slogan) will automatically put VPython in the tree. I advocate focusing instead on the differences between schools willing to excel, by experimenting with new ideas, vs. those choosing to march in lockstep with the mediocres and just "get by". I think schools should manage their own distros (i.e. valve and control what goes on their servers and/or is available to faculty for classroom use). Python.org shouldn't have to lift a finger, is it already plays its role perfectly, as a source of links and core downloads. Here on edu-sig, we provide a resource to the bolder, more experimental schools, in part by conspiring to show how Python might be used to put kids on a fast track towards high level mathematical sophistication, including a better awareness of abstract algebra, thanks to our snake's __rib__ syntax i.e. our ability to overload operators with special names. Many talented teachers contribute to this effort, including Arthur when he's not pretending to some high level of business savvy or fighting his MIT teddy bear. Kirby From dcrosta at sccs.swarthmore.edu Mon Sep 25 16:51:12 2006 From: dcrosta at sccs.swarthmore.edu (Dan Crosta) Date: Mon, 25 Sep 2006 10:51:12 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <4515A98B.5020801@optonline.com> <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> Message-ID: <4517ECE0.8020109@sccs.swarthmore.edu> kirby urner wrote: > Excellent suggestion. Maybe come back if you have a good idea for a change. I've got a better idea -- why don't you both start a new list, maybe 'kirby-and-arthur-fighting at python.org', where you guys can have your little show-off competition, and leave edu-sig for conversation about eudcation with Python? I've been on list for a few months, and so far there's about 3% signal to your 97% noise. For pete's sake, take your little tiff off-list! - d From kirby.urner at gmail.com Mon Sep 25 17:06:12 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 25 Sep 2006 08:06:12 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <4517ECE0.8020109@sccs.swarthmore.edu> References: <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517ECE0.8020109@sccs.swarthmore.edu> Message-ID: On 9/25/06, Dan Crosta wrote: > kirby urner wrote: > > Excellent suggestion. Maybe come back if you have a good idea for a change. > > I've got a better idea -- why don't you both start a new list, maybe > 'kirby-and-arthur-fighting at python.org', where you guys can have your > little show-off competition, and leave edu-sig for conversation about > eudcation with Python? I've been on list for a few months, and so far > there's about 3% signal to your 97% noise. > > For pete's sake, take your little tiff off-list! > > - d I think the discussion re VPython was worth having. Differing points of view were clearly expressed about a matter of substance. Your assessment of the signal to noise ratio suggests you're wearing ear muffs. Kirby From pchase at sulross.edu Mon Sep 25 17:07:15 2006 From: pchase at sulross.edu (Peter Chase) Date: Mon, 25 Sep 2006 10:07:15 -0500 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517DC3A.8070108@sulross.edu> Message-ID: <4517F0A3.4040109@sulross.edu> Is that ALL you have been fighting about these many months? My goodness. Well, thanks for filling me in. kirby urner wrote: > On 9/25/06, Peter Chase wrote: >> I would be happy to raise a peep if I knew what the hell you and Kirby >> were talking about. >> Maybe someone in this group could explain it to a Bear of Very Little >> Brain, like me. >> In simple terms. Without using abstractions any more than strictly >> necessary. > > As I understand it, Arthur and I were arguing about how to best > leverage the educational asset known as VPython (vpython.org), used at > Carnegie Mellon, Saturday Academy etc., as a part of the physics > curriculum or whatever. > > He advocates stuffing it in the Standard Library so anyone downloading > core Python from python.org (which includes said library -- cite > "batteries included" slogan) will automatically put VPython in the > tree. > > I advocate focusing instead on the differences between schools willing > to excel, by experimenting with new ideas, vs. those choosing to march > in lockstep with the mediocres and just "get by". > > I think schools should manage their own distros (i.e. valve and > control what goes on their servers and/or is available to faculty for > classroom use). Python.org shouldn't have to lift a finger, is it > already plays its role perfectly, as a source of links and core > downloads. > > Here on edu-sig, we provide a resource to the bolder, more > experimental schools, in part by conspiring to show how Python might > be used to put kids on a fast track towards high level mathematical > sophistication, including a better awareness of abstract algebra, > thanks to our snake's __rib__ syntax i.e. our ability to overload > operators with special names. > > Many talented teachers contribute to this effort, including Arthur > when he's not pretending to some high level of business savvy or > fighting his MIT teddy bear. > > Kirby > > !DSPAM:518,4517ebea120031554581014! > > From kirby.urner at gmail.com Mon Sep 25 17:35:34 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 25 Sep 2006 08:35:34 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <4517F0A3.4040109@sulross.edu> References: <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517DC3A.8070108@sulross.edu> <4517F0A3.4040109@sulross.edu> Message-ID: On 9/25/06, Peter Chase wrote: > Is that ALL you have been fighting about these many months? My > goodness. Well, thanks for filling me in. > I thought you meant just in the last few days. No, that's not all we've been fighting about, plus Arthur and I agree sometimes e.g.: * Crunchy Frog is kwel * VPython is kwel * raw_input moving to sys isn't the end of the world (even for teachers) Where Arthur and I overlap is in not wanting lose the "hard fun" (Seymour Papert's term) and devolve to mere "fun" -- in the sense that we stop challenging students with the hard core stuff and just entertain them with fuzzy wuzzy mind-rotting stuff, e.g. mere eye candy, meaningless toys and geegaws that don't adequately prepare them for the hard fun of potential adulthood. We're both fans of stark and austere approaches, kind of like those old fashioned mathematicians and their nostalgic cries the good old days of "pencil and paper". Instead of pencil and paper, I point to the Python shell + text editor as a starting point. No need for drag and drop, ala Lego Mindstorms, by the time they're up to the Python level. As background to all this: Arthur honed in on Alan Kay and his Squeakland project as representative of the kind of geegawing and eye candy he thought'd lead to mind rot, and so Alan became a kind of metaphor for the antichrist around here. Then our Benevolent Dictator was invited by Mark Shuttleworth to attend a London summit with Alan, representatives from Scheme community, top educators in South Africa, including government ministry types. I was given our Python Nation's Minister of Education portfolio and sat at Guido's side (opposite Alan) as we hunkered down for two days of intensive brainstorming, the upshot of which is Project Kusasa, which plans the following pipeline for 8-18 year olds: Logo | Squeak | Python. As a result of this brainstorming, edu-sig heated up with a lot of recent cross-talk between Pythoneers and Smalltalkers (Squeak is written about Smalltalk) regarding what features of immersive environments might be moved to Python. This might include actual pieces of software engineering at the C level -- that was a thread Alan and Guido started at the summit itself. Again, Arthur, suspicious of Croquet and Squeakland (aka "Ninja Turtles") pushes back against any "dumbing down" of the potential Python curriculum. However, I don't see that as a problem, as the Shuttleworth Pipeline follows the grain of the maturation process in a natural way: motor skills & avatar control (Logo-like); immersive fantasy worlds and role playing (Squeak-like); under-the-hood investigations of what makes it all go (Python as your guide in the "tunnels under Disney World"). Of course by age 18, many are ready to go deeper, in which case we have many pathways to choose from. Python -> Java -> private sector cubicle, is one popular option. I also suggest Python -> C (study Python's core) -> C# -> IronPython (i.e. come back to Python but by way of immersion in the C family). Basically, the "basic motor skills" -> "immersion" -> "contributing to the guts" sequence gets repeated over and over at different levels in life. I doubt Arthur disagrees. There's also another theme woven in, which is that before my Minister of Education stint, I was already a top dog in what's called the Fuller School (e.g. bfi.org), a pirate ship captained by R. Buckminster Fuller (Applewhite as quartermaster). I bring that experience with me to edu-sig, e.g. http://tinyurl.com/lqbhc http://tinyurl.com/legbp Kirby From kirby.urner at gmail.com Mon Sep 25 18:17:42 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 25 Sep 2006 09:17:42 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517DC3A.8070108@sulross.edu> <4517F0A3.4040109@sulross.edu> Message-ID: > http://tinyurl.com/lqbhc > http://tinyurl.com/legbp PS: re this 2nd URL, obtained from The Fischbeck on Synergeo, I shows how gummint contractors are getting better at rapid deployment of temporary/emergency shelter solutions. I hope they're cross-training with FEMA, and not just focusing on the INS's more parochial concerns. More bona fide geodesic domes would be cool (even self-cooling by some accounts). In any case, the first URL is more properly hagiographic re Fuller. > > Kirby > From delza at livingcode.org Mon Sep 25 18:25:43 2006 From: delza at livingcode.org (Dethe Elza) Date: Mon, 25 Sep 2006 09:25:43 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517ECE0.8020109@sccs.swarthmore.edu> Message-ID: On 25-Sep-06, at 8:06 AM, kirby urner wrote: > I think the discussion re VPython was worth having. Differing points > of view were clearly expressed about a matter of substance. > > Your assessment of the signal to noise ratio suggests you're > wearing ear muffs. Hardly. It's an assessment that's been made many times, by many people, some of whom have left the list because of it. In fact the noise on this list caused at least one competing list to be started just to avoid it. It would be one thing if Kirby trolled Art, or Art trolled Kirby, and you each recognized it as that, but you both seem unable to resist responding to each others trolls. Which is too bad, because you both have valuable points of view and useful things to say, but I (and surely others) have started to filter it out because we're tired of wading through the pointless (and frequently juvenile) feuding. Now, as with any other time I've tried to step into this brawl to break it up, I'm sure I will be told off for it and soon wish I'd stayed in lurk mode. Oh well. --Dethe When all else fails, men turn to reason. --Abba Eban From jasonic at nomadics.org Mon Sep 25 18:08:26 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Mon, 25 Sep 2006 18:08:26 +0200 Subject: [Edu-sig] KwangJu, Korea -> Linux City -> Linux University Message-ID: <4517FEFA.4060605@nomadics.org> The Korean government plans to pick Kwangju this month as the nation's first ``Linux City,'' where open-source software will become the mainstream programs. ... it will be required to install open-source software as a main operating system of their infrastructures, a job which the ministry will support with funds and technologies. In the long run, Kwangju will have to migrate most of its public desktop and notebook computers away from the Windows program of Microsoft, the world's foremost producer of software. ``The test city will prompt other regions to follow suit via demonstrating that Linux can be the go-to operating system without any technological glitches or security woes,'' Lee said. To that end, the ministry seeks to invest 1 billion won ($1 million), although the amount may change depending on the situation. Together with Linux City, the government will also choose a ``Linux University,'' another test bed for the emerging software that is an alternative to the proprietary Microsoft Windows. source: http://times.hankooki.com/lpage/tech/200603/kt2006032117045611780.htm From ajsiegel at optonline.net Mon Sep 25 19:00:26 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Mon, 25 Sep 2006 17:00:26 +0000 (GMT) Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517DC3A.8070108@sulross.edu> <4517F0A3.4040109@sulross.edu> Message-ID: ----- Original Message ----- From: kirby urner > There's also another theme woven in, which is that before my Minister > of Education stint, I was already a top dog in what's called the > Fuller School (e.g. bfi.org), a pirate ship captained by R. > Buckminster Fuller (Applewhite as quartermaster). I bring that > experience with me to edu-sig, e.g. Thank you for the reasoned summary, for anyone who might care. But I would add that perhaps our most fundamental disagreement is the role that commercial interests are playing in shaping the debate over the use of technology in education, and the extent to which that role is and will continue to lead to distorted sub-optimum, potentially disastrous results. My view of the past is different. Technology is being used, IMO, as the breach in the wall that traditionally had kept commercial interests at bay in this realm. Good tradition. If you would like to make the case that the TI Calculator was the vanguard, I won't disagree. I believe that commercial interests intruding in this realm necessarily destroys the the natural selection of those ideas that are best fitted to the common good. So perhaps you are right that the you are up against more then the merits of the case in trying to dislodge TI. Will it be different when it is time to dislodge Microsoft? When Kay was filling Disney auditoriums with teachers, and pontificating about the future of education from that perch, you granted him the Genius exemption. I saw taking a leading role in making our classrooms safe for the profit motive. Unwittingly. perhaps. But geniuses are not supposed to be unwitting. The you think he knows something I don't carries no weight with me - within the parameters of my position here. That he thinks he does, I have no doubt. Calling him a schmuck in Squeakland might be a breach of good faith - there being no reason to be there is that is how I feel. Notice, I am not. I see no breach of anything in stating that opinion, in the context I do, here. For the record, one of the first things I remember Guido doing when he went to work for a private company was to announce that CP4E was from that time to be considered a personal interest, and unconnected to his professional employment. Notice, I am here. Art -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060925/7f9c6219/attachment.htm From kirby.urner at gmail.com Mon Sep 25 19:10:01 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 25 Sep 2006 10:10:01 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517DC3A.8070108@sulross.edu> <4517F0A3.4040109@sulross.edu> Message-ID: On 9/25/06, ajsiegel at optonline.net wrote: > Notice, I am here. > > Art > OK, good summary of your position. Lots of grist for the mill. Thanks. Kirby From kirby.urner at gmail.com Mon Sep 25 20:31:50 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 25 Sep 2006 11:31:50 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> Message-ID: On 9/24/06, kirby urner wrote: > As gnu math teachers, we cover all this before college, no problem, > using Python, Ruby or whatever. Strong OO is advisable, as it's just > natural to consider Polyhedra as Objects (with spin methods, face > count attributes etc.), and we *definitely* want lots of those. > And of course why we want 'em is partly for their applications in Group Theory. As we learned from French mathematics, group theory boils down to permutation soup, with a single operator-verb known as "permute". This "permute" gets mapped to the rotations of a polyhedron and it's neighboring self-similar positions. In the Fuller School (the pirate ship I was mentioning recently), we have this polyhedron called a Coupler that we localize at (0,0,0) in some curriculum segments, using Python + VPython, or maybe Python + POV-Ray, or Python + Blender... or maybe we use Chakovian Coordinates i.e. (0,0,0,0). Of course that's very esoteric and I wouldn't expect every Tom, Dick or Susan to be drilled in that stuff unless they asked to be. We recruit Gnuvy Krew, don't "shanghai" them (a term from Old Portland, where many an unwitting sailor was made to if not born to (sail)). > Yes, with VPython, we'll be able to give visual expression to some of > our math objects, such as Vectors and Polyhedra. > Vectors of the Gibbsian variety are what's in vogue today, like in IB programs (at our local Lincoln High, football is considered an IB level sport). Hestenes & Co. support a geometrical algebra (GA) featuring these newfangled Blades 'n Stuff, i.e. the so-called Clifford Algebra implementations (owing to Grassmann). I'm no expert, but expect the OO view will help here too, for those choosing to go with it. In the meantime, even Fuller had things to say about vectors (lots of ways to go, not all of them necessitating a Pythonic skillset (Pythoneers and Mousekateers only partially overlap)). > But other math objects, such as these Integers Modulo N, needn't get > involved in direct visualizations. No fancy Physics Engine need apply Influence of FoxPro's strong "visual" versus "not visual" distinction, when it comes to classes? > Ruby also has pretty strong OpenGL support near its core. In that > sense, I think Arthur is right to be pointing to VPython as Python's > counterpart add-on. We're not behind Ruby, just assemble differently > on the client machine (wxPython -- another whole world). Relevant: http://www.4dsolutions.net/presentations/pythonicmath.pdf # PAGE 12. > SciPy is a good example of a distro schools might want to start out > with. Does it include VPython already? My impression is it's very XY > (flatland), less XYZ (spatial), but perhaps I'm out of date on that > score. Nothing very 3D-looking on its MoinMoin home page: http://www.scipy.org/ Tara's sims are buying businesses, operating spa salons or whatever, all in gorgeous cartoony sim graphics. Despite my agreeing with Arthur about the mind-rot potential of just eye candy, I'm not into disappointing kids with a diet of All Flatland All the Time. Speaking of which, I'm giving Tara the option to join me on a trip to New York pretty soon. She's already got something planned though, so another time would also be OK (but I'm still going -- got some Fuller School events happening (New York's a big center for us)). > I still don't see that bundling VPython in the core install need be > the solution. Guido should rewrite the standard tutorial if so. Or > somebody should. Again, I think schools should come up with home grown solutions and not rely on Python.org to do their work for them. Core Python is well defined and competently taught. There's no responsibility to get into esoteric add-on capabilities e.g. linear algebra, vector graphics, in the core documentation. PIL is one of the best and earliest role models of a self-sufficient add-on library (self-sufficient in terms of doing all of its own work, relying on Python.org only for core Python). > It's the school that should be asked, not Python.org, which has no > responsibility to *push* these solutions on people. > > We want schools to *pull* based on forces in the marketplace (i.e. > competition). We don't want PSF to have to shovel and/or spoon feed. > That's not its job. Guido has always been appropriately modest about his area of expertise, focusing on Python the language and the computer science behind it. He doesn't claim credentials as a pedagogue (unlike Alan Kay, who likes to mint DVDs showing how he's on the front lines with the children). I'm less immodest than Guido, around pedagogy, because I'm a career math teacher with textbook editing experience (McGraw-Hill, Avenue of the Americas), but more modest about my system level language skills. If the Python -> C -> C# -> IronPython course opens up, I might be among the first to sign up as a student -- but I'm wanting it as HDTV screencasts as an option, but I don't have an HDTV. Tsk. I think my DVD player is compatible though, plus Kim and Jimmy have the real deal (Dave too, in his bizmo, but he's hardly ever around). > Make *schools* do the work. Python.org has already done more than > enough. Everyone associated with Python, including Guido, should have > permission to retire with royalties, and not lift a finger to "save > education". > > Twasn't Python Nation that sank it in the first place. > > Kirby > Kirby From kirby.urner at gmail.com Mon Sep 25 20:46:21 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 25 Sep 2006 11:46:21 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> Message-ID: On 9/25/06, kirby urner wrote: > I'm less immodest than Guido, around pedagogy, because I'm a career I meant *more* immodest, i.e. I flaunt it more, that I'm this groovy gnu math teacher with past pirate ship experience (not hard to come by here in Portland, yar!): http://mybizmo.blogspot.com/2006/09/yar.html Kirby From ajsiegel at optonline.net Mon Sep 25 20:52:48 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Mon, 25 Sep 2006 18:52:48 +0000 (GMT) Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> Message-ID: From: kirby urner Date: Monday, September 25, 2006 2:33 pm Subject: Re: [Edu-sig] creating an interface vs. using one To: Michel Paul > Speaking of which, I'm giving Tara the option to join me on a > trip to > New York pretty soon. She's already got something planned > though, so > another time would also be OK (but I'm still going -- got some Fuller > School events happening (New York's a big center for us)). I noticed the Fuller/Noguchi exhibit closing concert at the Noguchi museum in Queens on Oct 8th. Sounds inviting. Be there? I think I go on a short trip to Shanghai on the 9th - in the pursuit of a eco-capitalism idea I am trying to make real (or find out better why it is unreal). Probably too hectic to try to fit this in on the 8th, otherwise I was considering it. Art > > I still don't see that bundling VPython in the core install > need be > > the solution. Guido should rewrite the standard tutorial if > so. Or > > somebody should. > > Again, I think schools should come up with home grown solutions and > not rely on Python.org to do their work for them. Core Python > is well > defined and competently taught. There's no responsibility to > get into > esoteric add-on capabilities e.g. linear algebra, vector > graphics, in > the core documentation. > > PIL is one of the best and earliest role models of a self-sufficient > add-on library (self-sufficient in terms of doing all of its own work, > relying on Python.org only for core Python). > > > It's the school that should be asked, not Python.org, which > has no > > responsibility to *push* these solutions on people. > > > > We want schools to *pull* based on forces in the marketplace (i.e. > > competition). We don't want PSF to have to shovel and/or > spoon feed. > > That's not its job. > > Guido has always been appropriately modest about his area of > expertise, focusing on Python the language and the computer science > behind it. He doesn't claim credentials as a pedagogue (unlike Alan > Kay, who likes to mint DVDs showing how he's on the front lines with > the children). > > I'm less immodest than Guido, around pedagogy, because I'm a career > math teacher with textbook editing experience (McGraw-Hill, > Avenue of > the Americas), but more modest about my system level language skills. > If the Python -> C -> C# -> IronPython course opens up, I might be > among the first to sign up as a student -- but I'm wanting it as HDTV > screencasts as an option, but I don't have an HDTV. Tsk. I > think my > DVD player is compatible though, plus Kim and Jimmy have the > real deal > (Dave too, in his bizmo, but he's hardly ever around). > > > Make *schools* do the work. Python.org has already done more than > > enough. Everyone associated with Python, including Guido, > should have > > permission to retire with royalties, and not lift a finger to "save > > education". > > > > Twasn't Python Nation that sank it in the first place. > > > > Kirby > > > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060925/a4b5e12d/attachment.html From kirby.urner at gmail.com Mon Sep 25 22:25:08 2006 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 25 Sep 2006 13:25:08 -0700 Subject: [Edu-sig] creating an interface vs. using one In-Reply-To: References: <3D142BFDEDAC8D46A40F4EA0B36D1F351D6F22@MAIL.bhusd.k12.ca.us> Message-ID: On 9/25/06, ajsiegel at optonline.net wrote: > From: kirby urner > Date: Monday, September 25, 2006 2:33 pm > Subject: Re: [Edu-sig] creating an interface vs. using one > To: Michel Paul > > Speaking of which, I'm giving Tara the option to join me on a > > trip to > > New York pretty soon. She's already got something planned > > though, so > > another time would also be OK (but I'm still going -- got some Fuller > > School events happening (New York's a big center for us)). > > I noticed the Fuller/Noguchi exhibit closing concert at the Noguchi museum > in Queens on Oct 8th. > > Sounds inviting. > > Be there? That's the one. I'll put you in a private loop off list. So far: itinerary saved in Expedia.com, but no charge card commit, waiting to consult with Tara. Wife and Mom would man the fort. I've thought of a way to incorporate Qtly Mtg threads. > I think I go on a short trip to Shanghai on the 9th - in the pursuit of a > eco-capitalism idea I am > trying to make real (or find out better why it is unreal). Probably too > hectic to try to fit > this in on the 8th, otherwise I was considering it. > > Art I'll be back in touch within hours. Toodles. Kirby From delza at livingcode.org Tue Sep 26 18:44:10 2006 From: delza at livingcode.org (Dethe Elza) Date: Tue, 26 Sep 2006 09:44:10 -0700 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: References: <4516B28B.7040107@optonline.com><45170406.1010205@optonline.com><45172CCE.5040102@optonline.com><4517D34F.5050006@optonline.com><4517ECE0.8020109@sccs.swarthmore.edu> Message-ID: <69F6132D-D952-452C-95A6-38305A557AE1@livingcode.org> Edupython, on google groups: http://groups.google.com/group/edupython --Dethe On 26-Sep-06, at 3:22 AM, Humphreys, Simon (Hills Road Staff) wrote: > What's the new competing list SIG? I would be interested in > subscribing if it gets me away from the incresingly irritating > 'noise' on this one ....... > > ________________________________ > > From: edu-sig-bounces at python.org on behalf of Dethe Elza > Sent: Mon 25/09/2006 17:25 > To: kirby urner > Cc: edu-sig at python.org > Subject: Re: [Edu-sig] creating an interface vs. using one (Michel > Paul) > > > > On 25-Sep-06, at 8:06 AM, kirby urner wrote: > >> I think the discussion re VPython was worth having. Differing points >> of view were clearly expressed about a matter of substance. >> >> Your assessment of the signal to noise ratio suggests you're >> wearing ear muffs. > > Hardly. It's an assessment that's been made many times, by many > people, some of whom have left the list because of it. In fact the > noise on this list caused at least one competing list to be started > just to avoid it. > > It would be one thing if Kirby trolled Art, or Art trolled Kirby, and > you each recognized it as that, but you both seem unable to resist > responding to each others trolls. Which is too bad, because you both > have valuable points of view and useful things to say, but I (and > surely others) have started to filter it out because we're tired of > wading through the pointless (and frequently juvenile) feuding. > > Now, as with any other time I've tried to step into this brawl to > break it up, I'm sure I will be told off for it and soon wish I'd > stayed in lurk mode. Oh well. > > --Dethe > > > When all else fails, men turn to reason. --Abba Eban > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > "The Brazilian government is definitely pro-law. But if law doesn't fit reality anymore, law has to be changed. That's not a new thing. That's civilisation as usual." --Gilberto Gil, Brazilian Minister of Culture From ajsiegel at optonline.net Tue Sep 26 20:01:10 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Tue, 26 Sep 2006 18:01:10 +0000 (GMT) Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <69F6132D-D952-452C-95A6-38305A557AE1@livingcode.org> References: <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517ECE0.8020109@sccs.swarthmore.edu> <69F6132D-D952-452C-95A6-38305A557AE1@livingcode.org> Message-ID: ----- Original Message ----- From: Dethe Elza Date: Tuesday, September 26, 2006 12:45 pm Subject: Re: [Edu-sig] creating an interface vs. using one (Michel Paul) To: "Humphreys, Simon (Hills Road Staff)" Cc: edu-sig at python.org > Edupython, on google groups: > > http://groups.google.com/group/edupython > > --Dethe The members have been polite enough on that list not to have annoyed each other with a thought on anything for the last few months,.. Something inbetween would be better, for sure. I seem to have a reputation to maintain, and nobody (who speaks) wants to notice that I am trying to help make that happen. Which makes me care less, frankly. Art -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060926/2020e705/attachment.htm From kirby.urner at gmail.com Tue Sep 26 20:52:52 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 26 Sep 2006 11:52:52 -0700 Subject: [Edu-sig] Functions & Generators (gnu math memo) Message-ID: Logo -> Squeakland ->... Python: Functions and Generators (build directly off algebra, no need to harp on "variables", although most students will want a strong "types" discussion, as their earlier math was probably very weak in this area, especially around strings) Building on the potential of Squeakland Creatures (the warmer fuzzier objects of a younger day), we make a big deal of the "arguments mouth" (except you don't really need arguments), i.e. those curved parentheses are like lips (optional link to fish lips in FS Coupler segment (not the same as Vesica Pices, though related)).** Remember, DO NOT postpone Generators as an advanced topic. Every since lazy list comprehensions (another used of curvy parentheses), earlier really, we've had good reasons for harping on Generators. This will get students acclimated with the Namespace that is Python (or metapython): iterators, generators, callables, special names, type, class. Early Functions: ============ GCD Totatives Totient Triangular Numbers Tetrahedral Numbers Cuboctal/Icosahedral Numbers Curriculum context: Difference between Composite and Prime, concept of Relatively Prime (strangers). Leading to: Integers Modulo N groups, germutation groups, polyhedrally defined symmetry groups. Note that J has some primitives for generating cyclic notation, which you could use to motivate the need for a Python counterpart. Early Generators: ============= Triangular Numbers Tetrahedral Numbers Cuboctal/Icosahedral Numbers Fibonacci Numbers Mandelbrot Set decider (convergent or not?) Curriculum context: Growing sphere packings per my OSCON 2005 and London Knowledge Lab presentations, i.e. divergence represented with polyhedral numbers ala 'Book of Numbers' (cites Martin Gardner), with volume expanding as a 3rd power rate of linear growth (expressed in the scale method of our Polyhedron parent class). Of course list comprehension syntax is used from the get go, per the usual approach of using collection types to go over basic dot notation (per my EuroPython 2005 presentation). Followup (where to go from here): Once we're good at writing functions and generators, it'll be easy to define new classes, as methods are simply functions with a self argument (a basis for object instrospection). Remember the "two passes": First pass: treating the builtins as read-only givens (axiomatic) Second pass: rolling our own, coding up a namespace (interactively, with unit testing) Plus we might get back to the warm fuzzies by this route, now feeling more like puppetmasters or cartoon animators i.e. we *make* cartoons, don't just watch them (multi-track editing isn't just for others to do for us). I'm signing and returning my gnu math teaching contract today. If you don't have a gig yet, hang in there. Once our DVD libraries are easier to come by, you'll be ready, having trained hard while waiting. Maybe you'll do it with Ruby, if our Python seems "too noisey" a language for you. For more on Gnu Math (both Memos and Meanderings), search math-teach at the Math Forum, a principal outlet and recruiting ground for us. Or look for more private lists in your own local neighborhood (does your town have a Wanderers chapter?). Kirby Gnu Math Teacher Portland "open source capital" Oregon Also check "focal points" in my Bizmo Diaries around this time, if new to our curriculum and just trying to get some overview. And no, you don't have to be a snake charmer. I'm relying on the other Open Source language communities to spin their own distros. ** might be able to do something around teeth when treating of default and/or optional arguments, per Tow Mater example. Re Coupler "fish lips": http://groups.yahoo.com/group/synergeo/message/29178 From kirby.urner at gmail.com Wed Sep 27 00:32:00 2006 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 26 Sep 2006 15:32:00 -0700 Subject: [Edu-sig] Functions & Generators (gnu math memo) In-Reply-To: References: Message-ID: On 9/26/06, kirby urner wrote: > Functions and Generators (build directly off algebra, no need to harp > on "variables", although most students will want a strong "types" > discussion, as their earlier math was probably very weak in this area, > especially around strings) > Which is where initial exploration at the shell prompt begins, with dir() and help(). dir() at the shell returns a 3-element table of contents, with __doc__ referencing a None type and __name__ referencing a string '__main__' (what's currently running). __builtins__ is where the action is: lots of potential for Error, followed by lots of yummy stuff that's NOT (repeat NOT) for "beginners" (we don't condescend -- yet good teachers accommodate us). > Building on the potential of Squeakland Creatures (the warmer fuzzier > objects of a younger day), we make a big deal of the "arguments mouth" > (except you don't really need arguments), i.e. those curved > parentheses are like lips (optional link to fish lips in FS Coupler > segment (not the same as Vesica Pices, though related)).** Although not intended as a pun, ** is apropos, as *args, **kwargs is Pythonic for "optional passables" e.g.: >>> def funk(adelic, *ozmotic): return (adelic, ozmotic) >>> funk("bump") # no optional tupuloids ('bump', ()) >>> funk("bump","grind") # one tupuloid ('bump', ('grind',)) >>> funk("bump","grind","doowah") # two tupuloids ('bump', ('grind', 'doowah')) AND: >>> def funk(adelic, *ozmotic, **chagum): return (adelic, ozmotic, chagum) >>> funk("bump","grind","doowah",fanstastic="budda bum", shorty="digum") ('bump', ('grind', 'doowah'), {'fanstastic': 'budda bum', 'shorty': 'digum'}) i.e. named arguments, after the tupuloids, gather in a **kwargs dict (kw means "key word" i.e. a "key word arguments" dictionary). Don't feel obligated to use "tupuloid" to mean "member of a tuple" -- that's optional. > Remember, DO NOT postpone Generators as an advanced topic. Every A common pitfall among those who teach in the order learned. So-called "regurgitation" style pedagogy (both LIFO and FIFO styles suffer from this same inability to intelligently reorder topics into a Sequence *other than* the one learned (a failing more common in other disciplines outside of our Computer Science (probably because we've got that "woman's touch" [tm] from our founders))). > Early Functions: > ============ > GCD > Totatives > Totient > Triangular Numbers > Tetrahedral Numbers > Cuboctal/Icosahedral Numbers Plus everyone'll want to do a Parabola, with higher degree Polynomials to follow (Sine Waves etc. -- Who Was Fourier? http://www.amazon.com/Fourier-Transnational-College-Lex-Tokyo/dp/0964350408/ ) I generally save Polynomials until we know how to write our own classes, and use __call__ to have any P-object evaluate for any "x" (if a poly in one variable). Example: http://www.4dsolutions.net/ocn/python/simppoly.py > Curriculum context: > > Difference between Composite and Prime, concept of Relatively Prime > (strangers). Leading to: Integers Modulo N groups, germutation groups, Hahah. Funny... "permutation groups" I meant. > polyhedrally defined symmetry groups. Note that J has some primitives > for generating cyclic notation, which you could use to motivate the > need for a Python counterpart. http://www.jsoftware.com/help/dictionary/dccapdot.htm > > Early Generators: > ============= > Triangular Numbers > Tetrahedral Numbers > Cuboctal/Icosahedral Numbers > Fibonacci Numbers > Mandelbrot Set decider (convergent or not?) I forgot Pascal's Triangle, duh. Also Pascal's Tetrahedron is a worthy topic. I've got some original stuff on that here: http://www.grunch.net/synergetics/pascal.html (I notice the formatting has gotten out of control -- need to fix the XHTML). > Curriculum context: > > Growing sphere packings per my OSCON 2005 and London Knowledge Lab > presentations, i.e. divergence represented with polyhedral numbers ala > 'Book of Numbers' (cites Martin Gardner), with volume expanding as a > 3rd power rate of linear growth (expressed in the scale method of our > Polyhedron parent class). Per rbf.py: def scale(self,factor): """ Resize shape by factor. Translate to the origin, scale, translate back. Multiply volume by 3rd power of scale factor. """ newself = copy.deepcopy(self) current = newself.center newself.move(-current) # go to origin for label in newself.vertices.keys(): newself.vertices[label] = newself.vertices[label] * factor newself.move(current) # return to current position newself.volume = newself.volume * pow(factor,3) return newself This uses an old trick from computer graphics lore: when rotating or scaling, move the object to the origin and apply simple vector tweaks, then move it back where it came from. Remember: we use the convention of Vectors tail-originating at the Origin, with Edges being any segments between two vector-defined endpoints. http://www.4dsolutions.net/cgi-bin/py2html.cgi?script=/ocn/python/stickworks.py > Of course list comprehension syntax is used from the get go, per the > usual approach of using collection types to go over basic dot notation > (per my EuroPython 2005 presentation). > http://www.4dsolutions.net/presentations/pythonicmath.pdf > Followup (where to go from here): > > Once we're good at writing functions and generators, it'll be easy to > define new classes, as methods are simply functions with a self > argument (a basis for object instrospection). Remember the "two > passes": > > First pass: treating the builtins as read-only givens (axiomatic) > E.g.: >>> help({}) ... >>> help(1) ... Lots of ribbing -- a sure sign we're exploring the internals of the Python namespace. Make one feel clued in (not condescended to, not treated like a know-nothing beginner, even if that's what one is). > Second pass: rolling our own, coding up a namespace (interactively, > with unit testing) Good place for the Monkey, Dog, Human as subclasses of Mammal conversation, per my presentation to the London Knowledge Lab (live, on camera). I still hear from them (makes sense, given Portland's eagerness to grow one locally (PKL thread)). > Plus we might get back to the warm fuzzies by this route, now feeling > more like puppetmasters or cartoon animators i.e. we *make* cartoons, > don't just watch them (multi-track editing isn't just for others to do > for us). IronPython controlled Cartoon Creatures from the beginning. http://blogs.msdn.com/hugunin/archive/2006/09/05/741605.aspx > Also check "focal points" in my Bizmo Diaries around this time, if new > to our curriculum and just trying to get some overview. And no, you http://mybizmo.blogspot.com/2006/09/focal-points.html > don't have to be a snake charmer. I'm relying on the other Open > Source language communities to spin their own distros. > > ** might be able to do something around teeth when treating of default > and/or optional arguments, per Tow Mater example. > > Re Coupler "fish lips": > http://groups.yahoo.com/group/synergeo/message/29178 > Picture of a coupler: http://mybizmo.blogspot.com/2006/09/more-compositions.html Kirby From driscollkevin at gmail.com Wed Sep 27 00:43:14 2006 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Tue, 26 Sep 2006 18:43:14 -0400 Subject: [Edu-sig] Your dream Linear function class Message-ID: <87a8578e0609261543y71aa7cbej4fcd1ec4675ab2b3@mail.gmail.com> Hi y'all, My Pre-Calc peoples are finishing up a refresher unit on Linear Functions. This week, they are working on a "mini-text" with definitions, examples, tips, and tricks. They'll be wiki-izing this work next week. Each unit will follow the same pattern as a way to build a "math portfolio" for the year. I am planning to take them into Pythonic PreCalc after each unit to add a new class to their growing library. These will be reproduced on the wiki and in their portfolios as well. So what would your ideal Linear Function class contain? Methods: - return slope - return x-int - return y-int - maybe one that takes another Line and returns the coords for their intersection? - return expression (e.g. mx + b) About a third of the students have studied Python with me before in CS so they can help bring the rest along. (We are my smallest class at 15 11th and 12th graders.) We aren't afraid of import. Is there an easy graphing solution? Getting psyched for Quadratics and Complex numbers in October! Kevin From ajsiegel at optonline.net Wed Sep 27 13:38:47 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 27 Sep 2006 07:38:47 -0400 Subject: [Edu-sig] Your dream Linear function class In-Reply-To: <87a8578e0609261543y71aa7cbej4fcd1ec4675ab2b3@mail.gmail.com> References: <87a8578e0609261543y71aa7cbej4fcd1ec4675ab2b3@mail.gmail.com> Message-ID: <451A62C7.6020309@optonline.com> Kevin Driscoll wrote: >Is there an >easy graphing solution? > > vpython aand crunchy have been been recently suggested. Both have the advantage of being non-traditional solutions to this problem, i.e. they each offer the ability to graph, and much else. Seems to me there is something to be said for using a more general tool, for this specific purpose. Student might wonder into some general interest in the tool itself.. Art From da.ajoy at gmail.com Wed Sep 27 15:36:42 2006 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Wed, 27 Sep 2006 08:36:42 -0500 Subject: [Edu-sig] Getting psyched for Complex numbers In-Reply-To: References: Message-ID: <451A381A.4653.5B3CBBDA@da.ajoy.gmail.com> On 27 Sep 2006 at 12:00, edu-sig-request at python.org wrote: > Getting psyched for Quadratics and Complex numbers in October! > Kevin > This might give you an idea: http://mondragon.angeltowns.net/paradiso/NumerosComplejosAplicaciones.html Daniel From kirby.urner at gmail.com Wed Sep 27 21:07:02 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 27 Sep 2006 12:07:02 -0700 Subject: [Edu-sig] Business in Education In-Reply-To: References: Message-ID: On 9/27/06, kirby urner wrote: > So Arthur, in thinking more about your well-founded suspicion of the > profit motive, when it comes to curriculum writing and standard > setting (test making), I'm thinking we should go over in what ways the > public schools, pre college, are already subject to commercial > moneymaking. I said nothing about the test making industry, i.e. ETS. Obviously there's a lot more to this picture than just textbooks, plus New York isn't necessarily a center for K-12. I hear the McGraw-Hill division I used to work for moved to Deluth or someplace, maybe Omaha. > You may suppose I'm about to launch on another anti-TI tirade (but > you'd be wrong; plus I just bought one for my daughter, the same kind > "Mr. Bright uses" (an excellent teacher)). More, I'm drawing from TI-30x? Something like that. A "2 line" display (all Python really needs, right?). > It was all about Texas and California, the states with the biggest > school-aged populations. Mass publishers had to jump through their > hoops, our kiss good bye any real chance for profit for hungry ...[or] kiss good bye... > The story Californians now tell themselves is: we were going down the > sewer, mathematically, but now scores are on the rise and all because > of a new State Standard championed by our Education Pope, one Wayne > Bishop over at CalState (a competent teacher I'm sure -- I use some of > his linear algebra thinking in Gnu Math as a matter of fact). Cite: http://mail.python.org/pipermail/edu-sig/2006-September/007145.html ISBN: 087150300X > Get the Ed Department to sign off on Everyday Math, and you've got > your gravy train for the next fifteen years minimum (but good doobie > bureaucrats need job security too, so stamp it with "more study > needed"). Cite: http://mathforum.org/kb/thread.jspa?threadID=1454461&tstart=0 Everyday Mathematics Gets Qualified Nod From U.S. Ed. Dept. Posted: Sep 21, 2006 12:11 PM post by Jerry P. Becker > Textbook publishing is profitable because at the K-12 level, it's all > about rehashing. Colleges pioneer and explore (or used to), but K-12 > never changes, or, if it does, hardly moves at all in Mathematics. And I'm NOT saying "old is bad" here. When mathematics gets creative and imaginative, as in a Renaissance period, it's often "old stuff" that gets a new lease on life, e.g. Fibonacci's Liber Abaci, in turn an exhumation of Lost Arts (known within Islamic circles, but semi-purged from Xtiandom by the Spanish Inquisition and its sorry precursors). > The pictures get more ethnically diverse, the sidebars more > loquacious, the binders stronger, the books heavier and more > expensive. These are the only dimensions we care about. Math Big confusion between "ethnicity" and "genetic makeup" by the way. They could be identical twins, and yet fight on opposite sides in some civil war. Memes, way more than genes, carry Kulture. > Content, meantime, remains Plain Vanilla Pablum, i.e. nothing serious, > until we weed 'em and feed 'em (Calculus Mountain to weed 'em). > I'm not advocating we give up on Calculus, but I think Computer Science, with its hunger for discrete mathematicians, is not off base when it goes in with a less calculus-intensive, yet technologically sophisticated, alternative track (or set of tracks). We'll cover calculus in overview still, but the "weed 'em" feature of Differentiating By Parts, for example, might be given short shrift. Mathematica automates this stuff anyway. We're not trying to compete with robots when it comes to Factory Algorithms. Even the TIs do simple integrals these days. > So has our Python Nation any hope at all of propagating to more than > homeschoolers and forlorn little one roomers on Shoshone Rez in > someplace godforsaken? We beed to recruit too, after all, if our > ethnicity is to survive. > ...[need] to recruit... > And smack dab in the middle of the out-of-school Commercial Sector, is > the breakfast cereal industry. Cheerios, Cheerios, Cornflakes & Grape > Nuts, one of the most feared Capitol Hill lobbies in the history of > our planet. They own Saturday Morning, a cartoon festival and clown > show, puppets galore, and long the Fortune 100 focus for discovering > Emerging Trends. I left out a key variable in this equation: commercial jingles. There's a huge tie-in between the Breakfast Cereal Industy and Nashville. Dyxy Chyx on the back of the cereal box kinda thing, but also what you hear, not just what you see, is important on a flatscreen (smell is for when you open the box -- usually lots of sugar). > All along, you've been supposing my Fuller School credential meant I > was duty-bound to try to get passed you and your forces, as I tried > for the End Zone of Academic Respectability. > Which isn't to say I think Fuller Schoolers can't emerge from the woodwork within Academia. I'm just saying we have other routes to command and control positions, other than through our nation's war colleges, duh. Fuller held a professorship at Harvard, had numerous relevant credentials. Most faculties considered themselves lucky to get him, as students tended to go gaga for his geometric geegaws (raising suspicions of the type you harbor, since he was obviously a businessman wolf in sheeps clothing). > You wanted me to check my funny-looking pyrate hat at the door, be a > good compromiser, give a little, in the interests of mutual > respectability. Then we could join forces and champion Python > together, on the same side of high walls (with Microsoft at bay > outside). Regarding Microsoft, it's too big an operation to be all on one side of anything. I regard the IronPython krew as seaworthy, given how C# promises great speed combined with access to multifarious treasures (even Parrots -- a bird we tend to favor). Re Disney, why not Kaa? > You keep Academics respectable (I support you in that), and meanwhile > I'll do like me Pyrate Captain taught me: engage in all out > psychological warfare on the fringe, where few dare venture, and even > fewer make it back. Bucky actually called it "psycho-guerilla warfare" more often than not, and associated it with Cold Warring, ala his 'Critical Path' magnum opus (a mythopoetical work, but with lots of factual material). > Python Nation is lucky to have recruited someone like me. Kids really > love it when I "Talk Like a Pyrate" [sm].[1] Yar! [sm] [2] > But I'm overworked and overbooked in a lot of ways, so the focus now is on swelling our ranks. I'm happy to keep with the gnu math teaching, but expect the economies of scale to make that job easier than it has been. Kirby From kirby.urner at gmail.com Wed Sep 27 19:19:25 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 27 Sep 2006 10:19:25 -0700 Subject: [Edu-sig] Business in Education Message-ID: So Arthur, in thinking more about your well-founded suspicion of the profit motive, when it comes to curriculum writing and standard setting (test making), I'm thinking we should go over in what ways the public schools, pre college, are already subject to commercial moneymaking. You may suppose I'm about to launch on another anti-TI tirade (but you'd be wrong; plus I just bought one for my daughter, the same kind "Mr. Bright uses" (an excellent teacher)). More, I'm drawing from personal experience with McGraw-Hill, Avenue of the Americas (28th floor, desk jockey under Nola Hague, peer-to-peer with Ray Simon, who got me the post). It was all about Texas and California, the states with the biggest school-aged populations. Mass publishers had to jump through their hoops, our kiss good bye any real chance for profit for hungry investors. Just pandering to the baby states (like New Hampshire) made *no* economic sense. So what's happened is Californians and Texans have realized their economic clout with New York publishing and have decided to politicize around that fact. I know less about the situation in Texas (let others tell that story), but California is pretty obviously laid out on the table over on Math-Teach. It'll be really easy to do the postmortems. The story Californians now tell themselves is: we were going down the sewer, mathematically, but now scores are on the rise and all because of a new State Standard championed by our Education Pope, one Wayne Bishop over at CalState (a competent teacher I'm sure -- I use some of his linear algebra thinking in Gnu Math as a matter of fact). Now that Wayne is Pope, we're hearing a lot more about Saxon and Singapore, as the two flagship tree-killer textbook series that Our Nation must embrace. And yes, their ambitions are National, what with the Department of Education obligated by law to pass judgement on textbook offerings, thereby giving Our Friends the Big Publishers in New York, access to the levers of power at the federal level (a known quantity high ground). Get the Ed Department to sign off on Everyday Math, and you've got your gravy train for the next fifteen years minimum (but good doobie bureaucrats need job security too, so stamp it with "more study needed"). What has all this to do with Python? Precious little, which is of course my point. Textbook publishing is profitable because at the K-12 level, it's all about rehashing. Colleges pioneer and explore (or used to), but K-12 never changes, or, if it does, hardly moves at all in Mathematics. The pictures get more ethnically diverse, the sidebars more loquacious, the binders stronger, the books heavier and more expensive. These are the only dimensions we care about. Math Content, meantime, remains Plain Vanilla Pablum, i.e. nothing serious, until we weed 'em and feed 'em (Calculus Mountain to weed 'em). So has our Python Nation any hope at all of propagating to more than homeschoolers and forlorn little one roomers on Shoshone Rez in someplace godforsaken? We beed to recruit too, after all, if our ethnicity is to survive. Not according to conventional radar (which the math-teach subscribers all deem me to be "under"). With New York holding Congress in hammerlock, and pesky politicos yammering "fuzzy" and "new new", screaming to high heaven to legislate Math from On High (the only way religious fanatics know to get anything), Python, open source, GNU, Linux, Ruby, tupuloid, Sims, Alan Kay, $100 laptop, are all doomed from ever impacting any mainstream child in one of our mainstream all-American public school K-12 classrooms, ad infinitum and ad nauseum (a little Kay goes a long way, I agree, but he's still powerful good medicine). Obviously there's something wrong with this overly pessimistic model, as we already know from personal experience, if dealing with teenagers personally (as I do, daily), that the above memepool is hardly esoteric. A lot of kids already know about this stuff, because they're *all* homeschoolers when they come home, and keep learning through the balance of their day (even sleep can be educational). They're out of school and smack dab in the middle of that Commercial Sector you're always so suspicious about (having worked in it for many years, our first meeting being in your home town's Financial District). And smack dab in the middle of the out-of-school Commercial Sector, is the breakfast cereal industry. Cheerios, Cheerios, Cornflakes & Grape Nuts, one of the most feared Capitol Hill lobbies in the history of our planet. They own Saturday Morning, a cartoon festival and clown show, puppets galore, and long the Fortune 100 focus for discovering Emerging Trends. Cartoons have snakes. Cartoons have pirates. So what candle do the print media Publishers hold, when it comes to comparing old dead language lead, flat-on-a-page XY somnambulisms, next to the EyeCandyLand of XYZ television? Nada, right? So I guess this is the truce I'm seeing emerging between us. You're wanting to marshal the troops to defend the Sanctity and Purity of Ivory Tower Virginity, to keep it free from that down and dirty Profit Motive (at least in any tainted sense -- high grades still sought after). All along, you've been supposing my Fuller School credential meant I was duty-bound to try to get passed you and your forces, as I tried for the End Zone of Academic Respectability. You wanted me to check my funny-looking pyrate hat at the door, be a good compromiser, give a little, in the interests of mutual respectability. Then we could join forces and champion Python together, on the same side of high walls (with Microsoft at bay outside). But how it turns out is more like this: I'm happy to leave you to that battle, and hope you keep winning it (need troops? just ask). But I'm content to leave Academia to its textbook fixations and focus on Saturday Morning, where my market researchers have "lazy fare" to just experiment and play with little kids' minds, beyond any oppressive scrutiny and control of those "too old for cartoons" fuddydud college professors (except maybe the semioticians -- they watch us agog (or "agrog" as the case may be)). You keep Academics respectable (I support you in that), and meanwhile I'll do like me Pyrate Captain taught me: engage in all out psychological warfare on the fringe, where few dare venture, and even fewer make it back. Python Nation is lucky to have recruited someone like me. Kids really love it when I "Talk Like a Pyrate" [sm].[1] Yar! [sm] [2] Kirby 4D Studios Portland "Open Source Capital" Oregon [1] http://mybizmo.blogspot.com/2005/09/talk-like-pirate-day.html [2] http://mybizmo.blogspot.com/2006/09/yar.html From ajsiegel at optonline.net Wed Sep 27 23:37:18 2006 From: ajsiegel at optonline.net (ajsiegel at optonline.net) Date: Wed, 27 Sep 2006 21:37:18 +0000 (GMT) Subject: [Edu-sig] Business in Education In-Reply-To: References: Message-ID: From: kirby urner > On 9/27/06, kirby urner wrote: > > So Arthur, in thinking more about your well-founded suspicion > of the > > profit motive, when it comes to curriculum writing and standard > > setting (test making), I'm thinking we should go over in what > ways the > > public schools, pre college, are already subject to commercial > > moneymaking. > > I said nothing about the test making industry, i.e. ETS. Obviously > there's a lot more to this picture than just textbooks, plus New York > isn't necessarily a center for K-12. I hear the McGraw-Hill division > I used to work for moved to Deluth or someplace, maybe Omaha. Glad to have that toned down a bit. We are more ethnic (and sensitive about it) then folks tend to be in Portland, for example. Careful - speculating about the influence of business folks based in New York in particular might bring you allies you shouldn't want. And there will be no possibility of a truce, with me. Maybe, in fact, us business folks in New York lost our sense of humor about fringe movements sometime last century, and perhaps our discussions do reflect some of that undertone. > > Get the Ed Department to sign off on Everyday Math, and you've got > > your gravy train for the next fifteen years minimum (but good doobie > > bureaucrats need job security too, so stamp it with "more study > > needed"). Just folks.. Happens that the brightest, most committed, most energetic high school math teacher I know is not beating his head against some pillar in the Bowery, or wearing a pirate hat - for that matter. He first co-authored a high school trigonometry textbook with a Russian gentlemen, now professor at a US university, acknoledged to be a Major Living Mind in mathematics. They, I assure you, were only going to write the text book they were willing to write - the publisher's ability to cover costs being the publisher's problem. He was then recruited by the National Science Foundation, to advise on grants related to pre-college mathematics education. Yes he is Old School. Knows nothing about programming and seeing PyGeo didn't seem to light him on fire. But there are years of classroom work, organizing math competitions all over the world, etc. and etc. - all on short pay, at work in his look at things. And he is nobody's lackey, I assure you. The NSF was doing its job quite well in recognizing and recruiting him. In my own small cross-sectional view of things - gained from the simple fact of waking up in the morning and going about my business - I have seen this kind of story repeated enough that my own cynical, pessimistic tendencies have been tamed a bit. OTOH, this same cross-section has included an intense and realistic view of what makes a business tick. And I have no personal problem seeing myself as part of that clockwork. I won't belabor the issue, other then to repeat my conviction that this ticking, brought too close to the classroom, is and is not what it might seem to be. It is a finely tuned clock, indeed - except that it is now attached to a detonator. It is nobody's intention that this be the way it is. But that doesn't help. And something or other about breakfeast cereals, but I'm not sure what. Art -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20060927/33d70cba/attachment.html From pchase at sulross.edu Thu Sep 28 00:26:15 2006 From: pchase at sulross.edu (Peter Chase) Date: Wed, 27 Sep 2006 17:26:15 -0500 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <69F6132D-D952-452C-95A6-38305A557AE1@livingcode.org> References: <4516B28B.7040107@optonline.com><45170406.1010205@optonline.com><45172CCE.5040102@optonline.com><4517D34F.5050006@optonline.com><4517ECE0.8020109@sccs.swarthmore.edu> <69F6132D-D952-452C-95A6-38305A557AE1@livingcode.org> Message-ID: <451AFA87.6010106@sulross.edu> Thanks, Dethe Dethe Elza wrote: > Edupython, on google groups: > > http://groups.google.com/group/edupython > > --Dethe > > > On 26-Sep-06, at 3:22 AM, Humphreys, Simon (Hills Road Staff) wrote: > > >> What's the new competing list SIG? I would be interested in >> subscribing if it gets me away from the incresingly irritating >> 'noise' on this one ....... >> >> ________________________________ >> >> From: edu-sig-bounces at python.org on behalf of Dethe Elza >> Sent: Mon 25/09/2006 17:25 >> To: kirby urner >> Cc: edu-sig at python.org >> Subject: Re: [Edu-sig] creating an interface vs. using one (Michel >> Paul) >> >> >> >> On 25-Sep-06, at 8:06 AM, kirby urner wrote: >> >> >>> I think the discussion re VPython was worth having. Differing points >>> of view were clearly expressed about a matter of substance. >>> >>> Your assessment of the signal to noise ratio suggests you're >>> wearing ear muffs. >>> >> Hardly. It's an assessment that's been made many times, by many >> people, some of whom have left the list because of it. In fact the >> noise on this list caused at least one competing list to be started >> just to avoid it. >> >> It would be one thing if Kirby trolled Art, or Art trolled Kirby, and >> you each recognized it as that, but you both seem unable to resist >> responding to each others trolls. Which is too bad, because you both >> have valuable points of view and useful things to say, but I (and >> surely others) have started to filter it out because we're tired of >> wading through the pointless (and frequently juvenile) feuding. >> >> Now, as with any other time I've tried to step into this brawl to >> break it up, I'm sure I will be told off for it and soon wish I'd >> stayed in lurk mode. Oh well. >> >> --Dethe >> >> >> When all else fails, men turn to reason. --Abba Eban >> >> >> _______________________________________________ >> Edu-sig mailing list >> Edu-sig at python.org >> http://mail.python.org/mailman/listinfo/edu-sig >> >> >> > > > "The Brazilian government is definitely pro-law. But if law doesn't > fit reality anymore, law has to be changed. That's not a new thing. > That's civilisation as usual." --Gilberto Gil, Brazilian Minister of > Culture > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > !DSPAM:518,451959f2179991158211503! > > > From ajudkis at verizon.net Thu Sep 28 00:53:04 2006 From: ajudkis at verizon.net (Andy Judkis) Date: Wed, 27 Sep 2006 18:53:04 -0400 Subject: [Edu-sig] off topic References: Message-ID: <004601c6e287$b1b0bc90$6501a8c0@Gandalf> I know this has nothing to do with Python, but the following headline from eWeek made me laugh out loud: Novell, Intel Deliver Xen-Enabled Linux for Dual-Core Xeons Is it any wonder that people think we're Martians? From mpaul at bhusd.k12.ca.us Thu Sep 28 02:20:36 2006 From: mpaul at bhusd.k12.ca.us (Michel Paul) Date: Wed, 27 Sep 2006 17:20:36 -0700 Subject: [Edu-sig] what you can do in a shell Message-ID: <7B929C75BC8A724F87A531479AEE14FA290C19@MAIL.bhusd.k12.ca.us> Here's a case where I was able to weave Python into math class a little unexpectedly - The other day students were confused by why we subtract h in y = f(x - h) when we translate f horizontally h units. So I fired up Python and did a shell session with them. Here is something similar to what we did: >>> ## Let's define a function. Any function. It doesn't have to be too complicated. >>> def f(x): return 2**x - 1 >>> ## Now let's generate a table of ordered pairs: >>> for x in range(-5, 6): (x, f(x)) (-5, -0.96875) (-4, -0.9375) (-3, -0.875) (-2, -0.75) (-1, -0.5) (0, 0) (1, 1) (2, 3) (3, 7) (4, 15) (5, 31) >>> ## Now let's horizontally translate this function. >>> ## By how much shall we translate it? >>> h = 3 >>> ## OK, let's see ... we want to shift our domain ... >>> for x in range(-5 + h, 6 + h): (x, f(x)) (-2, -0.75) (-1, -0.5) (0, 0) (1, 1) (2, 3) (3, 7) (4, 15) (5, 31) (6, 63) (7, 127) (8, 255) >>> ## Hmmm ... what happened? >>> ## Our x values translated OK, but our y values are off. >>> ## In order to be a horizontal translation, our y values should remain the same. >>> ## Oh no! What can we do? >>> ## >>> for x in range(-5 + h, 6 + h): (x, f(x - h)) (-2, -0.96875) (-1, -0.9375) (0, -0.875) (1, -0.75) (2, -0.5) (3, 0) (4, 1) (5, 3) (6, 7) (7, 15) (8, 31) >>> ## Ahh! That's better! >>> ## So, when we translate x by h, we preserve the y-value back at x - h: >>> ## y = f(x - h) This is the beauty of the Python shell - a math student doesn't have to know any Python syntax to be able to follow this. They can just see it as active Algebra. Sure, you have to make clear how the upper limit in range works, and you have to make sure they don't get confused when we're using "range" in specifying a "domain", but still, they were able to follow what was going on, and thinking the issue through in this way was helpful. Not fancy stuff, not OO, but useful. From ajsiegel at optonline.net Thu Sep 28 02:26:23 2006 From: ajsiegel at optonline.net (Arthur) Date: Wed, 27 Sep 2006 20:26:23 -0400 Subject: [Edu-sig] creating an interface vs. using one (Michel Paul) In-Reply-To: <451AFA87.6010106@sulross.edu> References: <4516B28B.7040107@optonline.com> <45170406.1010205@optonline.com> <45172CCE.5040102@optonline.com> <4517D34F.5050006@optonline.com> <4517ECE0.8020109@sccs.swarthmore.edu> <69F6132D-D952-452C-95A6-38305A557AE1@livingcode.org> <451AFA87.6010106@sulross.edu> Message-ID: <451B16AF.10307@optonline.com> Peter Chase wrote: >Thanks, Dethe > How about at least starting a thread there about .... well something. I promise never to post to that list. I have no embarrassment about how I handle myself here - whether I should or should not But would indeed feel better if those who feel I should had someplace to chat. But thanking Dethe for pointing you in the direction of an inert list is just being cute, it seems to me. I will jealous and annoyed if the discussions there becomes interesting and significant - having vowed not to participate. Make be jealous and annoyed. Art From pdfernhout at kurtz-fernhout.com Thu Sep 28 03:00:03 2006 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Wed, 27 Sep 2006 21:00:03 -0400 Subject: [Edu-sig] Python-powered Fab labs the next big thing? Message-ID: <451B1E93.4030807@kurtz-fernhout.com> Dethe Elza posted about Fab Labs on this list in 2005. http://mail.python.org/pipermail/edu-sig/2005-April/004676.html A year later, here is a mainstream new article on them: "'Fab labs' deliver high-tech tools: MIT's fabrication laboratories aim to help developing communities find innovative solutions to local needs." http://www.csmonitor.com/2006/0927/p16s01-stct.html Excerpts: ... MIT opened the first international Fab Lab in Costa Rica four years ago and has sponsored nine others since then. Meanwhile, many more labs have opened on their own. "They're just sort of popping up," Lassiter says. "It's a good idea, and people want to do it." That's what is happening in South Africa, where the government has a stated goal of improving the country's science, technology, and manufacturing capabilities. ... "The high concept is to get these into the communities," says Naas Zaayman, who runs the Innovation Hub Fab Lab for Advanced Manufacturing Technology Strategy, a government program created to spread science and technology. "It's the idea that if you're somewhere in rural South Africa, and you want something for solar energy, you can go to a Fab Lab and make your own." ... Justinos Nkutshwev is one of the regulars. He sits at a computer, using the mouse to manipulate lines on a graphics program. He is building a bus, he says, and a generator to make it run. He is 15 years old and never used a computer before he came to the Fab Lab a few months ago. Now, he works with the lab's machines twice a week. "I come here because I can make interesting things," he says. Although the lab technically closes at 5 p.m., the staff regularly keeps it open hours later. Sometimes teenagers show up at staff members' houses on Sunday, begging them to unlock the doors. "They say 'We need to finish our projects, can you please open?' " Nkadimeng says. "It's great to see them so eager. There's no way to say no." === Looks like they use Python too: http://episteme.arstechnica.com/eve/forums/a/tpc/f/158007275731/m/615004070831 "We primarly use the computer in each Fab Lab for running our computer aided design (CAD) and manufacturing (CAM). Our main 3D tool is BLENDER (pictured on the left above) which we are extending in Python (for example, see cad.blend) for use with our specific audiances. We also use SDRAW and PSTOEDIT for 2D design." http://cba.mit.edu/projects/fablab/tools.html Anyway, just fodder for the imagination -- nice having Python running these things. --Paul Fernhout From kirby.urner at gmail.com Thu Sep 28 02:54:21 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 27 Sep 2006 17:54:21 -0700 Subject: [Edu-sig] what you can do in a shell In-Reply-To: <7B929C75BC8A724F87A531479AEE14FA290C19@MAIL.bhusd.k12.ca.us> References: <7B929C75BC8A724F87A531479AEE14FA290C19@MAIL.bhusd.k12.ca.us> Message-ID: > This is the beauty of the Python shell - a math student doesn't have to know any Python > syntax to be able to follow this. They can just see it as active Algebra. Yes, exactly: Pythonic Algebra is naturally self-teaching, plus you can do it without some adult standing over you, watching you make mistakes. The Python interpreter already knows you'll make mistakes, has a lot of stuff builtin to help you with that. Branching off on your idea of generating ordered pairs, I've seen various trix like these: IDLE 1.2b2 >>> def f(x): return x # simplest linear >>> [(x,f(x)) for x in range(5)] [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)] >>> def g(x,m=1,b=0): return m*x + b # slope-intercept linear >>> [(x , g( x, 0.25, 2)) for x in range(5)] [(0, 2.0), (1, 2.25), (2, 2.5), (3, 2.75), (4, 3.0)] Then if you want a VPython plot, you can do something like: >>> import stickworks # code given earlier this month >>> def domain(): x = -5 while True: yield x x += .5 >>> dom = domain() >>> plot = stickworks.xyplotter(dom, g) >>> plot.next() # VPython window appears with line segment >>> plot.next() # line segment gets longer >>> plot.next() # and longer... >>> plot.next() # and longer... ... Except that's not the smartest way to go (e.g. no axes shown yet). Better to just modify stickworks.testme. def testme(): """ >>> from stickworks import testme Visual 2005-01-08 >>> testme() See: http://www.4dsolutions.net/ocn/graphics/cosines.png """ from math import cos def f(x): return cos(x) def dgen(start, step): while True: yield start start += step d = dgen(-5, 0.1) axes(-5,1,0) graph = xyplotter(d, f) for i in xrange(100): graph.next() Kirby From kirby.urner at gmail.com Thu Sep 28 03:24:17 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 27 Sep 2006 18:24:17 -0700 Subject: [Edu-sig] what you can do in a shell In-Reply-To: References: <7B929C75BC8A724F87A531479AEE14FA290C19@MAIL.bhusd.k12.ca.us> Message-ID: Question: The PEP on the 2.5 release schedule (2.5 Final already reached), claims PEP 309 was somewhere implemented -- some way to curry functions with partial. Anyone know where it is. Our own edu-sig's Scott... http://www.python.org/dev/peps/pep-0356/ Oh wait, I just found it: >>> import functools >>> dir(functools) ['WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', '__builtins__', '__doc__', '__file__', '__name__', 'partial', 'update_wrapper', 'wraps'] So using that same g from before: >>> def g(x,m=1,b=0): return m*x + b # slope-intercept linear >>> G = functools.partial(g,m=0.25,b=2) >>> G >>> [(x,G(x)) for x in range(8)] [(0, 2.0), (1, 2.25), (2, 2.5), (3, 2.75), (4, 3.0), (5, 3.25), (6, 3.5), (7, 3.75)] Kwel. Kirby From kirby.urner at gmail.com Thu Sep 28 01:48:51 2006 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 27 Sep 2006 16:48:51 -0700 Subject: [Edu-sig] Business in Education In-Reply-To: References: Message-ID: On 9/27/06, ajsiegel at optonline.net wrote: > It is a finely tuned clock, indeed - except that it is now attached to a > detonator. It is nobody's intention that this be the way it is. But that doesn't > help. > > And something or other about breakfeast cereals, but I'm not sure what. > > Art > Well, that's disturbing imagery, so I'll send in my defusers and try to fill in more of the picture as I see it. There's this cold hearted business logic that'll chew up good people, spit em back zombies for The Establishment, and then there are good hearted people, still not chewed up yet, at least not completely (some were spit back for some reason? Not tastey?). You and I both know it well (the Business World) and work for it, but in different walkx of life. I come from a crony capitalist Philippines, and before that from some thriving Etruscan center, updated through centuries, a product of Overseas Schools, interlude in Florida. I had by 'n large wonderful teachers, who gave me great faith and hope in this life. Plus I was blessed with great parents. So I was already far in the direction of Loving Education, which is probably what got me into Princeton (on top of the high test scores, which many good schools don't even care about). I dove head first into computer science (by way of APL, including a graphical version tucked away in the E-Quad) and philosophy (1879 Hall, since made bigger). This all goes to explain the importance of the Global University meme in my writing (GU), which is acknowledged from the outset as a meme i.e. not some real administration with one apex hierarchy. We're multi-apex and we know it. We're a network of invisible colleges, with real campus footprint manifestations. The Fuller School is one of these invisible colleges, and our campus ain't shabby: radomes, Montreal Expo, a long shelf of books, an Archive at Stanford, numerous websites, a long pedigree of contributing professionals. I thank my lucky stars to have crewed among them, many of whom I'll never meet probably. But in a very big world, it's not stupid to have a crew as cosmopoliton and polyglot as Fuller's, a lot like New York's (which polyglot functioning also includes self policing as a necessary evil). I won't go back over the breakfast cereal business. That was a one-off, although a Geek Brand cereal could conceivably tease kids with Pythonic Equations amidst the fuzzy furries, with a DVD in the box, one of those Distros we've been talking about. Why not? Let's just say I'm not too worried about our working at cross-purposes sometimes, with respect to investors looking to pump up our snake, make it a Macy Day balloon or whatever (Portland is getting a new Macy's downtown, complete with hotel, and I think that's a very positive development). We can use edu-sig to compare notes, which I like doing, because I advertise my 4D Solutions as "a pioneer in open source" which is what Bucky called "thinking out loud" and took very seriously (there's a good bio-documentary about him by that title you could see sometime, first broadcast by WNET, which also did a website). Relevant: http://www.pbs.org/wnet/americanmasters/database/fuller_b.html Kirby From delza at livingcode.org Thu Sep 28 16:18:44 2006 From: delza at livingcode.org (Dethe Elza) Date: Thu, 28 Sep 2006 07:18:44 -0700 Subject: [Edu-sig] Python-powered Fab labs the next big thing? In-Reply-To: <451B1E93.4030807@kurtz-fernhout.com> References: <451B1E93.4030807@kurtz-fernhout.com> Message-ID: Hi Paul, Thanks for pointing out the article, I hadn't seen that one. The Fab Labs have also been featured in Make Magazine, Wired, the Economist, Business Week and Science Friday and Neil Gershenfeld has a book out on them: http://www.amazon.ca/FAB-Revolution-Desktop-Computers-Fabrication/dp/ 0465027458/sr=1-11/qid=1159452431/ref=sr_1_11/701-4538240-5689161? ie=UTF8&s=books Also, the 2002 class "How to Make (almost) Anything" is available under MIT's Open Courseware program: http://ocw.mit.edu/OcwWeb/Media-Arts-and-Sciences/MAS-863How-to-Make-- Almost--AnythingFall2002/CourseHome/ The FAQ has some good links: http://fab.cba.mit.edu/forum/faq1.htm There is now a Fab Central page at the MIT Center for Bits and Atoms: http://fab.cba.mit.edu/, and the tools page lists software resources, many in Python. There is a ton of info out there. The estimated cost of a new Fab Lab is $25,000 USD. I'm hoping my new job will at some point sponsor one, or at least provide space for one. Open source desktop manufacturing is on its way. --Dethe On 27-Sep-06, at 6:00 PM, Paul D. Fernhout wrote: > Dethe Elza posted about Fab Labs on this list in 2005. > > http://mail.python.org/pipermail/edu-sig/2005-April/004676.html > > A year later, here is a mainstream new article on them: > "'Fab labs' deliver high-tech tools: MIT's fabrication > laboratories aim > to help developing communities find innovative solutions to local > needs." > http://www.csmonitor.com/2006/0927/p16s01-stct.html > > Excerpts: > > ... > > MIT opened the first international Fab Lab in Costa Rica four years > ago > and has sponsored nine others since then. Meanwhile, many more labs > have > opened on their own. "They're just sort of popping up," Lassiter says. > "It's a good idea, and people want to do it." > > That's what is happening in South Africa, where the government has a > stated goal of improving the country's science, technology, and > manufacturing capabilities. > > ... > > "The high concept is to get these into the communities," says Naas > Zaayman, who runs the Innovation Hub Fab Lab for Advanced > Manufacturing > Technology Strategy, a government program created to spread science > and > technology. "It's the idea that if you're somewhere in rural South > Africa, > and you want something for solar energy, you can go to a Fab Lab > and make > your own." > > ... > > Justinos Nkutshwev is one of the regulars. He sits at a computer, > using > the mouse to manipulate lines on a graphics program. He is building > a bus, > he says, and a generator to make it run. He is 15 years old and > never used > a computer before he came to the Fab Lab a few months ago. Now, he > works > with the lab's machines twice a week. "I come here because I can make > interesting things," he says. > > Although the lab technically closes at 5 p.m., the staff regularly > keeps > it open hours later. Sometimes teenagers show up at staff members' > houses > on Sunday, begging them to unlock the doors. > > "They say 'We need to finish our projects, can you please open?' " > Nkadimeng says. "It's great to see them so eager. There's no way to > say no." > > === > > Looks like they use Python too: > > http://episteme.arstechnica.com/eve/forums/a/tpc/f/158007275731/m/ > 615004070831 > "We primarly use the computer in each Fab Lab for running our computer > aided design (CAD) and manufacturing (CAM). Our main 3D tool is > BLENDER > (pictured on the left above) which we are extending in Python (for > example, see cad.blend) for use with our specific audiances. We > also use > SDRAW and PSTOEDIT for 2D design." > http://cba.mit.edu/projects/fablab/tools.html > > Anyway, just fodder for the imagination -- nice having Python running > these things. > > --Paul Fernhout > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig "The Brazilian government is definitely pro-law. But if law doesn't fit reality anymore, law has to be changed. That's not a new thing. That's civilisation as usual." --Gilberto Gil, Brazilian Minister of Culture From delza at livingcode.org Thu Sep 28 16:22:04 2006 From: delza at livingcode.org (Dethe Elza) Date: Thu, 28 Sep 2006 07:22:04 -0700 Subject: [Edu-sig] what you can do in a shell In-Reply-To: References: <7B929C75BC8A724F87A531479AEE14FA290C19@MAIL.bhusd.k12.ca.us> Message-ID: On 27-Sep-06, at 6:24 PM, kirby urner wrote: > Question: > > The PEP on the 2.5 release schedule (2.5 Final already reached), > claims PEP 309 was somewhere implemented -- some way to curry > functions with partial. Anyone know where it is. Our own edu-sig's > Scott... > > http://www.python.org/dev/peps/pep-0356/ One of the best ways to get up to speed quickly with the new features in a new version of Python is with Andrew Kuchling's "What's New" article in the standard documentation. Here's the one for Python 2.5: http://docs.python.org/whatsnew/whatsnew25.html --Dethe > > Oh wait, I just found it: > >>>> import functools >>>> dir(functools) > ['WRAPPER_ASSIGNMENTS', 'WRAPPER_UPDATES', '__builtins__', '__doc__', > '__file__', '__name__', 'partial', 'update_wrapper', 'wraps'] > > So using that same g from before: > >>>> def g(x,m=1,b=0): return m*x + b # slope-intercept linear > >>>> G = functools.partial(g,m=0.25,b=2) >>>> G > >>>> [(x,G(x)) for x in range(8)] > [(0, 2.0), (1, 2.25), (2, 2.5), (3, 2.75), (4, 3.0), (5, 3.25), (6, > 3.5), (7, 3.75)] > > Kwel. > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig "Say what you like about C++, but it's uninitialized variables will always hold a special place in my heart. In a world where we define *everything* concretely it is the last refuge of the undefined. It's the programmer's Wild West, the untamed frontier." --Bjorn Stroustrap From kirby.urner at gmail.com Thu Sep 28 17:19:59 2006 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 28 Sep 2006 08:19:59 -0700 Subject: [Edu-sig] what you can do in a shell In-Reply-To: References: <7B929C75BC8A724F87A531479AEE14FA290C19@MAIL.bhusd.k12.ca.us> Message-ID: On 9/28/06, Dethe Elza wrote: > One of the best ways to get up to speed quickly with the new features > in a new version of Python is with Andrew Kuchling's "What's New" > article in the standard documentation. Yes. Python.org is such a well organized site, I encourage people to visit it often. Kirby From jasonic at nomadics.org Thu Sep 28 17:54:53 2006 From: jasonic at nomadics.org (Jason Cunliffe) Date: Thu, 28 Sep 2006 17:54:53 +0200 Subject: [Edu-sig] The Internet of Things - Bruce Sterling Message-ID: <451BF04D.7040406@nomadics.org> Bruce Sterling -- The Internet of Things http://www.itconversations.com/shows/detail717.html [runtime: 00:57:41, 26.4 mb, recorded 2006-03-06] 2006 O'reilly Emerging Technology Conference. Good stuff funny penetrating literate sensibilty to the role and presence of names and namespaces as technocultural signs and signifiers Another more recent version of his thinking expands on the ideas is his Keynote at Unicomp http://ubicomp.org/ubicomp2006/ In my mind highly relevant to the best of the debates which rage here {KU vs.AS} I like the way Bruce stresses the value and need for such dialogue and namespace consciousness ------ Jason From kirby.urner at gmail.com Fri Sep 29 20:34:46 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 29 Sep 2006 11:34:46 -0700 Subject: [Edu-sig] RSA pre college? Message-ID: I've been brainstorming with other math teachers on the relevance of the Python modulo operator, a primitive right down there with + * / and -, but which doesn't get a lot of focus in traditional K-12 textbooks these days. Why not? The old answer was: Modulo Arithmetic belongs to something called Number Theory, which although a have for math purists, has precious little to do with the real world, and so we should focus on basic arithmetic (the "big four" operations) and leave the modulo stuff for college (and even then, only if they choose to become math majors). The old answer is full of holes of course. We have Modulo Arithmetic devices all over the place in every day life. Clocks, for example. Indeed, the individual columns of our positional notation, are simply Modulo Stacks with carry (hit the Modulus, pop the stack, carry 1, restore 0). Furthermore, we now have RSA running in just about every web client, ready to frame your secure session with a web server authorized to accept your Visa charge (what out for phishing!). I think the new answer is closer to the mark: there's no excuse for avoiding Modulo Arithmetic, and if your school does so, that's a sure sign of mediocrity and you might want to pass that back to your parents ("mom, our math teacher said we we won't study Modulo Anything this year, but Bugs Bunny said it's important" (or was it Mighty Mouse?)). So once your school buys onto this bandwagon, maybe your teacher will deign to project a good shell. Python's is excellent, but not the only game in town. J's is wildly powerful by design (hyperdimensional arrays a favorite breakfast food), worth poking around in. Then there's GameMaker. Nothing wrong with playing in a Game Engine, though I think Gerald's Darwin @ Home is more impressive: he rolls his own, using the most minimalist Physics Rules, and starting with the earliest Java AWT, then moving to JOGL. Any EIG VPython killer app has yet to be started, let alone offered in beta AFAIK. Please update me if I'm wrong about that. For more on Darwin @ Home, watch Gerald's excellent Google Video, hosted in the left margin of Myspace.com/4Dstudios. In sum, I think RSA *will* be making inroads as a curriculum standard in many good schools, right up there with "differentiation by parts" as a relevant algorithm to know about. And one of the benefits is cryptography opens History, both fictionally and nonfictionally. Neal Stephenson has trailblazed extensively in this direction. One thread: RSA was stumbled upon in slightly different form by some British cryptologists, but classified immediately as "too dangerous" for the general public. MIT, with the push of needing a business class solution to an emerging real world challenge (i.e. the need to encrypt on the fly, based on any two parties making random contact through the Internet), had no incentive to classify (quite the reverse). Plus when the cyberpunks discovered the NSA was offering resistence (in part because of the British example -- her dutiful civil servants inspire respect in many corners), the lid simply blew off, with PGP coming out of New Zealand and paranoid geeks teaching their own mothers how to generate public keys (better protection than tin foil). Given this turgid history, it's somewhat understandable why high schools might choose to stay in the bleechers, leaving RSA to the big boyz 'n girlz to kick around. But that's not an optimum way to leave it, especially now that the patent has run out, and rolling one's own is not in violation of anyone's legal rights. At Saturday Academy, I like projecting that website where you're promised big Reward Money, if you're able to crack some of their Modulo Ns (i.e. public keys) into two constituent Probable Primes (an even bigger reward if p and/or q turn out Improbably Composite?). "Python: It's Not Just for War Colleges Anymore" -- probably won't fly as a bumper sticker, but I do find it funny (it alludes to its dark DARPA past). Put a goofy little snake with rolling eyes in the corner, with this funny Revolutionary War hat, a Blunderbuss in its coils. Reminds of Don't Tread on Me. Kirby From driscollkevin at gmail.com Fri Sep 29 21:38:47 2006 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Fri, 29 Sep 2006 15:38:47 -0400 Subject: [Edu-sig] RSA pre college? In-Reply-To: References: Message-ID: <87a8578e0609291238j667fef5bu7875e2b42ac9da9f@mail.gmail.com> I love teaching modulo! There are countless ways to create exploratory learning opportunities in which students discover the need for modulo. And once a student starts programming, modulo really starts to feel like the lost operator. This is a situation in which programming yields a new perspective on mathematics. In the same way that we learn the inadequacy of doubles for representing non-terminating decimal values, the modulo gives new depth to the usefulness of division. Most students in the US remember doing division with a remainder ("R = "). I've employed their nostalgia and sense of mastery over this procedure to help them step into modulo. Kevin On 9/29/06, kirby urner wrote: > I've been brainstorming with other math teachers on the relevance of > the Python modulo operator, a primitive right down there with + * / > and -, but which doesn't get a lot of focus in traditional K-12 > textbooks these days. Why not? > > The old answer was: Modulo Arithmetic belongs to something called > Number Theory, which although a have for math purists, has precious > little to do with the real world, and so we should focus on basic > arithmetic (the "big four" operations) and leave the modulo stuff for > college (and even then, only if they choose to become math majors). > > The old answer is full of holes of course. We have Modulo Arithmetic > devices all over the place in every day life. Clocks, for example. > Indeed, the individual columns of our positional notation, are simply > Modulo Stacks with carry (hit the Modulus, pop the stack, carry 1, > restore 0). Furthermore, we now have RSA running in just about every > web client, ready to frame your secure session with a web server > authorized to accept your Visa charge (what out for phishing!). > > I think the new answer is closer to the mark: there's no excuse for > avoiding Modulo Arithmetic, and if your school does so, that's a sure > sign of mediocrity and you might want to pass that back to your > parents ("mom, our math teacher said we we won't study Modulo Anything > this year, but Bugs Bunny said it's important" (or was it Mighty > Mouse?)). > > So once your school buys onto this bandwagon, maybe your teacher will > deign to project a good shell. Python's is excellent, but not the > only game in town. J's is wildly powerful by design (hyperdimensional > arrays a favorite breakfast food), worth poking around in. > > Then there's GameMaker. > > Nothing wrong with playing in a Game Engine, though I think Gerald's > Darwin @ Home is more impressive: he rolls his own, using the most > minimalist Physics Rules, and starting with the earliest Java AWT, > then moving to JOGL. Any EIG VPython killer app has yet to be > started, let alone offered in beta AFAIK. Please update me if I'm > wrong about that. > > For more on Darwin @ Home, watch Gerald's excellent Google Video, > hosted in the left margin of Myspace.com/4Dstudios. > > In sum, I think RSA *will* be making inroads as a curriculum standard > in many good schools, right up there with "differentiation by parts" > as a relevant algorithm to know about. And one of the benefits is > cryptography opens History, both fictionally and nonfictionally. Neal > Stephenson has trailblazed extensively in this direction. > > One thread: RSA was stumbled upon in slightly different form by some > British cryptologists, but classified immediately as "too dangerous" > for the general public. > > MIT, with the push of needing a business class solution to an emerging > real world challenge (i.e. the need to encrypt on the fly, based on > any two parties making random contact through the Internet), had no > incentive to classify (quite the reverse). > > Plus when the cyberpunks discovered the NSA was offering resistence > (in part because of the British example -- her dutiful civil servants > inspire respect in many corners), the lid simply blew off, with PGP > coming out of New Zealand and paranoid geeks teaching their own > mothers how to generate public keys (better protection than tin foil). > > Given this turgid history, it's somewhat understandable why high > schools might choose to stay in the bleechers, leaving RSA to the big > boyz 'n girlz to kick around. But that's not an optimum way to leave > it, especially now that the patent has run out, and rolling one's own > is not in violation of anyone's legal rights. At Saturday Academy, I > like projecting that website where you're promised big Reward Money, > if you're able to crack some of their Modulo Ns (i.e. public keys) > into two constituent Probable Primes (an even bigger reward if p > and/or q turn out Improbably Composite?). > > "Python: It's Not Just for War Colleges Anymore" -- probably won't > fly as a bumper sticker, but I do find it funny (it alludes to its > dark DARPA past). Put a goofy little snake with rolling eyes in the > corner, with this funny Revolutionary War hat, a Blunderbuss in its > coils. Reminds of Don't Tread on Me. > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From kirby.urner at gmail.com Sat Sep 30 02:22:07 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 29 Sep 2006 17:22:07 -0700 Subject: [Edu-sig] Calculus with Stickworks (more Gnu Math) Message-ID: I've amended stickworks.py a little to show how the basic ideas of differential calculus might be spelled out in Python. First: Take a traditional classroom Polynomial with enough roots to make it wiggle up and down (just come up with some factors), then tweak the vertical scale to keep VPython from zooming out 3 miles just to take in the view. def snakeywakey(x): """ Polynomial with x-axis crossings at 3,2,-3,-7, with scaler to keep y-values under control (from a plotting point of view) """ return 0.01 * (x-3)*(x-2)*(x+3)*(x+7) Second: Include a generic derivative taker that expects a function as input, and returns a function that evaluates to approximately df(x)/dx at any x, assuming whatever you need about continuity and so on. def deriv(f, h=1e-5): """ Generic df(x)/dx approximator (discrete h) """ def funk(x): return (f(x+h)-f(x))/h return funk Third: Graph them together in two different colors. See how a diving slope means a negative derivative, while a leveling off means derivative = 0 (crossing x axis) and so on. Eyeballing the two curves together is a big part of "getting" that the green guy is talking about the *slope* of the red guy at the same x. # domain generators d1 = dgen(-8, 0.1) d2 = dgen(-8, 0.1) axes(-8,5,0) deriv_snakeywakey = deriv(snakeywakey) graph1 = xyplotter(d1, snakeywakey) graph2 = xyplotter(d2, deriv_snakeywakey) Edge.color = (1,0,0) # make 4th degree snakeywakey red for i in xrange(130): graph1.next() Edge.color = (0,1,0) # make its 3rd degree derivative green for i in xrange(130): graph2.next() Here's a link to the picture (in reality, you can zoom in and rotate, look from all points of view -- part of our "beyond flatland" campaign, designed to remind people why we don't prefer the flatlanders' calculators to our flatscreen computers). http://www.4dsolutions.net/ocn/python/pycalculus.png >>> == RESTART ================================ >>> import stickworks Visual 2005-01-08 >>> stickworks.testmemore() Documentation: """ Some infrastructure for working with Vectors and Edges, including an xyplotter generator and axes maker. By Kirby Urner, Sept 13, 2006 Updated Sept 29, 2006: make color Edge class-level attribute add funky derivative demo refactor a bit Code: http://www.4dsolutions.net/ocn/python/stickworks.py For colorized source: http://www.4dsolutions.net/cgi-bin/py2html.cgi?script=/ocn/python/stickworks.py Some relevant discussion: http://mail.python.org/pipermail/edu-sig/2006-September/007145.html http://mail.python.org/pipermail/edu-sig/2006-September/007149.html http://mail.python.org/pipermail/edu-sig/2006-September/007150.html http://mail.python.org/pipermail/edu-sig/2006-September/007312.html """ Kirby From kirby.urner at gmail.com Sat Sep 30 06:25:14 2006 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 29 Sep 2006 21:25:14 -0700 Subject: [Edu-sig] Calculus with Stickworks (more Gnu Math) In-Reply-To: References: Message-ID: > Here's a link to the picture (in reality, you can zoom in and rotate, > look from all points of view -- part of our "beyond flatland" > campaign, designed to remind people why we don't prefer the > flatlanders' calculators to our flatscreen computers). > > http://www.4dsolutions.net/ocn/python/pycalculus.png > RE: http://www.4dsolutions.net/ocn/graphics/pycalculus.png <-- different Colleague notified me the above URL was 404. Fixed. Plus added 2nd derivative (cyan), to source code and picture as well. Time for a blog post? Related chatter with math teachers: http://mathforum.org/kb/thread.jspa?threadID=1459250&tstart=0 Kirby From ajsiegel at optonline.net Sat Sep 30 14:58:07 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 30 Sep 2006 08:58:07 -0400 Subject: [Edu-sig] Calculus with Stickworks (more Gnu Math) In-Reply-To: References: Message-ID: <451E69DF.4050709@optonline.com> kirby urner wrote: >Related chatter with math teachers: >http://mathforum.org/kb/thread.jspa?threadID=1459250&tstart=0 > > I go there and hear you talking to a community of math teachers as if you were an official ambassodor of Python and edu-sig, and as if we were all on the bangwagon of "gnu math" and "__rib__ syntax" here. My inituition failed to failed me again. I don't see anything terribly wrong with a "gnu math" meme or even __rib__, if you must. But you are bullshitting them that there is a cohesive community around these particular Kirby-centric semantics here. Just as you bullshit us that there is a legion of "gnu math" teachers out there awaiting your next instruction. You are taking something open and public, and narrowing it, and appropriating it. I am an active participant of edu-sig (too active for some), so all I can demand is that you not purport to speak for me. Consider this that demand. More generally, I wish you would stop this flim-flam business. Or do it more elegantly, at least. Art From kirby.urner at gmail.com Sat Sep 30 17:36:28 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 30 Sep 2006 08:36:28 -0700 Subject: [Edu-sig] Calculus with Stickworks (more Gnu Math) In-Reply-To: <451E69DF.4050709@optonline.com> References: <451E69DF.4050709@optonline.com> Message-ID: On 9/30/06, Arthur wrote: > kirby urner wrote: > > >Related chatter with math teachers: > >http://mathforum.org/kb/thread.jspa?threadID=1459250&tstart=0 > > > > > I go there and hear you talking to a community of math teachers as if > you were an official ambassodor of Python and edu-sig, and as if we were > all on the bangwagon of "gnu math" and "__rib__ syntax" here. > But we both know: edu-sig and the Math Forum are both public archives, so if I were really doing something too slimey, that'd be evident to everybody pretty I'm trying to impress (not you though) darned quick. My story is pretty easy. I programmed my friend's dad's HP in high school, dove into programming at Princeton (APL terminals in Firestone and dorm basement), took lots of engineering and math, aside from majoring in philosophy, and ended up a career geek for the NGOs and GOs (a little commercial sector). As a former Jersey City high school math teacher, I'm still interested in pedagogy, and from my years of pro programming, know that a *lot* of kids would groove on math more if it could be taught more like a computer science. That's what I'm already up to, plus having the most active Bucky site on the net (BFI didn't exist, no Bob Gray's site -- Chris Fearnley with his FAQ was one of the first). Only then do I come across Python. > My inituition failed to failed me again. > > I don't see anything terribly wrong with a "gnu math" meme or even > __rib__, if you must. But you are bullshitting them that there is a > cohesive community around these particular Kirby-centric semantics > here. Just as you bullshit us that there is a legion of "gnu math" > teachers out there awaiting your next instruction. "Better'n ENRON's Bull" could be my bumber sticker? Accusing me of BS is an OK sin, but there's plenty to spread around, if you want to start pointing fingers. > You are taking something open and public, and narrowing it, and > appropriating it. > Absolutely. My right and freedom. No apologies. Go for it. > I am an active participant of edu-sig (too active for some), so all I > can demand is that you not purport to speak for me. Consider this that > demand. > So considered. Not a problem. There's an irony here. I'm always writing this for a huge invisible public school army, making America great, but in practice I'm this super exclusive army of none. That's just some kind of geometric pattern, of the type we study in Bucky type Synergetics (I say "Bucky type" because there's a Haken guy who wrote some Springer-Verlag type stuff that ain't like ours). > More generally, I wish you would stop this flim-flam business. Or do it > more elegantly, at least. > > Art Oh yeah, easy for you to say. I had this red and black jacket in London, very loud by English standards. As I was preparing to address the London Knowledge Lab in a state of high jet lag, I ordered beer and potato (just trying to blend in). So a baked potato is called a Jacket Potato over there, or so they tell me. I could just see a gleam in the waitresses eye, as she coasted by asking loudly "so how's your Jacket?" I bet she was obliquely referring to my loud coat, now on the back of my chair. I was so much the tourist. In other words: elegant isn't always my style. Kirby From kirby.urner at gmail.com Sat Sep 30 20:10:51 2006 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 30 Sep 2006 11:10:51 -0700 Subject: [Edu-sig] Calculus with Stickworks (more Gnu Math) In-Reply-To: References: <451E69DF.4050709@optonline.com> Message-ID: On 9/30/06, kirby urner wrote: > if it could be taught more like a computer science. That's what I'm > already up to, plus having the most active Bucky site on the net (BFI > didn't exist, no Bob Gray's site -- Chris Fearnley with his FAQ was > one of the first). Only then do I come across Python. > BFI didn't yet exist as a hosted domain on the W3 I should say. Kiyoshi and his Philly friends got the bfi.org moniker secured (John Ferry catching from inside the BFI, then in LA), while I webmastered the first primitive website (still retrievable via archive.org -- note they've so-far kept with the tabs format, plus built something agreeably interactive (the web is less about push, more about pull these days, which I like -- more people publishing their own content, not just passively browsing (of course one wants both active and passive modes)). You'll find me in an old FoxPro Advisor, yakking up Chakovians Coordinates (calling 'em Quadrays), long before I'd stumbled across Python. I'm trying to think how Microsoft could make VFP affordable to schools, for the kind of math-through-programming exercises I'm thinking kids'd love (no, not every kid, and no shame in preferring football). But VFP is already a twisted story by then, having been appropriated by MSFT as a "dBase killer" (Borland went with Ashton-Tate's branding), touting Xbase as one of the Pillars they'd be supporting (right up there with VB and C/C++ I think it was). Obviously BS in retrospect. XBase is not general purpose like VB and not low level like C/C++. It was an early agile, interactive from the beginning, and when upgraded to an OO, was actually more sophisticated than VB -- we *defined* our own classes in a Visual Studio like IDE, didn't just use blackbox DLL objects supplied to us by COM or whatever (though we could use those too, and still do). VFP has always been better than average, by Microsoft's own standards (no shame in having an "average" that you're sometimes "better than" -- I was not saying this to be disparaging of MSFT). Anyway, yes, Chakovian Coordinates, centered at (0,0,0,0). Tom Ace chimed in with some 4x4 rotation matrices and wow, we had like this whole little vector algebra thing going on Synergetics-L. Someday, we'd capitalize on that even further. The Gerald de Jong entered my life, all hyped about Java. He flew out to JavaOne. The guy was already a Canada-trained mathematician and C/C++ guru. It's not like he was just cutting teeth. He had this vision of something called Elastic Interval Geometry and counted both Kenneth Snelson and Bucky Fuller as inspirational in that regard. Following Gerald's lead, I saw the wisdom in using a free language, especially one that'd work over the web, so dove into Java pretty seriously. I forget exactly how that connected me to Python, but it did. Linux was hardly usable as a GUI desktop yet, so all this is in Windows, dating back to early DOS, and in my case, yes, even CP/M on a Zorba. My trajectory from FoxPro through Java to Python is well chronicled in a multipart Geometry through Programming paper I published to 4dsolutions.net. I'm always focused on the same Polyhedra, using Chakovians or whatever, but I keep doing it over in a different language. Towards the end, the Scheme Team was generously coaching me on how I might continue my arc (these were the early edu-sig days, plus I was already posting to that same Math Forum forum), and implement the core ideas yet again in that language. I'm not saying it's a bad idea. However, for all my digging into PLT Scheme, I think by this time I was too mired in other paradigms. Lambda Calculus was never my focus, even at Princeton, where a lot of the original work was done (as I learned only later). Here's that multi-part geometry paper (VFP -> Java -> Python arc i.e. not really the Shuttleworth pipeline, especially when you count the early APL and the ongoing J branch, plus I've dabbled in Perl, C and Pascal, plus did FORTRAN for money (the only way I would)): http://www.4dsolutions.net/ocn/oop.html Kirby From ajsiegel at optonline.net Sat Sep 30 23:46:21 2006 From: ajsiegel at optonline.net (Arthur) Date: Sat, 30 Sep 2006 17:46:21 -0400 Subject: [Edu-sig] Calculus with Stickworks (more Gnu Math) In-Reply-To: References: <451E69DF.4050709@optonline.com> Message-ID: <451EE5AD.6090704@optonline.com> kirby urner wrote: >> You are taking something open and public, and narrowing it, and >> appropriating it. > > Absolutely. My right and freedom. No apologies. Go for it. You are free to do it, but not by right. Is it your right to do anything that no one can stop you from doing? Maybe in a schoolyard sense, yes. But not in a grown-up sense. At least in the world according to me. > In other words: elegant isn't always my style. Believe it or not, I think we are more on the same side, than not. But I am forced to remain adversarial, mostly on the issue of style. Style is malleable, so it becomes a choice, a strategy. Your style - i.e. your strategy - is the basis upon which I am forced to question your seriousness. My style is certainly also open to question. I like to think that my willingness to be abrasive is, at least, a sign of my seriousness. And I am serious. Enough to not feel I need to apologize to anyone for engaging you, which others might see as taking something that is none of my business, and making it my business. I am exercising my citizenship, and am only surpised that others don't feel inclined to do the same. Art