From goodmansond at yahoo.com Tue Apr 6 10:12:08 2004 From: goodmansond at yahoo.com (Dean Goodmanson) Date: Tue Apr 6 10:12:17 2004 Subject: [Edu-sig] Which Programming Language? article Message-ID: <20040406141208.35159.qmail@web21109.mail.yahoo.com> Found this article/roundtable/interview applicable: Which Programming Language? http://www.oreillynet.com/pub/a/oreilly/editors/language_0304.html It included a link to this still useful but nolstagic piece by Frank Willison: http://www.oreilly.com/pub/a/oreilly/frank/webdesign_0401.html __________________________________ Do you Yahoo!? Yahoo! Small Business $15K Web Design Giveaway http://promotions.yahoo.com/design_giveaway/ From jorjohns at cs.indiana.edu Tue Apr 6 12:51:22 2004 From: jorjohns at cs.indiana.edu (Jordan Johnson) Date: Tue Apr 6 12:48:08 2004 Subject: [Edu-sig] turtle module + win2K Message-ID: Hi all, I've been experimenting with Python as a language (a possible replacement for Scheme) for the 9th grade class I'm teaching, and was pleased to find a turtle graphics module in it. I'm now frustrated with that, though, since its behavior (at least under Windows) is pretty unpleasant--the window fails to redraw once the turtle stops moving, leaving it looking like the thing is hanging. Is this a Tk problem, or a poorly-written turtle module? More importantly, is there a convenient solution to this, aside from making the IDLE shell/editor windows much smaller to accommodate the turtle window? I'm not averse to patching the module if need be, but I can't afford the time to poke around in the code and library docs. Any info would be appreciated. Thanks, jmj : Jordan M Johnson - jorjohns @ cs . indiana . edu : If I were a bug, I would want to be a true Renaissance bug. From lac at strakt.com Tue Apr 6 13:10:16 2004 From: lac at strakt.com (Laura Creighton) Date: Tue Apr 6 13:10:37 2004 Subject: [Edu-sig] turtle module + win2K In-Reply-To: Message from Jordan Johnson of "Tue, 06 Apr 2004 09:51:22 PDT." References: Message-ID: <200404061710.i36HAG09020993@ratthing-b246.strakt.com> I think that you may find using Guido van Robot more useful. http://gvr.sourceforge.net/ There was a good introductory talk 2 weeks ago at Pycon, but there is no paper yet here http://www.python.org/pycon/dc2004/papers/ Jeff Elkner, the author, will probably post a URL now I have mentioned it, (and yes Pycon still wants the slides). Good luck, Laura From glingl at aon.at Tue Apr 6 13:14:30 2004 From: glingl at aon.at (Gregor Lingl) Date: Tue Apr 6 13:13:39 2004 Subject: [Edu-sig] turtle module + win2K In-Reply-To: References: Message-ID: <4072E576.5000609@aon.at> Jordan Johnson schrieb: > Hi all, > > I've been experimenting with Python as a language (a possible > replacement for Scheme) for the 9th grade class I'm teaching, and was > pleased to find a turtle graphics module in it. I'm now frustrated > with that, though, since its behavior (at least under Windows) is > pretty unpleasant--the window fails to redraw once the turtle stops > moving, leaving it looking like the thing is hanging. > This is a problem that arouse with Python 2.3 and IDLE 1.0. It did not occur with Python 2.2 which used IDLE 0.8. In IDLE 0.8 your program and IDLE itself ran in the same process. Now that has changed. There was a thread at EduSig about this topic. Have a look at: http://mail.python.org/pipermail/edu-sig/2003-September/003149.html and http://mail.python.org/pipermail/edu-sig/2003-September/003153.html and follow those threads. There is a solution to this problem, which consist in making IDLE run like it ran before, without subprocesses; namely through using the -n option. You have to change the link, which starts IDLE to C:\Python23\pythonw.exe "C:\Python23\Lib\idlelib\idle.pyw " -n If you launch IDLE now, you'll get the message IDLE 1.0.2 ==== No Subprocess ==== >>> And that's o.k. for you. However leads to problems, when developing (large) projects. We can observe them in the nutshell: In you new IDLE type >>> a=1 >>> THEN create a program, testa.py, consisting of the line print a and run it. You'll get 1 Run from the commandline this program clearly results in a NameError. And do does it in IDLE 1.0, which uses it's separate namespces for it's programs. *But* as long as you only want to do interactive turtlegraphics to explore the turtle module, running IDLE with the -n option will be ok (I suppose. At least for me it is, and I useit this way in my classes. In fact I have two Icons linked with IDLE on my tesktop, the regular one and the -n - one. So I can use the appropriate one, whenever I wish). HTH, Gregor P.S. The same applies to interactively playing around with Tkinter in general. > Is this a Tk problem, or a poorly-written turtle module? More > importantly, is there a convenient solution to this, aside from making > the IDLE shell/editor windows much smaller to accommodate the turtle > window? I'm not averse to patching the module if need be, but I can't > afford the time to poke around in the code and library docs. > > Any info would be appreciated. > > Thanks, > jmj > > : Jordan M Johnson - jorjohns @ cs . indiana . edu > : If I were a bug, I would want to be a true Renaissance bug. > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > > From goodmansond at yahoo.com Wed Apr 7 12:17:11 2004 From: goodmansond at yahoo.com (Dean Goodmanson) Date: Wed Apr 7 12:17:17 2004 Subject: [Edu-sig] turtle module Message-ID: <20040407161711.8309.qmail@web21111.mail.yahoo.com> Is PythonCard's turtle a suitable alternative? http://pythoncard.sourceforge.net/samples3.html http://mail.python.org/pipermail/edu-sig/2001-October/001802.html __________________________________ Do you Yahoo!? Yahoo! Small Business $15K Web Design Giveaway http://promotions.yahoo.com/design_giveaway/ From ajsiegel at optonline.net Wed Apr 7 13:53:10 2004 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Wed Apr 7 13:55:27 2004 Subject: [Edu-sig] re: expert floats Message-ID: <7bdfb97bbe52.7bbe527bdfb9@optonline.net> FWIW, there is one of those fault line arguments being conducted on python-dev. Those arguing that > >>> 3.3 > 3.2999999999999998 > >>> is confusing and frightening to beginners, therefore a design mistake. vs. Those arguing that > >>> 3.3 > 3.2999999999999998 > >>> is confusing and frightening to beginners, necessarily so. And therefore the appropriate design option. I have my opinion. Which is being more than well represented. http://mail.python.org/pipermail/python-dev/2004-April/044153.html being the latest installment. Art From holbert.13 at osu.edu Wed Apr 7 15:17:38 2004 From: holbert.13 at osu.edu (Rick Holbert) Date: Wed Apr 7 15:17:42 2004 Subject: [Edu-sig] re: expert floats In-Reply-To: <7bdfb97bbe52.7bbe527bdfb9@optonline.net> References: <7bdfb97bbe52.7bbe527bdfb9@optonline.net> Message-ID: <200404071517.38992.holbert.13@osu.edu> When I try this using jython I get the following: Jython 2.1 on java1.2.2 (JIT: sunwjit) Type "copyright", "credits" or "license" for more information. >>> 3.3 3.3 >>> From david at handysoftware.com Thu Apr 8 17:51:59 2004 From: david at handysoftware.com (David Handy) Date: Thu Apr 8 17:48:18 2004 Subject: [Edu-sig] re: expert floats In-Reply-To: <200404071517.38992.holbert.13@osu.edu> Message-ID: When I try this on Jython I get the following: Jython 2.1 on java1.4.2_02 (JIT: null) Type "copyright", "credits" or "license" for more information. >>> 2.2 - 1.2 - 1.0 2.220446049250313E-16 As the various people on Python-dev said, no amount of display rounding can cover up the fact that when you make the round trip between a string and binary floating point, you lose something in the process. I deal with that in my beginning programming book by contriving examples that don't hit the weird cases (i.e. use 3.5, not 3.3) and plan on relegating the details and explanations about floating-point representation to a later section or an appendix. I also have clear memories of encountering these same floating-point conversion issues when programming in BASIC as a young teenager, and dealing with it Ok. In particular, I learned not to rely on IF A = B THEN ... but rather IF ABS(A - B) < DELTA THEN ... BASIC was a great language to start with (before Python came along.) On Wed, 7 Apr 2004, Rick Holbert wrote: > When I try this using jython I get the following: > > Jython 2.1 on java1.2.2 (JIT: sunwjit) > Type "copyright", "credits" or "license" for more information. > >>> 3.3 > 3.3 > >>> > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > From ajsiegel at optonline.net Sat Apr 10 09:40:06 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 10 09:40:13 2004 Subject: [Edu-sig] OT maybe re: Linux Servers Message-ID: <0HVY008IUJA549@mta3.srv.hcvlny.cv.net> This is a link to an Open Magazine article on the recent Yankee Group study purporting to establish that: """ In large enterprises, a significant Linux deployment or shift from Windows to Linux would be three to four times more expensive and take three times as long to deploy as an upgrade [of Windows]. """ http://www.open-mag.com/9483483279.shtml The Yankee Group's study is publicized by Microsoft as "independent". In some sense I am sure it is, and in other senses... So much of this stuff boils down to issues of semantics, study parameters, etc. And the Open Source community is goaded into making the wrong counter-argument. It is not non-sensical that converting operating systems would be significantly more involved and expensive than upgrading an existing operating system. But if we assume that these businesses intend be in business for the next 10 years, say, what is the TCO picture over that kind of timeframe? The study doesn't purport to address that kind of issue. It is a study doing nothing more than reiterating common sense, and therefore a study with a foregone conclusion. And Microsoft uses it out of context as ammunition, implying things from it that are substantially beyond its scope. I frankly don't care much what operating systems run on the servers of the Fortune 500. And frankly think that Windows can be a sensible choice for many businesses. But it is the methodologies and tactics here that frighten me. I am convinced these are the kinds of tactics - which boil down to bad and abused science - that are to be faced in questions in respect to technology and education. Except that I don't see anything on the horizon as powerful as IBM offering a countervailing force. Bleak picture. Art From ajsiegel at optonline.net Sat Apr 10 10:35:16 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 10 10:35:26 2004 Subject: [Edu-sig] a modest proposal. Message-ID: <0HVY00EYGLUX2E@mta4.srv.hcvlny.cv.net> One possibility is to design a programming language that has it all: Case insensitivity. One based indexing. Its numerics look like you are using a calculator. Etc. It would of course have no advantages in terms of actually teaching programming, but it might in fact increase the possibility of actually having programming taught. We call it Placebo. Art From jason.cunliffe at verizon.net Sat Apr 10 10:51:54 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sat Apr 10 10:57:00 2004 Subject: [Edu-sig] a modest proposal. References: <0HVY00EYGLUX2E@mta4.srv.hcvlny.cv.net> Message-ID: <004801c41f0b$5de35f60$6501a8c0@vaio> > We call it Placebo. aka 'English' From ajsiegel at optonline.net Sat Apr 10 11:57:25 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 10 11:57:47 2004 Subject: [Edu-sig] a modest proposal. In-Reply-To: <004801c41f0b$5de35f60$6501a8c0@vaio> Message-ID: <0HVY00CN8PN1ZG@mta3.srv.hcvlny.cv.net> > -----Original Message----- > From: Jason Cunliffe [mailto:jason.cunliffe@verizon.net] > > We call it Placebo. > > aka 'English' I'm not following. Are you finding merit in the proposal? If so, tactical or substantive. If tactical, please revert to secure lines. It is self-defeating to discuss tactics this cynical in public. Art From jason.cunliffe at verizon.net Sat Apr 10 13:48:48 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sat Apr 10 13:54:03 2004 Subject: [Edu-sig] a modest proposal. References: <0HVY00CN8PN1ZG@mta3.srv.hcvlny.cv.net> Message-ID: <002501c41f24$1434b9e0$6501a8c0@vaio> > > aka 'English' > I'm not following. Are you finding merit in the proposal? > If so, tactical or substantive. > If tactical, please revert to secure lines. > It is self-defeating to discuss tactics this cynical in public. It's a beautiful day and I was just feeling silly/playful. Did not understand your cryptic proposal, but it somehow reminded me of topic I introduced several orbits ago -- about the scope, interest and value of using poetry/literature etc as tool to teach and explore programming. In this case today, I was flippantly struck that English [or for that matter most directly human-human languages] fits the spec: Case insensitivity. One based indexing. Its numerics look like you are using a calculator. Etc. Well perhaps not the Calculator Numerics type font, but that's an option ;-) Still feel there may be great value in using/including our regular language [English being a personal default] as a way to explore ideas of programming. As a way to help develop early base skills for computer programming. But also, inversely, as a way to inform our notions of "regular" language [such as English]. That speaking writing thinking English [substitute your preference here] is a form of programming. Certainly there are rules, adaptations, syntax, references,assumptions, context etc. I was brought up on lots of parsing lessons with little diagrams attached [UK c1960s] Had a love/hate relationship with these. To be honest I have no idea how it is done now in schools in various countries. I wonder if one could induce a deeper awareness about language in general to help kids understand at all levels what many of the principles are and give them wider skills [by immediate example] for approaching languages, communication. Implicit in that is human-human, human-computer, one-one, one-many etc. The assumed mission has been 'computational literacy'. My spin if you like is then 'literate computing' or 'communications literacy'. Focus being on the exchange of meaning and message. From what/whom to what/whom... What are the parallels, examples and assumptions we can draw on between our mother tongues and computer programming. Lost and Found in translation etc. Happy Passover.Easter.Spring to you all -- Jason From lac at strakt.com Sat Apr 10 15:21:55 2004 From: lac at strakt.com (Laura Creighton) Date: Sat Apr 10 15:22:06 2004 Subject: [Edu-sig] a modest proposal. In-Reply-To: Message from "Jason Cunliffe" of "Sat, 10 Apr 2004 13:48:48 EDT." <002501c41f24$1434b9e0$6501a8c0@vaio> References: <0HVY00CN8PN1ZG@mta3.srv.hcvlny.cv.net> <002501c41f24$1434b9e0$6501a8c0@vaio> Message-ID: <200404101921.i3AJLtsn002681@ratthing-b246.strakt.com> In a message of Sat, 10 Apr 2004 13:48:48 EDT, "Jason Cunliffe" writes: >> > aka 'English' >> I'm not following. Are you finding merit in the proposal? >> If so, tactical or substantive. >> If tactical, please revert to secure lines. >> It is self-defeating to discuss tactics this cynical in public. > >It's a beautiful day and I was just feeling silly/playful. Did not >understand your cryptic proposal, but it somehow reminded me of topic I >introduced several orbits ago -- about the scope, interest and value of >using poetry/literature etc as tool to teach and explore programming. > >In this case today, I was flippantly struck that English [or for that mat >ter >most directly human-human languages] fits the spec: > >Case insensitivity. >One based indexing. >Its numerics look like you are using a calculator. >Etc. > >Well perhaps not the Calculator Numerics type font, but that's an option >;-) > >Still feel there may be great value in using/including our regular langua >ge >[English being a personal default] as a way to explore ideas of programmi >ng. >As a way to help develop early base skills for computer programming. >But also, inversely, as a way to inform our notions of "regular" language >[such as English]. >That speaking writing thinking English [substitute your preference here] >is >a form of programming. Certainly there are rules, adaptations, syntax, >references,assumptions, context etc. > >I was brought up on lots of parsing lessons with little diagrams attached >[UK c1960s] Had a love/hate relationship with these. To be honest I have >no >idea how it is done now in schools in various countries. > >I wonder if one could induce a deeper awareness about language in general > to >help kids understand at all levels what many of the principles are and gi >ve >them wider skills [by immediate example] for approaching languages, >communication. Implicit in that is human-human, human-computer, one-one, >one-many etc. >The assumed mission has been 'computational literacy'. My spin if you lik >e >is then 'literate computing' or 'communications literacy'. > >Focus being on the exchange of meaning and message. From what/whom to >what/whom... >What are the parallels, examples and assumptions we can draw on between o >ur >mother tongues and computer programming. >Lost and Found in translation etc. > >Happy Passover.Easter.Spring to you all >-- Jason > > > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://mail.python.org/mailman/listinfo/edu-sig happy easter and passover. any of you lot done the meyers-briggs perslonality test? I am INTP, but also very, very, werd because I am at the 50% level at Introversion vs extroversion, also at the 'precieving vs judging' so if you score me as ENTJ, you ok. and most weirdly, i am scoringf off the scale as N not sensing From lac at strakt.com Sat Apr 10 15:56:31 2004 From: lac at strakt.com (Laura Creighton) Date: Sat Apr 10 15:56:43 2004 Subject: [Edu-sig] a modest proposal. In-Reply-To: Message from Laura Creighton of "Sat, 10 Apr 2004 21:21:55 +0200." <200404101921.i3AJLtsn002681@ratthing-b246.strakt.com> References: <0HVY00CN8PN1ZG@mta3.srv.hcvlny.cv.net> <002501c41f24$1434b9e0$6501a8c0@vaio> <200404101921.i3AJLtsn002681@ratthing-b246.strakt.com> Message-ID: <200404101956.i3AJuVdp002788@ratthing-b246.strakt.com> In a message of Sat, 10 Apr 2004 21:21:55 +0200, Laura Creighton writes: > >happy easter and passover. > >any of you lot done the meyers-briggs perslonality test? > >I am INTP, but also very, very, werd because I am at the 50% >level at Introversion vs extroversion, also at the 'precieving >vs judging' so if you score me as ENTJ, you ok. and most weirdly, >i am scoringf off the scale as N not sensing dear god i am embarassed. have your machine crash in the middle of a thing, and its sent. this seems so boasting to me, which is why it was a rough outside. but half a loaf is worse than none .... The cool thing about me meyers-brigg wise, though is that i am consistently in the 95% of the N, intuitive, not sensing. I am the intuitive person's intuitive person. It's difficult to score as scarily high as i do -- it basically means you are so lousy at sensing that you hard can survive beibng alive. Makes for happy mathematicians, though. :_) and uinlike most people who take personality tests, i basically desribe me as a happy person satisfied with being me. In other words, I am weird and i like it. But, yoy see, i know arthur, where this started. And I respect him, forever, for being good at what i can barely funtion at all. I suspect that arthur will max out on the 'sensing' end of the meyers briggs test, though i could be wrong. It is easy to be a better senser than me, just that i think that arthur is superlative at it. what is really cool is that arthur and i, despite widely differing personaity types and backgrounds, are in common agreement that 'python is beautiful' (for all its warts that we want to tweak) this is amazing when you think of it. But Beauty transcends. whuch is why i hoped to not post the last fragment, but if you got that, you get the rest. most embarassingly, but bravely yours, Laura From david at handysoftware.com Sat Apr 10 16:55:25 2004 From: david at handysoftware.com (David Handy) Date: Sat Apr 10 16:55:23 2004 Subject: [Edu-sig] a modest proposal. In-Reply-To: <200404101956.i3AJuVdp002788@ratthing-b246.strakt.com> Message-ID: On Sat, 10 Apr 2004, Laura Creighton wrote: > what is really cool is that arthur and i, despite widely differing > personaity types and backgrounds, are in common agreement > that > > 'python is beautiful' > > > (for all its warts that we want to tweak) > > this is amazing when you think of it. But Beauty transcends. What makes Python so cool is that its designers (Guido and company) actually care about not making it hard for beginners, even children, to learn and understand it. That level of caring for beginners is very, very rare among language designers or software designers in general. Funny thing, the more they use it the more the experts love Python too... Beauty transcends, simplicity rules. From jhrsn at pitt.edu Sat Apr 10 18:33:55 2004 From: jhrsn at pitt.edu (Jim Harrison) Date: Sat Apr 10 18:34:04 2004 Subject: [Edu-sig] a modest proposal. In-Reply-To: <0HVY00EYGLUX2E@mta4.srv.hcvlny.cv.net> Message-ID: on 4/10/04 10:35 AM, Arthur at ajsiegel@optonline.net wrote: > Case insensitivity. > One based indexing. > Its numerics look like you are using a calculator. > Etc. I think Hypertalk covered this pretty well, depending on how much stuff is in "Etc." Jim Harrison Univ. of Pittsburgh From ajsiegel at optonline.net Sat Apr 10 19:22:15 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 10 19:22:22 2004 Subject: [Edu-sig] a modest proposal. In-Reply-To: <200404101956.i3AJuVdp002788@ratthing-b246.strakt.com> Message-ID: <0HVZ00FLQA8TTW@mta8.srv.hcvlny.cv.net> > what is really cool is that arthur and i, despite widely differing > personaity types and backgrounds, are in common agreement > that > > 'python is beautiful' > Yeah, but liking Python just fine the way I found it has done little but get me in trouble. New tact. What the hell's with this white space business, anyway. ;) Art From ajsiegel at optonline.net Sat Apr 10 20:30:56 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 10 20:31:01 2004 Subject: [Edu-sig] a modest proposal. In-Reply-To: Message-ID: <0HVZ00BDBDEZ5Z@mta10.srv.hcvlny.cv.net> > > > Case insensitivity. > > One based indexing. > > Its numerics look like you are using a calculator. > > Etc. > > I think Hypertalk covered this pretty well, depending on how much stuff is > in "Etc." > Its good to know then that the perfect teaching language had already been invented - and Python can go on about its business of being imperfect. But you refer to it in the past tense? What was its fate. Art From jhrsn at pitt.edu Sat Apr 10 23:56:24 2004 From: jhrsn at pitt.edu (Jim Harrison) Date: Sat Apr 10 23:56:37 2004 Subject: [Edu-sig] a modest proposal. In-Reply-To: <0HVZ00BDBDEZ5Z@mta10.srv.hcvlny.cv.net> Message-ID: on 4/10/04 8:30 PM, Arthur at ajsiegel@optonline.net wrote: >>> Case insensitivity. >>> One based indexing. >>> Its numerics look like you are using a calculator. >>> Etc. >> >> I think Hypertalk covered this pretty well, depending on how much stuff is >> in "Etc." >> > > Its good to know then that the perfect teaching language had already been > invented - and Python can go on about its business of being imperfect. > > But you refer to it in the past tense? What was its fate. Hypertalk was the scripting language used in Apple's HyperCard, written by Bill Atkinson and initially released in 1987. HyperCard was last updated in 1998 and finally removed from Apple's catalog last month. It was an influential product, inspiring, among other things, the development of WikiWiki Webs. Kevin Altis has a comment in his weblog: http://altis.pycs.net/2004/03/23.html Jim Harrison Univ. of Pittsburgh From ajsiegel at optonline.net Sun Apr 11 11:39:46 2004 From: ajsiegel at optonline.net (Arthur) Date: Sun Apr 11 11:39:51 2004 Subject: [Edu-sig] a modest proposal. In-Reply-To: Message-ID: <0HW000948JILF3@mta1.srv.hcvlny.cv.net> > What makes Python so cool is that its designers (Guido and company) > actually care about not making it hard for beginners, even children, to > learn and understand it. That level of caring for beginners is very, very > rare among language designers or software designers in general. Here's a bit where a problem is, though, IMO. Almost by definition, the Python designers are among the people on the planet furthest from the experience of *being* beginners. Yet they are folks used to being experts - and respected as experts. Well, to cut short...problems ensue. Art From dajoy at openworldlearning.org Sun Apr 11 13:38:58 2004 From: dajoy at openworldlearning.org (Daniel Ajoy) Date: Sun Apr 11 13:39:58 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: Message-ID: <40793C62.11915.A598BE@localhost> On 11 Apr 2004 at 12:00, David Handy : > What makes Python so cool is that its designers (Guido and company) > actually care about not making it hard for beginners, even children, to > learn and understand it. That level of caring for beginners is very, very > rare among language designers or software designers in general. > Logo is another. Python: >>> qweqweqwe Traceback (most recent call last): File "", line 1, in ? NameError: name 'qweqweqwe' is not defined Logo: ? qweqweqwe I don't know how to qweqweqwe >Case insensitivity. make "UPPERCASE "whatever show :uppercase whatever >One based indexing. make "mylist [one two three] show item 1 :mylist one make "myarray {one two three} show item 2 :myarray two >Its numerics look like you are using a calculator. show 1+2*3 7 Daniel From ajsiegel at optonline.net Sun Apr 11 15:22:50 2004 From: ajsiegel at optonline.net (Arthur) Date: Sun Apr 11 15:23:37 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: <40793C62.11915.A598BE@localhost> Message-ID: <0HW000GJ8TTR5J@mta8.srv.hcvlny.cv.net> > On 11 Apr 2004 at 12:00, David Handy : > > > What makes Python so cool is that its designers (Guido and company) > > actually care about not making it hard for beginners, even children, to > > learn and understand it. That level of caring for beginners is very, > very > > rare among language designers or software designers in general. > > > > Logo is another. > I'm strongly for conceding this "space" to Logo. And of course could go on as to why... Art From jason.cunliffe at verizon.net Mon Apr 12 02:23:15 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Mon Apr 12 02:30:00 2004 Subject: [Edu-sig] superformula Message-ID: <001101c42056$a3a21040$6501a8c0@vaio> http://www.rendermouse.com/flash/superformula.html -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20040412/bbc98021/attachment.html From david at handysoftware.com Mon Apr 12 08:02:29 2004 From: david at handysoftware.com (David Handy) Date: Mon Apr 12 08:01:52 2004 Subject: [Edu-sig] superformula In-Reply-To: <001101c42056$a3a21040$6501a8c0@vaio> Message-ID: > > http://www.rendermouse.com/flash/superformula.html Reactions: My 1 1/2 year-old: Oooooh! My 4-year-old: (yelling) It's a star! My 7 & 10 year olds: Cool! I gotta make me a superformula Python sample... From david at handysoftware.com Mon Apr 12 09:06:08 2004 From: david at handysoftware.com (David Handy) Date: Mon Apr 12 09:05:26 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: <40793C62.11915.A598BE@localhost> Message-ID: On Sun, 11 Apr 2004, Daniel Ajoy wrote: > > Logo is another. > > Python: > > >>> qweqweqwe > Traceback (most recent call last): > File "", line 1, in ? > NameError: name 'qweqweqwe' is not defined > > > Logo: > > ? qweqweqwe > I don't know how to qweqweqwe > > >Case insensitivity. > > make "UPPERCASE "whatever > > show :uppercase > whatever > > >One based indexing. > > make "mylist [one two three] > > show item 1 :mylist > one > > make "myarray {one two three} > > show item 2 :myarray > two > > >Its numerics look like you are using a calculator. > > show 1+2*3 > 7 > > Daniel Yeah, Logo was designed for teaching. I'm still not motivated to use it for teaching my beginners. I think this syntax make "myarray {one two three} is more confusing for beginners than myarray = ['one', 'two', 'three'] I'm still willing to teach my beginners about case-sensitivity and zero-based indexing, since they get Python in return. I wish someone would do a controlled study of Logo and Python as first programming languages. It would be interesting to see which approach was more successful in helping people get started actually programming, as opposed to having a one-time experience and never touching it again. Logo has been around longer than Python and it's the most well-known programming language. It's had plenty of time to prove itself. But I've not yet met anyone who said "yeah, Logo was great, after learning it I went on to..." write a game, do a project on their own, or anything. In contrast, I think (and hope) the number of successful programmers who started with Python will grow. From dajoy at openworldlearning.org Mon Apr 12 09:56:46 2004 From: dajoy at openworldlearning.org (Daniel Ajoy) Date: Mon Apr 12 09:57:48 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: References: <40793C62.11915.A598BE@localhost> Message-ID: <407A59CE.27473.494E48@localhost> On 12 Apr 2004 at 9:06, David Handy wrote: > Yeah, Logo was designed for teaching. I'm still not motivated to use it > for teaching my beginners. > > I think this syntax > > make "myarray {one two three} > > is more confusing for beginners than > > myarray = ['one', 'two', 'three'] It could be, but won't they get confused when they learn about "==" vs "=". In Logo the difference is more explicit: how do you have to write this in Python: make "a 10 if :a = 10 [make "a 20] Besides: In Logo: ? show 2 = 3 false In Python: >>> 2 = 3 SyntaxError: can't assign to literal > I wish someone would do a controlled study of Logo and Python as first > programming languages. It would be interesting to see which approach was > more successful in helping people get started actually programming, as > opposed to having a one-time experience and never touching it again. I haven't learned Python yet because it seems something too big to learn now. I'm more comfortable with small languages: bash, awk, logo > Logo has been around longer than Python and it's the most well-known > programming language. It's had plenty of time to prove itself. But I've > not yet met anyone who said "yeah, Logo was great, after learning it I > went on to..." write a game, do a project on their own, or anything. Here are some: http://developers.slashdot.org/developers/02/09/19/0548211.shtml?tid=146 cheers, Daniel From missive at hotmail.com Mon Apr 12 14:20:36 2004 From: missive at hotmail.com (Lee Harr) Date: Mon Apr 12 14:20:41 2004 Subject: [Edu-sig] Re: easy for beginners, even children Message-ID: >>I think this syntax >> >> make "myarray {one two three} >> >>is more confusing for beginners than >> >> myarray = ['one', 'two', 'three'] > >It could be, but won't they get confused when >they learn about "==" vs "=". In Logo the >difference is more explicit: > >how do you have to write this in Python: > >make "a 10 >if :a = 10 [make "a 20] > For me, it's mostly a matter of "how you say it" How do you say this? make "a 10 if :a = 10 [make "a 20] ? I guess I would say ... make a 10 if a is equal to 10, then make a 20 I usually tell people a = 10 if a == 10: a = 20 is pronounced ... set a equal to 10 if a is equal to 10, then set a equal to 20 >In Logo: > > >? show 2 = 3 >false > I am not sure how I would say this. >In Python: > >>>>2 = 3 >SyntaxError: can't assign to literal I would say ... set 2 equal to 3. Doesn't make much sense, so that's an error. 2 == 3 False would be ... is 2 equal to 3? I think no programming language will be completely natural to someone who has never been taught how to read it ... or how to read another similar language. The first programming language I ever used was logo. Maybe if my apple][ had had logo I would still be using it today... who knows. _________________________________________________________________ Tired of spam? Get advanced junk mail protection with MSN 8. http://join.msn.com/?page=features/junkmail From com-nospam at ccraig.org Mon Apr 12 14:35:34 2004 From: com-nospam at ccraig.org (Christopher A. Craig) Date: Mon Apr 12 14:35:41 2004 Subject: [Edu-sig] Re: easy for beginners, even children References: <40793C62.11915.A598BE@localhost> <407A59CE.27473.494E48@localhost> Message-ID: "Daniel Ajoy" writes: > how do you have to write this in Python: > > make "a 10 > if :a = 10 [make "a 20] I admit, I don't know Logo, but I'd presume a = 10 if a == 10: a = 20 It might be slightly easier on newcomers if Python had used := or something for assignment rather than '=', but I don't think it's so huge a deal that users would be better off with another language. I'd, in fact, prefer the Python syntax to the above where variables must be prefixed with a weird character to denote whether we want the value or the location. > I haven't learned Python yet because it seems something too big to learn > now. I'm more comfortable with small languages: bash, awk, logo I would branch out were I you. Those three languages have something in common, they're all special purpose. While I'd prefer awk to anything else for some applications, it's not real useful in about 99.9% of situations, the same goes for bash. (I don't know logo, but based on what I've read, I wouldn't want to write a mail reader in it.) Interestingly, I also think all three of those have more syntax issues than Python. I'd highly recommend looking into http://www.ibiblio.org/obp/thinkCSpy/ if you haven't already. -- Christopher A. Craig "The world would be a better place if Larry Wall had been born in Iceland, or any other country where the native language actually has syntax." -- Peter da Silva (in alt.sysadmin.recovery) From david at handysoftware.com Mon Apr 12 15:05:48 2004 From: david at handysoftware.com (David Handy) Date: Mon Apr 12 15:05:24 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: Message-ID: On 12 Apr 2004, Christopher A. Craig wrote: > > I haven't learned Python yet because it seems something too big to learn > > now. I'm more comfortable with small languages: bash, awk, logo > > I would branch out were I you. Those three languages have something > in common, they're all special purpose. While I'd prefer awk to > anything else for some applications, it's not real useful in about > 99.9% of situations, the same goes for bash. (I don't know logo, but > based on what I've read, I wouldn't want to write a mail reader in > it.) It was valuable feedback that he said Python seems "something too big too learn now". I think that there is a core of essential Python features that are easy to learn and can be used to construct fun games and programs quickly. That core is what I focus on in the book I'm writing. I think that the core of Python is easier to learn than awk or bash, and at least as easy as logo. But that's *my* opinion, and my opinion is not important. It's the beginner's opinion that matters. Daniel, would you care to share with us what makes it seem like a big project to learn Python? I am interested from the standpoint of making my book better for beginners. Thanks in advance, David H. From dyoo at hkn.eecs.berkeley.edu Mon Apr 12 15:19:51 2004 From: dyoo at hkn.eecs.berkeley.edu (Danny Yoo) Date: Mon Apr 12 15:19:55 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: Message-ID: On 12 Apr 2004, Christopher A. Craig wrote: > > I haven't learned Python yet because it seems something too big to > > learn now. I'm more comfortable with small languages: bash, awk, logo > > I would branch out were I you. Those three languages have something in > common, they're all special purpose. While I'd prefer awk to anything > else for some applications, it's not real useful in about 99.9% of > situations, the same goes for bash. (I don't know logo, but based on > what I've read, I wouldn't want to write a mail reader in it.) > > Interestingly, I also think all three of those have more syntax issues > than Python. I'd highly recommend looking into > http://www.ibiblio.org/obp/thinkCSpy/ if you haven't already. Hi Daniel, Also, if you're already had some exposure with Logo, an alternative route to learning how to program may be through the Scheme route, since Logo is Lispish at a fundamental level. There are some good Scheme resources here: http://www.htdp.org/2003-09-26/Book/ http://www.teach-scheme.org/ So if you're still feeling that Python's syntax is a bit foreign or big, you may like to try Scheme to and see if it lets you leverage your experience with Logo. Good luck! From arkamir at softhome.net Tue Apr 13 01:24:25 2004 From: arkamir at softhome.net (arkamir@softhome.net) Date: Tue Apr 13 01:24:29 2004 Subject: [Edu-sig] C vs Java Message-ID: Hello, Ive been sitting in the sidelines of this mailing list for some timenow, and I know this has probably been asked but I was wondering whichone would be more adventagous to learn out of C and Java. I am afreshman in highschool, and am profecient in Python. I know there are awhole slew of other languages out there, but I am researching intobuilding a robot as a tool for learning a low level language, and thoseare the only languages supported. I've heard a lot about how C is deadand Java's open source compiler/libs lacking. Learning see C would begood for kernel hacking if i ever get into it, but I'm most likely goingto have to learn Java for my AP tests anyways. Thanks A Lot Conrad From marilyn at deliberate.com Tue Apr 13 03:09:20 2004 From: marilyn at deliberate.com (Marilyn Davis) Date: Tue Apr 13 03:09:24 2004 Subject: [Edu-sig] C vs Java In-Reply-To: Message-ID: Java is a high-level language, like Python, but more difficult for no good reason. I don't know why you'd want to learn it, unless someone is paying you. C/C++ will never die. Java, Python, Perl, and other high-level languages are written in C. C is worth learning if you need your programs to be especially fast and efficient at run-time. It's harder than Python though, because you have to keep track of memory yourself, function calls aren't flexible like they are in Python, there's some silliness to the syntax, you have to keep track of the types of your data, there are no built-in data structures, ... Python gives you a lot for free. But C is deeper into the machine, closer to the hardware, satisfying in its own way. Have fun and good luck! Marilyn Davis On Mon, 12 Apr 2004 arkamir@softhome.net wrote: > > Hello, > > Ive been sitting in the sidelines of this mailing list for some timenow, > and I know this has probably been asked but I was wondering whichone would > be more adventagous to learn out of C and Java. I am afreshman in > highschool, and am profecient in Python. I know there are awhole slew of > other languages out there, but I am researching intobuilding a robot as a > tool for learning a low level language, and thoseare the only languages > supported. I've heard a lot about how C is deadand Java's open source > compiler/libs lacking. Learning see C would begood for kernel hacking if i > ever get into it, but I'm most likely goingto have to learn Java for my AP > tests anyways. > > Thanks A Lot > > Conrad > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- From glingl at aon.at Tue Apr 13 04:10:52 2004 From: glingl at aon.at (Gregor Lingl) Date: Tue Apr 13 04:10:08 2004 Subject: [Edu-sig] Re: easy for beginners, even children Message-ID: <407BA08C.6080106@aon.at> Lee Harr schrieb: > > For me, it's mostly a matter of "how you say it" > > > How do you say this? > > make "a 10 > if :a = 10 [make "a 20] > ? > > > I guess I would say ... > make a 10 > if a is equal to 10, then make a 20 > I would say ... make a a name for 10 if the object named a equals 10, then make a a name for 20 So you see, that the literal a plays a (fundamentally?) different role depending on if it occurs on the left or the right side of = In my experience this *is* an important issue when teaching programming. To understand this difference *is* a difficulty when learning programming for many students. And it *is* stressed (and made clear) by the Logo-notation: "a versus :a (name versus value) [Aside: this allows things like the following: make "a 10 make :a 20 show :a 10 show :10 20 And if you ask: "What the hell, then, is a ?" You may define it: to a output 30 end show a 30 ] So finally we have "a versus :a versus a (name versus value versus function-(definition/call)) imho logo is well suited to teach computer science concepts as is shown, for instance, by Brian Harveys Computer Science Logo style. This is, because Logo has its roots in Lisp. (So Harvey also wrote a well known Scheme book for beginners.) Nevertheless history has proven, that Logo remains (remained ?) a teaching - only - language. Having taught Logo for years I now prefer to use Python as a teaching language and - indeed - I think that it easier to understand and to use (by the students) as soon as problems (tasks) to be solved get a bit more advanced. (I think this is because then the Logo syntax becomes a bit clumsy and using lists as the *only* compound data type is a severe restriction ... (compared to using dictionaries and user-defined objects) Shortly: Python is definitely much more "very high level" ... Regards, Gregor > From yliow at ccis.edu Tue Apr 13 09:36:48 2004 From: yliow at ccis.edu (Liow, Dr. Yihsiang) Date: Tue Apr 13 09:37:06 2004 Subject: [Edu-sig] C vs Java Message-ID: <67B838580AAD104BBFFB92FE177AFACC1EA39E@exchange.ccis.edu> Learn C. The person(s) who told you C is dead is simply out of touch with reality. C is *not* dead and probably will never die. Go to sourceforge.net and take a look at the projects in C/C++. Linux, Unix, Windows are written in C/C++. My guess is that the people you're talking to is referring about *jobs prospects*. There are *apparently* more jobs for Java programmers compared to C/C++ simply because Java is used a lot in business applications. (You can do a search on www.monsterboard.com for "Java" and "C/C++" and compare: C/C++: 1444 Java: more than 5000 But there are other factors to consider when you're looking for a language because of job prospects. For instance the *number* of C/C++ programmers. It's an issue of supply and demand. Some schools are not teaching C/C++ anymore. Which means C/C++ programming skill will be more valuable. Furthermore, I believe that Python is a much better language than Java when it comes to business applications (and in other areas). So who knows what will happen to Java in the next 5-10 years? You mentioned learning a low level language. Well, C would be the best. You might also want to look into game programming using C/C++. Game programming does get you into some low level stuff. Besides, it's a lot of fun. - Yihsiang -----Original Message----- From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On Behalf Of arkamir@softhome.net Sent: Tuesday, April 13, 2004 12:24 AM To: edu-sig@python.org Subject: [Edu-sig] C vs Java Hello, Ive been sitting in the sidelines of this mailing list for some timenow, and I know this has probably been asked but I was wondering whichone would be more adventagous to learn out of C and Java. I am afreshman in highschool, and am profecient in Python. I know there are awhole slew of other languages out there, but I am researching intobuilding a robot as a tool for learning a low level language, and thoseare the only languages supported. I've heard a lot about how C is deadand Java's open source compiler/libs lacking. Learning see C would begood for kernel hacking if i ever get into it, but I'm most likely goingto have to learn Java for my AP tests anyways. Thanks A Lot Conrad _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig From mmclay at comcast.net Tue Apr 13 09:58:23 2004 From: mmclay at comcast.net (Michael McLay) Date: Tue Apr 13 09:57:36 2004 Subject: [Edu-sig] C vs Java In-Reply-To: <67B838580AAD104BBFFB92FE177AFACC1EA39E@exchange.ccis.edu> References: <67B838580AAD104BBFFB92FE177AFACC1EA39E@exchange.ccis.edu> Message-ID: <200404130958.23632.mmclay@comcast.net> On Tuesday 13 April 2004 9:36 am, Liow, Dr. Yihsiang wrote: > Learn C. The person(s) who told you C is dead is simply out of touch > with reality. C is *not* dead and probably will never die. Go to > sourceforge.net and take a look at the projects in C/C++. Linux, Unix, > Windows are written in C/C++. > > My guess is that the people you're talking to is referring about *jobs > prospects*. There are *apparently* more jobs for Java programmers > compared to C/C++ simply because Java is used a lot in business > applications. (You can do a search on www.monsterboard.com for "Java" > and "C/C++" and compare: > C/C++: 1444 > Java: more than 5000 > But there are other factors to consider when you're looking for a > language because of job prospects. For instance the *number* of C/C++ > programmers. It's an issue of supply and demand. Some schools are not > teaching C/C++ anymore. Which means C/C++ programming skill will be more > valuable. Python programming experience is rapidly growing in demand. This is reflected in higher salaries for Python programmers than Java programmers. > Furthermore, I believe that Python is a much better language > than Java when it comes to business applications (and in other areas). > So who knows what will happen to Java in the next 5-10 years? Philip Greenspun summarized Java very well, "I had an epiphany: Java is the SUV of programming tools." http://blogs.law.harvard.edu/philg/2003/09/20 I think Python is approaching a tipping point. There is no sensible reason to work 2X longer to write an application in Java. It is simply a lack of knowledge. > You mentioned learning a low level language. Well, C would be the best. > You might also want to look into game programming using C/C++. Game > programming does get you into some low level stuff. Besides, it's a lot > of fun. > > - Yihsiang > > -----Original Message----- > From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On > Behalf Of arkamir@softhome.net > Sent: Tuesday, April 13, 2004 12:24 AM > To: edu-sig@python.org > Subject: [Edu-sig] C vs Java > > > Hello, > > Ive been sitting in the sidelines of this mailing list for some > timenow, > and I know this has probably been asked but I was wondering whichone > would > be more adventagous to learn out of C and Java. I am afreshman in > highschool, and am profecient in Python. You can write Python programs in C by using the Python C API. You can study some of the Python modules that are written in C to see how this is done. C will continue to be used for machine level programming tasks. But programmers will become better about isolating this low level code inside of Python modules. > I know there are awhole slew of > > other languages out there, but I am researching intobuilding a robot as > a > tool for learning a low level language, and thoseare the only languages > supported. I've heard a lot about how C is deadand Java's open source > compiler/libs lacking. Learning see C would begood for kernel hacking if > i > ever get into it, but I'm most likely goingto have to learn Java for my > AP > tests anyways. > > Thanks A Lot > > Conrad > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig From hancock at anansispaceworks.com Tue Apr 13 10:22:12 2004 From: hancock at anansispaceworks.com (Terry Hancock) Date: Tue Apr 13 10:07:53 2004 Subject: [Edu-sig] C vs Java In-Reply-To: References: Message-ID: <200404130922.12023.hancock@anansispaceworks.com> On Tuesday 13 April 2004 12:24 am, arkamir@softhome.net wrote: > Ive been sitting in the sidelines of this mailing list for some timenow, > and I know this has probably been asked but I was wondering whichone would > be more adventagous to learn out of C and Java. I am afreshman in > highschool, and am profecient in Python. I know there are awhole slew of > other languages out there, but I am researching intobuilding a robot as a > tool for learning a low level language, and thoseare the only languages > supported. I've heard a lot about how C is deadand Java's open source > compiler/libs lacking. Learning see C would begood for kernel hacking if i > ever get into it, but I'm most likely goingto have to learn Java for my AP > tests anyways. I would definitely not call C "dead" -- especially for embedded programming, like you describe. I would expect Java to be a bit of a problem in robotics, though I'm not sure what can be done with JIT compilers nowadays. If I were going to do robotics programming, I would probably write C low-level driver libraries and do the high-level programming in Python. -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From david at handysoftware.com Tue Apr 13 10:25:22 2004 From: david at handysoftware.com (David Handy) Date: Tue Apr 13 10:24:25 2004 Subject: [Edu-sig] C vs Java In-Reply-To: <200404130958.23632.mmclay@comcast.net> Message-ID: > > I've heard a lot about how C is deadand Java's open source > > compiler/libs lacking. Learning see C would begood for kernel hacking if > > i > > ever get into it, but I'm most likely goingto have to learn Java for my > > AP > > tests anyways. > > > > Thanks A Lot > > > > Conrad C++ was designed for C programmers, and is heavily based on C. Java was designed for C++ programmers, and is heavily based on C++. C is the mother language of them all. You can't go wrong by learning C first. In fact, I haven't yet found a beginning Java book that didn't implicitly assume or explicitly state that you had to learn C/C++ first. When/if you finally have to learn Java for the AP tests, the time you spent learning C will benefit you. From david at handysoftware.com Tue Apr 13 10:29:55 2004 From: david at handysoftware.com (David Handy) Date: Tue Apr 13 10:28:50 2004 Subject: [Edu-sig] C vs Java In-Reply-To: Message-ID: On Tue, 13 Apr 2004, David Handy wrote: > > > I've heard a lot about how C is deadand Java's open source > > > compiler/libs lacking. Learning see C would begood for kernel hacking if > > > i > > > ever get into it, but I'm most likely goingto have to learn Java for my > > > AP > > > tests anyways. > > > > > > Thanks A Lot > > > > > > Conrad > > C++ was designed for C programmers, and is heavily based on C. Java was > designed for C++ programmers, and is heavily based on C++. C is the mother > language of them all. > > You can't go wrong by learning C first. Correction: You can't go wrong by learning C, given that you already know Python! >In fact, I haven't yet found a > beginning Java book that didn't implicitly assume or explicitly state that > you had to learn C/C++ first. When/if you finally have to learn Java for > the AP tests, the time you spent learning C will benefit you. > > From ajsiegel at optonline.net Tue Apr 13 10:58:01 2004 From: ajsiegel at optonline.net (Arthur) Date: Tue Apr 13 10:59:11 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: Message-ID: <0HW400JDT6WDI1@mta8.srv.hcvlny.cv.net> > > I wish someone would do a controlled study of Logo and Python as first > programming languages. It would be interesting to see which approach was > more successful in helping people get started actually programming, as > opposed to having a one-time experience and never touching it again. To me, it has mostly to do with who those people are, and what motivates them, and certainly much will depend on the precise language used in defining the parameters of the study and its results. So you tell me the results you want, and I'll give you the study which at least seems on its surface to support those results, in compliance with what seems to be currently acceptable standards on such matters. This issue being my obsessive theme of late. Luckily the Python designers are human beings designing for other human beings. And they can approach and think and feel issues of ergonomics personally and directly. And not rely on studies. Being a beginner is only a stage. I don't think Python is, was or should be designed for beginners. But nonetheless could serve them well. Because (though everyone on python-list might not agree ;) - even beginners are human beings. Art From ajsiegel at optonline.net Tue Apr 13 11:13:10 2004 From: ajsiegel at optonline.net (Arthur) Date: Tue Apr 13 11:13:24 2004 Subject: [Edu-sig] C vs Java In-Reply-To: Message-ID: <0HW400DIT7L7ZM@mta3.srv.hcvlny.cv.net> > You can't go wrong by learning C first. In fact, I haven't yet found a > beginning Java book that didn't implicitly assume or explicitly state that > you had to learn C/C++ first. When/if you finally have to learn Java for > the AP tests, the time you spent learning C will benefit you. I think the original poster, as someone proficient in Python, is already in very good stead when approaching Java. Fact is, it should be cake to him. That was my experience - that Python is in fact effective as background for Java. (And maybe we will live to see people stating this in reverse). C will probably be more of a challenge. Precisely why the focus on C at this stage might make sense. Art From holbert.13 at osu.edu Tue Apr 13 11:23:56 2004 From: holbert.13 at osu.edu (Rick Holbert) Date: Tue Apr 13 11:24:06 2004 Subject: [Edu-sig] C vs Java In-Reply-To: <0HW400DIT7L7ZM@mta3.srv.hcvlny.cv.net> References: <0HW400DIT7L7ZM@mta3.srv.hcvlny.cv.net> Message-ID: <200404131123.56142.holbert.13@osu.edu> On Tuesday 13 April 2004 11:13, Arthur wrote: > > You can't go wrong by learning C first. In fact, I haven't yet found a > > beginning Java book that didn't implicitly assume or explicitly state > > that you had to learn C/C++ first. When/if you finally have to learn Java > > for the AP tests, the time you spent learning C will benefit you. > > I think the original poster, as someone proficient in Python, is already in > very good stead when approaching Java. Fact is, it should be cake to him. > That was my experience - that Python is in fact effective as background for > Java. (And maybe we will live to see people stating this in reverse). I agree, I learned Python before I learned Java and found that knowing Python helped me to better understand how to do things in Java. Also, don't overlook Jython. Jython allows you to write programs in Python that can be compiled into Java byte code. Jython might allow you to program your robot in Python... Rick From hancock at anansispaceworks.com Tue Apr 13 11:45:17 2004 From: hancock at anansispaceworks.com (Terry Hancock) Date: Tue Apr 13 11:30:58 2004 Subject: [Edu-sig] C vs Java In-Reply-To: <0HW400DIT7L7ZM@mta3.srv.hcvlny.cv.net> References: <0HW400DIT7L7ZM@mta3.srv.hcvlny.cv.net> Message-ID: <200404131045.17714.hancock@anansispaceworks.com> On Tuesday 13 April 2004 10:13 am, Arthur wrote: > I think the original poster, as someone proficient in Python, is already in > very good stead when approaching Java. Fact is, it should be cake to him. > That was my experience - that Python is in fact effective as background for > Java. (And maybe we will live to see people stating this in reverse). > > C will probably be more of a challenge. Precisely why the focus on C at > this stage might make sense. Well, that and the mention of robotics (embedded) programming. That's where C's status as "portable assembly language" starts to be valuable. You just can't really beat C when it comes to pushing individual bits and bytes around. Not to mention extremely small executable size and highly optimizable code. It's just an incredible level of control that you don't get in a high level language like Python (or Java). It's a very sharp instrument. Easy to cut your throat with, though. ;-) Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From urnerk at qwest.net Tue Apr 13 12:27:54 2004 From: urnerk at qwest.net (Kirby Urner) Date: Tue Apr 13 12:27:57 2004 Subject: [Edu-sig] C vs Java In-Reply-To: Message-ID: Hi Conrad -- Yes, I'd recommend C/C++ and Swig, so you can extend Python and participate in the development of such things as wxPython etc. I might focus on C++ while learning enough C to support your understanding of C++. While hard core kernel development is C, a lot of the interesting user space stuff is C++. Given you already understand about objects, constructors, subclassing and the like, it makes as much sense to work your way down to C through C++. I really like Bruce Eckles 'Thinking in C++', which is freely downloadable. His 'Thinking in Java' is good too. And it helps that he's a major Python fan (more proof that he's sane with good aesthetic sensibilities). Also, it doesn't have to be either/or -- you can start reading ahead in Bruce's Java book, just to get the flavor. When you get bored with one language, play with the other. Have some interesting project going in both. Kirby > -----Original Message----- > From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On > Behalf Of arkamir@softhome.net > Sent: Monday, April 12, 2004 10:24 PM > To: edu-sig@python.org > Subject: [Edu-sig] C vs Java > > > Hello, > > Ive been sitting in the sidelines of this mailing list for some timenow, > and I know this has probably been asked but I was wondering whichone would > be more adventagous to learn out of C and Java. I am afreshman in > highschool, and am profecient in Python. I know there are awhole slew of > other languages out there, but I am researching intobuilding a robot as a > tool for learning a low level language, and thoseare the only languages > supported. I've heard a lot about how C is deadand Java's open source > compiler/libs lacking. Learning see C would begood for kernel hacking if i > ever get into it, but I'm most likely goingto have to learn Java for my AP > tests anyways. > > Thanks A Lot > > Conrad > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig From dajoy at openworldlearning.org Tue Apr 13 12:44:00 2004 From: dajoy at openworldlearning.org (Daniel Ajoy) Date: Tue Apr 13 12:46:05 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: References: Message-ID: <407BD280.30626.D6F6D9@localhost> Lee Harr wrote: > >In Python: > > > >>>>2 = 3 > >SyntaxError: can't assign to literal > > I would say ... > set 2 equal to 3. > > Doesn't make much sense, so that's an error. It makes sense if the student wanted the computer to answer if 2 is equal to 3. > 2 == 3 > False > > would be ... > is 2 equal to 3? But I don't get a "False". I get: >>> 2 == 3 0 Anyway. I'm not saying Python is a bag language because of these tiny difficulties. Just that they are there. Logo has many others, tiny and big. On 12 Apr 2004 at 12:19, Danny Yoo wrote: > I'd highly recommend looking into > http://www.ibiblio.org/obp/thinkCSpy/ if you haven't already. Interesting: http://ibiblio.org/obp/thinkCS/logo.php ;) Christopher A. Craig wrote: > I would branch out were I you. Those three languages have > something in common, they're all special purpose. While > I'd prefer awk to anything else for some applications, it's > not real useful in about 99.9% of situations, Strange, I use awk or logo for about 99% of my situations. For the rest I use command line executables and piping. > Also, if you're already had some exposure with Logo, an > alternative route to learning how to program may be through > the Scheme route, since Logo is Lispish at a fundamental > level. I know how to program... in Logo (and awk, and bash) for the kind of things I do. I don't need much more. There are programs big and small, I guess I do the small ones, the quick hacks, the ones that don't need databases (And if once I needed to extract data from and Access database I used a command-line executable that connected through ODCB to the DB and returned a txt files of the query results) I do my graphics with Logo or with some command-line executable. David H. wrote: > It was valuable feedback that he said Python seems "something too big too > learn now". > > I think that there is a core of essential Python features that are easy to > learn and can be used to construct fun games and programs quickly. That > core is what I focus on in the book I'm writing. I think that the core of > Python is easier to learn than awk or bash, and at least as easy as logo. > But that's *my* opinion, and my opinion is not important. It's the > beginner's opinion that matters. > > Daniel, would you care to share with us what makes it seem like a big > project to learn Python? I am interested from the standpoint of making my > book better for beginners. > > Thanks in advance, > David H. I think it has more to do with my personality: I like to travel light and carry with me only small but powerful tools, not big and do-it-all tools. These are a couple of things that make me think Python might be something too big for me: * How many IDEs does it have? * lambda expressions vs list comprehensions vs regular loops * There is a new thing now, I don't remember the name (continuations?) * Does it have a distinction between symbols and strings? * How big is the installer now (10MB?) * the lib directory has 318 files Gregor Lingl wrote: > Having taught Logo for years I now prefer to use Python as a > teaching language and - indeed - I think that it easier to > understand and to use (by the students) as soon as problems (tasks) > to be solved get a bit more advanced. I do think Python has a nicer syntax than Logo. What kind of more advanced tasks? > (I think this is because then > the Logo syntax becomes a bit clumsy and using lists as > the *only* compound data type is a severe restriction ... (compared > to using dictionaries and user-defined objects) > Shortly: Python is definitely much more "very high level" ... Brian's books use UCBLogo, and UCBLogo has arrays and "global and named" dictionaries, also known in Logo as property lists. But I agree that Python has more useful compound data types. Daniel From david at handysoftware.com Tue Apr 13 13:45:38 2004 From: david at handysoftware.com (David Handy) Date: Tue Apr 13 13:44:33 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: <407BD280.30626.D6F6D9@localhost> Message-ID: On Tue, 13 Apr 2004, Daniel Ajoy wrote: > David H. wrote: > > > It was valuable feedback that he said Python seems "something too big too > > learn now". > > > > I think that there is a core of essential Python features that are easy to > > learn and can be used to construct fun games and programs quickly. That > > core is what I focus on in the book I'm writing. I think that the core of > > Python is easier to learn than awk or bash, and at least as easy as logo. > > But that's *my* opinion, and my opinion is not important. It's the > > beginner's opinion that matters. > > > > Daniel, would you care to share with us what makes it seem like a big > > project to learn Python? I am interested from the standpoint of making my > > book better for beginners. > > > > Thanks in advance, > > David H. > > I think it has more to do with my personality: I like to travel light and > carry with me only small but powerful tools, not big and do-it-all tools. > > These are a couple of things that make me think Python might be something > too big for me: > > * How many IDEs does it have? > > * lambda expressions vs list comprehensions vs regular loops > > * There is a new thing now, I don't remember the name (continuations?) > > * Does it have a distinction between symbols and strings? > > * How big is the installer now (10MB?) > > * the lib directory has 318 files Thank you for your response. Other than the distinction between symbols and strings, I too consider the above points to be symptoms of "bigness". I try to make Python look smaller to the beginner by addressing some of those issues (not teaching non-essential features, using a subset of the standard library, supplying Python on a CD with the book so they don't have to download it, etc.) The new thing you are referring to is probably generators. They're cool, but not on the beginner's must-learn-first list. It's good to get some "outside" perspective, although you refer to enough Python to make me think you've at least played with it some. From urnerk at qwest.net Tue Apr 13 13:51:45 2004 From: urnerk at qwest.net (Kirby Urner) Date: Tue Apr 13 13:51:47 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: <407BD280.30626.D6F6D9@localhost> Message-ID: > But I don't get a "False". I get: > > >>> 2 == 3 > 0 > Slightly newer version of Python (2.3.3): >>> 2==3 False There's no need to fall into an either/or trap. Logo is a fun language and you can get pretty far with it pretty quickly. It shares with Python the all important feature (from a pedagogical point of view) of an interactive shell or command line, vs. a compile link cycle. Scheme has this interactivity as well (and APL/J, and SmallTalk, and...). Good free Lisps are harder to find, as I recall. Daniel has done some amazing things with Logo to make it more functional (in the sense of functional programming) and at least one of my Python algorithms is a direct adaptation of something he sent me in Logo (a recursive permutation generator, which I use in an inefficient matrix determinant method). My attitude is: aim for proficiency in a relatively small number of languages (maybe only one or two), but especially in the open source world, it's pretty painless to download and play with many others -- just for the fun of it (and Logo *is* fun). School is when kids have that time, so ideally a strong curriculum would include many samples. ToonTalk anyone? Kirby From david at handysoftware.com Tue Apr 13 14:13:48 2004 From: david at handysoftware.com (David Handy) Date: Tue Apr 13 14:12:39 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: <407BD280.30626.D6F6D9@localhost> Message-ID: > But I don't get a "False". I get: > > >>> 2 == 3 > 0 In Python 2.3 it will now return False, for which I am grateful. From arkamir at softhome.net Tue Apr 13 15:31:19 2004 From: arkamir at softhome.net (arkamir@softhome.net) Date: Tue Apr 13 15:31:25 2004 Subject: [Edu-sig] C vs Java Message-ID: Thanks for the overwhelming amount of feedback i got!! It really helps Conrad From urnerk at qwest.net Tue Apr 13 16:02:07 2004 From: urnerk at qwest.net (Kirby Urner) Date: Tue Apr 13 16:02:12 2004 Subject: [Edu-sig] C vs Java In-Reply-To: Message-ID: > I really like Bruce Eckles 'Thinking in C++', which is freely > downloadable. My mistake: Bruce Eckels. http://mindview.net/Books You probably knew exactly whom I meant already, but I don't like to misspell names (happened to me recently, in a course catalog -- Kirby Unger -- and I was bummed). Kirby From nico at tekNico.net Tue Apr 13 17:13:43 2004 From: nico at tekNico.net (Nicola Larosa) Date: Tue Apr 13 17:13:23 2004 Subject: [Edu-sig] C vs Java In-Reply-To: References: Message-ID: <407C5807.4050700@tekNico.net> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 >> I really like Bruce Eckles 'Thinking in C++', which is freely >> downloadable. > My mistake: Bruce Eckels. > http://mindview.net/Books > You probably knew exactly whom I meant already, but I don't like to misspell > names Sorry for you, but there's still one 's' too many. :^) - -- Nicola Larosa - nico@tekNico.net "Later that night I got to ask Ruby's creator, Mats, whether Ruby was more like Python or more like Perl, while Larry Wall was standing next to us. Mats responded that it was more like Perl, adding that Larry was his hero." -- Guido Van Rossum, Python language creator, January 2004 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (GNU/Linux) iD8DBQFAfFgGXv0hgDImBm4RAgaVAKCNqQXJJKLkyDLM8XnsUBZSTmNtXQCdEbeG 0MJ8W0uIgxrCYx6yJ4DL4Jc= =2lRC -----END PGP SIGNATURE----- From missive at hotmail.com Tue Apr 13 17:16:22 2004 From: missive at hotmail.com (Lee Harr) Date: Tue Apr 13 17:16:34 2004 Subject: [Edu-sig] Re: easy for beginners, even children Message-ID: >> >In Python: >> > >> >>>>2 = 3 >> >SyntaxError: can't assign to literal >> >>I would say ... >>set 2 equal to 3. >> >>Doesn't make much sense, so that's an error. > >It makes sense if the student wanted the computer >to answer if 2 is equal to 3. > But why would they say "set 2 equal to 3" if they want to know "is 2 equal to 3"? It is sort of like musical notation. These strange marks in the margin mean something specific, and it is pronounced "key of G flat". (maybe... my music is really rusty). Eventually a musician may stop "saying" that and just have a feeling for what it means, and the same with this programming notation. With beginners, I usually just tell them what it "says" and have them read it out loud. It makes much more sense that way. Or are you saying that the error message is too much jargon? It is pretty terse, so I can see that it is not very beginner friendly, but it is also very precise. That helps. Once you know what those words mean, of course. I don't know if it is "easy". Maybe for some people who have minds that work in this particular way. _________________________________________________________________ Free up your inbox with MSN Hotmail Extra Storage! Multiple plans available. http://join.msn.com/?pgmarket=en-us&page=hotmail/es2&ST=1/go/onm00200362ave/direct/01/ From glingl at aon.at Tue Apr 13 18:06:00 2004 From: glingl at aon.at (Gregor Lingl) Date: Tue Apr 13 18:09:12 2004 Subject: [Edu-sig] Re: easy for beginners, even children Message-ID: <407C6448.6090904@aon.at> >Gregor Lingl wrote: > > > >>Having taught Logo for years I now prefer to use Python as a >>teaching language and - indeed - I think that it easier to >>understand and to use (by the students) as soon as problems (tasks) >>to be solved get a bit more advanced. >> >> > >I do think Python has a nicer syntax than Logo. > >What kind of more advanced tasks? > > > Short answer: I mean tasks involving lists and recursion. Logo (in its original form) lacks a simple looping construct and (or because it) claims that recursive thinking is the natural way of handling the (naturally recursive) datatype list. While this is certainly true it forms a steep hurdle for the beginner trying to advance from funny turtle graphics programs to something different. Using a declarative style (in contrast to functional style) of programming and making heavy use of assignment with "make makes Logo code look really ugly. I think most people would agree that Logo code of moderate complex problems is hard to read (and understand). (Harder than lisp) One reason for this is imo that the reader must know the number of arguments of every function used in order to separate (mentally) consecutive function calls. I admit, that more recent Logo versions have means to organize code in a more readable way. Nevertheless Logo is far from "executable pseudo code". Would be interesting to explain in more detail, but unfortunately I haven't got more time at the moment Regards, Gregor From urnerk at qwest.net Tue Apr 13 20:31:56 2004 From: urnerk at qwest.net (Kirby Urner) Date: Tue Apr 13 20:31:58 2004 Subject: [Edu-sig] C vs Java In-Reply-To: <407C5807.4050700@tekNico.net> Message-ID: > > Sorry for you, but there's still one 's' too many. :^) > Yes, sorry for me. Expletive. Thanks. Kirby From dajoy at openworldlearning.org Wed Apr 14 18:54:37 2004 From: dajoy at openworldlearning.org (Daniel Ajoy) Date: Wed Apr 14 18:55:38 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: Message-ID: <407D7ADD.21911.A8CBB1@localhost> From: "Lee Harr" > > >> >In Python: > >> > > >> >>>>2 = 3 > >> >SyntaxError: can't assign to literal > >> > >>I would say ... > >>set 2 equal to 3. > >> > >>Doesn't make much sense, so that's an error. > > > >It makes sense if the student wanted the computer > >to answer if 2 is equal to 3. > > > > > But why would they say "set 2 equal to 3" if they want to > know "is 2 equal to 3"? Because 2 = 3 is what they would write on paper. But I agree that it does not take much brilliance to understand that = and == are different things, and when to use each one. Daniel From hancock at anansispaceworks.com Thu Apr 15 02:26:11 2004 From: hancock at anansispaceworks.com (Terry Hancock) Date: Thu Apr 15 02:11:48 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: <407D7ADD.21911.A8CBB1@localhost> References: <407D7ADD.21911.A8CBB1@localhost> Message-ID: <200404150126.11457.hancock@anansispaceworks.com> On Wednesday 14 April 2004 05:54 pm, Daniel Ajoy wrote: > > But why would they say "set 2 equal to 3" if they want to > > know "is 2 equal to 3"? > > Because 2 = 3 is what they would write on paper. > > But I agree that it does not take much brilliance to > understand that = and == are different things, and when > to use each one. Actually there's a very important lesson there. One thing that takes some appreciation is that programming (well, procedural programming) is *prescriptive*, not *descriptive*, which makes it different from, say algebra. I mean: x = x + 1 is an extremely common thing to do in programming (so common we have a shortcut x += 1 ). But that's obviously a false statement in algebra. Therefore it's really important to point out that we are doing two fundamentally different things when we are *assigning* a value and when we are *testing* a value. Even if the syntax let us confuse these two operations (as it could -- Python doesn't really need two different symbols for these operations since the assignment is illegal in tests), it's still a good thing to learn. Algorithms are fundamentally different from equations, and this is a good place for the student to learn something. A potential "Aha!" moment, in fact. -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From mmclay at comcast.net Thu Apr 15 08:50:52 2004 From: mmclay at comcast.net (Michael McLay) Date: Thu Apr 15 08:49:42 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: <200404150126.11457.hancock@anansispaceworks.com> References: <407D7ADD.21911.A8CBB1@localhost> <200404150126.11457.hancock@anansispaceworks.com> Message-ID: <200404150850.52403.mmclay@comcast.net> On Thursday 15 April 2004 2:26 am, Terry Hancock wrote: > On Wednesday 14 April 2004 05:54 pm, Daniel Ajoy wrote: > > > But why would they say "set 2 equal to 3" if they want > > to > > > > know "is 2 equal to 3"? > > > > Because 2 = 3 is what they would write on paper. > > > > But I agree that it does not take much brilliance to > > understand that = and == are different things, and when > > to use each one. > > Actually there's a very important lesson there. One thing > that takes some appreciation is that programming (well, > procedural programming) is *prescriptive*, not > *descriptive*, which makes it different from, say algebra. > > I mean: > > x = x + 1 > > is an extremely common thing to do in programming (so common > we have a shortcut > > x += 1 > > ). > > But that's obviously a false statement in algebra. > Therefore it's really important to point out that we are > doing two fundamentally different things when we are > *assigning* a value and when we are *testing* a value. If might be helpful to explain that algebra is also an arbitrary syntax. It just happens to have several hundred years of refinement and general acceptance by the mathematics community. (The design of computer languages are constrained by historical and pragmatic keyboard and display device limitations. These limitations were part of the motivation for the special encoding of expressions in programming languages.) It can also be pointed out that just as there are an infinite number of possible algebra languages possible, there is also an infinite number of possible computer languages possible. Python, like all computer languages, defines a concrete syntax that is agreed upon as as the rules for expressing how a program should operate. Python could have just as easily have spelled '==' with '.eq.'. That is the spelling for an equality symbol in other languages. If you wanted to make it more like COBOL the spelling of this operation might have been spelled '.IS_EQUAL_TO.', but that would be very painful to keyboard compared to '=='. The decision on the spelling of symbols is an aesthetic choice. This arbitrary assignment of a symbol is no different than the arbitrary spelling of the word 'esthetic'. Just as the word 'centre' is the same word as 'center'. The "correct" spelling is a customary choice of different countries. The spelling choices for Python were selected by the BDFL. One innovation of Python is there are fewer ways to express the same concept and there is generally one way that is considered more correct than any other in most circumstances. This make it much easier to read other peoples writting in Python. It's his language. If a student complains about the BDFL's choices for the Python syntax rules then I suggest a few hours of instruction on the rules of Perl to enlighten them on the alternative:-) > Even if the syntax let us confuse these two operations (as > it could -- Python doesn't really need two different > symbols for these operations since the assignment is > illegal in tests), it's still a good thing to learn. Reusing the same spelling for both assignment and equality would present problems in expressions. >>> a = 1 >>> b = 4 >>> a = b == 3 >>> a False >>> a = b = 3 >>> a 3 >>> b 3 >>> > Algorithms are fundamentally different from equations, and > this is a good place for the student to learn something. A > potential "Aha!" moment, in fact. As far as case sensitivity is concerned, there are times when the semantics of a sentence can be derived from the case used in spelling a word. For instance. The president of GM told the President, "What's good for GM is good for America". The President had no comment. It is very clear from this sentence that the President of the United States was the person who had no comment. Sometimes capitalization does matter in English. The first word in a sentence is capitalized. Proper nouns are capitalized. Python has defined a very restrictive rule on how names are treated in the language. This is another example of a simplification that make it easier to read software written by someone else. It eliminates the creation of arbitrary styles for writing names in programs. When a student asks why case matters, simply ask why it shouldn't matter. If they think it would be easier to use Python if they can be inconsistent in their use of case, then they have the answer. Python helps teach that consistency matters. I think the point to learn from these examples is that learning to program can be a good tool for teaching the importance of accuracy in the expression of ideas. If you make the mistake in an English paragraph the human parsing the sentence may make an arbitrary assumption of the meaning, or they may point out the ambiguity. The computer program will not make arbitrary decisions. I think it is great that programming is an opportunity to improve a student's writing skills. Decades ago, high school students heading for college were taught Latin. Teaching this dead language helped teach students more about how languages are structured. To a small degree computer programming is an opportunity to replace this lost art. From vincent.rioux at no-log.org Thu Apr 15 12:05:16 2004 From: vincent.rioux at no-log.org (Vincent Rioux) Date: Thu Apr 15 12:06:15 2004 Subject: [Edu-sig] pythonized institutions Message-ID: <6.0.1.1.2.20040415175631.01cd3eb0@pop.no-log.org> Dear all, I am looking for a list of institutions which officially uses Python or programs written in Python as pedagogical tools (not limited to computer science teaching). I might be soon in contact with some persons of the French National Education Administration and would like to inform them about the power of Python :-) Best regards and many thanks in advance for any help, vincent From jason.cunliffe at verizon.net Thu Apr 15 12:49:05 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Thu Apr 15 12:52:26 2004 Subject: [Edu-sig] pythonized institutions References: <6.0.1.1.2.20040415175631.01cd3eb0@pop.no-log.org> Message-ID: <003f01c42309$9141c160$6501a8c0@vaio> > I am looking for a list of institutions which officially uses Python or > programs written in Python as pedagogical tools (not limited to computer > science teaching). > I might be soon in contact with some persons of the French National > Education Administration and would like to inform them about the power of > Python :-) Vincent, you might find it helpful to contact Jerome Alet who I think works at Facult? de M?decine de Nice http://cortex.unice.fr/~jerome/ http://wwwmed.unice.fr/RepAccueil He is a Zope user/developer for educational institution. My guess is he might be familiar who else to contact in France, and maybe internationally. Zope is a good access point for researching institutional uses of Python. http://zope.org for example poke into the listed Zope users at http://www.zope.org/Resources/ZopePowered/ The Zope mailing list is incredibly responsive.so worth posting there also. http://www.zope.org/Resources/MailingLists And similarly Plone users, which is an excellent new website extension for Zope. Plone is popular for example in Korea, where Python is also gaining instutional recognition. http://plone.org/ Most of the Zope adopters tend to be people who already use and love Python. That's why I suggest it is a good institutional indicator. hth -- Jason From dajoy at openworldlearning.org Thu Apr 15 13:17:04 2004 From: dajoy at openworldlearning.org (Daniel Ajoy) Date: Thu Apr 15 13:18:46 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: Message-ID: <407E7D40.20908.C71E8E@localhost> On 15 Apr 2004 at 12:03, Michael McLay wrote: > Reusing the same spelling for both assignment and equality would present > problems in expressions. > >>> a = 1 > >>> b = 4 > >>> a = b == 3 > >>> a > False > >>> a = b = 3 > >>> a > 3 > >>> b > 3 > >>> If the creators of Python wanted it to have a notation more math inclined they should have chosen = for equality and some other notation for assignment. Logo does that. ? make "a "true ? make "b "false ? make "a :b = "true ? show :a false in Logo, the notation for equality is very different from the notation for assignment. So I would say Logo makes this difference more explicit than Python. Python accepts this without complaining: a = 3 a = a + 1 but it is not mathematically correct. A student talking with his math teacher could say: "But I saw it programming class". Daniel From urnerk at qwest.net Thu Apr 15 13:48:00 2004 From: urnerk at qwest.net (Kirby Urner) Date: Thu Apr 15 13:48:02 2004 Subject: [Edu-sig] Re: easy for beginners, even children In-Reply-To: <407E7D40.20908.C71E8E@localhost> Message-ID: > If the creators of Python wanted it to have a notation more math > inclined they should have chosen = for equality and some other > notation for assignment. Logo does that. Python borrows from C sometimes. Traditional math notation is not much of an inspiration for computer languages except for Mathematica, owing the historical gulf between print typography and ascii. Unicode potentially narrows this gap, and in Perl 6 you can overload the greek sigma character if you want to, or maybe make some Chinese ideogram mean addition. > > ? make "a "true > ? make "b "false > ? make "a :b = "true > ? show :a > false > > in Logo, the notation for equality is very different from the > notation for assignment. So I would say Logo makes this difference > more explicit than Python. I agree, although at least Python differentiates by using = vs. ==. In xBase, which I also use, we write 'IF a = b' for a conditional, and a = b for assignment. When it comes to equality, computer languages have other things to worry about too, such as whether r and s both point to the same object, vs. reference the same numeric value: >>> class A: pass >>> class B: pass >>> a = A() >>> a.value = 1 >>> b = B() >>> b.value = 1 >>> a.value == b.value True >>> a == b False This gets us into the realm of operator overloading i.e. the user has control over what __eq__ means, per a given class. If you want a "fuzzy float" which returns True for 'a == b' when a,b differ by less than 0.1%, it's within your power to modify the meaning of == accordingly. > Python accepts this without complaining: > a = 3 > a = a + 1 > > but it is not mathematically correct. A student talking with his > math teacher could say: "But I saw it programming class". > Right, because "mathematically correct" is another way of specifying a namespace, and computer languages define namespaces of their own. I think it's useful to have alternative, yet precise (in the sense of machine-readable) notations, that are NOT the same as what we learn in math class. Students should get a feel for their freedoms in this regard (look at Logo, Python, J, Ocaml, Haskell... then maybe choose one or two to really dig into, at least at first). Even Mathematica had to make some changes to traditional notation for internal use. Does m(a-b) mean m is a function applied to (a-b), or is this a product of two terms, m and (a-b)? Without context, ordinary notation is ambiguous in this respect, so Wolfram went to square brackets for function calls, even if there's a way to format the output in more traditional style. Kirby From jason.cunliffe at verizon.net Thu Apr 15 13:51:13 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Thu Apr 15 13:54:05 2004 Subject: [Edu-sig] The Pedagogical Patterns Project Message-ID: <000e01c42312$3ecca900$6501a8c0@vaio> What are Pedagogical Patterns Patterns are designed to capture best practice in a specific domain. Pedagogical patterns try to capture expert knowledge of the practice of teaching and learning. The intent is to capture the essence of the practice in a compact form that can be easily communicated to those who need the knowledge. Presenting this information in a coherent and accessible form can mean the difference between every new instructor needing to relearn what is known by senior faculty and easy transference of knowledge of teaching within the community. In essence a pattern solves a problem. This problem should be one that recurs in different contexts. In teaching we have many problems such as motivating students, choosing and sequencing materials, evaluating students, and the like. These problems do recur and in slightly different form each time. Each time a problem pops up there are considerations that must be taken into account that influence our choice of solution. These forces push us toward or away from any given solution to a problem. A pattern is supposed to present a problem and a solution. The problem together with the forces must apply to make that solution beneficial to the problem. http://www.pedagogicalpatterns.org/ From jason.cunliffe at verizon.net Thu Apr 15 13:58:19 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Thu Apr 15 14:01:15 2004 Subject: [Edu-sig] pythonized institutions References: <6.0.1.1.2.20040415175631.01cd3eb0@pop.no-log.org> Message-ID: <009301c42313$3c632da0$6501a8c0@vaio> Seul/Edu Educational Application Index http://richtech.ca/seul/ From jj2kk4 at yahoo.com Thu Apr 15 17:02:07 2004 From: jj2kk4 at yahoo.com (Joel Kahn) Date: Thu Apr 15 17:02:18 2004 Subject: [Edu-sig] Python & Art Education Message-ID: <20040415210207.92833.qmail@web60609.mail.yahoo.com> I am a computer geek married to a K-2 public school art teacher. I have already installed some graphics stuff on a Windows computer in my wife's classroom, including Vpython, and some early experiments have shown a bit of educational potential and have attracted interest from the students. (Attracting the interest of a roomful of six-year-olds is no small feat!) However, in order to go much further, we will need some outside funding. I think that this would be an excellent opportunity for some python-related firms and other organizations to do some benefical tax-deductible sponsorship and get some favorable publicity. I'm open to ideas and suggestions. . . . Joel Kahn __________________________________ Do you Yahoo!? Yahoo! Tax Center - File online by April 15th http://taxes.yahoo.com/filing.html From jason.cunliffe at verizon.net Thu Apr 15 19:03:14 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Thu Apr 15 19:06:20 2004 Subject: [Edu-sig] Python & Art Education References: <20040415210207.92833.qmail@web60609.mail.yahoo.com> Message-ID: <001201c4233d$d5db1ae0$6501a8c0@vaio> > I am a computer geek married to a K-2 public school > art teacher. I have already installed some graphics > stuff on a Windows computer in my wife's classroom, > including Vpython, and some early experiments have > shown a bit of educational potential and have > attracted interest from the students. (Attracting the > interest of a roomful of six-year-olds is no small > feat!) However, in order to go much further, we will > need some outside funding. I think that this would be > an excellent opportunity for some python-related firms > and other organizations to do some benefical > tax-deductible sponsorship and get some favorable > publicity. I'm open to ideas and suggestions. . . . hmm... I suggest you start by researching grants listed at The Foundation Center: http://fdncenter.org/ good luck -- Jason From sandysj at juno.com Fri Apr 16 12:45:51 2004 From: sandysj at juno.com (Jeff Sandys) Date: Fri Apr 16 12:46:26 2004 Subject: [Edu-sig] Re: Python & Art Education Message-ID: <40800DBF.417F6926@juno.com> I can't provide a source of grant money, fortunately Python is free. Here are 2 resources on using Python and multimedia: First is from Georgia Tech, the leaders of Squeak have packaged their multimedia tools with Jython for the required computer science class for non-majors. The system called JES appears to be a success. Read the articles at this site: You can also download JES from here: http://coweb.cc.gatech.edu/mediaComp-plan Second is Ransen Software had a Python application called RAPT that was an interesting set of graphics extensions to create some rather pretty abstract art. The package was not free, and he no longer offers it, but it might still be available for the asking. Here is the site for his other, newer, applications: http://www.ransen.com/Products.htm Also GollyGee Blocks is written partly in Python: http://www.gollygee.com/ Tell me more about what you plan to accomplish if you got funding. I have found that even Logo programming is a challenge for students in the K-2 age group. Good Luck on your project, Jeff Sandys From lang at ms.chinmin.edu.tw Sat Apr 17 03:17:39 2004 From: lang at ms.chinmin.edu.tw (Greg Matheson) Date: Sat Apr 17 02:47:11 2004 Subject: [Edu-sig] The Pedagogical Patterns Project In-Reply-To: <000e01c42312$3ecca900$6501a8c0@vaio>; from jason.cunliffe@verizon.net on Thu, Apr 15, 2004 at 13:51:13 -0400 References: <000e01c42312$3ecca900$6501a8c0@vaio> Message-ID: <20040417151739.B11107@ms.chinmin.edu.tw> On Thu, 15 Apr 2004, Jason Cunliffe wrote: > Patterns are designed to capture best practice in a specific domain. > Pedagogical patterns try to capture expert knowledge of the practice of > teaching and learning. This is an interesting development of the Design Patterns movement in programming I think. The ways in which programming is similar to and different than teaching are exciting, I think. We can argue about whether teaching is easy or difficult and the differing (or similar) emotional rewards of programming and teaching. I think the relationship of a program and execution of the program is different than the relationship of instruction and learning. Learners are a lot more autonomous. Knowledge of patterns is not the only problem. The rewards may be similar, but the investments are different. Teaching as programming done by monkeys. But I'm only an amateur programmer. -- Greg Matheson, Taiwan From d.holton at vanderbilt.edu Sat Apr 17 03:08:40 2004 From: d.holton at vanderbilt.edu (Doug Holton) Date: Sat Apr 17 03:08:49 2004 Subject: [Edu-sig] pythonized institutions In-Reply-To: References: Message-ID: <4080D7F8.9020308@vanderbilt.edu> > I am looking for a list of institutions which officially uses Python or > programs written in Python as pedagogical tools (not limited to computer > science teaching). http://www.python.org/cgi-bin/moinmoin/SchoolsUsingPython From d.holton at vanderbilt.edu Sat Apr 17 03:10:56 2004 From: d.holton at vanderbilt.edu (Doug Holton) Date: Sat Apr 17 03:10:54 2004 Subject: [Edu-sig] The Pedagogical Patterns Project In-Reply-To: References: Message-ID: <4080D880.70906@vanderbilt.edu> > What are Pedagogical Patterns > > > http://www.pedagogicalpatterns.org/ That's an interesting resource. There are some related educational patterns listed at the bottom of this page: http://developers.coedit.net/DesignPattern For example on designing educational software, classroom assessments, using content management systems, etc. From lac at strakt.com Sat Apr 17 08:41:54 2004 From: lac at strakt.com (Laura Creighton) Date: Sat Apr 17 08:42:04 2004 Subject: [Edu-sig] Python & Art Education In-Reply-To: Message from Joel Kahn of "Thu, 15 Apr 2004 14:02:07 PDT." <20040415210207.92833.qmail@web60609.mail.yahoo.com> References: <20040415210207.92833.qmail@web60609.mail.yahoo.com> Message-ID: <200404171241.i3HCfsXB020986@ratthing-b246.strakt.com> The Shuttleworth Foundation might have money for you. IN hotel, no webbrowser, sorry you got to google it yourself. Laura In a message of Thu, 15 Apr 2004 14:02:07 PDT, Joel Kahn writes: >I am a computer geek married to a K-2 public school >art teacher. I have already installed some graphics >stuff on a Windows computer in my wife's classroom, >including Vpython, and some early experiments have >shown a bit of educational potential and have >attracted interest from the students. (Attracting the >interest of a roomful of six-year-olds is no small >feat!) However, in order to go much further, we will >need some outside funding. I think that this would be >an excellent opportunity for some python-related firms >and other organizations to do some benefical >tax-deductible sponsorship and get some favorable >publicity. I'm open to ideas and suggestions. . . . > >Joel Kahn > > > > > >__________________________________ >Do you Yahoo!? >Yahoo! Tax Center - File online by April 15th >http://taxes.yahoo.com/filing.html > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://mail.python.org/mailman/listinfo/edu-sig > From jason.cunliffe at verizon.net Sat Apr 17 08:44:54 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sat Apr 17 08:49:34 2004 Subject: [Edu-sig] Question ? Message-ID: <001301c42479$c9267500$6501a8c0@vaio> What is the opposite of programming? -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20040417/2e6e2e6c/attachment.html From glingl at aon.at Sat Apr 17 09:32:34 2004 From: glingl at aon.at (Gregor Lingl) Date: Sat Apr 17 09:31:44 2004 Subject: [Edu-sig] Question ? In-Reply-To: <001301c42479$c9267500$6501a8c0@vaio> References: <001301c42479$c9267500$6501a8c0@vaio> Message-ID: <408131F2.5030803@aon.at> Jason Cunliffe schrieb: > What is the opposite of programming? > > > Did you think of *the one* opposite? I think there are many. The first on I thought of was: making love. Gregor From p.kent at mail.com Sat Apr 17 10:12:03 2004 From: p.kent at mail.com (Phillip Kent) Date: Sat Apr 17 10:13:00 2004 Subject: [Edu-sig] Question ? In-Reply-To: <001301c42479$c9267500$6501a8c0@vaio> References: <001301c42479$c9267500$6501a8c0@vaio> Message-ID: <6.0.3.0.2.20040417150626.01c5beb8@pop1.mail.com> An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20040417/6fc23316/attachment.html From marilyn at deliberate.com Sat Apr 17 10:19:51 2004 From: marilyn at deliberate.com (Marilyn Davis) Date: Sat Apr 17 10:19:54 2004 Subject: [Edu-sig] Question ? Message-ID: On Sat, 17 Apr 2004, Gregor Lingl wrote: > > > Jason Cunliffe schrieb: > > > What is the opposite of programming? > > > > > > > Did you think of *the one* opposite? > I think there are many. > The first on I thought of was: making love. > Gregor Oh no no no. It has to be something uninteresting, uncreative and unproductive, a spectator sport, like watching football on TV. What is it most like? Sewing. Careful about details. Marilyn > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- From ajsiegel at optonline.net Sat Apr 17 10:35:31 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 17 10:35:34 2004 Subject: [Edu-sig] Question ? In-Reply-To: Message-ID: <0HWB002PFKJJJM@mta1.srv.hcvlny.cv.net> > > Oh no no no. It has to be something uninteresting, uncreative and > unproductive, a spectator sport, like watching football on TV. I have tried to maintain a position that gender was not an issue of significance on these matters. I may have to relent ;) What is the opposite of programming? Cooking. In a recipe, a tsp. means a tsp., more or less. In programming, we would be talking about the number of grains of a specific substance. If the recipe calls for 1004 grains, and 1003 are added, the souffl? falls. Art > > What is it most like? Sewing. Careful about details. Can't see it. Too much give. Art From dajoy at openworldlearning.org Sat Apr 17 12:48:13 2004 From: dajoy at openworldlearning.org (Daniel Ajoy) Date: Sat Apr 17 12:49:06 2004 Subject: [Edu-sig] Question ? In-Reply-To: Message-ID: <4081197D.21341.A39CCE@localhost> On 17 Apr 2004 at 12:03, edu-sig-request@python.org wrote: > What is it most like? Sewing. Careful about details. > > Marilyn Talking in latin? Making laws, being a congressman? Daniel From dajoy at openworldlearning.org Sat Apr 17 12:56:11 2004 From: dajoy at openworldlearning.org (Daniel Ajoy) Date: Sat Apr 17 12:59:46 2004 Subject: [Edu-sig] Re: Question ? In-Reply-To: Message-ID: <40811B5B.32579.AAE928@localhost> On 17 Apr 2004 at 12:03, edu-sig-request@python.org wrote: > Oh no no no. It has to be something uninteresting, uncreative and > unproductive, a spectator sport, like watching football on TV. Modern education? http://www.terc.edu/investigations/relevant/html/computerssupport.html "It goes against the grain of modern education to teach students to program. What fun is there to making plans, acquiring discipline, organizing thoughts, devoting attention to detail, and learning to be self critical." - A. Perlis From marilyn at deliberate.com Sat Apr 17 13:08:48 2004 From: marilyn at deliberate.com (Marilyn Davis) Date: Sat Apr 17 13:08:51 2004 Subject: [Edu-sig] Re: Question ? In-Reply-To: <40811B5B.32579.AAE928@localhost> Message-ID: On Sat, 17 Apr 2004, Daniel Ajoy wrote: > On 17 Apr 2004 at 12:03, edu-sig-request@python.org wrote: > > > Oh no no no. It has to be something uninteresting, uncreative and > > unproductive, a spectator sport, like watching football on TV. > > Modern education? Yeh, good point. But maybe more opposite is war -- destructive, physical, violent. Do you have an answer for us, Jason? Marilyn > > http://www.terc.edu/investigations/relevant/html/computerssupport.html > > "It goes against the grain of modern education to teach > students to program. What fun is there to making plans, > acquiring discipline, organizing thoughts, devoting > attention to detail, and learning to be self critical." > > - A. Perlis > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- From hancock at anansispaceworks.com Sat Apr 17 14:43:23 2004 From: hancock at anansispaceworks.com (Terry Hancock) Date: Sat Apr 17 14:28:44 2004 Subject: [Edu-sig] Question ? In-Reply-To: <408131F2.5030803@aon.at> References: <001301c42479$c9267500$6501a8c0@vaio> <408131F2.5030803@aon.at> Message-ID: <200404171343.23723.hancock@anansispaceworks.com> On Saturday 17 April 2004 08:32 am, Gregor Lingl wrote: > Jason Cunliffe schrieb: > > What is the opposite of programming? > Did you think of *the one* opposite? > I think there are many. > The first on I thought of was: making love. > Gregor How is that an opposite? They're both creative acts involving the combination of vast code databases to create a new and unique creation. Not to mention much joy in the process. Right? ;-) Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From hancock at anansispaceworks.com Sat Apr 17 14:49:18 2004 From: hancock at anansispaceworks.com (Terry Hancock) Date: Sat Apr 17 14:34:39 2004 Subject: [Edu-sig] Question ? In-Reply-To: <0HWB002PFKJJJM@mta1.srv.hcvlny.cv.net> References: <0HWB002PFKJJJM@mta1.srv.hcvlny.cv.net> Message-ID: <200404171349.18661.hancock@anansispaceworks.com> On Saturday 17 April 2004 09:35 am, Arthur wrote: > What is the opposite of programming? > > Cooking. > > In a recipe, a tsp. means a tsp., more or less. > > In programming, we would be talking about the number of grains of a specific > substance. If the recipe calls for 1004 grains, and 1003 are added, the > souffl? falls. That's really a bit of a fallacy -- if we really had to program like that, a lot of stuff wouldn't get done. Modern programming techniques (Object-Oriented, Component-Architecture, etc) do a lot to make program writing more forgiving in ways that don't interfere with the final product. Even the python language can be thought of as making that kind of trade-off, as it includes a lot of error-checking and handling code that means that a somewhat imprecise file can still work. That's more like "programming in assembly language". This has made life a whole lot easier! :-D Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From ajsiegel at optonline.net Sat Apr 17 14:57:56 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 17 14:57:59 2004 Subject: [Edu-sig] Question ? In-Reply-To: <200404171349.18661.hancock@anansispaceworks.com> Message-ID: <0HWB003L3WOKSV@mta9.srv.hcvlny.cv.net> > On Saturday 17 April 2004 09:35 am, Arthur wrote: > > What is the opposite of programming? > > > > Cooking. > > > > In a recipe, a tsp. means a tsp., more or less. > > > > In programming, we would be talking about the number of grains of a > specific > > substance. If the recipe calls for 1004 grains, and 1003 are added, the > > souffl? falls. > > That's really a bit of a fallacy -- if we really had to > program like that, a lot of stuff wouldn't get done. Modern > programming techniques (Object-Oriented, Component-Architecture, etc) > do a lot to make program writing more forgiving in ways that > don't interfere with the final product. Even the python language > can be thought of as making that kind of trade-off, as it includes > a lot of error-checking and handling code that means that a somewhat > imprecise file can still work. Somewhat imprecise? Doing a ">" where a ">=" is called for could change the course of events dramatically, or even grind things to a halt. Though maybe I did overstate my case a bit ;) Talking a bit impressionistically. Not my fault. I was trained to talk that way as a liberal artist. It's their fault. Whoever they are. Art From denis.spir at free.fr Sat Apr 17 15:40:59 2004 From: denis.spir at free.fr (denis) Date: Sat Apr 17 15:41:52 2004 Subject: [Edu-sig] counts, indexes, slices References: <40811B5B.32579.AAE928@localhost> Message-ID: <000901c424b3$f9a802e0$ec25933e@spir> Hello, New to the list, I join you because I feel deeply concerned with readability or clearness in programming. I guess this may be a central question for you, now for me what's good for newbies, or for a teacher, is good for trained and experimented programmers coding, debugging and maintaining applications. For that reason, even if i'm an amateur, I try to find out how to design better programming forms (structure, syntax & lexicon). Well, actually I don't esteem and can hardly use obscure sets of rules ; and even when speaking of the best ones (like imo python or objective pascal), their worse aspects really ennoy me : I dream of mixing them -- together with other ideas of mine -- for the best. There seems to be here a large debate upon the subject(s) of index base and intervals in python & programming languages in general, which is also a point on which I had a lot of reflexions. I'll try an wide overview commenting what I read about all of that mess. This has unfortunately to be pretty long -- and does not pretend to objectivity at all. At the end of the message is a copy of the most argumented text I could find, opposed to my own opinion. -1- counting & pointing things The literature about index base (0 or 1) often shows confusion between ordinal and cardinal numbers. Natural numbers may be used for pointing an element in an ordered set (1st, 2nd... Nth), answering the question "which one ?", or for counting the number of elements ((0), 1, 2... N) in any set, be it ordered or not, then answering the question "how many ?". That confusion may partially comme from the fact that we still 'primitively' nearly only interpret data through the filter of the (cardinal) number. Another point is that computer science is massively and before all english speaking. Yet english does not easily distinguish ordinals (french "num?ro", german "Nummer") and cardinals (german "Zahl", french "nombre") : both are called numbers, like in 'the number of bits in a byte' and 'the bit number 2'. One may imagine that, in a parallel world, programming languages commonly include a data type called 'subscript', "position' 'Nummer' or 'numero', used to address one thing among others. -2- counting on 0, pointing from ? >From the counting point of view, we meet the mathematical issue "is zero a natural number ?", a rather endless question. Even if one may answer 'no', when taking into account historical, sociological and linguistic observations, the fact is we need it in programming : where people say "no apple in the basket", "nobody here" or "neither time nore money left", the time is still far when computer languages will be able to process such expressions ; they use the "0" token instead. [But the programs should take care of this, and I personly have few consideratrion for programmers to lazy or respectless of users to type simple instructions like (in pseudocode) : test nbrWords: case 0 : screen.print 'no word found matching the search criterium' case 1 : screen.print 'one word found matching the search criterium' case else : screen.print nbrWords, 'words found matching the search criterium' ...so that the end user has to read such gibberish '0 word(s) found matching the search criterium'] Anyway, all of this deals with the counting purpose of natural numbers. If there was a "counter" or "numbering" data type in a language, this type should obviously include zero. Yet, what about an "index" or "position" or "subscript" type ? -3- indexes and ranges When talking about pointing things in a set, another confusion may be made by not distinguishing indexing and slicing fonctions. The underlying models of these operations need not be analogue -- and as a fact they aren't in python. The offset model is generally used to explain C and python's 0-based indexes : | 0 | 1 | 2 | <-- offset indexes (from the sequence's start) | 1st | 2nd | 3rd | <-- elements : myList[1] is the second one On the other hand, python's syntax for ranges and slicing may either be defined like a 0-based half-open interval (that is, excluding the last index) or described with the distance metaphor : 0 1 2 3 <-- distance indexes (idem) | 1st | 2nd | 3rd | <-- elements : myList[1:2] returns a list holding only the second one [Well, the fact that offset and distance are similar notions used in this case to distinguish two opposite models adds a bit of confusion, no ?] As a consequence of this difference, an argument pro or contra one of this models cannot be transposed to the other one. For instance, an argument pro or contra 0-based indexes won't necessarily be appropriate by slicing. The point is then : "Should'nt both syntaxes be based on the same model ?". -4- naturalness and learning "It's natural (to me)" is often invoked as an argument. Well, of course, there may be much diversity between people and cultures. Nevertheless, one can doubt when reading "I have always naturally counted from 0, so python's indexing mode fits me". To my opinion, even a addict C-programmer asking for his way and beeing answered "the second street on your left" would *not* turn in the third one. Similarly, if this poor (in both meanings) programmer has to do a cleaning job in a hotel (to survive in our modern world), and is expected to clean up rooms number 3 to 5, he probably won't clean only the fourth and the fifth. For teaching / learning purpose, it may appear a both efficient and relevant criterium of naturalness to wonder how difficult and/or complicated the explanation model of a particuliar syntax form is. We just watched the models for 0-based indexing and half-open ranges. Now simply imagine you have to learn or teaching a language whose syntax reads (pseudo-code) : myList[3] returns the third element myList[2 to 4] returns second, third and fourth elements What would the explanations look like ? What explanations, if any ? Let's concede there may be people to whom this syntax is not self-evident, but the model needed to make it clear, even by self-learning, should not be so hard to build. Or what ? -5- tricky intervals and reality There are two common technical arguments for half-open intervals. My opinion is that they are no good things but rather tricks we should avoid using. [see the text at the end of this message] One presents as an advantage that the difference between both border indexes is the length of the slice : days[19:21] 's cardinal is actually 21-19=2 days. Very true. Now let's watch the real world and say I will attend a python training course next month, from the 19th to the 21th. Well, 21-19=2, but the course lasts three days, and if I need to stop working for it, my boss will substract 3*8 hours from my wages. A syntax like days[19 to 21], a closed interval including both borders and then meaning 3 days, meets the actual reality : it's better. The second advantage exposed by half-open intervals' advocates is, the glueing of two subslices with the same middle index builds the whole sequence : myList[0:p] + myList[p:n] == myList[0:n] Very true again. And again that syntax does not reflect reality, where this would lead to a double element p. For instance, imagine you're copying your friends' phone number on a beautiful new phone book, when the phone rings just as you're writing Jane's number ; you let three rings pass, the time for controlling the number, then answer. After the call, you get back to your task with Jason's number. In other words : myList[1 to p] + myList[p+1 to n] == myList[1:n] Another example : if you're moving, carrying cases into a truck, and have a bier pause. As a well organised person, you labeled the cases with flashy numbers referring to al list of content. Say that you stopped for a bier after case number p, you won't be able to resume with that same case, as it already is in the truck ! Again : myList[1 to p] + myList[p+1 to n] == myList[1:n] matches the reality In both cases (length of the sequence, glueing of subsequences) python's syntax transforms the reality it's expected to modelize, I would say that its superficial advantages hide a trick or a trap. While the actual situation is properly reflected by an alternative syntax like the above pseudocode, even if it seems slightly more complicated at first look, because of the '+1' operation. If ever people find difficult to understand that the length of sequence is not the difference of its border indexes, or that you must not repeat a medium index when glueing subsets (what we maybe all have experimented), then these problems are natural problems which should be obvious in the code. Now consider the case where we have to glue subsets repeating an intermediate element p : myList[0:p+1] + myList[p:n] vs myList[1 to p] + myList[p to n] -6- the analogy criterium There may be a quality criteria saying : "a good program (language) looks like what it does -- or modelizes." Thus a good language should lead the programmer to writing instructions which present, so to say, a analogy whith what they describe. This is relevant for the above examples, as for many programming structures. I personly miss 'until' clauses or branching test ('select case') in python for this reason. Nested if...elif...if or while 1...break structures seem artificial to me ; they bring up worse analogies to what they actually do. >From that point of view, I'd like more visual programming environments. Python's identation is for me a great step for this reason. Guido imposed that 'against winds and tides' (as frenchies say) : I find that courageous and right. denis *********************************** here follows a argumentation for half-open intervals and 0-based indexes, both about slicing (not simple indexing) to be read carefully source of original text : http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF *********************************** EWD831-0 Edsger W. Dijkstra Why numbering should start at zero To denote the subsequence of natural numbers 2, 3, ..., 12 without the pernicious three dots, four conventions are open to us a) 2 <= i < 13 b) 1 < i = 12 c) 2 <= i = 12 d) 1 < i < 13 Are there reasons to prefer one convention to the other? Yes, there are. The observation that conventions a) and b) have the advantage that the difference between the bounds as mentioned equals the length of the subsequence is valid. So is the observation that, as a consequence, in either convention two subsequences are adjacent means that the upper bound of the one equals the lower bound of the other. Valid as these observations are, they don't enable us to choose between a) and b); so let us start afresh. There is a smallest natural number. Exclusion of the lower bound --as in b) and d)-- forces for a subsequence starting at the smallest natural number the lower bound as mentioned into the realm of the unnatural numbers. That is ugly, so for the lower bound we prefer the = as in a) and c). Consider now the subsequences starting at the smallest natural number: inclusion of the upper bound would then force the latter to be unnatural by the time the sequence has shrunk to the empty one. That is ugly, so for the upper bound we prefer < as ---------------------------------------------------------------------------- ---- EWD831-1 in a) and d). We conclude that convention a) is to be preferred. Remark The programming language Mesa, developed at Xerox PARC, has special notations for intervals of integers in all four conventions. Extensive experience with Mesa has shown that the use of the other three conventions has been a constant source of clumsiness and mistakes, and on account of that experience Mesa programmers are now strongly advised not to use the latter three available features. I mention this experimental evidence --for what it is worth-- because some people feel uncomfortable with conclusions that have not been confirmed in practise. (End of Remark.) * * * When dealing with a sequence of length N, the elements of which we wish to distinguish by subscript, the next vexing question is what subscript value to assign to its starting element. Adhering to convention a) yields, when starting with subscript 1, the subscript range 1 = i < N+1; starting with 0, however, gives the nicer range 0 = i < N. So let us let our ordinals start at zero: an element's ordinal (subscript) equals the number of elements preceding it in the sequence. And the moral of the story is that we had better regard --after all those centuries!-- zero as a most natural number. Remark Many programming languages have been designed without due attention to this detail. In FORTRAN subscripts always start at 1; in AL- ---------------------------------------------------------------------------- ---- EWD831-2 GOL 60 and in PASCAL, convention c) has been adopted; the more recent SASL has fallen back on the FORTRAN convention: a sequence in SASL is at the same time a function on the positive integers. Pity! (End of Remark.) * * * The above has been triggered by a recent incident, when, in an emotional outburst, one of my mathematical colleagues at the University --not a computing scientist-- accused a number of younger computing scientists of "pedantry" because --as they do by habit-- they started numbering at zero. He took consciously adopting the most sensible convention as a provocation. (Also the "End of ..." convention is viewed of as provocative; but the convention is useful: I know of a student who almost failed at an examination by the tacit assumption that the questions ended at the bottom of the first page.) I think Antony Jay is right when he states: "In corporate religions as in others, the heretic must be cast out not because of the probability that he is wrong but because of the possibility that he is right." Plataanstraat 5 5671 AL NUENEN The Netherlands 11 August 1982 prof.dr. Edsger W. Dijkstra Burroughs Research Fellow ---------------------------------------------------------------------------- ---- Transcriber: Kevin Hely. Last revised on Thu, 19 Jun 2003. From dajoy at openworldlearning.org Sat Apr 17 15:43:23 2004 From: dajoy at openworldlearning.org (Daniel Ajoy) Date: Sat Apr 17 15:44:22 2004 Subject: [Edu-sig] Re: Question ? In-Reply-To: References: <40811B5B.32579.AAE928@localhost> Message-ID: <4081428B.30342.144044A@localhost> On 17 Apr 2004 at 10:08, Marilyn Davis wrote: > > > Oh no no no. It has to be something uninteresting, uncreative and > > > unproductive, a spectator sport, like watching football on TV. > > > > Modern education? > > Yeh, good point. But maybe more opposite is war -- destructive, > physical, violent. > But: Aren't missiles directed by programs? Isn't "Doom" a violent computer program? Is launching a missil cross the ocean physical? Isn't righting intivirus/antispam/virus/span programs like participating in a war (without the dead bodies, though)? Daniel From glingl at aon.at Sun Apr 18 03:57:28 2004 From: glingl at aon.at (Gregor Lingl) Date: Sun Apr 18 03:56:40 2004 Subject: [Edu-sig] Question ? In-Reply-To: <200404171343.23723.hancock@anansispaceworks.com> References: <001301c42479$c9267500$6501a8c0@vaio> <408131F2.5030803@aon.at> <200404171343.23723.hancock@anansispaceworks.com> Message-ID: <408234E8.2070104@aon.at> Terry Hancock schrieb: >On Saturday 17 April 2004 08:32 am, Gregor Lingl wrote: > > >>Jason Cunliffe schrieb: >> >> >>>What is the opposite of programming? >>> >>> >>Did you think of *the one* opposite? >>I think there are many. >>The first on I thought of was: making love. >>Gregor >> >> > >How is that an opposite? > I my opinion (and in my experience) programming has much to do with exerting power, i. e. making something else (a machine) do exactly what I want it to do. I define exactly the result, I (and only I) chose the means to achieve the results, etc. . Even the process of problem solving (in the context of programming ) has some similarities to a fight between me and some entity (the problem), which may show more or less resitance to my attempts to solve it. In contrast making love is a process of communication between (at least ;-) , as programmers we are used to describe things exactly) two individuals in a way far from exerting power or force or control ... It has something to do with letting things come, letting things be ...hear and feel what your partner wants, feels, ... So the joy I feel is *essentially* the joy *we* feel and comes from radically different sources compared to "the joy in the process of programming" >They're both creative acts >involving the combination of vast code databases to create >a new and unique creation. > Did you think of creating a new human beeing? If so this is only a small element of my concept of "making love" > Not to mention much joy in >the process. > > > Of course also for me there are a lot of other joyful activities, which I consider opposite to programming, as for instance hearing music, walking in a wonderful landscape in springtime etc... And a lot, which are npt joyful at all, but I didn't think about those when trying to find an answer to Jason's question. Caveat: I know - and please take notice of this fact, too - that you may probably not understand exactly what I wanted to express - because my limited kmowledge of the English langue I don't know all the connotations of the words I used here and they are certainly not the same as the ones of the corresponding words or notions in German. Hmmm... that's the difference between using a natural language and using a programming language ... (are they opposite ?) I close before getting into an endless recursion ... Regards Gregor From glingl at aon.at Sun Apr 18 05:08:48 2004 From: glingl at aon.at (Gregor Lingl) Date: Sun Apr 18 05:08:01 2004 Subject: [Edu-sig] Question ? In-Reply-To: <408234E8.2070104@aon.at> References: <001301c42479$c9267500$6501a8c0@vaio> <408131F2.5030803@aon.at> <200404171343.23723.hancock@anansispaceworks.com> <408234E8.2070104@aon.at> Message-ID: <408245A0.7070707@aon.at> Gregor Lingl schrieb: > > I my opinion (and in my experience) programming > has much to do with exerting power, i. e. making > something else (a machine) do exactly what I > want it to do. If this were true, do you think it could be one reason why there are so few women in the programmer's community? (or: what most women like and prefer to do apparently must be the opposite of programming?) Gregor From lac at strakt.com Sun Apr 18 07:26:16 2004 From: lac at strakt.com (Laura Creighton) Date: Sun Apr 18 07:26:37 2004 Subject: [Edu-sig] Question ? In-Reply-To: Message from Gregor Lingl of "Sun, 18 Apr 2004 09:57:28 +0200." <408234E8.2070104@aon.at> References: <001301c42479$c9267500$6501a8c0@vaio> <408131F2.5030803@aon.at> <200404171343.23723.hancock@anansispaceworks.com> <408234E8.2070104@aon.at> Message-ID: <200404181126.i3IBQGae024571@ratthing-b246.strakt.com> In a message of Sun, 18 Apr 2004 09:57:28 +0200, Gregor Lingl writes: > > >Terry Hancock schrieb: > >>On Saturday 17 April 2004 08:32 am, Gregor Lingl wrote: >> >> >>>Jason Cunliffe schrieb: >>> >>> >>>>What is the opposite of programming? >>>> >>>> >>>Did you think of *the one* opposite? >>>I think there are many. >>>The first on I thought of was: making love. >>>Gregor >>> >>> >> >>How is that an opposite? >Regards >Gregor And here I thought it was because of 'Are you going to hack all night, or are you coming to bed?!' (And I thought it was pretty funny.) Laura :-) From lac at strakt.com Sun Apr 18 07:46:53 2004 From: lac at strakt.com (Laura Creighton) Date: Sun Apr 18 07:47:15 2004 Subject: [Edu-sig] Question ? In-Reply-To: Message from Gregor Lingl of "Sun, 18 Apr 2004 11:08:48 +0200." <408245A0.7070707@aon.at> References: <001301c42479$c9267500$6501a8c0@vaio> <408131F2.5030803@aon.at> <200404171343.23723.hancock@anansispaceworks.com> <408234E8.2070104@aon.at> <408245A0.7070707@aon.at> Message-ID: <200404181146.i3IBkrhD024654@ratthing-b246.strakt.com> In a message of Sun, 18 Apr 2004 11:08:48 +0200, Gregor Lingl writes: > > >Gregor Lingl schrieb: > >> >> I my opinion (and in my experience) programming >> has much to do with exerting power, i. e. making >> something else (a machine) do exactly what I >> want it to do. > >If this were true, do you think it could be >one reason why there are so few women in the >programmer's community? > >(or: what most women like and prefer to do >apparently must be the opposite of programming?) > >Gregor There are too many other factors involved. But one very significant one is that women believe that programming has to do with _math_ and not with _langauges_. (This is upside-down, and confuses computer science with programming, but there are a lot of misconceptions about this.) It is interesting to consider what may happen when women finally find out that they have been mistaken, as apparantly has happened in the Ukraine, where a friend of mine says that the women programmers slightly outnumber the men 'because it's nice, well-paying work, indoors, with no heavy lifting :-) '. Women test out better at language skills, on average, than men do. And we are all using computer languages designed by men. Not enough women in the field means not enough women computer language designers. In fact, I am the only one I know, and I only design 'tiny languages' for special purposes -- or rather I justify it for the special purposes, I do it because it is _fun_. But don't look at my chromosomes hoping for the next great language. Would I do nothing else for the rest of my life, Guido would _still_ be a better language designer than I am. But I think, if we want to beat Python, getting a whole lot more women in as language designers would not be a bad start. Just an idea, Laura From ajsiegel at optonline.net Sun Apr 18 09:24:16 2004 From: ajsiegel at optonline.net (Arthur) Date: Sun Apr 18 09:24:20 2004 Subject: [Edu-sig] Question ? In-Reply-To: <200404181146.i3IBkrhD024654@ratthing-b246.strakt.com> Message-ID: <0HWD00DCSBWD5A@mta3.srv.hcvlny.cv.net> Laura writes - > There are too many other factors involved. But one very significant > one is that women believe that programming has to do with _math_ > and not with _langauges_. We only (or mostly) have our personal experiences as reference points. Or at least I find it hard not to give my personal experience precedence over things "known" only second hand. So I always have a problem with this analysis. My elder sister, who asked my parents for little, at the age of 13 or 14 asked my parents to buy her the "World of Mathematics". It was 3 volumes, and at the time, only available in hardcover, so it merited a special request. And there didn't seem anything particularly unusual about this request, as other of her friends shared her interest. One, that I re-met fairly recently, went on to become a mathematician/programmer and currently teaches programming at the college level (and apparently married and divorced - in the meantime - someone considered to be one of the more eminent living mathematicians). My sister went on to a very high-powered career unrelated to math, but one which a generation ago was an almost exclusive domain of men. And she, more than once, has expressed envy that my less high-powered career has left me in a position to take the time to explore and learn a bit about programming. Something she would love to be able to do. If anything, I would re-assert a theory that it is not mathematics, but the unimaginative way mathematics tends to be presented in the curriculum, that has women (statistically) going on to other things. And it is central to my view, that rather than try to further disconnect math and programming, we should be moving in the exact opposite direction. Making them related experiences, that enliven each other. So, Laura, we seem to represent almost opposite viewpoints. Which - so far;) - we manage to do as friends. Which is nice. Art From ajsiegel at optonline.net Sun Apr 18 10:16:42 2004 From: ajsiegel at optonline.net (Arthur) Date: Sun Apr 18 10:16:46 2004 Subject: [Edu-sig] Question ? In-Reply-To: <0HWD00DCSBWD5A@mta3.srv.hcvlny.cv.net> Message-ID: <0HWD001ZFEBSG4@mta8.srv.hcvlny.cv.net> I had written - > And it is central to my view, that rather than try to further > disconnect math and programming, we should be moving in the exact opposite direction. > Making them related experiences, that enliven each other. Further to my point. And continuing to talk from the personal realm. Something I am conscious probably comes off as "unprofessional". But precisely the kind of barrier in these kinds of discussions, which could use some challenge, in my view. More womanly than manly, if these categories need to be hypothesized. I'm OK with that. My wife represents the more prevalent view of attitudes ascribed to woman about these subjects. No interest in mathematics. Programming is something she sees as ministerial. An active interest in the Arts. I need to tread lightly when letting her know that it is hard for me to take her degree in Philosophy (earned relatively late in life) fully seriously considering the entire history of philosophy was presented to her with the role of mathematics and the history of mathematics hidden from view. It may have well made the subject more palatable to her. But it hard not to consider that the scope of the subject could not possibly be fully presented with this stricture in place. "Emasculated" is in fact a word that comes to mind. Shall we go down the same road again, and again. And allowing ourselves to consider ourselves to be in service to the cultivation of mind. Art From lac at strakt.com Sun Apr 18 11:40:22 2004 From: lac at strakt.com (Laura Creighton) Date: Sun Apr 18 11:40:37 2004 Subject: [Edu-sig] Question ? In-Reply-To: Message from Arthur of "Sun, 18 Apr 2004 08:24:16 CDT." <0HWD00DCSBWD5A@mta3.srv.hcvlny.cv.net> References: <0HWD00DCSBWD5A@mta3.srv.hcvlny.cv.net> Message-ID: <200404181540.i3IFeMGs025160@ratthing-b246.strakt.com> In a message of Sun, 18 Apr 2004 08:24:16 CDT, Arthur writes: >Laura writes - > >> There are too many other factors involved. But one very significant >> one is that women believe that programming has to do with _math_ >> and not with _langauges_. > >We only (or mostly) have our personal experiences as reference points. Or > at >least I find it hard not to give my personal experience precedence over >things "known" only second hand. > >So I always have a problem with this analysis. > >My elder sister, who asked my parents for little, at the age of 13 or 14 >asked my parents to buy her the "World of Mathematics". It was 3 volumes, >and at the time, only available in hardcover, so it merited a special >request. > >And there didn't seem anything particularly unusual about this request, a >s >other of her friends shared her interest. One, that I re-met fairly >recently, went on to become a mathematician/programmer and currently teac >hes >programming at the college level (and apparently married and divorced - i >n >the meantime - someone considered to be one of the more eminent living >mathematicians). > >My sister went on to a very high-powered career unrelated to math, but on >e >which a generation ago was an almost exclusive domain of men. And she, mo >re >than once, has expressed envy that my less high-powered career has left m >e >in a position to take the time to explore and learn a bit about programmi >ng. >Something she would love to be able to do. > >If anything, I would re-assert a theory that it is not mathematics, but t >he >unimaginative way mathematics tends to be presented in the curriculum, th >at >has women (statistically) going on to other things. > >And it is central to my view, that rather than try to further disconnect >math and programming, we should be moving in the exact opposite direction >. >Making them related experiences, that enliven each other. > >So, Laura, we seem to represent almost opposite viewpoints. Which - so >far;) - we manage to do as friends. Which is nice. > >Art This disagreement can only be fixed by statistically sampling women and girls at random and creating a survey questionaire that analyses their attitudes towards progamming and math. I wonder if anybody is doing such a thing? Laura From ajsiegel at optonline.net Sun Apr 18 12:29:14 2004 From: ajsiegel at optonline.net (Arthur) Date: Sun Apr 18 12:30:03 2004 Subject: [Edu-sig] Question ? In-Reply-To: <200404181540.i3IFeMGs025160@ratthing-b246.strakt.com> Message-ID: <0HWD00KE0KFXBZ@mta10.srv.hcvlny.cv.net> Laura writes - > This disagreement can only be fixed by statistically sampling women > and girls at random and creating a survey questionaire that analyses > their attitudes towards progamming and math. I wonder if anybody is > doing such a thing? I am afraid we strongly disagree again. In my view, the subject matter is the subject matter. Whatever is decided should be decided with reference to the best and most honest and most complete elucidation of the subject matter. Because how, in such a survey, do you manage to distinguish between issues that are deep, and issues that are little more than trends, fashion. And most importantly, how do you distinguish between symptom and cause. No surveys, please!!!!!!! They are dehumanizing. The likely result of this approach is to exasperate a bad situation. Should issues of education take issues of fashion all that seriously? We may well establish that math is out of fashion with women and girls, this year, or this decade. So? It was out of fashion with me, as well, until I came to it in my own way and in my own time. But I see this as little different than the fact that math is of little interest to Jeff Elkner's programming students. That is certainly a symptom of something, but most certainly it is easy to draw the wrong conclusions from it. To reverse symptom and cause. Art From ajsiegel at optonline.net Sun Apr 18 13:23:46 2004 From: ajsiegel at optonline.net (Arthur) Date: Sun Apr 18 13:23:49 2004 Subject: [Edu-sig] The war against boys Message-ID: <0HWD006MPMZLP4@mta9.srv.hcvlny.cv.net> Unfortunately, it sometimes seems that the only way to gain traction in these kinds of arguments is to claim victim hood. Don't like the trend, and suspect I am contributing to it with this post. But it comes honestly. Another of my sisters, with impeccable activist/progressive/feminist credentials could not help trying to come to terms with the trouble her clearly gifted son was having at school, especially in comparison to the easy adjustment being made by her daughter. She told me I had to read "The War Against Boys". She thought it relevant to me, because of 4 siblings, I - the only male - was the least academically inclined/achieved. And nobody suspected that native intelligence was the issue. Anyway, the issues are self-explanatory, and in my mind, relevant to the current discussion: At: http://blogcritics.org/archives/2003/08/12/221558.php is a conservatives thinkers review of the book. Only because that's what came up first on a quick google. But the issue clearly transcends categorization along traditional political lines. The semantics of folks with different political bents will vary more widely than the substance of their thinking on these kinds of matters - it seems to me. Art From tim.one at comcast.net Sun Apr 18 23:54:14 2004 From: tim.one at comcast.net (Tim Peters) Date: Sun Apr 18 23:55:21 2004 Subject: [Edu-sig] Question ? In-Reply-To: <200404181146.i3IBkrhD024654@ratthing-b246.strakt.com> Message-ID: [Laura Creighton] > ... > Not enough women in the field means not enough women computer > language designers. In fact, I am the only one I know, > ... Barbara Liskov (MIT) was the chief designer of CLU http://www.pmg.lcs.mit.edu/CLU.html and of the later Argus. Both were pioneering languages in their time (CLU for data abstraction, Argus for distributed computing), and beautifully designed. BTW, Python's use of the keyword "yield" in generators is taken from CLU's use of "yield" in its iterator facility, and the Python object model is essentially identical to CLU's. Liskov also coined the phrase "call by object", which is what I like to call Python's argument-passing semantics. A generation of boys over on c.l.py hasn't been so imaginative, and has bickered for a decade about whether it's "really" by-value or by-reference. From glingl at aon.at Mon Apr 19 01:25:31 2004 From: glingl at aon.at (Gregor Lingl) Date: Mon Apr 19 01:24:43 2004 Subject: [Edu-sig] Question ? In-Reply-To: References: Message-ID: <408362CB.2040901@aon.at> Tim Peters schrieb: >[Laura Creighton] > > >>... >>Not enough women in the field means not enough women computer >>language designers. In fact, I am the only one I know, >>... >> >> > >Barbara Liskov (MIT) was the chief designer of CLU > > http://www.pmg.lcs.mit.edu/CLU.html > >and of the later Argus. Both were pioneering languages in their time (CLU >for data abstraction, Argus for distributed computing), and beautifully >designed. > > > And what about Adele Goldberg and Smalltalk? Gregor (BTW: We have two servers in my school, the webserver's name is ada.rg16.asn-wien.ac.at (e. g. have a look at ada.rg16.asn-wien.ac.at/~python) and the intranet-server's name is adele ) From glingl at aon.at Mon Apr 19 01:31:57 2004 From: glingl at aon.at (Gregor Lingl) Date: Mon Apr 19 01:31:07 2004 Subject: [Edu-sig] Question ? In-Reply-To: <200404181126.i3IBQGae024571@ratthing-b246.strakt.com> References: <001301c42479$c9267500$6501a8c0@vaio> <408131F2.5030803@aon.at> <200404171343.23723.hancock@anansispaceworks.com> <408234E8.2070104@aon.at> <200404181126.i3IBQGae024571@ratthing-b246.strakt.com> Message-ID: <4083644D.5040903@aon.at> Laura Creighton schrieb: >>>>>at is the opposite of programming? >>>>> >>>>> >>>>> >>>>> >>>>Did you think of *the one* opposite? >>>>I think there are many. >>>>The first on I thought of was: making love. >>>>Gregor >>>> >>>> >>>> >>>> >>>How is that an opposite? >>> >>> > > > >>Regards >>Gregor >> >> > >And here I thought it was because of 'Are you going to hack all >night, or are you coming to bed?!' (And I thought it was pretty >funny.) > > > A quite reasonable conjecture, were it not at 3:30 p.m. when I sent this posting Gregor >Laura :-) > > > > From mmclay at comcast.net Mon Apr 19 08:28:17 2004 From: mmclay at comcast.net (Michael McLay) Date: Mon Apr 19 08:26:22 2004 Subject: A woman invented the first and the most widely used computer languages; was Re: [Edu-sig] Question ? In-Reply-To: References: Message-ID: <200404190828.17064.mmclay@comcast.net> On Sunday 18 April 2004 11:54 pm, Tim Peters wrote: > [Laura Creighton] > > > ... > > Not enough women in the field means not enough women computer > > language designers. In fact, I am the only one I know, > > ... > > Barbara Liskov (MIT) was the chief designer of CLU > > http://www.pmg.lcs.mit.edu/CLU.html Thanks for the reference. Everything old is new again. > and of the later Argus. Both were pioneering languages in their time (CLU > for data abstraction, Argus for distributed computing), and beautifully > designed. Let's not overlook Admiral Hopper. She created the compiler, which implies the first computer processed language. Her work on FLOW-MATIC at Sperry became the basis of the COBOL language: By 1949 programs contained mnemonics that were transformed into binary code instructions executable by the computer. Admiral Hopper and her team extended this improvement on binary code with the development of her first compiler, the A-O. The A-O series of compilers translated symbolic mathematical code into machine code, and allowed the specification of call numbers assigned to the collected programming routines stored on magnetic tape. [...] she published her first compiler paper in 1952.[...] She participated in a public demonstration by Sperry Corporation and RCA of COBOL compilers and the machine independence they provided. [...] With her technical skills, she lead her team to develop useful COBOL manuals and tools. With her speaking skills, she convinced managers that they should learn to use them. - http://www.cs.yale.edu/homes/tap/Files/hopper-story.html And COBOL is very much with us to this day. The majority of all business data is still processed by COBOL. There are between 180 billion and 200 billion lines of COBOL code in use worldwide. - http://www.cobolwebler.com/cobolfacts.htm From urnerk at qwest.net Mon Apr 19 15:06:10 2004 From: urnerk at qwest.net (Kirby Urner) Date: Mon Apr 19 15:06:12 2004 Subject: [Edu-sig] Question ? In-Reply-To: <408234E8.2070104@aon.at> Message-ID: Maybe it's all programming (with feedback -- two way street). As runtime humans, we get as good as we give. My step daughter dual majored in theater and computer science. I used to think there was a lot of distance between these. But then I remembered that, as a theater goer, the usher hands me a Program (or Programme in Olde English) as I take my seat. However, computer programming is more like TV production than behind-the-scenes stage management, in that you might edit for weeks on a 10 minute commercial. Real time execution (the performance itself) is for when you're already done -- except for those pesky runtime bugs. Kirby From denis.spir at free.fr Mon Apr 19 17:06:52 2004 From: denis.spir at free.fr (denis) Date: Mon Apr 19 17:08:58 2004 Subject: [Edu-sig] the state of the link Message-ID: <008101c42652$79c76160$0225933e@spir> Hello, Well, I sent a rather heavy message two days ago. The kind of thing, you know, that may explode one's mailbox with reactions. I was wondering how many tons of letters the postman would have to carry ; and in fact the number (cardinal) of answer(s) is 'zero' (hehe !). Thus this message as a link control tool. Did you get the parcel ? salutation, denis From ajsiegel at optonline.net Mon Apr 19 17:28:53 2004 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Mon Apr 19 17:31:20 2004 Subject: [Edu-sig] the state of the link Message-ID: <43421414d5.414d543421@optonline.net> >Did you get the parcel ? Yes, but the problem is the you extensively quote Edsger W. Dijkstra. We ignore such mail, because: 1. he seems to maintain the programming *is* mathematics. 2. he is dutch. I am kidding. On 3 counts. Art From rwolff at noao.edu Mon Apr 19 19:05:38 2004 From: rwolff at noao.edu (Richard Wolff) Date: Mon Apr 19 19:03:31 2004 Subject: [Edu-sig] Question ? In-Reply-To: References: Message-ID: <200404191605.38105.rwolff@noao.edu> On Monday 19 April 2004 12:06 pm, Kirby Urner wrote: > Maybe it's all programming (with feedback -- two way street). As runtime > humans, we get as good as we give. > > My step daughter dual majored in theater and computer science. I used to > think there was a lot of distance between these. But then I remembered > that, as a theater goer, the usher hands me a Program (or Programme in Olde > English) as I take my seat. And there's "Computing as Theater", by Brenda Laurel From letondal at pasteur.fr Tue Apr 20 02:25:30 2004 From: letondal at pasteur.fr (Catherine Letondal) Date: Tue Apr 20 02:25:38 2004 Subject: [Edu-sig] Question ? In-Reply-To: <001301c42479$c9267500$6501a8c0@vaio>; from jason.cunliffe@verizon.net on Sat, Apr 17, 2004 at 08:44:54AM -0400 References: <001301c42479$c9267500$6501a8c0@vaio> Message-ID: <20040420082530.B148505@electre.pasteur.fr> On Sat, Apr 17, 2004 at 08:44:54AM -0400, Jason Cunliffe wrote: > What is the opposite of programming? Your question implies that we have a definition of programming! ;-) I don't know if this can help, but you can contrast programming with interaction. Peter Wegner has written wonderful papers about this topic: see Why Interaction is More Powerful than Algorithms, CACM 40(5), pp 80-91 (1997). This diagram: http://www.pasteur.fr/~letondal/Figures/3-prog-dim.eps (I know it's hard to read) also tries to describe 3 dimensions (task, expression mode and execution mode) along which you can define programming with a candidate 'opposite'. -- Catherine Letondal -- Pasteur Institute Computing Center From jason.cunliffe at verizon.net Tue Apr 20 03:08:21 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Tue Apr 20 03:11:28 2004 Subject: [Edu-sig] Question ? References: <001301c42479$c9267500$6501a8c0@vaio> <20040420082530.B148505@electre.pasteur.fr> Message-ID: <002301c426a6$4478a380$6501a8c0@vaio> > On Sat, Apr 17, 2004 at 08:44:54AM -0400, Jason Cunliffe wrote: > > What is the opposite of programming? > > Your question implies that we have a definition of programming! ;-) Yes well of course that was largely my purpose! ... And to see how such an inverted question might revealing and perhaps more effective :-) An immediate follow-up I was going to ask: a. [What is the opposite of programming?] b. Is there / can there be such a thing? It was lovely to see Kirby Urner encircle that swiftly ... "Maybe it's all programming (with feedback -- two way street). As runtime humans, we get as good as we give." Philip Kent managed to take it literally at the same time injecting satirical jab at educational politics: "In education, I think very often being programmed by someone or something else." http://www.pasteur.fr/~letondal/Figures/3-prog-dim.eps Thanks for the Peter Wegner reference and diagram. I read some of his work several years ago. That diagram very much reminds me of Alan MacEachran's wonderful work on Cartographic Visualization. http://www.geovista.psu.edu/members/maceachren/ In particular he developed a map "use" cube. Its a brilliant tool for thinking about problems and design dynamics - by providing a cognitive spatial continuum. The method is easily extendible. In fact I grew an entire project out that approach. Sorry can't find any online version of it at the moment, but meanwhile here's a nice 1992 article he wrote called "Visualizing Uncertain Information" http://www.geovista.psu.edu/members/maceachren/cp/amm_cp.html Anyway, thanks for all your feedbacks thus far. Would love to read more.. -- Jason From ajsiegel at optonline.net Tue Apr 20 08:45:34 2004 From: ajsiegel at optonline.net (Arthur) Date: Tue Apr 20 08:45:37 2004 Subject: [Edu-sig] Question ? In-Reply-To: <002301c426a6$4478a380$6501a8c0@vaio> Message-ID: <0HWG00KMOZFUR8@mta3.srv.hcvlny.cv.net> > > > > Your question implies that we have a definition of programming! ;-) "Programming" is indeed just a word. In the realm of the "politics of education", this is a dangerous situation. Words are played with. So an appeal to authority is not inappropriate. I choose Edsger W.Dijkstra: http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html """ Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians. """ He also shows the way to a degree of reconciliation in the debate of Laura and myself. """ Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer """ But let's not get carried away: """ Projects promoting programming in "natural language" are intrinsically doomed to fail. """ Art From ajsiegel at optonline.net Tue Apr 20 09:02:03 2004 From: ajsiegel at optonline.net (Arthur) Date: Tue Apr 20 09:02:07 2004 Subject: [Edu-sig] Dijkstra on teaching Message-ID: <0HWH00E8L07D7V@mta2.srv.hcvlny.cv.net> Some Dijkstra quotations on the subject of teaching are found at: http://www.digidome.nl/quotations.htm I of course interpret them to find support for my own prejudices. On technology in the classroom: "One of my foreign colleagues gives classes on the esthetics of programming. I advised him to throw away the overhead projector and return to the blackboard. It made him find again the joy of teaching". Art From ajsiegel at optonline.net Tue Apr 20 10:35:37 2004 From: ajsiegel at optonline.net (Arthur) Date: Tue Apr 20 10:35:43 2004 Subject: [Edu-sig] the state of the link In-Reply-To: <000001c4265a$92c34780$0c41933e@spir> Message-ID: <0HWH0081J4JS6Z@mta1.srv.hcvlny.cv.net> > -----Original Message----- > From: denis [mailto:denis.spir@free.fr] > ok, I just wanted to know where the parcel was, now I know you got it ! I am talkative this AM. Avoiding work. The thread on indexing was begun by myself in a post that was intended to be a bit tongue-in-cheek. I find the current approach of Python easy enough to absorb and easy enough to work with. Enough being the operative word. And I reject the notion that this issue, and issues like it, are Big Issues. Your post seems to indicate that you feel otherwise. You might be right. It might be a Big Issue. But then I would contend it must be a Big Issue that Python has right. Because if Python had it fundamentally wrong, I would like to believe I would have noticed it more as a Big Issue, in learning to program, with Python. And Dijkstra seems to agree that Python has it right. So either it is inherently not a Big Issue, or Python has it right. So why are we talking about it in regard to Python? Because I brought it up - is one unfortunate answer. Art From urnerk at qwest.net Tue Apr 20 12:12:13 2004 From: urnerk at qwest.net (Kirby Urner) Date: Tue Apr 20 12:12:17 2004 Subject: [Edu-sig] Question ? In-Reply-To: <200404191605.38105.rwolff@noao.edu> Message-ID: Richard Wolff: > And there's "Computing as Theater", by Brenda Laurel Cool, didn't know about it. Just ordered. Maybe will pass on to step daughter when done. Kirby From urnerk at qwest.net Tue Apr 20 12:23:39 2004 From: urnerk at qwest.net (Kirby Urner) Date: Tue Apr 20 12:23:42 2004 Subject: [Edu-sig] LinuxFest and IPython In-Reply-To: <0HWH0081J4JS6Z@mta1.srv.hcvlny.cv.net> Message-ID: Gave a talk at the just concluded LinuxFest in Bellingham (google for details). Jeff Sandys ( http://www.seapig.org/JeffSandys ) invited me. Mine was the only Python talk (Jeff wanted to be sure at least *someone* was doing Python). In the course of this presentation, I briefly showed of Ipython (http://ipython.scipy.org/ ) , which I only recently discovered. It's another shell, influenced by Mathematica somewhat. It has an interesting way for doing the editor, which is the editor of your choice. Cool thing is if you go 'ed myfunction' it takes you right to that line (provided your editor supports it). Unfortunately, I had time to learn much of this stuff *after* showing it in my talk. My talk was pretty short. I was partly testing out this way of doing Powerpoint slides (using Impress/Open Office) where you evolve a class through several modules, each inheriting from the previous one, so that (a) at each level you get working code and (b) it all fits on one slide each time. Like, with a rational number class (Q), I'll put the __init__ and __repr__ in version 1, then go 'class Q(qv1.Q):' to inherit from it in the next module, adding __add__ , __neg__ , and __sub__. Then in the next module I'll go 'class Q(qv2.Q):' and add __div__ to the 3rd version -- like that. Each successive version inherits the same __init__, along with other features of the parents. This is a way to get around a standard text book problem of elaborating code. Do you repeat the whole code swatch, making it longer each time? With inheritance, you don't repeat, just inherit. But of course one wouldn't necessarily want to code this way for real -- it's more just a way to demonstrate the concepts. Kirby From Stephen.Thorne at abr.com.au Tue Apr 20 19:18:42 2004 From: Stephen.Thorne at abr.com.au (Stephen Thorne) Date: Tue Apr 20 19:18:58 2004 Subject: [Edu-sig] LinuxFest and IPython In-Reply-To: References: <0HWH0081J4JS6Z@mta1.srv.hcvlny.cv.net> Message-ID: <20040420231842.GA16199@kitty> On Tue, Apr 20, 2004 at 09:23:39AM -0700, Kirby Urner wrote: > This is a way to get around a standard text book problem of elaborating > code. Do you repeat the whole code swatch, making it longer each time? > With inheritance, you don't repeat, just inherit. But of course one > wouldn't necessarily want to code this way for real -- it's more just a way > to demonstrate the concepts. This is the single best piece of advice I've gained from edu-sig. Thankyou. Stephen Thorne. From david at handysoftware.com Tue Apr 20 20:34:53 2004 From: david at handysoftware.com (David Handy) Date: Tue Apr 20 20:33:44 2004 Subject: [Edu-sig] the state of the link In-Reply-To: <008101c42652$79c76160$0225933e@spir> Message-ID: Yes, I noticed the email and wanted to reply to it. The problem is that I wanted to give you a well-worded answer, and I just couldn't come up with one in the short time I have. My experience is that Edgar Djikstra is right. It turns out that zero-based indexing with assymetric bounds is the right way to go. I have tried to implement things like string parsing in a 1-based index language (BASIC) and in a zero-based index language (C/C++) so I know the difference. I was going to write up some examples of just how cumbersome 1-based indexing can become, but I just don't have the time for it. If you are skeptical then you just have try it to experience these problems yourself. :) On Mon, 19 Apr 2004, denis wrote: > Hello, > > Well, I sent a rather heavy message two days ago. The kind of thing, you > know, that may explode one's mailbox with reactions. I was wondering how > many tons of letters the postman would have to carry ; and in fact the > number (cardinal) of answer(s) is 'zero' (hehe !). > Thus this message as a link control tool. Did you get the parcel ? > > salutation, > denis > > > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > From david at handysoftware.com Tue Apr 20 20:41:15 2004 From: david at handysoftware.com (David Handy) Date: Tue Apr 20 20:40:00 2004 Subject: [Edu-sig] LinuxFest and IPython In-Reply-To: Message-ID: On Tue, 20 Apr 2004, Kirby Urner wrote: > My talk was pretty short. I was partly testing out this way of doing > Powerpoint slides (using Impress/Open Office) where you evolve a class > through several modules, each inheriting from the previous one, so that (a) > at each level you get working code and (b) it all fits on one slide each > time. > > Like, with a rational number class (Q), I'll put the __init__ and __repr__ > in version 1, then go 'class Q(qv1.Q):' to inherit from it in the next > module, adding __add__ , __neg__ , and __sub__. Then in the next module > I'll go 'class Q(qv2.Q):' and add __div__ to the 3rd version -- like that. > Each successive version inherits the same __init__, along with other > features of the parents. > > This is a way to get around a standard text book problem of elaborating > code. Do you repeat the whole code swatch, making it longer each time? > With inheritance, you don't repeat, just inherit. But of course one > wouldn't necessarily want to code this way for real -- it's more just a way > to demonstrate the concepts. Interesting approach. What concept were you demonstrating? From urnerk at qwest.net Tue Apr 20 18:30:33 2004 From: urnerk at qwest.net (Kirby Urner) Date: Tue Apr 20 21:33:57 2004 Subject: [Edu-sig] LinuxFest and IPython In-Reply-To: References: Message-ID: <200404201833.43974.urnerk@qwest.net> On Tuesday 20 April 2004 08:41 pm, David Handy wrote: > > This is a way to get around a standard text book problem of elaborating > > code. Do you repeat the whole code swatch, making it longer each time? > > With inheritance, you don't repeat, just inherit. But of course one > > wouldn't necessarily want to code this way for real -- it's more just a > > way to demonstrate the concepts. > > Interesting approach. What concept were you demonstrating? Well, in this case I just meant the concept of inheritance. I'm showing how inheritance allows me to "continue" an evolving class definition across several versions. But more specifically, I was going through slides of two "math objects" I'd consider good for introducing OO and, at the same time, reviewing enhancing basic mathematics understanding. These two: Q (rational number) and P (permutation). Rational numbers are an obvious candidate because they store rather minimal data: a numerator and a denominator (both integers), and then methods mess with these data in various ways, sometimes to return new Qs as a result (and there's a design pattern you need when returning Qs from multiple versions, as generally you don't want to return a previous generation of Q -- a parent -- when starting with a more advanced Q as an argument). Permutations are just as simple, but unfortunately get hidden on the other side of Calculus Mountain, i.e. high school students don't get access to these creatures because they're considered a part of group theory or abstract algebra or what not. I look at pre-college computer science as a way to disrupt these silly sequencing ideas, in search of programming challenges with lessons to teach on several levels. So with a permutation, you basically switch elements around, and when you "multiply" two permutations, it's basically composition, i.e. you do the first switch, then apply the second to the first, getting back a third switch (i.e. shuffle, i.e. rearrangement, i.e. permutation) that's the composition of these two. So of course we want to overload the __mul__ method for this. The analogy with Q objects (rational numbers) is made clear in the code: both Qs and Ps have a way to get a multiplicative inverse, such that q * ~q or p * ~p nets you an "identity element" (in the case of permutations, that's a "switch" that takes every element to itself). By the way, as my new Pyblosxom blog makes clear, I'm feeling exultant these days because I'm finally able to sit in cafes with a Linux laptop (recompiled the kernel myself to get power-management (preen, puff, strut)), write stuff, and commit it to the internet. That's what I'm doing right now, at the Powell's on Hawthorne. As an exercise, I'm going to upload the LinuxFest ppt presentation (done in OpenOffice -- haven't tested in Windows Office yet) and post the URL in a next email to edu-sig. The link to my blog is here: http://www.4dsolutions.net/cgi-bin/blog There's hardly anything there yet (just started it last night). But the relevance to edu-sig is this is rather minimal blog infrastructure written in Python (adapted from the Perl original). Along with MoinMoin (and of course Zope and Plone), it shows off what Python can do in the realm of internet applications. Plus I'm using aap to update this blog -- another Python tool. Kirby From urnerk at qwest.net Tue Apr 20 19:19:45 2004 From: urnerk at qwest.net (Kirby Urner) Date: Tue Apr 20 22:19:58 2004 Subject: [Edu-sig] LinuxFest and IPython In-Reply-To: <200404201833.43974.urnerk@qwest.net> References: <200404201833.43974.urnerk@qwest.net> Message-ID: <200404201919.46009.urnerk@qwest.net> > That's what I'm doing right now, at the Powell's on Hawthorne. As an > exercise, I'm going to upload the LinuxFest ppt presentation (done in > OpenOffice -- haven't tested in Windows Office yet) and post the URL in a > next email to edu-sig. http://www.4dsolutions.net/presentations/linuxfest2004.ppt Kirby From letondal at pasteur.fr Wed Apr 21 01:13:04 2004 From: letondal at pasteur.fr (Catherine Letondal) Date: Wed Apr 21 01:13:11 2004 Subject: [Edu-sig] Question ? In-Reply-To: <002301c426a6$4478a380$6501a8c0@vaio>; from jason.cunliffe@verizon.net on Tue, Apr 20, 2004 at 03:08:21AM -0400 References: <001301c42479$c9267500$6501a8c0@vaio> <20040420082530.B148505@electre.pasteur.fr> <002301c426a6$4478a380$6501a8c0@vaio> Message-ID: <20040421071304.A223905@electre.pasteur.fr> On Tue, Apr 20, 2004 at 03:08:21AM -0400, Jason Cunliffe wrote: > > On Sat, Apr 17, 2004 at 08:44:54AM -0400, Jason Cunliffe wrote: > > > What is the opposite of programming? > > > > Your question implies that we have a definition of programming! ;-) > > Yes well of course that was largely my purpose! > ... And to see how such an inverted question might revealing and perhaps > more effective :-) > About a definition of programming: Alan F. Blackwell (2002), What is programming? Proceedings of PPIG 2002 (Psychology of Programming Interest Group Workshop), pp 204-218. http://www.ppig.org/papers/14th-blackwell.pdf > An immediate follow-up I was going to ask: > > a. [What is the opposite of programming?] > b. Is there / can there be such a thing? > My personal opinion is that there is no such a thing - programming - although everyone in this group "knows" what programming "is". It's polysemic! (Nietzsche said that only things that have no history can be defined :-)) -- Catherine Letondal -- Pasteur Institute Computing Center From jason.cunliffe at verizon.net Wed Apr 21 01:42:46 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Wed Apr 21 01:46:41 2004 Subject: [Edu-sig] Domain-Driven Design by Eric Evans Message-ID: <003a01c42763$7a3a4060$6501a8c0@vaio> Fascinating.. Well written and richly illustrated. -- Jason Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans Many people have employed domain-driven design in some form, but it will be made more effective with a systematic approach and a shared vocabulary. This new book provides a broad framework for making design decisions and a technical vocabulary for discussing domain design. It is a synthesis of widely accepted best practices along with the author's own insights and experiences. Projects facing complex domains can use this framework to approach domain-driven design systematically. http://domaindrivendesign.org/book/ http://www.amazon.com/exec/obidos/tg/detail/-/0321125215/102-6451551-9327359?v=glance From jason.cunliffe at verizon.net Wed Apr 21 03:14:29 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Wed Apr 21 03:18:30 2004 Subject: [Edu-sig] A conversation with a Bertrand Russell chatterbot Message-ID: <005501c42770$49dda760$6501a8c0@vaio> http://www.itworld.com/nl/ebiz_ent/04132004/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20040421/b6c7aa39/attachment.html From denis.spir at free.fr Wed Apr 21 07:12:36 2004 From: denis.spir at free.fr (denis) Date: Wed Apr 21 07:28:27 2004 Subject: [Edu-sig] Question ? References: <001301c42479$c9267500$6501a8c0@vaio><20040420082530.B148505@electre.pasteur.fr><002301c426a6$4478a380$6501a8c0@vaio> <20040421071304.A223905@electre.pasteur.fr> Message-ID: <00ea01c42793$b28123a0$ca2ae4d5@spir> ----- Original Message ----- From: Catherine Letondal To: Sent: Wednesday, April 21, 2004 7:13 AM Subject: Re: [Edu-sig] Question ? > > An immediate follow-up I was going to ask: > > > > a. [What is the opposite of programming?] > > b. Is there / can there be such a thing? > > > > My personal opinion is that there is no such a thing - programming - > although everyone in this group "knows" what programming "is". It's polysemic! > (Nietzsche said that only things that have no history can be defined :-)) > > Catherine Letondal -- Pasteur Institute Computing Center What is the opposite of "modelizing" ? I see programming as a subset of modelizing. A rather large subset if one includes descriptive code like tool machine progs or html pages. A narrower one if 'real' programming only deals with processes, one step after one, that is in 4-dimensional (with time) systems. Anyway, modelizing is a rather common activity : when don't we modelize ? denis From denis.spir at free.fr Wed Apr 21 06:35:15 2004 From: denis.spir at free.fr (denis) Date: Wed Apr 21 07:28:33 2004 Subject: [Edu-sig] indexing, slicing (was : the state of the link) References: Message-ID: <00e901c42793$b15303e0$ca2ae4d5@spir> Hello David & all, Thank you for your answer. I know both of index bases, too, having programmed in C, Pascal,... (by the way, the expression "off-by-one errors" is particuliarly famous among programmers of the C-family language, I guess) Finally, the previous text could have been much shorter : I just wanted to point out the fact that, when reading l[3], any not-programmer would spontaneously (intuitively ?) guess that 3 is the ordinal 'number 3', in other words that this expression means "the third item of l", not "the second one". If ever that person doesn't get this at once, he or she will understand it, when told, with no need of any farther explaination. The same for l[2 to 4]. Why ? Is this "natural" ? It doesn't mind, anyway. This issue always yields endless talks between programmers or beginners, isn't it a relevant symptom of its "faultyness" ? These expressions seem to mean that ; this sense matches the reality -- or at least our reality (even when glueing subsequences, as shown in the longer message). If ever a piece of code *does* something (let's take it for granted...) and *means* something (= is not obscurely unreadable), then this meaning and the task performed should match, nom d'une pipe (french idiom) ! In one word : the code should tell what it does, not what it doesn't. That long message was finally only that long, because i tried to answer numerous and complicated counter-arguments to the opinion more quickly (correct ? or quicklier ?) expressed above. On the other hand, I would be very receptive to relevant advantages of a way of extracting items out of a set, say, with 0-based index and half-open interval. After all, the purpose is not to torture programmers instead of beginners. If so, we should find a smart syntax / vocabulary to express it in a non ambiguous, not error-leading, way ; and, yes, accept that newbies have to pass through an uneasy stage before they master it -- because the future advantages are worth it ! Sure, Dijksrtra is certainly right and I, wrong. But I would be happy to agree with him because his arguments convince me, not because he was a clever & wise computer scientist, while I'm not even a professionnal programmer. I read him carefully and was astonished by the contrast between his argumentation and such a quote : "I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself: 'Dijkstra would not have liked this', well that would be enough immortality for me." He often supports better code against superficial efficiency, his aim was obviously not toclose programmers up in esoteric rules -- excluding at the same time the rest of the world from the noble & zen art of programming. But his text on slicing lets me cold (french idiom) and, even if right and fair, seems to point particuliar and rare cases. (I personly seldom found advantages of the kinds he points.) For instance, is it common to need a sequence (1) starting at index zero (2) empty (3) literal (4) expressed as [0:0] instead of [0] ? Whatever the advantages, I think that if they're really as small and rare as they seem to me, then the readibility issue weighs infinitly more. denis PS : I realise how much I wrote again. Sorry for that, hope you didn't read it all if you don't really feel concerned. Anyway, I think this time I've said all about that point... ----- Original Message ----- From: David Handy To: denis Cc: edu-sig python Sent: Wednesday, April 21, 2004 2:34 AM Subject: Re: [Edu-sig] the state of the link > Yes, I noticed the email and wanted to reply to it. The problem is that I > wanted to give you a well-worded answer, and I just couldn't come up with > one in the short time I have. > > My experience is that Edgar Djikstra is right. It turns out that > zero-based indexing with assymetric bounds is the right way to go. I have > tried to implement things like string parsing in a 1-based index language > (BASIC) and in a zero-based index language (C/C++) so I know the > difference. I was going to write up some examples of just how cumbersome > 1-based indexing can become, but I just don't have the time for it. If you > are skeptical then you just have try it to experience these problems > yourself. :) > > On Mon, 19 Apr 2004, denis wrote: > > > Hello, > > > > Well, I sent a rather heavy message two days ago. The kind of thing, you > > know, that may explode one's mailbox with reactions. I was wondering how > > many tons of letters the postman would have to carry ; and in fact the > > number (cardinal) of answer(s) is 'zero' (hehe !). > > Thus this message as a link control tool. Did you get the parcel ? > > > > salutation, > > denis > > > > > > > > > > _______________________________________________ > > Edu-sig mailing list > > Edu-sig@python.org > > http://mail.python.org/mailman/listinfo/edu-sig > > > > From ajsiegel at optonline.net Wed Apr 21 12:20:51 2004 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Wed Apr 21 12:23:22 2004 Subject: [Edu-sig] re: A conversation with a Bertrand Russell chatterbot Message-ID: <272f3226fc0a.26fc0a272f32@optonline.net> And by a Python guy. Who wouldn't want to chatter with a mathematician with a Nobel Prize: in Literature. A monologue by Betrand Russel: http://simon.i2pi.com/files/bertrand_russell-the_divorce_between_science_and_culture.pdf """ In my own country, and to a lesser degree in other countries of the West, "culture" is viewed mainly, by an unfortunate impoverishment of the Renaissance tradition, as something concerned primarily with literature, history and art. A man is not considered uneducated if he knows nothing of the contributions of Galileo, Descartes and their successors. I am convinced that all higher education should involve a course in the history of science from the seventeenth century to the present day and a survey of modern scientific knowledge in so far as this can be conveyed without technicalities. While such knowledge remains confined to specialists, it is scarcely possible nowadays for nations to conduct their affairs with wisdom. """ """ The separation of science from "culture" is a modern phenomenon. Plato and Aristotle had a profound respect for what was known of science in their day. The Renaissance was as much concerned with the revival of science as with art and literature. Leonardo da Vinci devoted more of his energies to science than to painting. The Renaissance artists developed the geometrical theory of perspective. Throughout the eighteenth century a very great deal was done to diffuse understanding of the work of Newton and his contemporaries. But, from the early nineteenth century onwards, scientific concepts and scientific methods became increasingly abstruse and the attempt to make them generally intelligible came more and more to be regarded as hopeless. The modern theory and practice of nuclear physicists has made evident with dramatic suddenness that complete ignorance of the world of science is no longer compatible with survival. """ That's what Russel thinks is at stake. Survival. So if I make myself obnoxous as a self-appointed pleader against the "culturization" of programming so be it. My target isn't everybody. I will settle to start with people like my Harvard educated brother-in-law, or more specifically his children. It happens the name Betrand Russel did come up in a converstaion with him this past week-end. He was surprised to learn the man had some interest ;) in mathematics. I buried my head in my hands, for effect. It is intuitively sensible to believe that new tools are needed to resotre lost balance. New paradigms/old paradigms - again. Art From urnerk at qwest.net Wed Apr 21 12:44:56 2004 From: urnerk at qwest.net (Kirby Urner) Date: Wed Apr 21 12:45:00 2004 Subject: [Edu-sig] indexing, slicing (was : the state of the link) In-Reply-To: <00e901c42793$b15303e0$ca2ae4d5@spir> Message-ID: Hi Denis -- Part of why I like Python slicing conventions is that mylist[0] is non-problematic, i.e. if mylist[1] were to return the first element, as in some other languages I use (e.g. xBase), then what would mylist[0] return? None? Empty set? An out of range exception? My feeling is that if you using indexing at all (as indicated by [x]) then you should be expecting some element in the set, not no element at all. Note that it is possible to force an empty list using slice notation, simply by giving x:x as the range. That's to squeeze the range to nothing, as the first element we want is also the first one we don't want -- nothing in between. Since it's convenient to have negative indexing start us from the end of the list, it would be a glaring hole to have: mystuff[-2] mystuff[-1] (mystuff[0] <-- null) mystuff[1] mystuff[2]... etc. Instead, when we go negative, we immediately begin from the other end, which is intuitive (change in sign = change in starting position). The offset from the start of the list is now 1 in the other direction. Also, I do not think the concept of "open set" should apply, given indexing is confined to the integers. The slice [2:10] is very definitely closed i.e. there's no neighborhood of convergence as in [2:10), where you have the real or rational numbers to move you as close to 10 as you like (without ever reaching it). Slice notation is all about closed sets, even though the 2nd index represents the first one you don't want to include. Also, in your post, you often say "to" as in 2-to-10. Then you argue that this intuitively should include the 10th element. To my mind, this argues for *not* translating the slice operator : as 'to'. Maybe it would be better to say 'slice 2, 10'. For example, ordinary language users wouldn't normally say 'negative 2 to 3' either, when thinking of elements -2, -1, 0, 1 2, i.e. we just wouldn't spontaneously think of -2 or -1 as being from the end of the list, period. So the whole idea of 'to' is really only a partial analogy, and, I'm suggesting, a somewhat misleading one. You could think of 0-based indexing as a vertical bar with pegs, and bags (elements) hanging from the pegs. The index is how far from the top of the bar a peg is, with 0 being the very top: | 0 | \ | | 1 | \ | | 2 | \ The range 0:3 means I want the bags at 0,1,2 whereas the 3 denotes the first peg I want to ignore (a closed set). There doesn't even have to be a peg 3 for mystuff[0:3] to make sense, e.g.: >>> mystuff = ['pig','cow','farmer'] # <-- mystuff[3] is out of range >>> mystuff[0:3] ['pig', 'cow', 'farmer'] However, I have no fear of when I range from -3 to 2: >>> for i in range(-3,3): print mystuff[i], pig cow farmer pig cow farmer i.e. mystuff[0] does not stand out as anomalous, between "ordinary" indexes of -1 and 1. Rather, all indexes in this range point to elements. I find this much easier to work with. Kirby From ajsiegel at optonline.net Wed Apr 21 13:36:18 2004 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Wed Apr 21 13:38:48 2004 Subject: [Edu-sig] How do we tell truths that might hurt Message-ID: <1ea34d1ecada.1ecada1ea34d@optonline.net> To me the most significant aphorism from Dijkstra's essay: "How do we tell truths that might hurt?" at: http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html is the second: """ The easiest machine applications are the technical/scientific computations. """ In advocating math/science explorations as the focus in introductory level programming education it might well sound like one in advocating some kind of ideologoical sense of rigour over a more gentle and humane approach to the subject of programming. But if one accepts that: The easiest machine applications are the technical/scientific computations. one is simple advocating starting at the beginning. And demonstrating and elucidating and empowering folks to handle the easy before one attempts to ask them or expect them to approach the more difficult. And for those that go no further, they will have learned to do some actually useful things, in a programming language.. In other realms, the path to be able to do something actually useful is much longer. Yes, a Literature student might be enticed to know that programming could be made useful in finding semantic patterns in the works of Joyce. The problem is that its hard. Much harder than using numeric and geometric concepts as a jumping off point. I, for one, never expect to understand how to compile a pattern using the re module. (if I even stated that lack of understanding correctly). Art From urnerk at qwest.net Wed Apr 21 13:52:19 2004 From: urnerk at qwest.net (Kirby Urner) Date: Wed Apr 21 13:52:42 2004 Subject: [Edu-sig] LinuxFest and IPython In-Reply-To: <200404201919.46009.urnerk@qwest.net> Message-ID: > http://www.4dsolutions.net/presentations/linuxfest2004.ppt > > Kirby > OK, looks pretty OK in Windows, except the graphic on the opening page somewhat obscures the title, plus page 7 is missing entirely. I was only able to fix the opening graphic so far, not the missing page 7. Kirby From jj2kk4 at yahoo.com Wed Apr 21 16:11:10 2004 From: jj2kk4 at yahoo.com (Joel Kahn) Date: Wed Apr 21 16:11:14 2004 Subject: [Edu-sig] K-2 Python Project Message-ID: <20040421201110.93479.qmail@web60609.mail.yahoo.com> Jeff Sandys wrote: >Tell me more about what >you plan to accomplish >if you got funding. >I have found that even >Logo programming is a >challenge for students >in the K-2 age group. I agree with Jeff's basic point here, and this is what makes my project idea both a very important opportunity and a serious challenge. As one of the possibilities, I'm thinking of doing a series of workshops with elementary school teachers--especially art teachers--in which I would demonstrate Python tools like Tk Turtle and Vpython. (I'm open to suggestions about other modules that may be useful.) The participant feedback from such get-togethers could become a valuable resource for further work. Joel __________________________________ Do you Yahoo!? Yahoo! Photos: High-quality 4x6 digital prints for 25¢ http://photos.yahoo.com/ph/print_splash From deanlake at fbeedle.com Wed Apr 21 20:11:35 2004 From: deanlake at fbeedle.com (Dean Lake) Date: Wed Apr 21 20:12:16 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <1ea34d1ecada.1ecada1ea34d@optonline.net> References: <1ea34d1ecada.1ecada1ea34d@optonline.net> Message-ID: <6.0.0.22.0.20040421104959.01ceedf0@192.168.0.249> Imagine yourself performing heart surgery on someone. Could you do it? Sure, if you studied medicine for several years, witnessed a few surgeries, and had all the tools you needed at hand. But we don't have time to learn all the things that would be beneficial to ourselves - not even lifesaving tasks. We therefore depend on others to do it for us - we have to. More complicated things are left to those who are compelled to learn them. Less complicated things can be learned by those who are compelled to learn them because of a practical need, rather than an insatiable curiosity/love for a difficult subject. I am able to fix a lot of the less difficult problems with my car because of the practical and monetary need, not because of any particular love of reading manuals or learning auto mechanics. Learning to print 'Hello World' in a programming language is comparable learning the Latin name for 'foot' - interesting, but not useful unless the knowledge is built into something more robust. In contrast, building a web page by cutting and pasting HTML tags and scripts is practical, fast, and easily learned. Perhaps it is like learning to take over-the-counter medicines for minor ailments - you're not sure how they work, but it saves you money and time spent at the doctor's. The question here seems to be this: Since all disciplines can argue a practical value for themselves, and people do not have the time nor the capacity to learn all disciplines, how do we choose which disciplines are the most valuable? We already know programming IS important. Would you have seen any programming in the curriculum 30 years ago? No, and the fact that it has taken a prominent position in the university in such a short period of time proves its practicality. This surge was not initially caused by professors arguing for these courses. Students demanded the courses first, then came the argument from faculty to supply these courses. Winning arguments are a byproduct of a practical need. Our subjects choose us. When a discipline yells out that it needs to be taken more seriously by other disciplines, it is usually a cry for the impractical. Asking a Literature student to write a useful, original program in C++ is like asking a CS student to read the cannon of Medieval and Elizabethan Literature and write about it intelligently. Both students would argue that the request is impractical in relation to their academic interests, a waste of their precious time. They would both be right. On the other hand, asking the Lit student to learn a little HTML/JavaScript and the CS student to read Hamlet is less likely to meet resistance - both have immediate practical results and can be accomplished in a short time. Also, they both learn the value of the other discipline without coming close to mastering it. An example was brought up that a Lit student could use programming to search texts for semantic patterns. I agree, but wouldn't it be easier and time-saver to simply work with someone who knows programming to build this program? Both people would be better off for it. Programming needs to become much more understandable (and much quicker to accomplish) for a Lit, Med, or Law student to think it practical to learn. Other disciplines, however, would be more receptive because the practical need is more tangible: Business, Chemistry, Engineering, etc. Still, even those students would wish programming was easier and quicker. Computer programming is the only subject where you have to learn how to teach a machine something you already know how to do. Who in their right mind would want to do that? Mantra: 'Leave it to the blacksmith to build the tools. We will describe to him what we need.' We all want to spend our time studying what we REALLY want to study. The less time having to learn peripheral subjects the better. Do Java programmers want to spend their time learning machine language? Doubtful. Just give us enough info so we can continue on with what we really want to do, thank you. Can we invent an even higher level language? Perhaps a cut and paste method is simply the best that can be hoped for the Arts & Letters student who knows little of the basic tenants needed to create a program - like mathematics and logic - and does not have the time to learn them. Even learning to write a good Python program takes a lot time, effort, and learning. Likewise, perhaps the most we can hope for from the CS student is a reading of just a few of the classics, but not a scholarly written analysis of the works. HTML has become ubiquitous because we all have something to say, and it gives us the tool to say it on a wide stage and is very easy to learn and use. Most A&L students, when pressed, would have a difficult time thinking of a programming task for their computer to do that is not already available to them. If they could think of something they would go see the blacksmith - but only if the need was dire. So I really wouldn't worry about getting every student on board the programming train. They will jump on when they have the need, and jump off when they don't. But the slower the train, the easier to make those leaps. (I'm looking for more metaphors to throw in here). I guess this thread is about finding a way to put on the breaks, and I am here stating the obvious. I have this reoccurring nightmare where I show up to the hospital with a serious pain. The doctor hands me a scalpel and copy of Gray's Anatomy. "You knew you were eventually going to have to learn this," he sneers. You never know when you may be the scoffee. Those who hear not the music must think the dancers mad. - Proverb Dean (a non-programmer, of course) /Just my thoughts. Inert, not flammable. At 10:36 AM 4/21/2004, ajsiegel@optonline.net wrote: >To me the most significant aphorism from Dijkstra's essay: > >"How do we tell truths that might hurt?" >at: >http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html > >is the second: > >""" >The easiest machine applications are the technical/scientific computations. >""" > >In advocating math/science explorations as the focus in introductory level >programming education it might well sound like one in advocating some kind >of ideologoical sense of rigour over a more gentle and humane approach to >the subject of programming. But if one accepts that: > >The easiest machine applications are the technical/scientific computations. > >one is simple advocating starting at the beginning. And demonstrating and >elucidating and empowering folks to handle the easy before one attempts to >ask them or expect them to approach the more difficult. > >And for those that go no further, they will have learned to do some >actually useful things, in a programming language.. > >In other realms, the path to be able to do something actually useful is >much longer. > >Yes, a Literature student might be enticed to know that programming could >be made useful in finding semantic patterns in the works of Joyce. The >problem is that its hard. Much harder than using numeric and geometric >concepts as a jumping off point. > >I, for one, never expect to understand how to compile a pattern using the >re module. (if I even stated that lack of understanding correctly). > >Art > > > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://mail.python.org/mailman/listinfo/edu-sig From jason.cunliffe at verizon.net Wed Apr 21 21:39:32 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Wed Apr 21 21:44:34 2004 Subject: [Edu-sig] How do we tell truths that might hurt References: <1ea34d1ecada.1ecada1ea34d@optonline.net> <6.0.0.22.0.20040421104959.01ceedf0@192.168.0.249> Message-ID: <001701c4280a$aa0bcaa0$6501a8c0@vaio> > Those who hear not the music must think the dancers mad. > - Proverb Why must they ? From ajsiegel at optonline.net Wed Apr 21 22:27:52 2004 From: ajsiegel at optonline.net (Arthur) Date: Wed Apr 21 22:27:59 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <6.0.0.22.0.20040421104959.01ceedf0@192.168.0.249> Message-ID: <0HWJ00D1NW6HOW@mta5.srv.hcvlny.cv.net> > > Learning to print 'Hello World' in a programming language is comparable > learning the Latin name for 'foot' - interesting, but not useful unless > the > knowledge is built into something more robust. I think you misinterpret me, because you seem to be arguing against the gist of my post, when I seem to see myself in some fundamental agreement which much of what you are saying. Programming, as such, is not the point to me, at all. And I see myself very much off the CP4E bus. And am vocal about it - knowing quite well that it would easier, here, to be less so. The fascination with programming as a children's activity repeatedly expressed here a major issue of concern particularly mystifies me. I will leave it at that. What I do think is important is a vastly improved math and science curriculum, particularly for the non math and science specialist. And I think about it mostly at the college level. Bertrand Russell, again: """ I am convinced that all higher education should involve a course in the history of science from the seventeenth century to the present day and a survey of modern scientific knowledge in so far as this can be conveyed without technicalities. """ Why? It is simply part of being awake in the world. Or should be. The people calling the shots - with all the best intentions let's assume - are the lawyers, the MBAs, the journalists, etc. Not the mathematicians and scientists. It would better for all of us, if they were more awake. And if the educational process, in fact, insisted upon it. I believe a rudimentary understanding of programming - in a language like Python - can be leveraged to achieve much more important goals, in the educational process, than that of a rudimentary understanding of programming in and of itself. In math and science education. This may be nothing more than my own version of the pie-in-the-sky that seems to be the bread and butter of edu-sig. But I haven't given up on my sense of things here, as of yet. Art From denis.spir at free.fr Thu Apr 22 03:03:30 2004 From: denis.spir at free.fr (denis) Date: Thu Apr 22 03:04:29 2004 Subject: [Edu-sig] why do you prefere Python for programming / teaching /else ? Message-ID: <001601c42837$fb3ce1c0$e073933e@spir> everything in the header ! denis From ajsiegel at optonline.net Thu Apr 22 07:05:46 2004 From: ajsiegel at optonline.net (Arthur) Date: Thu Apr 22 07:05:49 2004 Subject: [Edu-sig] why do you prefere Python for programming / teaching /else ? In-Reply-To: <001601c42837$fb3ce1c0$e073933e@spir> Message-ID: <0HWK009GMK5HSU@mta3.srv.hcvlny.cv.net> It is literate, without being effete. Art > -----Original Message----- > From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On > Behalf Of denis > Sent: Thursday, April 22, 2004 2:04 AM > To: edu-sig@python.org > Subject: [Edu-sig] why do you prefere Python for programming / teaching > /else ? > > everything in the header ! > > denis > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig From anna at aleax.it Thu Apr 22 08:25:07 2004 From: anna at aleax.it (Anna Ravenscroft) Date: Thu Apr 22 08:25:35 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <0HWJ00D1NW6HOW@mta5.srv.hcvlny.cv.net> References: <0HWJ00D1NW6HOW@mta5.srv.hcvlny.cv.net> Message-ID: <200404221425.07958.anna@aleax.it> On Thursday 22 April 2004 04:27, Arthur wrote: > What I do think is important is a vastly improved math and science > curriculum, particularly for the non math and science specialist. And I > think about it mostly at the college level. I agree with this - except I think it needs to start at the gradeschool level. Math and science need a solid base on which to add. > I believe a rudimentary understanding of programming - in a language like > Python - can be leveraged to achieve much more important goals, in the > educational process, than that of a rudimentary understanding of > programming in and of itself. In math and science education. Algorithmic thinking is useful in all areas, I believe. I think it can be helpful in much more than simply math and science education. Anna From anna at aleax.it Thu Apr 22 08:25:29 2004 From: anna at aleax.it (Anna Ravenscroft) Date: Thu Apr 22 08:25:40 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <1ea34d1ecada.1ecada1ea34d@optonline.net> References: <1ea34d1ecada.1ecada1ea34d@optonline.net> Message-ID: <200404221425.29651.anna@aleax.it> On Wednesday 21 April 2004 19:36, ajsiegel@optonline.net wrote: > To me the most significant aphorism from Dijkstra's essay: > > "How do we tell truths that might hurt?" > at: > http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html > > is the second: > > """ > The easiest machine applications are the technical/scientific computations. > """ > > In advocating math/science explorations as the focus in introductory level > programming education it might well sound like one in advocating some kind > of ideologoical sense of rigour over a more gentle and humane approach to > the subject of programming. But if one accepts that: > > The easiest machine applications are the technical/scientific computations. > > one is simple advocating starting at the beginning. And demonstrating and > elucidating and empowering folks to handle the easy before one attempts to > ask them or expect them to approach the more difficult. > > And for those that go no further, they will have learned to do some > actually useful things, in a programming language.. I disagree. It's not a matter of "rigour", it's a matter of practicality and interest. The technical/scientific computations are the *LEAST* useful for my life. Until I found out that it was reasonably easy in Python to do stuph *I* needed done, I had no use for programming. That's after learning pascal and basic 20+ years ago. The last programming I did before coming to Python was on my Commodore 64, and then I gave it up because it had no use to me - because programming was all about math - unless you're really advanced. There are very few times in my life that I need to do scientific or technical computation. And the emphasis on that in programming made it hard to see past it to the things that I *did* want to do, or that it might be possible for me to do those things. I'm not disagreeing out of a dislike for math - geometry and calculus and algebra are fun. (I'm even one of those crazy people who enjoys doing my own taxes!) But irrelevant, in most cases, to my life, outside of bookkeeping (which is another area I use Python - have *you* ever tried to calculate Italian taxes? Writing a program was easier than figuring out which invoice got which taxes each month...) FWIW - in a year and a half of Python, that's the single use I've had that I would consider at all mathematical... > In other realms, the path to be able to do something actually useful is > much longer. The path isn't that long and is far likelier to keep their interest. Teaching folks that almost any repetitive task involving text, dates, or numbers can be automated by writing a simple program is more likely to get them excited about programming than teaching them that you can add 2+ 2 or solve quadratic equations... IME, most people, outside of schoolteachers and mathematicians, really don't *care* about math enough for it to be an incentive to learn to program. OTOH - things that they can apply to their lives, to make what they already do easier, *That* is an incentive for them to learn programming. It's kinda like the difference between riding a stationary bike and taking a bicycle ride outside. Yeah, they both get you exercise, but one has a lot better scenery and is more likely to keep you interested than the other. > Yes, a Literature student might be enticed to know that programming could > be made useful in finding semantic patterns in the works of Joyce. The > problem is that its hard. Yep - it's hard. And continuing to present programming that way is going to *keep* people away. So you start with something easier. Do a simple word count program - find out the number of occurrences of "word" in a particular file -a fairly simple program that shows the prospective learner that they can use it for things *they're* interested in, without having to be a wizard! Once they can do that, show them how they can turn it into a concordance program. > Much harder than using numeric and geometric > concepts as a jumping off point. But more relevant to their lives and more likely to keep them interested long enough to be able to program something more extensive. My point is that if they don't care about numeric and geometric concepts - they won't jump. They won't *start*. They'll think, just like they always did, that programming isn't something that's relevant to them or that any of it that might be relevant is way too hard for them to do. > I, for one, never expect to understand how to compile a pattern using the > re module. (if I even stated that lack of understanding correctly). The first time I did text parsing, I had never heard of regular expressions! In fact, I didn't know that what I was doing was called text parsing. I was able to just start doing it, because I knew how to describe what I wanted, and the steps to get there - and the rest was just a matter of plugging in the pieces. Teaching algorithmic thinking is crucial, imho. And teaching them that there *are* ways to apply this in their own lives is the other key. Just my $.03 worth. Anna From ajsiegel at optonline.net Thu Apr 22 09:17:09 2004 From: ajsiegel at optonline.net (Arthur) Date: Thu Apr 22 09:17:44 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404221425.29651.anna@aleax.it> Message-ID: <0HWK00C1WQ8G0B@mta8.srv.hcvlny.cv.net> > > I disagree. It's not a matter of "rigour", it's a matter of practicality > and > interest. > I am willing to be a bit impractical and bit coercive. When did education become all about catering to interests? Who runs the asylum? > The technical/scientific computations are the *LEAST* useful for my life. > Until I found out that it was reasonably easy in Python to do stuph *I* > needed done, I had no use for programming. That's after learning pascal > and > basic 20+ years ago. The last programming I did before coming to Python > was > on my Commodore 64, and then I gave it up because it had no use to me - > because programming was all about math - unless you're really advanced. Where do we disagree? "Programming is all about math - unless you're really advanced." Isn't that what I just said? Or, more accurately, quoted Dijkstra as saying. I'm suggesting we fight that less hard. Go with it, exploit it. You get people introduced to programming, I get people doing math, in more involving ways. We have different goals, but I don't see why we can't team-up, nonetheless. I have much, much less sympathy with the argument - "they don't care about math". When did not caring about math become an option in our educational system? Math, more than programming, is the fundamental skill. The argument is as to which is the means and which is the ends. There we disagree, apparently. > > There are very few times in my life that I need to do scientific or > technical > computation. And the emphasis on that in programming made it hard to see > past > it to the things that I *did* want to do, or that it might be possible for > me > to do those things. > > I'm not disagreeing out of a dislike for math - geometry and calculus and > algebra are fun. (I'm even one of those crazy people who enjoys doing my > own > taxes!) But irrelevant, in most cases, to my life, outside of bookkeeping > (which is another area I use Python - have *you* ever tried to calculate > Italian taxes? Writing a program was easier than figuring out which > invoice > got which taxes each month...) FWIW - in a year and a half of Python, > that's > the single use I've had that I would consider at all mathematical... > I know a bit about the subject of bookkeeping and taxes. I promise you the world will continue to get it books done, just fine, with or without Python. And without programming becoming a common skill. > > In other realms, the path to be able to do something actually useful is > > much longer. > > The path isn't that long and is far likelier to keep their interest. > > Teaching folks that almost any repetitive task involving text, dates, or > numbers can be automated by writing a simple program is more likely to get > them excited about programming than teaching them that you can add 2+ 2 or > solve quadratic equations... > The problem is that solving quadratic equations is what you think of when you think of mathematics. I did too, when I had no interest in the subject. For me to try to be more articulate than that would take more words that you will have patience for, and more energy than I can now muster. But, yes. Nobody should get excited about solving quadratic equations. We agree. Or at least I have total sympathy for anybody who can't. > IME, most people, outside of schoolteachers and mathematicians, really > don't > *care* about math enough for it to be an incentive to learn to program. > OTOH > - things that they can apply to their lives, to make what they already do > easier, *That* is an incentive for them to learn programming. At least one person - me - doesn't care much about programming, beyond its usefulness it getting people outside of schoolteachers and mathematicians to care about math. Art From anna at aleax.it Thu Apr 22 09:46:24 2004 From: anna at aleax.it (Anna Ravenscroft) Date: Thu Apr 22 09:46:38 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <0HWK00C1WQ8G0B@mta8.srv.hcvlny.cv.net> References: <0HWK00C1WQ8G0B@mta8.srv.hcvlny.cv.net> Message-ID: <200404221546.24944.anna@aleax.it> On Thursday 22 April 2004 15:17, you wrote: > > I disagree. It's not a matter of "rigour", it's a matter of practicality > > and > > interest. > > I am willing to be a bit impractical and bit coercive. > > When did education become all about catering to interests? Who runs the > asylum? When you're talking about college level - it's all about what folks are interested in. And, I thought we were talking about teaching *programming*. > > The technical/scientific computations are the *LEAST* useful for my life. > > Until I found out that it was reasonably easy in Python to do stuph *I* > > needed done, I had no use for programming. That's after learning pascal > > and > > basic 20+ years ago. The last programming I did before coming to Python > > was > > on my Commodore 64, and then I gave it up because it had no use to me - > > because programming was all about math - unless you're really advanced. > > Where do we disagree? > > "Programming is all about math - unless you're really advanced." Isn't > that what I just said? Our basic disagreement is this: it's *NOT* really all about math. You can get practical, useful things done with programming that has nothing (or very little) to do with math, without having to be an advanced programmer. I know - I've done it for the past year and a half, and have been quite happy programming once I discovered that. I just wish someone had bothered telling me that back when I was learning programming 20+ years ago. > Or, more accurately, quoted Dijkstra as saying. I'm > suggesting we fight that less hard. Go with it, exploit it. You get people > introduced to programming, I get people doing math, in more involving ways. > We have different goals, but I don't see why we can't team-up, nonetheless. I have no problem with using programming *also* to teach math. In fact, kids in gradeschool and secondary school need better grounding in math. We agree on that. I just disagree with the emphasis on math in teaching *programming*, which is what you seemed to be pushing for. > I have much, much less sympathy with the argument - "they don't care about > math". When did not caring about math become an option in our educational > system? LOL - as a parent of two kids in the educational system, I ask myself that often. My kids learn math at home, because we care, not because they're learning it properly in school. Too many kids graduating highschool these days couldn't calculate the area of a room, much less anything more complex. It's frightening - and heartbreaking. > Math, more than programming, is the fundamental skill. The > argument is as to which is the means and which is the ends. There we > disagree, apparently. I agree that math is a fundamental skill. However, I think that teaching programming itself is *also* a useful thing, besides its use in teaching math. Personally, I think a little programming would do well to be included in several areas of the curriculum. Everything from math to literature to science to art. And I believe that this is possible. > > There are very few times in my life that I need to do scientific or > > technical > > computation. And the emphasis on that in programming made it hard to see > > past > > it to the things that I *did* want to do, or that it might be possible > > for me > > to do those things. > > > > I'm not disagreeing out of a dislike for math - geometry and calculus and > > algebra are fun. (I'm even one of those crazy people who enjoys doing my > > own > > taxes!) But irrelevant, in most cases, to my life, outside of bookkeeping > > (which is another area I use Python - have *you* ever tried to calculate > > Italian taxes? Writing a program was easier than figuring out which > > invoice > > got which taxes each month...) FWIW - in a year and a half of Python, > > that's > > the single use I've had that I would consider at all mathematical... > > I know a bit about the subject of bookkeeping and taxes. > > I promise you the world will continue to get it books done, just fine, with > or without Python. And without programming becoming a common skill. Yep. But for those of us promoting the learning of programming in itself, as a useful skill, remembering that there are simple, useful things one can do with it outside of math is important. > At least one person - me - doesn't care much about programming, beyond its > usefulness it getting people outside of schoolteachers and mathematicians > to care about math. I think that's a great goal. I just don't think it's the only reason programming should be taught. Anna From ajsiegel at optonline.net Thu Apr 22 10:19:23 2004 From: ajsiegel at optonline.net (Arthur) Date: Thu Apr 22 10:49:58 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404221546.24944.anna@aleax.it> Message-ID: <0HWK00197T4B7X@mta5.srv.hcvlny.cv.net> > When you're talking about college level - it's all about what folks are > interested in. Bertrand Russell, again: """ I am convinced that all higher education should involve a course in the history of science from the seventeenth century to the present day and a survey of modern scientific knowledge in so far as this can be conveyed without technicalities. """ Interested or not, is what I hear him saying. Art From john.zelle at wartburg.edu Thu Apr 22 11:17:28 2004 From: john.zelle at wartburg.edu (John Zelle) Date: Thu Apr 22 11:21:19 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <0HWJ00D1NW6HOW@mta5.srv.hcvlny.cv.net> References: <0HWJ00D1NW6HOW@mta5.srv.hcvlny.cv.net> Message-ID: <4087E208.5070800@wartburg.edu> My grades for the term are in, so I have a bit of breathing room before the next round of classes start on Monday. I've been following a number of recent threads with interest, as they touch on several themes that I've been mulling over lately. My comments are mainly in the context of how we design and deliver high-school and college level introductions to programming and computer science, but perhaps they speak to lower levels as well. I heartily agree with Dean Lake's comments that the vast majority of our students will not become computer scientists, and trying to teach them the craft of programming in depth is likely to meet with considerable resistance. That is a fact, and rightfully so. At the same time, the information paradigm has become so pervasive in our science and culture that I think every student needs a very solid introduction. We need to figure out what the "Hamlet" of computing is. As I see it, the deep intellectual contribution of computing is the idea of describing processes (i.e. algorithms). Sure, using computers as a tool is important, but today's killer applications are a passing fad. It is the fundamental principlces of computing underlying these tools that is at the same time revolutionary and enduring. The very notion of precisely and unambiguously describing processes and data so that information processes can be mechanized is what makes computing universal. I don't think you can really understand both the strengths and shortcomings of the computing paradigm without wrestling at least a bit with the fundamentals of programming. To put it in Dean's terms, without this fundamental understanding, our future professionals won't know when it's wise to seek out a blacksmith or know when that blacksmith is selling them ox-shoes for their horse. So that's one reason that I think lots of students should get programming experience. Another argument is that we need all the talented computer scientists that we can get, and broad exposure to programming would help students who might have a genuine aptitude find their way into the field. We pick up a couple good new CS majors every year from the pool of liberal arts students who've "dabbled" their way into our intro course. I think it is possible to introduce students to programming in a way that makes it useful and compelling to both majors and nonmajors. In fact, I believe in many ways computer science is easier to teach than math or the natural sciences, because we can actually get our students involved with the tools and techniques of the discipline starting virtually day 1. Most students actually enjoy the creative process of programming and are very proud of the artifacts that they create. So, how do we get and keep students interested? One line of argument is that we need to get students working on applications they are interested in (HTML, multi-media, games, etc.). I am sympathetic to this argument, and one of the reasons I like Python as a teaching language is that it allows students to work on interesting projects early on. My students especially like working with graphics. But, my experience shows that this is only a part of the issue. Even if the projects are interesting, students will not pursue them if the barriers to understanding are too high. Dean's analogy is again apt, the students will see the bewildering complexity and simply turn to the tool-builders to do things for them. Even more important than compelling projects is designing a curriculum that meets students where they are at. I see a lot of criticism of "silly" and "uninteresting" programs such as helloWorld and Celsius-to-Fahrenheit, but these are basic programs that are easy to understand. If you use a language like Python that makes these programs easy to express, then students actually enjoy starting with these examples. Of course, they can quickly branch out and program more interesting calculations like giga-barn-parsecs to teaspoons. I don't apologize for starting with simple mathematical examples because Dijkstra was right, it's the easiest sort of computing. Plus, it meets students where they're at; they are _used_ to computing with numbers, since they've been doing it in math classes for years. One of the themes that I try to hammer home is that algorithmic thinking allows students who are not mathematically inclined to answer mathematical questions that they could not otherwise tackle like calculating the odds of actually winning at Craps or Blackjack or determining the trajectory of a projectile. This helps them appreciate some of the power of algorithms. The real failing of most introductory programming courses, as I see it, is the rush to abstraction early on. As we have put more and more object oriented design into these classes, it seems we have started to raise the level of abstraction to the point where I now go to CS education conferences and see educators who are doing abstraction solely for the abstraction's sake. They argue that "real" programmers need to learn sophisticated design patterns and every algorithm should be "expressed at the most abstract level." Our students are not ready for this level of abstraction, and frankly, most of them will never need it. What we really need to do is separate "learning to program" from "programming to learn." In an introductory CS class, programming is important because it helps (forces) students to understand fundamental principles of computing. The same could be said of using programming in math and science courses as others have suggested. Students write programs to learn math concepts in a very concrete way. These students do not need to "learn to program" in the sense of learning to be professional programmers. Bringing all of that baggage into early classes makes them overly complicated and destroys the natural enthusiasm students have for producing working programs. Where does Python fit into the mix? Well, its simplicity and elegance make programming to learn possible. It's very easy to experiment with and try out ideas quickly and easily. Industrial-strength languages such as Java and C++ are important to those who must learn to program (although not as important as some might have you believe). I think that programming to learn makes subsequent learning to program much easier. So, start with Python, keep things concrete as long as possible, use abstraction as it becomes necessary and useful, and let the students have fun. That's the road to universal computer literacy. Comments? --John Arthur wrote: >>Learning to print 'Hello World' in a programming language is comparable >>learning the Latin name for 'foot' - interesting, but not useful unless >>the >>knowledge is built into something more robust. >> >> > >I think you misinterpret me, because you seem to be arguing against the gist >of my post, when I seem to see myself in some fundamental agreement which >much of what you are saying. > >Programming, as such, is not the point to me, at all. And I see myself very >much off the CP4E bus. And am vocal about it - knowing quite well that it >would easier, here, to be less so. > >The fascination with programming as a children's activity repeatedly >expressed here a major issue of concern particularly mystifies me. I will >leave it at that. > >What I do think is important is a vastly improved math and science >curriculum, particularly for the non math and science specialist. And I >think about it mostly at the college level. > >Bertrand Russell, again: > >""" >I am convinced that all higher education should involve a course in the >history of science from the seventeenth century to the present day and a >survey of modern scientific knowledge in so far as this can be conveyed >without technicalities. >""" > >Why? > >It is simply part of being awake in the world. Or should be. > >The people calling the shots - with all the best intentions let's assume - >are the lawyers, the MBAs, the journalists, etc. Not the mathematicians and >scientists. > >It would better for all of us, if they were more awake. And if the >educational process, in fact, insisted upon it. > >I believe a rudimentary understanding of programming - in a language like >Python - can be leveraged to achieve much more important goals, in the >educational process, than that of a rudimentary understanding of programming >in and of itself. In math and science education. > >This may be nothing more than my own version of the pie-in-the-sky that >seems to be the bread and butter of edu-sig. But I haven't given up on my >sense of things here, as of yet. > >Art > > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://mail.python.org/mailman/listinfo/edu-sig > > > > From jason.cunliffe at verizon.net Thu Apr 22 11:34:56 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Thu Apr 22 11:40:36 2004 Subject: [Edu-sig] How do we tell truths that might hurt References: <1ea34d1ecada.1ecada1ea34d@optonline.net> <200404221425.29651.anna@aleax.it> Message-ID: <005b01c4287f$5e85c840$6501a8c0@vaio> > The technical/scientific computations are the *LEAST* useful for my life. > Until I found out that it was reasonably easy in Python to do stuph *I* > needed done, I had no use for programming. That's after learning pascal and > basic 20+ years ago. The last programming I did before coming to Python was > on my Commodore 64, and then I gave it up because it had no use to me - > because programming was all about math - unless you're really advanced. C64 Story: The first Commodore 64 I saw was used by a guy who taught himself BASIC, then wrote a program to help his neighbors lookup rent and housing questions. There was a little bit of arithmetic, but mainly a sequence of questions which reflected the local housing laws. When he was done he took it down to the local council housing office [Covent Garden in London] and asked them if they would like to have a computer system in their office. They were very excited to have a flashy computer in their office and thinking they would have less work to do, so they said "Yes, please!." Over that summer, people came in for various reasons and were guided over to the C64 "if they had any questions"... This was of course a true trojan horse application, and soon the housing office was flooded with legitimate rent rebate applications. Eventually they realized where the source of the 'problem' was -- the C64 on loan from the clever revolutionary and asked him to take it home again. It seams to me that most programming is *not* actually about math, and that that's always been pretty true... While most math is [about] programming. programming = play, analysis, experimentation, expression and design. Most programming is about being analytic, being precise, being logical -- and then all about smart naming and manipulating symbols of one kind or another, so they can interact with whatever the job demands. In graphical user interfaces, most tends to be about negotiating with that environment, usually by including some interactivity, feedback, status messaging etc. In communications, including web programming, its almost entirely about managing strategies and protocols which [pass though a series of layered syntaxes which cluster around various context levels. In Business, it's both the above with usually extensive database i/o. In Science math is usually required, since it is the base language tool for so much. The new Bio-informatics has added to this massive requirements for skilled database manipulation and 3D visualization pattern recognition In graphics, at a low tool-building level, programming almost certainly involves math, but at more removed creative level, it's about sequencing interactions of tools, content and behaviors. But in programming quantity is not quality. Thus the bulk of a program code will likely be concerned with error checking, user interface, etc. The core routines which express the main purpose constitute small concise algorithms. I see this as being similar to E=MC^2, where a large amount of human and scientific 'code' wraps, supports and explains that minimalism. Programming is a human-machine skill, but also human-human, human-paper/screen, and increasingly used for machine-machine communication. I believe the educational value of applying programming perspectives to litterature or to everyday spoken/written language is not about making statistical searches in Joyce. Rather about increasing analytic awareness of what is is we all do with languages. How they program us and how we program with them? In speech this amounts first to programming our own expression, and then using it to communicate with and perhaps influence others. So if algorithimic thinking is at the heart of computer prgramming skills, then awareness and expressive analysis lie at the heart of applying a programmer's perspective to language. [my 3.141592 cents] -- Jason From deanlake at fbeedle.com Thu Apr 22 12:20:07 2004 From: deanlake at fbeedle.com (Dean Lake) Date: Thu Apr 22 12:20:31 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <001701c4280a$aa0bcaa0$6501a8c0@vaio> References: <1ea34d1ecada.1ecada1ea34d@optonline.net> <6.0.0.22.0.20040421104959.01ceedf0@192.168.0.249> <001701c4280a$aa0bcaa0$6501a8c0@vaio> Message-ID: <6.0.0.22.0.20040422091752.01cb9780@192.168.0.249> Skipped content of type multipart/alternative From anna at aleax.it Thu Apr 22 12:27:01 2004 From: anna at aleax.it (Anna Ravenscroft) Date: Thu Apr 22 12:27:08 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <4087E208.5070800@wartburg.edu> References: <0HWJ00D1NW6HOW@mta5.srv.hcvlny.cv.net> <4087E208.5070800@wartburg.edu> Message-ID: <200404221827.01629.anna@aleax.it> On Thursday 22 April 2004 17:17, John Zelle wrote: > So, start with Python, keep things concrete as long as possible, use > abstraction as it becomes necessary and useful, and let the students > have fun. That's the road to universal computer literacy. Comments? The nicest thing about Python, imho, is that it works well with teaching algorithmic thinking. It cuts to the necessary parts of actually getting things done, without adding excess baggage. I just wanted to mention - in case my discussion with Art somehow obscured my message - I have no issue with using math as part of teaching programming. My concern is when the entire course has gone by without (as happened to me back in college) mentioning that programming is useful for things *besides* math, and that you don't have to be a wizard to use it for those other things. I can easily see myself having spent the past 20+ years programming regularly, instead of dumping it until a year and a half ago - IF I had known. Would I have ever become a CS major? No. But would I have used programming more extensively in my life? Yes. It isn't *always* about the big 20,000 line programs - for something large and complex, I'll get someone who does it for a living - just as I get a mechanic to fix the transmission on my car. But, I shouldn't have to pay the mechanic just to check the oil, change a tire, or replace a headlight. And I shouldn't have to hire a programmer just to do a simple 20-line program that makes my life easier. The fact that I *can* do these things (both with the car and with the computer) improves my life - and also makes it easier on the professional I talk to about those big jobs, because I have a better idea what they're talking about and what kind of information they need to do their job properly. Anna From deanlake at fbeedle.com Thu Apr 22 13:11:13 2004 From: deanlake at fbeedle.com (Dean Lake) Date: Thu Apr 22 13:11:40 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <0HWJ00D1NW6HOW@mta5.srv.hcvlny.cv.net> References: <6.0.0.22.0.20040421104959.01ceedf0@192.168.0.249> <0HWJ00D1NW6HOW@mta5.srv.hcvlny.cv.net> Message-ID: <6.0.0.22.0.20040422092333.01cbed78@192.168.0.249> At 07:27 PM 4/21/2004, Arthur wrote: > > > > Learning to print 'Hello World' in a programming language is comparable > > learning the Latin name for 'foot' - interesting, but not useful unless > > the > > knowledge is built into something more robust. > >I think you misinterpret me, because you seem to be arguing against the gist >of my post, when I seem to see myself in some fundamental agreement which >much of what you are saying. I wasn't arguing against you, rather I was making a general statement from a non-programmer's perspective - although I did use one example from your post. >Programming, as such, is not the point to me, at all. I agree. The skills needed to program come first - math, logic - and those skills are difficult and too time-consuming to learn to make programming practical for me. >What I do think is important is a vastly improved math and science >curriculum, particularly for the non math and science specialist. And I >think about it mostly at the college level. This goes to the heart of what I was saying. "When a discipline yells out that it needs to be taken more seriously by other disciplines, it is usually a cry for the impractical." Yes, a perfect world would make renaissance men/women of us all. But capitalism rules the day, and that makes Jack a highly-specialized, tax-revenue-producing, dull boy. If only we could all have patrons like Michelangelo. Oh, and we can blame tv, movies, and programmers (they created the time-wasting Internet) ;-) It is just a new world where specialization has made everything more difficult to learn, and we have less time to do it. When was the last time a department at a college asked for fewer classes and less money? >Bertrand Russell, again: > >""" >I am convinced that all higher education should involve a course in the >history of science from the seventeenth century to the present day and a >survey of modern scientific knowledge in so far as this can be conveyed >without technicalities. >""" And I am convinced that all higher education should involve more than *a* course on this subject. In fact, there should be several courses on the history of things. In fact, there are in most subjects. Is there not one in science? Does not every survey textbook begin with a history? I do remember taking a CS survey course and the first thing taught was a history (the only thing I seem to remember was the woman who was a Navy admiral who helped invent COBOL.) Ditto with Biology. > > >It is simply part of being awake in the world. Or should be. Should be, yes. I don't think a short history course in science would be too much to ask. But there are other disciplines wanting people to *be awake* as well. History of the Honey Bee, anyone? >The people calling the shots - with all the best intentions let's assume - >are the lawyers, the MBAs, the journalists, etc. Not the mathematicians and >scientists. We get the leaders we deserve. Certain professions bestow a title of nobility on themselves and sooner or later people start believing it. >I believe a rudimentary understanding of programming - in a language like >Python - can be leveraged to achieve much more important goals, in the >educational process, than that of a rudimentary understanding of programming >in and of itself. In math and science education. I remember in my CS survey class when we drew yes/no/goto programming trees by hand (1992?). Is that too rudimentary? I'm not sure I learned anything from it. What do you mean by a rudimentary understanding of Python? Learn to do what? >This may be nothing more than my own version of the pie-in-the-sky that >seems to be the bread and butter of edu-sig. But I haven't given up on my >sense of things here, as of yet. Find more pleasure in intelligent dissent than in passive agreement, for, if you value intelligence as you should, the former implies a deeper agreement than the latter. - Bertrand Russell >Art From ajsiegel at optonline.net Thu Apr 22 13:19:21 2004 From: ajsiegel at optonline.net (Arthur) Date: Thu Apr 22 13:21:12 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <4087E208.5070800@wartburg.edu> Message-ID: <0HWL00LCN1G6RS@mta2.srv.hcvlny.cv.net> > So, start with Python, keep things concrete as long as possible, use > abstraction as it becomes necessary and useful, and let the students > have fun. That's the road to universal computer literacy. Comments? > > --John In my mind, the most concrete way to avoid abstraction (at least in some sense of the word) and identify programming as it should be - as an immensely adaptable tool, is to put it to work, out-of-the box, as a tool. This class is not about programming, this class is about - physics. Oh, and yes, we will be doing some programming. This is *not* pie-in-the-sky. It's happening today. It can't not happen, it makes so much sense. So I should go relax, or go get some work done. Choose one. Art From david at handysoftware.com Thu Apr 22 13:35:43 2004 From: david at handysoftware.com (David Handy) Date: Thu Apr 22 13:33:57 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <4087E208.5070800@wartburg.edu> Message-ID: On Thu, 22 Apr 2004, John Zelle wrote: > So, start with Python, keep things concrete as long as possible, use > abstraction as it becomes necessary and useful, and let the students > have fun. That's the road to universal computer literacy. Comments? > > --John John, I'm in 100% agreement with you. I believe passionately in teaching for success. My goal is not to "weed out" the smart from the dumb, but to bring people from where they started to a higher level. Experience says you do that by starting with the concrete and then proceeding to the abstract, not the other way around. I like to compare learning computer programming to learning a natural language. I myself have studied foreign languages, and have observed in 3 of our 4 children the fascinating process of learning English starting from nothing (the youngest is just starting the process.) It is very clear to me that they learn the concept of Apple by eating one. Later on they learn the word. It has to happen in that order. The human mind has to have something concrete upon which to hang the abstract concepts. For this reason, Python's interactive interpreter is a great asset for teaching. The physical act of typing and seeing responses in real-time greatly speeds up, for example, learning the behavior of lists. Learning the abstract concept of sequences comes very naturally once you've played with lists for a while. Someone said earlier they couldn't understand the fascination of teaching children. I don't intend to change your mind on that issue, but just want to state that few things are more enjoyable than sharing with children (especially your own children) something you are truly interested in and that you think is important. As for computer programming for everyone, it would be a better world if the leaders in it had a clue. Since we don't know which of the rising generation will be the leaders of tomorrow (and since everyone matters, "leader" or not), let's educate everyone we can. From john.zelle at wartburg.edu Thu Apr 22 13:34:30 2004 From: john.zelle at wartburg.edu (John Zelle) Date: Thu Apr 22 13:38:50 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <0HWL00LCN1G6RS@mta2.srv.hcvlny.cv.net> References: <0HWL00LCN1G6RS@mta2.srv.hcvlny.cv.net> Message-ID: <40880226.4080804@wartburg.edu> Arthur wrote: >>So, start with Python, keep things concrete as long as possible, use >>abstraction as it becomes necessary and useful, and let the students >>have fun. That's the road to universal computer literacy. Comments? >> >>--John >> >> > >In my mind, the most concrete way to avoid abstraction (at least in some >sense of the word) and identify programming as it should be - as an >immensely adaptable tool, is to put it to work, out-of-the box, as a tool. > >This class is not about programming, this class is about - physics. Oh, and >yes, we will be doing some programming. > > > I absolutely agree with this. But there's no reason the class can't be about computing/programming instead of physics. The point is simply that this programming is to learn some interesting concepts, not necessarily to learn to be a programmer. >This is *not* pie-in-the-sky. It's happening today. It can't not happen, it >makes so much sense. > > Yes. I hope that it will also happen in introductory CS classes. --John From urnerk at qwest.net Thu Apr 22 14:45:45 2004 From: urnerk at qwest.net (Kirby Urner) Date: Thu Apr 22 14:46:08 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <40880226.4080804@wartburg.edu> Message-ID: Much to agree with in recent posts. I do think the 'class-object' concept should show up early in the game, because it's such a powerful concept even absent programming. It encapsulates our notion of things with internal state and innate capabilities (that covers a lot), plus a notion of hierarchy or taxonomy or tree -- the whole is-a/has-a discussion. This goes back to Aristotle and before. It's deeply engrained. It's a paradigm that works well in cell biology, banking, instrumentation -- which is why programmers, compelled to work in all these knowledge domains, have embraced it. In other words, as an "organizing heuristic", object-speak is too valuable to just leave to the programmers. The philosophers need to run with it. So whereas I'm not for "abstraction simply for the sake of abstraction" necessarily, I do push 'class-object' thinking as a valuable generalization, and then see Python as a way to flesh it out more concretely, in terms of a computer language -- but always going back to analogies outside of programming per se. By contrast, I think the mathematical notion of "set" which we get hammered with starting in elementary school, is quite anemic, comparatively. Sets are just too inert for their own good. Regarding CP4E, policymaking and the like: I'm doing this Adventures in Open Source class come June (high school level), and what I'm thinking to start with are two programs, both written in Python, which play 'scissors paper rock'. The difference (which I expect students to discover through empirically, through running them), is the second one cheats i.e. it looks at the user's answer and *then* decides, on that basis. But to somewhat cover its tracks, it also answers randomly 2/3rds of the time -- so it's not completely obvious that cheating is going on. The lesson here: one advantage of open source is that you're able to audit the program's behavior, IF that is, you're able to read such stuff. But even if you're not able to read it, the fact that it's open means others probably are, meaning all those things in Raymond's book: more bugs get fixed faster, and so on. Another thing about programming is there's a whole set of social interactions involved in computer use. Just grumbling about slow boot times or blue screens of death is fun for awhile, but eventually you might want to participate in more convoluted conversations -- even make friends on that basis. And I think some of the subcultures involved in computing are fairly interesting, worth hanging with. So it's worthwhile to build up one's fluency in this area because of the sense of belonging it engenders (even if one's mode of belonging is to play the contrarian). Of course it's easy to make fun of this motivation, but for shielding I'd say it's a factor of all competing subcultures -- just something to keep in mind. Kirby From ajsiegel at optonline.net Thu Apr 22 15:08:34 2004 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Thu Apr 22 15:11:46 2004 Subject: [Edu-sig] How do we tell truths that might hurt Message-ID: <35d85d35d1bf.35d1bf35d85d@optonline.net> > > Someone said earlier they couldn't understand the fascination of > teachingchildren. I don't intend to change your mind on that > issue, but just want > to state that few things are more enjoyable than sharing with children > (especially your own children) something you are truly interested > in and > that you think is important. Best I can relate to is my interest in athletics. But I retarded my son's progress in tennis by suggesting, once, where on the court it might be advantageous for him to position himself. He tried to develop a strategy that could be effective while positioning himself anywhere, but there. He was perfectly willing to take instruction. Just not from me. But I did play a more important role in his progress. As the someone he had to get good enough to beat. Which he was doing consistently by age 16. But back standing where I told him he should be. So be ready to get challenged. Art From ajsiegel at optonline.net Thu Apr 22 15:43:04 2004 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Thu Apr 22 15:45:36 2004 Subject: [Edu-sig] How do we tell truths that might hurt Message-ID: <2b2df02b9149.2b91492b2df0@optonline.net> Anna writes - >Teaching algorithmic thinking is crucial, imho. And teaching them >that there *are* ways to apply this in their own lives is the other key. As we know, I'm always one to beat the dead horse: I don't think I would be alone in challenging a distinction between "algorithmic thinking" and practicing mathematics. But if we need to start off by fooling people who already know they don't like mathematics into thinking that they are not doing it - well, for the good of the cause, I'll try to play along. But do I get to say "fooled you", at some point in the game? ;) Art From anna at aleax.it Thu Apr 22 18:48:53 2004 From: anna at aleax.it (Anna Ravenscroft) Date: Thu Apr 22 18:48:59 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <2b2df02b9149.2b91492b2df0@optonline.net> References: <2b2df02b9149.2b91492b2df0@optonline.net> Message-ID: <200404230048.53465.anna@aleax.it> On Thursday 22 April 2004 21:43, ajsiegel@optonline.net wrote: > Anna writes - > > >Teaching algorithmic thinking is crucial, imho. And teaching them > >that there *are* ways to apply this in their own lives is the other key. > > As we know, I'm always one to beat the dead horse: You can lead a horse to water, but you can't make it drink. And you can lead a whore to culture, but you can't make her think. ;-) > I don't think I would be alone in challenging a distinction between > "algorithmic thinking" and practicing mathematics. I haven't done mathematics more complex than basic bookkeeping in quite a number of years, but I *have* used the algorithmic thinking skills I learned. You may choose to call algorithmic thinking "practicing math". I recognize that the term came from mathematics. However, as you know, it has applications outside of mathematics - unless you'd like to claim my recipe for cooking potato salad as a mathematical operation. Algorithms in the form of recipes for cooking everything from peanut butter sandwiches to chocolate chip cookies to potato salad abound. As does the ubiquitous "lather, rinse, repeat" algorithm from the back of the shampoo bottle that is used in many introductions to algorithmic thinking. As I said, learning algorithmic thinking is a useful thing, even for folks who never program a line of code in their lives; however, teaching them to apply it beyond mathematics is important, imho. > But if we need to start off by fooling people who already know they don't > like mathematics into thinking that they are not doing it - well, for the > good of the cause, I'll try to play along. Nothing wrong with doing math too, or *starting* with basic math in programming. After all, it's nice to type 2+2 at the interactive prompt in Python and show folks how easy it can be. Just make sure you don't forget to let folks know there are *other* uses. For example, I remember being taught for loops. Every example was along the lines of: >>> for i in range(10): print i*2 It never occurred to the teacher to tell us that for loops were useful for something *other* than iterating over ranges! I finally had to ask if they could be used for anything *else*. Only then did it dawn on him to mention the other possibilities. If I'd known early on that it could also be used for iterating over lists or dicts or strings, I'd have been much better able to see what I could do with it and why it was a really cool thing! Frankly, there are few times I would want to iterate over a range. But there are *lots* of uses for iterating over a list. This is the kind of blindness I think of when you talk about teaching programming with a focus on *math*. Instead of math helping me to learn programming in a concrete way, it built a concrete wall around my understanding of programming. > But do I get to say "fooled you", at some point in the game? ;) As soon as you've finished teaching the lit major or the secretary or the artist to be excited about programming and capable of using it for *their* purposes, you are welcome to say "guess what - you're really doing math!" If that makes you happy - go for it. Personally, I'd rather say "guess what - you're programming!" Anna From hancock at anansispaceworks.com Fri Apr 23 00:18:00 2004 From: hancock at anansispaceworks.com (Terry Hancock) Date: Fri Apr 23 00:02:52 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404221425.29651.anna@aleax.it> References: <1ea34d1ecada.1ecada1ea34d@optonline.net> <200404221425.29651.anna@aleax.it> Message-ID: <200404222318.00669.hancock@anansispaceworks.com> On Thursday 22 April 2004 07:25 am, Anna Ravenscroft wrote: > On Wednesday 21 April 2004 19:36, ajsiegel@optonline.net wrote: > > Yes, a Literature student might be enticed to know that programming could > > be made useful in finding semantic patterns in the works of Joyce. The > > problem is that its hard. > > Yep - it's hard. And continuing to present programming that way is going to > *keep* people away. > > So you start with something easier. > > Do a simple word count program - find out the number of occurrences of "word" > in a particular file -a fairly simple program that shows the prospective > learner that they can use it for things *they're* interested in, without > having to be a wizard! Once they can do that, show them how they can turn it > into a concordance program. Just for the heck of it one day I did a little interactive programming with Python to find the 500 most common words (in order) that occured in a combination of three highly unrelated Project Gutenberg texts. I was trying to create a "throw-out" list for a program I use in my forum software that I'm writing to convert subject lines like "A Thousand and One Arabian Nights" to a mnemonic legal id such as "1001_arabian_nights". The idea is to make URLs that aren't too hard to remember instead of "topic_4348def3203ea339" or something equally nonsensical. An affectation, perhaps. But I wanted to do it that way. The task of finding the common words wasn't really too difficult. First you read the whole file into Python (Python is *so* awesome) then you replace all the punctuation characters and stuff with whitespace, then you tokenize it, then you convert it all to lower case. Then you build a map: # this only does one file -- but you could collect three files # as the source material. import re, string illegal_re = re.compile(r'[^a-zA-Z\s]+') # Match any set of one or more characters not a letter or whitespace words = [w for w in illegal_re.sub(' ', open('myfile', 'r').read()).lower().split() if len(w)>2] # Note the list comp is to ditch 1 and 2 character words which I don't care about # because I can safely toss ALL of those before culling most common words. word_freq = {} for word in words: word_freq[word] = word_freq.get(word, 0) + 1 word_freq = word_freq.items() word_freq.sort(lambda a,b: cmp(b[1],a[1])) for word, freq in word_freq[:500]: print "%30s %10d" % (word, freq) Now that wasn't terribly difficult, was it? ;-) This is the sort of thing that can easily be done as a non-mathematical programming problem. I didn't actually do this as a program, originally. I was just tinkering in the interpreter, using Python as an interactive data language. Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From ajsiegel at optonline.net Fri Apr 23 06:28:48 2004 From: ajsiegel at optonline.net (Arthur) Date: Fri Apr 23 06:28:54 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404222318.00669.hancock@anansispaceworks.com> Message-ID: <0HWM00MEKD3WA9@mta9.srv.hcvlny.cv.net> Terry - > > import re, string > > illegal_re = re.compile(r'[^a-zA-Z\s]+') Huh? > words = [w for w in illegal_re.sub(' ', open('myfile', > 'r').read()).lower().split() if len(w)>2] Whoa? > > word_freq = {} > for word in words: > word_freq[word] = word_freq.get(word, 0) + 1 > > word_freq = word_freq.items() > word_freq.sort(lambda a,b: cmp(b[1],a[1])) Hmmm? > > for word, freq in word_freq[:500]: > print "%30s %10d" % (word, freq) ?? > Now that wasn't terribly difficult, was it? ;-) Piece of cake! Art From anna at aleax.it Fri Apr 23 06:43:48 2004 From: anna at aleax.it (Anna Ravenscroft) Date: Fri Apr 23 06:43:54 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404222318.00669.hancock@anansispaceworks.com> References: <1ea34d1ecada.1ecada1ea34d@optonline.net> <200404221425.29651.anna@aleax.it> <200404222318.00669.hancock@anansispaceworks.com> Message-ID: <200404231243.48739.anna@aleax.it> On Friday 23 April 2004 06:18, Terry Hancock wrote: > On Thursday 22 April 2004 07:25 am, Anna Ravenscroft wrote: > > On Wednesday 21 April 2004 19:36, ajsiegel@optonline.net wrote: > > > Yes, a Literature student might be enticed to know that programming > > > could be made useful in finding semantic patterns in the works of > > > Joyce. The problem is that its hard. > > > > Yep - it's hard. And continuing to present programming that way is going > > to *keep* people away. > > > > So you start with something easier. > > > > Do a simple word count program - find out the number of occurrences of > > "word" in a particular file -a fairly simple program that shows the > > prospective learner that they can use it for things *they're* interested > > in, without having to be a wizard! Once they can do that, show them how > > they can turn it into a concordance program. > > Just for the heck of it one day I did a little interactive > programming with Python to find the 500 most common words (in > order) that occured in a combination of three highly unrelated > Project Gutenberg texts. I was trying to create a "throw-out" > list for a program I use in my forum software that I'm writing > to convert subject lines like "A Thousand and One Arabian Nights" > to a mnemonic legal id such as "1001_arabian_nights". > > The idea is to make URLs that aren't too hard to remember instead > of "topic_4348def3203ea339" or something equally nonsensical. > > An affectation, perhaps. But I wanted to do it that way. > > The task of finding the common words wasn't really too difficult. > > First you read the whole file into Python (Python is *so* awesome) > then you replace all the punctuation characters and stuff with > whitespace, then you tokenize it, then you convert it all to > lower case. Then you build a map: > > # this only does one file -- but you could collect three files > # as the source material. > > import re, string > > illegal_re = re.compile(r'[^a-zA-Z\s]+') > # Match any set of one or more characters not a letter or whitespace > > words = [w for w in illegal_re.sub(' ', open('myfile', > 'r').read()).lower().split() if len(w)>2] # Note the list comp is to ditch > 1 and 2 character words which I don't care about # because I can safely > toss ALL of those before culling most common words. > > word_freq = {} > for word in words: > word_freq[word] = word_freq.get(word, 0) + 1 > > word_freq = word_freq.items() > word_freq.sort(lambda a,b: cmp(b[1],a[1])) > > for word, freq in word_freq[:500]: > print "%30s %10d" % (word, freq) > > > Now that wasn't terribly difficult, was it? ;-) > This is the sort of thing that can easily be > done as a non-mathematical programming problem. Exactly my point. And this kind of thing needs to be presented to students early enough that they realize that they can use Python (or other programming) for their own interests. For those promoting a math focus in teaching programming: It *doesn't* have to be Math versus GUI and Games. It can be text processing, or date manipulation, or any number of other thing. While I understand the argument that "it's really just math in disguise", an exclusive (or primary) focus on math seems to me to forget to present these simple programs that show the applicability of programming to other areas of endeavor. Another example of non-math uses for programming: My first Python program was calculating the number of actual days in training for a bunch of students who either trained weekdays *OR* trained weekends, but had to account for sick days and holidays. I had been shown how they did this in the office - they walked up to the calendar hanging on the wall and literally went "1, 2, 3..." It was terribly error-prone: people miscounted, people forgot about holidays and sick days... Since this was used for determing when the students finished probation (90 *actual working days*, not simply 90 calendar days), it was pretty important to get it right. There was, I think, one (maybe two) lines of code actually dealing with mathematical calculations. The rest of the code was there to gather and manipulate all the right information in order for those calculations to be accurate (this was before date objects in Python). Was this a "math" program? Not in my mind, it wasn't. It was a date-handling program. Was there some math in it? Sure. But, I can pretty much use a calculator for the math parts of any program I've written. That wasn't the important part. The important part was handling all the conditions and prompting the user to do all the steps (check for sick days, check for holidays - which I later put into a pickled holidays dict). Being able to do the step by step procedural description of exactly what my conditions were and what to do about them, etc, is what I mean by algorithmic thinking. Now, you might say that this was entirely a mathematical problem. In some ways, yes, it would qualify as a "word problem" in standard parlance, I guess. So would my program to calculate Italian taxes. OTOH - the parts that are *useful* to me is having the program prompt me for some bits of information (e.g., is this a foreign or domestic client?) and have it use that to determine *which* calculations need to be done! The math calculations were the easy part - most of those I could do in my head. It's figuring out which ones to do for a particular invoice that was the long, involved (non-mathematical) process, that I don't have to do anymore, because I created my Python program. [smile] I realize we're probably talking at cross-purposes. You say math, I think numerical calculations, algebraic equations, trigonometry, calculus. I have very little interest in numerical calculations, etc. - it's all the *other* really interesting things that I can do with programming (text processing, date manipulation, etc) that got me back into it, and that I wish I had known about 20 years ago. Those are the things I'm advocating for being presented in introductory programming classes in addition to the math - so people know how they can apply programming in their lives. Anna From ajsiegel at optonline.net Fri Apr 23 07:50:02 2004 From: ajsiegel at optonline.net (Arthur) Date: Fri Apr 23 07:50:06 2004 Subject: [Edu-sig] This morning Yahoo headlines Message-ID: <0HWM00HIOGVU3W@mta1.srv.hcvlny.cv.net> Science classes are a bore: http://story.news.yahoo.com/news?tmpl=story&cid=570&ncid=753&e=1&u=/nm/20040 422/sc_nm/science_classes_dc Nice to see the issue getting some attention. And for once I seem to agree with the "experts". Art From jason.cunliffe at verizon.net Fri Apr 23 12:03:44 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Fri Apr 23 12:06:50 2004 Subject: [Edu-sig] Reuters.com -- College Science Classes Are a Bore Message-ID: <000501c4294c$8e8bdac0$6501a8c0@vaio> WASHINGTON (Reuters) - College science lectures are a big bore to students and need to be replaced with hands-on classes where they can actually learn better, a team of experts said on Thursday. "Revolutionary" courses that mimicked the way real scientists actually work -- by doing science instead of reading about it -- actually helped students learn and encouraged them to take more science classes, the experts said. Dr. Robert Beichner, a professor of physics at North Carolina State University, and colleagues said educators were still not aware that there are better ways to teach science... http://reuters.com/newsArticle.jhtml?type=topNews&storyID=4913341 From urnerk at qwest.net Fri Apr 23 12:09:00 2004 From: urnerk at qwest.net (Kirby Urner) Date: Fri Apr 23 12:09:10 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404231243.48739.anna@aleax.it> Message-ID: > [smile] I realize we're probably talking at cross-purposes. You say math, > I think numerical calculations, algebraic equations, trigonometry, > calculus. To some extent cross-purposes, yes. At least in my case, I've been advocating programming-to-learn as an aspect of the math curriculum, i.e. we should phase more programming into mathematics courses. That math is a core focus is simply a given, in this context. My presentation at LinuxFest was somewhat along these lines. http://www.4dsolutions.net/presentations/linuxfest2004.ppt (or pdf) [in Windows, ppt misses pg 7, while in pdf you don't get gifs animating] A young couple approached me afterward and said their math classes *did* include some programming (BASIC). But that was in the 1980s (I was in publishing then -- at McGraw-Hill, working on a book entitled 'Computer Literacy' among others). My impression is that programming in math courses happens *less* nowadays, in part because BASIC is no longer regarded as quasi-universal (it's sorta pass?), and curriculum writers haven't felt confident about what to put in its place (e.g. Java starts to suck up a *lot* more time, in terms of needing background discussion). Given how entrenched the status quo math curriculum is, I'm now seeing pre-college CS as a to-some-extent parallel sequence which would cover some of the *same* math topics (e.g. Boolean logic, sets, maps, permutations, coordinate geometry and trig) but from a different angle -- just throwing Python into the mix would make a big difference. But none of this is to say *only* looking at math topics is relevant. I think word frequency stuff is cool too, and whatever other humanities topics we can think of, that are within reach from a certain level. It's just that math is a fact of life, is going to be there, so why not make it more interesting and interactive, too? Kirby From deanlake at fbeedle.com Fri Apr 23 13:01:33 2004 From: deanlake at fbeedle.com (Dean Lake) Date: Fri Apr 23 13:01:52 2004 Subject: [Edu-sig] Reuters.com -- College Science Classes Are a Bore In-Reply-To: <000501c4294c$8e8bdac0$6501a8c0@vaio> References: <000501c4294c$8e8bdac0$6501a8c0@vaio> Message-ID: <6.0.0.22.0.20040423095929.01c454e8@192.168.0.249> The real problem is that no one wants to pay for the materials to make it happen. At 09:03 AM 4/23/2004, Jason Cunliffe wrote: >WASHINGTON (Reuters) - College science lectures are a big bore to students >and need to be replaced with hands-on classes where they can actually learn >better, a team of experts said on Thursday. > >"Revolutionary" courses that mimicked the way real scientists actually >work -- by doing science instead of reading about it -- actually helped >students learn and encouraged them to take more science classes, the experts >said. >Dr. Robert Beichner, a professor of physics at North Carolina State >University, and colleagues said educators were still not aware that there >are better ways to teach science... > >http://reuters.com/newsArticle.jhtml?type=topNews&storyID=4913341 > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://mail.python.org/mailman/listinfo/edu-sig From ajsiegel at optonline.net Fri Apr 23 13:18:58 2004 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Fri Apr 23 13:22:14 2004 Subject: [Edu-sig] Reuters.com -- College Science Classes Are a Bore Message-ID: <3837a7382505.3825053837a7@optonline.net> > The real problem is that no one wants to pay for the materials to > make it > happen. Probably true. But PCs are plentiful. Python is free. As is Scipy, for example. http://www.scipy.org/ Real scientists, who are not primarily programmers, seem to be doing some important things with these kinds of tools. But probably more to the point is the kind of curriculum being built with/around VPython http://www4.ncsu.edu/~rwchabay/mi/ The same VPython mentioned in the context of art, for children. Which at least indicates we are probably not totally in pie-in-the-sky territory in believing students in a college level Introduction to Physics class might handle it OK. Art From anna at aleax.it Fri Apr 23 13:39:10 2004 From: anna at aleax.it (Anna Ravenscroft) Date: Fri Apr 23 13:39:35 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: References: Message-ID: <200404231939.10577.anna@aleax.it> On Friday 23 April 2004 18:09, Kirby Urner wrote: > But none of this is to say *only* looking at math topics is relevant. I > think word frequency stuff is cool too, and whatever other humanities > topics we can think of, that are within reach from a certain level. > > It's just that math is a fact of life, is going to be there, so why not > make it more interesting and interactive, too? Hey! We agree! Anna From ajsiegel at optonline.net Fri Apr 23 13:41:42 2004 From: ajsiegel at optonline.net (ajsiegel@optonline.net) Date: Fri Apr 23 13:44:36 2004 Subject: [Edu-sig] Reuters.com -- College Science Classes Are a Bore Message-ID: <372adb3723b7.3723b7372adb@optonline.net> > The real problem is that no one wants to pay for the materials to > make it > happen. And of course there is the opposite problem. Getting the academic world to believe that materials - in the case of Python representing how many person-days of effort??? - might not *need* to be paid for. And can yet be taken eminently seriously. Getting the check approved is part of the "certification" process. No checks, no certification. I am willing to volunteer - again, for the cause - to be the designated recipient of checks from any institution that finds the process unavoidable. ;) Art From sandysj at juno.com Fri Apr 23 16:48:39 2004 From: sandysj at juno.com (Jeff Sandys) Date: Fri Apr 23 16:50:30 2004 Subject: [Edu-sig] Linuxfest and iPython Message-ID: <20040423.134923.21336.457631@webmail25.nyc.untd.com> Thanks, Kirby, for giving your presentation at Linuxfest. One thing Kirby mentioned in his post that I found real interesting is how to slowly build a class in IDLE. I would use a notepad, cut and paste each modified class. What Kirby did is store the class with each instance: class Q: def __init__(self): self.Q = Q.__class__ then is later versions he would use self.Q instead of Q to create the new objects: class Qv1(Q): def method(self): return self.Q() Of course I am leaving a lot of stuff out here, see his slides for the example. The other thing that Kirby mentioned is that high school students should be able to understand the RSA algorithm. Until last year I would have thought that was extreme, but then I read, _In Code: A young woman's Mathematical Journey_ by Sarah Flannery. This is a wonderful book for anyone interested in math. The book is divided into three parts; the first part is her childhood experiences of the math puzzles that her father would put up on the caulk board in their kitchen, then she discusses modulus math, the RSA algorithm and another encryption algorithm she helped develop as a summer intern, the third part is her journey as the winner of the Ireland young scientist contest and the following contests and presentations around the world. The book has a clear and understandable explanation of the RSA algorithm along with the Mathematica code she used. The book should be an inspiration to all, especially to young women with an inclination to math, who would rather be playing "football" and ride horses, as the author, high schooler Sarah Flannery, would. Thanks, Jeff Sandys ________________________________________________________________ The best thing to hit the Internet in years - Juno SpeedBand! Surf the Web up to FIVE TIMES FASTER! Only $14.95/ month - visit www.juno.com to sign up today! From urnerk at qwest.net Fri Apr 23 14:06:40 2004 From: urnerk at qwest.net (Kirby Urner) Date: Fri Apr 23 17:08:05 2004 Subject: [Edu-sig] Linuxfest and iPython In-Reply-To: <20040423.134923.21336.457631@webmail25.nyc.untd.com> References: <20040423.134923.21336.457631@webmail25.nyc.untd.com> Message-ID: <200404231406.41196.urnerk@qwest.net> > The other thing that Kirby mentioned is that high school > students should be able to understand the RSA algorithm. > Until last year I would have thought that was extreme, > but then I read, _In Code: A young woman's Mathematical > Journey_ by Sarah Flannery. This is a wonderful book > for anyone interested in math. I completely agree. I also think cryptography is one of those "sweet spot" intersection zones between multiple disciplines: math, engineering, history, humanties. As per my LinuxFest talk, I highly recommend Neal Stephenson's 'Cryptonomicon' as another good story for a high schooler's library (the material is a bit more R-rated than 'In Code' -- all the better). Kirby From urnerk at qwest.net Fri Apr 23 14:22:00 2004 From: urnerk at qwest.net (Kirby Urner) Date: Fri Apr 23 17:22:06 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404231939.10577.anna@aleax.it> References: <200404231939.10577.anna@aleax.it> Message-ID: <200404231422.00159.urnerk@qwest.net> On Friday 23 April 2004 01:39 pm, Anna Ravenscroft wrote: > On Friday 23 April 2004 18:09, Kirby Urner wrote: > > But none of this is to say *only* looking at math topics is relevant. I > > think word frequency stuff is cool too, and whatever other humanities > > topics we can think of, that are within reach from a certain level. > > > > It's just that math is a fact of life, is going to be there, so why not > > make it more interesting and interactive, too? > > Hey! We agree! > > Anna Apropos to "whatever other humanities topics", I just spent the last couple hours writing a screen scraper to lookup movies in IMDb (the movie database). Yes, there's already such a Python module at: http://www.python.org/pypi?:action=browse&asdf=256 (top entry for me -- right above "KirbyBase"). But this one didn't work for me (got errors just running a demo). So... thought I'd just cobble one together myself, while sitting here at Powell's Books, sipping a coffee (rare these days), and connecting by wireless from my Linux laptop (fun fun!). I'll upload the code to http://www.4dsolutions.net/ocn/python/getmovie.py for anyone who wants to play around with it. So far, it only extracts the Director and Tagline (if there is one). I'll overwrite this file at will if/as I add any features. To use: >>> import getmovie >>> getmovie.test() Returns: -------------- Movie West Side Story (1961) /title/tt0055614/ Director: Jerome Robbins Tagline: The Screen Achieves One of the Great Entertainments in the History of Motion Pictures(more) -------------- Movie Soylent Green (1973) /title/tt0070723/ Director: Richard Fleischer Tagline: It's the year 2022... People are still the same. They'll do anything to get what they need. And they need SOYLENT GREEN. -------------- Movie Bullet (1996) /title/tt0115781/ Director: Julien Temple -------------- Movie Bullet (1984) /title/tt0350664/ Director: M.S. Mani -------------- Movie Bullet (1999) /title/tt0305342/ Director: Cesar Montano -------------- Movie Bullet (1976) /title/tt0154265/ Director: Vijay Anand -------------- Movie Bullet (1985) /title/tt0155575/ Director: Bapu -------------- Movie Bullet (1993) /title/tt0279711/ Director: Apichatpong Weerasethakul -------------- Movie Bob Hayes /name/nm0370915/ -------------- Movie Fists of Freedom: The Story of the '68 Summer Games (1999) /title/tt0275353/ ========== Too many movies named Bullet! I recall Jeff Sandys @ LinuxFest saying he'd written a similar screen scraper to monitor a stock or two -- and send an email if it changed by some amount. Kirby From urnerk at qwest.net Fri Apr 23 14:50:00 2004 From: urnerk at qwest.net (Kirby Urner) Date: Fri Apr 23 17:50:06 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404231422.00159.urnerk@qwest.net> References: <200404231939.10577.anna@aleax.it> <200404231422.00159.urnerk@qwest.net> Message-ID: <200404231450.00050.urnerk@qwest.net> > Yes, there's already such a Python module at: > http://www.python.org/pypi?:action=browse&asdf=256 (top entry for me -- > right above "KirbyBase"). But this one didn't work for me (got errors just > running a demo). > PS: http://www.4dsolutions.net/cgi-bin/py2html.cgi?script=/ocn/python/getmovie.py gives you the code with syntax highlighting (using another Python module) Kirby From ajsiegel at optonline.net Fri Apr 23 21:43:46 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 24 07:22:37 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404231243.48739.anna@aleax.it> Message-ID: <0HWN00G6YJH1UZ@mta4.srv.hcvlny.cv.net> > It *doesn't* have to be Math versus GUI and Games. It can be text > processing, > or date manipulation, or any number of other thing. While I understand the > argument that "it's really just math in disguise", an exclusive (or > primary) > focus on math seems to me to forget to present these simple programs that > show the applicability of programming to other areas of endeavor. I couldn't disagree more vehemently. It would make what we are talking about so much more significant if we helped people understand it was *math*, through programming, that they were putting to their service in those other areas of endeavor. Take that away from the recipe, and for me, this is all a pretty trivial business. Art From dajoy at openworldlearning.org Sat Apr 24 09:30:38 2004 From: dajoy at openworldlearning.org (Daniel Ajoy) Date: Sat Apr 24 09:31:29 2004 Subject: [Edu-sig] Re: How do we tell truths that might hurt Message-ID: <408A25AE.29058.2DBB4F@localhost> From: Anna Ravenscroft > > In other realms, the path to be able to do something actually useful is > > much longer. > > The path isn't that long and is far likelier to keep their interest. > > Teaching folks that almost any repetitive task involving text, dates, or > numbers can be automated by writing a simple program is more likely to get > them excited about programming than teaching them that you can add 2+ 2 or > solve quadratic equations... I agree with Anna. Common tedious tasks that people regularly do are: * Matching "similar" names in two different lists (say 200 names in each list) * Finding the difference of two lists of names, the intersection. * Making tables out of lists (changing the structure of a data set) * Generating repetitive texts, or graphics, with little variations. Knowing a little programming could help them. The following is a random sentence generator program (I don't find it harder than "technical/scientific computations"): to rand.sentence output (sentence noun.phrase verb.phrase) end to noun.phrase output (sentence "the adjective noun) end to verb.phrase output (sentence verb noun.phrase) end to adjective output pick [red blue green big small fat skinny loud quiet] end to noun output pick [computer elephant boy girl aardvark] end to verb output pick [likes eats visits hates paints] end ---- ? print rand.sentence the red boy visits the blue elephant ? print rand.sentence the quiet aardvark eats the quiet computer ? print rand.sentence the red computer likes the red elephant ? print rand.sentence the big aardvark likes the skinny elephant Here is a link to a "poetry generator" and other programs in the "Language Arts" section in MicroWorlds Logo: http://www.microworlds.com/library/languagearts/ Daniel From hancock at anansispaceworks.com Sat Apr 24 11:15:38 2004 From: hancock at anansispaceworks.com (Terry Hancock) Date: Sat Apr 24 11:00:20 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <0HWM00MEKD3WA9@mta9.srv.hcvlny.cv.net> References: <0HWM00MEKD3WA9@mta9.srv.hcvlny.cv.net> Message-ID: <200404241015.38670.hancock@anansispaceworks.com> On Friday 23 April 2004 05:28 am, Arthur wrote: > Terry - > > > > import re, string > > > > illegal_re = re.compile(r'[^a-zA-Z\s]+') > > Huh? Well, it does what the comment you *snipped out* said it does! Want to figure it out yourself? This is a trivial example of a regex -- see http://www.python.org/doc/2.3.3/lib/re-syntax.html should take you less than 10 minutes to get this one. That's why I haven't bothered to break it up symbolically, the way you can do in Python: any_letter = r'a-zA-Z' whitespace = r'\s' not_in = r'[^%s]' atleast_one = r'%s+' illegal_re = atleast_one % (not_in % (any_letter + whitespace)) In other words, any run of at least one character not in the set of any letter or whitespace is matched as "illegal". Later on, we use this to replace them with spaces. > > words = [w for w in illegal_re.sub(' ', open('myfile', > > 'r').read()).lower().split() if len(w)>2] > > Whoa? This kind of functional approach is very compact and is easy to debug in the interactive shell. It's sort of like writing an equation with the variables expanded. If I were doing something really tricky, I'd probably expand it, but it's just an example. ;-) You could also write it like this: file_where_my_text_is_located = open('myfile', 'r') string_from_the_file = file_where_my_text_is_located.read() lowercase_string_from_file = string_from_the_file.lower() string_containing_only_the_words = illegal_re.sub(' ', lowercase_string_from_file) all_the_words_in_sequence = string_containing_only_the_words.split() all_the_words_3_or_more_chars = [w for w in all_the_words_in_sequence if len(w)>2] words = all_the_words_3_or_more_chars Are we happy, now, Art? :-P :-D > > word_freq = {} > > for word in words: > > word_freq[word] = word_freq.get(word, 0) + 1 Well known algorithm (maybe "trick" is the right word), to extract frequency data from a list, taking advantage of the properties of dictionaries. When a word is encountered you increment that word's mapping by 1. If it's not there, it gets put there with a frequency of 1. > > word_freq = word_freq.items() > > word_freq.sort(lambda a,b: cmp(b[1],a[1])) > > Hmmm? Oh, come on that's so obvious. This is how you sort a dictionary. You make it a list of tuples then sort that. The only remotely difficult thing is that you have to sort on the *second* element of the tuple, which is not the default. Otherwise the listing would've been alphabetical. (Which might be useful for some other purpose). > > for word, freq in word_freq[:500]: > > print "%30s %10d" % (word, freq) > > ?? What didn't you understand? I'm printing the first 500 elements of the above list so they're fairly easy to read. Pipe it through 'less' or something if you want to page through it. Sheesh, I could've made it print in columns if I wanted to be fancy. You do realize I typed this program straight into my mail client off the top of my head -- I never saved the original. I did paste and test in Python to make sure it would work, though. I wasn't exactly trying to meet style standards. ;-) > > Now that wasn't terribly difficult, was it? ;-) > > Piece of cake! I'd say it was about as easy, if not easier than writing a function kepler() to solve the (transcendental) inverse of Kepler's equation (solves M = E - e * sin(E) for 'E', i.e. E = kepler(M)). Which was the first real program I ever wrote in FORTRAN (at least the first one that ever compiled). For example, I don't think I could do that off the top of my head, like I did with this puzzle. I'd have to go look up "Newton's Method" or whatever as a standard algorithm (sorry to say, I have forgotten it). Both programs would be about the same length though -- no more than 20 LoC. I don't think any knowledge domain is particularly more or less difficult -- it's just a question of what you're interested in learning. Apparently you don't find the pattern-recognition capabilities of regexes very interesting, because they don't allow you to do things that interest you. So you view them as opaque, like a student who skips the equations when reading their textbook. Some people feel that way about geometry. I find both pretty interesting, myself. ;-) Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From jason.cunliffe at verizon.net Sat Apr 24 11:19:54 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sat Apr 24 11:19:50 2004 Subject: [Edu-sig] Re: How do we tell truths that might hurt References: <408A25AE.29058.2DBB4F@localhost> Message-ID: <005901c42a0f$98f84520$6501a8c0@vaio> > I agree with Anna. > > Common tedious tasks that people regularly do are: > > * Matching "similar" names in two different lists (say 200 names in each list) > * Finding the difference of two lists of names, the intersection. > * Making tables out of lists (changing the structure of a data set) > * Generating repetitive texts, or graphics, with little variations. > > Knowing a little programming could help them. hmm... yes damn right. Let's add to the list above some examples of those in current large everyday tasks: -- Google -- Proteomics -- Shopping and Bank accounts -- Communications and Internet -- Geographic Information Systems -- etc The key skill to impart and develop is surely *thinking* clearly and learning how to express that clear thinking in the appropriate language, which include speech, prose, computer programming and also Mathematics. I wish I'd been taught Math better along with the rich opportunities programming provide now. But more than the math, I really wish we'd had a range of classes in *thinking*, play, experimentation, analysis, synthesis, algorithmic [logical process] expression, etc. You cam call it what you want, but the issues are the same and programming applies at many levels. The modeling process of thinking and thus learning about processes is common to so much of life. Computer programming is a wonderful tool to develop these essential core intellectual skills. It's also a path to developing proficiency in programming itself which provides a delirious rich laboratory for mathematics. -- Jason From ajsiegel at optonline.net Sat Apr 24 18:15:55 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 24 18:15:59 2004 Subject: [Edu-sig] Re: How do we tell truths that might hurt In-Reply-To: <005901c42a0f$98f84520$6501a8c0@vaio> Message-ID: <0HWP0066Y4IKZE@mta5.srv.hcvlny.cv.net> > hmm... yes damn right. > Let's add to the list above some examples of those in current large > everyday > tasks: > > -- Google > -- Proteomics > -- Shopping and Bank accounts > -- Communications and Internet > -- Geographic Information Systems > -- etc > The key skill to impart and develop is surely *thinking* clearly and > learning how to express that clear thinking in the appropriate language, > which include speech, prose, computer programming and also Mathematics. Computer programming is mathematics. A stand, for which I try to quote substantial authority. And working in Python remains programming - I know, among other reasons, because I encounter enough people substantially better at it than I, who have spent substantially less time with Python, in particular, than I. But came to it with a much better background in programming. Reference the thread heading. Which references Dijkstra: at http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html Possibilities: Dijsktra is wrong, I am misinterpreting what Dijsktra means. Dijsktra is a dead white man, so let's move on. We don't (tell the truths that might hurt). Art From ajsiegel at optonline.net Sat Apr 24 18:33:27 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 24 18:33:30 2004 Subject: [Edu-sig] Re: How do we tell truths that might hurt In-Reply-To: <005901c42a0f$98f84520$6501a8c0@vaio> Message-ID: <0HWP008RN5BSCJ@mta5.srv.hcvlny.cv.net> > > I wish I'd been taught Math better along with the rich opportunities > programming provide now. > But more than the math, I really wish we'd had a range of classes in > *thinking*, play, experimentation, analysis, synthesis, algorithmic > [logical > process] expression, etc. You cam call it what you want That's good. I'll; call it math and science. All of it, if it descends from process of putting programming to practical use, or to have fun with. Mot casually though. Importantly. Art > are > the same and programming applies at many levels. The modeling process of > thinking and thus learning about processes is common to so much of life. > Computer programming is a wonderful tool to develop these essential core > intellectual skills. > It's also a path to developing proficiency in programming itself which > provides a delirious rich laboratory for mathematics. > > -- Jason > > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig From ajsiegel at optonline.net Sat Apr 24 18:37:44 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 24 18:37:50 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404241015.38670.hancock@anansispaceworks.com> Message-ID: <0HWP002J35ISKS@mta3.srv.hcvlny.cv.net> > > > word_freq.sort(lambda a,b: cmp(b[1],a[1])) > > > > Hmmm? > > Oh, come on that's so obvious. There are those of us who still don't lambda. It is always easier to read at the level one writes, or in the manner in one writes. So I go a little mushy when I see a "lambda". Art From ajsiegel at optonline.net Sat Apr 24 18:43:41 2004 From: ajsiegel at optonline.net (Arthur) Date: Sat Apr 24 18:43:44 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404241015.38670.hancock@anansispaceworks.com> Message-ID: <0HWP00CJG5TEKG@mta7.srv.hcvlny.cv.net> > > I'd say it was about as easy, if not easier than writing a > function kepler() to solve the (transcendental) inverse of > Kepler's equation (solves M = E - e * sin(E) for 'E', i.e. > E = kepler(M)). Which was the first real program I ever > wrote in FORTRAN (at least the first one that ever compiled). > I can't be sure, but I am suspecting that it was Keplers equation which was the issue, not the programming to solve it. If the course requires you - courses sometimes do that ;) - to understand Keplers equation, we seem to have a home run by knowing enough programming to solve it that way. What is the Python solution? Can we make a head-to-head with your text processing solution? Art From hancock at anansispaceworks.com Sat Apr 24 20:06:28 2004 From: hancock at anansispaceworks.com (Terry Hancock) Date: Sat Apr 24 19:51:00 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <0HWP00CJG5TEKG@mta7.srv.hcvlny.cv.net> References: <0HWP00CJG5TEKG@mta7.srv.hcvlny.cv.net> Message-ID: <200404241906.28822.hancock@anansispaceworks.com> On Saturday 24 April 2004 05:43 pm, Arthur wrote: > > I'd say it was about as easy, if not easier than writing a > > function kepler() to solve the (transcendental) inverse of > > Kepler's equation (solves M = E - e * sin(E) for 'E', i.e. > > E = kepler(M)). Which was the first real program I ever > > wrote in FORTRAN (at least the first one that ever compiled). > > > > I can't be sure, but I am suspecting that it was Keplers equation which was > the issue, not the programming to solve it. If the course requires you - > courses sometimes do that ;) - to understand Keplers equation, we seem to > have a home run by knowing enough programming to solve it that way. No Kepler's equation is not that complicated, it's remembering the algorithm for inverting the equation, which does something like "guess an answer, compute the derivative at that point, linearly project the resulting location of the solution, then use that as the next guess and so on, until you're within tolerance of the solution". But I've forgotten how to do that in detail. When I get a break, I'm probably going to have to go look that up, because I'm a little embarrassed about not remembering. ;-) IMHO, that kind of algorithm solving is precisely what math/science programming is all about. I was taking orbital mechanics at the time, so the equation was familiar. Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From urnerk at qwest.net Sun Apr 25 16:33:47 2004 From: urnerk at qwest.net (Kirby Urner) Date: Sun Apr 25 16:33:51 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404241906.28822.hancock@anansispaceworks.com> Message-ID: > -----Original Message----- > From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On > Behalf Of Terry Hancock > Sent: Saturday, April 24, 2004 5:06 PM > To: edu-sig@python.org > Subject: Re: [Edu-sig] How do we tell truths that might hurt > > On Saturday 24 April 2004 05:43 pm, Arthur wrote: > > > I'd say it was about as easy, if not easier than writing a > > > function kepler() to solve the (transcendental) inverse of > > > Kepler's equation (solves M = E - e * sin(E) for 'E', i.e. > > > E = kepler(M)). Which was the first real program I ever > > > wrote in FORTRAN (at least the first one that ever compiled). > > > I found a C program that does kepler(m) -- so far I'm not feeling motivated to rewrite it in Python (just compiling it using gcc is more fun for me). http://barnyard.syr.edu/quickies/kepler.c With material like this, one requires additional background i.e. what it's used for etc. I recall doing a Newton's Method curriculum segment in Python awhile back -- certainly there'd be ways to redevelop this turf to make it Python friendly. Kirby From hancock at anansispaceworks.com Mon Apr 26 09:23:10 2004 From: hancock at anansispaceworks.com (Terry Hancock) Date: Mon Apr 26 09:07:33 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: References: Message-ID: <200404260823.10436.hancock@anansispaceworks.com> On Sunday 25 April 2004 03:33 pm, Kirby Urner wrote: > I found a C program that does kepler(m) -- so far I'm not feeling motivated > to rewrite it in Python (just compiling it using gcc is more fun for me). > http://barnyard.syr.edu/quickies/kepler.c > > With material like this, one requires additional background i.e. what it's > used for etc. Cool! I may have a go at re-writing at least one method in Python. I'd better keep my mouth shut until I actually do it, though. ;-) Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From ajsiegel at optonline.net Mon Apr 26 09:53:50 2004 From: ajsiegel at optonline.net (Arthur) Date: Mon Apr 26 09:53:58 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: <200404260823.10436.hancock@anansispaceworks.com> Message-ID: <0HWS003546LIVX@mta8.srv.hcvlny.cv.net> > > > > With material like this, one requires additional background i.e. what > it's > > used for etc. Yes, give it context. Which has inspired me to try to better practice what I preach, and dive into a book on my shelve: "The Sleepwalkers - A History of Man's changing Vision of the Universe" Arthur Koestler, 1959 It covers the period: Beginning <= Newton With about 25% of its 600 pages focused on the work of Kepler. I am expecting that digesting this work will make solving the equation a more meaningful exercise than that of just solving an equation. Art From ajsiegel at optonline.net Mon Apr 26 10:06:47 2004 From: ajsiegel at optonline.net (Arthur) Date: Mon Apr 26 10:06:50 2004 Subject: [Edu-sig] Our universe Message-ID: <0HWS00DJE77WHQ@mta7.srv.hcvlny.cv.net> I just came across this, for the first time: "An exciting new course for students in all Disciplines:" http://www.wa.gov.au/perthobs/OurUniverse/PDFs/Poster.pdf The demonstration programs are in Python, using VPython. Thrilled to find that PyGeo (as a minor player) is also a required download for the curriculum: http://www.wa.gov.au/perthobs/OurUniverse/software.html Art From christian.mascher at gmx.de Mon Apr 26 11:14:19 2004 From: christian.mascher at gmx.de (Christian Mascher) Date: Mon Apr 26 11:14:39 2004 Subject: [Edu-sig] How do we tell truths that might hurt In-Reply-To: References: Message-ID: <408D274B.8030705@gmx.de> Thanks Arthur, this was a way of telling _a_ truth, without hurting anyone. I think I never really laughed out loud before when reading Edu-Sig (serious postings most of the time). I really enjoyed this! Christian Arthur Siegel wrote: > Date: Fri, 23 Apr 2004 05:28:48 -0500 > From: Arthur > Subject: RE: [Edu-sig] How do we tell truths that might hurt > To: hancock@anansispaceworks.com, edu-sig@python.org > Message-ID: <0HWM00MEKD3WA9@mta9.srv.hcvlny.cv.net> > Content-Type: text/plain; charset=us-ascii > > Terry - > >>import re, string >> >>illegal_re = re.compile(r'[^a-zA-Z\s]+') > > > Huh? > > >>words = [w for w in illegal_re.sub(' ', open('myfile', >>'r').read()).lower().split() if len(w)>2] > > > Whoa? > > >>Now that wasn't terribly difficult, was it? ;-) > > > Piece of cake! > > Art From jason.cunliffe at verizon.net Mon Apr 26 21:24:52 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Mon Apr 26 21:26:31 2004 Subject: [Edu-sig] Talking Stat Blues Message-ID: <000a01c42bf6$714960c0$6501a8c0@vaio> I can't take it any more. I really need your help please.. In these painfully contorted times, media are forever saturating news reports with the latest polls just in. 53% think yes leader x is lying scum 46% said no he's not, he's got Dog on his side 1% undecided etc If you are very lucky they specify the size of the sample. 1000 people perhaps. But they never speak it. Instead we get all this nonsense "Most Martians said ....." "The majority ...." etc I need your help to find a [new] more honest, preferably Pythonic and revealing way to speak about these numbers. Let's assume a population of 300,000,000 And a sample of 1000 53% yay 46 % nay 1% dohnuts My teacher vigorously taught us whenever we saw any % signs to **always** ask out loud "Percentage of What ?" So when I see/hear any polls or statistics, I get pretty crazy because I immediately look for the size of the sample and then ask: "How on this earth can they presume to multiply that tiny sampling from 1000 to 300,000,000 ?" And then I wonder " Why on this earth do other people go along with this madness?" It must be something to do with how they were taught to read and speak basic math. And since we are all here praying for the days when programming is an integral part of our basic literacy, I want to hear your best suggestions about how we can prevent such nonsense in the future. Spoken dialogue with Python examples please. thank you very much -- Jason -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20040426/befc88aa/attachment.html From ajsiegel at optonline.net Tue Apr 27 09:51:20 2004 From: ajsiegel at optonline.net (Arthur) Date: Tue Apr 27 09:51:22 2004 Subject: [Edu-sig] Talking Stat Blues Message-ID: <0HWU006TL15LQ3@mta5.srv.hcvlny.cv.net> Jason writes - >I can't take it any more. I really need your help please.. >In these painfully contorted times, media are forever saturating news >reports with the latest polls just in. >53% think yes leader x is lying scum >46% said no he's not, he's got Dog on his side >1% undecided >etc >If you are very lucky they specify the size of the sample. 1000 people >perhaps. >But they never speak it. Instead we get all this nonsense >"Most Martians said ....." >"The majority ...." >etc >I need your help to find a [new] more honest, preferably Pythonic and >revealing way to speak about these numbers. Jason, you sure expect a lot of Python. But as it happens, I understand that Python 2.4 will include a statistics module. But I think you will find it to be part of the problem, rather than part of the solution. As I am assuming it implements and makes available the functionality that allows one to draw conclusions, for a large population, within a defined margin of error, from a small sample. It seems to me the study of such a module would lead you to conclude, with me, that the distortions you sense may exist in such polls are in the words, not the numbers. Art From jason.cunliffe at verizon.net Thu Apr 29 14:36:39 2004 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Thu Apr 29 14:36:25 2004 Subject: [Edu-sig] Mathematical Patterns in African American Hairstyles Message-ID: <000801c42e18$e9b40b40$6501a8c0@vaio> http://www.math.buffalo.edu/mad/special/gilmer-gloria_HAIRSTYLES.html -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20040429/c46789c2/attachment.html