From macquigg at ece.arizona.edu Sun Mar 1 22:02:37 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Sun, 01 Mar 2009 14:02:37 -0700 Subject: [Edu-sig] CTL: Computer Thinking Language Message-ID: <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> There is an interesting article in the latest ACM {Human Computing Skills: Rethinking the K-12 Experience, Fletcher & Lu, Communications of the ACM, Feb.09, p.23}. The authors make a strong case for re-vamping our curricula: despite our best efforts to articulate that CS is more than just programming ... computational thinking (CT) as a skill on a par with reading, writing and arithmetic ... places the core of CS, we believe correctly, in the category of basic knowledge. proficiency in computational thinking helps us systematically and efficiently process information and tasks. lay the foundations of CT long before students experience their first programming language. Programming is to CS what proof construction is to mathematics, and what literary analysis is to English. Then they move to more more controversial statements: Knowledge of programming should not be necessary to proclaim literacy in basic computer science. Substantial preparation in computational thinking is required before students enroll in programming courses. and a specific proposal: a computational thinking language (CTL) that captures core CT concepts must permeate the pedagogy. not a programming language, but rather vocabularies and symbols that can be used to annotate and describe computation, abstraction, and information and provide notation around which semantic understanding of computational processes can be hung. They give as an example, a description of Euclid's algorithm for finding the greatest common divisor. They suggest a syntax, which I transcribe here using as the Greek lower-case lambda: a,b. if a) What else do we need in CTL? Would anyone like to join me in defining this new "language"? I'll write the translator to Python. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * From kirby.urner at gmail.com Mon Mar 2 00:19:51 2009 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 1 Mar 2009 15:19:51 -0800 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> References: <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> Message-ID: Hah, good spoof! Now that ACM is finally seeing the light and is making up "official" abbreviations like "CTL", we should all drop everything and uglify Python, dumb it down -- after already doing this kind of teaching for years, right? Fat chance, right? > What else do we need in CTL? ?Would anyone like to join me in defining this new "language"? ?I'll write the translator to > Python. > > -- Dave Hah, hah. LOL! Kirby From ccosse at gmail.com Mon Mar 2 00:49:38 2009 From: ccosse at gmail.com (=?ISO-8859-1?Q?Charles_Coss=E9?=) Date: Sun, 1 Mar 2009 16:49:38 -0700 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> References: <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> Message-ID: On Sun, Mar 1, 2009 at 2:02 PM, David MacQuigg wrote: > I think the problem may be a need to avoid favoring one language over another. ?Any time you make a proposal to use a specific language, you get immediate opposition from folks who favor another language. What would help most here is if big users of python, i.e. NASA, Google, and other household names, assisted in touting the benefits of python ... (perhaps in the same sense as the concept of a "God" allowed civilization to expand ... i.e. "Don't listen to me ... listen to Him!" ) > I can see the need for a CTL, and I wouldn't object to it being something other than Python, and I'm all in favor of being "fair" to the other languages. ?The one requirement I would insist on is that the language "compute"... > Alternative idea: Rename/Nickname Python -> "CTL" ... and before somebody else does! -Charlie > > -- Dave > ************************************************************ ? ? * > * David MacQuigg, PhD ? ?email: macquigg at ece.arizona.edu ? * ?* > * Research Associate ? ? ? ? ? ? ? ?phone: USA 520-721-4583 ? * ?* ?* > * ECE Department, University of Arizona ? ? ? ? ? ? ? ? ? ? ? * ?* ?* > * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 9320 East Mikelyn Lane ? ? ? * * * > * http://purl.net/macquigg ? ? ? ?Tucson, Arizona 85710 ? ? ? ? ?* > ************************************************************ ? ? * > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- AsymptopiaSoftware|Software at theLimit http://www.asymptopia.org From lac at openend.se Mon Mar 2 07:59:01 2009 From: lac at openend.se (Laura Creighton) Date: Mon, 02 Mar 2009 07:59:01 +0100 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: Message from David MacQuigg of "Sun, 01 Mar 2009 14:02:37 MST." <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> References: <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> Message-ID: <200903020659.n226x1wx026107@theraft.openend.se> I think the whole idea of 'not a programming language' is flawed. If you want to teach concepts in this fashion --- and I think this is a great idea -- you want to teach 'how to use an interpreter' (you are using an interpreted language) and some sort of Test Driven Design (which you do not have to teach explicitly) if you have something like py.test or nose available. Otherwise what you have given yourself is a lot of marking to do, and you are stuck with the same problem that troubles math teachers -- (unless they are teaching from Kirby's Pythonic Math exercises, or something.) You give your kids an assignment, and they don't understand it, and get it wrong. You reteach the principles, and try again. The nice thing about proramming is that it doesn't have to be taught this way. "Here is an acceptance suite. Bash on your program until it passes." is a perfectly acceptable way to go. And this changes your class from math class (where there are correct answers and wrong answers, and hated by those who seem always to get the wrong answers) to programming -- where all running programs are in some sense 'correct' -- they just need to be completed, or to have some bugs removed before they correctly solve the assignment. :) This notion is incredibly liberating to some people. I get the distinct idea that the authors of this paper are functional language fans, and what they are looking for is a way to get to Haskell or ML or something like that. This is 'programming as mathematical proof'. But I don't think that programming is actually like that. I think that the idea that a person needs to invest 10,000 hours in an activity to become very good at it (which seems to work for learning a sport, or learning how to play a musical instrument) seems to work for programming as well. I won't argue for the 10,000 -- but just that if you want to get better at programming, then what you need to do is practice doing it more. Filling yourself with more advanced concepts will not, unfortunately for those of us who are good at filling ourselves up with concepts, change the fact that you need to practice writing programs to improve at writing programs. I think this analysis misses this point, and then tries to get around it by saying -- well, we don't actually care if the students learn to program, only that they learn the concepts behind programming. But I think this is exactly backwards -- the way you should be teaching the concepts behind programming is with an interpreter. Thus you need to teach them a tiny bit of programming _first_ and not second. And more and more I think that Kirby is correct. You should teach math with an interpreter, too. On a related note -- a friend of mine has given his 6 year old son a linux system on a laptop to play with. It is a hit. But now the son wants a book that explains how the linux operating system works. :) Anybody have a reference that is suitable for children? Laura From macquigg at ece.arizona.edu Mon Mar 2 18:01:20 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Mon, 02 Mar 2009 10:01:20 -0700 Subject: [Edu-sig] CTL: Computer Thinking Language Message-ID: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> Apologies for the munged formatting of my original message. Here it is with leading dots to preserve the indent. To: edu-sig at python.org Subject: CTL: Computer Thinking Language There is an interesting article in the latest ACM {Human Computing Skills: Rethinking the K-12 Experience, Fletcher & Lu, Communications of the ACM, Feb.09, p.23}. The authors make a strong case for re-vamping our curricula: . despite our best efforts to articulate that CS is more than just programming ... . computational thinking (CT) as a skill on a par with reading, writing and arithmetic ... places the core of CS, we believe . correctly, in the category of basic knowledge. . proficiency in computational thinking helps us systematically and efficiently process information and tasks. . lay the foundations of CT long before students experience their first programming language. . Programming is to CS what proof construction is to mathematics, and what literary analysis is to English. Then they move to more more controversial statements: . Knowledge of programming should not be necessary to proclaim literacy in basic computer science. . Substantial preparation in computational thinking is required before students enroll in programming courses. and a specific proposal: . a computational thinking language (CTL) that captures core CT concepts must permeate the pedagogy. . not a programming language, but rather vocabularies and symbols that can be used to annotate and describe computation, . abstraction, and information and provide notation around which semantic understanding of computational processes can be hung. They give as an example, a description of Euclid's algorithm for finding the greatest common divisor. They suggest a syntax, which I transcribe here using as the Greek lower-case lambda: . a,b. if a) What else do we need in CTL? Would anyone like to join me in defining this new "language"? I'll write the translator to Python. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * From macquigg at ece.arizona.edu Mon Mar 2 18:18:48 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Mon, 02 Mar 2009 10:18:48 -0700 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <200903020659.n226x1wx026107@theraft.openend.se> References: <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> Message-ID: <5.2.1.1.0.20090302090326.03ecb198@mail.ece.arizona.edu> At 07:59 AM 3/2/2009 +0100, Laura Creighton wrote: >I think the whole idea of 'not a programming language' is flawed. If >you want to teach concepts in this fashion --- and I think this is a >great idea -- you want to teach 'how to use an interpreter' (you >are using an interpreted language) and some sort of Test Driven >Design (which you do not have to teach explicitly) if you have something >like py.test or nose available. Or something like Python's doctests. These could be presented to students without all the overhead of a complete Python program, by embedding them in an application or website, like our soon-to-be-announced http://py-bat.appspot.com. >Otherwise what you have given yourself is a lot of marking to do, and >you are stuck with the same problem that troubles math teachers -- >(unless they are teaching from Kirby's Pythonic Math exercises, or >something.) You give your kids an assignment, and they don't >understand it, and get it wrong. You reteach the principles, and >try again. The nice thing about proramming is that it doesn't have >to be taught this way. > >"Here is an acceptance suite. Bash on your program until it passes." >is a perfectly acceptable way to go. And this changes your class from >math class (where there are correct answers and wrong answers, and >hated by those who seem always to get the wrong answers) to programming -- >where all running programs are in some sense 'correct' -- they just need >to be completed, or to have some bugs removed before they correctly >solve the assignment. :) This notion is incredibly liberating to some >people. We can even turn this around. "Here is a function with an error. Write a test that will catch the error." This will focus the student's attention on learning the critical CT skill of being able to define a problem in precise terms, even before you have the solution. >I get the distinct idea that the authors of this paper are functional >language fans, and what they are looking for is a way to get to >Haskell or ML or something like that. This is 'programming as >mathematical proof'. But I don't think that programming is actually >like that. I think that the idea that a person needs to invest 10,000 >hours in an activity to become very good at it (which seems to work >for learning a sport, or learning how to play a musical instrument) >seems to work for programming as well. I won't argue for the >10,000 -- but just that if you want to get better at programming, >then what you need to do is practice doing it more. Filling yourself >with more advanced concepts will not, unfortunately for those of us >who are good at filling ourselves up with concepts, change the fact >that you need to practice writing programs to improve at writing >programs. I think there are two ways of learning - language style, and logical style. Language style ignores all the inconsistencies and ambiguities in the teacher's presentation, and just absorbs the subject like a sponge. "Osmosis" is another term I have heard applied to this style. Logical style fits each new piece of knowledge into an existing framework, locking in pieces which fit, and rejecting everything else. I'm more of a logical learner, and I have difficulty with human languages, overly-complex programs where every menu follows a different logic, and computer languages that have a lot of "cruft" that you just have to memorize. Still, when I learn something new in Python, I go first to the examples, then study the syntax. Lambda functions are a good example. These were presented to me as something wonderful, something to do with lambda calculus. I didn't get it. Later, I saw some examples, and understood they were nothing but a syntactic trick to define a function when you don't want to give the function a name. If you are going to present lambda functions to students, show some useful examples first, then talk about lambda calculus, if you really must. By the way, naming a function, as opposed to just using it as a piece of an expression, is a concept worthy of special syntax in CTL. How about: . f(a,b): (a+b)/2 # lambda style (do it now) . f(a,b) = (a+b)/2 # save it for later use as a function named "f" Of course, this raises the question, do we really need lambda functions at all? I never use them. >I think this analysis misses this point, and then tries to get around >it by saying -- well, we don't actually care if the students learn to >program, only that they learn the concepts behind programming. But >I think this is exactly backwards -- the way you should be teaching >the concepts behind programming is with an interpreter. Thus you >need to teach them a tiny bit of programming _first_ and not second. > >And more and more I think that Kirby is correct. You should teach >math with an interpreter, too. > >On a related note -- a friend of mine has given his 6 year old son >a linux system on a laptop to play with. It is a hit. But now the son >wants a book that explains how the linux operating system works. :) >Anybody have a reference that is suitable for children? When my daughter was seven, she started playing with the Unix system in our lab, and by herself discovered how to write messages and print them. I was even more impressed when she asked if there wasn't some way to send the message to another computer. Mind like a sponge!! I totally agree that kids can use an interpreter before they even know how to add a column of numbers. Not to say we shouldn't teach addition first. I wouldn't want to see kids ignore math lessons because they don't see the usefulness of doing something a computer can do for them. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * From mpaul213 at gmail.com Mon Mar 2 19:00:14 2009 From: mpaul213 at gmail.com (michel paul) Date: Mon, 2 Mar 2009 10:00:14 -0800 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> References: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> Message-ID: <40ea4eb00903021000o30392535ha5d49c1acafbf90a@mail.gmail.com> Before I discovered Python a couple of years ago I was experimenting with a pseudo-code approach for expressing math concepts. I had this kind of stuff in mind: factorial(n): if n < 2 ---> 1 else ---> n*factorial(n-1) No particular official syntactical rules here, just an attempt to organize ideas. Imagine my delight when I first saw Python! I started laughing. I think some kind of a CTL approach would be especially good for a math curriculum. Maybe instead of 'Computer' TL, call it 'Computational' TL. It's what algebra should be these days. And if your CTL also RUNS, well, so much the better. Most students, and probably most people, would read "2 + 2" as "2 plus 2", but notice how much more mathematically and computationally effective it would be if they could develop the habit of reading or thinking of "2 + 2" as "the sum of 2 and 2" or "sum(2, 2)". Think of the whole, the resulting value. And how about "2 + 3 * 4"? Again, the typical reading would be "2 plus 3 times 4", and that's ambiguous, and so in math classes we have to talk about 'order of operations', and usually the only justification we give for 'order of operations' is that we have to have some kind of social agreements in place in order to avoid confusion. Right? However, it is again more mathematically effective to read "2 + 3 * 4" as "the sum of 2 and the product of 3 and 4", or, sum(2, product(3, 4)). No ambiguity there! And this is how you have to think when you hook chains of functions together. This kind of stuff could be done very early in the curriculum. Doesn't have to wait for either advanced math classes or computer science. Math teachers often forget, or are unaware, that the ordinary arithmetic operators are themselves functions. I think it would be good for math classes to explore this kind of functional composition for very simple ideas. By the way, we started studying sequences today in class. What's a really good Pythonic tool for studying sequences ---> generators! - Michel On Mon, Mar 2, 2009 at 9:01 AM, David MacQuigg wrote: > Apologies for the munged formatting of my original message. Here it is > with leading dots to preserve the indent. > > To: edu-sig at python.org > Subject: CTL: Computer Thinking Language > > There is an interesting article in the latest ACM {Human Computing Skills: > Rethinking the K-12 Experience, Fletcher & Lu, Communications of the ACM, > Feb.09, p.23}. > > The authors make a strong case for re-vamping our curricula: > > . despite our best efforts to articulate that CS is more than just > programming ... > . computational thinking (CT) as a skill on a par with reading, writing > and arithmetic ... places the core of CS, we believe > . correctly, in the category of basic knowledge. > . proficiency in computational thinking helps us systematically and > efficiently process information and tasks. > . lay the foundations of CT long before students experience their first > programming language. > . Programming is to CS what proof construction is to mathematics, and > what literary analysis is to English. > > Then they move to more more controversial statements: > > . Knowledge of programming should not be necessary to proclaim literacy > in basic computer science. > . Substantial preparation in computational thinking is required before > students enroll in programming courses. > > and a specific proposal: > > . a computational thinking language (CTL) that captures core CT concepts > must permeate the pedagogy. > . not a programming language, but rather vocabularies and symbols that > can be used to annotate and describe computation, > . abstraction, and information and provide notation around which semantic > understanding of computational processes can be hung. > > They give as an example, a description of Euclid's algorithm for finding > the greatest common divisor. They suggest a syntax, which I transcribe here > using as the Greek lower-case lambda: > > . a,b. if a > At this point, they really lost me. Why would anyone go to this much > effort to avoid programming language. Python's equivalent statement is just > as simple (although a bit odd in its ordering): > > . lambda a,b: (a, b-a) if (a > Have these guys never heard of Python? > > I think the problem may be a need to avoid favoring one language over > another. Any time you make a proposal to use a specific language, you get > immediate opposition from folks who favor another language. In my > department (Java & C++), and at our community college (Java, BASIC, Alice), > I seem to have been labeled as the "Python guy", pushing "yet another > language", or even worse, the guy who wants to get rid of type declarations. > Python is seen as a "scripting language", something equivalent to csh or > bash. To avoid being pigeonholed, I now just say "we need a more agile > language". > > I can see the need for a CTL, and I wouldn't object to it being something > other than Python, and I'm all in favor of being "fair" to the other > languages. The one requirement I would insist on is that the language > "compute", i.e. no ambiguity as to a result (no psuedocode). It would also > be nice if CTL could be automatically translated to a real computer > language, so there is a smooth transition when students are ready for the > real thing. Students could test their CTL by popping it into the > translator, running it in a real interpreter, and getting immediate > feedback. > > CTL should certainly include simple functions like min(), max(), sum(), and > sqrt(). It could also include functions like range(a,b), introducing the > idea that functions can return something besides numbers. At this point > there may be some controversy over how to treat the endpoints, but that > could be worked out in compromise between the different languages. > > Moving on to week three of the lesson plan, we could introduce the idea of > defining our own functions, adding new concepts one at a time. > > f(a,b): (a+b)/2 # a simple function > f(a,b): (a+b)/(2*pi) # with an "outside" variable > f(a,b): if a f(a,b): a2 = a**2; b2 = b**2; return (a2 + b2)/2 # temporary variables and > a statement sequence > > # control flow with multiple statements > f(a,b): if a<(b-5), return a; if (b-5)<=a<=(b+5), return (a+b)/2; return b > > # recursion > f(a,b): if a > This is a bit Pythonic, but only because I'm more familiar with Python than > Ruby or Lua, or some other language that might like to contribute some gems. > We could even invite Java, if she will come down to this level. :>) > > What else do we need in CTL? Would anyone like to join me in defining this > new "language"? I'll write the translator to Python. > > -- Dave > ************************************************************ * > * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * > * Research Associate phone: USA 520-721-4583 * * * > * ECE Department, University of Arizona * * * > * 9320 East Mikelyn Lane * * * > * http://purl.net/macquigg Tucson, Arizona 85710 * > ************************************************************ * > > > _______________________________________________ > 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: From bostonvaulter at gmail.com Mon Mar 2 22:41:10 2009 From: bostonvaulter at gmail.com (Jason Axelson) Date: Mon, 2 Mar 2009 11:41:10 -1000 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <40ea4eb00903021000o30392535ha5d49c1acafbf90a@mail.gmail.com> References: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <40ea4eb00903021000o30392535ha5d49c1acafbf90a@mail.gmail.com> Message-ID: <21810b630903021341n35e36670v7288d0bd235e4018@mail.gmail.com> As a current college student myself, I feel like chiming in here. 2009/3/2 michel paul : > However, it is again more mathematically effective to read "2 + 3 * 4" as > "the sum of 2 and the product of 3 and 4", or,? sum(2, product(3, 4)).? No > ambiguity there!? And this is how you have to think when you hook chains of > functions together.? This kind of stuff could be done very early in the > curriculum.? Doesn't have to wait for either advanced math classes or > computer science. Perhaps it may be appropriate to try and introduce prefix notation to students, such as what lisp uses. So instead of "2 + 3 * 4" or sum(2, product(3, 4)) it would be (+ 2 (* 3 4)). Unfortunately, that might make their eyes glaze over, but you could state how it is unambiguous and maybe formalize infix notation for them. > Math teachers often forget, or are unaware, that the ordinary arithmetic > operators are themselves functions.? I think it would be good for math > classes to explore this kind of functional composition for very simple > ideas. Personally I found that being able to think about many math concepts as functions helped me a great deal with managing the complexity of many math courses. Just my 2 cents. -Jason From kirby.urner at gmail.com Mon Mar 2 23:01:33 2009 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 2 Mar 2009 14:01:33 -0800 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <40ea4eb00903021000o30392535ha5d49c1acafbf90a@mail.gmail.com> References: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <40ea4eb00903021000o30392535ha5d49c1acafbf90a@mail.gmail.com> Message-ID: Having come from APL, later Logo, I'm used to interactive REPL (direct interaction with an interpreter), gradually building up a "namespace" i.e. as you define turtle-drawing functions, these get remembered. You save to disk for persistence, but the primary experience is of being in a "session" and having a "workbench" of tools you've defined (more like in bash -- not afraid to compare Linux shell with Python shell). Tim Peters reminded me of ISETL awhile back, another attempt to harness an interpreter for math learning. There's a proud history here, ongoing of course. Where I think the idea of "a program" misleads is it may get you thinking about a full blown application, menu driven or GUI, where everything is tied together in some main loop, lots of infrastructure in that case. In that sense, very few .py files in Standard Library are "programs", probably why we refer to them as "modules" instead. We might say one "authors" or "writes" a module; I'm not sure the verb "to program" deserves such a central position here. We're writing and saving algorithms for our math library, making use of stuff we've proved on the white board, or accepted as proven from reliable sources (or maybe we're experimenting with conjectures, who's to say...). Python starts us in "calculator mode" (or can, if you've got IDLE set up right), and that's all REPL (read, evaluate, print, loop), all session-based thinking. Modules are more like "frozen sessions" i.e. all those classes and functions you defined (all objects) are now ready for reuse, for importing ("thawing") in other modules etc. But there's no implication of some "glue" holding all the classes and functions together, besides the running interpreter itself. When you import a module, it's like typing it really fast into your current session, giving your interpreter (our snake) more stuff for its memory. We can talk about pickling and marshalling too. Go ahead an say "persistence layer" why not? But the older idea of "library" is probably what most will hook onto. For example, one of the first namespaces we'd import in math class would be... (drum roll, suspense), the math module. But 'import math' gets you a grab bag, a fish tank, an aquarium, a zoo, a namespace... all these images are way better and more accurate the "program". What you get is a bunch of balloons (objects on strings), and when you go a = b, you're assigning another string to the same balloon. At least in Python that's the model, not saying all languages share the same model, which is why you shouldn't teach a language without also teaching its core concepts. Let's not pretend there's some pie in the sky generic model and write pseudo-code for it, or we'll just end up with yet another language with the disadvantage of not running (call it CTL for short -- always just around the corner, at the end of the rainbow, nothing at hand is ever quite good enough because...). Anyway, we all know Python is "good enough" and in that mental model, a module is like a "bunch of balloons" (good flying circus imagery, maybe a clown holding the strings). Another bias the "programmers" bring to our math class, which we don't necessarily share, is this tendency to use raw_input or input to "prompt" for data, e.g. "Please enter today's date: _ ". The psychology here is inherited from "programming for a user" i.e. I'm the behind the scenes puppet master programmer, and who I'm writing for is someone out there in the audience who doesn't get to see backstage. There's this dichotomy between "end user" and "coder" that's very strong, such that "programming" is a kind of "performance art", with CS the "back stage science". In contrast, since FOSS and the invention of interpreter-based math curricula (on .NET/Mono, on C, using whatever REPL or language, maybe Scheme **), we're happy to swap code around, share, but we're all back stage coders, are peers in the sense of knowing how to create modules. There's no "clueless audience" that "doesn't know FORTRAN". This is math class, and we all know how to write math notation (including the executable kind, which we prefer -- marketing: "ours runs, theirs walks or just sits there"). We simply assume the source code is available, along with a test suite, so go ahead in check out the documentation and go crazy, import our resources and mix 'em in with your own. That's the liberal arts culture. But raw_input? That's a throwback to the days of BASIC, gimme a break! Kirby ** please feel free to refer to Python's lambda as 'little lambda' (as in 'Mary had a...'), and suggest to your department that one reason Python is such a good entry point is that it has the seeds of these other languages, e.g. in the LISP/Scheme family, lambda is all grown up, is something huge, and people worship it, name their calculus after it etc. From kirby.urner at gmail.com Mon Mar 2 23:20:25 2009 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 2 Mar 2009 14:20:25 -0800 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <21810b630903021341n35e36670v7288d0bd235e4018@mail.gmail.com> References: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <40ea4eb00903021000o30392535ha5d49c1acafbf90a@mail.gmail.com> <21810b630903021341n35e36670v7288d0bd235e4018@mail.gmail.com> Message-ID: On Mon, Mar 2, 2009 at 1:41 PM, Jason Axelson wrote: > As a current college student myself, I feel like chiming in here. > > 2009/3/2 michel paul : >> However, it is again more mathematically effective to read "2 + 3 * 4" as >> "the sum of 2 and the product of 3 and 4", or,? sum(2, product(3, 4)).? No >> ambiguity there!? And this is how you have to think when you hook chains of >> functions together.? This kind of stuff could be done very early in the >> curriculum.? Doesn't have to wait for either advanced math classes or >> computer science. > The mental model in Python is 2, 3 and 4 each "know their stuff" when it comes to doing these operations, have them internalized ("in their bones"). In that sense, translating 2 + 3 to sum(2, 3) is less useful that using native Pythonic 2.__add__(3) with __add__ being a verb like "eat" (ingest). "2 eats 3, returns 5 object" is a better image that "sum eats a 3 and 2 objects, returns 5 object". Of course if you're bridging to Scheme, then maybe that's another matter. OO isn't going to be so important, your mental models will be different. However, in the Python head space, we don't so much like the idea of "operations" just floating as globals, unencapsulated, outside of any number objects. That's the old paradigm, kind of gets in the way. And yes, I know it's still quite possible to code and think in that way with Python, a forgiving environment. But in terms of helping students master OO, we want the idea of methods *internal* to the class definition. sum(2, product(3, 4)) means 2.__add__ ( 3.__mul__(4) ) -- like fish eating fish: http://www.efuse.com/Plan/fish-eat-fish-richard-cook-artville-com.jpg ( integers = fish ) > Perhaps it may be appropriate to try and introduce prefix notation to > students, such as what lisp uses. So instead of "2 + 3 * 4" or sum(2, > product(3, 4)) it would be (+ 2 (* 3 4)). Unfortunately, that might > make their eyes glaze over, but you could state how it is unambiguous > and maybe formalize infix notation for them. > >> Math teachers often forget, or are unaware, that the ordinary arithmetic >> operators are themselves functions.? I think it would be good for math >> classes to explore this kind of functional composition for very simple >> ideas. > There's not just one overarching model in my model. Different languages and notations, all with a claim to being mathematical, will come with different gestalts, core abstractions. This is what math teachers often forget: that there's no "one thing" that is "a mathematics". Wittgenstein's notion of "family resemblance" enters at this juncture, helps break the spell of "an essence" (so tempting, so wrong). > Personally I found that being able to think about many math concepts > as functions helped me a great deal with managing the complexity of > many math courses. Just my 2 cents. > > -Jason Finding a model helpful is a good recommendation for sharing it with others and I wouldn't want to get in your way of doing that. On the other hand, if Python is what we're learning, then looking at 2 + 3 as a way of firing the add method inside of an integer, is what we'd like to focus on in many cases. However, we're not so far apart, as functions are very akin to methods and static methods are really quite indistinguishable, not even needing a self. >From Oregon Curriculum Network (OCN): http://www.flickr.com/photos/17157315 at N00/3308514585/sizes/o/ Kirby From echerlin at gmail.com Tue Mar 3 17:26:04 2009 From: echerlin at gmail.com (Edward Cherlin) Date: Tue, 3 Mar 2009 08:26:04 -0800 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> References: <5.2.1.1.0.20090301072037.03ed16c0@plus.pop.mail.yahoo.com> Message-ID: Comments below. We can provide the authors with a great deal more information on request. On Sun, Mar 1, 2009 at 1:02 PM, David MacQuigg wrote: > There is an interesting article in the latest ACM {Human Computing Skills: Rethinking the K-12 Experience, Fletcher & Lu, Communications of the ACM, Feb.09, p.23}. > > The authors make a strong case for re-vamping our curricula: > despite our best efforts to articulate that CS is more than just programming ... > computational thinking (CT) as a skill on a par with reading, writing and arithmetic ... places the core of CS, we believe correctly, in the category of basic knowledge. CS, including incompleteness and undecidability results, is fundamental to epistemology, which is fundamental to child development, as Piaget showed in considerable detail. (What is true? How do you know? When do you need to suspend judgment?) For example, "proof" and "theorem" can be syntactically defined in either logic or CS, but "truth" does not have a mathematical definition. The definition of proof leads to the creation of sentences that can be neither proved nor disproved. A definition of "truth" would, by exactly the same mechanism, allow us to create sentences of arithmetic that are neither true nor false. > proficiency in computational thinking helps us systematically and efficiently process information and tasks. > lay the foundations of CT long before students experience their first programming language. > Programming is to CS what proof construction is to mathematics, and what literary analysis is to English. I don't see it that way. Programming:CS::calculation:math, perhaps, but the analogy is necessarily imperfect. > Then they move to more more controversial statements: > Knowledge of programming should not be necessary to proclaim literacy in basic computer science. True if programming is defined by conventional languages written in a text editor. > Substantial preparation in computational algorithmic and constraint-based > thinking is required before students enroll in programming courses. It hasn't been, but should be. We have accepted the ability to calculate and solve equations as a substitute for the higher-level concepts required. > and a specific proposal: > a computational thinking language (CTL) that captures core CT concepts must permeate the pedagogy. > not a programming language, but rather vocabularies and symbols that can be used to annotate and describe computation, abstraction, and information and provide notation around which semantic understanding of computational processes can be hung. I am doing precisely that with the Sugar version of TurtleArt, which provides tiles that hook together to create programs. The schoolchild learning TurtleArt is not bothered with syntax in any form. Tiles are keyed to render type mismatches impossible. The resulting program is in tree form, like the output of a compiler parser. Outputting various languages brings in the various tree-walk orders and issues of generative grammars. We are creating several sets of tiles to illustrate different CS concepts, and planning a primary school CS course with interactive digital textbooks. I can do all of Euclidean plane geometry, plane analytic geometry, and a toy Turing machine (finite tape, finite set of state symbols) in Turtle Art. We can create tiles for almost any model of programming and computer structure, including prefix (LISP, SCHEME, LOGO), infix (most languages), and suffix (FORTH, RPN calculator) expressions; procedural vs functional vs object-oriented message passing; a wide range of control structures; and much more. > They give as an example, a description of Euclid's algorithm for finding the greatest common divisor. ?They suggest a syntax, which I transcribe here using as the Greek lower-case lambda: > a,b. if a At this point, they really lost me. ?Why would anyone go to this much effort to avoid programming language. ?Python's equivalent statement is just as simple (although a bit odd in its ordering): > lambda a,b: (a, b-a) if (a Have these guys never heard of Python? gcd =. if <.(a,b)>0 then gcd/(>./(a,b)-<./(a,b), <./(a,b)) else >./(a,b) in J-like syntax, where <. is min, and >. is max, and / turns prefix expressions into infix. > I think the problem may be a need to avoid favoring one language over another. ?Any time you make a proposal to use a specific language, you get immediate opposition from folks who favor another language. ?In my department (Java & C++), and at our community college (Java, BASIC, Alice), I seem to have been labeled as the "Python guy", pushing "yet another language", or even worse, the guy who wants to get rid of type declarations. ?Python is seen as a "scripting language", something equivalent to csh or bash. ?To avoid being pigeonholed, I now just say "we need a more agile language". TurtleArt is written in Python. That means that at some point we can teach children to write their own tile definitions. > I can see the need for a CTL, and I wouldn't object to it being something other than Python, and I'm all in favor of being "fair" to the other languages. ?The one requirement I would insist on is that the language "compute", i.e. no ambiguity as to a result (no psuedocode). This is yet another reason not to use text pseudocode, and not to create Yet Another Text Programming Language. > It would also be nice if CTL could be automatically translated to a real computer language, so there is a smooth transition when students are ready for the real thing. ?Students could test their CTL by popping it into the translator, running it in a real interpreter, and getting immediate feedback. TurtleArt currently outputs to its own format, which saves the page geometry as well as the program http://docs.python.org/library/json.html and to Logo. Writing a Python method to output any other reasonable form of code (NOT Intercal, Befunge, or Unlambda, or a Turing machine state table) would be easy. There is also a different implementation of Turtle Art, Kturtle, which has its own built-in editor. > CTL should certainly include simple functions like min(), max(), sum(), and sqrt(). ?It could also include functions like range(a,b), introducing the idea that functions can return something besides numbers. ?At this point there may be some controversy over how to treat the endpoints, but that could be worked out in compromise between the different languages. > > Moving on to week three of the lesson plan, we could introduce the idea of defining our own functions, adding new concepts one at a time. > > f(a,b): (a+b)/2 ? ? ? ? ? # a simple function > f(a,b): (a+b)/(2*pi) ? ? ? ? ? # with an "outside" variable > f(a,b): if a f(a,b): a2 = a**2; b2 = b**2; return (a2 + b2)/2 ?# temporary variables and a statement sequence All of this is supported in recent versions of TurtleArt, where the code for a tile can call any Python function. > # ?control flow with multiple statements > f(a,b): if a<(b-5), return a; if (b-5)<=a<=(b+5), return (a+b)/2; return b > > # ?recursion > f(a,b): if a This is a bit Pythonic, but only because I'm more familiar with Python than Ruby or Lua, or some other language that might like to contribute some gems. ?We could even invite Java, if she will come down to this level. ?:>) > > What else do we need in CTL? ?Would anyone like to join me in defining this new "language"? ?I'll write the translator to Python. You're on. http://sugarlabs.org/go/Activities/TurtleArt > -- Dave > ************************************************************ ? ? * > * David MacQuigg, PhD ? ?email: macquigg at ece.arizona.edu ? * ?* > * Research Associate ? ? ? ? ? ? ? ?phone: USA 520-721-4583 ? * ?* ?* > * ECE Department, University of Arizona ? ? ? ? ? ? ? ? ? ? ? * ?* ?* > * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 9320 East Mikelyn Lane ? ? ? * * * > * http://purl.net/macquigg ? ? ? ?Tucson, Arizona 85710 ? ? ? ? ?* > ************************************************************ ? ? * > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Silent Thunder (??/???????????????/????????????? ?) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Ed Cherlin) From kirby.urner at gmail.com Tue Mar 3 21:12:46 2009 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 3 Mar 2009 12:12:46 -0800 Subject: [Edu-sig] my Pycon nametag (ISEPP) -- isepp.org Message-ID: FYI, here's something fun I posted to my local think tank. Terry is our president and I'm representing his ISEPP (Institute for Science, Engineering and Public Policy) at Pycon this time (2009, Chicago). Time to make that airplane reservation. Re this myth that "kids hate syntax" and need training wheels on training wheels to insulate them from "the evil lexical" (aka left brain), that's not my experience with older kids. They love eye candy, sure (who doesn't), but having consistent syntax to play with is really a big part of the fun, drag and drop GUI programming, like with Mindstorms, considered very unconstructive at this age level. I think part of the problem is Piaget dropped out early, in terms of tracking what growing minds need, had no clue about the age ranges I work with. This is just fine, as we wean them from the XO pretty early (keyboard quite tiny, Fischer-Price look only cute for so long), move to something more suitable. But that experience with Pippy was no waste of time (never mind about Squeak, we have E-toys galore in the education arcade, new physics engines coming out of Japan and places **). That being said, I'm all for Sims 2 (3,4..) and TurtleArt, anything avatar (2nd Life...), consider Valve's HalfLife2 probably one of the greatest artworks of all time (judging aesthetically) though yes, it's dark, gothic, kinda Lovecraft meets Laffoley meets... Les (CIO). I even think Alice is pretty cool (Arthur had lots of problems with Alice, I think because he wanted to champion left brain sports in older teens, right brain should be in the real out doors, using your *real* avatar, i.e. your own body -- and I'm extremely sympathetic to this, need to get to the gym myself, right after posting this, and making my plane reservation). Anyway, check math-thinking-l if you want to see more on this CTL business. I've got both threads going: both the FOSS and the "new kind of geometry" (pun on Wolfram's title) per the "Minister of FOSS" post below (yes it's dense and slow going, I admit it -- maybe shelve it for later then). Actually, I just thought of a couple more things to do before gym... like finding my iPod (for listening to Britney, a gnu math teacher for older kids, per my Kraftwerk post...). >From FOSS capital, Kirby PS: Dr. Chuck coming from Boston or somewhere, not for tutorials, so I'll plan to meet up with him later (he's the Google App Engine guy at U Mich, did tech review with him for O'Reilly, per recent archivals). Feel free to jump in on math-thinking-l if you want to do CTL more. I feel I've said the same thing enough times on edu-sig that I should mostly post elsewhere, where readers are still unfamiliar with "Coyote Academy" (charter) and/or TECC in Matsu District (AK). ** from my most recent to math-thinking-l, re FOSS in Japan (atop a proprietary physics engine, of interest to constructivists): http://www.youtube.com/watch?v=9Thjgz9Zzxs&feature=related http://www.youtube.com/watch?v=vA5PYEmreTI&feature=channel_page http://www.phunland.com/forum/viewtopic.php?id=916 ---------- Forwarded message ---------- From: kirby urner Date: Tue, Mar 3, 2009 at 10:41 AM Subject: ISEPP nametag (biz cards not needed) To: Wanderers So Terry, don't think I need biz cards as geek culture is "go Google" and there's only one "Kirby Urner" so all 10K+ hits are mine -- easy to get info. ?But I do have ISEPP printed on the nametag and plan to talk incessantly (if queried) about how PDX is lightyears ahead of any other USA city, except maybe Matsu District AK, when it comes to FOSS in education, promoting the XO, making dreams come true for those wishing good lifestyles in our Silicon Forest (which extends from Arcata through Bellingham when I'm feeling expansive). For those who couldn't make the Livio meeting at Pauling House, maybe didn't see the write-up on Coffee Shops Network, I had the privilege of running some Akbar font slides, telling some stories, going through SQL, RSA very quickly (in more detail per ISEPP archive), stopping at 4D vs. 4D vs. 4D, a slide about geometry and where Fuller (as in Bucky) fits into the grand scheme of things. The deal here is our minimum spacefiller, or MITE, depicted on pg. 71 of Coxeter's 'Regular Polytopes' Fig 4.7a, is considered to have volume 1/8 per prefrequency concentric hierarchy, a design science gizmo or sculpture they get in Japan (Yasushi Kajikawa et al), won't teach in the Lower 48 (for no reason, just inertia and laziness, people slobs in this area). ?Amy Edmondson (Harvard) wrote the obligatory 'secondary literature' under tutelage of Dr. Loeb (MIT, crystallographer, friend of M.C. Escher and son), got it published through Birkhauser, 1987, respected academic press, so that should've been it, as far as leaping over hurdles ('Synergetics' in two volumes already out by this time, Scribner/Macmillan, 1975, 1979). ?Now it was the turn of the professoriate, to pick up the ball, which mostly didn't happen, given the Ivory Tower is controlled by uber-cowards of no self respect. ?Enter the private sector at this point, aka Silicon Forest, Valley and others, with better eye candy, ray tracers, FOSS... we pick up the ball and run with it, Fuller's so-called design science revolution, much anticipated. ?We leave most universities in the dust, but we don't care, as this is Global U City, with city-as-campus (per Google Streets), not feeling like knocking on doors when we're already so entrenched. So the deal with Livio, for me, was to link this MITE thread to his phi-base of knowledge, to Koski's stuff on PolyList, which I didn't have time to explain, to Karl Menger's famous article (Eve's dad), which Livio said he'd studied, so on the same wave-length. ?Karl's "geometry of lumps" suggests we do "non-Euclidean" in a different way than just fiddling with 5th postulate (been there done that): ?let's define all primitives to be "lumps" (as "of clay") and not talk so obsessively about how they differ in "dimension" and blah blah. ?Yes, this undermines the whole "fractional dimensions" superstructure, build on the XYZ way of thinking (a lot of French philosophy about rez extensa), but doesn't invalidate any of the algorithms or resulting T-shirts, which really are to-die-for, i.e. Mandelbrot lives on as a "focal point" in our curriculum, along with Pascal's Triangle (or Chinese equivalent), concentric hierarchy (like in Korea), and "NCLB Polynomial" (probably unknown to most here, given this is Lower 48, an idiocracy, albiet Portland is light years ahead...). So if we're *not* distinguishing points, lines and planes as to their "dimension" in this geometry (self consistent, non-Euclidean), then what do we call them for backward compatibility? ?We come up with 4D (as in 4D Solutions), meaning every "lump" is an "arrow-head" or "tetrahedron", this shape being the topologically most primitive cage, or "that with an inside and outside (convex/concave)" per Euler and other topologists. ?The greek "tetra" means "four" and we enshrine this minimalhood with our "4D" moniker. ?In contrast, the literature already has two entrenched uses of '4D' inheriting from early 1900s, where we experienced an initial shakeout (Claude Bragdon, P.D. Ouspensky also players, but not much cited these days except in art books like Linda D. Henderson's). ?These two 4Ds maybe be anchored to Einstein and Coxeter respectively although this is just shorthand. ?In Einstein type writings, the "fourth dimension" is more "imaginary" (as in "imaginary time") whereas in Coxeter type writings there's nothing time-like about any of the dimensions, they're all spatial, and you can have as many as you like (J.H. Conway really into the "n-D sphere packing matrix" or "lattice" maybe he calls it). In Python, other FOSS languages, we have this concept of "namespace" with prefix "dot notation", so when teaching other geeks about all of the above, I go einstein.4d, coxeter.4d, fuller.4d and they get it. Anyway, Livio completely understood everything I was saying and had lots of good comments, which I've taken to heart, will use to modify a couple of my Chicago slides. ?I'm supposed to deliver a preview at Wanderers on March 17 for those interested. ?In the mean time, I should be making that airplane reservation. ?Math teachers in Chicago will be fascinated to hear all this Saturday Academy stuff, direct from the horses mouth as it were. ?We beat the pants off other cities, especially in the Lower 48 (not so sure about Cape Town). Kirby Urner Minister of FOSS ISEPP PS: ?only room for ISEPP on nametag, plus in Python Nation I'm more properly known as Minister of Education, Google's Guido our BDFL (benevolent dictator for life). ?Per postings to other lists, we get together and make jokes about "math teachers" who don't know about MITEs. ?Just kidding (as Naomi might say, an old 2D friend from Princeton (2D was the house I lived in, same as John Baez but at a different time)). From macquigg at ece.arizona.edu Tue Mar 3 23:27:28 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Tue, 03 Mar 2009 15:27:28 -0700 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <40ea4eb00903021000o30392535ha5d49c1acafbf90a@mail.gmail.co m> References: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> Message-ID: <5.2.1.1.0.20090302162526.03ecb198@mail.ece.arizona.edu> At 10:00 AM 3/2/2009 -0800, michel paul wrote: >Before I discovered Python a couple of years ago I was experimenting with a pseudo-code approach for expressing math concepts. I had this kind of stuff in mind: > >factorial(n): > if n < 2 ---> 1 > else ---> n*factorial(n-1) I like the feeling of action in --->, but I also like the self-explanatory "return". Any other suggestions? Strong preferences? We could use a symbol other than = for assignment, just to avoid confusion with the comparison operator and to introduce the idea of variables as labels, not containers. How about: a2 --> a**2 a --> b --> c --> 0 A simple demo: >>> c --> 1 # move label c, not a or b >>> a,b,c (0, 0, 1) >I think some kind of a CTL approach would be especially good for a math curriculum. Maybe instead of 'Computer' TL, call it 'Computational' TL. Good point. That was actually the choice in Fletcher's article. Kids will probably shorten it to computer, however. >It's what algebra should be these days. And if your CTL also RUNS, well, so much the better. > >Most students, and probably most people, would read "2 + 2" as "2 plus 2", but notice how much more mathematically and computationally effective it would be if they could develop the habit of reading or thinking of "2 + 2" as "the sum of 2 and 2" or "sum(2, 2)". Think of the whole, the resulting value. > >And how about "2 + 3 * 4"? Again, the typical reading would be "2 plus 3 times 4", and that's ambiguous, and so in math classes we have to talk about 'order of operations', and usually the only justification we give for 'order of operations' is that we have to have some kind of social agreements in place in order to avoid confusion. Right? > >However, it is again more mathematically effective to read "2 + 3 * 4" as "the sum of 2 and the product of 3 and 4", or, sum(2, product(3, 4)). No ambiguity there! And this is how you have to think when you hook chains of functions together. This kind of stuff could be done very early in the curriculum. Doesn't have to wait for either advanced math classes or computer science. It would be nice to avoid in CTL the complexities of precedence and associativity rules (very non-fundamental knowledge). How about we just do all operations in the order they occur, unless you force a different order with parens. 2 + 3 * 4 same as (2 + 3) * 4 2 + 3 * 4 ** 5 same as ((2 + 3) * 4) ** 5 On the other hand, we don't want to teach something students have to unlearn when they get to a real language. Since CTL is for CS0-level students, we should discourage complex expressions that rely on these rules, and not drill or test students on this particular choice. It's just there to make things easy for beginners. >Math teachers often forget, or are unaware, that the ordinary arithmetic operators are themselves functions. I think it would be good for math classes to explore this kind of functional composition for very simple ideas. > >By the way, we started studying sequences today in class. What's a really good Pythonic tool for studying sequences ---> generators! Should we include generators in CTL? Seems like students at this level should have graduated to a full-featured language. Might be fun just as an intellectual exercise to play around with an "advanced CTL". I've got some ideas for unifying all methods (class, static, normal) into one simple syntax, identical to functions. Here's what I have so far. Shall I put this up on a wiki, so we can all hack at it? === CTL Syntax === # operators & expressions 2 + 3 * 4 same as (2 + 3) * 4 2 + 3 * 4 ** 5 same as ((2 + 3) * 4) ** 5 # variables as labels applied to objects a2 --> a**2 a --> b --> c --> 0 # built in functions min(), max(), sum(), and sqrt() # custom functions f(a,b): (a+b)/2 f(a,b): (a+b)/(2*pi) # with an "outside" variable # functions with multiple statements f(a,b): a2 = a**2; b2 = b**2; return (a2 + b2)/2 # same but more readable f(a,b): a2 = a**2 b2 = b**2 return (a2 + b2)/2 # function returning a tuple (sneaky introduction to objects) f(a,b): (a, (a+b)/2, b) >>> f(2,4) (2, 3.0, 4) # logic < <= == >= > != if elif else if a 1 else ---> n*factorial(n-1) ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * From lac at openend.se Tue Mar 3 23:59:52 2009 From: lac at openend.se (Laura Creighton) Date: Tue, 03 Mar 2009 23:59:52 +0100 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: Message from David MacQuigg of "Tue, 03 Mar 2009 15:27:28 MST." <5.2.1.1.0.20090302162526.03ecb198@mail.ece.arizona.edu> References: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090302162526.03ecb198@mail.ece.arizona.edu> Message-ID: <200903032259.n23Mxq9A001391@theraft.openend.se> In a message of Tue, 03 Mar 2009 15:27:28 MST, David MacQuigg writes: >At 10:00 AM 3/2/2009 -0800, michel paul wrote: > >>Before I discovered Python a couple of years ago I was experimenting wit >h a pseudo-code approach for expressing math concepts. I had this kind o >f stuff in mind: >> >>factorial(n): >> if n < 2 ---> 1 >> else ---> n*factorial(n-1) > >I like the feeling of action in --->, but I also like the self-explanator >y "return". Any other suggestions? Strong preferences? > >We could use a symbol other than = for assignment, just to avoid confusio >n with the comparison operator and to introduce the idea of variables as >labels, not containers. How about: > >a2 --> a**2 >a --> b --> c --> 0 Datapoint: the children I was teaching how to write games have all had terrible problems with arrows. Whenever I tried to use them to indicate anything there was this large mental thud. So my suspicion is that this will make things harder, rather than easier. In explaining things I found that words worked best. and the words that worked were: 'is bound to' Just my 2 kronor, Laura From macquigg at ece.arizona.edu Wed Mar 4 00:59:26 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Tue, 03 Mar 2009 16:59:26 -0700 Subject: [Edu-sig] PyWhip ??? Message-ID: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> Athat Hameed has finished the prototype of our online Python practice system. See http://py-bat.appspot.com We need to change the name so as not to conflict with Nick Parlante's JavaBat.com, which was the inspiration for this site. Athar and I like PyWhip, but we are open to suggestions. We need teachers, and anyone else who is interested, to contribute problems. Let's start with the categories Logic, Strings, Lists, and Recursion. Don't copy Nick's problems. He's planning his own Python site, with automated translations of his Java problems. We could also use a few more help pages. See my Strings example at http://py-bat.appspot.com/help These are basically tutorials, starting with the simplest examples first, and focusing on just those features of Python we are testing in the exercises. Try to resist including everything in Python. Python.org already has that. Let's put together some good problems for beginners, and inspire Athar to make the website as nice as JavaBat. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * From kirby.urner at gmail.com Wed Mar 4 01:58:14 2009 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 3 Mar 2009 16:58:14 -0800 Subject: [Edu-sig] PyWhip ??? In-Reply-To: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> Message-ID: I also invite visitors to my Oregon Curriculum Network site: http://www.4dsolutions.net/ocn/cp4e.html The Pythonic Math at this site is better than anything else on the Web as of March, 2009, bar none. That's why I won the Sociality TV contest and get all these accolades, woo hoo. http://mentor.sociality.tv/groups/pycontest/wiki/20372/Python_for_Teachers.html But it's really Python itself that deserves appreciation. We couldn't have done it without you (smack). Kirby On Tue, Mar 3, 2009 at 3:59 PM, David MacQuigg wrote: > Athat Hameed has finished the prototype of our online Python practice system. ?See http://py-bat.appspot.com ?We need to change the name so as not to conflict with Nick Parlante's JavaBat.com, which was the inspiration for this site. ?Athar and I like PyWhip, but we are open to suggestions. > > We need teachers, and anyone else who is interested, to contribute problems. ?Let's start with the categories Logic, Strings, Lists, and Recursion. ?Don't copy Nick's problems. ?He's planning his own Python site, with automated translations of his Java problems. > > We could also use a few more help pages. ?See my Strings example at http://py-bat.appspot.com/help ?These are basically tutorials, starting with the simplest examples first, and focusing on just those features of Python we are testing in the exercises. ?Try to resist including everything in Python. ?Python.org already has that. > > Let's put together some good problems for beginners, and inspire Athar to make the website as nice as JavaBat. > > -- Dave > > ************************************************************ ? ? * > * David MacQuigg, PhD ? ?email: macquigg at ece.arizona.edu ? * ?* > * Research Associate ? ? ? ? ? ? ? ?phone: USA 520-721-4583 ? * ?* ?* > * ECE Department, University of Arizona ? ? ? ? ? ? ? ? ? ? ? * ?* ?* > * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 9320 East Mikelyn Lane ? ? ? * * * > * http://purl.net/macquigg ? ? ? ?Tucson, Arizona 85710 ? ? ? ? ?* > ************************************************************ ? ? * > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From mpaul213 at gmail.com Wed Mar 4 05:09:04 2009 From: mpaul213 at gmail.com (michel paul) Date: Tue, 3 Mar 2009 20:09:04 -0800 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <5.2.1.1.0.20090302162526.03ecb198@mail.ece.arizona.edu> References: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090302162526.03ecb198@mail.ece.arizona.edu> Message-ID: <40ea4eb00903032009mb25d2c7vc7ecf9eaf58bf2ed@mail.gmail.com> On Tue, Mar 3, 2009 at 2:27 PM, David MacQuigg wrote: > At 10:00 AM 3/2/2009 -0800, michel paul wrote: > > >>Before I discovered Python a couple of years ago I was experimenting with > a pseudo-code approach for expressing math concepts. I had this kind of > stuff in mind: > >> > >>factorial(n): > >> if n < 2 ---> 1 > >> else ---> n*factorial(n-1) > > >I like the feeling of action in --->, but I also like the self-explanatory > "return". Any other suggestions? Strong preferences? Oh no, not at all. My only point in even bringing this up was that I had been trying to formulate something like a CTL awhile ago, and then I discovered Python. Wow! What I found so delightful is that the kind of pseudo-code I was contemplating looked a whole lot like Python! I thought that was a really good sign. Yeah, Python is pseudo-code that runs! It already is a CTL. I think the most useful CTL for integration in math education should be as close to ordinary algebra as possible. That's what I had been trying to get at. Kids in algebra classes initially get confused by this 'return'. It doesn't look like what they usually see in math. So I thought an arrow might correspond to mapping notation for functions: f: x ---> y vs. Euler notation: f(x) = y. So that's why I originally opted for the arrow. However, once they've had even a little experience, the use of 'return' isn't all that strange to them. And then, the other day when I had them create generators for their HW assignment on sequences, wow! I was really pleased that they got the idea that 'yield' just meant that the function was on hold until called again. They seemed OK with that. > >It would be nice to avoid in CTL the complexities of precedence and > associativity rules (very non-fundamental knowledge). How about we just do > all operations in the order they occur, unless you force a different order > with parens. > In terms of integration into math classes, I think it would be better to maintain the traditional order of operations. (I realize here that I'm emphasizing math/CS fusion at a secondary level, and you're talking about CS0.) But using parentheses to clarify order - definitely! And then from there, it's easy to create functional compositions. Now, I wouldn't emphasize functional composition for ALL simple arithmetic expressions - that would just be silly. But I think doing that is an excellent kind of exercise. And then beyond that - turn the functional compositions into binary expression trees! I've had kids do that in math classes as exercises in order of operations. Take a typical arithmetic expression that has several things going on and turn it into a binary expression tree. >>By the way, we started studying sequences today in class. What's a really > good Pythonic tool for studying sequences ---> generators! > > >Should we include generators in CTL? Seems like students at this level > should have graduated to a full-featured language. Right, I'm not sure generators would need to be in a CTL. Again, in terms of math education, I would see the role of a CTL simply as providing a bridge between traditional static algebra and a more dynamic computational algebra. Since Python is already so close to a CTL, by the time we started including generators, we might as well just be using Python. > ># function returning a tuple (sneaky introduction to objects) > >f(a,b): (a, (a+b)/2, b) Yes, tuples as proto-objects! I've thought about that a lot. I think that would be very practical in the math curriculum. Tuples, ordered lists, can very easily represent all kinds of mathematical objects. I think a good computational math route starting in traditional algebra would be to develop the idea of tuples as representing various kinds of mathematical objects and to write functions that operate on these tuples and then to integrate this functionality into the 'tuples' themselves. - Michel -------------- next part -------------- An HTML attachment was scrubbed... URL: From mpaul213 at gmail.com Wed Mar 4 06:00:26 2009 From: mpaul213 at gmail.com (michel paul) Date: Tue, 3 Mar 2009 21:00:26 -0800 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: References: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <40ea4eb00903021000o30392535ha5d49c1acafbf90a@mail.gmail.com> <21810b630903021341n35e36670v7288d0bd235e4018@mail.gmail.com> Message-ID: <40ea4eb00903032100r724dcbfftf2f8458960484507@mail.gmail.com> On Mon, Mar 2, 2009 at 2:20 PM, kirby urner wrote: On Mon, Mar 2, 2009 at 2:20 PM, kirby urner wrote: >This is what math teachers often forget: that there's no "one thing" that is "a mathematics". Yeah, this is what I appreciate about the Pythonic way of thinking. There are other schools of thought where mathematics is put into a box and anything outside of that box is ridiculed. I prefer an open world. - Michel On Mon, Mar 2, 2009 at 2:20 PM, kirby urner wrote: > On Mon, Mar 2, 2009 at 1:41 PM, Jason Axelson > wrote: > > As a current college student myself, I feel like chiming in here. > > > > 2009/3/2 michel paul : > >> However, it is again more mathematically effective to read "2 + 3 * 4" > as > >> "the sum of 2 and the product of 3 and 4", or, sum(2, product(3, 4)). > No > >> ambiguity there! And this is how you have to think when you hook chains > of > >> functions together. This kind of stuff could be done very early in the > >> curriculum. Doesn't have to wait for either advanced math classes or > >> computer science. > > > > The mental model in Python is 2, 3 and 4 each "know their stuff" when > it comes to doing these operations, have them internalized ("in their > bones"). > > In that sense, translating 2 + 3 to sum(2, 3) is less useful that > using native Pythonic 2.__add__(3) with __add__ being a verb like > "eat" (ingest). "2 eats 3, returns 5 object" is a better image that > "sum eats a 3 and 2 objects, returns 5 object". > > Of course if you're bridging to Scheme, then maybe that's another > matter. OO isn't going to be so important, your mental models will be > different. > > However, in the Python head space, we don't so much like the idea of > "operations" just floating as globals, unencapsulated, outside of any > number objects. That's the old paradigm, kind of gets in the way. > > And yes, I know it's still quite possible to code and think in that > way with Python, a forgiving environment. But in terms of helping > students master OO, we want the idea of methods *internal* to the > class definition. > > sum(2, product(3, 4)) means 2.__add__ ( 3.__mul__(4) ) -- like fish > eating fish: > > http://www.efuse.com/Plan/fish-eat-fish-richard-cook-artville-com.jpg > ( integers = fish ) > > > Perhaps it may be appropriate to try and introduce prefix notation to > > students, such as what lisp uses. So instead of "2 + 3 * 4" or sum(2, > > product(3, 4)) it would be (+ 2 (* 3 4)). Unfortunately, that might > > make their eyes glaze over, but you could state how it is unambiguous > > and maybe formalize infix notation for them. > > > >> Math teachers often forget, or are unaware, that the ordinary arithmetic > >> operators are themselves functions. I think it would be good for math > >> classes to explore this kind of functional composition for very simple > >> ideas. > > > > There's not just one overarching model in my model. Different > languages and notations, all with a claim to being mathematical, will > come with different gestalts, core abstractions. > > This is what math teachers often forget: that there's no "one thing" > that is "a mathematics". > > Wittgenstein's notion of "family resemblance" enters at this juncture, > helps break the spell of "an essence" (so tempting, so wrong). > > > Personally I found that being able to think about many math concepts > > as functions helped me a great deal with managing the complexity of > > many math courses. Just my 2 cents. > > > > -Jason > > Finding a model helpful is a good recommendation for sharing it with > others and I wouldn't want to get in your way of doing that. > > On the other hand, if Python is what we're learning, then looking at 2 > + 3 as a way of firing the add method > inside of an integer, is what we'd like to focus on in many cases. > > However, we're not so far apart, as functions are very akin to methods > and static methods are really quite indistinguishable, not even > needing a self. > > From Oregon Curriculum Network (OCN): > http://www.flickr.com/photos/17157315 at N00/3308514585/sizes/o/ > > Kirby > -------------- next part -------------- An HTML attachment was scrubbed... URL: From macquigg at ece.arizona.edu Wed Mar 4 21:23:45 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Wed, 04 Mar 2009 13:23:45 -0700 Subject: [Edu-sig] PyWhip ??? In-Reply-To: References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> Message-ID: <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> At 04:58 PM 3/3/2009 -0800, kirby urner wrote: >I also invite visitors to my Oregon Curriculum Network site: > >http://www.4dsolutions.net/ocn/cp4e.html > >The Pythonic Math at this site is better than anything else on the Web >as of March, 2009, bar none. We're looking for something more interactive. The storyboard stuff is cool. Videos take too much bandwidth. I've always thought lectures are a terrible way to teach technical subjects, but I can see the advantage of having audio to supplement a sequence of slides, and avoid taking your eyes off where they should be focused. Bruce Eckel's Thinking in (Java, C++, Python) series is excellent, but he never finished the Python version http://www.mindview.net/Books/TIPython. There is a great opportunity here for a good teacher. Some thoughts on how we might expand on this: We need a complete online course in Python, including PyWhip, Lectures in Python (slides with audio), and a forum where students could get questions answered, like comp.lang.python, but something more private, where students won't feel shy about asking dumb questions, and more focused, where we can have a lot of discussion on a narrow topic. The topic this week is strings. This could be a "service course" for non-CS technical professionals or students who could take it as a pre-requisite for engineering and science classes. The costs of production and delivery would be very low, mainly paying teachers to participate in regularly scheduled online "classes". I can imagine a class of 200 students with two or three teachers, so questions could be answered typically within a few hours. I tried to do this with a class in C, but we had to use the University's cumbersome, officially-approved teacher-support software - no email notifications when a question is posted. That was a real problem leading to sometimes a day of delay before I could check to see if there were any questions. The login procedure was a pain. Google forums are all we need. -- Dave From macquigg at ece.arizona.edu Wed Mar 4 22:32:28 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Wed, 04 Mar 2009 14:32:28 -0700 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <40ea4eb00903032009mb25d2c7vc7ecf9eaf58bf2ed@mail.gmail.com > References: <5.2.1.1.0.20090302162526.03ecb198@mail.ece.arizona.edu> <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090302162526.03ecb198@mail.ece.arizona.edu> Message-ID: <5.2.1.1.0.20090304044709.03f05718@mail.ece.arizona.edu> At 08:09 PM 3/3/2009 -0800, michel paul wrote: >On Tue, Mar 3, 2009 at 2:27 PM, David MacQuigg <macquigg at ece.arizona.edu> wrote: >> >>>>Before I discovered Python a couple of years ago I was experimenting with a pseudo-code approach for expressing math concepts. I had this kind of stuff in mind: >>>> >>>>factorial(n): >>>> if n < 2 ---> 1 >>>> else ---> n*factorial(n-1) >> >>>I like the feeling of action in --->, but I also like the self-explanatory "return". Any other suggestions? Strong preferences? > >Oh no, not at all. My only point in even bringing this up was that I had been trying to formulate something like a CTL awhile ago, and then I discovered Python. Wow! What I found so delightful is that the kind of pseudo-code I was contemplating looked a whole lot like Python! I thought that was a really good sign. Yeah, Python is pseudo-code that runs! It already is a CTL. > >I think the most useful CTL for integration in math education should be as close to ordinary algebra as possible. That's what I had been trying to get at. Kids in algebra classes initially get confused by this 'return'. It doesn't look like what they usually see in math. So I thought an arrow might correspond to mapping notation for functions: f: x ---> y vs. Euler notation: f(x) = y. So that's why I originally opted for the arrow. However, once they've had even a little experience, the use of 'return' isn't all that strange to them. And then, the other day when I had them create generators for their HW assignment on sequences, wow! I was really pleased that they got the idea that 'yield' just meant that the function was on hold until called again. They seemed OK with that. OK, let's stick with 'return' unless someone comes up with a better word or symbol. At least it is a common keyword in all the languages that students are likely to move up to. Nothing to unlearn. >>It would be nice to avoid in CTL the complexities of precedence and associativity rules (very non-fundamental knowledge). How about we just do all operations in the order they occur, unless you force a different order with parens. > >In terms of integration into math classes, I think it would be better to maintain the traditional order of operations. (I realize here that I'm emphasizing math/CS fusion at a secondary level, and you're talking about CS0.) But using parentheses to clarify order - definitely! And then from there, it's easy to create functional compositions. Now, I wouldn't emphasize functional composition for ALL simple arithmetic expressions - that would just be silly. But I think doing that is an excellent kind of exercise. And then beyond that - turn the functional compositions into binary expression trees! I've had kids do that in math classes as exercises in order of operations. Take a typical arithmetic expression that has several things going on and turn it into a binary expression tree. You are right. There is a "traditional order" of operations. The precedence rules for arithmetic operators are not just Python. Maybe we can get away from having to teach these rules by requiring parens in *all* multi-operator expressions. This would be equivalent to breaking a complex expression into a binary tree, if I understand your last example correctly. a + b * c ** d ==> a + (b * (c ** d))) Anything more complex than this is probably beyond CS0. a + b + c + d ==> (((a + b) + c) + d) Well, maybe we should make an exception, and not require parens when all the operators are the same. At 11:59 PM 3/3/2009 +0100, Laura Creighton wrote: >In a message of Tue, 03 Mar 2009 15:27:28 MST, David MacQuigg writes: >>At 10:00 AM 3/2/2009 -0800, michel paul wrote: >> >>>Before I discovered Python a couple of years ago I was experimenting wit >>h a pseudo-code approach for expressing math concepts. I had this kind o >>f stuff in mind: >>> >>>factorial(n): >>> if n < 2 ---> 1 >>> else ---> n*factorial(n-1) >> >>I like the feeling of action in --->, but I also like the self-explanator >>y "return". Any other suggestions? Strong preferences? >> >>We could use a symbol other than = for assignment, just to avoid confusio >>n with the comparison operator and to introduce the idea of variables as >>labels, not containers. How about: >> >>a2 --> a**2 >>a --> b --> c --> 0 > >Datapoint: the children I was teaching how to write games have all had >terrible problems with arrows. Whenever I tried to use them to indicate >anything there was this large mental thud. So my suspicion is that this >will make things harder, rather than easier. > >In explaining things I found that words worked best. > >and the words that worked were: > >'is bound to' How about := a2 := a**2 a := b := c := 0 This could be read as "bound to", "assigned to", or my preference "applied to", as in a label applied to an object. Should we put a definite "end" at the end of every function, like in Ruby? For me, it adds nothing, but a lot of folks must think it has value, or Ruby wouldn't have added it in their efforts to improve on Python. Some other suggestions from Ruby that might be appropriate for CTL: http://www.ruby-lang.org/en/documentation/ruby-from-other-languages/to-ruby-from-python/ true and false instead of True and False (and nil instead of None) elsif instead of elif require instead of import parentheses for function calls are optional :>) Ruby lurkers, speak up. I promise you will be treated with respect. I think 'elif' is kinda cute, like a baby elifant, but then I don't really know how kids think. :>) if ab,(a-b, b); else (a, b) -- Dave From kirby.urner at gmail.com Wed Mar 4 22:35:53 2009 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 4 Mar 2009 13:35:53 -0800 Subject: [Edu-sig] PyWhip ??? In-Reply-To: <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> Message-ID: On Wed, Mar 4, 2009 at 12:23 PM, David MacQuigg wrote: > At 04:58 PM 3/3/2009 -0800, kirby urner wrote: > >>I also invite visitors to my Oregon Curriculum Network site: >> >>http://www.4dsolutions.net/ocn/cp4e.html >> >>The Pythonic Math at this site is better than anything else on the Web >>as of March, 2009, bar none. > > We're looking for something more interactive. ?The storyboard stuff is cool. ?Videos take too much bandwidth. > Yeah, might not be suitable for all audiences. Bandwidth not a problem where I teach, interactivity is provided by one desktop per student, Python + VPython, Python + POV-Ray etc., many write-ups in my blogs (the most advanced Pythonic Math course anywhere in the nation, bar none -- yay Saturday Academy -- partly because of the new kind of geometry we're doing (per math-thinking-l etc.)): http://controlroom.blogspot.com/2006/10/new-wings.html http://controlroom.blogspot.com/2008/04/sa-classnotes-2008419.html http://mybizmo.blogspot.com/2008/06/open-house.html > I've always thought lectures are a terrible way to teach technical subjects, but I can see the advantage of having audio to supplement a sequence of slides, and avoid taking your eyes off where they should be focused. ?Bruce Eckel's Thinking in (Java, C++, Python) series is excellent, but he never finished the Python version http://www.mindview.net/Books/TIPython. ?There is a great opportunity here for a good teacher. The distance learning resources provided via Oregon Curriculum Network may not be what we use in class, e.g. we use physical models sometimes, given the emphasis on Geometry. Doing Python without geometry (e.g. VPython) is probably a waste of time if this is really intro mathematics and not just some low level computer science class from like the FORTRAN era (boring). Given we compete in the open market, we're not allowed to be boring. No "required courses" like some universities have (easy to cheat when you have a captive audience eh?). > > Some thoughts on how we might expand on this: > > We need a complete online course in Python, including PyWhip, Lectures in Python (slides with audio), and a forum where students could get questions answered, like comp.lang.python, but something more private, where students won't feel shy about asking dumb questions, and more focused, where we can have a lot of discussion on a narrow topic. ?The topic this week is strings. > I think various institutions have different solutions for this. >From what I've seen so far, Saturday Academy does a better job in terms of teaching *mathematics* than anything else on the web using Python, thanks in part to Silicon Forest and our Oregon Curriculum Network. That's why I'm going to Chicago to stage 'Python for Teachers', to show off how we do things. Others could learn from us. We're waaaaay ahead of the pack (especially given our sophisticate geometry based on an MVC approach -- most colleges can't hold a candle, yet these are high school kids!). > This could be a "service course" for non-CS technical professionals or students who could take it as a pre-requisite for engineering and science classes. ?The costs of production and delivery would be very low, mainly paying teachers to participate in regularly scheduled online "classes". ?I can imagine a class of 200 students with two or three teachers, so questions could be answered typically within a few hours. > Looking forward to competing. Our source code is also available, so in terms of interactivity, it's all there. This idea of "running Python over the web" doesn't seem necessary to me, not sure why people think that's so important. You've got an interpreter right there in front of your nose, no? What you need is scaffolding, running source code like stickworks.py, rbf.py etc. > I tried to do this with a class in C, but we had to use the University's cumbersome, officially-approved teacher-support software - no email notifications when a question is posted. ?That was a real problem leading to sometimes a day of delay before I could check to see if there were any questions. ?The login procedure was a pain. ?Google forums are all we need. > > -- Dave Yeah, most universities are trapped in stultifying bureaucracy, have no nimbleness or dexterity, kind of like Shrek after a few cases of beer. Makes it easy to out-perform them. Lower 48 is mostly offering no competition whatsoever, especially when it comes to using VPython to do some serious geometry (we also have a GIS component, have used generators for sequences for many years, per my Winterhaven write-up (geek hogwarts, Portland Public)). I'm glad the Obama administration is looking to Portland (FOSS capital) for leadership. We're simply better prepared, have a track record to prove it. That's why (some) Alaska charters are looking to us, not U. Mich or someplace more behind the times (lots more on Math Forum -- mostly don't compete with math teachers on edu-sig as this has mostly been a list for computer science teachers, not math teachers, with me 'n Arthur two obvious exceptions). I've been urging ISEPP president T. Bristol to get in touch with those in charge of IB math with our suggestions about phasing in more SQL, also a focus on RSA. I'm representing ISEPP in Chicago (what'll be on my nametag). The precalc-calc "math track" (so-called) isn't that productive a use of students' time in most cases. All that kow-towing to Texas Instruments, all that bait and switch (promising "technology in the classroom" but not delivering with beans). As geeks, we'd like to rescue our younger peers from such a stultifying and worthless pipeline, which everyone seems to agree is a huge turn-off, part of the problem, not part of the solution. Python, on the other hand, is part of the solution. Anyway, best wishes on catching up in Arizona. Someday you'll be in the same league as Oregon! Something to look forward to. Kirby From kirby.urner at gmail.com Wed Mar 4 22:47:33 2009 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 4 Mar 2009 13:47:33 -0800 Subject: [Edu-sig] CTL: Computer Thinking Language In-Reply-To: <5.2.1.1.0.20090304044709.03f05718@mail.ece.arizona.edu> References: <5.2.1.1.0.20090302095929.03f79630@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090302162526.03ecb198@mail.ece.arizona.edu> <5.2.1.1.0.20090304044709.03f05718@mail.ece.arizona.edu> Message-ID: > OK, let's stick with 'return' unless someone comes up with a better word or symbol. ?At least it is a common keyword in all the languages that students are likely to move up to. ?Nothing to unlearn. > Or "down to" -- most languages tend to be lower level than Python. A common next destination would be C++ using Zelle's book (posted news from the publisher recently), or Java. Or maybe next stop is Mathematica or MathCad, who knows. Depends if this is a CS sequence or a more open-ended course for many different majors. I think smart design puts a multiple-majors-friendly course up front, and does *not* use just one language, though it may center around one. At Princeton, our intro to programming included FORTRAN, PL/1, SNOBOL, APL, Assembler and a few others, all in the same course. Today, it might be Python, J, Scheme and... [fill in the blank]. > You are right. ?There is a "traditional order" of operations. Not in the J language. Too many operators to decide "precedence rules" so it's strictly right to left evaluation. "Depends on the notation" is the message to drum home. Don't get trapped in that wrong-headed view that any one notation is *the* notation. With Iverson, I classify math notations into two: machine-runnable and not machine-runnable. Since Mathematica, a lot more is now runnable, including using somewhat traditional notation, although this wasn't precise enough (too sloppy) and needed some fixing. The not-machine-executable stuff is probably more suitable for declared math majors, whereas those just getting their feet wet or planning a different career, would be better served by executable stuff. Calculators don't hack it. Kirby From kirby.urner at gmail.com Wed Mar 4 22:52:42 2009 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 4 Mar 2009 13:52:42 -0800 Subject: [Edu-sig] Fwd: All PyCon Tutorials are "On" In-Reply-To: References: Message-ID: Looks like we're a go for 'Python for Teachers', even if it's an intimate group, more like a planning meeting (strategy session), moving on to Phase 2 (starting from Phase 0 of course)... I did some outreach to classroom math teachers via the Chicago chipy, got some interesting feedback. Teachers seem curious, but most have not heard of Python. I think journalism is the gaping hole here. There used to be sections on science, other technical topics, but now it's all fluff about real estate, the mortgage mess, various scandals. You'd think The Oregonian would have run numerous backgrounders on FOSS topics by now, but journalists reflect the culture at large in being mostly clueless about these topics. That wouldn't be such of a problem if our economy didn't depend on using these power tools. Kirby ---------- Forwarded message ---------- From: Greg Lindstrom Date: Wed, Mar 4, 2009 at 12:24 PM Subject: All PyCon Tutorials are "On" To: PyCon Tutorial List I just received word from PyCon High Command that all tutorials will be offered (even those with less than 10 attendees signed up).? Part of this is because the larger classes help offset the cost of the smaller ones, but mostly because we want to offer as much as possible to our attendees.? Money is a bit tighter this year than in years past, so this is a nice gesture from those in charge. I know you all would feel cheated if I did not mention your class notes.? Your pdfs are due to us on the 18th.? If there is anything we can do to help you with your classes, please let us know.? If your class does not lent itself to class notes, please let me know that, too, so I will not have to write you on the 19th :-) --greg From kirby.urner at gmail.com Wed Mar 4 22:57:38 2009 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 4 Mar 2009 13:57:38 -0800 Subject: [Edu-sig] sharing charter school resources Message-ID: Here's a list of resources being consulted by Matsu District (AK) c/o one of the leading activists in the region. Note that Oregon Curriculum Network is included as one of these resources, plus Anna has made two special trips for planning meetings, got on the Wanderers boat, participated in a management workshop. I mentioned TECC in my Chicago talk last year, as an example of an elite charter thinking to use FOSS. Another example is LEP High, a Portland Public School standardized on Edubuntu. Riverdale High has pioneered LTSP on Redhat and so on. Like I said, Portland is FOSS capital. Boston can't hold a candle, though we work together with MIT on promoting the XO. Kirby =============== SCHOOL DESIGN RESOURCES TO DATE: 2008 Global Youth Service Day. 31 May 2008 www.gysd.net/home/index.html 2008 Model UN of Alaska. University of Alaska, Anchorage. 31 May 2008 http://www.uaa.alaska.edu/modelun/ Academy of the Redwoods ? Early College High School. 31 May 2008 http://www.redwoods.edu/eureka/academy/about.asp "Accelerating Student Success." Educational Service Center of Franklin County. 31 May-June 2008 www.fcesc.org/files/Crossroads.pdf "Answers in the Tool Box: Academic Intensity, Attendance Patterns, and Bachelor's Degree Attainment ? June 1999." US Department of Education Archived Information. 31 May 2008 http://www.ed.gov/pubs/Toolbox/Part5.html Bard High School Early College. 31 May 2008 http://www.bard.edu/bhsec/ Bartusiak, Marcia Bartusiak. Einstein's Unfinished Symphony: Listening to the Sounds of Space-Time. Joseph Henry P, 2000. National Academies Press Downloads. 31 May 2008 http://books.nap.edu/catalog.php?record_id=9821&utm_medium=etmail&utm_source=National%20Academies%20Press&utm_campaign=Cleanup-July-12-2008&utm_content=Downloader&utm_term= Board On Physics And Astronomy (BPA), and Engineering And Physical Sciences (DEPS). Connecting Quarks with the Cosmos: Eleven Science Questions for the New Century. National Academies P, 2003. 31 May 2008 http://books.nap.edu/catalog.php?record_id=10079&utm_medium=etmail&utm_source=National%20Academies%20Press&utm_campaign=Cleanup-July-12-2008&utm_content=Downloader&utm_term= Brain Pop. 31 May 2008 http://www.brainpop.com/ Chiristensen, Clayton M., Michael B. Horn, and Curtis W. Johnson. "How 'Disruptive Innovation' Will Change the Way We Learn." Education Week 4 June 2008: 36+. Chown, Marcus. The Quantum Zoo: a Tourist's Guide to the Never ending Universe. National Academies P, 2006. 31 May 2008 http://books.nap.edu/catalog.php?record_id=11542&utm_medium=etmail&utm_source=National%20Academies%20Press&utm_campaign=Cleanup-July-12-2008&utm_content=Downloader&utm_term= Committee On NASA's Einstein Program: An Architect. NASA's Beyond Einstein Program: an Architecture for Implementation. National Academies Press, 2007. 31 May 2008 http://books.nap.edu/catalog.php?record_id=9821&utm_medium=etmail&utm_source=National%20Academies%20Press&utm_campaign=Cleanup-July-12-2008&utm_content=Downloader&utm_term= Denver School of Science and Technology. 31 May 2008 www.scienceandtech.org "Dual Credit and Exam-Based Courses in U.S. Public High Schools: 2002-03 (2005)." Institute of Education Sciences National Center for Educational Statitistics. 2005. 31 May 2008 nces.ed.gov/pubsearch/pubsinfo.asp?pubid=2005009 "Dual Enrollment of High School Students At Postsecondary Institutions: 2002-03 (2005)." Institute of Education Sciences National Center for Educational Statitistics. 2005. 31 May 2008 http://www. nces.ed.gov/pubs2005/2005008.pdf. The Early College High School Initiative. 31 May 2008 http://www.earlycolleges.org. "Early College High School Initiative." Bill and Melinda Gates Foundation. 31 May 2008 http://www.gatesfoundation.org/UnitedStates/Education/ResearchAndEvaluation/Evaluation/ECHSEvaluation.htm "Early College." KnowledgeWorks Foundation. 31 May 2008 http://www.kwfdn.org/high_schools/early_college/ The Entertainment Technology Center. Carnegie Mellon. 31 May 2008 http://www.etc.cmu.edu/ Haycock, Kati, and Sandra Huang. "Are Today's High School Graduates Ready?" Thinking K-16 5,1 (Winter 2001): 3-17. Haycock, Kati; Craig Jerald; and Sandra Huang. "Closing the Gap: Done in a Decade." Thinking K-16 5, 2 (Spring 2001): 3-22. "Highly Effective Schools by Design." New Schools Project. 31 May 2008 http://newschoolsproject.org/page.php?p=3.1 "Home." Teacher Tube - Teach the World. 31 May 2008 http://www.teachertube.com/index.php Hopkinton Middle High School. 31 May 2008 http://www.hopkintonschools.org/hhs/ Hughes, Kathyrn L., Melinda Mechur Karp, Baranda Fermin, and Thomas. R. Bailey. "Pathways to College Access and Success." CCRC Community College Research Center. Oct. 2005. 31 May 2008 http://ccrc.tc.columbia.edu/Publication.asp?UID=340 Kauerz, Kristie. Starting Early, Starting Now: A Policymaker's Guide to Early Care & Education and School Success. Denver, Colorado: Education Commission of the States, 2001. 27 pages. ED 457 973. Kleiman, Neil Scott. Building a Highway to Higher Ed: How Collaborative Efforts Are Changing Education in America. New York: Center for an Urban Future, 2001. 37 pages. ED 453 738. Krueger, Carl. The Case for P-16 Education. Denver, Colorado: Education Commission of the States, 2002. 8 pages "Learn and Earn Early College High Schools." North Carolina Learn and Earn. 31 May 2008 http://www.nclearnandearn.gov/learnEarnHighschools.htm "Learn and Serve America Makes a Difference." The National Service-Learning Clearinghouse. 31 May 2008 www.servicelearning.org/ "LEP High School." Leadership & Entrepreneurship Public High School. 31 May 2008 http://www.lephigh.org/ Loceff, Jenna V. "How About a Nice Slice of 3.14?" Oakland Tribune 14 Mar. 2008. 31 May 2008 http://findarticles.com/p/articles/mi_qn4176/is_20080314/ai_n24938148 Louisiana State Department of Education. "Louisiana's PK-16 Vision for Education." Unpublished briefing booklet presented at Pathways to College Louisiana Case Study, Baton Rouge, Louisiana, February 4-6, 2002. Maeroff, Gene I.; Patrick M. Callan; and Michael D. Usdan (Eds.). The Learning Connection: New Partnerships Between Schools and Colleges. New York: Teachers College Press, 2001. 160 pages. "Math and Science Education." National Academies Press. 31 May 2008 http://www.nap.edu/topics.php?topic=350 "Middle College High School." South Seattle Community College. 31 May 2008 http://southseattle.edu/mchs/index.htm National Commission on the High School Senior Year. Raising Our Sights: No High School Senior Left Behind. Princeton, New Jersey: The Woodrow Wilson National Fellowship Foundation, 2001. 53 pages. ED 459 516. "National Mathematics Advisory Panel 2008 Report." Scribd. 31 May 2008 www.scribd.com/doc/2912664/National-Math-Panel-Final-Report-2008 Northfield School of Arts + Technology "PBL Overview." PBL Problem Based Learning. Maricopa Center for Learning and Instruction Web Central. 31 May-June 2008 http://www.mcli.dist.maricopa.edu/pbl/info.html "Portfolio Assessment." Houghton Mifflin Education Place. 31 May 2008 http://www.eduplace.com/rdg/res/literacy/assess6.html. "Portfolios Pathways Home." North Central Regional Education Library. 31 May 2008 http://www.ncrel.org/sdrs/areas/issues/students/earlycld/ea5l143.htm "Pyglet is a Cross-Platform Games and Multimedia Package." Pyglet. 31 May 2008 http://www.pyglet.org/ Python Programming Language -- Official Website. 31 May 2008 www.python.org/ "Rethinking High School Case Studies." West Ed. 31 May 2008 http://www.wested.org/cs/we/view/rstudy/8 Revealing the Hidden Nature of Space and Time: Charting the Course for Elementary Particle Physics. National Academies P, 2006. 31 May 2008 http://books.nap.edu/catalog.php?record_id=11641&utm_medium=etmail&utm_source=National%20Academies%20Press&utm_campaign=Cleanup-July-12-2008&utm_content=Downloader&utm_term= Rosenthal, Jeffrey S. Struck by Lightning: the Curious World of Probabilities. National Academies P, 2006. 31 May 2008 http://books.nap.edu/catalog.php?record_id=11544&utm_medium=etmail&utm_source=National%20Academies%20Press&utm_campaign=Cleanup-July-12-2008&utm_content=Downloader&utm_term= Schneider, Barbara, and David Stevenson. The Ambitious Generation: America's Teenagers, Motivated but Directionless. New Haven, Connecticut: Yale University Press, 1999. 360 pages. ED 430 176. "Solid Works STEM Curriculum." Solid Works Education. 31 May 2008 http://blogs.solidworks.com/teacher/2006/09/solidworks_stem.html Southwest Early College High School. 31 May 2008 http://www.secdenver.org/ STEM Education Coalition. 31 May 2008 http://www.stemedcoalition.org/ "STEM School Design Principals." Ohio STEM Learning Network. 31 May 2008 http://www.ohiostem.org/doc/stem-101/stem-school-design-principles "STEM Schools - Realworld Examples." Ohio STEM Learning Network. 31 May 2008 http://www.ohiostem.org/doc/stem-101/real-world-examples "Thinkquest Competitions." Oracle Education Foundation. . TOPP - the Open Planning Project. 31 May 2008 http://topp.openplans.org/project-home. "Update to State Dual Enrollment Policies: Addressing Access and Quality (2005)." US Department of Education. 31 May 2008 www.ed.gov/about/offices/list/ovae/pi/cclo/cbtrans/statedualenrollment.pdf Urner, Kirby. "Relevant Resources Indexed by Languages." A Mathematical Canvas. 4D Solutions. 31 May 2008 http://www.4dsolutions.net/ocn/cp4e.html Wynn, Charles M., and Arthur W. Wiggins. Quantum Leaps in the Wrong Direction: Where Real Science Ends...and Pseudoscience Begins. National Academies P, 2001. 31 May 2008 http://books.nap.edu/catalog.php?record_id=10015&utm_medium=etmail&utm_source=National%20Academies%20Press&utm_campaign=Cleanup-July-12-2008&utm_content=Downloader&utm_term= From asweigart at gmail.com Thu Mar 5 00:15:36 2009 From: asweigart at gmail.com (Al Sweigart) Date: Wed, 04 Mar 2009 15:15:36 -0800 Subject: [Edu-sig] TraceyText - A web tool for single-stepping through source code. Message-ID: <49AF0B98.9020508@gmail.com> I've created a JavaScript tool called TraceyText. It basically creates web pages that can display the source code of a program and annotate each step with notes. This allows you to go through a run of a program step by step with explanations on the way. I created this to demo the small games I made in Python for my free Creative Commons book, Invent Your Own Games with Python ( available at http://pythonbook.coffeeghost.net ) I'll admit the tool needs more documentation and demos, but here's a demo just to see how it works: http://traceytext.sourceforge.net/dragondemo.html The website is here: http://traceytext.sourceforge.net/ -Al Sweigart From jurgis.pralgauskis at gmail.com Thu Mar 5 09:20:56 2009 From: jurgis.pralgauskis at gmail.com (Jurgis Pralgauskis) Date: Thu, 5 Mar 2009 10:20:56 +0200 Subject: [Edu-sig] riddle way to learn python :) Message-ID: <34f4097d0903050020n22f0cc2fl3d22389e71a3e90b@mail.gmail.com> http://www.pythonchallenge.com/ From jurgis.pralgauskis at gmail.com Thu Mar 5 10:01:18 2009 From: jurgis.pralgauskis at gmail.com (Jurgis Pralgauskis) Date: Thu, 5 Mar 2009 11:01:18 +0200 Subject: [Edu-sig] PyWhip ??? In-Reply-To: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> Message-ID: <34f4097d0903050101p66a6bb28k15bce71260b0820@mail.gmail.com> > Athat Hameed has finished the prototype of our online Python practice system. > See http://py-bat.appspot.com seems like good start :) I'd suggest integrating EditArea http://www.cdolivet.net/editarea/ "Easy to integrate, only one script include and one function call" I also kind of develop similar idea ... http://84.55.3.131:801/ (takes up to minute when connecting :\) also sanboxed python might be of use http://blog.sandbox.lt/en/WSGI%20and%20PyPy%20sandbox From atharh at gmail.com Thu Mar 5 10:43:28 2009 From: atharh at gmail.com (=?UTF-8?B?QXRoYXIgSGFtZWVkINin2LfZh9ixINit2YXbjNiv?=) Date: Thu, 5 Mar 2009 14:43:28 +0500 Subject: [Edu-sig] PyWhip ??? In-Reply-To: <34f4097d0903050101p66a6bb28k15bce71260b0820@mail.gmail.com> References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <34f4097d0903050101p66a6bb28k15bce71260b0820@mail.gmail.com> Message-ID: On Thu, Mar 5, 2009 at 2:01 PM, Jurgis Pralgauskis wrote: >> Athat Hameed has finished the prototype of our online Python practice system. >> See http://py-bat.appspot.com > seems like good start :) We have now moved the website to http://pywhip.appspot.com. > > I'd suggest integrating EditArea http://www.cdolivet.net/editarea/ > "Easy to integrate, only one script include and one function call" I will check it out. > > I also kind of develop similar idea ... > http://84.55.3.131:801/ (takes up to minute when connecting :\) And this too. > > also sanboxed python might be of use > http://blog.sandbox.lt/en/WSGI%20and%20PyPy%20sandbox We are currently using the sandboxed Python that comes with Google App Engine. > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > Cheers, Athar From jurgis.pralgauskis at gmail.com Thu Mar 5 11:04:30 2009 From: jurgis.pralgauskis at gmail.com (Jurgis Pralgauskis) Date: Thu, 5 Mar 2009 12:04:30 +0200 Subject: [Edu-sig] python4edu by animation -- best choice? Message-ID: <34f4097d0903050204n4090afc1q4abb843cf17d580b@mail.gmail.com> Hello, You know, kids like effects, and if they can program effects, they like programming :) the good overview of tools is http://livingcode.org/2008/the-importance-of-visual-programming there I found a new (for me) tool Nodebox -- similar to processing.org - the output is much nicer than turtle, and can export SVG, PDF, PNG - the great idea for experimentation to have code window side to canvas. http://nodebox.net , it's primarily for Mac, but there are crossplatform varinats (though missing some functionallity) http://dev.nodebox.net/wiki/Qt http://tinkerhouse.net/shoebot/ (more like a branch.., has deb package) shoebot has more examples :) some examples need additional libraries, see http://nodebox.net/code/index.php/Library You can add your own library http://www.eriksmartt.com/blog/archives/747 ps.: foer me shoebot and qt variants needed sys.path.append('/path/to/nodebox/libs') in the module where ximport is defined nodebox-qt/nodebox/graphics/__init__.py or /usr/share/pyshared/shoebot/__init__.py (on ubuntu) ps.: does anybody know if jython works with processing.org? -- Jurgis Pralgauskis Don't worry, be happy and make things better ;) http://sagemath.visiems.lt From kirby.urner at gmail.com Thu Mar 5 16:20:35 2009 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 5 Mar 2009 07:20:35 -0800 Subject: [Edu-sig] python4edu by animation -- best choice? In-Reply-To: <34f4097d0903050204n4090afc1q4abb843cf17d580b@mail.gmail.com> References: <34f4097d0903050204n4090afc1q4abb843cf17d580b@mail.gmail.com> Message-ID: On Thu, Mar 5, 2009 at 2:04 AM, Jurgis Pralgauskis wrote: > Hello, > > You know, kids like effects, > and if they can program effects, > they like programming :) > > the good overview of tools is > http://livingcode.org/2008/the-importance-of-visual-programming > Yes, this is useful. I agree with Dethe when he writes: "So far, while I like the ideas behind Smalltalk, I haven't been able to muster much enthusiasm for Squeak. It's always been slow on the Mac (the Macs I have now are finally fast enough to make it bearable), and the UI for it is downright ugly." A little more diplomatic than how I put it (re the UI). > there I found a new (for me) tool Nodebox -- similar to processing.org > - the output is much nicer than turtle, and can export SVG, PDF, PNG > - the great idea for experimentation to have code window side to canvas. > http://nodebox.net/code/index.php/Evolution uses Nodebox, looks cool, maybe one of my sponsors will toss me a Mac one of these days so I can join that party. > > > ps.: does anybody know if jython works with processing.org? > > -- > Jurgis Pralgauskis > Don't worry, be happy and make things better ;) > http://sagemath.visiems.lt We need to learn more about Sage, keep bringing it up at PPUG meetings (Portland Python) because Sage HQS is nearby Seattle, also actively into Python (more button-down corporate up there, people showing up in teams from their high tech companies). As I was writing to Ian (tizard.stanford.edu, Pycon), the gaping hole in the culture right now is the lay press i.e. journalism. We're wrestling with all these issues of how to pass on the culture (a big job for any civilization, especially a high tech one) and the newspapers are no help whatsoever, because journalists don't know how to get a handle on any of the relevant stories I guess. I stopped getting The Oregonian given how utterly useless it's being, buy a copy now and then to see if anything has changed. Nada. There's no technical savvy in newspaper culture except for Django (that's what they could write about, but I bet they won't -- real estate market owns the newspapers, obsesses about mortgages until the cows come home, whereas our Medal of Freedom winning polyhedral geometer, source of much Pythonic math, was all about liberating ourselves from waterboarding by the mortgage industry -- which is why newspapers only call him a failure, no matter how many degrees, patents, awards, medals.... (talk about dumb!)) http://controlroom.blogspot.com/2009/03/storyboarding-tomorrow.html (retro futurism, still on the table) http://worldgame.blogspot.com/2008/06/poor-slob-bucky-psb.html (response to art community surge of interest) http://mail.geneseo.edu/pipermail/math-thinking-l/2009-March/001310.html (what we teach in Portland because we're not totally brain-dead, even if the newspapers are). http://coffeeshopsnet.blogspot.com/2009/02/in-news.html (me in the newspaper over 20 years ago) Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From ccosse at gmail.com Thu Mar 5 20:51:40 2009 From: ccosse at gmail.com (=?ISO-8859-1?Q?Charles_Coss=E9?=) Date: Thu, 5 Mar 2009 12:51:40 -0700 Subject: [Edu-sig] Order of operations confusion Message-ID: Hello All, Just thought I'd relay a rather interesting story: Last night I was having my son work-out a simple problem from a new little webapp that I coded up called "MakeItTrue" ( http://www.asymptopia.org/MakeItTrue.html ) which had 3 arbitrary variables embedded into a larger equation, and the objective is to simply choose 3 values which make a true equality of the thing.... So, the equation we were dealing with was something like: 82+b*c-51=d-13, and the thing that surprised me was that he didn't think it was legal to take 82-51 before having dealt with the b*c term ... on account of the "MyDearAuntSally..." or "BODMAS" ... or whatever acronyms they teach in school ... he had no idea that he could do that, merely because it had been driven-home in his head that multiplication must always be done first ... Well, I thought that was rather significant, so thought I'd pass it along to you all. Take care out there, -Charles -- AsymptopiaSoftware|Software at theLimit http://www.asymptopia.org From guido at python.org Thu Mar 5 22:04:29 2009 From: guido at python.org (Guido van Rossum) Date: Thu, 5 Mar 2009 13:04:29 -0800 Subject: [Edu-sig] Order of operations confusion In-Reply-To: References: Message-ID: I wonder if it's really about the multiplication, or just about the reshuffling. Would he be okay rewriting 82+x-51 as 82-51+x? On Thu, Mar 5, 2009 at 11:51 AM, Charles Coss? wrote: > Hello All, > > Just thought I'd relay a rather interesting story: Last night I was > having my son work-out a simple problem from a new little webapp that > I coded up called "MakeItTrue" ( > http://www.asymptopia.org/MakeItTrue.html ) which had 3 arbitrary > variables embedded into a larger equation, and the objective is to > simply choose 3 values which make a true equality of the thing.... > > So, the equation we were dealing with was something like: > 82+b*c-51=d-13, and the thing that surprised me was that he didn't > think it was legal to take 82-51 before having dealt with the b*c term > ... on account of the "MyDearAuntSally..." or "BODMAS" ... or whatever > acronyms they teach in school ... he had no idea that he could do > that, merely because it had been driven-home in his head that > multiplication must always be done first ... > > Well, I thought that was rather significant, so thought I'd pass it > along to you all. > > Take care out there, > > -Charles > > -- > AsymptopiaSoftware|Software at theLimit > ? ? ? ? ?http://www.asymptopia.org > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- --Guido van Rossum (home page: http://www.python.org/~guido/) From lac at openend.se Thu Mar 5 22:52:44 2009 From: lac at openend.se (Laura Creighton) Date: Thu, 05 Mar 2009 22:52:44 +0100 Subject: [Edu-sig] Order of operations confusion In-Reply-To: Message from =?ISO-8859-1?Q?Charles_Coss=E9?= of "Thu, 05 Mar 2009 12:51:40 MST." References: Message-ID: <200903052152.n25LqiIK004339@theraft.openend.se> In a message of Thu, 05 Mar 2009 12:51:40 MST, Charles Coss? writes: >So, the equation we were dealing with was something like: >82+b*c-51=d-13, and the thing that surprised me was that he didn't >think it was legal to take 82-51 before having dealt with the b*c term I suspect that he thinks your notation is sloppy, and you should have written this as 82 + (b * c) - 51 The interesting question (to me at least) is whether he would be willing to rewrite a + b + c as a + c + b and then if he would be willing to rewrite a + b as a - (-b) Can you ask him? How old is he, anyway? Laura From sb at csse.unimelb.edu.au Thu Mar 5 23:00:30 2009 From: sb at csse.unimelb.edu.au (Steven Bird) Date: Fri, 6 Mar 2009 09:00:30 +1100 Subject: [Edu-sig] Order of operations confusion In-Reply-To: References: Message-ID: <97e4e62e0903051400s32584a8fy59e67a6b66ef3994@mail.gmail.com> 2009/3/6 Charles Coss? : > 82+b*c-51=d-13, and the thing that surprised me was that he didn't > think it was legal to take 82-51 before having dealt with the b*c term This relates to a programming task called a "Parsons Problem", shown to be intermediate in difficulty between the tasks of interpreting code and writing code. In a Parsons Problem you see the lines of a 5-10 line program in scrambled order, and have to put them back in the right order. In some cases there's a bit of freedom (e.g. result += 82 and result += -51 could go in either order). http://portal.acm.org/citation.cfm?id=1404520.1404532 -Steven Bird http://www.csse.unimelb.edu.au/~sb/ From ccosse at gmail.com Thu Mar 5 23:19:52 2009 From: ccosse at gmail.com (=?ISO-8859-1?Q?Charles_Coss=E9?=) Date: Thu, 5 Mar 2009 15:19:52 -0700 Subject: [Edu-sig] Order of operations confusion In-Reply-To: <200903052152.n25LqiIK004339@theraft.openend.se> References: <200903052152.n25LqiIK004339@theraft.openend.se> Message-ID: On Thu, Mar 5, 2009 at 2:52 PM, Laura Creighton wrote: > In a message of Thu, 05 Mar 2009 12:51:40 MST, Charles Coss? writes: > > The interesting question (to me at least) is whether he would be willing > to rewrite a + b + c as a + c + b > > and then if he would be willing to rewrite > a + b as a - (-b) Yes, I confirmed that it was definitely due to having been repeatedly told the simple rules for order of operations; he observed that "there was something to be multiplied" and believed that he couldn't proceed until he had carried out that multiplication, which immediately led to a gridlock situation for him ... and he would have been okay rewriting like you did there since there was no multiplication. Guess it's just one of those many things that you don't realize kids think until you come across it ... and then it's a surprise > > Can you ask him? How old is he, anyway? > > Laura He is 11, in 6th grade. Charles -- AsymptopiaSoftware|Software at theLimit http://www.asymptopia.org From lac at openend.se Fri Mar 6 01:03:47 2009 From: lac at openend.se (Laura Creighton) Date: Fri, 06 Mar 2009 01:03:47 +0100 Subject: [Edu-sig] Order of operations confusion In-Reply-To: Message from =?ISO-8859-1?Q?Charles_Coss=E9?= of "Thu, 05 Mar 2009 15:19:52 MST." References: <200903052152.n25LqiIK004339@theraft.openend.se> Message-ID: <200903060003.n2603l4S011643@theraft.openend.se> In a message of Thu, 05 Mar 2009 15:19:52 MST, Charles Coss? writes: >On Thu, Mar 5, 2009 at 2:52 PM, Laura Creighton wrote: >> In a message of Thu, 05 Mar 2009 12:51:40 MST, Charles Coss? writes: >> >> The interesting question (to me at least) is whether he would be willin >g >> to rewrite a + b + c as a + c + b >> >> and then if he would be willing to rewrite >> a + b as a - (-b) > > > > >Yes, I confirmed that it was definitely due to having been repeatedly >told the simple rules for order of operations; he observed that "there >was something to be multiplied" and believed that he couldn't proceed >until he had carried out that multiplication, which immediately led to >a gridlock situation for him ... and he would have been okay rewriting >like you did there since there was no multiplication. Guess it's just >one of those many things that you don't realize kids think until you >come across it ... and then it's a surprise > >Charles I'm teaching 10 and 11 year olds here in Sweden, but over the summer holidays or on weekends in optional classes. I am always curious as to how the rest of the world teaches things. Can you ask him for a favour for me and see if he would be willing to accept that: 82 + (15 * 10) - 51 is the same as (15 * 10) + 82 - 51 or if the * is really stopping him cold. And thank him very much for me for answering my question, if he is willing. Laura From macquigg at ece.arizona.edu Sat Mar 7 02:58:50 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Fri, 06 Mar 2009 18:58:50 -0700 Subject: [Edu-sig] PyWhip - Keep on crackin' it!! In-Reply-To: References: <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> Message-ID: <5.2.1.1.0.20090304145711.03f88d78@mail.ece.arizona.edu> We've moved the project to http://pywhip.appspot.com and fixed the permissions so anyone can now edit their own problems. At 01:35 PM 3/4/2009 -0800, kirby urner wrote: >This idea of "running Python over the web" doesn't seem necessary to >me, not sure why people think that's so important. I started to do this as a downloadable program, then Athar jumped in and said he could do it just as easily in Google App Engine. He did in one weekend what took several weeks on my own server in an earlier project. The advantage of a web-based program is you don't have to download or install anything. A small annoyance, for sure, but it adds up when we are making updates every day. Also, if we get serious about teaching Python to a class, the ability to check student progress online is critical. There are frameworks for doing automated testing (Web-CAT, etc.) but I like the way JavaBat does it so much better. >Anyway, best wishes on catching up in Arizona. Someday you'll be in >the same league as Oregon! Something to look forward to. I hadn't thought of the project as having any particular location. I guess you could say it is as much in Pakistan right now as in Arizona. U of A has nothing to do with it, and I don't expect it will be used there either, unless maybe my CS2 project gets some support. Then it will be useful as a quick transition from Java to Python, so we can spend most of our time on science and engineering. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * From andre.roberge at gmail.com Sat Mar 7 03:51:18 2009 From: andre.roberge at gmail.com (Andre Roberge) Date: Fri, 6 Mar 2009 22:51:18 -0400 Subject: [Edu-sig] PyWhip - Keep on crackin' it!! In-Reply-To: <5.2.1.1.0.20090304145711.03f88d78@mail.ece.arizona.edu> References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> <5.2.1.1.0.20090304145711.03f88d78@mail.ece.arizona.edu> Message-ID: <7528bcdd0903061851j7fce84ffn55d886623816511b@mail.gmail.com> On Fri, Mar 6, 2009 at 9:58 PM, David MacQuigg wrote: > We've moved the project to http://pywhip.appspot.com and fixed the > permissions so anyone can now edit their own problems. I just checked it for the first time ... and you implemented almost exactly what I was going to implement at http://crunchy-python.appspot.com/ (which is just a static page for now - and will probably stay as such now that pywhip exists). > > At 01:35 PM 3/4/2009 -0800, kirby urner wrote: > > >This idea of "running Python over the web" doesn't seem necessary to > >me, not sure why people think that's so important. > > I started to do this as a downloadable program, then Athar jumped in and > said he could do it just as easily in Google App Engine. He did in one > weekend what took several weeks on my own server in an earlier project. > > The advantage of a web-based program is you don't have to download or > install anything. I completely agree. I will definitely have to mention it during my Pycon talk about Crunchy. Well done! Andr? -------------- next part -------------- An HTML attachment was scrubbed... URL: From kirby.urner at gmail.com Sat Mar 7 07:34:04 2009 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 6 Mar 2009 22:34:04 -0800 Subject: [Edu-sig] PyWhip - Keep on crackin' it!! In-Reply-To: <5.2.1.1.0.20090304145711.03f88d78@mail.ece.arizona.edu> References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> <5.2.1.1.0.20090304145711.03f88d78@mail.ece.arizona.edu> Message-ID: > At 01:35 PM 3/4/2009 -0800, kirby urner wrote: > >>This idea of "running Python over the web" doesn't seem necessary to >>me, not sure why people think that's so important. > > I started to do this as a downloadable program, then Athar jumped in and said he could do it just as easily in Google App Engine. ?He did in one weekend what took several weeks on my own server in an earlier project. > Yeah, GAE seems a capable platform. In Portland, we're doing DemocracyLab using it. > The advantage of a web-based program is you don't have to download or install anything. This is true, but I think if you're not going to download Python and actually run it locally, then you're mostly just kidding yourself if you think you're committed to learning it. That being said, having a server running locally (including GAE, which is designed to work on your laptop as well) is a great idea. If you're connected to some remote curriculum using this configuration, well, that's what Subversion is for (like with Django, just ask for an update and ye shall receive). > A small annoyance, for sure, but it adds up when we are making updates every day. ?Also, if we get serious about teaching Python to a class, the ability to check student progress online is critical. ?There are frameworks for doing automated testing (Web-CAT, etc.) but I like the way JavaBat does it so much better. > I'm more interested in students than teachers. I'd encourage them to download Python locally, update curriculum source using some checkout procedure, if that's what's required. But as I said, I agree with running server-side code, even in student mode, as a lot of what Python is about is nesting in Apache or whatever. Lots of people doing demos at PPUG and so on are using a server thats "running something" I notice. httpd is a daemon everyone should have. >>Anyway, best wishes on catching up in Arizona. ?Someday you'll be in >>the same league as Oregon! ?Something to look forward to. > > I hadn't thought of the project as having any particular location. We're into branding. Portland is FOSS capital and blah blah. We're proud to be lightyears ahead in this respect. I agree not every locale is this proud of itself or into flaunting its wares. > I guess you could say it is as much in Pakistan right now as in Arizona. ?U of A has nothing to do with it, and I don't expect it will be used there either, unless maybe my CS2 project gets some support. ?Then it will be useful as a quick transition from Java to Python, so we can spend most of our time on science and engineering. > > -- Dave Sounds like you've got it figured out, not for me to back seat drive. I just don't see a need to invest in running Python as a bare interpreter over the web so much, unless we're talking about ssh, then python in bash. YMMV of course. Portland State gives me a classroom, SA staff makes sure each workstation gets Python, VPython, POV-Ray. I bring my laptop (Ubuntu) and hook it to the classroom projector. We have full internet access and may download additional modules during class, including from my FOSS stash @ Oregon Curriculum Network. That's been my setup for some years and it works well. If things change, I may be looking for new configurations down the road. Kirby From aharrin at luc.edu Sun Mar 8 01:08:06 2009 From: aharrin at luc.edu (Andrew Harrington) Date: Sat, 7 Mar 2009 18:08:06 -0600 Subject: [Edu-sig] PyWhip ??? In-Reply-To: References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <34f4097d0903050101p66a6bb28k15bce71260b0820@mail.gmail.com> Message-ID: Neat site! We needed this for Python! You do need to say what version of Python you are using. Is this 3.0? I added a problem, but it would have been easier with a little more help on problem submission: 1. Description is in html. Other fields are plain text. 2. Examples are in doctest format. They are shown to the user after the description. 3. The Skeleton initializes the source code edit area. 4. Tests are in doctest format. The ones in the section 'Tests' are displayed when the user runs the code. You cannot save your problem edits without something in the Other Tests section (and the Solution section, too?) How are the Other Tests and the Solution sections used? At least if you sign in, it would be nice to have a link to instructions, and read-only access to the setup data for one or more of the problems. Is there a way for the solution to be exposed to the user, at least after they get a correct solution, for comparison? Andy On Thu, Mar 5, 2009 at 3:43 AM, Athar Hameed ???? ???? wrote: > On Thu, Mar 5, 2009 at 2:01 PM, Jurgis Pralgauskis > wrote: > >> Athat Hameed has finished the prototype of our online Python practice > system. > >> See http://py-bat.appspot.com > > seems like good start :) > We have now moved the website to http://pywhip.appspot.com. > > > > I'd suggest integrating EditArea http://www.cdolivet.net/editarea/ > > "Easy to integrate, only one script include and one function call" > I will check it out. > > > > I also kind of develop similar idea ... > > http://84.55.3.131:801/ (takes up to minute when connecting :\) > And this too. > > > > also sanboxed python might be of use > > http://blog.sandbox.lt/en/WSGI%20and%20PyPy%20sandbox > We are currently using the sandboxed Python that comes with Google App > Engine. > > _______________________________________________ > > Edu-sig mailing list > > Edu-sig at python.org > > http://mail.python.org/mailman/listinfo/edu-sig > > > > > Cheers, > Athar > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Andrew N. Harrington Director of Academic Programs Computer Science Department Loyola University Chicago 512B Lewis Towers (office) Snail mail to Lewis Towers 416 820 North Michigan Avenue Chicago, Illinois 60611 http://www.cs.luc.edu/~anh Phone: 312-915-7982 Fax: 312-915-7998 gpd at cs.luc.edu for graduate administration upd at cs.luc.edu for undergrad administration aharrin at luc.edu as professor -------------- next part -------------- An HTML attachment was scrubbed... URL: From atharh at gmail.com Sun Mar 8 03:44:07 2009 From: atharh at gmail.com (=?UTF-8?B?QXRoYXIgSGFtZWVkINin2LfZh9ixINit2YXbjNiv?=) Date: Sun, 8 Mar 2009 07:44:07 +0500 Subject: [Edu-sig] PyWhip ??? In-Reply-To: References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <34f4097d0903050101p66a6bb28k15bce71260b0820@mail.gmail.com> Message-ID: Hey everyone, On Sun, Mar 8, 2009 at 5:08 AM, Andrew Harrington wrote: > Neat site!? We needed this for Python! > > You do need to say what version of Python you are using.? Is this 3.0? Yes, we should. It is Python 2.5. > > I added a problem, but it would have been easier with a little more help on > problem submission: Absolutely. I added a contribution guidelines section to the site. Will update the site in a bit. > > 1. Description is in html.? Other fields are plain text. > 2. Examples are in doctest format.? They are shown to the user after the > description. > 3. The Skeleton initializes the source code edit area. > 4. Tests are in doctest format.? The ones in the section 'Tests'? are > displayed when the user runs the code. > > You cannot save your problem edits without something in the Other Tests > section (and the Solution section, too?) That is the case right now. > > How are the Other Tests and the Solution sections used? Other tests are those doctests which the students don't see. This is to see if a student really got it right, or is just taking a shortcut. Let's say he submits a solution, and sees that he has a failure on a test that expected 4, where his solution returned 3. Instead of figuring out that he has an "off-by-one" problem, due to his misunderstanding of the way the range() function works, he just sticks in an initial test. If the inputs match exactly the failing testcase, return 4. He gets full score on the problem, but hasn't really solved it. > > At least if you sign in, it would be nice to have a link to instructions, > and read-only access to the setup data for one or more of the problems. Coming up. > > Is there a way for the solution to be exposed to the user, at least after > they get a correct solution, for comparison? Also in the pipeline. In another couple of hours hopefully. > > Andy Athar > > On Thu, Mar 5, 2009 at 3:43 AM, Athar Hameed ???? ???? > wrote: >> >> On Thu, Mar 5, 2009 at 2:01 PM, Jurgis Pralgauskis >> wrote: >> >> Athat Hameed has finished the prototype of our online Python practice >> >> system. >> >> See http://py-bat.appspot.com >> > seems like good start :) >> We have now moved the website to http://pywhip.appspot.com. >> > >> > I'd suggest integrating EditArea http://www.cdolivet.net/editarea/ >> > "Easy to integrate, only one script include and one function call" >> I will check it out. >> > >> > I also kind of develop similar idea ... >> > http://84.55.3.131:801/ (takes up to minute when connecting :\) >> And this too. >> > >> > also sanboxed python might be of use >> > http://blog.sandbox.lt/en/WSGI%20and%20PyPy%20sandbox >> We are currently using the sandboxed Python that comes with Google App >> Engine. >> > _______________________________________________ >> > Edu-sig mailing list >> > Edu-sig at python.org >> > http://mail.python.org/mailman/listinfo/edu-sig >> > >> >> >> Cheers, >> Athar >> _______________________________________________ >> Edu-sig mailing list >> Edu-sig at python.org >> http://mail.python.org/mailman/listinfo/edu-sig > > > > -- > Andrew N. Harrington > ?Director of Academic Programs > ?Computer Science Department > ?Loyola University Chicago > ?512B Lewis Towers (office) > ?Snail mail to Lewis Towers 416 > ?820 North Michigan Avenue > ?Chicago, Illinois 60611 > > http://www.cs.luc.edu/~anh > Phone: 312-915-7982 > Fax: ? ?312-915-7998 > gpd at cs.luc.edu for graduate administration > upd at cs.luc.edu for undergrad administration > aharrin at luc.edu as professor > From kirby.urner at gmail.com Sun Mar 8 04:28:39 2009 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 7 Mar 2009 19:28:39 -0800 Subject: [Edu-sig] PyWhip ??? In-Reply-To: References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <34f4097d0903050101p66a6bb28k15bce71260b0820@mail.gmail.com> Message-ID: I'm glad your factorial example doesn't force a recursive solution! Factorial is often used as a gratuitous recursion exercise, whereas it's neither necessary nor more efficient to write it that way. Good going. Just checked the other examples too. In class, you probably teach about writing the tests as a part of the module. In XP, it's "write the tests firsts" -- probably you cover that too. As I was posting to Chipy recently: """ >From an HR point of view (human resources) we're interested in ending the "private castle" approach to coding, where one indispensable individual builds a "fortress of solitude" around code no one else can decipher. That's a recipe for disaster and Python, in the hands of professionals, doesn't easily "black hole" in that way (just stay away from gratuitous use of metaclasses and you'll be fine (smile)). A language like J (an APL spin off) or even Perl, might out of the box tempt a newbie into a solo coding style, but within strong IT cultures that promote XP and/or related practices, such "implosion" is generally avoided, using the very tools developed for FOSS in the first place e.g. Launchpad etc. Indeed, the best FOSS projects, such as Python itself, Django, Pocoo, wxPython... Numpy are so successful precisely because the code is amenable to "handing on" i.e. doesn't bottleneck in the mind of some "genius" (so thank you Tim Peters, for encoding the Zen of Python when it mattered -- helped keep us on track). """ The idea that professional coding is an entirely solo activity is to be discouraged in the contemporary curriculum. I think your examples are in the right direction, in that the code is partly in place. Green field development is not always what's up. Kirby From macquigg at ece.arizona.edu Sun Mar 8 13:02:48 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Sun, 08 Mar 2009 05:02:48 -0700 Subject: [Edu-sig] PyWhip - Keep on crackin' it!! In-Reply-To: <7528bcdd0903061851j7fce84ffn55d886623816511b@mail.gmail.co m> References: <5.2.1.1.0.20090304145711.03f88d78@mail.ece.arizona.edu> <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> <5.2.1.1.0.20090304145711.03f88d78@mail.ece.arizona.edu> Message-ID: <5.2.1.1.0.20090306203417.03baf1a8@mail.ece.arizona.edu> At 10:51 PM 3/6/2009 -0400, Andre Roberge wrote: >David MacQuigg wrote: >>I started to do this as a downloadable program, then Athar jumped in and said he could do it just as easily in Google App Engine. He did in one weekend what took several weeks on my own server in an earlier project. >> >>The advantage of a web-based program is you don't have to download or install anything. > >I completely agree. I will definitely have to mention it during my Pycon talk about Crunchy. > >Well done! The credit so far, goes 90% to Athar, and of course, Nick Parlante (JavaBat.com) for inspiring us to even think of it. Now we need community input. We have 6 problems so far. I'll do strings. We still need math, logic, lists, dictionaries, and recursion. Let's make this the most popular Python site on the planet!! At 10:34 PM 3/6/2009 -0800, kirby urner wrote: >David MacQuigg wrote: >>The advantage of a web-based program is you don't have to download or install anything. > >This is true, but I think if you're not going to download Python and >actually run it locally, then you're mostly just kidding yourself if >you think you're committed to learning it. We need both - Python running on our own computers to do quick interactive tests, and PyWhip to see if we got the problem solved, track our progress, etc. PyWhip is not an interpreter, but a test environment. Let's say you are asked to find a particular sequence in a list, and you don't remember Python's indexing syntax. Much easier to try a few quick tests in IDLE, then write the complete solution in PyWhip. I even use Python/IDLE to solve problems in JavaBat!! I find in much easier to work out the solution in Python, then translate to Java. This is especially true for more complex problems, even big projects in Java. I have used Python as an Interface Description Language, and it beats the IDL tools I am aware of. I don't use UML diagrams anymore. I wish Java had an environment like IDLE. The closest I've found is Eclipse, and that is rather cumbersome compared to IDLE. >That being said, having a server running locally (including GAE, which >is designed to work on your laptop as well) is a great idea. If >you're connected to some remote curriculum using this configuration, >well, that's what Subversion is for (like with Django, just ask for an >update and ye shall receive). Subversion is very cool, but it won't keep track of user logins, session state, etc. It's all that "framework" stuff that took so long on my previous project. When you write a program in App Engine, Google provides it all for you, along with Django templates, database support, and a bunch of other stuff you don't have to develop yourself. >I'm more interested in students than teachers. I'd encourage them to >download Python locally, update curriculum source using some checkout >procedure, if that's what's required. How do you handle testing? Seems like automation is essential if you have more than a few students. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * From kirby.urner at gmail.com Sun Mar 8 16:41:30 2009 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 8 Mar 2009 08:41:30 -0700 Subject: [Edu-sig] PyWhip - Keep on crackin' it!! In-Reply-To: <5.2.1.1.0.20090306203417.03baf1a8@mail.ece.arizona.edu> References: <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> <5.2.1.1.0.20090304145711.03f88d78@mail.ece.arizona.edu> <5.2.1.1.0.20090306203417.03baf1a8@mail.ece.arizona.edu> Message-ID: On Sun, Mar 8, 2009 at 5:02 AM, David MacQuigg wrote: > At 10:51 PM 3/6/2009 -0400, Andre Roberge wrote: >>David MacQuigg wrote: > >>>I started to do this as a downloadable program, then Athar jumped in and said he could do it just as easily in Google App Engine. ?He did in one weekend what took several weeks on my own server in an earlier project. >>> >>>The advantage of a web-based program is you don't have to download or install anything. >> >>I completely agree. ?I will definitely have to mention it during my Pycon talk about Crunchy. >> >>Well done! > > The credit so far, goes 90% to Athar, and of course, Nick Parlante (JavaBat.com) for inspiring us to even think of it. ?Now we need community input. ?We have 6 problems so far. ?I'll do strings. ?We still need math, logic, lists, dictionaries, and recursion. ?Let's make this the most popular Python site on the planet!! > The Software Association of Oregon used to run, maybe still runs, this annual contests for high school aged kids at Willamette University. There's a professor there who'd every year come up with this quite clever little challenges, like "sort these words alphabetically but within length i.e. all 3-letter words before 4-letter" and stuff like that. He let me have his sheet of problems one year. I'm wondering if challenges such as these would be suitable as well. What I'm seeing at your site so far is a very low level workout in Python basics -- not a criticism in any way, just suggesting you could apply the same technique to more challenging problems. Here's one I like: Write a Python generator so you get successive rows of Pascals triangle, like this: o = Pascal() # o for object >>> next(o) [1] >>> next(o) [1, 1] >>> next(o) [1,2,1] >>> next(o) [1,3,3,1] .... and so on (Pascal's triangle). Note I'm using Python 3.x syntax. One of the best solutions is: def pascal(): row = [1] while True: yield row row = [i + j for (i,j) in zip([0]+row, row+[0])] > At 10:34 PM 3/6/2009 -0800, kirby urner wrote: >>David MacQuigg wrote: > >>>The advantage of a web-based program is you don't have to download or install anything. >> >>This is true, but I think if you're not going to download Python and >>actually run it locally, then you're mostly just kidding yourself if >>you think you're committed to learning it. > > We need both - Python running on our own computers to do quick interactive tests, and PyWhip to see if we got the problem solved, track our progress, etc. ?PyWhip is not an interpreter, but a test environment. ?Let's say you are asked to find a particular sequence in a list, and you don't remember Python's indexing syntax. ?Much easier to try a few quick tests in IDLE, then write the complete solution in PyWhip. OK, I'm less of a skeptic now that you've said both. I thought you were falling into that trap of "all web all the time" where the local machine doesn't get to run anything except a web browser, ala some ways of learning with Squeak. I'm generally suspicious of moves to Squeakify Python, thought you might be moving in this direction. > > I even use Python/IDLE to solve problems in JavaBat!! ?I find in much easier to work out the solution in Python, then translate to Java. ?This is especially true for more complex problems, even big projects in Java. ?I have used Python as an Interface Description Language, and it beats the IDL tools I am aware of. ?I don't use UML diagrams anymore. > Yes, that Software Association of Oregon contest was open to teams using whatever language they wished, I'm pretty sure. Just come to the judges with a working program that gets the right answers, and you'll be the winner of that round (if you're first). I'm guessing a team using Python would have an instant big advantage over the Java users for challenges of this variety, but at the time I observed the process I don't think any were using Python yet. This was years ago and since then I've lost track. I'm under the impression that Python has spread quite a bit since those days, but I'm not a clearing house. > I wish Java had an environment like IDLE. ?The closest I've found is Eclipse, and that is rather cumbersome compared to IDLE. > Having a shell that's really capable, such as IDLE, is extremely useful. PLT Scheme comes to mind, plus they have this whole idea of "language levels" where you just import bits and pieces. I've not missed that in Python, given import is much the same idea (in terms of limiting access). >>That being said, having a server running locally (including GAE, which >>is designed to work on your laptop as well) is a great idea. ?If >>you're connected to some remote curriculum using this configuration, >>well, that's what Subversion is for (like with Django, just ask for an >>update and ye shall receive). > > Subversion is very cool, but it won't keep track of user logins, session state, etc. ?It's all that "framework" stuff that took so long on my previous project. ?When you write a program in App Engine, Google provides it all for you, along with Django templates, database support, and a bunch of other stuff you don't have to develop yourself. > Yes, understood. I wrote a very simple engine ( osgarden.appspot.com ) with no need for logins, very crude template, but enough to appreciate the ease of use. DemocracyLab is far more ambitious, comes from an Eclipse background (in terms of programmer pedigree). Have you open sourced your code, or do you plan to? Students at a higher level could be using your thing as a self tester, plus learn more appengine. >>I'm more interested in students than teachers. ?I'd encourage them to >>download Python locally, update curriculum source using some checkout >>procedure, if that's what's required. > > How do you handle testing? ?Seems like automation is essential if you have more than a few students. > > -- Dave Yeah, that's a good question. I'm not doing a CS course, have a heavy eye candy component, so it's more like a lab in most cases: import scaffolding, eyeball it to start learning Python, while interacting in the shell, then start getting the whiz bang graphics thanks to VPython and/or POV-Ray (lots of pre-written code). The tests are mostly self posed, the mode exploratory. All I have to do is walk around giving assistance and helping them record their work for posterity in some cases. Sometimes there's a YouTube as a result, suitable for more public syndication. Our students get a certificate that's respected in the Silicon Forest, plus we also have internship programs giving high schoolers time in the private sector pre-college sometimes. In this particular school, it's a goal to not have to share computers i.e. the ratio of student to computer is 1:1. That's a change for many of them, coming from regular public school. We only get them on weekends, which is why it's called Saturday Academy (except in summers, when it could be any day). So yeah, a niche market and maybe not that applicable to your situation. Kirby > ************************************************************ ? ? * > * David MacQuigg, PhD ? ?email: macquigg at ece.arizona.edu ? * ?* > * Research Associate ? ? ? ? ? ? ? ?phone: USA 520-721-4583 ? * ?* ?* > * ECE Department, University of Arizona ? ? ? ? ? ? ? ? ? ? ? * ?* ?* > * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 9320 East Mikelyn Lane ? ? ? * * * > * http://purl.net/macquigg ? ? ? Tucson, Arizona 85710 ? ? ? ? ?* > ************************************************************ ? ? * > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From macquigg at ece.arizona.edu Mon Mar 9 00:44:03 2009 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Sun, 08 Mar 2009 16:44:03 -0700 Subject: [Edu-sig] PyWhip - Keep on crackin' it!! In-Reply-To: References: <5.2.1.1.0.20090306203417.03baf1a8@mail.ece.arizona.edu> <5.2.1.1.0.20090303163959.03f05718@plus.pop.mail.yahoo.com> <5.2.1.1.0.20090304072103.03f88d78@mail.ece.arizona.edu> <5.2.1.1.0.20090304145711.03f88d78@mail.ece.arizona.edu> <5.2.1.1.0.20090306203417.03baf1a8@mail.ece.arizona.edu> Message-ID: <5.2.1.1.0.20090308163322.03bc3150@mail.ece.arizona.edu> At 08:41 AM 3/8/2009 -0700, kirby urner wrote: >What I'm seeing at your site so far is a very low level workout in >Python basics -- not a criticism in any way, just suggesting you could >apply the same technique to more challenging problems. > >Here's one I like: > >Write a Python generator so you get successive rows of Pascals >triangle, like this: > >o = Pascal() # o for object >>>> next(o) >[1] >>>> next(o) >[1, 1] >>>> next(o) >[1,2,1] >>>> next(o) >[1,3,3,1] >.... >and so on (Pascal's triangle). Note I'm using Python 3.x syntax. > >One of the best solutions is: > >def pascal(): > row = [1] > while True: > yield row > row = [i + j for (i,j) in zip([0]+row, row+[0])] Nice! If you don't mind, I'll use this in our category "math" at level-3. It is more challenging than the level-1 we are focused on now, but the more advanced problems will come soon. The idea is to organize the problems in layers. Layer-1 is problems that don't depend on students knowing anything that isn't in a short help page on a specific topic, like strings. Layer-2 can depend on knowing all the basic techniques in layer-1. Thus, we can now ask string questions that are best solved with a loop. Layer-3 would include the more challenging problems, like the one you are suggesting. -- Dave From vceder at canterburyschool.org Tue Mar 10 18:32:46 2009 From: vceder at canterburyschool.org (Vern Ceder) Date: Tue, 10 Mar 2009 13:32:46 -0400 Subject: [Edu-sig] Education BoF at PyCon Message-ID: <49B6A43E.1050805@canterburyschool.org> I just wanted to remind everyone who's going to PyCon that we have a BoF/Open Space page set up on the PyCon wiki at http://us.pycon.org/2009/openspace/EduSig/ Please feel free to add your name to the list of attendees and also to add any suggestions for topics, activities, dinner, etc. I hope to see many of you in Chicago. Cheers, 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 kirby.urner at gmail.com Wed Mar 11 19:50:25 2009 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 11 Mar 2009 11:50:25 -0700 Subject: [Edu-sig] musings on Javascript etc. Message-ID: So still gangbusters for Chicago, though I haven't found a CouchDB to surf yet (stupid joke). PPUG was great last night, a really growing community, poor Produce Row for beers eh? All those paying customers. So in what ways am I pro Alan Kay? A very open minded guy in a lot of ways, worried about 'idiocracy' (I'll expound), and really a task master in terms of gym coach, like Richard Simmons on steroids. On the 'Idiocracy' front, he openly doubted whether 'people today' were smart enough to invent tcp/ip, like if we had to start all over, did we really have what it takes? On the open mindedness front, he was taking another look at JavaScript and really liking what he found, and that attitude communicated clearly enough to where I'd say my attending these Admirers of Javascript @ Cubespace are owing to his opening my eyes awhile back (Shuttleworth Foundation summit, me with the loud fan Toshiba). On the gym coach front, he'd openly diss with this "low pass filter" talk that drove people crazy, really challenging to hear. You could tell he admired Python though, a lot (he made no secret about it). So yeah, Alan the guy is impressive. I knew Arthur would be curious about my impressions, as he was very openly *not* an Alan Kay fan (talking about this very archive -- good reading). That's about the limit of my interactions. Here on edu-sig, I tried to communicate my discovery that he's actually a "slayer" versus Smalltalk, running a Buffy number against this early Frankenstein experiment, got OO out of the starting gate, but it's kind of like one of these horses at this point (from a deep DARPA past, like IDLE someday?): Anyway, thanks Alan for the heads up about Javascript. Probably my main disagreement with Alan's philosophy is I'm less attracted to neat, clean, recursive environments, prefer the more losely coupled heterogenous environment of competing paradigms. It's somewhat the difference between a great painter with a definite look and feel to explore, and an art curator, who enjoys artwork from multiple great painters (as I'm sure we all do). Like, I'm not that motivated to "solve" the problem of GNU/Linux being a world of bewildering complexity. Maybe Alan isn't either, in which case we're on the same side on this one. Note that I didn't say anything about Python, as I admire it too, just as Alan does. I cut my programming teeth on APL, found Python to be in that same groove for me, though not the same paradigm (APL was pre-OO in many ways, with the J language a more contemporary offering in the same lineage). I also thinking namespaces are a honking great idea. Honk honk! Back to PPUG, I've got the usual blog write-up. Basically, Python is doing well in the parsing, machine learning, and semi-structure data departments, though it's lagging vis-a-vis Tokyo Tyrant. Kirby From kirby.urner at gmail.com Wed Mar 11 22:09:36 2009 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 11 Mar 2009 14:09:36 -0700 Subject: [Edu-sig] musings on Javascript etc. In-Reply-To: References: Message-ID: On Wed, Mar 11, 2009 at 11:50 AM, kirby urner wrote: << SNIP >> > That's about the limit of my interactions. ?Here on edu-sig, I tried > to communicate my discovery that he's actually a "slayer" versus > Smalltalk, running a Buffy number against this early Frankenstein > experiment, got OO out of the starting gate, but it's kind of like one > of these horses at this point (from a deep DARPA past, like IDLE > someday?): > Um, forgot my link: http://mybizmo.blogspot.com/2008/08/crazy-horse-play.html And don't forget to watch the spoof version: http://www.youtube.com/watch?v=VXJZVZFRFJc Kirby From kirby.urner at gmail.com Sun Mar 15 01:27:15 2009 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 14 Mar 2009 17:27:15 -0700 Subject: [Edu-sig] Robot vs. Robot vs. Robot Message-ID: I'm upgrading to 2.6, 3.0.1 in the background, also need a newer VPython... Recent agit prop on Chipy (Chicago UG) included mention of "Logo robotics" which some will take to be a typo (did I mean Lego?), others will consider ambiguous as to whether "robot" means "virtual" or not, as in the case of a "Logo turtle" (a kind of robot, e.g. GvR http://gvr.sourceforge.net/ ) I'm reminded that in South Africa, a 'robot' is a traffic light (what we'd call it on Hawthorne Ave.), so you could say like "go straight, turn right at the next robot", a good classroom example for talking about "namespaces" and "name collisions" (the former being a solution to the latter). Here I'm deliberately colliding (mashing) "robot" as in "virtual avatar" and "robot" in the sense of floor-bound machine and/or Mars rover. Rough synonyms: doll, piece, sim ("dolls" also virtual these days, per http://mybizmo.blogspot.com/2009/01/playing-with-dolls.html ). I think that's an appropriate move (to have "robot" also refer to virtual versions) because: (a) the API could be the same and (b) a "virtual" robot may be replaced with a real one at some point and (c) when Logo first came out, the "turtle" was a real robot, only became virtual later, here's a picture: http://worldgame.blogspot.com/2006/04/london-knowledge-lab.html I've been kicking it back and forth with Steve Holden, realize Guido also an admirer of MIT Scratch (as is Dethe) -- something more to agree on. I'm using one of the workshop handouts as a recruiting tool (dual purpose) and so sent a pointer around on Chipy. I'd like Chicago area teachers to know more about what we're up to in Portland: http://www.4dsolutions.net/presentations/py4t_notes.pdf OK, 3.0.1 is installed (used altinstall, using install for 2.6 i.e. that'll be my main one, however VPython 5, the one recommended, although technically a release candidate (and no stereo!), is compatible with 2.5 only, so I'm definitely keeping that one, if for no other reason). 2.6, done! Ubuntu 8.04 - the Hardy Heron - released in April 2008. http://vpython.org/contents/download_linux.html (on a scale of 1-10, I'd say compiling and installing this was 8 or 8.5 -- relative to say installing Python itself with is like 2 or 3 when you factor in needing zlib and stuff...). Kirby 4Dsolutions.net ISEPP @ Pycon2009 From kirby.urner at gmail.com Mon Mar 16 16:42:24 2009 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 16 Mar 2009 08:42:24 -0700 Subject: [Edu-sig] Scratch pad nuttiness... (re generators) Message-ID: So per the blog post below, I'm explaining the Python generator concept in terms of "kicking the can down the road" e.g. getting the next prime in some "just in time" trial by division regimen, per archived examples. http://worldgame.blogspot.com/2009/01/more-geometric-studies.html So then it occurs to me, would there by a way to do a kind of special names overloading such that __next__ (that which triggers the next cycling to yield) might be replaced with the word kick in some namespace, as in kick(o) instead of next(o) -- using Python 3.x syntax here i.e. not o.next(). What would a student try, if this were the challenge? Simple solution: >>> def kick(o): return next(o) >>> def f(): # could use a generator expression for i in range(10): yield i >>> type(f) # just a function so far >>> o = f() >>> next(o) 0 >>> kick(o) 1 >>> kick(o) 2 >>> type(o) # a generator once instanced Another student might think different and try something like this: >>> o.__next__ >>> o.kick = o.__next__ Traceback (most recent call last): File "", line 1, in o.kick = o.__next__ AttributeError: 'generator' object has no attribute 'kick' "Dang, you can't give your generator object a random attribute it doesn't already have, write-protected in some way...." Note that the generator type is inappropriate as a base class for your own kind of user class. >>> class newgen (type(o)): kick = type(o).__next__ Traceback (most recent call last): File "", line 1, in class newgen (type(o)): TypeError: type 'generator' is not an acceptable base type Oh well.... Kirby From john.zelle at wartburg.edu Mon Mar 16 17:38:13 2009 From: john.zelle at wartburg.edu (John Zelle) Date: Mon, 16 Mar 2009 11:38:13 -0500 Subject: [Edu-sig] Scratch pad nuttiness... (re generators) In-Reply-To: References: Message-ID: <200903161138.13271.john.zelle@wartburg.edu> Hi Kirby, I happen to be working through some Python3.0 issues right now. A couple comments: On Monday 16 March 2009 10:42:24 kirby urner wrote: > > So then it occurs to me, would there by a way to do a kind of special > names overloading such that __next__ (that which triggers the next > cycling to yield) might be replaced with the word kick in some > namespace, as in kick(o) instead of next(o) -- using Python 3.x syntax > here i.e. not o.next(). > > What would a student try, if this were the challenge? > > Simple solution: > >>> def kick(o): > > return next(o) Of couse, the simplest solution is just to bind kick to next: >>> o = iter(range(10)) >>> kick = next >>> kick(o) 0 >>> kick(o) 1 That does the trick. > >>> def f(): # could use a generator expression > > for i in range(10): > yield i > > >>> type(f) # just a function so far > > > > >>> o = f() > >>> next(o) > > 0 > > >>> kick(o) > > 1 > > >>> kick(o) > > 2 > > >>> type(o) # a generator once instanced > > > > Another student might think different and try something like this: > >>> o.__next__ > > > > >>> o.kick = o.__next__ > > Traceback (most recent call last): > File "", line 1, in > o.kick = o.__next__ > AttributeError: 'generator' object has no attribute 'kick' > > "Dang, you can't give your generator object a random attribute i > doesn't already have, write-protected in some way...." Of course, even if this worked, it wouldn't give you the kick(o) behavior that you specified above. I could see where one might try this to get the 2.xish o.kick() behavior. Of course, you could easily get an alias to o's __next__ via simple assignment again: >>> o = iter(range(10)) >>> kicko = o.__next__ >>> kicko() 0 >>> kicko() 1 > Note that the generator type is inappropriate as a base class for your > own kind of user class. > > >>> class newgen (type(o)): > > kick = type(o).__next__ > > > Traceback (most recent call last): > File "", line 1, in > class newgen (type(o)): > TypeError: type 'generator' is not an acceptable base type I don't follow the reasoning in this attempt at all. --John From kirby.urner at gmail.com Mon Mar 16 18:30:50 2009 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 16 Mar 2009 10:30:50 -0700 Subject: [Edu-sig] Scratch pad nuttiness... (re generators) In-Reply-To: <200903161138.13271.john.zelle@wartburg.edu> References: <200903161138.13271.john.zelle@wartburg.edu> Message-ID: On Mon, Mar 16, 2009 at 9:38 AM, John Zelle wrote: >> = Kirby > = John = Kirby >> Simple solution: >> >>> def kick(o): >> >> ? ? ? return next(o) > > Of couse, the simplest solution is just to bind kick to next: > >>>> o = iter(range(10)) >>>> kick = next >>>> kick(o) > 0 >>>> kick(o) > 1 > > That does the trick. > Yeah, that's a good one. A naive student would think range is already an iter, "so why are we making an iter and iter?" is what they'll be thinking. More important, you're showing that 'next' is in the toplevel namespace in Python 3.x, and available for reassignment or "shared assignment" (as kick becomes a synonym for next, not a replacement). >> Another student might think different and try something like this: >> >>> o.__next__ >> >> >> >> >>> o.kick = o.__next__ >> >> Traceback (most recent call last): >> ? File "", line 1, in >> ? ? o.kick = o.__next__ >> AttributeError: 'generator' object has no attribute 'kick' >> >> "Dang, you can't give your generator object a random attribute i >> doesn't already have, write-protected in some way...." > > Of course, even if this worked, it wouldn't give you the kick(o) behavior that > you specified above. I could see where one might try this to get the 2.xish > o.kick() behavior. Of course, you could easily get an alias to o's __next__ > via simple assignment again: Yes, the student would then have o.kick() seeming to work just as __next__ does, then still have to snap out of the 2.x trance and think next is something you have to "write home about" (add to the toplevel namespace). In 2.5: IDLE 1.2.2 >>> help(next) Traceback (most recent call last): File "", line 1, in help(next) NameError: name 'next' is not defined In 3.0: >>> help(next) Help on built-in function next in module builtins: next(...) next(iterator[, default]) Return the next item from the iterator. If default is given and the iterator is exhausted, it is returned instead of raising StopIteration. >>> In retrospect, I'd say a lesson for all students is: consult builtin docs a lot right in the shell, get in that habit, because then you'll hold yourself to the same habits, i.e. if you module is not help-aware, then you're cheating your readers, and actually yourself, your chief reader perhaps... Python is generous out of the box, is a good role model of developer-friendly (not the same as newbie friendly, but then that's the job of developers (to welcome apprentice snake charmers into the fold with open arms -- something the Python community is already known for (its welcoming aspect))). >> >>> class newgen (type(o)): >> >> ? ? ? kick = type(o).__next__ >> >> >> Traceback (most recent call last): >> ? File "", line 1, in >> ? ? class newgen (type(o)): >> TypeError: type 'generator' is not an acceptable base type > > I don't follow the reasoning in this attempt at all. > > --John This is a student thinking "oh, if a primitive thingy doesn't do what I want it to, I should subclass it and add my new method". So here said student is trying to subclass the "generator type" by using type(some_class) as a way of saying "what to inherit from" and then trying the same trick as before, except reaching into the superclass for whatever that __next__ thingy is. Kirby From jurgis.pralgauskis at gmail.com Tue Mar 17 01:21:08 2009 From: jurgis.pralgauskis at gmail.com (Jurgis Pralgauskis) Date: Tue, 17 Mar 2009 02:21:08 +0200 Subject: [Edu-sig] xturtle robocode idea?! Message-ID: <34f4097d0903161721h60b3f859l5e4402f0cf2e769c@mail.gmail.com> Hello, I've been searching around for python analogue of robocode... http://en.wikipedia.org/wiki/Robocode I found just some unfinished experiments but then I thought xturte should be ideal for this: - supors 2d movement :) - supports multiple turtles - has ontimer event as well as onkey (http://xturtle.rg16.at/code/xtx_games/xtx_spaceship.py) maybe smb has tried or wants to try to make little framework for this? I saw robocode in action ~5 years ago when my friend was teaching java maybe now it has more features but then it was enought to gather the prepaired bots' logics (from each student) and run them locally alltogether... and it was really fun and involving ;) bot had information abour the field and coordinates of other bots (and they flying missles) and could decide on direction changing or fireing.. that's all :) -- Jurgis Pralgauskis Don't worry, be happy and make things better ;) http://sagemath.visiems.lt From kirby.urner at gmail.com Tue Mar 17 02:22:18 2009 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 16 Mar 2009 18:22:18 -0700 Subject: [Edu-sig] Scratch pad nuttiness... (re generators) In-Reply-To: References: <200903161138.13271.john.zelle@wartburg.edu> Message-ID: Writing for the Linux Gazette, Pramode C.E. shows us a nifty set of generators for sieving out composites, adapted for Python 3 in the source code below. Is this really a sieve or trial-by-division? http://linuxgazette.net/100/pramode.html def firstn(g, n): for i in range(n): yield next(g) def intsfrom(i): while True: yield i i = i + 1 def exclude_multiples(n, ints): for i in ints: if (i % n): yield i def sieve(ints): while True: prime = next(ints) yield prime ints = exclude_multiples(prime, ints) if __name__ == '__main__': for i in firstn(sieve(intsfrom(2)), 400): print(i) From kirby.urner at gmail.com Tue Mar 17 06:26:08 2009 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 16 Mar 2009 22:26:08 -0700 Subject: [Edu-sig] tomorrow's gig (some notes) Message-ID: Tomorrow's talk before an engineering audience, about Python in the back office, will feature the source code below to give the flavor of our high school curriculum, in Matsu District (AK) or Willapa Bay (WA) for the sake of realism. I'll also be discussing "manga code" for a FOSS project I'm involved with, manga code being like pseudo-code except it actually runs, so runtime gives more information than just looking at (paper printed?) code that doesn't actually run. I'm thinking of "manga" as in "storyboard" and/or "comic strip" i.e. runnable code that's somewhat a caricature or "cave painting" vis-a-vis the "real deal" (illustrative, demonstrative, used for show & tell purposes...). So the deal on RSA (as many of you know) is this: you don't have the problem of trying to sneak a private key to the other party, already compromising, as you probably expect her to acknowledge receipt, plus maybe the messenger photocopied it to sell on eBay. Public key supersedes in having the "phone number" N paired with a secret counterpart d saved with the same person (recipient) such that only messages encrypted with Alice's N will decode with Alice's d, and only Alice herself needs to have d (her computer needs to know it, might be encrypted somehow). d = inverse(e, phi(N)) where phi(N) = (p-1)(q-1) and N = p*q, the famous beginning of this algorithm, requires Euclid's Extended Algorithm (EEA). If m is message, c is ciphertext, e is exponent, then RSA.encrypt is like c = pow(m, e, N) and RSA.decrypt is like m = pow(c, d, N). That's what I'm testing below. If this were a math class with Java, a CS class or whatever, we might go: import java.math.BigInteger; import java.security.SecureRandom; import java.util.Random; /* */ public class MainClass { public static void main(String[] unused) { Random prng = new SecureRandom(); // self-seeding System.out.println(BigInteger.probablePrime(10, prng)); } } So in Jython then (just installed through Synaptic, painlessly, even if an older version i.e. 2.5b3 is just out 6 days ago).: Jython 2.2.1 on java1.6.0_07 Type "copyright", "credits" or "license" for more information. >>> import java.math.BigInteger as big >>> import java.security.SecureRandom >>> prng = java.security.SecureRandom() >>> big.probablePrime(1000, prng) 986024402532744041493470893465725154540167461230347296361 094920931610743969216973764051955623260076378742309845854 297301750831176718526148689979016653882056041932096046944 963620102533089175317598139585190865815470057233752762341 448040708612248660611811336839535064227491583786355872281 6236632070326659 That could be our p, then we'd need a q. But instead I go with a famous case of a German group cracking the challenge number RSA-640, think the realism there adds spice to the story, saves the module from going overboard with technicalia, like we can get into actually generating these suckers in another lesson plan why not. I've had my various cryptography pages at my web site for many years, Ian working with Whit (Sun CSO) on some others for sociality.tv seems like. I realize there's some irony in speaking so kindly of Python on St. Patty's day tomorrow but of course in my family we're glad to have Celtic lore alive and well, and besides there weren't any snakes before that so helluva job guy! Might make some fun skits ("did you get rid of the tigers too then?"). Note that in 2.6 you have both kinds of print, so if you want to train your fingers for the __future__, start using those parentheses eh? A point here is to advertise the superiority of *any* big-integer-capable setup over a calculator, even just one laptop with projector and Internet would be a huge step up, let kids share projecting, teach lightning talk format, explain how, in the major leagues, that 5 mins is taken quite seriously. I've also mentioned about "thunder talks" which roll out a little more slowly (the whole show is the "a [perfect] storm" (as in "to brainstorm")). Kirby """ Why calculators aren't as fun (unless yours has a bigger than usual screen maybe?): RSA-640 RSA-640 has 193 decimal digits. A cash prize of US$20,000 was offered by RSA Security for a successful factorization. On November 2, 2005, F. Bahr, M. Boehm, J. Franke and T. Kleinjung of the German Federal Office for Information Security announced that they had factorized the number using GNFS as follows: [19][20][21] RSA-640 = 31074182404900437213507500358885679300373460228427275457 20161948823206440518081504556346829671723286782437916272 83803341547107310850191954852900733772482278352574238645 4014691736602477652346609 RSA-640 = 16347336458092538484431338838650908598417836700330923121 81110852389333100104508151212118167511579 ? 19008712816648221131268515739354139754718967899685154936 66638539088027103802104498957191261465571 The computation took 5 months on 80 2.2 GHz AMD Opteron CPUs. The slightly larger RSA-200 was factored in May 2005 by the same team. See: http://en.wikipedia.org/wiki/RSA-640#RSA-640 """ N = int("31074182404900437213507500358885679300373460228427275457" +\ "20161948823206440518081504556346829671723286782437916272" +\ "83803341547107310850191954852900733772482278352574238645" +\ "4014691736602477652346609") p = int("16347336458092538484431338838650908598417836700330923121"+\ "81110852389333100104508151212118167511579") q = int("19008712816648221131268515739354139754718967899685154936"+\ "66638539088027103802104498957191261465571") totient = (p - 1) * (q - 1) """ These guys only work in a namespace with N, d already defined We're setting e = 7 to keep it simple Euler's Totient Theorem (cutting and pasting, adapting to Python)... This theorem is one of the important keys to the RSA algorithm: If GCD(T, R)== 1 and T < R, then pow (T, phi(R), R) == 1 Or, in words: If T and R are relatively prime, with T being the smaller number, then when we multiply T with itself phi(R) times and divide the result by R, the remainder will always be 1. """ from binascii import hexlify, unhexlify def mknum(phrase): return eval('0x'+hexlify(phrase)+'L') def mkphrase(num): return unhexlify(hex(num)[2:-1]) def gcd(a,b): """Return greatest common divisor using Euclid's Algorithm.""" while b: a, b = b, a % b return a def lcm(a,b): """ Return lowest common multiple.""" return (a*b)/gcd(a,b) def bingcd(a,b): """Extended version of Euclid's Algorithm (binary GCD) Returns (m,n,gcd) such that m*a + n*b = gcd(a,b)""" g,u,v = [b,a],[1,0],[0,1] while g[1]<>0: y = g[0]/g[1] g[0],g[1] = g[1],g[0]%g[1] u[0],u[1] = u[1],u[0] - y*u[1] v[0],v[1] = v[1],v[0] - y*v[1] m = v[0]%b gcd = (m*a)%b n = (gcd - m*a)/b return (m,n,gcd) def inverse(a,b): """If gcd(a,b)=1, then inverse(a,b)*a mod b = 1, otherwise, if gcd(a,b)!=1, return 0 Useful in RSA encryption, for finding d such that e*d mod totient(n) = 1""" inva,n,gcd = bingcd(a,b) return (gcd==1)*inva class Sender: def __init__(self, m): self.m = mknum(m) def encrypt(self): """RSA algorithm""" c = pow(self.m, 7, N) return c class Receiver: def __init__(self, c): self.c = c def decrypt(self): """RSA algorithm""" d = inverse(7, totient) m = pow(self.c, d, N) return mkphrase(m) def testing123(): print(p) print(q) print(p*q) print(N) print(N == p*q) d = inverse(7, totient) print(d) print(7*d % totient) def testingrsa(): bob = Sender("Able was I ere I saw Elba") c = bob.encrypt() alice = Receiver(c) m = alice.decrypt() print(m) if __name__ == "__main__": # testing123() testingrsa() From gregor.lingl at aon.at Tue Mar 17 06:40:42 2009 From: gregor.lingl at aon.at (Gregor Lingl) Date: Tue, 17 Mar 2009 06:40:42 +0100 Subject: [Edu-sig] xturtle robocode idea?! In-Reply-To: <34f4097d0903161721h60b3f859l5e4402f0cf2e769c@mail.gmail.com> References: <34f4097d0903161721h60b3f859l5e4402f0cf2e769c@mail.gmail.com> Message-ID: <49BF37DA.5010508@aon.at> Jurgis Pralgauskis schrieb: > Hello, > > I've been searching around for python analogue of robocode... > http://en.wikipedia.org/wiki/Robocode > > I found just some unfinished experiments > > but then I thought xturte should be ideal for this: > - supors 2d movement :) > - supports multiple turtles > - has ontimer event as well as onkey > (http://xturtle.rg16.at/code/xtx_games/xtx_spaceship.py) > > maybe smb has tried or wants to try to make little framework for this? > Hi Jurgis, I'll look at this in the evening, or at most tomorrow evening. Now I've to leave - to go to work. May I just point out, that xturtle now lives as turtle.py in the standard library of Python 2.6 / Python 3.0 It also runs with Python 2.5 and with very few modifications with earlier versions back to 2.2 Best regards, Gregor > I saw robocode in action ~5 years ago when my friend was teaching java > maybe now it has more features > but then it was enought to gather the prepaired bots' logics (from each student) > and run them locally alltogether... > and it was really fun and involving ;) > bot had information abour the field and coordinates of other bots (and > they flying missles) > and could decide on direction changing or fireing.. > that's all :) > > > From jurgis.pralgauskis at gmail.com Thu Mar 19 08:43:10 2009 From: jurgis.pralgauskis at gmail.com (Jurgis Pralgauskis) Date: Thu, 19 Mar 2009 09:43:10 +0200 Subject: [Edu-sig] python4edu by animation -- best choice? In-Reply-To: References: <34f4097d0903050204n4090afc1q4abb843cf17d580b@mail.gmail.com> Message-ID: <34f4097d0903190043w723fc4fcld0816a247fc039c7@mail.gmail.com> > http://nodebox.net/code/index.php/Evolution uses Nodebox, looks cool, > maybe one of my sponsors will toss me a Mac one of these days so I can > join that party. you don't need mac for this -- Ubuntu also works OK with it via QT UI http://dev.nodebox.net/wiki/Qt http://nodebox.net/code/index.php/shared_2009-03-13-20-31-19 http://nodebox.net/code/index.php/shared_2009-03-05-10-51-57 From kirby.urner at gmail.com Sat Mar 21 22:14:15 2009 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 21 Mar 2009 14:14:15 -0700 Subject: [Edu-sig] As We May Think: What will we automate? Message-ID: One of our Wanderers (think tank in Portland) wrote: """ I expect that teaching Python/Perl/Ruby/Java in the 2000s will be viewed with the same scorn in the 2030's. The problem with "flavor of the month" languages is that they are passe a month later, as better abstractions appear. Such evanescent ways of doing things are probably not the basis for life-long learning. << SNIP >> In the Wonderful World of the Future, most people will be actively creating active digital content with state and flow control, object abstraction, "programming" in the sense of producing automated stuff that accomplishes tasks. But it won't be text based. There may be a few Morlocks laboring down amongst the lines of code like you and I do. Working with "text code" will probably be considered "fundamental" and "connected with our roots", like animal-powered agriculture is now.... So take a look at "programming in schools" from the viewpoint of an adult in 2030, not a 2009 viewpoint, and heaven forbid from the viewpoint of the ancient times when you and I were trained. What do you wish you had been taught 40 years ago? What was fashionable but dated? Extrapolate that forwards, and try to guess what they will want, not what you and I consider important /now/. For extra points, try to guess what they should be teaching *their* kids, for use in the year 2060, and get started on the theoretical underpinnings of *that*. """ I'm wondering what people on this list think about this remark. I responded rather sharply at the time, as I think it's a common dodge, to avoid adding grist to the mill today, because of some hypothetical future wherein said "grist" will be obsolete. In the meantime, we continue teaching technical subjects as if the FOSS revolution never happened, I think imperiling its gains (sliding back into a pit of "deep silos" proprietary ignorance -- could happen). I've further registered my disagreement with the above model in my journal posting of this afternoon, but I'm guessing a wider variety of perspectives might be useful at this juncture. http://mybizmo.blogspot.com/2009/03/noodling-and-doodling.html Kirby From Scott.Daniels at Acm.Org Sat Mar 21 23:19:27 2009 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Sat, 21 Mar 2009 15:19:27 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: kirby urner wrote: > One of our Wanderers (think tank in Portland) wrote: > > """ > I expect that teaching Python/Perl/Ruby/Java in the 2000s will be > viewed with the same scorn in the 2030's. The problem with "flavor > of the month" languages is that they are passe a month later, as > better abstractions appear. Such evanescent ways of doing things > are probably not the basis for life-long learning. > ... So take a look at "programming in schools" from the viewpoint of > an adult in 2030, not a 2009 viewpoint, and heaven forbid from the > viewpoint of the ancient times when you and I were trained. What > do you wish you had been taught 40 years ago? What was fashionable > but dated? Extrapolate that forwards, and try to guess what they > will want, not what you and I consider important /now/. For extra > points, try to guess what they should be teaching *their* kids, > for use in the year 2060, and get started on the theoretical > underpinnings of *that*. > """ To which I'd reply, this is like some reviewer in Chaucer's day saying, "Chaucer's writing in Middle English, is such a passing fancy, let's imagine how people will want to use text messages on their cell phones." After all, "Prediction is hard, especially about the future." I'll tell you this, in my technical education, I can think of very little that I learned in any of Knuth's classes that is obsolete, and that included working with the MIX computer's machine instruction set. I like the newer machine (a RISC family of instructions) code, as it presents issues from modern architectures more clearly, but getting down all the way to machine code makes you smarter about what is inevitably slow. At the other end, Python gives me a language I can talk to another programmer in, and I can also run parts of the discussion on a machine. There are other languages that do that, of course, but none that are so easily communicated to a "random other" without spending more time talking about the mechanics than about the idea. I suspect this is why Kirby likes APL so much, he can easily express large-swath ideas. For me, APL too quickly becomes terse little chunks. But Kirby and I program about different things. --Scott David Daniels Scott.Daniels at Acm.Org From kirby.urner at gmail.com Sat Mar 21 23:28:35 2009 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 21 Mar 2009 15:28:35 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: > At the other end, Python gives me a language I can talk to another > programmer in, and I can also run parts of the discussion on a machine. > There are other languages that do that, of course, but none that are > so easily communicated to a "random other" without spending more time > talking about the mechanics than about the idea. ?I suspect this is why > Kirby likes APL so much, he can easily express large-swath ideas. ?For > me, APL too quickly becomes terse little chunks. ?But Kirby and I > program about different things. > > --Scott David Daniels > Scott.Daniels at Acm.Org Yeah, plus when I got involved with APL in 1976-1977, we didn't have Python. This was the first / only language with REPL in my reality, i.e. I could type at a terminal and get an immediate reply, what a difference! Same think people like about Python. My APL is rusty by now, so if someone wants to collaborate with me on communicating some large-swath ideas in at least partly working code, I prefer Python. Like here's some "manga code" from the PPUG list: http://mail.python.org/pipermail/portland/2009-March/000637.html Thanks for you input Scott. Kirby From Scott.Daniels at Acm.Org Sun Mar 22 00:17:37 2009 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Sat, 21 Mar 2009 16:17:37 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: kirby urner wrote: >> At the other end, Python gives me a language I can talk to another >> programmer in, and I can also run parts of the discussion on a machine. >> There are other languages that do that, of course, but none that are >> so easily communicated to a "random other" without spending more time >> talking about the mechanics than about the idea. I suspect this is why >> Kirby likes APL so much, he can easily express large-swath ideas. For >> me, APL too quickly becomes terse little chunks. But Kirby and I >> program about different things. >> >> --Scott David Daniels >> Scott.Daniels at Acm.Org > > Yeah, plus when I got involved with APL in 1976-1977, we didn't have > Python. This was the first / only language with REPL in my reality, > i.e. I could type at a terminal and get an immediate reply, what a > difference! Same think people like about Python. > > My APL is rusty by now, so if someone wants to collaborate with me on > communicating some large-swath ideas in at least partly working code, > I prefer Python. Like here's some "manga code" from the PPUG list: > > http://mail.python.org/pipermail/portland/2009-March/000637.html > > Thanks for you input Scott. > > Kirby You should definitely take a look at http://arstechnica.com/science/news/2009/03/building-a-better-way-of-understanding-science.ars as this is where Python can be very useful in science -- the "stand at a whiteboard and scrawl and argue" phases. I do it for computer science, but I've used it to talk evolution with a creationist -- explaining how recognizers can (and are) trained to match things from weighted inputs and evaluate-crossover cycles where the programmer has no idea how to solve the problem, but can train a machine to do so. --Scott David Daniels Scott.Daniels at Acm.Org From aharrin at luc.edu Sun Mar 22 13:00:59 2009 From: aharrin at luc.edu (Andrew Harrington) Date: Sun, 22 Mar 2009 07:00:59 -0500 Subject: [Edu-sig] PyCon dinner, meeting Message-ID: For Pycon I posted dinner/meeting suggesting some time ago at the BoF site http://us.pycon.org/2009/openspace/EduSig/ I see no responses. It occurs to me that may be because I did not echo it here! - I have a reservation for 10 at Maria's Mexican Restaurant, Friday 6:45PM, 9440 W Foster Ave. Attenders for Friday dinner: Andy Harrington, ??? This is not to rule out an alternative! A show-stopping issue in the past was having a big group and trying to make an arrangement at the last minute on the weekend, so I planned ahead. We have done it Saturday night before, partly because we had nothing set up to clearly direct people to. I personally would prefer Friday night dinner and gathering afterward, and have more time to follow up with folks later. Maria's is about 600 yards south of the hotel - easy walking distance. Inexpensive restaurant, mixed reviews, but local! I guessed 10 people. Please add your name so I can get a better count, or suggest something different! The night and place can be changed, but I strongly suggest an advanced plan so we are not futzing around rather than sitting and enjoying our brief chance for each other's company. - I suggest we reserve Open Space at the conference site, starting about 8:30PM Friday, assuming a 6:45 local dinner. Andy -- Andrew N. Harrington Director of Academic Programs Computer Science Department Loyola University Chicago 512B Lewis Towers (office) Snail mail to Lewis Towers 416 820 North Michigan Avenue Chicago, Illinois 60611 http://www.cs.luc.edu/~anh Phone: 312-915-7982 Fax: 312-915-7998 gpd at cs.luc.edu for graduate administration upd at cs.luc.edu for undergrad administration aharrin at luc.edu as professor -------------- next part -------------- An HTML attachment was scrubbed... URL: From kirby.urner at gmail.com Sun Mar 22 17:44:38 2009 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 22 Mar 2009 09:44:38 -0700 Subject: [Edu-sig] PyCon dinner, meeting In-Reply-To: References: Message-ID: Thank you, I'm completely for doing this, speaking for myself (not even staff). My problem is I'm too spacey to visit the conference website except really close to the time (like when I'm there already), and it's not like I don't check websites (Ian, one of the MVPs coming to help our committee is at the nama.org.uk conference, and I've been studying that one, noticing how Texas Instruments has "infiltrated" there too (likewise Pycon last year -- we have a friendly rivalry in that they know that I know that they know we're competing for hearts and minds in some ways (hoping they'll join in our BOF))). TI guy from last year: http://www.flickr.com/photos/17157315 at N00/2341488571/ Kirby 2009/3/22 Andrew Harrington : > For Pycon I posted dinner/meeting suggesting some time ago at the BoF site > http://us.pycon.org/2009/openspace/EduSig/ > > I see no responses.? It occurs to me that may be because I did not echo it > here! > > I have a reservation for 10 at Maria's Mexican Restaurant, Friday 6:45PM, > 9440 W Foster Ave. > > Attenders for Friday dinner: Andy Harrington, ??? > > This is not to rule out an alternative! A show-stopping issue in the past > was having a big group and trying to make an arrangement at the last minute > on the weekend, so I planned ahead. We have done it Saturday night before, > partly because we had nothing set up to clearly direct people to. I > personally would prefer Friday night dinner and gathering afterward, and > have more time to follow up with folks later. > > Maria's is about 600 yards south of the hotel - easy walking distance. > Inexpensive restaurant, mixed reviews, but local! I guessed 10 people. > Please add your name so I can get a better count, or suggest something > different! > > The night and place can be changed, but I strongly suggest an advanced plan > so we are not futzing around rather than sitting and enjoying our brief > chance for each other's company. > > I suggest we reserve Open Space at the conference site, starting about > 8:30PM Friday, assuming a 6:45 local dinner. > > Andy > > > -- > Andrew N. Harrington > ?Director of Academic Programs > ?Computer Science Department > ?Loyola University Chicago > ?512B Lewis Towers (office) > ?Snail mail to Lewis Towers 416 > ?820 North Michigan Avenue > ?Chicago, Illinois 60611 > > http://www.cs.luc.edu/~anh > Phone: 312-915-7982 > Fax: ? ?312-915-7998 > gpd at cs.luc.edu for graduate administration > upd at cs.luc.edu for undergrad administration > aharrin at luc.edu as professor > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > From vceder at canterburyschool.org Sun Mar 22 18:56:39 2009 From: vceder at canterburyschool.org (Vern Ceder) Date: Sun, 22 Mar 2009 13:56:39 -0400 Subject: [Edu-sig] PyCon dinner, meeting In-Reply-To: References: Message-ID: <49C67BD7.8050404@canterburyschool.org> Thanks for doing this Andy, I was just thinking about posting to the list to see if anyone had any thoughts. Andrew Harrington wrote: > I have a reservation for 10 at Maria's Mexican Restaurant, Friday > 6:45PM, 9440 W Foster Ave. > > Attenders for Friday dinner: Andy Harrington, ?? +1 (and Attenders += Vern Ceder ;) ) > The night and place can be changed, but I strongly suggest an > advanced plan so we are not futzing around rather than sitting and > enjoying our brief chance for each other's company. +1 > I suggest we reserve Open Space at the conference site, starting > about 8:30PM Friday, assuming a 6:45 local dinner. +1 Vern Ceder -- 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 gregor.lingl at aon.at Sun Mar 22 22:46:13 2009 From: gregor.lingl at aon.at (Gregor Lingl) Date: Sun, 22 Mar 2009 22:46:13 +0100 Subject: [Edu-sig] PyCon dinner, meeting In-Reply-To: References: Message-ID: <49C6B1A5.4050402@aon.at> Andrew Harrington schrieb: > For Pycon I posted dinner/meeting suggesting some time ago at the BoF site > http://us.pycon.org/2009/openspace/EduSig/ > > I see no responses. It occurs to me that may be because I did not > echo it here! So here is my response: I'd also like to join this dinner. Friday is ok for me. (I'll arrive in Chicago Thursday late in the evening, 23pm, so Thursday would be impossible for me). Regards, Gregor From mdipierro at cs.depaul.edu Sun Mar 22 23:04:43 2009 From: mdipierro at cs.depaul.edu (Massimo Di Pierro) Date: Sun, 22 Mar 2009 17:04:43 -0500 Subject: [Edu-sig] PyCon dinner, meeting In-Reply-To: <49C6B1A5.4050402@aon.at> References: <49C6B1A5.4050402@aon.at> Message-ID: <559F4D4E-4228-457F-B693-A17E3E911F2E@cs.depaul.edu> I would like to join too. Friday is the only option that may work for me. Anyway, I cannot yet commit for various personal reasons. Massimo On Mar 22, 2009, at 4:46 PM, Gregor Lingl wrote: > > > Andrew Harrington schrieb: >> For Pycon I posted dinner/meeting suggesting some time ago at the >> BoF site >> http://us.pycon.org/2009/openspace/EduSig/ >> >> I see no responses. It occurs to me that may be because I did not >> echo it here! > So here is my response: I'd also like to join this dinner. Friday is > ok > for me. > (I'll arrive in Chicago Thursday late in the evening, 23pm, so > Thursday > would be impossible for me). > > Regards, > Gregor > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig From kirby.urner at gmail.com Mon Mar 23 02:48:10 2009 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 22 Mar 2009 18:48:10 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: On Sat, Mar 21, 2009 at 4:17 PM, Scott David Daniels wrote: << SNIP >> > You should definitely take a look at > > http://arstechnica.com/science/news/2009/03/building-a-better-way-of-understanding-science.ars > Thanks for this Scott. I like the concluding somewhat shy request that peers use viral marketing techniques i.e. "NSF didn't pay us to campaign for these ideas" (academics thinking getting paid is an entitlement sometimes, whereas the rest of us have to do all our marketing on our own dime, from proceeds against sales -- no NSF money for me, though First Person Physics was certainly a better than average college try (Dr. Bob Fuller & Co., Univ. of Nebraska @ Lincoln). """ The last part of being useful, however, is making sure people know this resource is out there. Scotchmoor ended her talk at AAAS by saying that, although the NSF funded putting the site together, that money did not include any way of informing the wider educational community. Which is where her talk at AAAS, which led to this article, may come in. If you find the content at Understanding Science compelling, then it would be great to make any educators you know aware of its presence. """ > as this is where Python can be very useful in science -- the > "stand at a whiteboard and scrawl and argue" phases. ?I do it > for computer science, but I've used it to talk evolution with > a creationist -- explaining how recognizers can (and are) trained > to match things from weighted inputs and evaluate-crossover cycles > where the programmer has no idea how to solve the problem, but can > train a machine to do so. Yeah, like I stood in front of a projector this afternoon and walking through an RSA example in the shell. True, I was importing a few tools, but they stayed out of the way. Here's a screen shot from my presentation, to a highly trained technical audience of adults, although we had a 14 year old present at one point... http://worldgame.blogspot.com/2009/03/spring-equinox-2009.html (middle of the column, click for larger view) Of course it's easy as pie to demonstrate RSA like these even on Excel. What's special about this Pythonic approach is the realism of using some actual RSA numbers, albiet a "cracked" one. If you click on the source, you'll see I'm spinning this a marketing vs. the competition (calculators, TIs for sure, but also Sharp, Casio, HP and the rest of 'em). Kirby > > > --Scott David Daniels > Scott.Daniels at Acm.Org > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From echerlin at gmail.com Mon Mar 23 04:03:30 2009 From: echerlin at gmail.com (Edward Cherlin) Date: Sun, 22 Mar 2009 20:03:30 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: On Sat, Mar 21, 2009 at 2:14 PM, kirby urner wrote: > One of our Wanderers (think tank in Portland) wrote: > > """ > I expect that teaching Python/Perl/Ruby/Java in the 2000s will be > viewed with the same scorn in the 2030's. The problem with "flavor > of the month" languages is that they are passe a month later, as > better abstractions appear. Such evanescent ways of doing things > are probably not the basis for life-long learning. We need a language-independent way of teaching programming concepts. I have an idea for one based on Turtle Art, which represents programs as trees, not texts. Most programming languages have to transform texts to trees before executing or compiling them. Trees are far more fundamental than texts. Everybody in the LISP world knows that syntax is just sugar on the top of a language. I hope to see other language-independent models. > << SNIP >> > > In the Wonderful World of the Future, most people will be actively > creating active digital content with state and flow control, object > abstraction, "programming" in the sense of producing automated > stuff that accomplishes tasks. There are several programming languages popular among non-professional programmers. These languages get no respect in the professional community, and neither do their users. But think what a non-professional programmer is. He or she is typically a specialist in some other domain who needs custom programming. A statistician, a scientist, an engineer, a computer musician...I know people in each of those fields, and others, creating their own software to do their jobs. A language for professional programmers can be quite elaborate, requiring considerable effort to learn and constant use to maintain. A language for non-professionals must be simple in structure, with minimal syntax and minimal > But it won't be text based. There > may be a few Morlocks laboring down amongst the lines of code like > you and I do. Mitch Bradley, the author of Open Firmware, programs to bare metal so that the rest of us don't have to. He is hardly a Morlock. > Working with "text code" will probably be considered > "fundamental" and "connected with our roots", like animal-powered > agriculture is now.... Code will not go away. But as in the AI community long ago, we will think of programs to write programs to write programs. > So take a look at "programming in schools" from the viewpoint of > an adult in 2030, not a 2009 viewpoint, and heaven forbid from the > viewpoint of the ancient times when you and I were trained. What > do you wish you had been taught 40 years ago? Not BASIC, not Pascal, not even Python. In my case, Smalltalk, LISP/SCHEME, FORTH, and APL/J, each of which presents a different model for thinking about how computers work and about how to represent knowledge and skill. Each also has a radically simple syntax and a universal concept of data structures. In Smalltalk, everything is an object. LISP represents everything in trees. APL in forests. FORTH in memory layout. LISP, FORTH, and APL each has a different way to model object-oriented programming. "I invented Object-Oriented Programming, and C++ is not what I had in mind."--Alan Kay > What was fashionable but dated? Computer literacy is the worst. Just as though we had a room where all of the pencils and paper and books were kept, where you could fool around for an hour or two a week, but you had no books in your courses, and you could not do written homework. Earth Treasury is working on Digital Textbooks, now that we can give children the use of computers 24/7. > Extrapolate that forwards, and try to guess what they > will want, not what you and I consider important /now/. For extra > points, try to guess what they should be teaching *their* kids, > for use in the year 2060, and get started on the theoretical > underpinnings of *that*. In 2060 there will be new physics and math that we have no idea of. There will be new media, and new art forms. We will not think about economics and politics as we do now. We can expect that everybody on Earth who wants to be on the Internet will be. Dire poverty should have ended. We cannot specify content in advance. What I want is for children to be taught collaborative discovery in the realm of powerful ideas. o What is this? Is it real? How do I know? (In a $2 word, ontology) o What does this mean? Is it true? Why should you believe me? (epistemology) o Is this important? Should I do something about it, even if I don't want to? (ethics) > I'm wondering what people on this list think about this remark. > > I responded rather sharply at the time, as I think it's a common > dodge, to avoid adding grist to the mill today, because of some > hypothetical future wherein said "grist" will be obsolete. I do not argue against grist. I argue that our children should be able to adapt the mill when necessary. > In the meantime, we continue teaching technical subjects as if the > FOSS revolution never happened, I think imperiling its gains (sliding > back into a pit of "deep silos" proprietary ignorance -- could > happen). Some of us are working on integrating FOSS into the heart of the curriculum. In order to penetrate into the other world you speak of, we have to get past the current bureaucratic textbook acquisition process. We can do that because our books will have no cost. We have to integrate software into textbooks, and into the curriculum, as we can with one-to-one computing. We know of social and political forces preventing school reform. FOSS allows us to go around these obstacles. We must prepare to meet others that will arise. > I've further registered my disagreement with the above model in my > journal posting of this afternoon, but I'm guessing a wider variety of > perspectives might be useful at this juncture. > > http://mybizmo.blogspot.com/2009/03/noodling-and-doodling.html > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Silent Thunder (??/???????????????/????????????? ?) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) From kirby.urner at gmail.com Mon Mar 23 06:40:40 2009 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 22 Mar 2009 22:40:40 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: On Sun, Mar 22, 2009 at 8:03 PM, Edward Cherlin wrote: << SNIP >> > We need a language-independent way of teaching programming concepts. I > have an idea for one based on Turtle Art, which represents programs as > trees, not texts. Most programming languages have to transform texts > to trees before executing or compiling them. Trees are far more > fundamental than texts. Everybody in the LISP world knows that syntax > is just sugar on the top of a language. > > I hope to see other language-independent models. > I'm not so sure about this, unless by "language-independent" you mean we go through several languages, in which case then I agree. What I shun is a "purist" approach wherein no actually executing language is considered worthy or good enough, because each and every one is considered too quirky or special case in some way (as if that "perfectly general language" at the end of the rainbow could ever be free of these defects). This trading away of a very appealing feature ("it runs on a machine") in favor of some paper and pencil "pureness" is what I'd consider a rip off, as students want the fun of actually noodling and doodling with electrified metal, not just with wood pulp. What's fun about computing is in large degree the superhuman speeds attainable with fast-oscillating crystals. The paper and pencil world shouldn't plan on getting in the way here, though its fine to design with diagrams, storyboard, all manner of squiggles (we also allow colored pens, not just pencils). >> << SNIP >> >> >> In the Wonderful World of the Future, most people will be actively >> creating active digital content with state and flow control, object >> abstraction, "programming" in the sense of producing automated >> stuff that accomplishes tasks. > > There are several programming languages popular among non-professional > programmers. These languages get no respect in the professional > community, and neither do their users. But think what a > non-professional programmer is. He or she is typically a specialist in > some other domain who needs custom programming. A statistician, a > scientist, an engineer, a computer musician...I know people in each of > those fields, and others, creating their own software to do their > jobs. An example or two might be helpful. I spontaneously think of Excel, SPSS and Mathematica, all of which get respect, although not so much as "general purpose languages" -- which has specific meaning. Mathematica is general purpose in the sense of "comprehensive in what it covers" but I don't see it as a replacement for SQL or Javascript. I think it's helpful for all of us to admit that, in writing specific instructions in language A, we're likely also leveraging others' work in languages B, C and D. For example, Python depends on C which in turn depends on a surrounding operating system with an API to the hardware, firmware controlled, and so forth. A musician using a music-editing application is just as much "programming", only here the "program" is notated in musical notation (includes loop constructs, other flow instructions) and the execution is in terms of a MIDI engine or whatever. People always talk about looms, punch card controlled, as an important feeder technology, but player pianos, other instruments driven by recorded media, sometimes rotating metallic, are just as important. > > A language for professional programmers can be quite elaborate, > requiring considerable effort to learn and constant use to maintain. A > language for non-professionals must be simple in structure, with > minimal syntax and minimal > Per the CP4E rhetoric, such as I understand it, we're aiming for a day when writing machine executable notations, including musical, scripts for puppets (avatars, characters) won't be considered a career in an of itself so frequently as a component skill within other more comprehensive disciplines. Per R0ml, we're talking about a new kind of literacy. During the Renaissance, the infusion of Hindu-Arabic algorithms and abacus-based thinking, trickling through Pisa and Liber Abacci, had a profound effect on the surrounding discourse, including in art, other media. I think we're in a similar position, in terms of careers morphing in response to new digital capabilities. We're just starting to experience the "network effects" of 21st century telecommunications. In more practical terms, what CP4E looks like is some computer language experience pre-college (and not just programming those TI calculators or Lego bricks), then lots of walks of life (career paths) wherein the job-specific "control surfaces" get accessed lexically (textually) through exported APIs. That's how it is already, so I'm extrapolating from a lot of points already. If we think of driving a car as "operating the car's API" then we see how CP4E puts everyone in the driver's seat, not as a full time chauffeur necessarily (i.e. "programmer") but at least as someone who knows the freeway system (i.e. Internet), how to serve content. >> But it won't be text based. There >> may be a few Morlocks laboring down amongst the lines of code like >> you and I do. > > Mitch Bradley, the author of Open Firmware, programs to bare metal so > that the rest of us don't have to. He is hardly a Morlock. > This is what I most disagreed with in Keith's remarks. I don't think all those centuries upon centuries of encoding our thinking in lexical constructs, grammars, is suddenly on the verge of evaporating in to some drag and drop cartoon-like haze. Rushing to shield children from the supposedly harmful effects of lexical coding, while on the other hand stressing reading books and imagining while so doing (i.e. not needing those pictures "as a crutch"), is to work at cross purposes in a self defeating pattern. We're not anti-lexical, aren't trying to kill off the "left brain". Needing to type lots of characters in order to get things to happen is not a terrible thing. Wiggling fingers, instead of just lying in bed and programming through "chip implants" is also not a high crime. I'm all for prosthetics where necessary, but why as elective surgery? We have better ways to spend our R&D budgets, than on gratuitous peripherals for those with already functional biological equipment. >> Working with "text code" will probably be considered >> "fundamental" and "connected with our roots", like animal-powered >> agriculture is now.... > Agriculture is still animal powered I would add, in that animals (such as humans) eat the ag products, staff the infrastructure, thereby keeping the wheels turning. Without that insistent demand from the animals, there'd be little point doing the work. > Code will not go away. But as in the AI community long ago, we will > think of programs to write programs to write programs. > Yes, and lets not forget how languages are written in other languages. Going from Python to its C, C# or Java language "guts" is a great way to go. First get the benefits, cut your teeth, feel you've got some high level skills, then dive beneath the surface and start ripping into the internals, learning about PyObject or whatever. It's also fine to go from Python to C++, like in John Zelle's new book. Large parts of Python's favorite libraries are written in C++, notably wx and VPython (many others, feel free to chime in?). >> So take a look at "programming in schools" from the viewpoint of >> an adult in 2030, not a 2009 viewpoint, and heaven forbid from the >> viewpoint of the ancient times when you and I were trained. What >> do you wish you had been taught 40 years ago? > > Not BASIC, not Pascal, not even Python. In my case, Smalltalk, > LISP/SCHEME, FORTH, and APL/J, each of which presents a different > model for thinking about how computers work and about how to represent > knowledge and skill. Each also has a radically simple syntax and a > universal concept of data structures. In Smalltalk, everything is an > object. LISP represents everything in trees. APL in forests. FORTH in > memory layout. LISP, FORTH, and APL each has a different way to model > object-oriented programming. > We've had some discussion on this list about whether we care about some unified primitive data structure. I sense countervailing temperaments at work. Some people just feel better when there's this sense of a unified substrate, a primitive simple beginning. Others are less monotheistic in their proclivities and don't mind a more heterogeneous "toolbox" model. You get down to a bunch of very different things, working in complement. But there you have it: "everything is a thing" in basic English (a useful design pattern, even though ridiculously misleading). > "I invented Object-Oriented Programming, and C++ is not what I had in > mind."--Alan Kay > Yet we want to recruit talent willing to learn and work with C++. I've put quite a bit of work into thinking how we might recruit future M programmers (suMerian meme), copying humanities disciplines focused on ancient cultures (linguistics, archeology, history, warcraft... poetics). They tell me UC Davis is still a hotbed of MUMPS scholarship. This isn't easy work for me though, because in other contexts, hospitals clinging to "dead language" systems like MUMPS is biting into my take home pay. I want elegant FOSS solutions to replace creaky, unmaintainable, unscalable systems, but bureaucrats fight me, because people like using what they already know. Upgrading is painful, and yet without upgrading, we'd still be living in caves roasting bats for dinner. I think I'll stop trying so hard to help the MUMPS people. Let them solve their own propagation puzzles eh? I've got enough on my plate. Nevermind about suMerian, forget I ever brought it up. >> What was fashionable but dated? > > Computer literacy is the worst. Just as though we had a room where all > of the pencils and paper and books were kept, where you could fool > around for an hour or two a week, but you had no books in your > courses, and you could not do written homework. Earth Treasury is > working on Digital Textbooks, now that we can give children the use of > computers 24/7. > I like that any teacher can bookmark a boatload, and sustain storytelling with all manner of media, thanks to those nifty little URLs, invented in Switzerland they tell me. If I had to choose, whether particle physics, or the web itself, was CERN's most valuable output.... fortunately I don't have to choose (nor would anyone care if I did (have to)). >> Extrapolate that forwards, and try to guess what they >> will want, not what you and I consider important /now/. For extra >> points, try to guess what they should be teaching *their* kids, >> for use in the year 2060, and get started on the theoretical >> underpinnings of *that*. > > In 2060 there will be new physics and math that we have no idea of. > There will be new media, and new art forms. We will not think about Another way of saying it: even right now, today, many young people in our midst are doing stuff that'll seem pretty mundane and mainstream when they're old people, because then they'll be the ones running things while the rest of us, who don't understand them today, probably don't need to just to get our own work completed (we're completing projects that would've seemed zany and unthinking 50 years ago, except to people like Vannevar Bush, who anticipated Google (called it a "the MEMEX" in 1945)). > economics and politics as we do now. We can expect that everybody on > Earth who wants to be on the Internet will be. Dire poverty should > have ended. We cannot specify content in advance. What I want is for > children to be taught collaborative discovery in the realm of powerful > ideas. > A lot of us were planning to end death by starvation by 2000 (e.g. The Hunger Project), consider the delay on meeting that target a sign that we're still dangerously low IQ as a species. Philanthropists feel its a lot on their shoulders. Broadening the base of philanthropists is a core mission of my "cafe philanthropique" franchise, branded CSN around Portland, mostly viral in the blogosphere these days (using "viral" in a positive sense is one of those features of "geekspeak" that confuses the "less geekazoid"). > o What is this? Is it real? How do I know? (In a $2 word, ontology) > > o What does this mean? Is it true? Why should you believe me? (epistemology) > > o Is this important? Should I do something about it, even if I don't > want to? (ethics) > Yes, I would underscore the relation between FOSS and ethics. A rather considerable amount of negative PR has been directed at "hackers", not limited to trying to make "Linux" to blame for the dot com crash in some way (more lame Wall Street action, like we've seen a lot more of more recently), or to making "copying" synonymous with "pirating" as if (a) pirates "just copied" their booty or (b) as if copying around our own stuff weren't perfectly legal according to our own copyright (aka copyleft) laws (aka licenses). I'd say Richard Stallman is one of our great turn-of-the-millenium ethicists and it's silly not to recognize that i.e. if you're studying ethics in university someplace and don't know who Richard Stallman is, then maybe you go to some lackadaisical academy that shouldn't be handing out "doctor of philosophy" degrees in anything, let alone in philosophy itself! >> I'm wondering what people on this list think about this remark. >> >> I responded rather sharply at the time, as I think it's a common >> dodge, to avoid adding grist to the mill today, because of some >> hypothetical future wherein said "grist" will be obsolete. > > I do not argue against grist. I argue that our children should be able > to adapt the mill when necessary. > I'd argue they will do so, whether we wish it or no. However, to bring about change in an orchestrated, smooth, even enjoyable way, takes plenty of skill. We need to do our damnedest to transmit any wisdom we may think we have gleaned in this regard. And let's learn from our elders while we're at it, even as we adapt the hell out of this mill of ours. Many are working overtime to make sure that we "get it" (whatever "it" is). >> In the meantime, we continue teaching technical subjects as if the >> FOSS revolution never happened, I think imperiling its gains (sliding >> back into a pit of "deep silos" proprietary ignorance -- could >> happen). > > Some of us are working on integrating FOSS into the heart of the > curriculum. In order to penetrate into the other world you speak of, > we have to get past the current bureaucratic textbook acquisition > process. We can do that because our books will have no cost. We have > to integrate software into textbooks, and into the curriculum, as we > can with one-to-one computing. We know of social and political forces > preventing school reform. FOSS allows us to go around these obstacles. > We must prepare to meet others that will arise. > Yes, this sounds like a good summary of what a lot of people are working on. The idea of a textbook is very reassuring to most teachers. They really don't want to venture into a subject without one. "No textbook" is like sitting in front of an audience with no sheet music, expected to just improvise. That's just not how many musicians were trained. You don't spontaneously think up symphonies or duets. You carefully craft them over a period of months if not years, then serve them up, complete and "shrink wrapped" (like a new computer game, a team effort). My bias is towards improv and jazz but that's only because I've carved out various niches within the Internet as my sandbox and playground, now run around in same "as if" it were some kind of textbook (a new kind of textbook), consisting mainly of URL-identified resources cross-referencing in various ways. Thanks for putting a lot of thought into your posts to this list. I like remembering my time with Smalltalk. That notion of saving an "image", a state machine, more like a whole doll house, with everything paused, is really interesting. I don't think beginner courses with Python do enough with pickling or sharing objects over networks. I know my own curriculum writing is currently quite deficient in that respect. I usually find that when I work in a different language for awhile, then go back to one I'm more familiar with, I have new sensibilities "under my skin" which effect me even still. Habits of thought persist across languages. That's sometimes for the better, sometimes for the worse. I'm thinking it's partly the job of textbook writers aka curriculum designers, to "stack the deck" such that these transition experiences are more likely to net positive synergies than negative. That's why I think a *sequence* is important. It's all fine and good to say "they should have some exposure to LISP and/or Scheme" but then exactly where and how? The devil is in the details. For me, it might just be that in describing the "little lambda" in Python (what it does) I take this opportunity jump over to the Big Lambda religions [screen shot] and show what "real" (heavy duty) anonymous functions look like ("lambda" is kind of like "anon" in literature), in all their (sometimes tail recursive) glory. Likewise with APL/J, my bridge is probably the primitive data structure known as "a list" in Python, and the idea of "dimension" with respect to "array" (a kind of list). Working with Bernie Gunn, the New Zealand geochemist, it was interesting to see how counterintuitive it seemed to him, that we could look at v=[[a,b],[c,d]] as a "two dimensional array" such that v[0][1] in Python was like v[0,1] in Pascal or FORTRAN. This use of "dimension" is in turn our bridge to "hyperdimension" in mathematics, where once again, we're talking deeply nested arrays of the kind APL eats for breakfast -- except in geometry we might call some of these data structures "polytopes" ("like tesseracts 'n shit" (sorry -- 'Idiocracy' allusion, a fave movie)). Thanks again, Kirby > > > -- > Silent Thunder (??/???????????????/????????????? ?) is my name > And Children are my nation. > The Cosmos is my dwelling place, The Truth my destination. > http://earthtreasury.net/ (Edward Mokurai Cherlin) > From echerlin at gmail.com Mon Mar 23 08:42:18 2009 From: echerlin at gmail.com (Edward Cherlin) Date: Mon, 23 Mar 2009 00:42:18 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: On Sun, Mar 22, 2009 at 10:40 PM, kirby urner wrote: > On Sun, Mar 22, 2009 at 8:03 PM, Edward Cherlin wrote: > > << SNIP >> > >> We need a language-independent way of teaching programming concepts. I >> have an idea for one based on Turtle Art, which represents programs as >> trees, not texts. Most programming languages have to transform texts >> to trees before executing or compiling them. Trees are far more >> fundamental than texts. Everybody in the LISP world knows that syntax >> is just sugar on the top of a language. >> >> I hope to see other language-independent models. >> > > I'm not so sure about this, unless by "language-independent" you mean > we go through several languages, in which case then I agree. > > What I shun is a "purist" approach wherein no actually executing > language is considered worthy or good enough, because each and every > one is considered too quirky or special case in some way (as if that > "perfectly general language" at the end of the rainbow could ever be > free of these defects). Nothing like that. Turtle Art is completely executable. http://wiki.sugarlabs.org/go/Activities/Turtle_Art > This trading away of a very appealing feature ("it runs on a machine") > in favor of some paper and pencil "pureness" is what I'd consider a > rip off, as students want the fun of actually noodling and doodling > with electrified metal, not just with wood pulp. > > What's fun about computing is in large degree the superhuman speeds > attainable with fast-oscillating crystals. ?The paper and pencil world > shouldn't plan on getting in the way here, though its fine to design > with diagrams, storyboard, all manner of squiggles (we also allow > colored pens, not just pencils). > >>> << SNIP >> >>> >>> In the Wonderful World of the Future, most people will be actively >>> creating active digital content with state and flow control, object >>> abstraction, "programming" in the sense of producing automated >>> stuff that accomplishes tasks. >> >> There are several programming languages popular among non-professional >> programmers. These languages get no respect in the professional >> community, and neither do their users. But think what a >> non-professional programmer is. He or she is typically a specialist in >> some other domain who needs custom programming. A statistician, a >> scientist, an engineer, a computer musician...I know people in each of >> those fields, and others, creating their own software to do their >> jobs. > > An example or two might be helpful. ?I spontaneously think of Excel, > SPSS and Mathematica, all of which get respect, although not so much > as "general purpose languages" -- which has specific meaning. > Mathematica is general purpose in the sense of "comprehensive in what > it covers" but I don't see it as a replacement for SQL or Javascript. Most of my examples are from APL. Stanley Jordan is a jazz guitarist who graduated from the Princeton Computer Music program. He writes APL programs to write music. My father was an actuary. He calculated insurance rate books in APL. > I think it's helpful for all of us to admit that, in writing specific > instructions in language A, we're likely also leveraging others' work > in languages B, C and D. ?For example, Python depends on C which in > turn depends on a surrounding operating system with an API to the > hardware, firmware controlled, and so forth. > > A musician using a music-editing application is just as much > "programming", only here the "program" is notated in musical notation > (includes loop constructs, other flow instructions) and the execution > is in terms of a MIDI engine or whatever. > > People always talk about looms, punch card controlled, as an important > feeder technology, but player pianos, other instruments driven by > recorded media, sometimes rotating metallic, are just as important. > >> >> A language for professional programmers can be quite elaborate, >> requiring considerable effort to learn and constant use to maintain. A >> language for non-professionals must be simple in structure, with >> minimal syntax and minimal >> > > Per the CP4E rhetoric, such as I understand it, we're aiming for a day > when writing machine executable notations, including musical, scripts > for puppets (avatars, characters) won't be considered a career in an > of itself so frequently as a component skill within other more > comprehensive disciplines. ?Per R0ml, we're talking about a new kind > of literacy. True. > During the Renaissance, the infusion of Hindu-Arabic algorithms and > abacus-based thinking, trickling through Pisa and Liber Abacci, had a > profound effect on the surrounding discourse, including in art, other > media. ?I think we're in a similar position, in terms of careers > morphing in response to new digital capabilities. ?We're just starting > to experience the "network effects" of 21st century > telecommunications. Also the development of geometric optics, which led to perspective painting in the Renaissance and to projective geometry later on. > In more practical terms, what CP4E looks like is some computer > language experience pre-college (and not just programming those TI > calculators or Lego bricks), then lots of walks of life (career paths) > wherein the job-specific "control surfaces" get accessed lexically > (textually) through exported APIs. > > That's how it is already, so I'm extrapolating from a lot of points > already. ?If we think of driving a car as "operating the car's API" > then we see how CP4E puts everyone in the driver's seat, not as a full > time chauffeur necessarily (i.e. "programmer") but at least as someone > who knows the freeway system (i.e. Internet), how to serve content. > >>> But it won't be text based. There >>> may be a few Morlocks laboring down amongst the lines of code like >>> you and I do. >> >> Mitch Bradley, the author of Open Firmware, programs to bare metal so >> that the rest of us don't have to. He is hardly a Morlock. >> > > > > This is what I most disagreed with in Keith's remarks. ?I don't think > all those centuries upon centuries of encoding our thinking in lexical > constructs, grammars, is suddenly on the verge of evaporating in to > some drag and drop cartoon-like haze. > > Rushing to shield children from the supposedly harmful effects of > lexical coding, while on the other hand stressing reading books and > imagining while so doing (i.e. not needing those pictures "as a > crutch"), is to work at cross purposes in a self defeating pattern. I assume that this rant is directed at my Turtle Art proposal. It is not in any way opposed to lexical coding, which is essential for managing programs of even half a page in length. My proposal is to introduce tree-structured thinking first, and then show how to represent trees in lexical constructs, whether literally in LISP, or by punctuation, indentation, and other devices in other languages. The idea is to teach what is common to almost all programming languages, and make it much easier to switch from one syntax to another, as one has to do now that nobody can program exclusively in COBOL for 40 years. > We're not anti-lexical, aren't trying to kill off the "left brain". > Needing to type lots of characters in order to get things to happen is > not a terrible thing. ?Wiggling fingers, instead of just lying in bed > and programming through "chip implants" is also not a high crime. ?I'm > all for prosthetics where necessary, but why as elective surgery? ?We > have better ways to spend our R&D budgets, than on gratuitous > peripherals for those with already functional biological equipment. > > > >>> Working with "text code" will probably be considered >>> "fundamental" and "connected with our roots", like animal-powered >>> agriculture is now.... Bizarre. > Agriculture is still animal powered I would add, in that animals (such > as humans) eat the ag products, staff the infrastructure, thereby > keeping the wheels turning. ?Without that insistent demand from the > animals, there'd be little point doing the work. > >> Code will not go away. But as in the AI community long ago, we will >> think of programs to write programs to write programs. >> > > Yes, and lets not forget how languages are written in other languages. > > Going from Python to its C, C# or Java language "guts" is a great way > to go. ?First get the benefits, cut your teeth, feel you've got some > high level skills, then dive beneath the surface and start ripping > into the internals, learning about PyObject or whatever. It is also extremely instructive to look at Virtual Machine implementation, which used to be like bootstrapping FORTH, and has since evolved into Parrot 1.0 (just recently released). > It's also fine to go from Python to C++, like in John Zelle's new > book. ?Large parts of Python's favorite libraries are written in C++, > notably wx and VPython (many others, feel free to chime in?). See Alan Kay below. >>> So take a look at "programming in schools" from the viewpoint of >>> an adult in 2030, not a 2009 viewpoint, and heaven forbid from the >>> viewpoint of the ancient times when you and I were trained. What >>> do you wish you had been taught 40 years ago? >> >> Not BASIC, not Pascal, not even Python. In my case, Smalltalk, >> LISP/SCHEME, FORTH, and APL/J, each of which presents a different >> model for thinking about how computers work and about how to represent >> knowledge and skill. Each also has a radically simple syntax and a >> universal concept of data structures. In Smalltalk, everything is an >> object. LISP represents everything in trees. APL in forests. FORTH in >> memory layout. LISP, FORTH, and APL each has a different way to model >> object-oriented programming. >> > > We've had some discussion on this list about whether we care about > some unified primitive data structure. > > I sense countervailing temperaments at work. ?Some people just feel > better when there's this sense of a unified substrate, a primitive > simple beginning. ?Others are less monotheistic in their proclivities > and don't mind a more heterogeneous "toolbox" model. ?You get down to > a bunch of very different things, working in complement. ?But there > you have it: ?"everything is a thing" in basic English (a useful > design pattern, even though ridiculously misleading). There are quite other motives at work. One set is that some people are willing to take on a greater memory load than others. >> "I invented Object-Oriented Programming, and C++ is not what I had in >> mind."--Alan Kay >> > > Yet we want to recruit talent willing to learn and work with C++. > I've put quite a bit of work into thinking how we might recruit future > M programmers (suMerian meme), copying humanities disciplines focused > on ancient cultures (linguistics, archeology, history, warcraft... > poetics). ?They tell me UC Davis is still a hotbed of MUMPS > scholarship. I know the OpenVistA people. It's worldwide. > This isn't easy work for me though, because in other contexts, > hospitals clinging to "dead language" systems like MUMPS is biting > into my take home pay. ?I want elegant FOSS solutions to replace > creaky, unmaintainable, unscalable systems, but bureaucrats fight me, > because people like using what they already know. You now face a dilemma. OpenVistA _is_ FOSS. > Upgrading is > painful, and yet without upgrading, we'd still be living in caves > roasting bats for dinner. > > I think I'll stop trying so hard to help the MUMPS people. ?Let them > solve their own propagation puzzles eh? ?I've got enough on my plate. > Nevermind about suMerian, forget I ever brought it up. > >>> What was fashionable but dated? >> >> Computer literacy is the worst. Just as though we had a room where all >> of the pencils and paper and books were kept, where you could fool >> around for an hour or two a week, but you had no books in your >> courses, and you could not do written homework. Earth Treasury is >> working on Digital Textbooks, now that we can give children the use of >> computers 24/7. >> > > I like that any teacher can bookmark a boatload, and sustain > storytelling with all manner of media, thanks to those nifty little > URLs, invented in Switzerland they tell me. ?If I had to choose, > whether particle physics, or the web itself, was CERN's most valuable > output.... fortunately I don't have to choose (nor would anyone care > if I did (have to)). > >>> Extrapolate that forwards, and try to guess what they >>> will want, not what you and I consider important /now/. For extra >>> points, try to guess what they should be teaching *their* kids, >>> for use in the year 2060, and get started on the theoretical >>> underpinnings of *that*. >> >> In 2060 there will be new physics and math that we have no idea of. >> There will be new media, and new art forms. We will not think about > > Another way of saying it: ?even right now, today, many young people in > our midst are doing stuff that'll seem pretty mundane and mainstream > when they're old people, because then they'll be the ones running > things while the rest of us, who don't understand them today, probably > don't need to just to get our own work completed (we're completing > projects that would've seemed zany and unthinking 50 years ago, except > to people like Vannevar Bush, who anticipated Google (called it a "the > MEMEX" in 1945)). And if he had published the idea of solving for the eigenvector of the connectivity rating matrix, we could have had it a lot sooner, because that's what Google contributed to the world of search: PageRank. >> economics and politics as we do now. We can expect that everybody on >> Earth who wants to be on the Internet will be. Dire poverty should >> have ended. We cannot specify content in advance. What I want is for >> children to be taught collaborative discovery in the realm of powerful >> ideas. >> > > A lot of us were planning to end death by starvation by 2000 (e.g. The > Hunger Project), consider the delay on meeting that target a sign that > we're still dangerously low IQ as a species. EQ, I think. "All for ourselves, and nothing for other people seems, in every age of the world, to have been the vile maxim of the masters of mankind."--Adam Smith, Wealth of Nations > Philanthropists feel its a lot on their shoulders. ?Broadening the > base of philanthropists is a core mission of my "cafe philanthropique" > franchise, branded CSN around Portland, mostly viral in the > blogosphere these days (using "viral" in a positive sense is one of > those features of "geekspeak" that confuses the "less geekazoid"). > >> o What is this? Is it real? How do I know? (In a $2 word, ontology) >> >> o What does this mean? Is it true? Why should you believe me? (epistemology) >> >> o Is this important? Should I do something about it, even if I don't >> want to? (ethics) >> > > Yes, I would underscore the relation between FOSS and ethics. ?A > rather considerable amount of negative PR has been directed at > "hackers", not limited to trying to make "Linux" to blame for the dot > com crash in some way (more lame Wall Street action, like we've seen a > lot more of more recently), or to making "copying" synonymous with > "pirating" as if (a) pirates "just copied" their booty or (b) as if > copying around our own stuff weren't perfectly legal according to our > own copyright (aka copyleft) laws (aka licenses). > > I'd say Richard Stallman is one of our great turn-of-the-millenium > ethicists and it's silly not to recognize that i.e. if you're studying > ethics in university someplace and don't know who Richard Stallman is, > then maybe you go to some lackadaisical academy that shouldn't be > handing out "doctor of philosophy" degrees in anything, let alone in > philosophy itself! > >>> I'm wondering what people on this list think about this remark. >>> >>> I responded rather sharply at the time, as I think it's a common >>> dodge, to avoid adding grist to the mill today, because of some >>> hypothetical future wherein said "grist" will be obsolete. >> >> I do not argue against grist. I argue that our children should be able >> to adapt the mill when necessary. >> > > I'd argue they will do so, whether we wish it or no. They are presently neither educated to do so, nor permitted. See Bush Administration, Global Warming, gas, oil, and coal. > However, to bring about change in an orchestrated, smooth, even > enjoyable way, takes plenty of skill. ?We need to do our damnedest to > transmit any wisdom we may think we have gleaned in this regard. > > And let's learn from our elders while we're at it, even as we adapt > the hell out of this mill of ours. ?Many are working overtime to make > sure that we "get it" (whatever "it" is). > >>> In the meantime, we continue teaching technical subjects as if the >>> FOSS revolution never happened, I think imperiling its gains (sliding >>> back into a pit of "deep silos" proprietary ignorance -- could >>> happen). >> >> Some of us are working on integrating FOSS into the heart of the >> curriculum. In order to penetrate into the other world you speak of, >> we have to get past the current bureaucratic textbook acquisition >> process. We can do that because our books will have no cost. We have >> to integrate software into textbooks, and into the curriculum, as we >> can with one-to-one computing. We know of social and political forces >> preventing school reform. FOSS allows us to go around these obstacles. >> We must prepare to meet others that will arise. >> > > Yes, this sounds like a good summary of what a lot of people are > working on. ?The idea of a textbook is very reassuring to most > teachers. ?They really don't want to venture into a subject without > one. But that's just camouflage. We intend to dynamite the current idea of static textbooks, and replace them with software that offers multiple paths through a topic. > "No textbook" is like sitting in front of an audience with no sheet > music, expected to just improvise. ?That's just not how many musicians > were trained. > > You don't spontaneously think up symphonies or duets. ?You carefully > craft them over a period of months if not years, then serve them up, > complete and "shrink wrapped" (like a new computer game, a team > effort). > > My bias is towards improv and jazz but that's only because I've carved > out various niches within the Internet as my sandbox and playground, > now run around in same "as if" it were some kind of textbook (a new > kind of textbook), consisting mainly of URL-identified resources > cross-referencing in various ways. Then you should understand my emphasis on improvisational languages that don't put a lot of structure in the way of getting things done. > Thanks for putting a lot of thought into your posts to this list. > > I like remembering my time with Smalltalk. > > That notion of saving an "image", a state machine, more like a whole > doll house, with everything paused, is really interesting. > > I don't think beginner courses with Python do enough with pickling or > sharing objects over networks. ?I know my own curriculum writing is > currently quite deficient in that respect. > > I usually find that when I work in a different language for awhile, > then go back to one I'm more familiar with, I have new sensibilities > "under my skin" which effect me even still. ?Habits of thought persist > across languages. > > That's sometimes for the better, sometimes for the worse. > > I'm thinking it's partly the job of textbook writers aka curriculum > designers, to "stack the deck" such that these transition experiences > are more likely to net positive synergies than negative. > > That's why I think a *sequence* is important. ?It's all fine and good > to say "they should have some exposure to LISP and/or Scheme" but then > exactly where and how? ?The devil is in the details. > > For me, it might just be that in describing the "little lambda" in > Python (what it does) I take this opportunity jump over to the Big > Lambda religions [screen shot] and show what "real" (heavy duty) > anonymous functions look like ("lambda" is kind of like "anon" in > literature), in all their (sometimes tail recursive) glory. > > Likewise with APL/J, my bridge is probably the primitive data > structure known as "a list" in Python, and the idea of "dimension" > with respect to "array" (a kind of list). > > Working with Bernie Gunn, the New Zealand geochemist, it was > interesting to see how counterintuitive it seemed to him, that we > could look at v=[[a,b],[c,d]] as a "two dimensional array" such that > v[0][1] in Python was like v[0,1] in Pascal or FORTRAN. > > This use of "dimension" is in turn our bridge to "hyperdimension" in > mathematics, where once again, we're talking deeply nested arrays of > the kind APL eats for breakfast -- except in geometry we might call > some of these data structures "polytopes" ("like tesseracts 'n shit" > (sorry -- 'Idiocracy' allusion, a fave movie)). > > Thanks again, > > Kirby > >> >> >> -- >> Silent Thunder (??/???????????????/????????????? ?) is my name >> And Children are my nation. >> The Cosmos is my dwelling place, The Truth my destination. >> http://earthtreasury.net/ (Edward Mokurai Cherlin) >> > -- Silent Thunder (??/???????????????/????????????? ?) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) From kirby.urner at gmail.com Mon Mar 23 10:38:50 2009 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 23 Mar 2009 02:38:50 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: On Mon, Mar 23, 2009 at 12:42 AM, Edward Cherlin wrote: << SNIP >> >>> = Edward >> = Kirby > = Edward = Kirby >>> There are several programming languages popular among non-professional >>> programmers. These languages get no respect in the professional >>> community, and neither do their users. But think what a >>> non-professional programmer is. He or she is typically a specialist in >>> some other domain who needs custom programming. A statistician, a >>> scientist, an engineer, a computer musician...I know people in each of >>> those fields, and others, creating their own software to do their >>> jobs. >> >> An example or two might be helpful. ?I spontaneously think of Excel, >> SPSS and Mathematica, all of which get respect, although not so much >> as "general purpose languages" -- which has specific meaning. >> Mathematica is general purpose in the sense of "comprehensive in what >> it covers" but I don't see it as a replacement for SQL or Javascript. > > Most of my examples are from APL. > OK, but I think we agree APL is a professional language that gets plenty of respect from the professional community. > Stanley Jordan is a jazz guitarist who graduated from the Princeton > Computer Music program. He writes APL programs to write music. > > My father was an actuary. He calculated insurance rate books in APL. > I have a lot of respect for APL / J. I also cite Iverson a lot, think he supplies ammo in the CP4E department, especially in support of using an executable notation to learn math concepts. I cite him in my Python for Teachers handout on this very topic: http://www.4dsolutions.net/presentations/p4t_notes.pdf Apropos of that, the Jsoftware.com web site is one of the best in terms of walking that talk, using J to look at 'Concrete Mathematics' in particular, related territory. I'm tickled every time I think how converting a permutation to cyclic notation is a builtin primitive in J. I also enjoy writing it in Python, at which point it becomes importable as a name in a namespace. >> >> >> This is what I most disagreed with in Keith's remarks. ?I don't think >> all those centuries upon centuries of encoding our thinking in lexical >> constructs, grammars, is suddenly on the verge of evaporating in to >> some drag and drop cartoon-like haze. >> >> Rushing to shield children from the supposedly harmful effects of >> lexical coding, while on the other hand stressing reading books and >> imagining while so doing (i.e. not needing those pictures "as a >> crutch"), is to work at cross purposes in a self defeating pattern. > > I assume that this rant is directed at my Turtle Art proposal. It is > not in any way opposed to lexical coding, which is essential for > managing programs of even half a page in length. My proposal is to > introduce tree-structured thinking first, and then show how to > represent trees in lexical constructs, whether literally in LISP, or > by punctuation, indentation, and other devices in other languages. The > idea is to teach what is common to almost all programming languages, > and make it much easier to switch from one syntax to another, as one > has to do now that nobody can program exclusively in COBOL for 40 > years. > Not really directed at Turtle Art proposal no. I think it's more I get this feeling when in the Squeak and Smalltalk world, that there's a backlash against lexical coding as that means typing (as in typewriter, keyboard) and little children aren't so good at that, ergo need like affirmative action where we use eye candy approaches, "friendly" peripherals, and let them conceptualize these "like programs" in a dream-like Disney-esque environment. I skeptical of this tendency to over-romanticize the "child prodigy programmer" as if we should be spending big GNP on overcoming any need for a keyboard, so Johnny Neutron can just "program in his mind's eye". Similar to my rant against chip implants, trying to bypass eyes and fingers even when these are working OK. Even though this technology is still somewhat far off (in terms of the Hollywood versions) I think it sends the wrong message to even hype them as desirable, as if we'd all be happier if this were Wall*e world (everyone on their backs with a big gulp, thinking in Smalltalk). You're not in that camp, or at least not with this project, is what I hear you saying. But that that brings up the question of what age range you're aiming at and do they know how to type. So again, I'm not a detractor w/r to Turtle Art, hope you won't think of me that way. If you're getting across tree structures, that's all to the better I'm thinking, because of the DOM and XML more generally. XML is a tree structure, in terms of nodes having children and not having more than one direct parent. In the old days, when we'd teach grammar, including Latin grammar (because it's hard, consistent, and detailed -- was the theory, this is before my time), students would visualize parsing, these parts of speech. We're kidding ourselves if we don't think those kinds of concentration and analysis were irrelevant to later computer language formation -- they go part and parcel. Nowadays, though, we want to extend "grammar" to include more of a sense of the DOM, XHTML and CSS, how these inter-related, including with template languages like Jinja2. That's more what IB Engish should be like. >> We're not anti-lexical, aren't trying to kill off the "left brain". >> Needing to type lots of characters in order to get things to happen is >> not a terrible thing. ?Wiggling fingers, instead of just lying in bed >> and programming through "chip implants" is also not a high crime. ?I'm >> all for prosthetics where necessary, but why as elective surgery? ?We >> have better ways to spend our R&D budgets, than on gratuitous >> peripherals for those with already functional biological equipment. >> >> >> >>>> = Keith, a well respected engineer in these parts, inventor of "Lofstrom Loop" >>>> Working with "text code" will probably be considered >>>> "fundamental" and "connected with our roots", like animal-powered >>>> agriculture is now.... > > Bizarre. << SNIP >> >> I sense countervailing temperaments at work. ?Some people just feel >> better when there's this sense of a unified substrate, a primitive >> simple beginning. ?Others are less monotheistic in their proclivities >> and don't mind a more heterogeneous "toolbox" model. ?You get down to >> a bunch of very different things, working in complement. ?But there >> you have it: ?"everything is a thing" in basic English (a useful >> design pattern, even though ridiculously misleading). > > There are quite other motives at work. One set is that some people are > willing to take on a greater memory load than others. > I share your interest in using memory efficiently. It's just that I like where Python "begins" which is "in the middle" with hash table, array / list, class itself (a kind of data struct w/ behavior), already built, ready to rumba. Problem I have with Scheme, as a starter language, is you either need to import, or code from scratch, these kinds of data structures that aren't primitive, but can easily be built (again and again, seemingly endlessly). I just get impatient with low level languages I think. I've usually had the luxury of high level objects, even as primitives. Call me spoiled in that way. When it comes to teaching mathematics with Python, the high level works in my favor. I don't necessarily want to spend much time talking about chip internals, registers. This isn't computer science or electrical engineering. We want to spend most our time thinking about Polyhedra, Vectors etc. Yes, these are expressed as Python objects, but no, we don't feel we're learning to become "professional programmers" as our goal here is to get clear on these Polyhedra and Vectors. That might be for theater work, plus something about airplanes. >>> "I invented Object-Oriented Programming, and C++ is not what I had in >>> mind."--Alan Kay >>> >> >> Yet we want to recruit talent willing to learn and work with C++. >> I've put quite a bit of work into thinking how we might recruit future >> M programmers (suMerian meme), copying humanities disciplines focused >> on ancient cultures (linguistics, archeology, history, warcraft... >> poetics). ?They tell me UC Davis is still a hotbed of MUMPS >> scholarship. > > I know the OpenVistA people. It's worldwide. > >> This isn't easy work for me though, because in other contexts, >> hospitals clinging to "dead language" systems like MUMPS is biting >> into my take home pay. ?I want elegant FOSS solutions to replace >> creaky, unmaintainable, unscalable systems, but bureaucrats fight me, >> because people like using what they already know. > > You now face a dilemma. OpenVistA _is_ FOSS. > Thanks for reminding me about this, I'd plumb forgot! So I'm just going to stay biased and say not all FOSS projects have the same half life for a reason, and I think MUMPS is on the way out, simply because the LAMP stack or a variant will do the same things and is better understood i.e. why forgo real SQL in this day and age. We should use more Django, in hospitals, not just on-line newspapers. At least that's what I'm seeing with one major client. Everything they're doing is the same kind of SQL stuff you'd do with PostgreSQL plus the interface is butt ugly, plus no one on staff knows any MUMPS so they're completely at the mercy of external vendor coders in that language, hardly prevalent compared to say Python or Perl or one of those. They pay top dollar for a DOA offering. Yes, M has a niche market in health care (where it started, where it dies), but from what I've seen up close, the health care sector is paying a high price for keeping MUMPS alive well past its prime. There's maybe a difference between a "dead language" (e.g. FORTRAN, still the basis for lotsa libraries) and a "zombie langauge" (e.g. M). >From interviews I've done, and from source code I've eyeballed, I'd say M seems a crazy-making language, not at all a pleasure to use, and in the hospital where I've seen it at work, it actually breaks in serious ways, the equivalent of a primary key getting corrupted. The product built around it is unwieldy and deficient. Fortunately, this is research data, not legal medical records. Unfortunately (until rescued), it's highly valuable, lots of the earliest heart valve procedures. I consider rescuing it from MUMPS a high priority, but in a headless bureaucracy you just "go with the flow" a lot. Inertia is a compelling force, as Newton well taught us. Anyway, from my point of view, the health care sector would benefit if it stopped investing in M, no matter how "free". Along similar lines, I get frustrated with how SQL isn't really that hard, in a simple workaday sense, where you just want some simple joins, maybe based on views. Yet Microsoft Access layers it with eye candy while making the SQL itself rather thorny, hard to eyeball. That's sort of the same thing I worry about with trying to give kids what appear to be training wheels on training wheels on training wheels -- these Dr. Seuss contraptions all designed to make up for the fact that maybe they're too young to be worrying about programming? When you're still in a little body, the priority is maybe to get outside doing some real activities, not virtual ones. A lot of that empathetic conceptualization you'll want to draw on later, isn't developed just sitting in front of a computer all day. Let's just say I'm leery of "contraptions" which insulate the "end user" from writing any code, and yet under the surface write reams and reams of the stuff, which at some point everyone ceases to fully understand... that's the opposite of "open source" in a way, as you're really just hiding the internals, keeping "end users" from really seeing behind the scenes... Bottom line, I guess I worry about using electronics to pander to the imagination in ways that undervalue developing physical coordination skills. I see how television has done this. The younger they are, the more I want to add to the motor component (gross and fine motor skills). Again, this isn't directed against any of your projects. I'm just investigating my own biases for the record, keying off the fact that MUMPS is oppressive, and that too many of my coworkers have atrophied and/or undeveloped SQL and/or database skills because the so-called "computer professionals" have taken a "spoil the end user" approach, which I regard as antithetical to FOSS. Also, on a more positive note, I think cartoon-like approaches designed to be instructive around particular concepts, are quite suitable for *adults* as well as kids. In other words, once you *can* do lexical programming and *do* have lots of physical coordination, *then* it's a good time to get a next level of training, with surreal cartoons (like manga) your imaginary friend (good way to learn some computer science). It's a lot about *sequence* (the way topics get ordered). Some of the stuff we aim at children we might do better adapting for adults. Lets have more Wii in senior centers, along with more FOSS (as we learned at the last OSCON, using FOSS to bridge grandchildren and grandparents is a good way to go).** Kirby ** http://worldgame.blogspot.com/2008/07/women-and-foss.html From bert at freudenbergs.de Mon Mar 23 13:33:52 2009 From: bert at freudenbergs.de (Bert Freudenberg) Date: Mon, 23 Mar 2009 13:33:52 +0100 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: <3C599F5C-C1ED-4514-B232-78C76645F5B9@freudenbergs.de> On 23.03.2009, at 10:38, kirby urner wrote: > Not really directed at Turtle Art proposal no. > > I think [...] that there's a backlash against lexical coding as that > means > typing Not at all, in my opinion. It's not against having to type, it's about covering distance one step at a time. I like to compare the issue to this: When kids first start to understand and speak themselves, it would be quite detrimental if they were forced to use correct grammar or even speak the punctuation out loud from the beginning. They will have enough time to learn that later, after the basics of language are internalized. When you introduce the concept of programming, learning the syntax is only one of the challenges the student has to master. If you can focus on statements, sequences, passing arguments etc first without having to introduce syntax at the same time, you remove one big hurdle. Now Python is simpler than most popular languages but I'd still say it is a needless complication for beginners. The best argument for starting with Python anyway is that that the available graphical tools are insufficient. Most of them are a dead end, they do not lead seamlessly from the graphical representation to the textual one. I actually have quite some hopes for Alice 3 (although regrettably they chose Java instead of Python as in Alice 1). - Bert - From kirby.urner at gmail.com Mon Mar 23 16:52:31 2009 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 23 Mar 2009 08:52:31 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: <3C599F5C-C1ED-4514-B232-78C76645F5B9@freudenbergs.de> References: <3C599F5C-C1ED-4514-B232-78C76645F5B9@freudenbergs.de> Message-ID: On Mon, Mar 23, 2009 at 5:33 AM, Bert Freudenberg wrote: > On 23.03.2009, at 10:38, kirby urner wrote: > >> Not really directed at Turtle Art proposal no. >> >> I think [...] that there's a backlash against lexical coding as that means >> typing > > Not at all, in my opinion. It's not against having to type, it's about > covering distance one step at a time. > > I like to compare the issue to this: When kids first start to understand and > speak themselves, it would be quite detrimental if they were forced to use > correct grammar or even speak the punctuation out loud from the beginning. > They will have enough time to learn that later, after the basics of language > are internalized. > OK, I at least understand the rhetoric I think. Provide a forgiving learning environment in which some kinds of mistakes aren't "punished" or even considered relevant. You're still learning a heckuva lot and we'll get to those niceties down the road. The next question is whether to buy it... > When you introduce the concept of programming, learning the syntax is only > one of the challenges the student has to master. If you can focus on > statements, sequences, passing arguments etc first without having to > introduce syntax at the same time, you remove one big hurdle. > I guess I'm somewhat inclined to turn it around and say "here are some language games where syntax really matters a lot" i.e. we're going to have fun getting immediate feedback if so much as a period is out of place. This takes the place of Latin and/or Greek in the old classical curriculum, what they gave to elites long before "machine logic" was a reality -- yet they still wanted something "fascist" to drill around, along with lots of arithmetic (only one right answer i.e. very strict as well...). That being said, some of the games substitute "punctuation type" syntax (e.g. significant whitespace) with "graphical type" syntax -- more like a jigsaw puzzle except with way more permutations. It's like throwing something away by dragging an icon to the trash: the liberal visual syntax says "at least hit the trash can but the angle of approach and speed of the dragging are somewhat irrelevant" (freedom!). > Now Python is simpler than most popular languages but I'd still say it is a Or even unpopular ones in terms of what you can do with it... > needless complication for beginners. The best argument for starting with > Python anyway is that that the available graphical tools are insufficient. Or maybe the argument is strict syntax is the main thing you care about e.g. you're a music teacher and the next step is programming in musical notation for multiple instruments. You learn some Python first -- building on some experience with related f(x) math notation for eating and operating with number 'n string types -- on the theory that a tightly constrained lexical environment is your ticket to becoming an orchestra conductor down the road someday, or something similar. In sum: expose yourself to strictness because of strictness down the road. What's so attractive about using REPL for feedback is the computer corrects you "impersonally" and in the privacy of your own experience i.e. you don't have some "other adult" saying "no that's not it" over and over. A lot of adults just want that freedom to make mistakes in peace and in solitude, would prefer not to run Python over the web because they think some "teacher" might be "keeping score". That probably sounds overblown, but I'm trying to circle part of what I think machine executing languages contribute towards healing and/or saving "a broken math pipe" (the problem of too many students feeling forever heartbroken that math will be never be "their thing" -- we want them to love it again, reopen those doors). There's a kind of authoritarianism in math pedagogy / andragogy that you get away from once there's a feedback cycle that lets you practice to make perfect, even better than having answers in the back of the book. Now (at last!) you get to "practice" like you would with a skateboard, or with with a tennis racket and ball against the wall. You can even doodle, i.e. write goofy little scenarios around Foo and Bar that're just idle experiments -- but in your dreams, it's all about storyboarding for some career (and not that unrealistically maybe, is the promise here...). > Most of them are a dead end, they do not lead seamlessly from the graphical > representation to the textual one. I actually have quite some hopes for > Alice 3 (although regrettably they chose Java instead of Python as in Alice > 1). > > - Bert - > That seems as clear a visionary statement as any, thanks for adding in to this thread. I'm always trying to figure out what this "pie in the sky" for children thing even is, i.e. what would it look like if we finally had it (a syntax-free coding language?). Is it MIT's Scratch? Maybe closer to Alice 3 then. I'm still somewhat baffled and/or a semi-skeptical. I like having lots of visual *analogies* for adults, even corny ones or cliches. But the thing about analogies is they don't have to "work" i.e. here's a short animation, but we're not building a whole new language on the side, something that'll run independently, is if daydreaming about driving your car could replace actually driving a car someday. But then that's what a GUI is really doing in so many cases i.e. you have all these mousy ways to move icons around, isomorphic to bash cp and mv commands with those files. And when we slide widgets from a palette to a canvas, it's not unusual to have a few hundred lines of lexical code autogenerate as a result of that process. That certainly helps pay the bills. I'd like Python to come with more of those tools, not fewer. You'd think Microsoft would have done it with IronPython by now, given as a veritable dot net "BASIC killer" with all that Visual Studio / Visual FoxPro style drag and drop drippy goodness. But then I think Microsoft is mired in BASIC and its derivatives much as some in the health care industry are mired in MUMPS. There's an army of hungry mouths to feed, a constituency, and they want it to work in the language they know already, and learned from you, Microsoft, your hero and role model in terms of strong-arming a way. Would you dare turn your back on your customer base, given your role and reputation? That'd be like voting against a war that'd make the prime contractor in your district a boatload of money, add jobs, the same contractor that helped you get elected in the first place... It's fun watching FOSS on Windows, how that works or doesn't. At least once there's a FOSS browser in the picture such as Mozilla, it's pretty easy to go thin client and do the FOSS stuff in the back office. In getting away from thick clients, just using HTTP for everything, we bypass all that thick client complexity for basic data coordination. Use special analysis tools like SPSS or Mathematica on your own workstation, sure, but for shared research data, break free from Access and run more code on the back end. FOSS shines in providing strong SQL engines, and is starting to offer some great "schemaless" document storages as well (thinking of both CouchDB and Tokyo Cabinet, perhaps the basis future medical record systems, keeping SQL for research registries, e.g. NCDR). Anyway I guess it comes back to the notion that ordinary living is "programming" in the sense of sequencing events, being inside of data structures and so on. Syntax matters in the sense that sitting on a two legged stool is asking for trouble. When you go to the theater, they hand you a programme. That's the genesis of "scripting languages" (Wittgenstein walks toward the fireplace...). One of the fun things about those "immersive world" approaches is you come often across strict syntax in an embedded context inside that very world, e.g. you get to play chess with some Queen of Hearts, as some Alice in some wonderland (presuming that chess is both strict and syntactical -- we could argue not I suppose). Kirby From Scott.Daniels at Acm.Org Mon Mar 23 17:57:55 2009 From: Scott.Daniels at Acm.Org (Scott David Daniels) Date: Mon, 23 Mar 2009 09:57:55 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: <3C599F5C-C1ED-4514-B232-78C76645F5B9@freudenbergs.de> References: <3C599F5C-C1ED-4514-B232-78C76645F5B9@freudenbergs.de> Message-ID: Bert Freudenberg wrote: > On 23.03.2009, at 10:38, kirby urner wrote: >> I think [...] that there's a backlash against lexical coding as that >> means >> typing > > Not at all, in my opinion. It's not against having to type, it's about > covering distance one step at a time. > > I like to compare the issue to this: When kids first start to understand > and speak themselves, it would be quite detrimental if they were forced > to use correct grammar or even speak the punctuation out loud from the > beginning. They will have enough time to learn that later, after the > basics of language are internalized. > > When you introduce the concept of programming, learning the syntax is > only one of the challenges the student has to master. If you can focus > on statements, sequences, passing arguments etc first without having to > introduce syntax at the same time, you remove one big hurdle. What worries me about this is that you seem to be traveling down the "Cornell Program Synthesizer" path. That was a fully visual language that intended to change the way we all write programs. One of my most frustrating graduate school experiences was in working with LML (Lazy ML), which defined its structures in trees. The problem is that humans don't see trees (insert forest/trees joke), and so the computerand I were communicating in text. Unfortunately, I had stumbled into creating a chunk of code that was represented in text the same way that the correct program I was attempting to get in was represented in text, but was a distinct program. At that point I fell out of love with "programs are data structures," and began to realize that programs are ways that humans communicate with other humans and with computers. We should be the masters, and I should be able to go off into a field to look over a knotty problem. This issue is why I am so not in love with fancy aids in generating code; I want to read what the original programmer wrote, not the pile of garble that got blasted out when he pushed some buttons and dragged some boxes. I'll need to check his logic, determine where he went wrong, or follow and extend it to enable unanticipated requirements. Programs are (or should be) communications about the solution to particular problems, not to the computer, but to future humans reading the program. --Scott David Daniels Scott.Daniels at Acm.Org From kirby.urner at gmail.com Mon Mar 23 19:53:01 2009 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 23 Mar 2009 11:53:01 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: <3C599F5C-C1ED-4514-B232-78C76645F5B9@freudenbergs.de> Message-ID: On Mon, Mar 23, 2009 at 9:57 AM, Scott David Daniels wrote: << SNIP >> > This issue is why I am so not in love with fancy aids in generating > code; I want to read what the original programmer wrote, not the pile > of garble that got blasted out when he pushed some buttons and dragged > some boxes. ?I'll need to check his logic, determine where he went > wrong, or follow and extend it to enable unanticipated requirements. > Programs are (or should be) communications about the solution to > particular problems, not to the computer, but to future humans > reading the program. > > --Scott David Daniels > Scott.Daniels at Acm.Org Yeah, I here ya Scott. Getting widget programming right is a difficult art, in terms of not getting a lot of ugly code. I think that's what draws me to the thin client MVC approach, using a templating language to build the interface -- it's just web page design, something we already know, the browser being ubiquitous. But you also still need thick client solutions, I realize that. What I'd focus on in high school is just sharing more of this vocabulary, having more of a footprint to deliver more of the lore, shoptalk, terminology. This stuff is fun, a turn on more than a turn off. You could dismiss that as just another geek raving about what he enjoys, but they don't even get a choice a lot of the time i.e. have no clue what they're missing, given all the limelight is being hogged by other subcultures (ethnicities) at this time i.e. the "math teaching ethnicity" (not sharply defined, but that's par for the course in anthropology). On the visual programming front, I don't like curricula that work like bridges to nowhere, postulate all these future development environments we don't have, then word backwards from there (where?). We need to aim at moving targets, sure, but there's no reason to assume POSIX is going away, or that no one will need any GNU bash skills in 5 years -- so start learning some today how about? Kirby > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From kirby.urner at gmail.com Tue Mar 24 18:31:38 2009 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 24 Mar 2009 10:31:38 -0700 Subject: [Edu-sig] As We May Think: What will we automate? In-Reply-To: References: Message-ID: On Mon, Mar 23, 2009 at 3:11 PM, Edward Cherlin wrote: > On Mon, Mar 23, 2009 at 2:38 AM, kirby urner wrote: >> On Mon, Mar 23, 2009 at 12:42 AM, Edward Cherlin wrote: > >> OK, but I think we agree APL is a professional language that gets >> plenty of respect from the professional community. > > APL is on the boundary. It certainly gets no respect from C/C++ > programmers, and almost none in academia. Professional APL programmers > certainly exist, and are almost universally treated as "APL bigots". > Interesting. When I showed up at Princeton in 1976, they had APL terminals scattered around campus, including in the dorms (e.g. Princeton Inn, where I was freshman year, room mates with Dr. Sonnenfeld, now a "professor of lightning" at NM Tech, former disk drive engineer for Maxtor, coming from a relevant background in electron tunneling microscopy -- similar 'needle meets platen' concerns). Anyway, APL was clearly held in high esteem by the computer science gurus of that day, Iverson being something of a cult figure with IBM as you indicate. I read a lot of 360/370 manuals in my free time, always glad to indulge my curiosity in a well-endowed school -- what I was there for, after all. I programmed Battleship (call out coordinates, used to play with my sister in Italy) then read the APL code over the phone to my friend Glenn Baker at Brown, who later became a TV director/producer, heads the Cuban program at Center for Defense Info), probably one of the lower baud rates on record ("paren paren, box, arrow, x, paren, paren"...) but then APL does so much with so little -- a Dymaxion computer language for sure (smile). The guy was a genius, no question. J is just as weird. >>>> >>>> >>>> This is what I most disagreed with in Keith's remarks. ?I don't think >>>> all those centuries upon centuries of encoding our thinking in lexical >>>> constructs, grammars, is suddenly on the verge of evaporating in to >>>> some drag and drop cartoon-like haze. > > +1 > >>>> Rushing to shield children from the supposedly harmful effects of >>>> lexical coding, while on the other hand stressing reading books and >>>> imagining while so doing (i.e. not needing those pictures "as a >>>> crutch"), is to work at cross purposes in a self defeating pattern. > > Our idea is not shielding children permanently, but only in a certain > introductory phase. It is an advantage at the very beginning that you > cannot make a syntax error in Turtle Art. Then after you understand > program structure, variables, and such, we can introduce syntax. It's > what Edsger Dijkstra called "separation of concerns", which is > completely in opposition to "throwing the baby out with the > bathwater". > >>> I assume that this rant is directed at my Turtle Art proposal. > [snip] > >> Not really directed at Turtle Art proposal no. >> >> I think it's more I get this feeling when in the Squeak and Smalltalk >> world, that there's a backlash against lexical coding as that means >> typing (as in typewriter, keyboard) and little children aren't so good >> at that, ergo need like affirmative action where we use eye candy >> approaches, "friendly" peripherals, and let them conceptualize these >> "like programs" in a dream-like Disney-esque environment. > > Typing is a consideration. Syntax errors are a consideration. I don't > care about eye candy or Disney. Do you have a beef with Affirmative > Action? I have seen it done right and done wrong. I'm against doing it > wrong, but not against it itself. I think I'm trying for "right now realism" with students and wanting to minimize any "pie in the sky" aspects. When I was smaller, I heard adults always talking about the future we'd inherit, had a passing the buck flavor, not that I didn't want to inherit a future mind you (I did, still do), but there was always this wistful "could be doing" angle, whereas what was really happening was dismal and dreary (lots of carpet bombing for backdrop, is how I grew up -- people freaking out everywhere you looked, including in the Oval Office -- much better now). So right now, programming at an adult level, when not using a "game show" system like Alice, is very stark and austere. Syntax matters. It's still somewhat hard to do. A lot of these kids are coming from hours of TV, fast cuts and high bandwidth, experience school as a screeching horrific slowness as adults slam on the brakes and do this very low bandwidth thing in the front of the room called "teaching", which is so *not* like Bill Nye the Science guy, who runs ya through 10K bits worth of science in like 5 milliseconds, whereas this not-on-TV teacher is still saying "the". I don't want my students to think I'm trying to slow them down too much, encourage them to watch our geometry YouTubes, roll there own, but when it comes to computer programming, I don't want to indulge unrealistic fantasies of instant gratification, i.e. after 10 minutes at the keyboard, you'll be pumping out a movie like 'Shrek' or 'Cars' ("how about 10 hours?" they ask me). And yes, we're getting closer, if you're happy to work with canned characters you don't have to design yourself, and preset motions, in which case a Python API of sim.dothis(args) and sim.dothat(args) makes plenty of sense. I was able to program this movie in a few minutes, just using a few keystrokes: http://worldgame.blogspot.com/2009/02/regarding-objectifying.html Putting it another way, you could say my bias is to have zero interest in what we might be doing five years from now. I'm interested in education reforms we might institute within the next 24-48 hours. Rolling a projector into the room and starting to show Python, starting to teach "boring math" with these new tools, is within range of many a Portland classroom, not in five years, but tomorrow (except it's spring break, so yawn, not interesting). Here's from my blog from a few years back, just to give more of the outlook: """ An important point to emphasize with a new generation of computer-savvy student, wowed by eye candy, is that even if the graphics are glitzy, the source code behind them is still text-based. In other words, the programmer's world still looks more like free verse poetry than Saturday morning cartoons. One way to show this is to start with a VRML graphic, such as the 5-frequency icosasphere in the right window above, let students interact with it, using interface controls (Cortona's in this shot), then switch to the left window, where a scrolled session demonstrates a corresponding text-based API. What bridges left and right is a lot of scripting language, in this case Python. These scripts take user parameters and generate the underlying .wrl file (world file), which the VRML browser then processes and displays. Likewise, even where the effective use of such scripts is to valve electrons on a motherboard, in order to make state changes to a hard drive, the engineers who designed this mutiple layering of hardware and software used a lot of human-readable text in the process. We're still firmly anchored to what we most need: comprehensible readings (even if highly technical sometimes). The moral of the story is, contrary to outward appearances, the culture is not moving away from reading, i.e. the process of eye-balling text to extract meaning. The right brain is getting more of a workout, what with all the visual cortex stimulation, but so is the left. So the old balance between left and right is still recognizable. """ [ http://worldgame.blogspot.com/2005/01/text-drives-graphics.html ] > >> I skeptical of this tendency to over-romanticize the "child prodigy >> programmer" as if we should be spending big GNP on overcoming any need >> for a keyboard, > > Non sequitur. I'm interested in how early we can introduce programming > concepts to all children. First grade? Preschool, using iconic tiles? > But two-year-olds can learn to read and type, as demonstrated by Omar > Khayyam [sic] Moore in the 1960s. It doesn't have to be an either/or. > Somewhat a non sequitur I agree, but I do get these hand-wringing parents with some geekazoid for a kid, wondering if they should be sending him to "a special school" where presumably they have LCDs bolted to the bottom of bunk beds, computer camps where you can use your mouse to order a breakfast of champions. Like this 8 year old at Winterhaven (our geek hogwarts): he had his Thinkpad partitioned for five operating systems, had figured out how to host telnet and install putty on an NT box in the school, patching in over the subnet. 3rd grader. My attitude is kids this age deserve a normal childhood playing with friends, developing their own personal coordination skills. All in good time in other words. A child that self motivated will find ways to keep honing those skills, with encouragement, but now that we have the Internet, there's really no need for that "special skool". You can develop that Google Appengine from the comfort of your own bedroom, in collaboration with friends. >> so Johnny Neutron can just "program in his mind's >> eye". ?Similar to my rant against chip implants, trying to bypass eyes >> and fingers even when these are working OK. ?Even though this >> technology is still somewhat far off (in terms of the Hollywood >> versions) I think it sends the wrong message to even hype them as >> desirable, as if we'd all be happier if this were Wall*e world >> (everyone on their backs with a big gulp, thinking in Smalltalk). > > Wow, that's some real rubbish you're rubbising, ya. Yeah, but you'd be amazed how many people want $10 million so they can come up with the "interface of tomorrow" in which we cleverly bypass all that biological equipment that represents an astronomical R&D budget "because we can" (or think we can). Prosthetics are one thing, but suggesting we all cut off our arms to be outfitted with something made by Mattel -- why do this consciously? (i.e. lets bring those troops home). I think DARPA should send anything "borg like" to the shredder, i.e. that "soldier of tomorrow" scifi has just ruined a lot of engineering shops, turned CTOs into numbskulls. Put a big sign over the door: No Borg! Forget about it! Then maybe the grant proposals would improve? > >> You're not in that camp, or at least not with this project, is what I >> hear you saying. ?But that that brings up the question of what age >> range you're aiming at and do they know how to type. > > 2+, eventually. Maybe. We can teach them. > >> So again, I'm not a detractor w/r to Turtle Art, hope you won't think >> of me that way. ?If you're getting across tree structures, that's all >> to the better I'm thinking, because of the DOM and XML more generally. >> ?XML is a tree structure, in terms of nodes having children and not >> having more than one direct parent. > > XML is, to me, just LISP with named parentheses and nice pretty-printers. > >> In the old days, when we'd teach grammar, including Latin grammar >> (because it's hard, consistent, and detailed -- was the theory, this >> is before my time), students would visualize parsing, these parts of >> speech. > > I did lots of diagramming sentences as tree structures on paper and blackboard. > We also like networks, just as much as trees. A polyhedron is a network (topologically speaking, the way we teach 'em). We might start with Euler and those bridges, then trying to draw those houses with one pen stroke, not overtracing any line (remember that one? -- can't do a double-house). >> << SNIP >> >> >>>> I sense countervailing temperaments at work. ?Some people just feel >>>> better when there's this sense of a unified substrate, a primitive >>>> simple beginning. ?Others are less monotheistic in their proclivities >>>> and don't mind a more heterogeneous "toolbox" model. ?You get down to >>>> a bunch of very different things, working in complement. ?But there >>>> you have it: ?"everything is a thing" in basic English (a useful >>>> design pattern, even though ridiculously misleading). >>> >>> There are quite other motives at work. One set is that some people are >>> willing to take on a greater memory load than others. >>> >> >> I share your interest in using memory efficiently. ?It's just that I >> like where Python "begins" which is "in the middle" with hash table, >> array / list, class itself (a kind of data struct w/ behavior), >> already built, ready to rumba. ?Problem I have with Scheme, as a >> starter language, is you either need to import, or code from scratch, >> these kinds of data structures that aren't primitive, but can easily >> be built (again and again, seemingly endlessly). > > Other LISPs have arrays and suchlike. > Yeah, I'd like to watch a few DVDs on LISP, have good symbol animations taking me through it, like on ShowMeDo. I might code along with my laptop, or just do email watching from the corner of my eye. I've done some LISP, sure, but only for the hard fun of it. At Princeton, I was mostly too busy reading Wittgenstein, and logical languages that aren't designed to machine execute. >> I just get impatient with low level languages I think. ?I've usually >> had the luxury of high level objects, even as primitives. ?Call me >> spoiled in that way. > > There is a place for low-level languages like pure LISP and FORTH. > They make great language-building toolkits, if you need different > abstractions than the ones provided, and don't want to carry around > the baggage of Smalltalk when you don't need it all. > Absolutely there's a place. In talking about my own "impatience" I'm not trying to make a virtue out of holes in my skill set. I'm just recognizing my own mortality and limitations. I can't square dance either, at least not well. >> When it comes to teaching mathematics with Python, the high level >> works in my favor. ?I don't necessarily want to spend much time >> talking about chip internals, registers. ?This isn't computer science >> or electrical engineering. ?We want to spend most our time thinking >> about Polyhedra, Vectors etc. > > As in NumPy and SciPy, yes. But there are languages for chip people, > including AHPL, an APL dialect that compiles to wiring lists. Iverson > invented APL for describing computers, and co-wrote the paper giving a > complete, theoretically executable definition of the 360 architecture. > One of the first software emulators ever. > Yes, amazing what APL can express. >> Yes, these are expressed as Python objects, but no, we don't feel >> we're learning to become "professional programmers" as our goal here >> is to get clear on these Polyhedra and Vectors. ?That might be for >> theater work, plus something about airplanes. > > +1 > >>>>> "I invented Object-Oriented Programming, and C++ is not what I had in >>>>> mind."--Alan Kay > >> Yes, M has a niche market in health care (where it started, where it >> dies), but from what I've seen up close, the health care sector is >> paying a high price for keeping MUMPS alive well past its prime. >> There's maybe a difference between a "dead language" (e.g. FORTRAN, >> still the basis for lotsa libraries) and a "zombie langauge" (e.g. M). > > You may prefer OpenMRS from Partners in Health. > I'm thinking the legal medical record is maybe headed for a "schemaless" document storage such as CouchDB (Erlang) and/or Tokyo Cabinet and/or... whereas the research registries such as I deal with (clinical research records != legal medical records) will stay in SQL engines (registries far less amorphous, whereas the "generic medical record" is hellacious in any RDBMS approach -- so much could go wrong, need a table for everything). Reducing health care costs is all about government funding of FOSS-based solutions that remain FOSS, i.e. today hospitals are treated as cash cows by closed source vendors who hog all the MUMPS to themselves (just makes 'em mad cows). If hospitals got together the way we do it around FOSS, with stimulus from Uncle Sam or other government, they could start making some real headway. The main barrier is the public not understanding that FOSS sometimes means the best engineering money can't buy, and that "open source" doesn't mean "less security" (a very common misconception, whereas the opposite is much closer to true (if it's not open source, don't trust it with your life)). My proposal for CRRs is to just use a state of the art MVC like Django or Rails, why not? They already got web page designers with CSS skills. The IT department knows SQL. All they need to do is migrate the data and kiss MUMPS good bye (easier said than done, I realize, but its a 24-48 hour kind of thing to get started, so of interest at least). >> From interviews I've done, and from source code I've eyeballed, I'd >> say M seems a crazy-making language, not at all a pleasure to use, and >> in the hospital where I've seen it at work, it actually breaks in >> serious ways, the equivalent of a primary key getting corrupted. ?The >> product built around it is unwieldy and deficient. > > The original point of MUMPS was that doctors could program medical > informatics themselves. Apparently they are now discouraged from > learning the language and doing so. What happened is some doctors got started down this road, then professional coders took over as the code base got big and user needs multiplied, i.e. some of the best doctor-begun startups went commercial, at which point the docs get a pat on the back and computer scientists come in the run the place. We're back to square one in some ways, as a next generation of skilled heart surgeon eyeballs Python and thinks "hey, this ain't so hard" (SQL isn't either). But then they think: "but wait, I'm a doctor, trained to cure sick people -- I can appreciate and understand this stuff, but I think I'll let the hospital IT department work with outcomes research groups on actual implementation (I'll be welcome at meetings though, will give plenty of input, and isn't it cool that I really understand what they're talking about!)). > >> Along similar lines, I get frustrated with how SQL isn't really that >> hard, in a simple workaday sense, where you just want some simple >> joins, maybe based on views. ?Yet Microsoft Access layers it with eye >> candy while making the SQL itself rather thorny, hard to eyeball. > > QBE, a 2D visual system, is mathematically stronger than SQL. > I'll have to take a look. If it's a 24 hour type of thing... >> That's sort of the same thing I worry about with trying to give kids >> what appear to be training wheels on training wheels on training >> wheels -- these Dr. Seuss contraptions all designed to make up for the >> fact that maybe they're too young to be worrying about programming? > > Programming is one of the most powerful ideas around for making sense > of the world around you. Everything in human life is governed by some > complicated combination of rules and customs. Programming makes better > sense out of most of the rules, and some of the customs. When you > reach the limits of programming, you know something important about > what remains. > >> When you're still in a little body, the priority is maybe to get >> outside doing some real activities, not virtual ones. ?A lot of that >> empathetic conceptualization you'll want to draw on later, isn't >> developed just sitting in front of a computer all day. > > Not an either/or. Some time outside, some time in. > Right. Place when you're hiking around in the Columbia Gorge you might have a dodeca-cam on your back, streaming to the hard drive in your back pack. Back at the school, computers will stitch together those seamless Google Street type views, ready for the school intranet and web pages. We could do this within the next 48 hours, equipment-wise. The dodeca-cam company is just a few blocks from here. But oh yeah, it's spring break and I'm supposed to leave for Chicago in a few hours. >> Let's just say I'm leery of "contraptions" which insulate the "end >> user" from writing any code, and yet under the surface write reams and >> reams of the stuff, which at some point everyone ceases to fully >> understand... ?that's the opposite of "open source" in a way, as >> you're really just hiding the internals, keeping "end users" from >> really seeing behind the scenes... > > You can do that. We in Turtle Art and Smalltalk don't. > In Visual FoxPro, you don't see any reams of code i.e. the Form with the widgets exports all these pockets where you can put your code, but the Form itself stays a black box with a well defined API. You could think of it as C code. That's pretty much how it works in Python as well. You don't eyeball the actual code for the actual widget, written in C++. The widget has an API, is an object, and you use it as such (syntactically, it's an object, Python sharing Smalltalk's "everything is an object" way of thinking). A lot of Foxpro people besides me made the leap to Python awhile back. There's Dabo for example. I think a lot of it has to do with the Xbase "dot prompt" i.e. we've always worked in a shell, had that immediate APL-like interactivity. Python is friendly in that way. BASIC and Visual Basic are far less friendly. It's hard to use Microsoft Access in "shell mode" from a "prompt". This slows the learning curve. I don't think Python would have anything close to the visibility it has today, if it hadn't been for IDLE being included. That was the "main battery" for so many of us. >> Bottom line, I guess I worry about using electronics to pander to the >> imagination in ways that undervalue developing physical coordination >> skills. ?I see how television has done this. ?The younger they are, >> the more I want to add to the motor component (gross and fine motor >> skills). >> >> Again, this isn't directed against any of your projects. ?I'm just >> investigating my own biases for the record, keying off the fact that >> MUMPS is oppressive, and that too many of my coworkers have atrophied >> and/or undeveloped SQL and/or database skills because the so-called >> "computer professionals" have taken a "spoil the end user" approach, > > There is nothing in software that I detest more than developers > telling me what I want. I propose to create a roadmap that will allow > children to choose where to go without misleading them. Not the > Microsoft "Where do you want to go today?" bunk. > My paradigm "client" is a student bored by math class, thinking math will never be for me, and yet there's no opportunity to try the "object oriented" approach, even though computers with IDLE are just down the hall. Here's a future designing engineer, getting turned off, with a possible solution ridiculously proximal, yet not implemented. This same kid looking back, realizing what was kept from her, might think "criminal malpractice". Now of course it's true that it'll be possible to stay bored even with the switch to using a real computer language in math class. However, having done quite a few experiments in the field, I can say this is an definite upgrade in any case. We'll lose far fewer potential recruits if we take this route. I'm happy to work closely with teachers willing to do this today, with the kids we have now. If you're talking "in five years" I think that's a cop out, at least in Portland it is. Not meaning you personally, talking about school administrators here. >> which I regard as antithetical to FOSS. > > +1 > >> Also, on a more positive note, I think cartoon-like approaches >> designed to be instructive around particular concepts, are quite >> suitable for *adults* as well as kids. ?In other words, once you *can* >> do lexical programming and *do* have lots of physical coordination, >> *then* it's a good time to get a next level of training, with surreal >> cartoons (like manga) your imaginary friend (good way to learn some >> computer science). > > And I think that visual programming is good from the beginning. We shall see. > Not holding my breath though. It's time to stop waiting for any "end of the rainbow". Now is the time, not then. >> It's a lot about *sequence* (the way topics get ordered). ?Some of the >> stuff we aim at children we might do better adapting for adults. ?Lets >> have more Wii in senior centers, along with more FOSS (as we learned >> at the last OSCON, using FOSS to bridge grandchildren and grandparents >> is a good way to go).** > > We will have to test these various approaches, and adopt what works. > Yes. And we've been doing that. Fortunately, it's all running in parallel and doesn't bottleneck in one person. Workarounds are the name of the game, as for every person will to test something new, you have a lot more who just want to go through those motions (the same ones as yesterday), no matter how ill-advised. Kirby > -- > Silent Thunder (??/???????????????/????????????? ?) is my name > And Children are my nation. > The Cosmos is my dwelling place, The Truth my destination. > http://earthtreasury.net/ (Edward Mokurai Cherlin) > From echerlin at gmail.com Tue Mar 24 18:46:01 2009 From: echerlin at gmail.com (Edward Cherlin) Date: Tue, 24 Mar 2009 10:46:01 -0700 Subject: [Edu-sig] Fourth-grade math textbook project Message-ID: There is a fairly new mailing list, http://lists.sugarlabs.org/listinfo/fourthgrademath, discussing creation of a 4th-grade math book using the Sugar software for the OLPC XO as a base. You are invited if you are interested to contribute or even just to lurk. -- Silent Thunder (??/???????????????/????????????? ?) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) From da.ajoy at gmail.com Wed Mar 25 05:36:52 2009 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Tue, 24 Mar 2009 23:36:52 -0500 Subject: [Edu-sig] Why MIT switched from Scheme to Python Message-ID: http://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python Daniel From lavendula6654 at yahoo.com Wed Mar 25 05:46:41 2009 From: lavendula6654 at yahoo.com (Elaine) Date: Tue, 24 Mar 2009 21:46:41 -0700 (PDT) Subject: [Edu-sig] Python and Ajax courses at Foothill College Message-ID: <932010.76553.qm@web31303.mail.mud.yahoo.com> Foothill College is offering two courses of interest to web application software developers: Ajax and Python. These 11- week courses are held weekday evenings from April through June at the Middlefield campus in Palo Alto. If you would like to learn Application Software Development with Ajax, the course meets Wednesday evenings, 6:00 pm - 9:40 pm. The course is designed for students who are already familiar with some type of programming, and have introductory knowledge of JavaScript and html. For more information, go to: http://www.foothill.edu/schedule/schedule.php and choose Department: ?COIN?, quarter: ?Spring 2009?, and course number ?71?. If you would like to learn Python, the course meets Monday evenings and is also designed for students who are familiar with some type of programming. We will use the textbook ?Core Python? by Wesley Chun, and part of the work of the course will involve an authentic team project. For more information, go to: http://www.foothill.edu/schedule/schedule.php and choose Department: ?CIS?, quarter: ?Spring 2009?, and course number ?68K?. If you would like to sign up for a class, please register beforehand by going to: http://www.foothill.fhda.edu/reg/index.php If you do not register ahead of time, the class you want may be cancelled! If you have questions, you can contact the instructor at: haightElaine at foothill.edu From echerlin at gmail.com Wed Mar 25 05:59:20 2009 From: echerlin at gmail.com (Edward Cherlin) Date: Tue, 24 Mar 2009 21:59:20 -0700 Subject: [Edu-sig] From trees to text Message-ID: http://tonyforster.blogspot.com/2009/03/orbital-motion-in-python-and-turtleart.html Orbital motion in Python and TurtleArt Intended to demonstrate two things, a) that programmable simulations are good ways for kids to learn physics and maths b) that the programmable block provides a way for kids to move from simple drag and drop programming to more complicated text based programming Tony's point is that the programmable block allows users to explore Python at any level they like, from a single function call up. This will be an essential part of my strategy for teaching CS and programming through Turtle Art. -- Silent Thunder (??/???????????????/????????????? ?) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) From gregor.lingl at aon.at Wed Mar 25 17:47:22 2009 From: gregor.lingl at aon.at (Gregor Lingl) Date: Wed, 25 Mar 2009 17:47:22 +0100 Subject: [Edu-sig] From trees to text In-Reply-To: References: Message-ID: <49CA601A.7020705@aon.at> Edward Cherlin schrieb: > http://tonyforster.blogspot.com/2009/03/orbital-motion-in-python-and-turtleart.html > Orbital motion in Python and TurtleArt > I'd like to contribute to this topic just three scripts using Python's own turtle module (since 3.6) - for now without any further comment ( as I'm just preparing my journey to Chicago, leaving Vienna tommorow in the morning). Of course there are many ways of doing this, depending on your previous knowledge, approaches to math and physics, and to programming etc. Please run the example scripts (and compare and asses the code, if you like) # orbit1.py from turtle import * shape("turtle") speed(0) pu(); goto(200,0); pd() G = 800 hspeed, vspeed = 0, 1 t = 0 while t < 1000: x, y = pos() goto(x+hspeed, y+vspeed) r = distance(0,0) x, y = pos() hacc = (-G/r**2)*(x/r) vacc = (-G/r**2)*(y/r) hspeed = hspeed + hacc vspeed = vspeed + vacc t = t + 1 # orbit2.py from turtle import * color("orange") dot(10) color("blue") shape("turtle") speed(0) pu(); goto(200,0); pd() G = 800 v = Vec2D(0, 1) t = 0 while t < 1000: goto(pos() + v) setheading(towards(0,0)) r = distance(0,0) acc = (-G/r**3)*pos() v = v + acc t = t + 1 # orbit3.py from turtle import Screen, Turtle, Vec2D s = Screen() sun = Turtle() sun.shape("circle") sun.color("orange") planet = Turtle() planet.shape("circle") planet.shapesize(0.4) planet.pu() planet.goto(200,0) planet.pd() G = 800 v = Vec2D(0, -2) dt = 0.5 t = 0 while t < 1000: planet.goto(planet.pos() + dt*v) r = planet.distance(sun) acc = (-G/r**3)*planet.pos() v = v + dt*acc t = t + dt You can find a more elaborate example using a Planet class here: http://svn.python.org/view/python/trunk/Demo/turtle/tdemo_planet_and_moon.py?view=markup Best regards, Gregor > Intended to demonstrate two things, > a) that programmable simulations are good ways for kids to learn > physics and maths > b) that the programmable block provides a way for kids to move from > simple drag and drop programming to more complicated text based > programming > > Tony's point is that the programmable block allows users to explore > Python at any level they like, from a single function call up. This > will be an essential part of my strategy for teaching CS and > programming through Turtle Art. > > From echerlin at gmail.com Wed Mar 25 18:45:56 2009 From: echerlin at gmail.com (Edward Cherlin) Date: Wed, 25 Mar 2009 10:45:56 -0700 Subject: [Edu-sig] From trees to text In-Reply-To: <49CA601A.7020705@aon.at> References: <49CA601A.7020705@aon.at> Message-ID: Which Python are you using? Idle/Python 2.5 say: Traceback (most recent call last): File "", line 1, in shape("turtle") NameError: name 'shape' is not defined python orbit1.py Traceback (most recent call last): File "orbit1.py", line 6, in speed(0) File "/usr/lib/python2.5/lib-tk/turtle.py", line 707, in speed def speed(speed): return _getpen().speed(speed) File "/usr/lib/python2.5/lib-tk/turtle.py", line 588, in speed "one of %s" % (speed, speeds)) ValueError: 0 is not a valid speed. speed must be one of ['fastest', 'fast', 'normal', 'slow', 'slowest'] On Wed, Mar 25, 2009 at 9:47 AM, Gregor Lingl wrote: > > > Edward Cherlin schrieb: >> >> >> http://tonyforster.blogspot.com/2009/03/orbital-motion-in-python-and-turtleart.html >> Orbital motion in Python and TurtleArt >> > > I'd like to contribute to this topic just three ?scripts using Python's > own turtle module (since 3.6) - for now without any further comment ( as > I'm just preparing my journey to Chicago, leaving Vienna tommorow > in the morning). Of course there are many ways of doing this, > depending on your previous knowledge, approaches to math and physics, > and to programming etc. > > Please run the example scripts (and ?compare and assess the code, ?if you > like) > > # orbit1.py > > from turtle import * > > shape("turtle") > speed(0) > pu(); goto(200,0); pd() > > G = 800 > hspeed, vspeed = 0, 1 > t = 0 > while t < 1000: > ? x, y = pos() > ? goto(x+hspeed, y+vspeed) > ? r = distance(0,0) > ? x, y = pos() > ? hacc = (-G/r**2)*(x/r) > ? vacc = (-G/r**2)*(y/r) > ? hspeed = hspeed + hacc > ? vspeed = vspeed + vacc > ? t = t + 1 -- Silent Thunder (??/???????????????/????????????? ?) is my name And Children are my nation. The Cosmos is my dwelling place, The Truth my destination. http://earthtreasury.net/ (Edward Mokurai Cherlin) From gregor.lingl at aon.at Wed Mar 25 18:56:53 2009 From: gregor.lingl at aon.at (Gregor Lingl) Date: Wed, 25 Mar 2009 18:56:53 +0100 Subject: [Edu-sig] From trees to text In-Reply-To: References: <49CA601A.7020705@aon.at> Message-ID: <49CA7065.3000706@aon.at> Python 2.6 This has a new Python module It run's also with Python 2.5 You can download it separately from here: http://svn.python.org/view/python/trunk/Lib/lib-tk/turtle.py?view=log Docs are here: http://docs.python.org/dev/library/turtle.html#module-turtle HTH Gregor Edward Cherlin schrieb: > Which Python are you using? > > Idle/Python 2.5 say: > Traceback (most recent call last): > File "", line 1, in > shape("turtle") > NameError: name 'shape' is not defined > > python orbit1.py > Traceback (most recent call last): > File "orbit1.py", line 6, in > speed(0) > File "/usr/lib/python2.5/lib-tk/turtle.py", line 707, in speed > def speed(speed): return _getpen().speed(speed) > File "/usr/lib/python2.5/lib-tk/turtle.py", line 588, in speed > "one of %s" % (speed, speeds)) > ValueError: 0 is not a valid speed. speed must be one of ['fastest', > 'fast', 'normal', 'slow', 'slowest'] > > > From gregor.lingl at aon.at Wed Mar 25 19:30:08 2009 From: gregor.lingl at aon.at (Gregor Lingl) Date: Wed, 25 Mar 2009 19:30:08 +0100 Subject: [Edu-sig] Why MIT switched from Scheme to Python In-Reply-To: References: Message-ID: <49CA7830.8050305@aon.at> Daniel Ajoy schrieb: > http://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python > > Daniel > > Do you consider this to shed light on the nature and/or qualities of Python? Or of the MIT? Gregor > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > > From kirby.urner at gmail.com Wed Mar 25 21:43:05 2009 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 25 Mar 2009 15:43:05 -0500 Subject: [Edu-sig] Why MIT switched from Scheme to Python In-Reply-To: <49CA7830.8050305@aon.at> References: <49CA7830.8050305@aon.at> Message-ID: Contentious comments eh? Sounds like edu-sig sometimes, although trying to have dialog in a comments thread is more awkward. What does the robot look like I wonder. Open source? API? Yes, I should Google, but I'm trying to track a "Django in the real world" workshop at the moment. Pycon. Packed room. They're showing the slide that scares me the most: LiveJournal Backend: Today (roughly). LAMP isn't as easy as it sounds. Here're the slides we're looking at FYI: http://jacobian.org/speaking/2009/real-world-django/ Kirby On Wed, Mar 25, 2009 at 1:30 PM, Gregor Lingl wrote: > > > Daniel Ajoy schrieb: >> >> >> http://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python >> >> Daniel >> >> > > Do you consider this to shed light on the nature and/or qualities of Python? > Or of the MIT? > Gregor > >> _______________________________________________ >> 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 da.ajoy at gmail.com Thu Mar 26 07:36:47 2009 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Thu, 26 Mar 2009 01:36:47 -0500 Subject: [Edu-sig] Why MIT switched from Scheme to Python In-Reply-To: <49CA7830.8050305@aon.at> References: <49CA7830.8050305@aon.at> Message-ID: On Wed, 25 Mar 2009 13:30:08 -0500, Gregor Lingl wrote: >> http://www.wisdomandwonder.com/link/2110/why-mit-switched-from-scheme-to-python >> >> Daniel >> > > Do you consider this to shed light on the nature and/or qualities of > Python? > Or of the MIT? > Gregor both ;) Daniel From aharrin at luc.edu Fri Mar 27 04:43:07 2009 From: aharrin at luc.edu (Andrew Harrington) Date: Thu, 26 Mar 2009 22:43:07 -0500 Subject: [Edu-sig] Edu-sig at Pycon Message-ID: Pycon attenders, Remember our dinner at 6:45PM Friday night! If you have not already let me know you are coming, email me and/or make an entry on the BoF page http://us.pycon.org/2009/openspace/EduSig/ -- Andrew N. Harrington Director of Academic Programs Computer Science Department Loyola University Chicago 512B Lewis Towers (office) Snail mail to Lewis Towers 416 820 North Michigan Avenue Chicago, Illinois 60611 http://www.cs.luc.edu/~anh Phone: 312-915-7982 Fax: 312-915-7998 gpd at cs.luc.edu for graduate administration upd at cs.luc.edu for undergrad administration aharrin at luc.edu as professor -------------- next part -------------- An HTML attachment was scrubbed... URL: From kirby.urner at gmail.com Fri Mar 27 16:19:23 2009 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 27 Mar 2009 10:19:23 -0500 Subject: [Edu-sig] Edu-sig at Pycon In-Reply-To: References: Message-ID: Ian Benson and I confirm planning to attend. Kirby 2009/3/26 Andrew Harrington : > Pycon attenders, > Remember our dinner at 6:45PM Friday night!? If you have not already let me > know you are coming, email me and/or make an entry on the BoF page > http://us.pycon.org/2009/openspace/EduSig/ > > -- > Andrew N. Harrington > ?Director of Academic Programs > ?Computer Science Department > ?Loyola University Chicago > ?512B Lewis Towers (office) > ?Snail mail to Lewis Towers 416 > ?820 North Michigan Avenue > ?Chicago, Illinois 60611 > > http://www.cs.luc.edu/~anh > Phone: 312-915-7982 > Fax: ? ?312-915-7998 > gpd at cs.luc.edu for graduate administration > upd at cs.luc.edu for undergrad administration > aharrin at luc.edu as professor > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > From kirby.urner at gmail.com Fri Mar 27 17:30:40 2009 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 27 Mar 2009 11:30:40 -0500 Subject: [Edu-sig] The Crunchy Way Message-ID: I'm in 'Learning and Teaching Python Programming: The Crunchy Way' by Dr. Andre Roberge. This would be the "Python for Educators" track, only informally defined (as a namespace?) at Pycon. There's a BOF later. He's claiming to be an imposter (we don't believe him) because he isn't teaching Python these days (except he is, right now). He used to teach physics, knows about pedagogy. A goal is to screen scrape, find code in
 tags, and supplies an
interactive shell box.  "VLAM" -- very little added markup.

Crunchy "eats" HTML pages (good name then -- no Frog anymore).

This is an effective way to present a Python talk then:  write your
slides in HTML and run 'em through Crunchy.

"A regular Python interpreter inside the web browser".

Interpreter errors are intercepted and may be reprinted in different
languages (human languages).

By toggling the editor you get an embedded WYSIWYG editor.  You can
actually load and save files from your local tree in this system.  Go
ahead an launch any program in a separate process / window (Pyglet
demo -- bouncing balls).

Ian:  "Are you listening to this?"

Me:  (nodding) "yeah, writting about it".

He's showing a dynamically generated graph coming into the web page --
very AJAXy.

The doctest module helps with test-driven learning.  Very TDD (test
driven development).

Show double(arg) --> arg*2 working first, challenge page reader to
write the code in an editor box.  The doctests get applied (duck
typing -- you could pass the tests with a faux function I bet...).

PyWhip is moving in the same direction.

Using unittest is another option (instead of doctest).

Ian:  "this is very powerful!"

You can pick an analyzer, e.g. pyflakes, pychecker and analyze the
code.  There's a "code quality" measure, which varies depending on
which analyzer is chosen.

The "editarea" widget is really cool.  You can vary the size, go to
full page -- very capable.

Now he's showing stepping through with PDB, showing the local
namespace (in yellow the first time -- then white if it's "old", the
red if it changes).  There's also an output window.

Croquant (French for Crunchy) is a complement to Crunchy, an extension
of MoinMoin that adds the VLAM so when loading from a Croquant wiki,
you have Crunchy-ready content.

So Croquant is like a delivery tool, where the lesson plans
accumulate.  PyWhip is similar but more static (making the content
Wiki based is likely to promote organic growth).

Crunchy allows plugins (a talk in itself).  There's an experimental
turtle module (I knew there was a turtle in here somewhere -- glad to
see I'm not completely off the wall in remembering that).

He'd like to collaborate on some of the issues (security, user accounts...).

Crunchy is not meant as a main IDE so much as a learning tool,
reading/writing Python in classroom situations.

Q&A:  one of the A/V guys has a question (some of our A/V volunteers
are also Python developers -- others not).

Crunchy is designed to be used on your own machine (you the learner,
student, run Crunchy locally).

Great talk!  I'll definitely put a chip in the "green bucket".

Kirby

From macquigg at ece.arizona.edu  Fri Mar 27 18:26:02 2009
From: macquigg at ece.arizona.edu (David MacQuigg)
Date: Fri, 27 Mar 2009 10:26:02 -0700
Subject: [Edu-sig] The Crunchy Way
In-Reply-To: 
Message-ID: <5.2.1.1.0.20090327094312.02d08390@mail.ece.arizona.edu>

At 11:30 AM 3/27/2009 -0500, kirby urner wrote:

>PyWhip is moving in the same direction.
>
>Using unittest is another option (instead of doctest).

So far, I've been able to get doctest to do anything I need in testing, even some fairly complex tests involving multiple functions, pre-test setup, post-test analysis, etc.  The unittest module feels more like a tool for professional programmers working on a big Java project.  Even with all that complex setup, you still need doctests, so you'll end up doing both.

doctest is cool, because the learning barrier is zero!  Test your function by calling it from the >>> prompt.  Cut and paste to the function's docstring, and your doctest is complete.


>So Croquant is like a delivery tool, where the lesson plans
>accumulate.  PyWhip is similar but more static (making the content
>Wiki based is likely to promote organic growth).

Not quite sure what you mean here.  Could you be more specific?

Anyone can contribute problems to PyWhip, including students.  I expect we will have a huge accumulation, and the final quality will be determined by how well we chose the best, and how well get these collections organized into a good learning sequence.

Currently PyWhip more like Citizendium than Wikipedia.  Teachers (editors) control the content.  We are talking about expanding this to allow anyone to be a teacher, and register a setup.  Students who select that setup, will then see whatever problems their teacher wants them to see.

-- Dave



From kirby.urner at gmail.com  Fri Mar 27 19:52:53 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Fri, 27 Mar 2009 13:52:53 -0500
Subject: [Edu-sig] The Crunchy Way
In-Reply-To: <5.2.1.1.0.20090327094312.02d08390@mail.ece.arizona.edu>
References: <5.2.1.1.0.20090327094312.02d08390@mail.ece.arizona.edu>
Message-ID: 

On Fri, Mar 27, 2009 at 12:26 PM, David MacQuigg
 wrote:

<< SNIP >>

>>So Croquant is like a delivery tool, where the lesson plans
>>accumulate. ?PyWhip is similar but more static (making the content
>>Wiki based is likely to promote organic growth).
>
> Not quite sure what you mean here. ?Could you be more specific?
>
> Anyone can contribute problems to PyWhip, including students. ?I expect we will have a huge accumulation, and the final quality will be determined by how well we chose the best, and how well get these collections organized into a good learning sequence.
>

Given I'm just taking notes here, I shouldn't claim to speak for
Andre, so I won't, but here's my own understanding:

Croquant is, like MoinMoin, a wiki framework anyone might download and
host anywhere, while Crunchy is a client-side program that again runs
on any compatible platform.  Crunchy is especially happy "eating"
Croquant's wiki pages (if marked up the right way).

In this model, there's no control over control, i.e. as with Python
itself there's no saying what people will do with it.  Anyone can
run/host either/both products.  Is PyWhip the same way?  Is the source
code in svn.  It's a closed source Google Appengine with a specific
URL, is how I look at it today.  Wrong model?

> Currently PyWhip more like Citizendium than Wikipedia. ?Teachers (editors) control the content. ?We are talking about expanding this to allow anyone to be a teacher, and register a setup. ?Students who select that setup, will then see whatever problems their teacher wants them to see.
>

Wikipedia is a specific (special case) implementation of the wiki
framework, so if PyWhip is like a *specific* wiki, then it's less like
Croquant?  Does PyWhip run the student code on the server or on the
client?  Sorry I'm unclear.

Andre was basically giving free publicity to PyWhip, spoke of it with
admiration, but wanted to explain how his own project with not quite
the same concept.  I'm still getting clear on the specific differences
myself, so any inaccuracies are mine.  Thanks in advance for
correcting any misconceptions I may had.

Kirby

> -- Dave
>
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>

From aharrin at luc.edu  Fri Mar 27 19:54:50 2009
From: aharrin at luc.edu (Andrew Harrington)
Date: Fri, 27 Mar 2009 13:54:50 -0500
Subject: [Edu-sig] Edu-sig at Pycon
In-Reply-To: 
References: 
Message-ID: 

More deatails on Friday night at Pycon:

* Dinner:  Leave from outside Ballroom FGH at 6:25PM

  Walk to 6:45 PM reservation at Maria's Mexican Restaurant, 9440 W Foster
Ave (straight south down River Road)
  Maria's is about 800 yards south of the hotel - easy walking distance.
  Inexpensive restaurant, mixed reviews, but local!
  Reservation is for 10 people.  Please add your name so I can get a better
count, or
  suggest something different!

  Attenders for Friday dinner:  Andy Harrington, Andr? Roberge, Vern Ceder,
Ian Benson, Kirby Urner, Simon Ruiz, Gregor Lingl, maybe massimo Di Pierro,
... ??

* Meeting at 8:30PM in McCarran Open Space room.  See the suggested  topics
on the BoF web page.



On Thu, Mar 26, 2009 at 10:43 PM, Andrew Harrington  wrote:

> Pycon attenders,
> Remember our dinner at 6:45PM Friday night!  If you have not already let me
> know you are coming, email me and/or make an entry on the BoF page
> http://us.pycon.org/2009/openspace/EduSig/
>
> --
> Andrew N. Harrington
>  Director of Academic Programs
>  Computer Science Department
>  Loyola University Chicago
>  512B Lewis Towers (office)
>  Snail mail to Lewis Towers 416
>  820 North Michigan Avenue
>  Chicago, Illinois 60611
>
> http://www.cs.luc.edu/~anh 
> Phone: 312-915-7982
> Fax:    312-915-7998
> gpd at cs.luc.edu for graduate administration
> upd at cs.luc.edu for undergrad administration
> aharrin at luc.edu as professor
>



-- 
Andrew N. Harrington
 Director of Academic Programs
 Computer Science Department
 Loyola University Chicago
 512B Lewis Towers (office)
 Snail mail to Lewis Towers 416
 820 North Michigan Avenue
 Chicago, Illinois 60611

http://www.cs.luc.edu/~anh
Phone: 312-915-7982
Fax:    312-915-7998
gpd at cs.luc.edu for graduate administration
upd at cs.luc.edu for undergrad administration
aharrin at luc.edu as professor
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 

From macquigg at ece.arizona.edu  Fri Mar 27 21:18:03 2009
From: macquigg at ece.arizona.edu (David MacQuigg)
Date: Fri, 27 Mar 2009 13:18:03 -0700
Subject: [Edu-sig] The Crunchy Way
Message-ID: <5.2.1.1.0.20090327131741.02d08390@plus.pop.mail.yahoo.com>

At 03:34 PM 3/27/2009 -0300, Andre Roberge wrote:

>On Fri, Mar 27, 2009 at 2:26 PM, David MacQuigg <macquigg at ece.arizona.edu> wrote:
>>At 11:30 AM 3/27/2009 -0500, kirby urner wrote:
>>
>>>So Croquant is like a delivery tool, where the lesson plans
>>>accumulate.  PyWhip is similar but more static (making the content
>>>Wiki based is likely to promote organic growth).
>>
>>Not quite sure what you mean here.  Could you be more specific?
>>
>>Anyone can contribute problems to PyWhip, including students.  I expect we will have a huge accumulation, and the final quality will be determined by how well we chose the best, and how well get these collections organized into a good learning sequence.
>>
>>Currently PyWhip more like Citizendium than Wikipedia.  Teachers (editors) control the content.  We are talking about expanding this to allow anyone to be a teacher, and register a setup.  Students who select that setup, will then see whatever problems their teacher wants them to see.
>
>Since what I said in my talk is at the origin of Kirby's post, perhaps I should be the one to clarify.
>
>In my talk about Crunchy, I mentioned and showed (very superficially) both PyWhip and Croquant.  Croquant is a MoinMoin extension that allows to add additional markup which Crunchy can recognize and insert the requested interactive element (e.g. Python interpreter, doctest, unittest, editor, etc.) inside the browser window. Because Croquant == MoinMoin, it is a purely collaborative media where no one is the single author (with exclusive editing rights) of any example.  Someone setting a Croquant server could create a site where doctest-based problems would accumulate organically (like Wikedia).  But Croquant is static - you need to view it with Crunchy to have the interaction.
>
>PyWhip, by contrast, includes both the editing and interacting features in one app/site.  However, to use your expression, it is more like Citizendium than Wikipedia - which is essentially what I attempted to convey in my talk.

I think the essential question here is - should we allow one author to edit another's work, or preserve the original and ask the new author to submit a new problem, even if it just a minor edit of the original.  We're going with the latter for now, but at this point, anything is open for discussion.  If the new problem is a variation on the original, different numbers, etc., then we can include them both.  These are exercises.  Repetition is OK.  At some point we may want to limit the number of problems, but we are no where near that limit now.

If the new problem is a correction of some deficiency in the original - an ambiguous question, etc., then the original author has the option of including the correction in his original.  If the original author chooses not to include the correction, then the editors will have to decide whether to use the original or the corrected version.  There will never be a Wikipedia-style "edit war".

>And I did invite everyone (I would say over 100 people present) in my talk to go to PyWhip and contribute at least one problem!

Just so everyone understands, Andre is a contributor to PyWhip with full SVN access.  If there is any "competition" between PyWhip and Crunchy, it is entirely friendly.  I'm assuming all code will be available under GPL, but that is actually for Athar to decide, since he wrote it.  I think this answers Kirby's question in the next message.

99% of the value will be in the content, not the website coding.  Among the developers, I have proposed, and nobody has objected, that we use the Creative Commons license.  If this is acceptable, we will have something like this in a pop-up which appears when an author clicks SUBMIT:  
By clicking ACCEPT, you are certifying 
1) The problem you are submitting is your own work, or is a derivative 
work consistent with the original author's license. 
2) You agree that your submission will be licensed under the Creative 
Commons Attribution-Share Alike license http://creativecommons.org/licenses/by-sa/3.0 
This means that others may modify and share your work under the same 
license. 
  [ACCEPT]  [DECLINE] 
-- Dave




From kirby.urner at gmail.com  Fri Mar 27 21:44:07 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Fri, 27 Mar 2009 15:44:07 -0500
Subject: [Edu-sig] The Crunchy Way
In-Reply-To: <5.2.1.1.0.20090327131741.02d08390@plus.pop.mail.yahoo.com>
References: <5.2.1.1.0.20090327131741.02d08390@plus.pop.mail.yahoo.com>
Message-ID: 

As Andre remarked in his talk, PyWhip is still quite new, just
appeared in the last couple months.  I'm glad we're getting more of a
vision statement here from David, as that'll help any one of us
promote the site accurately.  My goal is to sustain a high degree of
realism.

Crunchy, to me, seems far more ambitious in scope.  You can evaluate
your code with a number of testers, there's the optional turtle
module, the editor goes into full page mode... it's not an IDE, as
Andre emphasized, but it's not just about writing code snippets
either.  Since it lives on your local machine, in your browser, you're
able to load and save files right there on your file tree, plus boot
up external threads (Pyglet demoed, VPython wouldn've worked just as
well no doubt).

Pywhip runs on a server, isn't about launching local processes or
accessing one's local file tree.  It doesn't go out over the web and
"eat" Python code segments in 
 tags.  It's more a
repository of challenges, submitted from various sources, to a client
looking for specific markup from external sites.

So:  apples and oranges in my book.  These initiatives are not aimed
to do the same thing.

Given the creative commons approach, I'm thinking it'd be easy to
translate any PyWhip repository into a Crunchy compatible wiki site.
Probably it'd be possible to go in the other direction just as easily.

Kirby

From kirby.urner at gmail.com  Fri Mar 27 21:56:27 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Fri, 27 Mar 2009 15:56:27 -0500
Subject: [Edu-sig] The Crunchy Way
In-Reply-To: 
References: <5.2.1.1.0.20090327131741.02d08390@plus.pop.mail.yahoo.com>
	
Message-ID: 

On Fri, Mar 27, 2009 at 3:44 PM, kirby urner  wrote:

<< SNIP >>

> Pywhip runs on a server, isn't about launching local processes or
> accessing one's local file tree. ?It doesn't go out over the web and
> "eat" Python code segments in 
 tags. ?It's more a
> repository of challenges, submitted from various sources, to a client
> looking for specific markup from external sites.

Sorry:  "... more a repository of challenges, submitted from various
sources, [not] a client looking..."

I've been blogging about Pycon in addition to posting here.  We're
having an edu-sig dinner this evening, plus I think there's a BOF.
I'll try to capture some of the discussion.

Good seeing Jeff (he's pumped about teaching algebra with Python).

Steve Holden says "dunder" for "under under" (i.e. "double under")
e.g. "dunder init" means __init__.

He's now heard my alternative, so say "the init rib", i.e. we thing in
terms of a "__rib__ cage", referring to special names.  This is a
metaphoric approach, first unveiled in Vilnius.  Steve booted Wing IDE
and used "code folding" to show all the __ribs__ as one-liners --
makes the "backbone" all the more obvious.

Using these "creaturely" metaphors is a hallmark of the early
curriculum.  Ships also have ribs, reinforcing the idea that a class
is a blueprint for a kind of "container" (an object space, like a
namespace in terms of having a __dict__ and so forth).

One of the best talks so far in addition to Andre's (for me) was by
Jeff Rush, helping us sort out the differences between a "namespace"
and a "code object".  I blogged about the talk in a sort of short
hand, but it's the slides themselves that I'm looking forward to
seeing again, very enlightning.

http://mybizmo.blogspot.com/2009/03/about-python-namespaces.html

I sat next to Jeff at the PSF meeting, yakked about how Portland and
Austin feel some affinity, because of the "Keep [ Portland | Austin ]
weird" campaigns.  I also confessed never having been to Austin.

http://controlroom.blogspot.com/2009/03/connected-campaigns.html

Kirby

From jeff at elkner.net  Fri Mar 27 23:59:53 2009
From: jeff at elkner.net (Jeff Elkner)
Date: Fri, 27 Mar 2009 18:59:53 -0400
Subject: [Edu-sig] [OLPC-Chicago] OLPC/Sugar dinner this weekend - with
	Pycon guests!
In-Reply-To: <49CCF0D6.6040202@melchua.com>
References: <99c018c60903262126k127fcbf8hd31628e3307027b1@mail.gmail.com>
	<37fa1dfb0903270647p51b4f8a0r966c9ec9111ddfb2@mail.gmail.com>
	<49CCF0D6.6040202@melchua.com>
Message-ID: <37fa1dfb0903271559l1b1cf3ebtfae89f5181dc4323@mail.gmail.com>

Hi Mel,

I'll try to get you a count at our edu-sig dinner this evening.

Two questions:

1. Are we meeting for breakfast tomorrow?
2. Have you decided on a restaurant for tomorrow evening yet?

Please include Andrew Harrington in your reply, since he knows Chicago and
has been assuming the role of coordinating the edu-sig activities at the
conference.

Thanks!

jeff

On Fri, Mar 27, 2009 at 11:29 AM, Mel Chua  wrote:

> Jeff Elkner wrote:
>
>> Most of the educationally related talks will be given back-to-back this
>> morning, so we'll have the opportunity to gather the tribe.
>>
>
> Rock. If you can send-to-list a headcount (rough, even) before... noon
> tomorrow, that would rock. I plan on calling the restaurant after my lunch
> meetings, so knowing who'll be around would be cool. (And also let me stock
> up on browser tabs to preload in my XO in case we need info for reference
> while chatting.)
>
> So far I know Matt and I will be there, and am waiting for more "I'll be
> coming!" emails to fill in the other seats. ;)
>
> --Mel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 

From jurgis.pralgauskis at gmail.com  Sat Mar 28 02:07:43 2009
From: jurgis.pralgauskis at gmail.com (Jurgis Pralgauskis)
Date: Sat, 28 Mar 2009 03:07:43 +0200
Subject: [Edu-sig] xturtle robocode idea?!
In-Reply-To: <49BF37DA.5010508@aon.at>
References: <34f4097d0903161721h60b3f859l5e4402f0cf2e769c@mail.gmail.com>
	<49BF37DA.5010508@aon.at>
Message-ID: <34f4097d0903271807h6f065cb0n94ff593e7ea77a7b@mail.gmail.com>

>> I've been searching around for python analogue of robocode...
>> http://en.wikipedia.org/wiki/Robocode
>> but then I thought xturte should be ideal for this:

I started a simple framework for it :)
https://launchpad.net/py-robocode/
http://files.akl.lt/users/jurgis/python/py-robocode/

> I'll look at this in the evening, or at most tomorrow evening.
Now You could look again :)

The implementation will need improvement anyway,
my thoughts are here
http://bazaar.launchpad.net/~jurgis-pralgauskis/py-robocode/devel/annotate/head%3A/TODO.txt

What else could anyone propose?

From jeff at elkner.net  Sat Mar 28 14:26:51 2009
From: jeff at elkner.net (Jeff Elkner)
Date: Sat, 28 Mar 2009 09:26:51 -0400
Subject: [Edu-sig] OLPC/Sugar Saturday dinner...
Message-ID: <37fa1dfb0903280626n7d494166vf0f4b0209e418b8b@mail.gmail.com>

Mel Chua from OLPC and Sugar Labs will be dropping by PyCon this evening to
talk about what is going on with Sugar and OLPC.  We will meet in front of
the PyCon registration desk at 6:15 pm and head out to dinner.  I told her I
would try to round up other interested folks and make reservations for
dinner somewhere.

Two requests:

1. If you are interested, please reply to this message or let me know if you
see my in the halls at Pycon.
2. If you know a reasonable place to eat walking distance from the Hyatt,
please let me know.  If I don't hear anything I'll make a reservation at the
same Mexican place where we ate last night.

Thanks!

jeff
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 

From csev at umich.edu  Sat Mar 28 14:26:50 2009
From: csev at umich.edu (csev)
Date: Sat, 28 Mar 2009 08:26:50 -0500
Subject: [Edu-sig] Some URLs that I talked about Last Night at the BOF
Message-ID: 

Here is the URL for the AppEngine book:

http://oreilly.com/catalog/9780596800697/

Here is the URL for my teaching site for the Google Book including  
some early drafts of the chapters:

www.appenginelearn.com

Here is the URL for my "Students Instructions for getting Python up  
and running" that we use across multiple courses at the University of  
Michigan.

www.pythonlearn.com

Here is the URL for my nascent Open Source Learning Management System  
written in Python/AppEngine

www.cloudcollab.com

Here is the URL for the "inverted learning management system" which  
uses JavaScript to inject the LMS into any web page that I showed to a  
few of you toward the end:

www.cloudsocial.com

Comments welcome.  Each of these is in various stages of maturity -  
mostly these are part time things that play with along with my students.

/Chuck Severance
www.dr-chuck.com

From kirby.urner at gmail.com  Sat Mar 28 17:02:14 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Sat, 28 Mar 2009 11:02:14 -0500
Subject: [Edu-sig] OLPC/Sugar Saturday dinner...
In-Reply-To: <37fa1dfb0903280626n7d494166vf0f4b0209e418b8b@mail.gmail.com>
References: <37fa1dfb0903280626n7d494166vf0f4b0209e418b8b@mail.gmail.com>
Message-ID: 

I'm interested in this.  Good luck with that reservation.

FYI I blogged some of our BOF from last night, admittedly with various
personal biases (it's a blog post, not the New York Times, which is
completely unbiased as we all know (snicker)):

If others have blogged accounts or pages they'd like to see linked (I
need to add one to Crunchy, another to the edu-sig home page, which
we've agreed to delegate to Andre), just let me know.

http://worldgame.blogspot.com/2009/03/birds-of-feather.html

I don't know that we circulated anything to get all names and emails
of those present.  Oh well...

Kirby


2009/3/28 Jeff Elkner :
> Mel Chua from OLPC and Sugar Labs will be dropping by PyCon this evening to
> talk about what is going on with Sugar and OLPC.? We will meet in front of
> the PyCon registration desk at 6:15 pm and head out to dinner.? I told her I
> would try to round up other interested folks and make reservations for
> dinner somewhere.
>
> Two requests:
>
> 1. If you are interested, please reply to this message or let me know if you
> see my in the halls at Pycon.
> 2. If you know a reasonable place to eat walking distance from the Hyatt,
> please let me know.? If I don't hear anything I'll make a reservation at the
> same Mexican place where we ate last night.
>
> Thanks!
>
> jeff
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>
>

From jeff at elkner.net  Sat Mar 28 20:01:40 2009
From: jeff at elkner.net (Jeff Elkner)
Date: Sat, 28 Mar 2009 15:01:40 -0400
Subject: [Edu-sig] [OLPC-Chicago] OLPC/Sugar dinner this weekend - with
	Pycon guests!
In-Reply-To: <49CE71FB.4030207@melchua.com>
References: <99c018c60903262126k127fcbf8hd31628e3307027b1@mail.gmail.com>
	<37fa1dfb0903270647p51b4f8a0r966c9ec9111ddfb2@mail.gmail.com>
	<49CCF0D6.6040202@melchua.com>
	<37fa1dfb0903271559l1b1cf3ebtfae89f5181dc4323@mail.gmail.com>
	<49CE71FB.4030207@melchua.com>
Message-ID: <37fa1dfb0903281201n30fabc8at21565a4883fff64b@mail.gmail.com>

So far only Andre Roberge has confirmed that he will join us.  I did not
make reservations yet since if it only the three of us I don't think we will
need them.  I can't email the olpc-chicago list since it is subscribers only
(Andy, can you help with this please?).  My last email to that list bounced.

On Sat, Mar 28, 2009 at 2:52 PM, Mel Chua  wrote:

> Can you do me a favor since I'm about to not have net access, and email the
> olpc-chicago list with the location change? 847.970.8484 is my # in case
> anyone (on any list) has q's.
>
> Thanks!
>
> --Mel (RSI hates me atm)
>
> Jeff Elkner wrote:
>
>> Hi Mel,
>>
>> I'll try to get you a count at our edu-sig dinner this evening.
>>
>> Two questions:
>>
>> 1. Are we meeting for breakfast tomorrow?
>> 2. Have you decided on a restaurant for tomorrow evening yet?
>>
>> Please include Andrew Harrington in your reply, since he knows Chicago and
>> has been assuming the role of coordinating the edu-sig activities at the
>> conference.
>>
>> Thanks!
>>
>> jeff
>>
>> On Fri, Mar 27, 2009 at 11:29 AM, Mel Chua > mel at melchua.com>> wrote:
>>
>>    Jeff Elkner wrote:
>>
>>        Most of the educationally related talks will be given
>>        back-to-back this morning, so we'll have the opportunity to
>>        gather the tribe.
>>
>>
>>    Rock. If you can send-to-list a headcount (rough, even) before...
>>    noon tomorrow, that would rock. I plan on calling the restaurant
>>    after my lunch meetings, so knowing who'll be around would be cool.
>>    (And also let me stock up on browser tabs to preload in my XO in
>>    case we need info for reference while chatting.)
>>
>>    So far I know Matt and I will be there, and am waiting for more
>>    "I'll be coming!" emails to fill in the other seats. ;)
>>
>>    --Mel
>>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 

From kirby.urner at gmail.com  Sat Mar 28 20:06:54 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Sat, 28 Mar 2009 14:06:54 -0500
Subject: [Edu-sig] [OLPC-Chicago] OLPC/Sugar dinner this weekend - with
	Pycon guests!
In-Reply-To: <37fa1dfb0903281201n30fabc8at21565a4883fff64b@mail.gmail.com>
References: <99c018c60903262126k127fcbf8hd31628e3307027b1@mail.gmail.com>
	<37fa1dfb0903270647p51b4f8a0r966c9ec9111ddfb2@mail.gmail.com>
	<49CCF0D6.6040202@melchua.com>
	<37fa1dfb0903271559l1b1cf3ebtfae89f5181dc4323@mail.gmail.com>
	<49CE71FB.4030207@melchua.com>
	<37fa1dfb0903281201n30fabc8at21565a4883fff64b@mail.gmail.com>
Message-ID: 

Hey Jeff, is this with reference to dinner this Saturday evening?

This was me replying in the affirmative earlier:

http://mail.python.org/pipermail/edu-sig/2009-March/009198.html

I'm heading downtown to catch the Buckminster Fuller exhibit at Museum
of Contemporary Art, maybe with Steve Holden, some Portland friends?
We shall see.

Sorry in advance if I've missed an event tonight.

Kirby



2009/3/28 Jeff Elkner :
> So far only Andre Roberge has confirmed that he will join us.? I did not
> make reservations yet since if it only the three of us I don't think we will
> need them.? I can't email the olpc-chicago list since it is subscribers only
> (Andy, can you help with this please?).? My last email to that list bounced.
>
> On Sat, Mar 28, 2009 at 2:52 PM, Mel Chua  wrote:
>>
>> Can you do me a favor since I'm about to not have net access, and email
>> the olpc-chicago list with the location change? 847.970.8484 is my # in case
>> anyone (on any list) has q's.
>>
>> Thanks!
>>
>> --Mel (RSI hates me atm)
>>
>> Jeff Elkner wrote:
>>>
>>> Hi Mel,
>>>
>>> I'll try to get you a count at our edu-sig dinner this evening.
>>>
>>> Two questions:
>>>
>>> 1. Are we meeting for breakfast tomorrow?
>>> 2. Have you decided on a restaurant for tomorrow evening yet?
>>>
>>> Please include Andrew Harrington in your reply, since he knows Chicago
>>> and has been assuming the role of coordinating the edu-sig activities at the
>>> conference.
>>>
>>> Thanks!
>>>
>>> jeff
>>>
>>> On Fri, Mar 27, 2009 at 11:29 AM, Mel Chua >> > wrote:
>>>
>>> ? ?Jeff Elkner wrote:
>>>
>>> ? ? ? ?Most of the educationally related talks will be given
>>> ? ? ? ?back-to-back this morning, so we'll have the opportunity to
>>> ? ? ? ?gather the tribe.
>>>
>>>
>>> ? ?Rock. If you can send-to-list a headcount (rough, even) before...
>>> ? ?noon tomorrow, that would rock. I plan on calling the restaurant
>>> ? ?after my lunch meetings, so knowing who'll be around would be cool.
>>> ? ?(And also let me stock up on browser tabs to preload in my XO in
>>> ? ?case we need info for reference while chatting.)
>>>
>>> ? ?So far I know Matt and I will be there, and am waiting for more
>>> ? ?"I'll be coming!" emails to fill in the other seats. ;)
>>>
>>> ? ?--Mel
>>>
>>>
>
>
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>
>

From andre.roberge at gmail.com  Sun Mar 29 16:03:24 2009
From: andre.roberge at gmail.com (Andre Roberge)
Date: Sun, 29 Mar 2009 11:03:24 -0300
Subject: [Edu-sig] Updating the edu-sig page
Message-ID: <7528bcdd0903290703t65361110o88396ab34737a16c@mail.gmail.com>

Hi everyone,

I have been given permission to edit the edu-sig page (
http://www.python.org/community/sigs/current/edu-sig/) on the official
Python web site.  Think of me as the Benevolent Edu-Sig Slave For Now,
answering to the community as to what changes you'd like to see being made
on that page.

So, I am looking for community input as to what kind of changes you'd like
to see. Before you go wild with suggestions, I'd like to share a some
observations and a suggestion.

1. Doing changes to that page involves an official commit to the svn
repository.  As other people might be monitoring changes, I don't want to
overwhelm them with tons of small commits.
2.a) There is a lot of material on that page that is duplicated (sometimes
poorly) with information that can be found elsewhere.  For example, the
section "Shells and Editors" contains links to
http://wiki.python.org/moin/PythonEditors and
http://wiki.python.org/moin/IntegratedDevelopmentEnvironments, in addition
to actual links to a few tools.
2.b) Note the "wiki" part of the two links mentioned in 2.a) above.  This
means that YOU can edit such pages, without having to send me an email with
you thoughts, waiting for me to act on it, worrying about me selectively
editing the information you submit, etc.

So, I am thinking that the edu-sig page should become a high level
description of what is available elsewhere and that a lot of the "meat"
should be actually hosted on wiki.python.org - which could be kept up to
date much more easily and much more effectively by the community as a whole.

Yours,

Andr?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 

From guido at python.org  Sun Mar 29 17:44:07 2009
From: guido at python.org (Guido van Rossum)
Date: Sun, 29 Mar 2009 10:44:07 -0500
Subject: [Edu-sig] Updating the edu-sig page
In-Reply-To: <7528bcdd0903290703t65361110o88396ab34737a16c@mail.gmail.com>
References: <7528bcdd0903290703t65361110o88396ab34737a16c@mail.gmail.com>
Message-ID: 

2009/3/29 Andre Roberge :
> I have been given permission to edit the edu-sig page
> (http://www.python.org/community/sigs/current/edu-sig/) on the official
> Python web site.? Think of me as the Benevolent Edu-Sig Slave For Now,
> answering to the community as to what changes you'd like to see being made
> on that page.
>
> So, I am looking for community input as to what kind of changes you'd like
> to see. Before you go wild with suggestions, I'd like to share a some
> observations and a suggestion.
>
> 1. Doing changes to that page involves an official commit to the svn
> repository.? As other people might be monitoring changes, I don't want to
> overwhelm them with tons of small commits.

Please don't worry about this. Go wild. Do what's right for yourself
and the edu-sig community, please don't worry about people watching
the changes fly by. We're quite used to ignoring email out here. :-)

> 2.a) There is a lot of material on that page that is duplicated (sometimes
> poorly) with information that can be found elsewhere.? For example, the
> section "Shells and Editors" contains links to
> http://wiki.python.org/moin/PythonEditors and
> http://wiki.python.org/moin/IntegratedDevelopmentEnvironments, in addition
> to actual links to a few tools.

I like the idea of not having too much duplicate information (which
will inevitably get out of sync at some point), but at the same time I
would warn for trying to "normalize" this kind of information *too*
much. If commonly needed info is three clicks away, most people won't
have given up before finding it.

> 2.b) Note the "wiki" part of the two links mentioned in 2.a) above.? This
> means that YOU can edit such pages, without having to send me an email with
> you thoughts, waiting for me to act on it, worrying about me selectively
> editing the information you submit, etc.
>
> So, I am thinking that the edu-sig page should become a high level
> description of what is available elsewhere and that a lot of the "meat"
> should be actually hosted on wiki.python.org - which could be kept up to
> date much more easily and much more effectively by the community as a whole.

Beware though, wiki pages often go stale without anybody noticing for
a long time. Another problem with wikis is that well-meaning
contributors often insert duplicate information into different places,
which will just bewilder the readers. A good strategy to deal with
this is to have someone (or several people, if it's a large and active
wiki) who watches changes and occasionally cleans things up, perhaps
moving things around so that they are linked more logically, adding
cross-links, deleting outdated information, etc. Spam probably *won't*
be a big problem, except possibly for the wiki's front page (spammers
are lazy). Note that the wiki also has a mechanism that can send email
when a page is changed.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)

From guido at python.org  Sun Mar 29 18:25:18 2009
From: guido at python.org (Guido van Rossum)
Date: Sun, 29 Mar 2009 11:25:18 -0500
Subject: [Edu-sig] Some URLs that I talked about Last Night at the BOF
In-Reply-To: 
References: 
Message-ID: 

Thanks for posting all these links! And thanks to all who attended the
App Engine BOF at PyCon!

I only have some silly nits to add, which are just about what to call
the product.

First, please never refer to it as "The Google App Engine." It's the
product's name, so it's just "Google App Engine." (You don't refer to
Python as "the Python" do you? :-)

Next, if you can avoid it, don't use the abbreviation "GAE". If you
want to be brief, say "App Engine".

Finally, I sometimes see people call it "Google Apps Engine." This is
a conflation of "Google Apps" (a totally different Google product!)
and "App Engine."

Finally, if you have a choice, write "App Engine" rather than "AppEngine."

--Guido

On Sat, Mar 28, 2009 at 8:26 AM, csev  wrote:
> Here is the URL for the AppEngine book:
>
> http://oreilly.com/catalog/9780596800697/
>
> Here is the URL for my teaching site for the Google Book including some
> early drafts of the chapters:
>
> www.appenginelearn.com
>
> Here is the URL for my "Students Instructions for getting Python up and
> running" that we use across multiple courses at the University of Michigan.
>
> www.pythonlearn.com
>
> Here is the URL for my nascent Open Source Learning Management System
> written in Python/AppEngine
>
> www.cloudcollab.com
>
> Here is the URL for the "inverted learning management system" which uses
> JavaScript to inject the LMS into any web page that I showed to a few of you
> toward the end:
>
> www.cloudsocial.com
>
> Comments welcome. ?Each of these is in various stages of maturity - mostly
> these are part time things that play with along with my students.
>
> /Chuck Severance
> www.dr-chuck.com
> _______________________________________________
> Edu-sig mailing list
> Edu-sig at python.org
> http://mail.python.org/mailman/listinfo/edu-sig
>



-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)

From csev at umich.edu  Mon Mar 30 04:21:38 2009
From: csev at umich.edu (csev)
Date: Sun, 29 Mar 2009 21:21:38 -0500
Subject: [Edu-sig] Some URLs that I talked about Last Night at the BOF
In-Reply-To: 
References: 
	
Message-ID: <8332BD87-97D6-4CE7-9021-B20CB3C7E31B@umich.edu>

Guido,

Thanks for the comments - I edited the web sites using the terminology  
you suggest below.

Thankfully we had already gone through the O'Reilly book with a fine  
tooth comb and used the exact terminology you suggest below - I just  
had not gone back and cleaned up my web sites.

I have at least one more review of the book before it hits the  
printers so I will look closely to see if I have any extra "the's"  :)

/Chuck

On Mar 29, 2009, at 11:25 AM, Guido van Rossum wrote:

> Thanks for posting all these links! And thanks to all who attended the
> App Engine BOF at PyCon!
>
> I only have some silly nits to add, which are just about what to call
> the product.
>
> First, please never refer to it as "The Google App Engine." It's the
> product's name, so it's just "Google App Engine." (You don't refer to
> Python as "the Python" do you? :-)
>
> Next, if you can avoid it, don't use the abbreviation "GAE". If you
> want to be brief, say "App Engine".
>
> Finally, I sometimes see people call it "Google Apps Engine." This is
> a conflation of "Google Apps" (a totally different Google product!)
> and "App Engine."
>
> Finally, if you have a choice, write "App Engine" rather than  
> "AppEngine."
>
> --Guido


From punch at msu.edu  Mon Mar 30 18:54:20 2009
From: punch at msu.edu (punch at msu.edu)
Date: Mon, 30 Mar 2009 12:54:20 -0400
Subject: [Edu-sig] Suggestions for edu web site
Message-ID: <20090330125420.99451f7u4oyrep18@mail.msu.edu>

?Hi, 

I have to admit I am mostly a lurker on this page and don't post, but 

after my wonderful experience at Pycon 09 I was emboldened to be more 

active. Great experience! 

I should think that the three primary points to make on the web page are: 

1) Where is python not being used in education. I think redirecting 

people to other universities who are using python would be most helpful. 

2) Any evidence that can be presented that Python is helpful in 

education. I can point to the paper that Enbody and I presented at Pycon 

and SIGCSE but there must be others like that. This can be used by 

others to try and get Python into their curriculum 

3) Index to resources (books, slides, problem sets, tutorials) that 

education folks would find helpful. 

The IDE's, shells, libraries should be referenced but not maintained 

here since we will not keep up with it as well. 

My (first) two cents worth. Nice to meet folks at Pycon and I hope to be 

more active in this group as a result of that nice experience. 

? ? ? ? >>>bill<<< 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 

From goldwamh at slu.edu  Tue Mar 31 00:24:03 2009
From: goldwamh at slu.edu (Michael H. Goldwasser)
Date: Mon, 30 Mar 2009 17:24:03 -0500
Subject: [Edu-sig]  Suggestions for edu web site
In-Reply-To: <20090330125420.99451f7u4oyrep18@mail.msu.edu>
References: <20090330125420.99451f7u4oyrep18@mail.msu.edu>
Message-ID: <18897.18051.513621.827370@Michael-Goldwassers-Computer.local>


On Monday March 30, 2009, punch at msu.edu wrote: 

>    1) Where is python not being used in education. I think redirecting 
>    
>    people to other universities who are using python would be most helpful. 

I'm sure this was a Freudian slip, but for now I think we'll need to
stick to listing places where python is being used, rather than those
places where it is not being used.  In ten years, who knows...

More sincerely, I'd like to echo Bills list of the three categories
for inclusion on the edu page (links to schools/courses, academic
papers, teaching resources).  I also share his views on the enjoyment
of the interactions at Pycon.  It was a pleasure to meet so many
contributors in person.

With regard,
Michael

       +-----------------------------------------------
       | Michael Goldwasser
       | Associate Professor
       | Dept. Mathematics and Computer Science
       | Saint Louis University
       | 220 North Grand Blvd.
       | St. Louis, MO 63103-2007
       |
       | Office: Ritter Hall 6
       | Email:  goldwamh at slu.edu
       | URL:    http://cs.slu.edu/~goldwasser
       | Phone:  (314) 977-7039
       | Fax:    (314) 977-1452


From andre.roberge at gmail.com  Tue Mar 31 01:03:57 2009
From: andre.roberge at gmail.com (Andre Roberge)
Date: Mon, 30 Mar 2009 20:03:57 -0300
Subject: [Edu-sig] Suggestions for edu web site
In-Reply-To: <18897.18051.513621.827370@Michael-Goldwassers-Computer.local>
References: <20090330125420.99451f7u4oyrep18@mail.msu.edu>
	<18897.18051.513621.827370@Michael-Goldwassers-Computer.local>
Message-ID: <7528bcdd0903301603j76557d41j141339d8d03b2b59@mail.gmail.com>

On Mon, Mar 30, 2009 at 7:24 PM, Michael H. Goldwasser wrote:

>
> On Monday March 30, 2009, punch at msu.edu wrote:
>
> >    1) Where is python not being used in education. I think redirecting
> >
> >    people to other universities who are using python would be most
> helpful.
>
> I'm sure this was a Freudian slip, but for now I think we'll need to
> stick to listing places where python is being used, rather than those
> places where it is not being used.  In ten years, who knows...
>
> More sincerely, I'd like to echo Bills list of the three categories
> for inclusion on the edu page (links to schools/courses, academic
> papers, teaching resources).  I also share his views on the enjoyment
> of the interactions at Pycon.  It was a pleasure to meet so many
> contributors in person.
>

I certainly can see why we'd want to include both "academic papers" and
"teaching resources" as categories on the edu-sig page.

As for "schools and courses", I have been wondering if doing so would not
have a negative effect unless we had a fairly large number of places to link
(as per comment above)...  In any event, let's start collecting data:

Institution  -   Courses

Saint Louis University (link?) - courses: ??  (link to online calendar would
be appreciated)

Andr?




> With regard,
> Michael
>
>       +-----------------------------------------------
>       | Michael Goldwasser
>       | Associate Professor
>       | Dept. Mathematics and Computer Science
>       | Saint Louis University
>       | 220 North Grand Blvd.
>       | St. Louis, MO 63103-2007
>       |
>       | Office: Ritter Hall 6
>       | Email:  goldwamh at slu.edu
>       | URL:    http://cs.slu.edu/~goldwasser
>       | Phone:  (314) 977-7039
>       | Fax:    (314) 977-1452
>
> _______________________________________________
> 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: 

From kirby.urner at gmail.com  Tue Mar 31 07:43:17 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Mon, 30 Mar 2009 22:43:17 -0700
Subject: [Edu-sig] thoughts on edu-sig HTML page
Message-ID: 

Here's some of my thinking re the edu-sig page, which I managed up to
the time python.org converted from cvs to svn.

For those not at Pycon, a core theme was a plan to shift the tectonic
plate (platform) yet again, to either bzr or hg.  Perhaps the decision
has been made by now, as Guido was encouraging.  I favor hg but for
reasons unrelated to software so probably not relevant.

Regarding the page itself:  I hope it will continue serving as a
recruiting tool for bringing "fresh blood" to edu-sig this discussion
group.  Drawing more people into the conversation, the threads, is a
worthy end in itself.

I hope Andre will *not* feel he's been tasked with managing some
infernal list of "all schools using Python" because:

(a) that quickly becomes one of those thankless "list management jobs" and

(b) it actually backfires if you're trying to spread Python, because a
static list implies we know everything that's going on, whereas a
truly dynamic spread pattern will leave us clueless and in the dust a
lot of the time (how many schools in China, clued about FOSS...).**
Also...

(c) many of these schooling functions are internal to a company in
some private sector context i.e. edu-sig should stay friendly to
engineer trainers tasked with andragogy within a more corporate
setting, so are we going to track those schools as well? (O'Reilly
School of Technology comes to mind, a hybrid in offering academic
certification -- let's call it the University of Phoenix demographic
for shorthand perhaps?).

I'm wondering if (c) is the more controversial point in that it's (i)
adult-centric (there's maybe a bias on edu-sig to think we're bound by
a shared interest in "computer programming for children" as if adults
aren't our business) and (ii) not exclusively academic (there's maybe
a bias on edu-sig that academia has some automatic edge when it comes
to teaching (whereas the circus has always competed with skool)).

But fortunately, (a) and (b) build my case irrespective of (c), so we
can shelve those points for backstage discussion.

I just don't want Andre to get stuck with some onerous janitorial duty
that's unnecessary to our growth and ongoing prosperity as a
community.

Finally, I think it's really cool that a whole PhD thesis was done on
this very mail list, and I hope we keep a link to it (back to the
opening "recuiting for edu-sig" meme).

In terms of where to find on-line resources that will help you learn
Python really effectively and quickly, I'd say lets point to trade
book sites, text book sites, and some places like ShowMeDo e.g. I've
got my six 'Python for Math Teachers' etc.,

Kirby


** Given how students come up to me because I'm wearing some Python
decal and say they've been exposed through there school, respect the
language, I'd say realistically speaking there's too much going on to
pretend to track.  edu-sig is not air traffic control.

From lac at openend.se  Tue Mar 31 09:11:19 2009
From: lac at openend.se (Laura Creighton)
Date: Tue, 31 Mar 2009 09:11:19 +0200
Subject: [Edu-sig] thoughts on edu-sig HTML page
In-Reply-To: Message from kirby urner  of "Mon,
	30 Mar 2009 22:43:17 PDT."
	 
References:  
Message-ID: <200903310711.n2V7BJTK008106@theraft.openend.se>

Maybe what we need, more, is a list of who is on the list who is
teaching courses in python.  If we did this in a wiki, and asked people
to put a date by their names we could mitigate the problem of 
wikis going stale a bit.  (They's still go stale, but at least
you would get some sort of warning when you looked something up.)
Combining this with 'what they have to share' and 'what they are
looking for' and 'what their specialties are' might make this a
useful list.

just an idea,
Laura


From kirby.urner at gmail.com  Tue Mar 31 15:53:42 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 31 Mar 2009 06:53:42 -0700
Subject: [Edu-sig] thoughts on edu-sig HTML page
In-Reply-To: <200903310711.n2V7BJTK008106@theraft.openend.se>
References: 
	
	<200903310711.n2V7BJTK008106@theraft.openend.se>
Message-ID: 

I'm all for wikis, more mutable, less a bottleneck.  They sometimes
become sprawling (and that's not a "bad thing" necessarily).  A
wonderful tool, thank you Ward Cunningham.

And because edu-sig the page (about 8.5 x 11 or so, if printed?) is so
concise and to the point, we've got the main Wiki we know about
covered (at python.org itself right?).

I definitely look for ways to promote my Pythonic Math sequence (e.g.
through Saturday Academy in April) and imagine many others would
welcome such recruiting opportunities i.e. "recruiting" should very
much be in the picture here somewhere, and without a need to pay the
big bucks for a listing (low barriers to the spread of Pythonic memes
means you're not trying to become a "language lawyer" complete with
powers to exclude competition simply on the basis of some high
monetary barrier to entering -- that'd be completely antithetical to
what the FOSS bosses have been building -- our liberal / noob-friendly
bazaar).

Anyway, +1 Laura's reminding of Wikis, which Andre doesn't have to
worry about (except which to link to).

Kirby



On Tue, Mar 31, 2009 at 12:11 AM, Laura Creighton  wrote:
> Maybe what we need, more, is a list of who is on the list who is
> teaching courses in python. ?If we did this in a wiki, and asked people
> to put a date by their names we could mitigate the problem of
> wikis going stale a bit. ?(They's still go stale, but at least
> you would get some sort of warning when you looked something up.)
> Combining this with 'what they have to share' and 'what they are
> looking for' and 'what their specialties are' might make this a
> useful list.
>
> just an idea,
> Laura
>
>

From kirby.urner at gmail.com  Tue Mar 31 16:20:12 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 31 Mar 2009 07:20:12 -0700
Subject: [Edu-sig] more about Pycon
Message-ID: 

Here's a major theme of Pycon for me, something I learned:

ACID-compliant SQL is a wonderful tool and many Python APIs backend
into those to great positive benefit.

However, with cloud and network programming, there's inherent
asynchrony and sometimes "eventual consistency" is all you need, i.e.
that "right now and always" flavor of ACID is something you're willing
to trade away (called "dropping ACID") in exchange for other benefits.

So the age of network programming with widely distributed server
architectures is taking us into a post-SQL world, not in the sense
that SQL is going away, but in the sense that it's definitely not the
best answer to every prayer.

Deciding which non-SQL tools you might need and which Python APIs go
with it is as much a twisting tree as the SQL world's is.  I think
this is a good focus for user groups, as been of ours in Portland (not
just in Python circles, but like in Admirers of JavaScript, another
group meeting at CubeSpace I've joined).

Here's one of my blog write-ups:
http://worldgame.blogspot.com/2009/03/patterns-in-python.html

I also wanted to again express my appreciation for Jeff Rush's talk,
which I'm going to study a lot more.  Steve Holden's segment on the
difference between iterators and iterables and how to turn the latter
into the former was also a paradigm of clear teaching (that guy is a
master).

My blog post around Jeff's talk is sort of "student notes" in style,
gives the idea but the slides are what you really want to check out
(adding link):
http://mybizmo.blogspot.com/2009/03/about-python-namespaces.html

Speaking of Wikis, I'd love to see one of those VLAM enabled ones
linked from edu-sig and have our edu-sig community submit to it as a
sandbox or playground (in addition to supporting PyWHIP etc.).

Kirby

From punch at msu.edu  Tue Mar 31 16:45:35 2009
From: punch at msu.edu (punch at msu.edu)
Date: Tue, 31 Mar 2009 10:45:35 -0400
Subject: [Edu-sig] thoughts on HTML page
Message-ID: <20090331104535.888316rpygg0ccy7@mail.msu.edu>

Thank you to Michael for catching my (perhaps hopeful) miscue. Yes, I  
did indeed mean to list places where python is being taught. Andre  
opined that perhaps the list might be too short, making it look like  
Python is behind. There is a link in the Python  
wiki?http://wiki.python.org/moin/SchoolsUsingPython which lists a  
number of schools, though it is very out of date and lacks many links.  
It seems to indicate there are enough places to?have a substantial list.

However, how to get a good list and maintain it? Perhaps Laura's idea  
of a wiki where individuals can stand up for their course and other  
institutions they know about. That would keep the work load down. We  
could extract what we need from that occasionally for a nice  
presentation.

Ditto for papers/slides and ed resources.

We might also try to recruit people from institutions to be part of  
the group and maintain their local information.

Question remains, how to organize so the load isn't all on Andre.

    >>>bill<<<


From andre.roberge at gmail.com  Tue Mar 31 17:01:40 2009
From: andre.roberge at gmail.com (Andre Roberge)
Date: Tue, 31 Mar 2009 12:01:40 -0300
Subject: [Edu-sig] thoughts on HTML page
In-Reply-To: <20090331104535.888316rpygg0ccy7@mail.msu.edu>
References: <20090331104535.888316rpygg0ccy7@mail.msu.edu>
Message-ID: <7528bcdd0903310801h1fcf11bclf5a728af34841b5d@mail.gmail.com>

On Tue, Mar 31, 2009 at 11:45 AM,  wrote:

SNIP

> Question remains, how to organize so the load isn't all on Andre.
>

I really appreciate the concern (expressed by others as well).  :-)

Here's what I hope to achieve before Sunday.

1. I will create a temporary copy of the current edu-sig page for comparison
purpose - on the www.python.org site
2. I will write a first draft of the new page (with a link to the copy of
the old one for comparison).  I will aim to find the right balance between
having the right number of direct links to specific web sites (for example:
Guido van Robot at http://gvr.sourceforge.net) that would be of immediate
potential interest to educators, and links to pages containing collections
of links (e.g. for editors & IDEs, schools, colleges and universities
offering Python courses, etc.) and create the relevant stub page (if they do
not already exist) on wiki.python.org where everyone could add links of
interest.
3. I will make an announcement on this list whenever I make some significant
changes to the edu-sig page.

Until I do this, I might not comment on any further suggestion that you make
on this list; however, rest assured that I am reading every message and will
try to incorporate suggestions into a coherent whole.

Andr?

>
>   >>>bill<<<
>
> _______________________________________________
> 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: 

From kirby.urner at gmail.com  Tue Mar 31 17:03:51 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 31 Mar 2009 08:03:51 -0700
Subject: [Edu-sig] more economics of Python...
Message-ID: 

Two things I got feedback on, actually three:

(0) linking increasing FOSS mastery in schools to more merit pay, with
already-employed teachers getting time to learn on the job (called
"inservice") is a likely model, charters an easier place to start
where inertia runs high

(1) having bevy of numerate FOSS-trained faculty run more of an
inhouse stack, with students apprenticing, leaving records (school
lore), is a side-benefit of getting these new competencies, shows
teachers applying their skills daily (good role modeling, more than
just making Moodles)

(2) Pycon is committed to a private sector business track but could
spin off a more academic incarnation.  Jeff Rush and I were yakking
about marketing something like:

T-Shirt:

class Edu(Pycon):
   where = "in Portland, 2010"
   def __init__(self, me):
       self.me = me

>>> lucky_me = Edu("registered!")
>>> lucky_me.where
'in Portland, 2011'

i.e. we could do an EduPycon at a college campus someplace (instead of
a hotel).  Pacific University?  No need to wait for Portland (a FOSS
capital).

Gregor, sorry to miss your talk on the turtle module.

Ian Benson, Steve Holden and I managed to take in the Bucky Fuller
exhibit on Sunday, though we went through pretty quickly, given Ian
and I both had planes to catch.  I bought a museum membership, maybe
will make it again before it closes in June?

http://coffeeshopsnet.blogspot.com/2009/03/greetings-from-chicago.html

Thinking more about (0), there's this tendency to want to escape high
school teaching if the skills get that good i.e. when I was doing grad
school courses towards becoming a high school math teacher (which
happened later that year), a lot of the students at St. Peter's
College were going the other direction i.e. increasing technology
skills to move on from teaching (too much burnout, not enough academic
freedom, too low status).

New charter designs could fix a lot of these problems e.g. LEP High
blends in an entrepreneurship model wherein seniors start apprenticing
and/or running their own prototype businesses.

This keeps the teachers actively engaged in a more private sector
mindset, means bridging Pycon and EduPycon shouldn't be that hard.

Small wrinkle is the state teachers' union (or some minority within
it) hates LEP High because it makes everyone else look bad, in terms
of its using Edubuntu, teaching more relevant tracks, emphasis on
early college enrollment etc. (not unlike Matsu District AK in that
regard).

Moves by the board to close it down are only serving to draw attention
to the contrast, i.e. has the potential to backfire big time.

The Obama Administration is already on record in support of
charter-driven reforms so this is not some traditional "labor democrat
versus aristocracy" puzzle (LEP High mostly serves underprivileged, is
a bona fide public school when it some to philosophy, recruitment,
emphasis on citizenship (in the sense of developing skills for
participation in democracy)).

Anyway, not wanting to bore ya'll with a lot of local politics, just
thinking out loud about the "FOSS API" in our school systems i.e.
where is the interface and how is it shaped?  I expect we'll explore
this at OS Bridge in June, among other venues.  Maybe think about
coming?  Portland is a great town and we have a 400 room hotel we'd
like to put you in. :)  Last day for early bird registration and/or
talk submission is today though.

Kirby

From kirby.urner at gmail.com  Tue Mar 31 17:04:12 2009
From: kirby.urner at gmail.com (kirby urner)
Date: Tue, 31 Mar 2009 08:04:12 -0700
Subject: [Edu-sig] more economics of Python...
Message-ID: 

Two things I got feedback on, actually three:

(0) linking increasing FOSS mastery in schools to more merit pay, with
already-employed teachers getting time to learn on the job (called
"inservice") is a likely model, charters an easier place to start
where inertia runs high

(1) having bevy of numerate FOSS-trained faculty run more of an
inhouse stack, with students apprenticing, leaving records (school
lore), is a side-benefit of getting these new competencies, shows
teachers applying their skills daily (good role modeling, more than
just making Moodles)

(2) Pycon is committed to a private sector business track but could
spin off a more academic incarnation.  Jeff Rush and I were yakking
about marketing something like:

T-Shirt:

class Edu(Pycon):
   where = "in Portland, 2010"
   def __init__(self, me):
       self.me = me

>>> lucky_me = Edu("registered!")
>>> lucky_me.where
'in Portland, 2011'

i.e. we could do an EduPycon at a college campus someplace (instead of
a hotel).  Pacific University?  No need to wait for Portland (a FOSS
capital).

Gregor, sorry to miss your talk on the turtle module.

Ian Benson, Steve Holden and I managed to take in the Bucky Fuller
exhibit on Sunday, though we went through pretty quickly, given Ian
and I both had planes to catch.  I bought a museum membership, maybe
will make it again before it closes in June?

http://coffeeshopsnet.blogspot.com/2009/03/greetings-from-chicago.html

Thinking more about (0), there's this tendency to want to escape high
school teaching if the skills get that good i.e. when I was doing grad
school courses towards becoming a high school math teacher (which
happened later that year), a lot of the students at St. Peter's
College were going the other direction i.e. increasing technology
skills to move on from teaching (too much burnout, not enough academic
freedom, too low status).

New charter designs could fix a lot of these problems e.g. LEP High
blends in an entrepreneurship model wherein seniors start apprenticing
and/or running their own prototype businesses.

This keeps the teachers actively engaged in a more private sector
mindset, means bridging Pycon and EduPycon shouldn't be that hard.

Small wrinkle is the state teachers' union (or some minority within
it) hates LEP High because it makes everyone else look bad, in terms
of its using Edubuntu, teaching more relevant tracks, emphasis on
early college enrollment etc. (not unlike Matsu District AK in that
regard).

Moves by the board to close it down are only serving to draw attention
to the contrast, i.e. has the potential to backfire big time.

The Obama Administration is already on record in support of
charter-driven reforms so this is not some traditional "labor democrat
versus aristocracy" puzzle (LEP High mostly serves underprivileged, is
a bona fide public school when it some to philosophy, recruitment,
emphasis on citizenship (in the sense of developing skills for
participation in democracy)).

Anyway, not wanting to bore ya'll with a lot of local politics, just
thinking out loud about the "FOSS API" in our school systems i.e.
where is the interface and how is it shaped?  I expect we'll explore
this at OS Bridge in June, among other venues.  Maybe think about
coming?  Portland is a great town and we have a 400 room hotel we'd
like to put you in. :)  Last day for early bird registration and/or
talk submission is today though.

Kirby