From kirby.urner at gmail.com Sun Apr 1 23:10:59 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 1 Apr 2007 14:10:59 -0700 Subject: [Edu-sig] [edupython] Python in Education Advocacy Article In-Reply-To: References: <46098A52.4040108@solarsail.hcs.harvard.edu> <200703272225.l2RMPeYr018976@theraft.openend.se> <200703272236.l2RMaZaZ020686@theraft.openend.se> Message-ID: On 3/27/07, Michael Tobis wrote: > It is also plain to see that self-directed web-centric beginners are > more likely to gravitate to Javascript, Actionscript/Flash or PHP. > > What are the roots of these choices? Should we be concerned about > them? If so, is there anything we can and should realistically do > about them? > > mt I think Python thrives best in a diverse ecosystem of languages. After all, if it's to serve as a "glue language", there need to be languages to glue to besides Python. You mention PHP, but don't forget about Plone. We've gone far beyond the cgi days, where primitive Python works well, to more ideas about stuffing ZODBs with Objects that have all these view-related aspects -- strong model-view-controller designworks. We don't begrude students forking off or coming to Python from disparate projects, perhaps anchored in some other world (Smalltalk even). In a Croquet type world, it'll be good to have a conversation, ala IDLE, ala PyCrust, with our interpreter now and then, whatever the underlying bytecode system. Lists, dictionaries, top level functions and objects, a concise model of the OO paradigm... __rib__ syntax. Nevermind this is a glassy semi-transparent panel in some Alice in Wonderland scenario. Python is Python, be it in C, Java, C# or whatever. Kirby From mtobis at gmail.com Tue Apr 3 03:14:18 2007 From: mtobis at gmail.com (Michael Tobis) Date: Mon, 2 Apr 2007 20:14:18 -0500 Subject: [Edu-sig] [edupython] Python in Education Advocacy Article In-Reply-To: References: <46098A52.4040108@solarsail.hcs.harvard.edu> <200703272225.l2RMPeYr018976@theraft.openend.se> <200703272236.l2RMaZaZ020686@theraft.openend.se> Message-ID: I think we actually need to compete, not to shrug and hope the best platform wins. The fact that Python has the momentum it does with its rather laid back attitude toward evangelism is a testament to its strength as a platform and a community. I don't think that excuses us from trying much harder to make a strong case for it, though. On 4/1/07, kirby urner wrote: > I think Python thrives best in a diverse ecosystem of languages. After all, > if it's to serve as a "glue language", there need to be languages to glue to > besides Python. An interesting argument. However, I've long since stopped thinking of Python as glue, and beginners surely aren't interested in learning multiple languages. > You mention PHP, but don't forget about Plone. We've gone far beyond > the cgi days, where primitive Python works well, to more ideas about > stuffing ZODBs with Objects that have all these view-related aspects -- > strong model-view-controller designworks. Nevertheless, kids who take up programming outside of school tend to be doing PHP, Flash or Javascripts, don't they? What would Dijkstra say to that? ) "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." -attributed to E. Dijkstra (I'm not sure he'd have much good to say about Zope/Plone either, but that's neither here nor there. The administrative hurdles to setting up a Plone site exclude most casual beginners. There is surely, roughly speaking, some best way to teach programming, and it deserves a lingua franca. We all learned the same fundamental mathematical notation, even though many others are not only possible but in common use by specialists. Should the same not be true of algorithmic notation (i.e. programs)? Either Python, (i.e., reasonably close to an optimum) will prevail or some damned QWERTY nonsense (not designed for nonspecialists) will prevail for another generation. Probably Java. Which leaves the impression that CP!4E. Which I hope we all agree is unfortunate. > Lists, dictionaries, top level functions and objects, > a concise model of the OO paradigm... __rib__ syntax. A honking great idea, to coin a phrase. Let's have more of those, please. mt From kirby.urner at gmail.com Tue Apr 3 12:22:10 2007 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 3 Apr 2007 03:22:10 -0700 Subject: [Edu-sig] [edupython] Python in Education Advocacy Article In-Reply-To: References: <46098A52.4040108@solarsail.hcs.harvard.edu> <200703272225.l2RMPeYr018976@theraft.openend.se> <200703272236.l2RMaZaZ020686@theraft.openend.se> Message-ID: On 4/2/07, Michael Tobis wrote: > I think we actually need to compete, not to shrug and hope the best > platform wins. The fact that Python has the momentum it does with its > rather laid back attitude toward evangelism is a testament to its > strength as a platform and a community. I don't think that excuses us > from trying much harder to make a strong case for it, though. I think that's a valid point: Python's community is laid back somewhat in proportion to it's confidance in this being an excellent language with a long and bright future. Ruby might have made a dent in that feeling, but not at the cost of our friendliness. It's just that Python has nothing quite so friendly to web developers as Ruby on Rails, once you factor in some of the intangibles. http://pythononplanes.com/ doesn't cut it. ;-D Plus Ruby's out of the box access to OpenGL gives it strong pedagogical advantages we only *kind of* make up for with VPython -- as Arthur quietly realized. As for competition, I also believe in that *within* Python Nation. I think one way we'll remain strong is by seeing CP4E fork off in many directions, my little feeder system being but one of them (we don't certify but a very few). > On 4/1/07, kirby urner wrote: > > > I think Python thrives best in a diverse ecosystem of languages. After all, > > if it's to serve as a "glue language", there need to be languages to glue to > > besides Python. > > An interesting argument. However, I've long since stopped thinking of > Python as glue, and beginners surely aren't interested in learning > multiple languages. > Not so fast. *Some* beginners very much *are* trying to wrap their heads around several languages, precisely because they're in this try before you by mindset and don't want to invest oodles of noodle time in the "wrong" one. Oft times, a beginner really does have a project or challenge in mind, and just as oft, one language above most others will fill the niche most pleasantly. To just throw a dart at the dart board and pray the "right" language will emerge is a bit too trusting an approach for most rationalists. Don't equate "beginner" with "lazy college student at a party school" -- entirely different concepts, though with some overlap. > > You mention PHP, but don't forget about Plone. We've gone far beyond > > the cgi days, where primitive Python works well, to more ideas about > > stuffing ZODBs with Objects that have all these view-related aspects -- > > strong model-view-controller designworks. > > Nevertheless, kids who take up programming outside of school tend to > be doing PHP, Flash or Javascripts, don't they? What would Dijkstra > say to that? ) > All of which languages are pretty strongly OO (ActionScript included). PHP has come a long way towards being a general purpose language. I believe in doing these "bridges" into Python assuming a background in some of these other languages (was writing about that vis-a-vis Smalltalk just recently, given how the Shuttleworth Pipeline has been shaping up). > "It is practically impossible to teach good programming to students > that have had a prior exposure to BASIC: as potential programmers they > are mentally mutilated beyond hope of regeneration." -attributed to E. > Dijkstra > I doubt he'd feel the same way about JavaScript, which Alan Kay likes too. Especially when you use it to introduce the DOM, which I don't think any serious-minded pre-college language arts curriculum can afford to bleep over. In my Python class at Winterhaven PPS in PDX, we started talking XML the first day, in relation to Google Earth. http://www.4dsolutions.net/ocn/winterhaven/ > (I'm not sure he'd have much good to say about Zope/Plone either, but > that's neither here nor there. The administrative hurdles to setting > up a Plone site exclude most casual beginners. Actually Plone pretty much self-installs, including as a web server (don't even need Apache). It's when you want to start changing the default look and feel that hurdles arise. Still, in my experience as a Free Geek (freegeek.org), many kids find these puzzles motivating, in part because of the friendliness of Python culture, including the Plone/Zope subculture (I hung out with Alan Runyan and Andy McKay, and friends in Vancouver BC quite a bit -- what a wonderful bunch, and that's just the tip of the iceberg). http://plone.org/about/team > There is surely, roughly speaking, some best way to teach programming, > and it deserves a lingua franca. We all learned the same fundamental > mathematical notation, even though many others are not only possible > but in common use by specialists. Should the same not be true of > algorithmic notation (i.e. programs)? Dangerous thinking. ;-D I'd say many a mathematician has been ruined for life for having mind-melded too tightly with just one mathematical notation. My mantra for CS0 is "if they just expose you to one language, think about transferrring to a real school." > Either Python, (i.e., reasonably close to an optimum) will prevail or > some damned QWERTY nonsense (not designed for nonspecialists) will > prevail for another generation. Probably Java. Which leaves the > impression that CP!4E. Which I hope we all agree is unfortunate. I don't usually pick fights with Java per se, which is a system language more than an agile one, has the capability to run faster because of all we tell the compiler... other advantages. It's in a league with C# and C, as an implementation language for Python, more than a direct competitor. CS0 has recently discovered that "agile languages" make way more sense as first languages. Smalltalk would qualify as agile given it's edit/continue capabilities and so on. ;-D Now that CS departments are waking up and smelling something besides coffee, having mired themselves in "Java as a first language" for far too long, doesn't mean we now have to diss Java. That long CS tail doesn't wag our Python's head, praise Allah. > > Lists, dictionaries, top level functions and objects, > > a concise model of the OO paradigm... __rib__ syntax. > > A honking great idea, to coin a phrase. Let's have more of those, please. > > mt > I'm having a lot of success teaching Python, but I do it a particular way only *some* will consider imitating. I populate the field of mathematics with Python-coded "math objects" (polynomials, polyvertexia, finite groups and such). We learn about vectors doing vector graphics. We feel sorry for those poor slobs still using calculators. Plus we call it "gnu math" and don't think we need approval or management from CS types, who still mostly don't well understand, let alone open source, this kind of pre-college material. Kirby From pdfernhout at kurtz-fernhout.com Wed Apr 4 15:04:48 2007 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Wed, 04 Apr 2007 09:04:48 -0400 Subject: [Edu-sig] More OOP bashing (& which metaphor is best?) Message-ID: <4613A270.3070903@kurtz-fernhout.com> I just came across these links (bearing indirectly on the value of Python emphasizing both procedural and Object-Oriented Programming support as a language good for beginners and experts): See: "Object Oriented Programming Oversold!" http://oop.ismad.com/ Or: "Guide To Myths" http://www.geocities.com/tablizer/myths.htm And: "Why I Prefer Procedural/Relational Over OOP" http://www.geocities.com/tablizer/whypr.htm >From the last, for example: "It is my opinion that the division between data and behavior in procedural/relational (p/r) applications also has software design benefits. It allows a certain "contract" between the database and the database user (application programmer). Contracts usually have certain obligations and costs, but these costs are worthwhile for the parties of the contract or else the contract would not be entered into. The relational paradigm involves just such a contract. If you follow your end of the bargain, then the other party, the relational paradigm, will provide wonderful benefits. The "limitations" required are not arbitrary, for they provide a powerful intellectual rigor which is one of the greatest tools of modern software technology in my opinion. Along with GUI's, relational technology is one of the rare "wow!" technologies that is a fundamental leap forward in software design. ... The contract of the relational paradigm basically says, "If you put or keep your information (data) in a certain given structure, then there are powerful and concise operations that you can do on this information." E. Codd, the inventor of relational algebra, opened the world's eyes to a powerful kind of "math" (with some help from more practical-minded collegues). This math can reduce complex structures and patterns into relatively simple formulas, or "relational math"." Of course, one might argue relational databases are just well defined objects... :-) But then the object paradigm starts to break dawn -- and one is really thinking more in terms of "modules" then how "objects" are usually discussed. As I previously wrote here (and on the Squeak list a long while back): http://mail.python.org/pipermail/edu-sig/2006-December/007483.html "Personally, one way my opinions differer from Alan Kay's in a deep way is on his, I think mistaken, notion that an object (or a class) can have any meaning apart from the ecology of objects (or really classes) it is embedded in. I think there is a deep philosophical (and practical) point there which he is perhaps only slowly beginning to see. :-) But it is reflected in the superiority of, say, Python's modularity in practice compared to early Smalltalks, that is, if you think classes stand alone, then there is no need for a higher level of "module", whereas if you think classes need to be clustered to support each other, than modules make a lot of sense." Still, I think the more general issue, present even in AK's new proposal, is how one can simulate the world by objects but one also can simulate the world (perhaps more accurately, if with more effort) as a set of fields defined by relations (or by any other method). Whether such fields are best implemented procedurally or via OOP is another question. Anyway, when one delves this, it gets murkier and murkier -- in part because people often confuse having a modeling layer of discrete objects somewhere as meaning the models are all about Objects and OOP, but there is no reason one cannot use objects to model other things (fields) -- or even vice versa. Still, from a beginner point of view, why should you have to get the metaphor of "objects" if what you are interested in are "fields" (e.g an astrophysics simulation of particles in an electrostatic gradient and/or gravity well)? I think the appeal of APL based on arrays is in part the appeal of fields. One thing that makes this all confusing to understand is the human mind has a layer (or module) that models the complex real world in terms of a simplified representation of "objects" (as I wrote in my undergraduate thesis in 1985: "Why Intelligence: Objects Stability Evolution and Model"). William Kent explored this in his book _Data and Reality_: http://www.bkent.net/ For example, by numbers, people are about 90% bacteria, but we generally don't see other people as walking bacterial colonies. :-) "People Are Human-Bacteria Hybrid" http://www.wired.com/medtech/health/news/2004/10/65252 Yet if you want to understand some branches of holistic medicine (and why using antibiotics might have lifelong health impacts) then you need to think about people this way, as hard as it is. http://www.findarticles.com/p/articles/mi_m0NAH/is_2_32/ai_83316363 And then, if you want to understand bacteria, you have to see them more as a vast worldwide supercomputer than isolated individuals: "New Science Of Metagenomics to Transform Modern Microbiology?" http://science.slashdot.org/article.pl?sid=07/04/02/2017249 So, as Plato's "Allegory of the Cave" suggest it is sometimes hard to see past these shadows (objects) to realize that reality is something fundamentally different (deeper, more complex, more interrelated) than the simple parsing into objects we do routinely. [Plato's analogy breaks down here though in that he still thought of *ideal* forms of objects, whereas I'm more arguing against even ideal forms, except perhaps in a statistical sense sometimes.) Seeing the world in terms of objects may have enormous survival value to life forms with big brains, but that does not mean it is completely accurate (even as objects being a useful idea does mean there is likely some statistical truth there (e.g. statistical clustering), in terms of a field of relationships). Still, and I don't have it anymore, but about fifteen years ago I made a list of about 20 reasons why (VisualWorks) Smalltalk was better than a typical C++ (of the time) from a developer and maintainer point of view -- intentionally not bringing in OOP specifically as a reason (although, in retrospect, many of the benefits were enabled by OOP). Stuff like the integrated debugger, the browser, the inspector, refactoring support, garbage collection, the GUI library, edit/continue, and so on. Of course, C++ now apes many of those features, but without the integration or elegance. Still, having explored relational programming (via Pointrel) I can say both approaches (OOP and Relational) have their merits. The right tool for the right job. Or in this case, a flexibility with metaphor, so "teh right metaphor for the right job". Or, looking at it even more abstractly, "the right mathematical abstraction for the right job". And from that point of view, should not a goal of computer education (and CP4E) be to have people able to handle multiple metaphors as appropriate for the situation? Programming a digital thermostat might require thinking in terms of one kind of metaphor, whereas programming the GUI on your car smith require a different kind of metaphor? Perhaps the conflicts about "which programming language is best" really are just obscuring the issue of "which metaphor is best" and the answer to that, like when looking at a large library of fiction, is that lots of metaphors are useful in the right situations, and only being able to understand one kind of metaphor would mean you would not get very much out of most fiction. So a programmer only capable of working within one metaphor is not a very capable programmer. Still, if that metaphor is very powerful, like with OOP, a single-metaphor programmer could still get pretty far and do lots of useful things. And likely further than simple relational programs. Anyway, food for thought. --Paul Fernhout From pchase at sulross.edu Wed Apr 4 17:14:49 2007 From: pchase at sulross.edu (Peter Chase) Date: Wed, 04 Apr 2007 10:14:49 -0500 Subject: [Edu-sig] [BULK] More OOP bashing (& which metaphor is best?) In-Reply-To: <4613A270.3070903@kurtz-fernhout.com> References: <4613A270.3070903@kurtz-fernhout.com> Message-ID: <4613C0E9.5000806@sulross.edu> Paul D. Fernhout wrote: > I just came across these links (bearing indirectly on the value of > Python emphasizing both procedural and Object-Oriented Programming > support as a language good for beginners and experts): > > See: > "Object Oriented Programming Oversold!" > http://oop.ismad.com/ > Or: > "Guide To Myths" > http://www.geocities.com/tablizer/myths.htm > > And: > "Why I Prefer Procedural/Relational Over OOP" > http://www.geocities.com/tablizer/whypr.htm > >From the last, for example: "It is my opinion that the division between > data and behavior in procedural/relational (p/r) applications also has > software design benefits. It allows a certain "contract" between the > database and the database user (application programmer). Contracts > usually have certain obligations and costs, but these costs are > worthwhile for the parties of the contract or else the contract would > not be entered into. The relational paradigm involves just such a > contract. If you follow your end of the bargain, then the other party, > the relational paradigm, will provide wonderful benefits. The > "limitations" required are not arbitrary, for they provide a powerful > intellectual rigor which is one of the greatest tools of modern software > technology in my opinion. Along with GUI's, relational technology is one > of the rare "wow!" technologies that is a fundamental leap forward in > software design. ... The contract of the relational paradigm basically > says, "If you put or keep your information (data) in a certain given > structure, then there are powerful and concise operations that you can > do on this information." E. Codd, the inventor of relational algebra, > opened the world's eyes to a powerful kind of "math" (with some help > from more practical-minded collegues). This math can reduce complex > structures and patterns into relatively simple formulas, or "relational > math"." > > Of course, one might argue relational databases are just well defined > objects... :-) But then the object paradigm starts to break dawn -- and > one is really thinking more in terms of "modules" then how "objects" are > usually discussed. As I previously wrote here (and on the Squeak list a > long while back): > http://mail.python.org/pipermail/edu-sig/2006-December/007483.html > "Personally, one way my opinions differer from Alan Kay's in a deep way > is on his, I think mistaken, notion that an object (or a class) can have > any meaning apart from the ecology of objects (or really classes) it is > embedded in. I think there is a deep philosophical (and practical) > point there which he is perhaps only slowly beginning to see. :-) But > it is reflected in the superiority of, say, Python's modularity in > practice compared to early Smalltalks, that is, if you think classes > stand alone, then there is no need for a higher level of "module", > whereas if you think classes need to be clustered to support each > other, than modules make a lot of sense." > > Still, I think the more general issue, present even in AK's new > proposal, is how one can simulate the world by objects but one also can > simulate the world (perhaps more accurately, if with more effort) as a > set of fields defined by relations (or by any other method). Whether > such fields are best implemented procedurally or via OOP is another > question. Anyway, when one delves this, it gets murkier and murkier -- > in part because people often confuse having a modeling layer of discrete > objects somewhere as meaning the models are all about Objects and OOP, > but there is no reason one cannot use objects to model other things > (fields) -- or even vice versa. Still, from a beginner point of view, > why should you have to get the metaphor of "objects" if what you are > interested in are "fields" (e.g an astrophysics simulation of particles > in an electrostatic gradient and/or gravity well)? I think the appeal of > APL based on arrays is in part the appeal of fields. > > One thing that makes this all confusing to understand is the human mind > has a layer (or module) that models the complex real world in terms of a > simplified representation of "objects" (as I wrote in my undergraduate > thesis in 1985: "Why Intelligence: Objects Stability Evolution and > Model"). William Kent explored this in his book _Data and Reality_: > http://www.bkent.net/ > For example, by numbers, people are about 90% bacteria, but we generally > don't see other people as walking bacterial colonies. :-) > "People Are Human-Bacteria Hybrid" > http://www.wired.com/medtech/health/news/2004/10/65252 > Yet if you want to understand some branches of holistic medicine (and > why using antibiotics might have lifelong health impacts) then you need > to think about people this way, as hard as it is. > http://www.findarticles.com/p/articles/mi_m0NAH/is_2_32/ai_83316363 > And then, if you want to understand bacteria, you have to see them more > as a vast worldwide supercomputer than isolated individuals: > "New Science Of Metagenomics to Transform Modern Microbiology?" > http://science.slashdot.org/article.pl?sid=07/04/02/2017249 > So, as Plato's "Allegory of the Cave" suggest it is sometimes hard to > see past these shadows (objects) to realize that reality is something > fundamentally different (deeper, more complex, more interrelated) than > the simple parsing into objects we do routinely. [Plato's analogy breaks > down here though in that he still thought of *ideal* forms of objects, > whereas I'm more arguing against even ideal forms, except perhaps in a > statistical sense sometimes.) Seeing the world in terms of objects may > have enormous survival value to life forms with big brains, but that > does not mean it is completely accurate (even as objects being a useful > idea does mean there is likely some statistical truth there (e.g. > statistical clustering), in terms of a field of relationships). > > Still, and I don't have it anymore, but about fifteen years ago I made a > list of about 20 reasons why (VisualWorks) Smalltalk was better than a > typical C++ (of the time) from a developer and maintainer point of view > -- intentionally not bringing in OOP specifically as a reason (although, > in retrospect, many of the benefits were enabled by OOP). Stuff like the > integrated debugger, the browser, the inspector, refactoring support, > garbage collection, the GUI library, edit/continue, and so on. Of > course, C++ now apes many of those features, but without the integration > or elegance. > > Still, having explored relational programming (via Pointrel) I can say > both approaches (OOP and Relational) have their merits. The right tool > for the right job. Or in this case, a flexibility with metaphor, so "teh > right metaphor for the right job". Or, looking at it even more > abstractly, "the right mathematical abstraction for the right job". And > from that point of view, should not a goal of computer education (and > CP4E) be to have people able to handle multiple metaphors as appropriate > for the situation? Programming a digital thermostat might require > thinking in terms of one kind of metaphor, whereas programming the GUI > on your car smith require a different kind of metaphor? Perhaps the > conflicts about "which programming language is best" really are just > obscuring the issue of "which metaphor is best" and the answer to that, > like when looking at a large library of fiction, is that lots of > metaphors are useful in the right situations, and only being able to > understand one kind of metaphor would mean you would not get very much > out of most fiction. So a programmer only capable of working within one > metaphor is not a very capable programmer. Still, if that metaphor is > very powerful, like with OOP, a single-metaphor programmer could still > get pretty far and do lots of useful things. And likely further than > simple relational programs. > > Anyway, food for thought. > > --Paul Fernhout > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > Not sure you can trust anyone using the phrase "appeal of APL". From kirby.urner at gmail.com Wed Apr 4 18:41:28 2007 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 4 Apr 2007 09:41:28 -0700 Subject: [Edu-sig] More OOP bashing (& which metaphor is best?) In-Reply-To: <4613A270.3070903@kurtz-fernhout.com> References: <4613A270.3070903@kurtz-fernhout.com> Message-ID: On 4/4/07, Paul D. Fernhout wrote: > I just came across these links (bearing indirectly on the value of > Python emphasizing both procedural and Object-Oriented Programming > support as a language good for beginners and experts): > > See: > "Object Oriented Programming Oversold!" > http://oop.ismad.com/ > Or: > "Guide To Myths" > http://www.geocities.com/tablizer/myths.htm > > And: > "Why I Prefer Procedural/Relational Over OOP" > http://www.geocities.com/tablizer/whypr.htm Yeah, studied that guy's website some years ago, including some correspondance as I recall. An old custom database programmer like me, xBase family, rebelling against the OO trend which subsequently took over xBase as well starting 1990s or so (witness Microsoft VFP). What a lot of this analysis neglects is the rich *interactive* semantics we're able to define using dot notation, i.e. by making our objects "top level" we have a lot of functionality organized by "thing" (as in "I am a vector"). IDLE 1.2 >>> from stickworks import Vector >>> v1 = Vector((1,0,0)) >>> v2 = Vector((0,1,0)) >>> v1.cross(v2) Vector @ (0.0,0.0,1.0) >>> v2.dot(v2) 1.0 is simply an intuitive way to keep vector ops "grouped" within the entities which have a "need to know" (encapsulation). A rich command line experience is what Python provides. You'd think B. Jacobs would appreciate that, given the xBase "dot prompt" heritage. http://www.4dsolutions.net/ocn/oopalgebra.html http://www.4dsolutions.net/ocn/trends2000.html Kirby From pdfernhout at kurtz-fernhout.com Thu Apr 5 00:01:10 2007 From: pdfernhout at kurtz-fernhout.com (Paul D. Fernhout) Date: Wed, 04 Apr 2007 18:01:10 -0400 Subject: [Edu-sig] [BULK] More OOP bashing (& which metaphor is best?) In-Reply-To: <4613C0E9.5000806@sulross.edu> References: <4613A270.3070903@kurtz-fernhout.com> <4613C0E9.5000806@sulross.edu> Message-ID: <46142026.4030009@kurtz-fernhout.com> Peter Chase wrote: > Not sure you can trust anyone using the phrase "appeal of APL". Personally, I haven't used APL for over twenty years (since when you needed it to run a graphics package called FOIL to produce multicolor plotter output). I'm not a big fan of backspacing over funny characters to make more even complex operators (as neat an idea as I'm sure that sounded at the time). :-( Still, consider: http://www.sigapl.org/letter-2006-07.html "The executive committee is making an effort for SIGAPL to strengthen its position as an organization that sponsors the use of many array programming languages, including APL, J, K, matlab, Gauss, and APLus. In addition, we want to re-activate the relationships with local APL user groups and initiate relationships with users of other APL dialects." Obviously, matlab is very mainstream in several domains (especially related to signal processing). But even in the Python context, NumPy or variants are bringing the power of arrays to Python. See: "NumPy for Matlab Users" http://www.scipy.org/NumPy_for_Matlab_Users "MATLAB? and NumPy/SciPy have a lot in common. But there are many differences. NumPy and SciPy were created to do numerical and scientific computing in the most natural way with Python, not to be MATLAB? clones." FScript tried to bring powerful array concepts to Smalltalk. http://oopsla.acm.org/oopsla2003/files/dem-9.html "The OOPAL model, a new high level programming model which unify OOP and APL-like Array programming." So, let me rephrase that as, "the appeal of APL, J, K, matlab, Gauss, APLus, FScript and NumPy." :-) Sound slightly more trustworthy? :-) Anyway, my point is that array processing offers yet another paradigm alternative to OOP, and for the right task (e.g. simulating fields of force), it can be a very attractive approach. Of course Python, being very flexible and modular and expandable, gives you a lot of those possibilities without all the line noise. :-) And one might argue, that if you were teaching programming to, say, Astrophysics-interested people, you might be better off focusing on NumPy and doing array calculations using procedural code than talking about all the typical OOP examples of hierarchies of shapes and such. All the best. --Paul Fernhout From kirby.urner at gmail.com Thu Apr 5 06:30:16 2007 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 4 Apr 2007 21:30:16 -0700 Subject: [Edu-sig] [BULK] More OOP bashing (& which metaphor is best?) In-Reply-To: <46142026.4030009@kurtz-fernhout.com> References: <4613A270.3070903@kurtz-fernhout.com> <4613C0E9.5000806@sulross.edu> <46142026.4030009@kurtz-fernhout.com> Message-ID: Not sure I'd counterpose "array-based versus OOP" as it's quite possible to represent and manipulate a multidimensional array *as an object* (like a list, but deeper). That being said, true enough that J presents a strongly functional right to left pipeline, very different from Python. More like REBOL perhaps? (Jason Cunliffe has been our resident REBOL booster). So here's where I insert my "tour the languages" approach: rather than focus on NumPy, just focus on J for awhile. Learn what that's like. Maybe your Python'll be better as a result. Instead of charming our snake into doing stupid pet trix, use it to show off the power of OO, and *other languages* to show of the power of other-than-OO. Touring may be fairly painless, some high rez screencasts and such. No one says you have to become a master. My CS0 at Princeton featured APL, FORTRAN, PL/1, SNOBOL and some simulated Assembler as I recall, among other languages. Why not some xBase while we're at it, with embedded SQL? http://worldgame.blogspot.com/2006/08/toontown-revisited.html http://worldgame.blogspot.com/2006/07/taking-refuge-in-j.html Kirby From kirby.urner at gmail.com Mon Apr 9 16:55:30 2007 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 9 Apr 2007 07:55:30 -0700 Subject: [Edu-sig] More Brainstorming in Portland Message-ID: I've been brainstorming with Ki (as in Master George) about the Civ IV bindings class that'd put Saturday Academny students in the driver's seat vis-a-vis a game engine that popular. He dug up the API, which is C-like in flavor, reflecting a lot of work already done, suitable for commercialization by way of open source testing. Those coming to the fore as prime movers of the open source version could then dive more deeply, with more capital support, into a more proprietary offering. There'd likely continue to be subversive cast offs or snap shots of the latest code. Anyway, that's one possible scenario. Perfect for our interns. I've been thinking of inviting Joyce Cresswell to our meeting. On another front, the acronym to track is XRL, the livingry (gear) associated with "extremely remote living" i.e. wilderness survival type camping, but with more aerospace input, more an alternative to cubicles than just tents i.e. you can have your computer and fat pipe Internet access. Watch for REI involvement. I think Ki's idea of what'd be a really fun and optional use of one's time on a bright sunny Saturday Morning in the prime of one's life (most of my students are very lustily youthful) is very much more likely to catch on that what I'm doing now: boring dry vector graphics of the type you should be getting when confined to school as a part of your more mandatory day. Saturday Academy should be for fun stuff, not like regular school. But then I exaggerate. Per the write-ups in my blogs and elsewhere (here for example) I think it's clear that my classes aren't quite that boring. Already I'm free to allude to and project the Civ IV API (thanks Tim) which helps boost their imaginations (and mine). We listen and watch Animusic, talk about ray tracing versus real time scenery and action computed on the fly, and use Python in a kind of "cave painting" mode to just start to get our feet wet in these subjects. POV-Ray is good for still renderings, VPython for on the fly. My classes do fill, sometimes. Kirby From svenforum at gmail.com Tue Apr 10 11:01:35 2007 From: svenforum at gmail.com (Sven Forum) Date: Tue, 10 Apr 2007 11:01:35 +0200 Subject: [Edu-sig] Studybook for Python Message-ID: <543116060704100201n5900f012xbfa3c6d0141f6458@mail.gmail.com> Hi, In little more than one year I'll become a teacher in informatics for 14 - 16 year-olds (and math, history for 12-15y). Nowadays these pupils get Word, Excel and Pascal. Few hours are actually spent on programming. I would like to change this into oooWriter, oooCalc and Python (and perhaps a little more, depending on the strength of my class). Now, before we graduate, everybody needs to write a paper. These subjects are on my list: * Learn Python - a studybook with theory, examples and exercises -- Idea: The last lessons the pupils can make a simple game, building on functions they saw that year ->Math: The possibility to use python in my math class, for instance as a plotter, calculating surface, drawing figures ... (In my spare time I would like to write a GeoGebra like program, in Python. Still theoretical though ...) * Learn Writer - just a replacement for Word -- Idea: python-uno * Learn Calc - Idem as Writer I am considering to use "Think like a computer scientist" as a basis for my paper. But I am a little stuck on the math and game documentation. Can someone provide me with some links? Also I would like your comments and suggestions on the ideas. Furthermore, what should I integrate, what not? If this works, we could provide teachers with a studybook for python, which makes the step to use the language a lot smaller and therefor easier to make. Regards, Sven PS: My English is a bit rusty. Working on it ... -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20070410/4e71d0b0/attachment.html From yusdi at hotmail.com Wed Apr 11 22:30:52 2007 From: yusdi at hotmail.com (Yusdi Santoso) Date: Wed, 11 Apr 2007 13:30:52 -0700 Subject: [Edu-sig] Web based Matlab-like software In-Reply-To: <543116060704100201n5900f012xbfa3c6d0141f6458@mail.gmail.com> Message-ID: Hi all, I have developed a web interface for the Matplotlib library in my spare time. I was inspired (or frustrated rather..) to develop it when I was encountering a lot of license error with the Matlab server in my university. It is intended to be a free alternative to Matlab especially geared for teaching mathematics and scientific programming. Obviously it is not as complete as Matlab or other more mature scientific programming environments (R, Maple, Mathematica to name a few), however it comes with several unique benefits: * Zero client side installation. This is an advantage for computer lab/classroom setup where IT administration budget is limited. You just need reasonably recent browser which supports AJAX (IE6+, Mozilla 1.5+) * Online file storage. All of the user files are stored on the server and can be manipulated and edited online. * And it is free You can find an early release at the following URL: http://www.physics.ox.ac.uk/users/santoso/Software.WebLab.html At this stage it is working but with some issues (which will need some serious thinking...). I would be grateful for any suggestion/comments. What I would love to do is to engage some educators to use and push this to be something more mature. I realize this mailing list is rather quiet, hopefully this email can spark some interests. Thanks again, Yusdi _________________________________________________________________ Need a break? Find your escape route with Live Search Maps. http://maps.live.com/?icid=hmtag3 From andre.roberge at gmail.com Wed Apr 11 23:01:03 2007 From: andre.roberge at gmail.com (Andre Roberge) Date: Wed, 11 Apr 2007 18:01:03 -0300 Subject: [Edu-sig] Web based Matlab-like software In-Reply-To: References: <543116060704100201n5900f012xbfa3c6d0141f6458@mail.gmail.com> Message-ID: <7528bcdd0704111401t37f3ad3evd58337932e6b90d@mail.gmail.com> Hi Yusdi, The link for downloading is broken, as it can only be seen locally. Here is what I get: http://localhost/pmwiki/files/webLab_v0.1.zip Please, please, fix it as it looks like something really good that I would love to try!!!! Have you had a look at Crunchy? (http://code.google.com/p/crunchy) It has a similar interface to weblab and one of the development plans for this summer was to develop a "plugin" for Matplotlib. With your permission (I don't know what license you used since I can't download), I would like to see if we can incorporate your program within Crunchy. Or perhaps you'd like to join as a developer to the Crunchy team and do this yourself!? :-) Johannes Woolard, co-developer of Crunchy is an Oxford student (in the computer science department, I believe) is a subscriber to this list. He is currently on holidays but I think he should be back some time next week. You two might be able to meet and discuss face to face about this possibility. We are hoping to get two students to work as part of Google's Summer of Code 2007 on Crunchy development and one of them has some experience with matplotlib already. Andr? (Roberge) On 4/11/07, Yusdi Santoso wrote: > > Hi all, > > I have developed a web interface for the Matplotlib library in my spare > time. I was inspired (or frustrated rather..) to develop it when I was > encountering a lot of license error with the Matlab server in my > university. > > It is intended to be a free alternative to Matlab especially geared for > teaching mathematics and scientific programming. Obviously it is not as > complete as Matlab or other more mature scientific programming > environments > (R, Maple, Mathematica to name a few), however it comes with several > unique > benefits: > * Zero client side installation. This is an advantage for computer > lab/classroom setup where IT administration budget is limited. You just > need > reasonably recent browser which supports AJAX (IE6+, Mozilla 1.5+) > * Online file storage. All of the user files are stored on the server and > can be manipulated and edited online. > * And it is free > > You can find an early release at the following URL: > http://www.physics.ox.ac.uk/users/santoso/Software.WebLab.html > > At this stage it is working but with some issues (which will need some > serious thinking...). > I would be grateful for any suggestion/comments. What I would love to do > is > to engage some educators to use and push this to be something more mature. > > I realize this mailing list is rather quiet, hopefully this email can > spark > some interests. > Thanks again, > > > Yusdi > > _________________________________________________________________ > Need a break? Find your escape route with Live Search Maps. > http://maps.live.com/?icid=hmtag3 > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20070411/b5f980e4/attachment.htm From yusdi at hotmail.com Thu Apr 12 09:31:16 2007 From: yusdi at hotmail.com (Yusdi Santoso) Date: Thu, 12 Apr 2007 00:31:16 -0700 Subject: [Edu-sig] Web based Matlab-like software In-Reply-To: <7528bcdd0704111401t37f3ad3evd58337932e6b90d@mail.gmail.com> Message-ID: Hi Andr?, Thanks for the notification. I have fixed the problem, now you should be getting the right zip file. I have just briefly glanced at the Cruchy website, look very interesting and probably more mature than my current code. It will be interesting to see the two projects come together at certain point. I am currently putting the code under LGPL, personally I don't really care about what licenses to use. What I want is to see the code to be put to a good use. It will be nice to chat with Johannes. Johannes: Feel free to contact me if you want more info. Thanks and best regards, Yusdi _________________________________________________________________ Interest Rates Fall Again! $430,000 Mortgage for $1,399/mo - Calculate new payment http://www.lowermybills.com/lre/index.jsp?sourceid=lmb-9632-18679&moid=7581 From kirby.urner at gmail.com Thu Apr 12 19:51:02 2007 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 12 Apr 2007 10:51:02 -0700 Subject: [Edu-sig] Update from PDX Message-ID: I'm continuing to insinuate my Pythonic hypertoons as a part of our "mental geometry" component, a supplement to the much more hyped "mental arithmetic" some teachers think calculators have messed with. Computers help with both, through drill and practice (e.g. Mathblasters), and Python is a great development language in this regard (Pygame, VPython...). My meeting with Ki Master George as his Saturday Academy mentor, re Django and/or developing a user-friendly tutorial around Civ IV/Python bindings was fruitful, though neither project seems ISEFy enough (he's aiming towards the compsci section of that well known science fair). We met at the Starbucks on Holgate, his dad also very much a part of these discussions (I like involving parents, had a dad sit through much of my last Pythonic math class, as chronicled in my blogs). As background for compsci, I recommended some of the following readings: In Code (Flannery) Cryptonomicon and In the Beginning... (Stephenson) and New Kind of Science (Wolfram) thinking a "pure compsci" approach leads to projects around: (a) cryptography and/or (b) cellular automata. At least those are both still-promising and fertile areas, no? I continue networking with the gnu math teachers on getting our kits ready for this summer. We plan to fan out across the country, giving little dog and pony shows here and there regarding what we call "gnu math" and/or "design science." It's a lot more hands-on and computer literate than what passes for math class today. Link trailhead: http://www.mathforum.org/kb/thread.jspa?threadID=1558459&tstart=0 Kirby 4D Solutions From kirby.urner at gmail.com Tue Apr 17 02:24:08 2007 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 16 Apr 2007 17:24:08 -0700 Subject: [Edu-sig] More from my corner... Message-ID: Greetings Edu-siggers -- I've just learned my Saturday Academy class, a variety of Pythonic mathematics, has a green light for this session, meaning I'll be teaching in a computer lab at Portland State these next few weeks. If the past serves as any guide, I'll be logging some of my experiences, as the teacher, in this stash (edu-sig archive), Insha'Allah. These are middle and high school aged students. Also, I'm starting to practice my adult level Python teaching skills, with Wanderers, starting tomorrow evening. Wanderers is a think tanky group I've blogged about often, with lots of ties to (a) Linus Pauling and (b) Cal Tech. These will be challenging adult students, many with years of experience as assembly language programmers, electronics engineers and so on. Allen Taylor is author of several popular 'SQL for Dummies' books. David Feinstein is an applied mathematician of high repute, and so on. Speaking of Wanderers, I didn't make the final cut for the Python track this year @ OSCON 2007. Probably good they're giving more young people a chance (I had this gig three times already). However, if you're planning to be here in Portland attending OSCON, that'd be an opportunity for us to meet around the edges. Join us for an evening at the Linus Pauling Center on Hawthorne for example. http://www.isepp.org/Pages/ISEPP%20Pages/PaulingLegacy.html I'll post more closer to the time. Kirby 4D Solutions/DWA 3745 SE Harrison St. Portland, OR 97214 From kirby.urner at gmail.com Tue Apr 17 02:27:33 2007 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 16 Apr 2007 17:27:33 -0700 Subject: [Edu-sig] Archival : Kirby's Winterhaven Pythonic math class exhibit (2005-2006) Message-ID: Filing for the edu-sig archive, an email of earlier today: A note to a parents list (Winterhaven Public School, Portland, Oregon): === -----Original Message----- From: Kirby Urner [mailto:urnerk at qwest.net] Sent: Monday, April 16, 2007 2:42 PM To: 'wearewinterhaven at googlegroups.com' Subject: RE: Who's in charge of technology at Winterhaven? (eom) Archival Note: Technology @ Winterhaven, 2005 - 2006. FYI re technology at Winterhaven, I still keep an archival couple web pages re my Python class for 8th graders under Mark's supervision in '05-'06: In case you're interested: http://www.4dsolutions.net/ocn/winterhaven/ Mostly I teach this stuff for pay via OSU and PSU (per 2006 W2s w/ my 1040), but decided to give it a whirl as parent-volunteer for my daughter's school's Wizards that time. I did two sets of 8th graders, getting to meet with most all of them that way. We had fun. Kirby Urner 4D Solutions/DWA 3745 SE Harrison Street Portland, OR 97214 -----Original Message----- From: wearewinterhaven at googlegroups.com [mailto:wearewinterhaven at googlegroups.com] On Behalf Of rob Sent: Monday, April 16, 2007 1:36 PM To: We Are Winterhaven Subject: Re: Who's in charge of technology at Winterhaven? (eom) I was on the committee (or thought I was anyway). We met once last year for what was basically a "please approve the direction we're going with money allocation even though you haven't seen it before now, oh, and it has to be approved now because we'd like to present it to the staff tomorrow" meeting (not that I'm bitter or anything :) - just felt a little used). And, as far as I know, we haven't met again. I'd like to see it revived. I'm guessing it might be better done through the PTSA (with Tanya's buy-in of course) as I'm sure she has enough to do, though I can't say if that's the "best" way to go or not. Rob (Ron - keep on postin'!) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the "We Are Winterhaven" forum. To post to this group, send email to wearewinterhaven at googlegroups.com To change the frequency of these emails, update your preferences at http://groups-beta.google.com/group/wearewinterhaven/subscribe To unsubscribe from this group, send email to wearewinterhaven-unsubscribe at googlegroups.com For more options, visit this group at http://groups-beta.google.com/group/wearewinterhaven?hl=en -~----------~----~----~----~------~----~------~--~--- From mtobis at gmail.com Tue Apr 17 02:53:16 2007 From: mtobis at gmail.com (Michael Tobis) Date: Mon, 16 Apr 2007 19:53:16 -0500 Subject: [Edu-sig] education as Python's killer app Message-ID: My thoughts on Python in education Article: http://pencilscience.blogspot.com/2007/04/edu-python-pythons-killer-app.html Resources: http://pencilscience.blogspot.com/2007/04/python-first-educational-resources.html Presentation: http://webpages.cs.luc.edu/~mt/Python-First/Py1.html Comments and suggestions welcome. Please no fussing about formatting or grammar; this is all draft. However, I would appreciate anyone pointing out broken links. Mostly, I'd like to hear what you think I've left out (or anything I've gotten wrong). The thrust of the article is tarting to emerge: CP4E is real again thanks to OLPC (a project whose near-term success, while desireable, is uncertain) and Sugar, its user environment, which may well be unstoppable. On the advocacy front, this presents Python with a potential killer app with possibilities far larger than Ruby on Rails can ever aspire to. thanks for your attention Michael Tobis PS - anonymous blog comments are enabled, if you'd like to reply there. From aharrin at luc.edu Tue Apr 17 05:42:58 2007 From: aharrin at luc.edu (Andrew Harrington) Date: Mon, 16 Apr 2007 22:42:58 -0500 Subject: [Edu-sig] education as Python's killer app In-Reply-To: References: Message-ID: <46244242.9060905@luc.edu> Beautifully written Michael! Plus I learned some interesting facts and bent my head a bit differently. I think you are right that we would do well to consider the implications of Sugar -- beyond the XO machine. I would not say there are no easy and interesting places to start with Python -- Rur-ple for instance. It is not a killer-app, though. I find Rur-ple constraining when trying to extend past the carefully planned sequence in the tutorials. Thinking ahead, an environment with built-in objects with the high level methods of Scratch sprites would be good: easy animation of multiple sprites with multiple views, knowledge of collisions, maybe even knowledge of bouncing off walls and other sprites.... Scratch adds a mouse based editor/construction environment that makes syntax errors impossible. I would think that for someone with a little experience, Scratch would be a lot slower than typing. I am not suggesting insisting on taking the typing out of Python. (I have not looked to see what has been built on top of PyGame -- does something come close to what I am saying?) For starting off, I like the 2D world of Pygame/Scratch. I find the 3D world of Alice distracting. Andy Harrington Michael Tobis wrote: > My thoughts on Python in education > > Article: http://pencilscience.blogspot.com/2007/04/edu-python-pythons-killer-app.html > > Resources: http://pencilscience.blogspot.com/2007/04/python-first-educational-resources.html > > Presentation: http://webpages.cs.luc.edu/~mt/Python-First/Py1.html > > Comments and suggestions welcome. Please no fussing about formatting > or grammar; this is all draft. However, I would appreciate anyone > pointing out broken links. > > Mostly, I'd like to hear what you think I've left out (or anything > I've gotten wrong). > > The thrust of the article is tarting to emerge: CP4E is real again > thanks to OLPC (a project whose near-term success, while desireable, > is uncertain) and Sugar, its user environment, which may well be > unstoppable. > > On the advocacy front, this presents Python with a potential killer > app with possibilities far larger than Ruby on Rails can ever aspire > to. > > thanks for your attention > Michael Tobis > > PS - anonymous blog comments are enabled, if you'd like to reply there. > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Andrew N. Harrington Computer Science Department Director of Academic Programs Loyola University Chicago http://www.cs.luc.edu/~anh 512B Lewis Towers (office) Office Phone: 312-915-7982 Snail mail to Lewis Towers 416 Dept. Fax: 312-915-7998 820 North Michigan Avenue aharrin at luc.edu Chicago, Illinois 60611 From kirby.urner at gmail.com Tue Apr 17 06:52:59 2007 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 16 Apr 2007 21:52:59 -0700 Subject: [Edu-sig] education as Python's killer app In-Reply-To: References: Message-ID: On 4/16/07, Michael Tobis wrote: << SNIP >> > Mostly, I'd like to hear what you think I've left out (or anything > I've gotten wrong). > I think there's plenty that's right in your draft. In addition to Seymour Papert and Alan Kay, Kenneth Iverson is another important figure vis-a-vis CP4E as his thrust, like mine, was to make Math Notation (MN) come alive in an interactive environment (per APL & J in his case, more Pythonic in ours). http://www.cacs.louisiana.edu/~mgr/404/burks/language/apl/camnweb/camn.htm Although Iverson somewhat disavowed Wolfram's status as his protege and/or acolyte (per correspondence I saw on a J list), Mathematica *does* dramatically illustrate the role of computer software in the domain of math learning and modeling today. Python isn't Mathematica, but nor is it a "just a calculator" either. You can use it, in combination with add-ons, to study cellular automata, fractals, plus traditional basic math topics such as polynomials, polyhedra, group theory, trigonomety, matrix algebra etc. etc. Plus OOP gives a way to supply missing concreteness to math objects, without sacrificing their status as abstractions. Once you get passed the considerable barriers to putting Python in front of a student, ready for action, you come up against the question: what is it we're wanting to learn with assistance from our charming snake? Why do we care about turtles, robots and such? What's the bigger picture? The Shuttleworth Foundation (kusasa.org) writes in terms of developing "analytical thinking". Or call it problem solving abilities. And what are the problems? They're very "real world" for one thing, involve energy and opportunity costs (doing more of this means doing less of that). I'll through out "model view controller" (MVC) as still an important design pattern. I think you get into that when you start talking about developing for the web. HTML provides a view. There's often a database in the picture, maybe several. http://www.4dsolutions.net/ocn/geoquiz.html Rather than repeat myself endlessly, I'll just trail off by saying Python needs a context, doesn't necessarily supply one all on its own. Nor is Sugar (the GUI) nor a laptop computer in and of itself sufficiently "contextual" to guide our choices of emphasis and focus when it comes to curriculum writing for the emerging shared future. The questions go deeper than that e.g. "what is school really *about*?" The positive spin here is this question really is pretty open ended. I'm not trying to close down discussion by leaving it here. However, per my own CP4E curriculum writing it's quite certain that students are learning Python because they're wishing to develop their analytical and problem solving skills around specific content and/or real world challenges. Mathematical techniques and algorithms, pivotal concepts, remain a proper focus for these investigations, always have, always will. And the positive spin here is: lots of backward compatibility with pre-computer texts, even if they're out of print and/or just get shared around in electronic format. Kirby From kirby.urner at gmail.com Tue Apr 17 07:17:43 2007 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 16 Apr 2007 22:17:43 -0700 Subject: [Edu-sig] education as Python's killer app In-Reply-To: References: Message-ID: > I'll through out "model view controller" (MVC) "... throw out..." Fixed that typo, added some new content and links, for the blogged comments, pending moderator approval. Thanks for giving us some grist for the mill. Trying to do the same. Kirby From krstic at solarsail.hcs.harvard.edu Tue Apr 17 08:03:24 2007 From: krstic at solarsail.hcs.harvard.edu (=?UTF-8?B?SXZhbiBLcnN0acSH?=) Date: Tue, 17 Apr 2007 02:03:24 -0400 Subject: [Edu-sig] education as Python's killer app In-Reply-To: References: Message-ID: <4624632C.5090407@solarsail.hcs.harvard.edu> Michael Tobis wrote: > My thoughts on Python in education Nice. I'm still thinking about your earlier request to articulate why I use, care about, and want to promote Python (and by extension, why I'm excited about OLPC using it, and why I'm pushing that forward). There are lots of simple answers that I find unsatisfying and incomplete, and I haven't yet found a way to cogently express the more complex answer. -- Ivan Krsti? | GPG: 0x147C722D From radenski at studypack.com Tue Apr 17 16:41:47 2007 From: radenski at studypack.com (Atanas Radenski) Date: Tue, 17 Apr 2007 07:41:47 -0700 Subject: [Edu-sig] 3rd Python Workshop at Chapman University, California Message-ID: <20070417074147.r5egpnjd3k844k8c@webmail.studypack.com> Hello all, Space is still available for the 3rd summer workshop "Python First: A Lab-Based Digital Introduction to Computer Science", to be held at Chapman University, Orange, California, June 18-21, 2007. For more information and to register visit: http://www.chapman.edu/wcls/MathCS/sWorkshop/Python/default.asp A coarse map of the area is available here: http://www.cnn.com/US/9611/12/simpson/california.losAngeles.lg.jpg Tuition for this workshop is free. A nominal registration fee of $50 will cover coffee and snacks, and incidental workshop expenses. Transportation costs, meals and lodging are the responsibility of the attendee. The 2nd Python workshop that Chapman University hosted last June was very well received by all participants. We are looking forward to an interesting and useful meeting this June. Respectfully, Atanas Radenski -- Atanas Radenski mailto:radenski at studypack.com http://studypack.com mailto:radenski at chapman.edu http://www1.chapman.edu/~radenski From Pauljonad at aol.com Tue Apr 17 16:43:37 2007 From: Pauljonad at aol.com (Pauljonad at aol.com) Date: Tue, 17 Apr 2007 10:43:37 EDT Subject: [Edu-sig] Making solid sprites. Message-ID: Hello, I'm writing a simple game in Python with Livewires. I have a couple of sprites in my game, but I want them to be solid so that my character doesn't run over them, but is stopped when he runs into them and so that the flying sprites rebound of it as they do against a wall. I have a 'Phantom' as the main character and a Piano as the other sprite. I think I have to use (in Piano class): for Phantom in self.overlapping_sprites: .... something, I'm not sure. Any help would be appreciated. Thanks. Adam Moss -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20070417/73f6536d/attachment.htm From radenski at studypack.com Tue Apr 17 17:22:34 2007 From: radenski at studypack.com (Atanas Radenski) Date: Tue, 17 Apr 2007 08:22:34 -0700 Subject: [Edu-sig] "Python First" book (new) + related SIGCSE'07 paper Message-ID: <20070417082234.nisbhq81fcw84sk4@webmail.studypack.com> Hello all, Let me announce a new Python introductory book: Title: Python First: The Joy of Success Author: Atanas Radenski ISBN: 978159526-713-9, 512 pages, Llumina Press, April 2007 The book is available from the publisher at http://www.llumina.com/store/python.htm. The book is coming soon to Amazon.com. This book is a paper companion to the "Python First" online digital pack, http://studypack.com. The complete digital study pack features e-texts, slides, a wealth of detailed self-guided labs, sample programs, and extensive quizzes. The new book offers a printed version of the e-texts and self-guided labs in the same format as they appear in the online digital pack. Many books come with companion websites. The "Python First" online study pack comes with a printed book companion :-) "Python First" implements an active learning approach that is referred to as "abductive learning". The approach was recently reported at the ACM SIGCSE'07 and the paper is available here: http://studypack.com/comp/mod/resource/view.php?id=2928 Please, do not hesitate to send me an email if you have any questions or comments. Warm regards, Atanas Radenski mailto:radenski at studypack.com http://studypack.com mailto:radenski at chapman.edu http://www1.chapman.edu/~radenski From mtobis at gmail.com Tue Apr 17 22:57:56 2007 From: mtobis at gmail.com (Michael Tobis) Date: Tue, 17 Apr 2007 15:57:56 -0500 Subject: [Edu-sig] education as Python's killer app In-Reply-To: <4624632C.5090407@solarsail.hcs.harvard.edu> References: <4624632C.5090407@solarsail.hcs.harvard.edu> Message-ID: Well, if you (and anyone else) could take a stab at it this week I'd appreciate it. I am finalizing the article this weekend. Of course, better late than never, but better sooner than late is also true... mt On 4/17/07, Ivan Krsti? wrote: > Michael Tobis wrote: > > My thoughts on Python in education > > Nice. > > I'm still thinking about your earlier request to articulate why I use, > care about, and want to promote Python (and by extension, why I'm > excited about OLPC using it, and why I'm pushing that forward). There > are lots of simple answers that I find unsatisfying and incomplete, and > I haven't yet found a way to cogently express the more complex answer. > > -- > Ivan Krsti? | GPG: 0x147C722D > From kirby.urner at gmail.com Wed Apr 18 08:48:30 2007 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 17 Apr 2007 23:48:30 -0700 Subject: [Edu-sig] FW: Recap of tonight's presentation re Python @ Pauling House, Hawthorne, PDX Message-ID: """ >From kirby.urner at gmail.com Tue Apr 17 22:55:14 2007 Return-Path: X-Sender: kirby.urner at gmail.com X-Apparently-To: wwwanderers at yahoogroups.com Received: (qmail 34588 invoked from network); 18 Apr 2007 05:55:05 -0000 Received: from unknown (66.218.66.166) by m43.grp.scd.yahoo.com with QMQP; 18 Apr 2007 05:55:05 -0000 Received: from unknown (HELO n16.bullet.sp1.yahoo.com) (69.147.64.213) by mta5.grp.scd.yahoo.com with SMTP; 18 Apr 2007 05:55:05 -0000 Received: from [216.252.122.217] by n16.bullet.sp1.yahoo.com with NNFMP; 18 Apr 2007 05:54:51 -0000 Received: from [66.218.69.3] by t2.bullet.sp1.yahoo.com with NNFMP; 18 Apr 2007 05:54:51 -0000 Received: from [66.218.66.91] by t3.bullet.scd.yahoo.com with NNFMP; 18 Apr 2007 05:54:51 -0000 Date: Wed, 18 Apr 2007 05:54:49 -0000 To: wwwanderers at yahoogroups.com Message-ID: User-Agent: eGroups-EW/0.82 MIME-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable X-Mailer: Yahoo Groups Message Poster X-Yahoo-Newman-Property: groups-compose X-Originating-IP: 69.147.64.213 X-eGroups-Msg-Info: 1:6:0:0 X-Yahoo-Post-IP: 76.105.200.117 From: "Kirby Urner" Subject: Recap of Python Presentation Sir Don suggested I recap my tonight's Wanderers presentation for the membership. OK, here goes: Python Nation by Kirby Urner April 17, 2007 Python evolved from ABC, other influences, provides both interactive and runtime environments. My demo focused on the interactive feature, exercising dir() and type(), importing a little, defining a little, ending with a generator or two. The Dog class (below) took up the bulk of the time, with analogies made from this user-defined class, to the built-in types integral to Python, e.g. lists, sets, dictionaries, integers, decimals and so on. """ # globals BenevolentDictator4Life = 'Guido' # PEPs, PSF, Community... ComputerProgramming4Everybody = 'CP4E' # DARPA (-> IDLE) # module /site-packages/don.py ---------------------- # contrasted with barry.py alternative Dog class, to # show how name collisions might become a problem class Dog: """ My funky dog class """ def __init__(self, name): """... a dog is born...""" self.name = name self.stomach = [] def eat(self, food): # unraveled = self.__digest(self) ** self.stomach.append(food) def __digest(self): """code to unravel some plate of food""" def poop(self): return self.stomach.pop(0) # FIFO def __repr__(self): return "I'm a dog named " + self.name def __add__(self, other): return Dog(self.name + "-" + other.name) """ so then you would go like: >>> from don import Dog >>> mydog = Dog('Rover') >>> myotherdog = Dog('Fido') >>> mydog.eat('slice of pumpkin') >>> mydog.stomach ['slice of pumpkin'] ... """ # module site-packages/bill.py ---------------------- # stuff we did in response to bill's queries: joe = raw_input("Give me a number ") mary = raw_input("...and another...? ") whatop = raw_input("what operation?") print joe + whatop + mary print eval(joe + whatop + mary) import this # discuss importance of 'namespace' *** """ ** David Feinstein suggested unraveling, after I introduced a plate of food consisting of list-embedded lists (e.g. [['peas','carrots'],['jello'],['crackers','cheese']] ), but we didn't actually implement the algorithm during class. We also talked about the difference between tcp (checked receipt) and udp (user datagram) within the tcp/ip layer of the Internet, atop which layer ride the protocols: http; nntp; ftp; smtp and so on. Apps use these protocols to facilitate email, news, web and so on. *** example of namespaces: coxeter.4d einstein.4d fuller.4d i.e. each has a meaning for '4d' and using dot notation, we're better able to keep unwanted name collisions from happening. The plan here is to go more deeply into Python on some subsequent Thursday evenings, not necessarily consecutive, and not in conflict with any ISEPP lectures, around the Pauling House table. That's as far as we got tonight. I start teaching this stuff professionally on Saturdays for Saturday Academy and might delay further adult sessions until I've discharged these official duties. On the other hand, there's a lot to be said for simultaneity sometimes. """ From kirby.urner at gmail.com Wed Apr 18 01:20:03 2007 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 17 Apr 2007 16:20:03 -0700 Subject: [Edu-sig] Quote from derStandard.at, Shuttleworth on OLPC Message-ID: This article got Slash-dotted today. I'm just excerpting the tiny OLPC reference, in this interview with Mark Shuttleworth (although I read the whole article). http://linux.slashdot.org/article.pl?sid=07/04/17/1924225 http://derstandard.at/?url=/?id=2845484 === derStandard.at: What's your take on the One Laptop per Child-project? Mark Shuttleworth: I think it's a really beautiful project and I'm very supportive of the work, they are doing some great innovations in there. I expect that some of the countries that will go down that road will choose Ubuntu and if they do that, we would help them to make Ubuntu work very well on that platform. At this stage obviously everyone is waiting to see how it will pan out, my own sensing is, that it's already a triumphant success in terms of shaking up the industry and getting the industry to think about both new technologies and new markets. But I fear that people may judge it harshly if they don't actually produce the laptop for a 100 Dollars and unfortunately it looks like that is unlikely at this stage. === Kirby From kirby.urner at gmail.com Wed Apr 18 18:18:50 2007 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 18 Apr 2007 09:18:50 -0700 Subject: [Edu-sig] Python for Wanderers (blog link) Message-ID: Here's a blog entry re my presentation on Python to Wanderers last night: http://controlroom.blogspot.com/2007/04/wanderers-2007417.html Kirby From kirby.urner at gmail.com Thu Apr 19 18:42:21 2007 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 19 Apr 2007 09:42:21 -0700 Subject: [Edu-sig] An OOP view of the "number" concept Message-ID: Forwarding from Math Forum: more on how I think it pays students nowadays to look at numbers differently, now that they're consistently implemented as instances of a type which includes methods and attributes per OOP. Context: http://mathforum.org/kb/message.jspa?messageID=5657989&tstart=0 Kirby ==== Re: Operations: binary vs unary Posted: Apr 19, 2007 12:38 PM In my math courses we consider a number's operational capabilities to be a part of its "type" or "class". Whereas we have the standard +, -, /, * operators to play with, it's also possible to invoke these operations using a consistent "dot notation" -- which I consider a part of contemporary mathematics (characteristic of several self-executing MNs [1]). Using Python... IDLE 1.2 >>> 3 .__neg__() # unary op takes no argument -3 >>> -------3 -3 >>> 3 .__add__(5) 8 >>> 3 .__sub__(5) # binary op expects an argument -2 Of course this still looks strange to people who grew up in the 1900s (as I did) and think in a different paradigm. In the old way of thinking, operations were not included in our type definitions. The idea of "adding" was somehow independent of the set theory definitions (since dispensed with) of integers for example. Nowadays, a number such as the integer 1 has "guts", just as a string does.[2] Kirby Urner Saturday Academy Silicon Forest, Oregon [1] MNs = math notations, per Kenneth Iverson's treatise thereon: http://www.cacs.louisiana.edu/~mgr/404/burks/language/apl/camnweb/camn.htm [2] 'OOP Meets Algebra, Suggesting New "Ways of Looking" ' by Kirby Urner First posted: Feb 24, 1999 http://www.4dsolutions.net/ocn/oopalgebra.html From kirby.urner at gmail.com Sun Apr 22 01:34:29 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 21 Apr 2007 16:34:29 -0700 Subject: [Edu-sig] Blogging about my Pythonic Math class... Message-ID: This'll seem a lot like my other write-ups to you old timers on this list: http://mybizmo.blogspot.com/2007/04/class-notes-session-one.html Kirby From christian.mascher at gmx.de Sun Apr 22 14:58:40 2007 From: christian.mascher at gmx.de (Christian Mascher) Date: Sun, 22 Apr 2007 14:58:40 +0200 Subject: [Edu-sig] An OOP view of the "number" concept In-Reply-To: References: Message-ID: <462B5C00.9050000@gmx.de> Hi Kirby, >>3 .__add__(5) >> >> >>>3 .__add__(5) > >8 > > >Of course this still looks strange to people who grew >up in the 1900s (as I did) and think in a different paradigm. > >In the old way of thinking, operations were not included >in our type definitions. The idea of "adding" was >somehow independent of the set theory definitions >(since dispensed with) of integers for example. > I still recall the moment, when - while learning some smalltalk (after I knew Python) - one expression really impressed me: 2 sin Because in smalltalk nearly all expressions are message sends of the syntax receiver message this would mean the same as 2.sin() in a python-like-syntax. So 2 is an object, which you can ask to give you its sine-value. This is classical smalltalk-80. "Everything is an object" means more to me since that moment. It is interesting how they do this in smalltalk, for instance, you can easily put different kinds of number types on the left side- like "2.0 sin" gives you the same value for a float type. Actually in Python, dot-notation breaks down with this case: 2.0.sin() ??? I just noticed that. Perhaps one of the reasons smalltalk doesn't use the dot. Greetings Christian From kirby.urner at gmail.com Sun Apr 22 17:23:36 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 22 Apr 2007 08:23:36 -0700 Subject: [Edu-sig] An OOP view of the "number" concept In-Reply-To: <462B5C00.9050000@gmx.de> References: <462B5C00.9050000@gmx.de> Message-ID: > Actually in Python, dot-notation breaks down with this case: > 2.0.sin() ??? > I just noticed that. Perhaps one of the reasons smalltalk doesn't use > the dot. > > Greetings > > Christian The way I look at it, Python ints and floats "out of the box" have a more limited repertoire than in Smalltalk apparently. >>> dir(2.0) ['__abs__', '__add__', '__class__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__eq__', '__float__', '__floordiv__', '__ge__', '__getattribute__', '__getformat__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__int__', '__le__', '__long__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__nonzero__', '__pos__', '__pow__', '__radd__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmod__', '__rmul__', '__rpow__', '__rsub__', '__rtruediv__', '__setattr__', '__setformat__', '__str__', '__sub__', '__truediv__'] >>> 2.0 .__add__(3.0) # normally 2.0 + 3.0 5.0 >>> 2.0 .__neg__() # normally -2.0 -2.0 Once we import math, then we get these external functions, which don't actually reach into the guts of the number type for an answer. The native types are knowledgeable, but not omniscient (likewise with user-defined). Kirby From christian.mascher at gmx.de Sun Apr 22 21:49:10 2007 From: christian.mascher at gmx.de (Christian Mascher) Date: Sun, 22 Apr 2007 21:49:10 +0200 Subject: [Edu-sig] An OOP view of the "number" concept In-Reply-To: References: <462B5C00.9050000@gmx.de> Message-ID: <462BBC36.1010701@gmx.de> Hi, > The way I look at it, Python ints and floats "out of the box" have a more > limited repertoire than in Smalltalk apparently. Limited for a reason, see below. > Once we import math, then we get these external functions, which don't > actually reach into the guts of the number type for an answer. The > native types are knowledgeable, but not omniscient (likewise with > user-defined). > Right, so there is also a virtue in Pythons way of number-objects _not_ knowing about sin(): smalltalk's smart numbers only work, because everything (every method/function) is contained in one image; mathematical functions are methods defined somewhere in the Number class hierarchy of the smalltalk system. And you always have everything around, if you use it or not. Contrast this with Python, where you start with a limited set of builtin functions and object types and import other stuff only when needed. You save your work with little files (modules) and use rather less ressources than a full smalltalk image. Much more lightweight approach. Certainly one of the most important reasons I prefer Python, even when I admire the uniformity of smalltalk objects: the granularity of module files and a small efficient runtime environment running fast enough everywhere. Christian From kirby.urner at gmail.com Fri Apr 27 15:40:45 2007 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 27 Apr 2007 06:40:45 -0700 Subject: [Edu-sig] Python for Wanderers... Message-ID: I've been experimenting with teaching two classes in parallel: (1) for middle and high schoolers, a Pythonic Math class @ PSU: http://mybizmo.blogspot.com/2007/04/class-notes-session-one.html (2) for adults, some with coding experience but none with much Python so far: http://controlroom.blogspot.com/2007/04/wanderers-2007417.html You'll see in the follow-up section of link (2) above that I'm adding links for Classes 0-3 as time goes on. So if you're curious, pop Class 0 and read about last night's first formal meeting of our 4-session Python for Wanderers (it's a legal py file, but mostly comments in green). Wanderers meet in the boyhood home of 2x Nobel Prize winner Linus Pauling, walking distance from my house in the Hawthorne District of Portland. The name Wanderers comes from this quote: "Science would be ruined if it were to withdraw entirely into narrowly defined specialties. The rare scholars who are wanderers-by-choice are essential to the intellectual welfare of the settled disciplines." -- Benoit Mandelbrot http://wwwanderers.org/ My students last night included: Allen Taylor, author of 'SQL for Dummies' Glenn Stockton, former NSA cryptanalyst, Global Matrix [tm] avatar Bill Sheppard, electronics engineer, inventor of not-a-theramin Don Wardwell, boat captain, retired Mt Hood Community College faculty David Tver, wandering mathematician I'm hoping Derek (friend and neighbor) makes some of the next ones. I'm using a non-linear approach that shouldn't overly penalize those who can't make all four sessions. I'm wondering if I might recruit Kevin Altis and/or Robin Dunn to do a wxPython/HyperCard demo for the grand finale. Kirby From kirby.urner at gmail.com Sat Apr 28 03:01:11 2007 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 27 Apr 2007 18:01:11 -0700 Subject: [Edu-sig] A testing framework for new students of VPython Message-ID: """ Here's the kind of thing I'm using with my middle and high schoolers in class tomorrow, to help 'em get their feet wet with Python + VPython. Students have already slogged through Dog and Monkey as subclasses of Mammal before getting here. We replace Mammal with Vector, conceptually, and talk more about vectors as 'math objects' with a graphical representation, not just a lexical one. In stickworks.py, said Vector class is tail originating at (0,0,0), but we're able to edge-connect any two vector tips with an Edge. We use IDLE to import and run test(), with no need to close the VPython window between loops. The boilerplate the follows suggests easy extension to other VPython primitives, i.e. provides a sandbox and just enough sand for beginning coders to copy and/or elaborate upon. """ # ==== viztoyz.py ===== """ Kirby Urner 4D Solutions Apr 27 2007 Simple framework for studying VPython primitives plus an imported Vector & Edge, wrapper classes from my stickworks.py http://www.4dsolutions.net/ocn/stickworks.html """ from visual import sphere, color, display, cylinder from random import randint from stickworks import Vector, Edge red = color.red green = color.green blue = color.blue def makespheres(n=100): for i in range(n): # a loop x, y, z = randint(-10, 10), randint(-10,10), randint(-10,10) theball = sphere(pos=(x,y,z), # linebreak OK cuz within ( ) radius = 0.1 * randint(1,5), color = [red, blue, green][randint(0,2)]) def makecyls(n=100): for i in range(n): # a loop x, y, z = randint(-10, 10), randint(-10,10), randint(-10,10) thecyl = cylinder(pos=(0,0,0), axis=(x,y,z), radius = 0.1 * randint(1,5), # decimalize color = [red, blue, green][randint(0,2)]) def maketent(): """ Imagine a cube centered at the origin and with a positive octant vertex at (1,1,1). Inscribe a regular tetrahedron as six face diagonals therein. """ # 4 vertices a = Vector((-1, -1, 1)) b = Vector((-1, 1, -1)) c = Vector((1, 1, 1)) d = Vector((1, -1, -1)) # 6 edges tetrahedron = [Edge(a,b), Edge(b,c), Edge(c,d), Edge(a,c), Edge(a,d), Edge(b,d)] for e in tetrahedron: e.draw() def sometest(): pass def test(): # create a scene window scene2 = display(title='Some VPython Tests', width=600, height=600, center=(0,0,0), background=(0,1,1)) """list the functions""" thetests = [ makespheres, # balloon qyoob makecyls, # silly cyls maketent, # tetra tent sometest] # user defined, could be any number while True: print """ Choose: 0 Balloon Qyoob 1 Silly Cyls 2 Tetra Tent 3 ... your test goes here Q Outta here! """ ans = raw_input('Choice? ') if ans in 'Qq': break # trap more errors here thetests[int(ans)]() # perform user selection (or crash?) print "View output, hit Enter to continue..." # pause to look in the VPython window ok = raw_input() for obj in scene2.objects: # erase all objects obj.visible = False # outta here scene2.visible = False # destroy the scene window return # null From kirby.urner at gmail.com Sat Apr 28 17:25:09 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 28 Apr 2007 08:25:09 -0700 Subject: [Edu-sig] OLPC: $175 and Windows capable Message-ID: In Slashdot this AM: http://hardware.slashdot.org/article.pl?sid=07/04/28/0658206 I'm not surprised the hardware'll be Windows-capable, as the low price of $179.99 derives from using standard mass market laptop designs already in circulation, (with a few new wrinkles) such that *any* OS worth anything should be able to target it (and Windows is worth *something* no?). The question 'is Linux in trouble?' is of course entirely rhetorical and it's not. The students I'm working with already have a well developed hacker ethic: if the source is closed, it's "for dummies" (meant pejoratively, like in the movie 'Idiocracy'). Geeks of tomorrow use what geeks of today use: intelligent stuff. But sure, let the dumb kids in the USA use their stoopid Microsoft. We all know the USA is at least five years behind when it comes to teaching math and science, so why not computers as well? Kirby From kirby.urner at gmail.com Sat Apr 28 18:29:41 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 28 Apr 2007 09:29:41 -0700 Subject: [Edu-sig] OLPC: $175 and Windows capable In-Reply-To: References: Message-ID: > The question 'is Linux in trouble?' is of course entirely rhetorical > and it's not. The students I'm working with already have a well > developed hacker ethic: if the source is closed, it's "for dummies" > (meant pejoratively, like in the movie 'Idiocracy'). Geeks of > tomorrow use what geeks of today use: intelligent stuff. But sure, > let the dumb kids in the USA use their stoopid Microsoft. We all know > the USA is at least five years behind when it comes to teaching math > and science, so why not computers as well? > > Kirby OK, so I cooled off an mollified my position somewhat here: http://mathforum.org/kb/message.jspa?messageID=5674085&tstart=0 I've been feeling very friendly towards Bill of late, ever since his Foundation hired away a certain school superindent that's been nothing but trouble for us here in Portland. Yay Bill and Melinda, way to go! When it comes to proprietary/secret stuff, even Shuttleworth'll do that. It's simply *not* either/or and never has been in Silicon Forest. I've sparred with Stallman on precisely this issue: what if geeks don't see other geeks worthy of sharing with, in that opponent culture? Sometimes a counter-culture just reserves for its own, OK? Like, I probably won't be writing up my Saturday Academy classes in such detail any more. That's work I do for a paying client. If curious, enroll in a gnu math course near you, and experience the difference our charming snake makes. Kirby From andre.roberge at gmail.com Sat Apr 28 21:13:35 2007 From: andre.roberge at gmail.com (Andre Roberge) Date: Sat, 28 Apr 2007 16:13:35 -0300 Subject: [Edu-sig] WebLab: please have a look! Message-ID: <7528bcdd0704281213q4b716655n7e86df9e24dc864a@mail.gmail.com> A while ago, Yusdi Santoso made an announcement to this list about a new browser-based interface to matplotlib, called WebLab, intended to be a free replacement to Matlab. Since that original announcement, there have been quite a few improvements made to WebLab; in addition, WebLab is no longer restricted to run under Windows XP like it was when the original announcement was made. I am not all that familiar with matplotlib but, for having tried briefly WebLab, I am most impressed. I would encourage anyone interested in producing high quality graphics using a free Python based tool, as well as science instructors who have students that need to produce graphs, to have a look at WebLab. It can be found here: http://www.physics.ox.ac.uk/users/santoso/Software.WebLab.html Andr? From krstic at solarsail.hcs.harvard.edu Sun Apr 29 01:28:27 2007 From: krstic at solarsail.hcs.harvard.edu (=?UTF-8?B?SXZhbiBLcnN0acSH?=) Date: Sat, 28 Apr 2007 19:28:27 -0400 Subject: [Edu-sig] OLPC: $175 and Windows capable In-Reply-To: References: Message-ID: <4633D89B.3000508@solarsail.hcs.harvard.edu> kirby urner wrote: > I'm not surprised the hardware'll be Windows-capable Funny thing, that. The *old* hardware was also Windows-capable; it's why the SD-card slot was put in. It seems the news being reported are "it could run Windows before, but it'll be less sluggish now," and I'm not sure why people are getting riled up about it. The machines won't ship Windows by default, and no core OLPC dev effort is really going towards it. > as the low price > of $179.99 derives from using standard mass market laptop designs > already in circulation Not sure what you're talking about here; we didn't move to using _any_ "standard mass market designs" by implementing the hardware upgrade. -- Ivan Krsti? | GPG: 0x147C722D From kirby.urner at gmail.com Sun Apr 29 03:10:08 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 28 Apr 2007 18:10:08 -0700 Subject: [Edu-sig] Pythonic Math: notes re today's experience Message-ID: So I showed up to a locked room, hefting my own speakers, laptop, other props, with parents/students queuing in the hallway. Security showed shortly and opened the lab. Setup took longer without the help I got last week, but the training had been adequate and we managed to project 'Revolution OS' excerpts, Python source. The picture was none too bright though. Next week I'll bring the partnership's Optoma and stop using PSU's math department's bulb time. Forgetting the trick for connecting to the Internet for the moment (I later remembered), I had to talk my students through where to find viztoyz without projecting, which turned out to be right here in this mailing list archive, accessed via python.org | community | sigs | edu-sig. Then they also needed stickworks from 4dsolutions.net | ocn | python, where ocn is my Oregon Curriculum Network (in operation for many years by now, its content a feature at three OSCONs, a EuroPython, a Pycon, a LinuxFest in Bellingham, Washington, many other events (I'm something of a "known quantity" on the Python circuit by now, try to fight typecasting by always changing my act)). These two Python modules, plus visual (VPython.org) = a fun framework for playing with OpenGL. A major theme of this course: We have these two kinds of engine: (A) the "real time" on-the-fly graphical engine, designed to be interactive with users, like in computer games and some simulations (operating systems are another good example of a "real time responsive" type engine) (B) the "faux time" ray tracing engine, maybe slaved on a render farm (maybe standalone on your desk), not operating in real time but generating each frame very slowly, with painstaking attention to every ray of light. These frames then string together for projection at real action speeds, providing a far higher degree of real or surrealism in the final result than most games. The difference between (A) and (B) accounts for the lower apparent resolution of computer games, even higher end ones, next to the production values in movies like 'Cars', 'Over The Hedge' and/or 'Shrek' for example. Valve addressed a different set of problems with the Half Life 2 engine, Id with the Doom and Quake engines, than the set of problems addressed by a render farm slave at ILM or Weta. So I'm using VPython to stand in for an (A) type engine, a wrapper around OpenGL (DirectX being another famous engine), and POV-Ray to stand for a (B) type engine. Python harnesses both in this model, is a paradigm Controller in an MVC setup, with OpenGL and/or POV-Ray providing the views. The models might literally be Polyhedra, expressed mainly as data structures (faces as lists of vectors for example). In this Saturday Academy course, students get positive reinforcement for learning linear algebra's vector mathematics in the context of working out on two kinds of graphical engine, but with one lexical API in common, our expressive snake language. Eyeballing viztoyz, several students immediately seized on color as something they could get a handle on. This led to an exploration of the VPython documentation online, to assigning (r, g, b) 3-tuples, which one student wanted to generate randomly as well, as in def randcolor(): return tupe( [ 0.01 * randint(0,100) for i in range(3)] ) or whatever. The size of the "XYZ water tank" was another parameter. Or the number of spheres, the number of cylinders. Start with simple tweaks. Get down your import/reload reflexes in IDLE. Yes, sometimes we need to kill our shell, maybe Ctrl-Alt-Del to the task manager, hunt for ghost snakes under processes. Not saying it'd be just the same in a Linux lab. YMMV. Anyway their regular math teachers should be happy. This is very traditional stuff that we're pushing. Yet having a lexical computer language talking to graphical engines (sound engines ahead) makes a really huge difference. We give students a more motivating context in gnu math -- assuming for example that they might want to someday work in Portland's emerging ToonTown economy (quite a live possibility for students living around here). I'm thinking this approach is likely to catch on in places other than just China. Kirby From nicolas.pettiaux at ael.be Sun Apr 29 12:42:50 2007 From: nicolas.pettiaux at ael.be (Nicolas Pettiaux) Date: Sun, 29 Apr 2007 12:42:50 +0200 Subject: [Edu-sig] OLPC: $175 and Windows capable In-Reply-To: <4633D89B.3000508@solarsail.hcs.harvard.edu> References: <4633D89B.3000508@solarsail.hcs.harvard.edu> Message-ID: 2007/4/29, Ivan Krsti? : > Funny thing, that. The *old* hardware was also Windows-capable; it's why > the SD-card slot was put in. It seems the news being reported are "it > could run Windows before, but it'll be less sluggish now," and I'm not > sure why people are getting riled up about it. The machines won't ship > Windows by default, and no core OLPC dev effort is really going towards it. Thank for these info. can't we suppose that now Microsoft will invest more effort and energy to have Windows run very correctly on OLPC then, when the government have decided to invest in OLPC insist that they get the OLPC on windows instead as the model on Linux (I understand that anyway the interface will be the same, aka sugar ?) Thanks Nicolas -- Nicolas Pettiaux - email: nicolas.pettiaux at ael.be From jeff at taupro.com Mon Apr 30 02:57:01 2007 From: jeff at taupro.com (Jeff Rush) Date: Sun, 29 Apr 2007 19:57:01 -0500 Subject: [Edu-sig] OLPC: $175 and Windows capable In-Reply-To: References: Message-ID: <46353EDD.6030102@taupro.com> kirby urner wrote: >> The question 'is Linux in trouble?' is of course entirely rhetorical >> and it's not. The students I'm working with already have a well >> developed hacker ethic: if the source is closed, it's "for dummies" >> (meant pejoratively, like in the movie 'Idiocracy'). Kirby, I try to follow your posts but this one has me lost. You seem to be upset that Windows is in the OLPC picture, but then below you seem to be upset with the GNU folks re something about geeks worthy of sharing? > I've been feeling very friendly towards Bill of late, ever since his Foundation > hired away a certain school superindent that's been nothing but trouble for > us here in Portland. Yay Bill and Melinda, way to go! > > When it comes to proprietary/secret stuff, even Shuttleworth'll do that. It's > simply *not* either/or and never has been in Silicon Forest. Hmmm, proprietary != secret, and the free/open software movement has never said there must be no secrets in general, just in source and even then under certain circumstances of distribution, so I'm struggling here. > I've sparred with Stallman on precisely this issue: what if geeks don't see > other geeks worthy of sharing with, in that opponent culture? And I've never thought of the free/open software movement as being an opponent culture... what am I missing? > Sometimes a counter-culture just reserves for its own, OK? ??? "reserves for its own" > Like, I probably won't be writing up my Saturday Academy classes in such > detail any more. That's work I do for a paying client. If curious, > enroll in a gnu math course near you, and experience the difference our charming > snake makes. Sarcasm, re not writing them up anymore or are you really making such a major shift in direction? What did GNU do to tick you off and make you close your materials? -Jeff From kirby.urner at gmail.com Mon Apr 30 04:39:43 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 29 Apr 2007 19:39:43 -0700 Subject: [Edu-sig] OLPC: $175 and Windows capable In-Reply-To: <46353EDD.6030102@taupro.com> References: <46353EDD.6030102@taupro.com> Message-ID: On 4/29/07, Jeff Rush wrote: > kirby urner wrote: > >> The question 'is Linux in trouble?' is of course entirely rhetorical > >> and it's not. The students I'm working with already have a well > >> developed hacker ethic: if the source is closed, it's "for dummies" > >> (meant pejoratively, like in the movie 'Idiocracy'). > > Kirby, I try to follow your posts but this one has me lost. You seem to be > upset that Windows is in the OLPC picture, but then below you seem to be upset > with the GNU folks re something about geeks worthy of sharing? > Above what I'm saying is the young hackers I work with understand and appreciate the value of an open source operating system and so won't forsake Linux just because Windows is maybe easier to use in some ways. This question about Linux being in trouble was from Slashdot, not me. I'm saying Redmond's inroads with OLPC, with a unit more expensive than originally targeted, won't interfere with the ongoing spread of the Linux to the developing young world. Below I'm saying I'm actually feeling friendly towards the Gates Foundation these days: > > I've been feeling very friendly towards Bill of late, ever since his Foundation > > hired away a certain school superindent that's been nothing but trouble for > > us here in Portland. Yay Bill and Melinda, way to go! > > > > When it comes to proprietary/secret stuff, even Shuttleworth'll do that. It's > > simply *not* either/or and never has been in Silicon Forest. > > Hmmm, proprietary != secret, and the free/open software movement has never > said there must be no secrets in general, just in source and even then under > certain circumstances of distribution, so I'm struggling here. > Actually, proprietary and secret are *very similar* concepts. The easiest and most effective way to keep a driver proprietary is to not publish the source code. But of course you're right that much may be done to protect trade secrets and/or patents through licensing, other legal maneuvers. Those tend to fall apart internationally though, given lax enforcement -- it's easier to just *not share* the source code in the first place. And of course we all know that Linux is a primary platform for closed source applications. > > I've sparred with Stallman on precisely this issue: what if geeks don't see > > other geeks worthy of sharing with, in that opponent culture? > > And I've never thought of the free/open software movement as being an opponent > culture... what am I missing? > You're missing the fact that many of us think of the free/open software movement as a counter-culture, fighting back against a more selfishly devised economy that artificially creates scarcity as a way to fuel corporate welfare for unimaginative lawyers, other brands of middle man. Engineers needed more freedom, a more intelligent way to collaborate. I think it's misguided to pretend new ethics of the bazaar aren't a threat to those of an old guard status quo cathedral. > > Sometimes a counter-culture just reserves for its own, OK? > > ??? "reserves for its own" > Keeps unto itself, doesn't share willy nilly with the opposition. Has certain advantages ("high cards") which stay out of view, hidden, by design. Like you said yourself, nothing about GNU forbids us keeping our secrets. > > Like, I probably won't be writing up my Saturday Academy classes in such > > detail any more. That's work I do for a paying client. If curious, > > enroll in a gnu math course near you, and experience the difference our > > charming snake makes. > > Sarcasm, re not writing them up anymore or are you really making such a major > shift in direction? What did GNU do to tick you off and make you close your > materials? > > -Jeff > Not closing my already published world-readable materials, e.g. my CP4E stuff @ Oregon Curriculum Network. Not ticked off at GNU folks per se. Just saying I encounter a lot of resistance and skepticism from snide math teachers who think "Pythonic math" should just go away and die. They pretend I'm lost in a private language, unable to communicate clearly, even as I document and cross-reference everything, write clearly, teach classes, otherwise make headway against the odds. So rather than help my competition by furnishing any amount of free source code, instructional videos and so on (what I've been doing), I'm now more inclined to give special advantages to inhouse gnu math teachers who share my ideological leanings. For example, Portland has an opportunity to leap frog other cities, when it comes to how it teaches math to its own. Do I want to work my butt off to make sure the competition at the University of Michigan gets all my best ideas for free? Actually no, I'd rather focus my energy where its appreciated and let those clinging to their competing math curricula fend for themselves. Bottom line: It's not my job to help my opponents become as effective as my team is becoming in the math teaching department. As die-hard buckaneer pyratical types, we'd rather compete (yar!). http://mybizmo.blogspot.com/2006/09/yar.html As a hacker geek steeped in open source hacker ethics, I still see very clearly why I'd want to keep secrets from the unworthy. And I'm doing so -- without being hypocritical or betraying my core values. Secrecy has its place. Anyway, I hope that clears things up for ya. As it stands, after writing the above, I went ahead and continued with my usual practice of documented my math teaching techniques in great detail -- more than I see most other teachers doing: http://mybizmo.blogspot.com/2007/04/class-notes-session-two.html I'm also working on a new movie about viztoyz.py -- but the high rez version won't be what you see in Google Video or in my blog. My gnu math teachers get first dibs. Kirby From krstic at solarsail.hcs.harvard.edu Mon Apr 30 05:30:05 2007 From: krstic at solarsail.hcs.harvard.edu (=?UTF-8?B?SXZhbiBLcnN0acSH?=) Date: Sun, 29 Apr 2007 23:30:05 -0400 Subject: [Edu-sig] OLPC: $175 and Windows capable In-Reply-To: References: <46353EDD.6030102@taupro.com> Message-ID: <463562BD.2050706@solarsail.hcs.harvard.edu> kirby urner wrote: > I'm saying Redmond's inroads with OLPC, with a unit more expensive > than originally targeted Relax, take a deep breath, and don't believe everything you read. I'm going to say two things and leave it at that: Redmond has made no inroads with OLPC -- of any kind, and the '$100 laptop' moniker always referred to the target price, not initial price. It still applies in that sense, and the price increase had absolutely _nothing_ to do with any of the reasons I've seen reported, let alone with Redmond. -- Ivan Krsti? | GPG: 0x147C722D From kirby.urner at gmail.com Mon Apr 30 07:50:47 2007 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 29 Apr 2007 22:50:47 -0700 Subject: [Edu-sig] OLPC: $175 and Windows capable In-Reply-To: <463562BD.2050706@solarsail.hcs.harvard.edu> References: <46353EDD.6030102@taupro.com> <463562BD.2050706@solarsail.hcs.harvard.edu> Message-ID: On 4/29/07, Ivan Krsti? wrote: > > Relax, take a deep breath, and don't believe everything you read. > OK thanks for the info. Anyway, I'm more focused on CP4E than OLPC: http://mybizmo.blogspot.com/2007/01/cp4e-versus-olpc.html Looks like Mark was on target with his prediction that the $100 target would not be met any time soon: http://mail.python.org/pipermail/edu-sig/2007-April/007875.html Kirby From kirby.urner at gmail.com Mon Apr 30 17:08:18 2007 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 30 Apr 2007 08:08:18 -0700 Subject: [Edu-sig] Fwd: OLPC: $175 and Windows capable In-Reply-To: References: <46353EDD.6030102@taupro.com> Message-ID: Aforementioned "new movie": http://worldgame.blogspot.com/2007/04/viztoyz.html (low rez version). Kirby ---------- Forwarded message ---------- From: kirby urner Date: Apr 29, 2007 7:39 PM Subject: Re: [Edu-sig] OLPC: $175 and Windows capable To: Jeff Rush Cc: "edu-sig at python.org" << SNIP >> I'm also working on a new movie about viztoyz.py -- but the high rez version won't be what you see in Google Video or in my blog. My gnu math teachers get first dibs. Kirby From driscollkevin at gmail.com Mon Apr 30 17:32:06 2007 From: driscollkevin at gmail.com (Kevin Driscoll) Date: Mon, 30 Apr 2007 11:32:06 -0400 Subject: [Edu-sig] OLPC: $175 and Windows capable In-Reply-To: References: <46353EDD.6030102@taupro.com> Message-ID: <87a8578e0704300832y8202c17wd577eab67723f48@mail.gmail.com> On 4/29/07, kirby urner wrote: > So rather than help my competition by furnishing any amount of free > source code, instructional videos and so on (what I've been doing), > I'm now more inclined to give special advantages to inhouse gnu math > teachers who share my ideological leanings. As a high school math / CS teacher actively teaching the "hacker ethic" via Python and free software, it is sad to consider that you would not contribute new work to the community. I haven't been able to locate the Oregon Curriculum Network online. Have you considered starting a group on a site like Curriki (curriki.org) or OERCommons (oercommons.org) to pool resources with other Pythonic math teachers? Kevin -- http://kevindriscoll.info/ From kirby.urner at gmail.com Mon Apr 30 20:42:49 2007 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 30 Apr 2007 11:42:49 -0700 Subject: [Edu-sig] OLPC: $175 and Windows capable In-Reply-To: <87a8578e0704300832y8202c17wd577eab67723f48@mail.gmail.com> References: <46353EDD.6030102@taupro.com> <87a8578e0704300832y8202c17wd577eab67723f48@mail.gmail.com> Message-ID: On 4/30/07, Kevin Driscoll wrote: > On 4/29/07, kirby urner wrote: > > So rather than help my competition by furnishing any amount of free > > source code, instructional videos and so on (what I've been doing), > > I'm now more inclined to give special advantages to inhouse gnu math > > teachers who share my ideological leanings. > > As a high school math / CS teacher actively teaching the "hacker > ethic" via Python and free software, it is sad to consider that you > would not contribute new work to the community. > Where's this coming from? I've been the most prolific contributor to CP4E of just about anyone I know? > I haven't been able to locate the Oregon Curriculum Network online. http://www.4dsolutions.net/ocn/ If you follow any of a great number of my links over the years (I date back to the very beginning of this edu-sig list almost), you'd have found me by now. > Have you considered starting a group on a site like Curriki > (curriki.org) or OERCommons (oercommons.org) to pool resources with > other Pythonic math teachers? > > Kevin Hey, I'm *very* well connected and paid to teach Gnu Math, don't need any more commitments beyond the current ones. Kids love my stuff and the job prospects increase with each hour in my classroom. Portland Public Schools pays attention to my work. We're changing the face of math teaching in the Silicon Forest, you can bet on it. All I'm saying is I'd rather work locally with fellow geeks on putting calculators-based math out of business. That means not bending over backwards to share absolutely every key to my success, even as my competition and/or oppositions sneaks around, trying to frustrate our progress. I have my priorities, just like any geek. Yar! Kirby > > -- > http://kevindriscoll.info/ > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig >