From rmangaliag at slu.edu.ph Mon Dec 1 07:48:11 2003 From: rmangaliag at slu.edu.ph (ali) Date: Mon Dec 1 08:40:44 2003 Subject: [Edu-sig] new zealand Message-ID: <002701c3b809$61152ce0$da19a8c0@slu.edu.ph> anyone from new zealand here??? :) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20031201/7886e4d0/attachment.html From rmangaliag at slu.edu.ph Tue Dec 2 21:47:14 2003 From: rmangaliag at slu.edu.ph (ali) Date: Tue Dec 2 21:40:14 2003 Subject: [Edu-sig] python vs php5 Message-ID: <1070419634.3fcd4eb2b6182@mbox.slu.edu.ph> i've heard that php5 will include declaration of attributes which are private, public and protected... aside from that interfaces which will be implemented by a class can also be created... in line with OO principles, wouldnt these features be good if implemented in python??? ali... :) ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From urnerk at qwest.net Wed Dec 3 11:47:14 2003 From: urnerk at qwest.net (Kirby Urner) Date: Wed Dec 3 11:47:00 2003 Subject: [Edu-sig] Alice link removed from edu-sig In-Reply-To: <000501c3b5d7$ea2efd50$1c02a8c0@BasementDell> Message-ID: As per an exchange by Thomas Kalka (on behalf of Alice) and A.M. Kuchling, who maintains python.org/community/projects.html, Alice is now an all new Java program.[1] Following Kuchling's example, I've removed the link to Alice from the edu-sig page. Kirby [1] Nov 27,28 of 2003 (pydotorg archive) From missive at hotmail.com Wed Dec 3 18:09:59 2003 From: missive at hotmail.com (Lee Harr) Date: Wed Dec 3 18:10:03 2003 Subject: [Edu-sig] Re: python vs php5 Message-ID: >i've heard that php5 will include declaration of attributes which are >private, >public and protected... aside from that interfaces which will be >implemented by >a class can also be created... > >in line with OO principles, wouldnt these features be good if implemented >in >python??? > You may want to join this list: http://twistedmatrix.com/cgi-bin/mailman/listinfo/python-interfaces which has been set up to talk about interfaces in python. There are at least three interface systems already (zope, twisted, and pyprotocols). I think that python will bring some very interesting developments to interfaces, but I don't think that excessive restrictions will be part of the mix. Instead, it will be more about making systems more flexible and more easily extensible by easing discovery of new things that support the interfaces you are interested in. _________________________________________________________________ Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963 From ajsiegel at optonline.net Wed Dec 3 13:01:05 2003 From: ajsiegel at optonline.net (Arthur) Date: Wed Dec 3 20:38:59 2003 Subject: [Edu-sig] re: Alice link removed from edu-sig Message-ID: <0HPC00806KJF1P@mta2.srv.hcvlny.cv.net> Kirby writes: >As per an exchange by Thomas Kalka (on behalf of Alice) and A.M. Kuchling, >who maintains python.org/community/projects.html, Alice is now an all new >Java program.[1] Following Kuchling's example, I've removed the link to >Alice from the edu-sig page. Some not very sporting or appropriate, but snide and knowing remark might be expected of me on this occasion. And I don't like to disappoint. Something about a revised raison d'etre du jour adopted by Alice is about all I've come up with, though. Art From jason.cunliffe at verizon.net Wed Dec 3 22:15:35 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Wed Dec 3 22:17:17 2003 Subject: [Edu-sig] Processing 1.0 _ALPHA_ Message-ID: <000901c3ba14$e31c49a0$6501a8c0@vaio> Skipped content of type multipart/alternative-------------- next part -------------- A non-text attachment was scrubbed... Name: Processing 1.0 _ALPHA_.url Type: application/octet-stream Size: 124 bytes Desc: not available Url : http://mail.python.org/pipermail/edu-sig/attachments/20031203/4e1c2ff4/Processing1.0_ALPHA_.obj From jason.cunliffe at verizon.net Wed Dec 3 22:28:42 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Wed Dec 3 22:30:24 2003 Subject: [Edu-sig] VideoLAN - oh happy day ! Message-ID: <001301c3ba16$b7fd8d40$6501a8c0@vaio> http://videolan.org Awesome video streaming software by some very smart students in Paris. Free, cross platform and open source -- This is a brilliant toolkit which Pythonistas will surely want to inteface with. VideoLAN is one of best examples of open source programming I've seen. Puts most of the rest to shame. And thus now has a growing community of dedicated users and contrubutors... By my reckoning, VideoLAN is going to become THE core video streaming toolset used by people with good sense everywhere. Especially in education/lering applications enjoy :-) - Jason -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20031203/6104b6e5/attachment.html From mmclay at comcast.net Thu Dec 4 10:49:03 2003 From: mmclay at comcast.net (Michael McLay) Date: Thu Dec 4 10:45:36 2003 Subject: [Edu-sig] Re: python vs php5 In-Reply-To: References: Message-ID: <200312041049.04010.mmclay@comcast.net> On Wednesday 03 December 2003 06:09 pm, Lee Harr wrote: > >i've heard that php5 will include declaration of attributes which are > >private, > >public and protected... aside from that interfaces which will be > >implemented by > >a class can also be created... > > > >in line with OO principles, wouldnt these features be good if implemented > >in > >python??? This question be more appropriate for the main python mailing list. > > You may want to join this list: > > http://twistedmatrix.com/cgi-bin/mailman/listinfo/python-interfaces > > which has been set up to talk about interfaces in python. There are at > least three interface systems already (zope, twisted, and pyprotocols). > > I think that python will bring some very interesting developments to > interfaces, but I don't think that excessive restrictions will be part of > the mix. Instead, it will be more about making systems more flexible > and more easily extensible by easing discovery of new things that > support the interfaces you are interested in. Interface definitions and the ability to make some members of a class private or protected are separate issues. The jury is still out on how Python interfaces will be defined. Python has had private members dating back to around Python 1.5. They aren't used or talked about much. Probably because it is very easy to subvert the minimal protection they provide to the class designer. It is also probably the case that private and protected are an over hyped and over used feature in Java and C++. In what sense do they protect your program? A recent article [1] on using Java describes how to use reflection to subvert access protection for unit testing. The article shows how to peek inside an object to "get" or "set" a private or protected member. The article states, "the [Java] security layer preventing you from accessing private members is only optional, and can be turned off." (It is only optional for programs that are not executed as applets. The Java Security Manager enforces access control on unsigned applets. Application that run signed applets can set the access rules for the applets.) So the protected and private members of Java aren't as protected and private as might be expected. For trusted code these members are no more private and protected than the private types in Python that can be defined using the "__" prefix. (It is more work to get and set the members, but they are not safer than Python.) The notion of making some members private and protected are in conflict with the introspection capability of Python (as well as reflection in Java). It has been said that Python is for "consenting adults". (It's probably not the best phrase for capturing the idea.) Python trusts programmers to not do stupid things by subverting the minimal protection provided by the "__" prefix. People who bypass this protection know that bad things can happen. Using the private and protected declarations in a language as a security measure in a dynamic language is not a reliable way to prevent promiscuous programming. Stronger measure are needed, such building a sandbox in which the untrusted code is executed in a separate physical address space. Another approach is to provide a weakened language parser that limits potential problems caused by untrusted code. It is my understanding that Zope security for less trustworthy code uses a hobbled parser that limits the available Python language features. This includes turning off introspection features. Why do you think adding private and protected members would make Python a better language? Would it be better, or just more like other language? Would it be better, or just harder to learn? [1] http://www.onjava.com/pub/a/onjava/2003/11/12/reflection.html From kent at pondview.mv.com Thu Dec 4 11:30:26 2003 From: kent at pondview.mv.com (Kent Johnson) Date: Thu Dec 4 11:30:33 2003 Subject: [Edu-sig] Teaching Python in adult ed course Message-ID: <20031204163026.12782.qmail@copper.mv.net> Hello, I am a professional programmer who is passionate about Python. I have a gift for teaching but little formal teaching experience. I am planning an adult education course that will be an introduction to programming in Python. The biggest challenge I see is to actually teach a meaningful chunk of programming in a very limited time - 6 to 8 classes with learners with a variety of background and interest levels. I am thinking about using the LiveWires worksheets as the basic curriculum. It is appealing because of its brevity and the use of graphics as a teaching tool. I think I could use each activity sheet as the basis for one class and followup work. Does anyone in the group have experience with teaching Python this way? Are there other resources I should consider? Any insight into what might motivate an adult to start learning to program? Thanks for any help, Kent From urnerk at qwest.net Thu Dec 4 11:46:55 2003 From: urnerk at qwest.net (Kirby Urner) Date: Thu Dec 4 11:46:57 2003 Subject: [Edu-sig] Teaching Python in adult ed course In-Reply-To: <20031204163026.12782.qmail@copper.mv.net> Message-ID: > Does anyone in the group have experience with teaching Python this way? > Are there other resources I should consider? Any insight into what might > motivate an adult to start learning to program? > > Thanks for any help, > Kent A person who signs up for an 8 week class is presumably somewhat motivated to learn programming. I'd try to get a sense from your students whether they already have some strong leanings/interests and focus on giving them the tools to develop in that direction. Those getting the most benefit will be those using time *between* meetings to self-teach as much as possible. I'd stress that whereas class time is potentially a big help, learning to programming, like learning to play the piano, is ultimately something you must do on your own, through practice. Kirby From deanlake at fbeedle.com Thu Dec 4 12:10:53 2003 From: deanlake at fbeedle.com (Dean Lake) Date: Thu Dec 4 12:11:04 2003 Subject: [Edu-sig] Teaching Python in adult ed course In-Reply-To: <20031204163026.12782.qmail@copper.mv.net> References: <20031204163026.12782.qmail@copper.mv.net> Message-ID: <6.0.0.22.0.20031204085836.01b8e5e8@mail.fbeedle.com> Skipped content of type multipart/alternative-------------- next part -------------- --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.542 / Virus Database: 336 - Release Date: 11/18/2003 From jhrsn at pitt.edu Thu Dec 4 14:08:18 2003 From: jhrsn at pitt.edu (Jim Harrison) Date: Thu Dec 4 14:08:20 2003 Subject: [Edu-sig] Teaching Python in adult ed course In-Reply-To: <20031204163026.12782.qmail@copper.mv.net> Message-ID: on 12/4/03 11:30 AM, Kent Johnson at kent@pondview.mv.com wrote: > I am planning an adult education course that will be an introduction to > programming in Python. The biggest challenge I see is to actually teach a > meaningful chunk of programming in a very limited time - 6 to 8 classes with > learners with a variety of background and interest levels. You might also be interested in some of our materials from a graduate course in introductory programming I teach in our medical informatics training program. We have a range of ages and most of the students have had a bit of exposure to programming but are by no means experts; essentially all are from healthcare backgrounds. Our one-semester course meets for three hours once a week. The first hour is spent reviewing homework and concepts from the previous week, the second hour is used to introduce and explain new material and the third hour is usually dedicated to code review--basically code grabbed from anywhere that illustrates the key concepts of the week. The class is taught in a computer lab using projected web pages on a whiteboard as a discussion focus. We draw on top of the projected code with markers and students are encouraged to copy the code into IDLE or SciTE and edit/run it on their machines during the discussion (as we also do on the board). We cover most of basic Python (including an introduction to Tkinter) in 7 weeks, then survey regular expressions, database access, image processing, network programming (sockets, urllib and XML-RPC) and HTML/XML processing in the remainder of the course. There are weekly programming assignments (Kirby Urner is correct, this is the most crucial part of the course) and a longer project of the students' choosing during the second half of the course. It's been great to see several students who took the course go on to use their own Python programs as key parts of their Masters or PhD research; these are students who would not have included a programming component in their work at all were it not for Python. The course isn't quite where I want it yet, but it's improving with each iteration. You're welcome to have a look and use anything that you wish. The main course page is http://jhh.opi.upmc.edu/main/pop/. Click the ClassSchedule under Class Information at the right for links to the individual sessions. Best wishes, Jim Harrison ________________________________________________________________________ James H. Harrison, Jr., MD, PhD Associate Professor, Pathology Informatics, Department of Pathology 5230 Centre Ave., 3rd Fl. UPMC Cancer Pavilion Pittsburgh, PA 15232 office: 412-647-5529 | fax: 412-647-5380 | cell: 412-445-0836 Faculty Member in Residence, Center for Biomedical Informatics Associate Professor, Intelligent Systems Program University of Pittsburgh Suite 8084 Forbes Tower Pittsburgh, PA 15213-2582 office: 412-647-7113 | fax: 412-647-7190 "If you want sense, you'll have to make it yourself!!"-Norton Juster ________________________________________________________________________ From english at spiritone.com Thu Dec 4 23:50:52 2003 From: english at spiritone.com (Josh English) Date: Thu Dec 4 23:50:59 2003 Subject: [Edu-sig] Checking an assumption Message-ID: <3FD00EAC.97D10996@spiritone.com> I'm a lurker on this list. I joined because I was on track to become a high school level mathematics teacher and I use Python frequently. I am currently a graduate student and I'm working on a final project for the term. I am creating a rough draft of a curriculum that would teach Statistics and Python in the same class. I'm basing this off of two assumptions: 1) Students in a statistics class do not need the practice of repetitive operations. 2) The most effective way to learn something is to teach it, and programming is functionally equivalent to teaching a subject. I think that these assumptions are good enough to start with, but I'd like to hear some other opinions about them. Is programming in any language the functional equivalent to teaching a procedural method? Thanks for any advice, Josh English english@spiritone.com From marilyn at deliberate.com Fri Dec 5 01:09:26 2003 From: marilyn at deliberate.com (Marilyn Davis) Date: Fri Dec 5 01:09:30 2003 Subject: [Edu-sig] Checking an assumption In-Reply-To: <3FD00EAC.97D10996@spiritone.com> Message-ID: On 4 Dec 2003, Josh English wrote: > I'm a lurker on this list. I joined because I was on track to become a > high school level mathematics teacher and I use Python frequently. I am > currently a graduate student and I'm working on a final project for the > term. I am creating a rough draft of a curriculum that would teach > Statistics and Python in the same class. I'm basing this off of two assumptions: > 1) Students in a statistics class do not need the practice of repetitive operations. > 2) The most effective way to learn something is to teach it, and > programming is functionally equivalent to teaching a subject. I've been thinking about this a few hours and I like it. You are thinking that if you have your students program some mathematics, that they will really learn and understand those mathematics? Yes. Good thought. True of physics as well as statistics, and what else? Sounds like a fun and learning-packed experience. Good luck! Marilyn > > I think that these assumptions are good enough to start with, but I'd > like to hear some other opinions about them. Is programming in any > language the functional equivalent to teaching a procedural method? > > Thanks for any advice, > Josh English > english@spiritone.com > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- From ajsiegel at optonline.net Fri Dec 5 07:30:43 2003 From: ajsiegel at optonline.net (Arthur) Date: Fri Dec 5 07:27:00 2003 Subject: [Edu-sig] Checking an assumption Message-ID: <0HPF00HI398UMM@mta2.srv.hcvlny.cv.net> >You are thinking that if you have your students program some >mathematics, that they will really learn and understand those >mathematics? Ooh boy, has that worked for me. I honestly don't know whether PyGeo can be useful to anyone else. But building it. Whhhhooo. The bee in my bonnet is exactly in knowing, from experience, what is achievable in this kind of general approach. Art From lac at strakt.com Fri Dec 5 10:36:11 2003 From: lac at strakt.com (Laura Creighton) Date: Fri Dec 5 10:36:25 2003 Subject: [Edu-sig] Checking an assumption In-Reply-To: Message from "Josh English" of "04 Dec 2003 20:50:52 PST." <3FD00EAC.97D10996@spiritone.com> References: <3FD00EAC.97D10996@spiritone.com> Message-ID: <200312051536.hB5FaB23004046@ratthing-b246.strakt.com> In a message of 04 Dec 2003 20:50:52 PST, "Josh English" writes: >I'm a lurker on this list. I joined because I was on track to become a >high school level mathematics teacher and I use Python frequently. I am >currently a graduate student and I'm working on a final project for the >term. I am creating a rough draft of a curriculum that would teach >Statistics and Python in the same class. I'm basing this off of two assum >ptions: >1) Students in a statistics class do not need the practice of repetitive >operations. >2) The most effective way to learn something is to teach it, and >programming is functionally equivalent to teaching a subject. > >I think that these assumptions are good enough to start with, but I'd >like to hear some other opinions about them. Is programming in any >language the functional equivalent to teaching a procedural method? > >Thanks for any advice, >Josh English >english@spiritone.com Your assumptions are not universally true -- though they certainly are in many cases. So you need to check to make sure that they hold true for your case. I have a few questions. First, what country are you in? Second, what is the age of the intended students? Third, how sophisticated is the statistics you wish to teach? I am going to outline here under what conditions I think that what you intend to do may be a mistake, and cause problems for you. This isn't to be taken as a rejection of your plan -- I think that it sounds like a lot of fun, and will be an excellent way to teach the correct bunch of students, which I hope you have. Because in that case, it will be great. Assumption one sets you clearly on the path of _education_ rather than _training_. (Training is pretty much all about repetitive action.) When _educating_ works, you need students who are able to memorize new chunks of abstract knowledge, and then know exactly where to store and apply it in the knowledge structures which they have in their own brains. This will only happen if your students already have a nice collection of mathematical knowledge, and enough mathematical intuition to know how and where to add new stuff. If they don't, then either a) they won't be able to memorize the abstract knowledge, 'It's all words, and it doesn't really mean anything' or, for the good memorisers -- they will know the definitions word perfect and still not have a clue what it means. For this reason, when I am busy teaching elementary school children the difference between a mean, a median, and a mode I make them draw some stick figures and then measure legs and arms and torsos and the lot. This is because 'means' and 'medians' are not about _words_ and not about _numbers_, but about _measuring_, _counting_ and _populations_. The students I get understand counting, but not measuring yet, and have drastic problems understanding populations. If you don't train them how to measure, you end up with a class of parrots who can manipulate the numbers to get the correct answer when you ask them 'calculate the mean of this series of numbers' but who cannot figure out if their allowance is in line with what is usual for their peers, (if there is only one person in the class that gets more allowance than they do, it is still _unfair_, because _she gets more_), or even whether something is 'more common' or not -- if you hand them a series of 30 numbers from one to ten with '4' repeated 8 times in a row and '9' occuring 10 times, but never in a row, about half the class will insist that '8' is more common than '9' _even after you count them_. It is only after you hand people the actual numbers on tiny pieces of paper (or cutout of paper) and actually make piles of 8s and 9s that they can see which is 'more common'. (And even then you will get some holdouts, who think that '8' is more common, because however you slice your series, you can never get a subset which has more 9s in it than the other numbers, and there are lots of ways to slice it where you get more 8s than the other numbers.) I assume that your students will be older than this. Indeed, I assume that they either a) already know how to program, or b) the statistics that you wish to teach them are the sort that you can do in a trivial amount of Python code -- the sort of thing that you can just type into a Python interpreter. If you don't have this sort of match, then what you will end up doing is teaching your students how to program. Now a course 'teaching programming using basic statistical methods' might be a lot of fun -- though my experience is that 'teaching programming using problems that involve words works better' but if the stated aim of the course is to teach statistics, you may get in trouble with your department. You also need to check to see if they are supposed to be learning mathematical fundamentals, or whether symbolic manipulation will be enough. Something to be concerned about is how this course is supposed to fit into the general pattern of their mathematical education. Some places use statistics courses in order to teach students how to make graphs with pen and pencil. The actual statistical knowledge imparted is relatively minor. What is important is to get the ability to visualise data. And to learn that, you have to draw it. Learning how to read graphs is not enough, and learning how to write a computer program that draws graphs is also not enough. You actually have to make a bunch of drawings, again and again and again before, given a series, or an equation, you can actually have a geometrical sense of what is going on. (And some people never get it, no matter what you do. It is quite frustrating.) Check and make sure that this is not what really is supposed to be taught in that class before you replace the pen and pencil with Python, because in that case your assumption 1 is shot, and you are supposed to be training them. The next thing to check is whether the intellectual effort required to make the program is spent on learning the formulas you would like the students to learn (assuming this is what you are up to). It is quite easy to get a mismatch. For instance, a smart student might build a really nice program for making very pretty bar charts, working and polishing on this for days, weeks, months. The actual statistical equations that are used to graph are almost an afterthought -- you crack open your text book, and convert the formula into python in a straightforward mechanical way, and that takes you all of 20 minutes. You can now do a whole family of equations, at roughly 20 minutes an equation. Ooops. That student isn't learning statistics, as in the formulae, he or she is learning how to quickly rewrite formulas in Python. (Which is what I do all the time, and is the reason why I always have to look them up. I never actually _know_ them.) This is a really useful and valuable skill, but probably not what you are trying to teach. This problem can work in the other direction as well. For instance, you will have to give them a nice lecture on 'What is Floating Point, When can you use it, and when must you never use it.' I'd dearly love that lesson taught to high school students, world wide. But it is tough going, and my gut feeling is that it will not be easy to teach this one until your students have an extremely good sense of what experimental error is. If they don't have that background, then they may confuse floating point error with experimental error which is a particularly nasty misconception to uproot later. Also, when building a computer program to do some sort of problem in numerical analysis, you may find that the bulk of the program is spent doing corner cases and handling particularly nasty sorts of data. Writing this code -- at least the way I do it -- is a matter of writing a bunch of unit tests and building the code so that it handles all the perverse cases. But first, your students may be too naive to see the perverse cases -- this is where they are being first exposed to them, after all, and second, in a basic statistics class, you may want the students to focus on how things go when your data is well-behaved, and doesn't provide any problem for the programmer. So there the goals of test-driven design and learning the statistical methods may work at cross-purposes. But, provided these problems do not raise their ugly heads, it looks like a lot of fun, and could be the sort of class where you actually get a taste of 'what life has to offer' rather than 'what school has to offer'. Sounds good to me. We're having an Education Track at EuroPython June 7-9 2004 in G?teborg, Sweden. (And if you are not in Europe, travelling to Europe is probably cheaper than you think.) Come give a talk and let us know how things are going. That goes for the rest of you, as well. The education track chairman is Steve Alexander , but we are discussing such things on the EuroPython mailing list now -- http://mail.python.org/mailman/listinfo/europython Laura Creighton From lac at strakt.com Fri Dec 5 10:49:55 2003 From: lac at strakt.com (Laura Creighton) Date: Fri Dec 5 10:50:02 2003 Subject: [Edu-sig] Checking an assumption In-Reply-To: Message from Laura Creighton of "Fri, 05 Dec 2003 16:36:11 +0100." <200312051536.hB5FaB23004046@ratthing-b246.strakt.com> References: <3FD00EAC.97D10996@spiritone.com> <200312051536.hB5FaB23004046@ratthing-b246.strakt.com> Message-ID: <200312051549.hB5Fnt2J004164@ratthing-b246.strakt.com> In a message of Fri, 05 Dec 2003 16:36:11 +0100, Laura Creighton goofed: >more_), or even whether something is 'more common' or not -- if you >hand them a series of 30 numbers from one to ten with '4' repeated 8 >times in a row and '9' occuring 10 times, but never in a row, about >half the class will insist that '8' is more common than '9' _even >after you count them_. pretend I said '8' repeated 8 times in a row, not '4'. apologies, Laura Creighton From ajsiegel at optonline.net Fri Dec 5 13:07:59 2003 From: ajsiegel at optonline.net (Arthur) Date: Fri Dec 5 13:04:16 2003 Subject: [Edu-sig] re: Checking an assumption Message-ID: <0HPF007PHOV0B7@mta10.srv.hcvlny.cv.net> Laura writes - >Assumption one sets you clearly on the path of _education_ rather than >_training_. (Training is pretty much all about repetitive action.) >When _educating_ works, you need students who are able to memorize new >chunks of abstract knowledge, and then know exactly where to store and >apply it in the knowledge structures which they have in their own >brains. This will only happen if your students already have a nice >collection of mathematical knowledge, and enough mathematical >intuition to know how and where to add new stuff. We all have our themes. And, it often seems to me, that our differences tend to be more about how we use language, than in the substance. "Training", as repetitive action, one of your themes. I suspect I must misunderstand what you mean. For example: My ability to memorize is weak. Plagues me. My ability to absorb abstract ideas decent. There are many concepts I've absorbed, which when I confront again, I understand in broad brush, but find I have lost the details. But the details are usually easy to retrieve. The concepts, if truly absorbed, become the basis of intuition. Which is the most important thing to develop, in most fields, it seems to me. Yes, repetition is admittedly part of that process. But I am not sure to what extent it is to its essence. >I assume that your students will be older than this. Indeed, I assume >that they either a) already know how to program, or b) the statistics >that you wish to teach them are the sort that you can do in a trivial >amount of Python code -- the sort of thing that you can just type into >a Python interpreter. If you don't have this sort of match, then >what you will end up doing is teaching your students how to program. PyGeo has lead me to actually lecture in front of a few math faculty groups. It actually blew my mind that the whole subject of programming was a blank slate to many of them. It was partly, at least, generational. Which makes sense. I can't believe that a new generation of mathematicians would not have a programming toolchest as a given. One of *my* themes. >What is important is to get the ability to visualise data. And to learn >that, you have to draw it. Learning how to read graphs is not enough, and >learning how to write a computer program that draws graphs is also not >enough. You actually have to make a bunch of drawings, again and again and >again before, given a series, or an equation, you can actually have a >geometrical sense of what is going on. (And some people never get it, >no matter what you do. It is quite frustrating.) Check and make sure >that this is not what really is supposed to be taught in that class >before you replace the pen and pencil with Python, because in that >case your assumption 1 is shot, and you are supposed to be training >them. Some fundamental agreement. Most of the "dynamic geometry" applications commonly used in schools today - and, as it now stands, one of the few common K-12 uses of the computer in the mathematics classroom - can be quite destructive. Computers can be quite destructive. Doing by mouse clicks exactly what should be being done by compass and straight edge. Much, much is lost. Those same software tools, used with sparing intelligence - I am sure, can be a good plus. So it not the tools themselves, in isolation, which is the issue. I don't want PyGeo being used for teaching fundamental plane geometry - even though by insisting on script rather than encouraging mouse clicks - it is a step in the right direction. Flipside - I have built a tool that allows me to extend my imagination beyond its normal limitations, to visualize more advanced concepts than would otherwise be accessible to me by manual drawing of any kind. PyGeo was built exactly from that need, to allow me to see the kinds of things that others with more powerful visual imaginations might be able to see purely as imagination. Quite exciting, at times. And there is nothing quite like it out there, as far as I am aware. So yes I am proud, and yes I do go on about it. >Which is what I do all the time, and is the reason why I >always have to look them up. I never actually _know_ them. What is wrong with having to look them up. If you know where to find them, you know them - for all useful purposes. >This is a really useful and valuable skill, but probably not what you are >trying to teach. Why shouldn't it be? >This problem can work in the other direction as well. For instance, >you will have to give them a nice lecture on 'What is Floating Point, >When can you use it, and when must you never use it.'I'd dearly >love that lesson taught to high school students, world wide. But >it is tough going, and my gut feeling is that it will not be easy >to teach this one until your students have an extremely good sense >of what experimental error is. If they don't have that background, >then they may confuse floating point error with experimental error >which is a particularly nasty misconception to uproot later. Some folks have felt that physics students at major universities need to be protected from the concept. Arghhh, I say. Aren't we at least a bit about being a vanguard here? Speaking up and out on this kind of thing. Yes it is tough going. >Also, when building a computer program to do some sort of problem in >numerical analysis, you may find that the bulk of the program is spent >doing corner cases and handling particularly nasty sorts of data. Damn divide by zero. Luckily for me, in what I happen to be studying, the corner cases are to the essence. So I resent dealing with them less. The straight line, *augmented by the point at infinity*, etc. But yes, you are right. Much focus ends up on dealing with the corner cases, when using a programming approach. A negative, I could see, in many circumstances. >Writing this code -- at least the way I do it -- is a matter of >writing a bunch of unit tests and building the code so that it handles >all the perverse cases. But first, your students may be too naive to >see the perverse cases -- this is where they are being first exposed >to them, after all, and second, in a basic statistics class, you may >want the students to focus on how things go when your data is >well-behaved, and doesn't provide any problem for the programmer. So >there the goals of test-driven design and learning the statistical >methods may work at cross-purposes. I don't know much about statistics. But would think that the perverse case is also to its essence. Or more to its essence than a student might otherwise commonly have reason to understand. >But, provided these problems do not raise their ugly heads, it looks >like a lot of fun, and could be the sort of class where you actually >get a taste of 'what life has to offer' rather than 'what school has >to offer'. Sounds good to me. Getting the school out of school - within reason, is great. Too much in that direction OTOH. Which is what you are also saying, as I am interpreting it. Getting middle-aged and seeing and appreciating the middle ground more and more... Well its sure hard to get anyone's attention by advocating the middle ground. What, no new paradigm? The old paradigm and the new paradigm - each done right - would look remarkably similar, IMO. Art From jasonic at nomadics.org Mon Dec 8 00:02:14 2003 From: jasonic at nomadics.org (Jason Cunliffe) Date: Mon Dec 8 00:02:15 2003 Subject: [Edu-sig] High school popularity flip-flops; nerds now 'in.' Message-ID: <000b01c3bd48$728c2cf0$6601a8c0@inspiron> http://www.freelancestar.com/News/FLS/2003/122003/12022003/1182553 From jason.cunliffe at verizon.net Mon Dec 8 02:15:09 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Mon Dec 8 02:14:12 2003 Subject: [Edu-sig] CPS Message-ID: <000801c3bd5b$04cca560$6501a8c0@vaio> http://www.bonneville.nl/cps/ -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20031208/6e46aa33/attachment.html From mmclay at comcast.net Mon Dec 8 15:23:45 2003 From: mmclay at comcast.net (Michael McLay) Date: Mon Dec 8 15:19:29 2003 Subject: [Edu-sig] Draft of a funding request Message-ID: <200312081523.45446.mmclay@comcast.net> I've put together a funding request for the development of an educational distribution of Python software. I'd like to get some feedback on the attached letter of inquiry. This version of the request is targeting the Kellogg Foundation's "Philanthropy and Volunteerism" initiative [1], but I think it could be extended and submitted for funding from the National Science Foundation's "Math and Science Partnership Program (MSP)" request for proposals [2]. The NSF proposal for MSP has a relatively short fuse. The proposals are due on December 16th. Please speak up if you are interested in participating on the NSF work. I'd like to get a list of resumes together to add to the proposal. I have a small business that does Python development and government contracting lined up to help with managing the grant reporting and funding management. If I get some indication of interest from the list I'll work with them on submitting the application. The plan is to have the small business work with the PSF on the project and in the process we can use this activity to boostrap the PSF as a funding organization. My goal is to pursue additional funding opportunities and get related projects funded. If we can get enough work in place we should be able to eventually hire staff for PSF. As you will see from this proposal the staff would help organize and manage Python sprints. The staff would also work on getting additional funds for Python related research. I've identified over a dozen NSF programs which look like promising candidates for funding Python projects, so I think there is ample opportunity for funding. Later this week I will attending some workshops at the Foundation Center [3] that should help with identifying other potential sources of funding. (The titles of each of the sections of the letter are from the Kellogg Foundation online submission form.) [1] http://www.wkkf.org/Programming/Overview.aspx?CID=288 [2] http://www.nsf.gov/pubs/2003/nsf03605/nsf03605.htm [3] http://www.fdncenter.org/ Letter of Inquiry for the Kellogg Foundation Purpose Statement: Development of a distribution of Python software for use in K-12 education and development of an improved version of the Python language. The mission of the educational software is described in the "Computer Programming for Everyone" (CP4E) [1] project. [1] http://www.python.org/doc/essays/cp4e.html Total Dollar Amount Requested: $2,000,000 over three years Project Objectives and Proposed Activities: Python has been used very successfully to teach the fundamentals of computer science in high schools [2]. We believe this success is grounds for making Python the standard language to be used in advanced placement exams in computer science, as well as a foundation for developing computer literacy in the general population. To facilitate this goal, the Python community would like to develop an open source distribution of materials that can be used for teaching computer science (See the CP4E paper for more information on the overall project goals.) This would be a living project in which materials are added as they are developed. The project would create plan the release of distributions of Python based educational software, and supporting documentation, for teaching computer science to coincide with school year schedules. (The material would be made available through a website, but also as ISO images that could be downloaded and burned onto CDROMs.) A second component of the proposed grant would fund the development of Python 3.0. This new revision of the Python language would add improvements to the language that will strengthen the language distribution and make it even better as a tool for teaching computer science. [2] http://www.oreilly.com/pub/a/oreilly/frank/elkner_0300.html Time Schedules or Anticipated Duration of Proposed Grant: The distributions of educational materials will be an on-going activity. Developing Python 3.0 is expected to take two to three years to complete. Anticipated Outcomes: The funding would facilitate the assemble of a comprehensive collection of software and educational material for use in teaching computer programming using Python. And it would help to expedite the development of the Python 3.0. The funding would be used to host a series of "sprint" workshops for Python experts and to fund some researchers to work part-time and possibly full-time on Python software development and packaging. The "sprint" workshop development model has been successfully used to improve the rate at which open source software can be developed. While most of the work can be done via the Internet, there is a need for periodic person to person communications in a "sprint" setting. These meetings usually include presentations and demonstrations of software that is being proposed as an improvement or an addition to the software distributions. The dialogs that take place at the workshops are extremely effective at stimulating new ideas and energizing the community of volunteers. Unfortunately not all volunteers can afford to pay their way to attend sprints. The funding would help insure that the all the major contributors to Python are able to attend the sprints. A major goal of funding this activity will be to develop material that will make it feasible to promote Python as a viable replacement of Java as the standard language for Advanced Placement exams in computer science. Java was selected because it was widely used, not because it was particularly good as a tool for teaching computer science. In fact, there are a number of limitations of Java that make it a poor choice for teaching the full scope of objectives that should be taught in a modern computer science curriculum. Experience with using Python at the college CS1 and CS2 level [3] indicate that Python would be a more effective language for quickly teaching the fundamentals of computer science at the undergraduate level. The referenced papers outline the many technical reasons for Python being a better language for teaching computer science. It is important to note that Python is not just at teaching language, such as Pascal or ABC. Python is a pragmatic and efficient technology that used by serious computer scientists throughout the industry. [3] http://mcsp.wartburg.edu/zelle/python/python-first.html Personnel and Financial Resources Available: The Python community includes a world-wide assembly of world-class software developers. As an open source software project, like Linux, all of the source code is available online [4]. There are 57 persons with commit privileges to the Python software repository and several hundred additional contributors who submit software without commit access. There are also thousands of applications and extension modules [5] that are written in Python that are not part of the standard Python distribution. The main Python language website [6] provides a portal into the community of activity. The in-kind support of this community is enormous. The core language developers devote thousands of hours per year to the development of the language distribution. One measure of this effort can be found by browsing the email list of the core developers. There have been over 20,000 email messages to this list over the last two years. Browsing the content of the email archives reveals a devoted community of philanthropy and volunteerism. The proposed grant would leverage this work by enabling some of these volunteer to travel to meetings and by compensating some of the drudge work that might otherwise not be done . [4]http://sourceforge.net/projects/python/ [5]http://sourceforge.net/softwaremap/trove_list.php?form_cat=178 and an example of education specific projects at http://schooltool.org/ [6]http://www.python.org/ [7]http://mail.python.org/pipermail/python-dev/ Sustainability Strategy: The Python community has been working on the development of Python since 1991 and they have received awards and industry recognition for the excellence of their work. Work on the development of Python is an perfect example of how the Internet has enabled philanthropy and volunteerism. The community has a very good track record for delivering results without any funding and the community may eventually create a 3.0 release. The resources of the core contributors are limited, however, and in order for some of the key developers to work on Python 3.0 and on the development of the educational distribution, some direct funding support will be required. This funding is primarily intended to accelerate the process. The funding would be of particular importance to K-12 educators. They are generally underpaid and have no travel budgets. Without funding it will be impossible for them to attend Python sprints. Ideally we could arrange for some of the leaders in this arena to be funded for work on a Python based curriculum during their summer recess. Funding the CP4E Python effort will enable them to devote resources to preparing polished and professional educational material that can be shared by all school systems throughout the world. From gerrit at nl.linux.org Mon Dec 8 15:33:23 2003 From: gerrit at nl.linux.org (Gerrit Holl) Date: Mon Dec 8 15:33:57 2003 Subject: [Edu-sig] Draft of a funding request In-Reply-To: <200312081523.45446.mmclay@comcast.net> References: <200312081523.45446.mmclay@comcast.net> Message-ID: <20031208203323.GA6199@nl.linux.org> Michael McLay wrote: > Developing Python 3.0 is expected to take two to three years to complete. Is this true? My 2 milli-eurocents: good paper. Note that due to words like financial, education, letter, mission, include, government, promote, please, and facilitate, my Spambayes spamfilter gave this a 6% chance of being spam (looked a little bit like 'Nigerian etc'), and it was in the 'unsure' folder because of a 5% treshhold ;) yours, Gerrit. -- 239. If a man hire a sailor, he shall pay him six gur of corn per year. -- 1780 BC, Hammurabi, Code of Law -- Asperger's Syndrome - a personal approach: http://people.nl.linux.org/~gerrit/english/ From mmclay at comcast.net Mon Dec 8 16:05:14 2003 From: mmclay at comcast.net (Michael McLay) Date: Mon Dec 8 16:00:57 2003 Subject: [Edu-sig] Draft of a funding request In-Reply-To: <20031208203323.GA6199@nl.linux.org> References: <200312081523.45446.mmclay@comcast.net> <20031208203323.GA6199@nl.linux.org> Message-ID: <200312081605.14743.mmclay@comcast.net> On Monday 08 December 2003 03:33 pm, Gerrit Holl wrote: > Michael McLay wrote: > > Developing Python 3.0 is expected to take two to three years to complete. > > Is this true? I was doing this from memory from a conversation with Guido last year. I believe his ROM on the effort was a $1M, effort that would take a couple years. I made the Kellogg proposal for three years because the education software distribution would be funded for three years. Hopefully the Python 3.0 release would not take that long. my Spambayes > spamfilter gave this a 6% chance of being spam (looked a little bit like > 'Nigerian etc'), and it was in the 'unsure' folder because of a 5% > treshhold ;) Interesting. I can assure you that this is not a scam, but if you forward your account numbers to me today.... I'm very serious about finding funding for the PSF. I was being optomistic about putting together a credible NSF grant that is due on the 16th, however, there are future NSF opportunities coming up which are more realistic. I do think it will be worth the effort to submit the letter of inquiry for private funding. From arkamir at softhome.net Mon Dec 8 19:18:45 2003 From: arkamir at softhome.net (Conrad Koziol) Date: Mon Dec 8 19:18:44 2003 Subject: [Edu-sig] Re: Edu-sig Digest, Vol 5, Issue 5 In-Reply-To: References: Message-ID: <1070929125.8009.14.camel@quercus> Can anyone point me to a python download for windows which doesnt effect the registry and is small?? Sorry but im not good with windows and have to install python at school but i have a limited amount of space. One download expanded too 3 gigs :(. It was couple years old and I think it was corrupted. Thanks a lot From ajsiegel at optonline.net Mon Dec 8 19:43:35 2003 From: ajsiegel at optonline.net (Arthur) Date: Mon Dec 8 19:43:38 2003 Subject: [Edu-sig] re: Draft of a funding request Message-ID: <0HPL00MUCRCIZH@mta2.srv.hcvlny.cv.net> >I've put together a funding request for the development of an educational >distribution of Python software. No surprise, I have some comments. The CP4E proposal referenced in yours gives a good deal of stress to the creation of a "programming environment". Now, IDLE exists, as do numbers of other Python enhanced editors and IDEs of various types. An embarrassment of riches. So, it seems to me, unless you or anyone else has some specific ideas of what of significance is yet missing, can't that stage be marked as essentially complete. And the proposal enhanced by in fact stressing that this has already been accomplished, based on the original DARPA grant. And that the requested funds can be assumed to be in furtherance of goals beyond that which was funded and completed by way of the CP4E funding. You are not saying anything contrary to this. You just aren't stressing that an important phase has already been funded and completed. I certainly don't know much about this kind of funding application. Wouldn't a much, much more detail budget in connection with the expenditure of funds be a necessity? Hate to say it, but I would hope so. Is it just that you posting up a generic draft, with those kinds of details to be provided, in the case of specific proposals. I also happen to believe that - strategically, trying to go head to head with Java at this moment in time is unrealistically ambitious. And likely to backfire. No matter how correct the substance of your argument might be - or, better, is. I would be stressing the many projects already using Python in math and science related educational environments. And targeting funds to expand and enhance those kinds of uses for Python. Robotics, mathematics, physics, etc and etc. All ideological notions aside, this to me has to be the best strategic approach. Betting all on being able to convince folks that Java needs to be backbenched - too much on one number, IMO. A long shot. And definitely not the way to go. Though I certainly wish you luck, however you decide to approach it. Art From mmclay at comcast.net Mon Dec 8 23:56:51 2003 From: mmclay at comcast.net (Michael McLay) Date: Mon Dec 8 23:52:31 2003 Subject: [Edu-sig] re: Draft of a funding request In-Reply-To: <0HPL00MUCRCIZH@mta2.srv.hcvlny.cv.net> References: <0HPL00MUCRCIZH@mta2.srv.hcvlny.cv.net> Message-ID: <200312082356.51348.mmclay@comcast.net> On Monday 08 December 2003 07:43 pm, Arthur wrote: > >I've put together a funding request for the development of an educational > >distribution of Python software. > > No surprise, I have some comments. > > The CP4E proposal referenced in yours gives a good deal of stress to the > creation of a "programming environment". Now, IDLE exists, as do numbers > of other Python enhanced editors and IDEs of various types. An > embarrassment of riches. So, it seems to me, unless you or anyone else has > some specific ideas of what of significance is yet missing, can't that > stage be marked as essentially complete. And the proposal enhanced by in > fact stressing that this has already been accomplished, based on the > original DARPA grant. And that the requested funds can be assumed to be in > furtherance of goals beyond that which was funded and completed by way of > the CP4E funding. > > You are not saying anything contrary to this. You just aren't stressing > that an important phase has already been funded and completed. That's a good point. Perhaps what needs to be stressed from CP4E is that the proposed educational distribution should promote a wide-spread computer literacy. To support this goal the distribution should include a diverse range of educational content. It should not be limited to computer science. The distribution should include modules that would make Python, and computer programming, interesting to other domains of expertise. For instance, Python is well used in chemistry and physics, so including SciPy in the distribution would be a natural fit for education. It is also used in graphics animation, so does this mean Blender should be part of the distribution? It would not be too strange for Blender to be appealing to someone in the art department. Perhaps this is a somewhat odd thought, but Python does such a good job of smoothing over the rough edges of many parts of computer science, it isn't entirely unbelievable that it can also become a common thread for education, at least in the context of the use of computers in education. > I certainly don't know much about this kind of funding application. > Wouldn't a much, much more detail budget in connection with the expenditure > of funds be a necessity? Hate to say it, but I would hope so. Is it just > that you posting up a generic draft, with those kinds of details to be > provided, in the case of specific proposals. For the letter of inquiry the details are not expected. If the funding organization finds the idea interesting they will request a detailed proposal. For the NSF grant application a more detailed proposal will be required. I'm just asking the edu-sig if the idea for the proposal is of interest. If it is, then I'll get to work on a more detailed proposal. I have had a positive response from the usual suspects. My biggest concern regarding the NSF proposal is the short fuse. I suspect proposing something this year will be a good learning exercise, but we will have to wait for next year to actually be considered for funding. > > I also happen to believe that - strategically, trying to go head to head > with Java at this moment in time is unrealistically ambitious. And likely > to backfire. No matter how correct the substance of your argument might be > - or, better, is. Hmm, there's no time like the present to advertise the advantages of Python. Even if they do reject the proposal it will at least raise the level of awareness. I equate the Python to Java situation of today to the SQL to hierarchical database situation in the mid 1970s. SQL was was considered a slow, resource hogging technology compared to the established database technology. As the cost of computers dropped the advantages the higher level abstraction of the SQL database overcame the added cost of hardware. I think we are at that crossroads for Python today. When I start up an application written in PyGtk it feels every bit as snappy as a C++ application. So considering the current hardware constraints, what is the advantage of Java? In fact, Java applications are probably a bit more sluggish starting up when compare to Python. > I would be stressing the many projects already using Python in math and > science related educational environments. And targeting funds to expand and > enhance those kinds of uses for Python. Robotics, mathematics, physics, etc > and etc. I agree that we need to advertise the success stories of Python. > All ideological notions aside, this to me has to be the best strategic > approach. Betting all on being able to convince folks that Java needs to > be backbenched - too much on one number, IMO. A long shot. I don't intend to bet everything on replacing Java, but I do want to raise this interesting question. Why is Java being given such an easy ride? Java had Sun. Python is holding its own with no such sponsorship. Java got a free ride in the decision to select it as the standard language for the AP exams. C++ was clearly a horrible choice as a replacement for Pascal, but was Java the only viable alternative? There was no comparative scientific analysis of the merits of available languages. Java was selected as a teaching language for the same reason C++ had been selected. It was simply a popularity contest. A paper was recently reference on this mailing list, or the marketing mailing list, that was titled, "AP CS Course Content and Examination Alternatives." As this paragraph from the paper states, pseudocode was promoted as the appropriate language to use in teaching computer science. In computer science as in other disciplines, a language provides a mechanism for communication. In describing algorithms and solving problems, any such language must be clear and unambiguous. Thus, virtually all colleges and universities introduce a programming language in their introductory CS1-CS2 courses. Some time ago, pseudocode was promoted at SIGCSE Symposia and elsewhere as an appropriate alternative, but this approach does not seem widely discussed today. Rather, colleges introduce a specific language, so that students get direct feedback from compilers and run-time environments, and so that precision of thinking can be sharpened and evaluated through testing. Some have argued that this hands-on perspective also follows from a general orientation toward practicality in the United States; US culture places great value on practical objects that perform tasks and solve problems. The paper goes on to say that to be effective the teaching language must also be executable, and since pseudocode was not executable it was better to use a compiled language to teach computer science. (Apparently the authors were not aware that Python has been dubbed the executable pseudocode language.) The paper then creates a paper tiger to justify selecting Java as the best language for teaching computer science. The selection process for picking the AP exam language should be challenged. The current selection should be reconsidered. The language that is used for AP exams should be an effective tool for teaching computer science fundamentals at the high school level. The high school course is not intended to teach students to be production software developers. They are being taught basic computer science concepts. Also remember that at this period in their education the audience is being introduced to materials from a broad range of disciplines. They will be selecting a field to study based on the classes they take in high school. It just may be possible to capture the imagination of high school students and make computer science appealing to a wider audience by teaching with a language that makes programming fun. A course that introduces computer science should teach the principles of computer science. As small an effort as possible should be devoted to teaching the teaching language. > And definitely not the way to go. > > Though I certainly wish you luck, however you decide to approach it. Thanks for the comments. They will be helpful in shaping the justification for investing in teaching Python as a first language. From jason.cunliffe at verizon.net Tue Dec 9 00:24:47 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Tue Dec 9 00:25:08 2003 Subject: [Edu-sig] re: Draft of a funding request References: <0HPL00MUCRCIZH@mta2.srv.hcvlny.cv.net> <200312082356.51348.mmclay@comcast.net> Message-ID: <006a01c3be14$c327e1a0$6501a8c0@vaio> Also Python has a direct and powerful bridge to Java == Jython I've never understood why it's taken so long for Java to have command line interpreter shell... Is that a wierd design blindspot, or a major development / performance headache? Meanwhile Python exhibits the dominant trend for interactive progamming. Where shell interpreters are more conducive for learning by live exploration. And so an excellent model for beginners -- BUT scales right up to the Java landscape via Jython. hth + good luck - Jason From ajsiegel at optonline.net Tue Dec 9 01:02:22 2003 From: ajsiegel at optonline.net (Arthur) Date: Tue Dec 9 01:02:37 2003 Subject: [Edu-sig] re: Draft of a funding request Message-ID: <0HPM001I063XNC@mta4.srv.hcvlny.cv.net> Michael writes - >Perhaps this is a somewhat odd thought, but Python does such a good job of >smoothing over the rough edges of many parts of computer science, it isn't >entirely unbelievable that it can also become a common thread for >education, at least in the context of the use of computers in education. That's sort of my theory. Python's strength is not in going head to head with whatever is the current leading language for advanced placement exams in computer science. Some of the reasons are obvious. Careerist type reasons. OTOH, Python is used successfully time and again in situations where the introduction to programming is tightly integrated with other curricula goals not directly related to core computer science. Bioinformatics, physics, statistics, etc and etc. I don't know that computer programming with Python is for everybody, but I certainly do think it is for folks whose core interests are outside the direct realm of computer science. And since I think this is where Python is most unique, it is also where its competitive advantage in seeking funding would naturally lie. Not that you are arguing with me. Its just wording. The last line of your most recent post still focusing on Python as a "first language". For me, just for example, Python is probably a last language as well as first. It gets me from here to there for pursuit of interests that are on one hand academic, and on the other, not directly focused on computer science. And all I want to do is get from here to there. And I think my use and interest in Python as an academic tool is typical of the kind of interest it generates in academia. And in laboratories, for example. To me, this is why Python deserves and gets the $2 mil. Art From dethe.elza at blastradius.com Tue Dec 9 16:42:52 2003 From: dethe.elza at blastradius.com (Dethe Elza) Date: Tue Dec 9 16:42:58 2003 Subject: [Edu-sig] Soya 3D library Message-ID: I don't recall seeing this before. via Daily Python-URL: http://oomadness.tuxfamily.org/en/soya/index.html oya 3D is a high-level 3D engine for Python, designed with games in mind. Soya is written partly in Python and partly in C; our goal is to provide a full architecture for making free (GPL) game of professionnal quality entirely in Python. Other tools, in the same spirit, will follow (watch for a network game engine soon !). 3D rendering relies on OpenGL, and setting up on SDL. The engine is fully object oriented, high level (even more than traditional "scene graphs") and practical. There are windows binaries (which don't help me any) and source. I haven't gotten the source up and running on OS X yet, but I'll look into it further. This looks like an interesting alternative to VPython and Blender. --Dethe "All spiritual paths have four steps: show up, pay attention, tell the truth, and don't be attached to the results." Angeles Arien From ajsiegel at optonline.net Wed Dec 10 20:39:28 2003 From: ajsiegel at optonline.net (Arthur) Date: Wed Dec 10 20:39:44 2003 Subject: [Edu-sig] re: Draft of a funding request Message-ID: <0HPP008K7J9SUK@mta11.srv.hcvlny.cv.net> Me- >To me, this is why Python deserves and gets the $2 mil. Me more - $2 mil is a lot of money. Gets juices flowing. Were I doing the proposal I would state, as an example of the kind of Python3.0 work that might go into the development sprints, the effort at the integration of the full range of the current Numeric's functionality as a core Python module. Inclusive of whatever changes to core Python, if any, that might be necessary to accomplish that integration as elegantly as possible. a) Because that would be a very good thing. b) Because it would provide a context within the proposal to reference some of the significant work being done with the Python/Numeric combo in governmental and quasi-governmental work, and in academia. I am making eminent good sense to myself. But then I usually do. People pay me for this kind of advice - broadly defined. At this point of my life, most of the people who do so have known me for years. And know exactly what they are getting and not getting. Here, who knows. Art From ajsiegel at optonline.net Thu Dec 11 08:04:18 2003 From: ajsiegel at optonline.net (Arthur) Date: Thu Dec 11 08:04:21 2003 Subject: [Edu-sig] FW: Recent presentation on Kid's Software for Linux Message-ID: <0HPQ00HD8EZ527@mta11.srv.hcvlny.cv.net> Though software for "kids" is not a great interest of mine, I forward this knowing there has been much general interest in the subject emanating from others on the list. One thing I got from a quick look at the presentation was quite positive. Clearly distinguishing between entertainment and educational software. Probably the biggest reason I react negatively to the general subject of software for kids is that there seems to be a reluctance to make clear distinctions here. Particularly in the case of non-commercial software. Somehow if its directed at kids, and comes out of the opensource community, its educational - in some overly vague way. Obviously there is nothing wrong with opensource efforts to entertain kids. But there seems to be a habit of misclassification, or certainly vagueness, here. Art -----Original Message----- From: Bill Kendrick [mailto:nbs@sonic.net] Sent: Thursday, December 11, 2003 7:11 AM To: debian-edu@lists.debian.org; debian-jr@lists.debian.org Subject: Recent presentation on Kid's Software for Linux I whipped together a presentation for my local Linux User Group this month, on "Kid's Software for Linux." I of course mentioned Debian Jr and Edu projects. ;^) I thought you folks might care to take a peek. Enjoy! http://www.lugod.org/presentations/kidslinux/ -bill! bill@newbreedsoftware.com Got kids? Get Tux Paint! http://newbreedsoftware.com/bill/ http://newbreedsoftware.com/tuxpaint/ -- To UNSUBSCRIBE, email to debian-edu-request@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org From urnerk at qwest.net Fri Dec 12 14:00:29 2003 From: urnerk at qwest.net (Kirby Urner) Date: Fri Dec 12 14:00:38 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer Science In-Reply-To: <0HPM001I063XNC@mta4.srv.hcvlny.cv.net> Message-ID: I'm reading John Zelle's book, a real CS1 text book with exercises, using Python as the language. This is an exciting book (see my concluding remarks below). I agree with the blurbs on the back. E.g. Russell May of Morehead State University writes "This text does an excellent job of filling a gaping hole in the Python community -- a textbook for an introductory computer science class... It is as good a text as I have read for CS1." Zelle has a lot of experience teaching CS1, back to Pascal days. I trust his sense of what belongs in a CS1 course in your average community or 4-year college. It's a fairly gentle slope by design, and Python makes it gentler. What frustrates me somewhat is that CS1 doesn't really show off the full power of Python, and by the time we get to CS2 at Zelle's academy (and I'm suspecting this will be somewhat typical), we're on to Java. The reasoning is solid: real CS majors need exposure to a static-typed language, as well as to more than one language. I have no problem with this reasoning. The frustrating part is this means cool CS2-level features of Python may not get much if any airplay. Syntax overloading is not taken up, and many OO concepts get only initial treatment (e.g. no discussion of class vs. instance properties/methods, nor of multiple inheritance). No list comprehensions, generators, regular expressions. No passing of functions as parameters to other functions. No numarray, nor much use of the standard library beyond math, random, string and Tkinter (which last is wrapped in a simpler module, graphics.py). No default or optional parameters. Try-except *is* covered, as is eval() and docstrings. Again, I'm not questioning Zelle's judgment re what's appropriate to CS1. He has long experience in this domain. He's fully aware of what Python can do, and just had to make these necessary cuts. It's probably somewhat painful to him as well, as when James Cameron (movie director) had to cut out reel three of 'Aliens' in order to have it fit the movie-house time constraints of the day (reel three is restored in the extended play version). So let's assume a future in which Python is wildly successful as a CS1 language, but with this pattern of moving on for CS2, with the sense that Python has well-prepared students to tackle something thornier. Given this bright future, I still have this lingering concern that Python may eventually be typecast as a "beginner language" in the sense of being not sophisticated enough for higher level development. As Guido concludes in his short forward: "Reader of this book, congratulations! You will be well rewarded for studying Python. I promise you'll have fun along the way, and I hope you won't forget your first language once you have become a proficient software developer." I think it's this hope that I'm echoing as a concern. How will we ensure that Python continues to receive attention even *beyond* its considerable virtues as a beginner's language? When I try to think about how to get deeper into Python within a CS curriculum, I come up with a few ideas: (a) push more compsci content into the earlier grades so that CS1 might move more quickly from the beginning, and therefore get further. E.g. if a lot of the students coming in already know some Python, this would be ideal. (b) keep the Python thread alive in CS2 even as Java is introduced, with the potential to bridge the two using Jython. This keeps Python around for contrast. This may actually be closer to Zelle's own approach, as he mentions at his website using Python as "pseudo code" for Java-based implementations (but then current Java doesn't do operator overriding, so some cool features of Python would still be missed using this approach). (c) think about returning to Python in CS3, if there is such. (d) return to Python in some of the more specialized classes having to do with graphics, computational geometry, statistics or other specific applications (a recommendation similar to (c) I suppose). (e) keep jiggering with the CS1 curriculum to squeeze more in, even if students do not come in more prepared. When considering option (e), my attention goes to the Point class. If all a Point does is hold x and y coords, then a class implementation seems like overkill in Python. You could get by with built-in tuples. But what if we make a Point slightly more interesting by making it a Vector? Then you can put in __add__ __sub__ __mul__ and __neg__, as well as length(self) and maybe even dot(self,other) and cross(self,other) -- do one in the text, leave the other for an exercise. Then there's conversion to/from polar/spherical coordinates. Such a Vector might still be used as a parameter to Rectangle and Circle constructors, as in the current version, i.e. it could start out as a simple (x,y) container, and gradually mature as new OO ideas are mentioned. Another approach would be to add a chapter called something like 'Looking Ahead' or 'Advanced Python', wherein a lot of these cool features were covered rather quickly and briefly, the intent being to give students a foretaste. Those students most enamored of programming and wanting to move more quickly, could be directed to this chapter and a for-further-reading section. However, none if this is about detracting from the worth of the text as it stands. I believe Zelle is perfectly positioned to press Python's case, and is doing a very credible and creditable job of it. He's clear in his intro that his goal is less to teach Python than to give an overview of important computer science concepts that students will re-encounter in just about any language. He's consciously eschewing certain Python idioms (list comprehensions?) in favor of a more generic approach because mastery of Python per se is not the main goal. I understand his reasoning. Through his efforts, I'm hoping we quickly get to the point where "arguing for Python" as a CS1 language becomes a no-brainer, i.e. it's not even a point of controversy. I think this text moves us a big step in that direction. It's clear, it works, and it should easily go into multiple future editions. Kirby From ajsiegel at optonline.net Fri Dec 12 14:54:34 2003 From: ajsiegel at optonline.net (Arthur) Date: Fri Dec 12 14:54:38 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer Science Message-ID: <0HPS00DUHSMTN4@mta2.srv.hcvlny.cv.net> Kirby writes - >The frustrating part is this means cool CS2-level features of Python may >not get much if any airplay. etc. You can guess, probably, my reaction. This is an identity issue within the Python world, not spontaneous occurrences. And, you are right, unrelated to the programming language itself. Python, according to its enthusiasts, is the perfect tool for enterprise development and for 12 year olds. Python3.0, of course, will remove the barriers for the 8 to 12 crowd, while adding new enterprise functionality. Sound reasonable? To ears other than those of enthusiasts. Ah.. for the middle ground. Art From drlinux at columbus.rr.com Fri Dec 12 15:10:03 2003 From: drlinux at columbus.rr.com (Dave Reed) Date: Fri Dec 12 15:10:13 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer Science In-Reply-To: References: Message-ID: <200312121510.03880.drlinux@columbus.rr.com> On Friday 12 December 2003 14:00, Kirby Urner wrote: > I'm reading John Zelle's book, a real CS1 text book with exercises, using > Python as the language. > > This is an exciting book (see my concluding remarks below). I agree with > the blurbs on the back. E.g. Russell May of Morehead State University > writes "This text does an excellent job of filling a gaping hole in the > Python community -- a textbook for an introductory computer science class... > It is as good a text as I have read for CS1." > > Zelle has a lot of experience teaching CS1, back to Pascal days. I trust > his sense of what belongs in a CS1 course in your average community or > 4-year college. It's a fairly gentle slope by design, and Python makes it > gentler. > > What frustrates me somewhat is that CS1 doesn't really show off the full > power of Python, and by the time we get to CS2 at Zelle's academy (and I'm > suspecting this will be somewhat typical), we're on to Java. The reasoning > is solid: real CS majors need exposure to a static-typed language, as well > as to more than one language. I have no problem with this reasoning. We've (Capital University in Columbus, OH) used John's book (prepublication copies) the last two years in CS1 and I agree that it's a great book for beginners. When I taught CS 2 this year, I used a mixture of Python and C++. I started with Python and covered basic data structures (stacks, queues, linked-lists, trees) and operator overloading. I was able to cover this in about 1/2 to 2/3 the time it previously took me to cover this material in C++. I then spent the last part of the course introducing C++ and covering the same topics in C++ (along with the details of dynamic memory management). Overall it worked well (especially considering this was the first time I'd tried it and didn't have a textbook for it), but the students felt they weren't very good at C++ programming. I basically made my own course notes and had the students buy a CS2 C++ book so they had C++ code to look at and mimic. I'm toying with the idea of writing a book that covers CS2 topics with Python and C++ as described above but given my workload, it would be a couple years before it was done and writing prose isn't my favorite thing to do so I'm almost hoping someone will beat me to it. In our advanced data structures I had juniors who had been taught CS1/CS2 with C++ and sophomores who had learned Python and 6 weeks of C++. Many of the juniors had seen some Python from seminar presentations and a software engineering project the year before. I started out with a double-linked lab and paired up the students so I had one "Python student" and one "C++ student". I had one or two groups with "two Python students" but tried to make these some of the better students. I had them writed the lab in Python and then convert it to C++. This worked very well and the "Python students" gained confidence in their C++ skills. Most of the other labs were done with students working by themselves and I let them choose which language they wanted to use. Not surprisingly only a few students chose C++ for the other projects (and I even offered bonus points for labs written in C++ since it would be more work). > The frustrating part is this means cool CS2-level features of Python may not > get much if any airplay. Syntax overloading is not taken up, and many OO > concepts get only initial treatment (e.g. no discussion of class vs. > instance properties/methods, nor of multiple inheritance). No list > comprehensions, generators, regular expressions. No passing of functions as > parameters to other functions. No numarray, nor much use of the standard > library beyond math, random, string and Tkinter (which last is wrapped in a > simpler module, graphics.py). No default or optional parameters. Some (but obviously not all) of those topics seem beyond CS2 to me. In my programming languages class I have students work in groups of 3-4 and present a language to the class at the end of the semester. They write a few programs to demonstrate some of the features of the language. In the past, students have chosen Python, Perl, Ruby, Visual Basic, C#, PHP, etc. This January since the students will already know Python I'm considering letting one group do an "advanced Python" where they would cover many of the topics listed in the previous paragraph. > Try-except *is* covered, as is eval() and docstrings. > > Again, I'm not questioning Zelle's judgment re what's appropriate to CS1. > He has long experience in this domain. He's fully aware of what Python can > do, and just had to make these necessary cuts. It's probably somewhat > painful to him as well, as when James Cameron (movie director) had to cut > out reel three of 'Aliens' in order to have it fit the movie-house time > constraints of the day (reel three is restored in the extended play > version). > > So let's assume a future in which Python is wildly successful as a CS1 > language, but with this pattern of moving on for CS2, with the sense that > Python has well-prepared students to tackle something thornier. Given this > bright future, I still have this lingering concern that Python may > eventually be typecast as a "beginner language" in the sense of being not > sophisticated enough for higher level development. > > As Guido concludes in his short forward: "Reader of this book, > congratulations! You will be well rewarded for studying Python. I promise > you'll have fun along the way, and I hope you won't forget your first > language once you have become a proficient software developer." > > I think it's this hope that I'm echoing as a concern. How will we ensure > that Python continues to receive attention even *beyond* its considerable > virtues as a beginner's language? I'm not overly worried about this. As most of us do, the students find writing code in Python more enjoyable. As long as instructors allow the students to use Python in some of the upper-level classes, I think students will learn more about Python and see how powerful a language it is as well as an excellent language for beginners. > When I try to think about how to get deeper into Python within a CS > curriculum, I come up with a few ideas: > > (a) push more compsci content into the earlier grades so that CS1 might move > more quickly from the beginning, and therefore get further. E.g. if a lot > of the students coming in already know some Python, this would be ideal. About the only thing I've pushed into CS1 is GUI code (not the traditional event loop) that John's graphics.py module makes very accessible. > (b) keep the Python thread alive in CS2 even as Java is introduced, with the > potential to bridge the two using Jython. This keeps Python around for > contrast. This may actually be closer to Zelle's own approach, as he > mentions at his website using Python as "pseudo code" for Java-based > implementations (but then current Java doesn't do operator overriding, so > some cool features of Python would still be missed using this approach). I agree with this, but think it makes more sense to use C++ so the students get a feel for the lower level issues (memory management) that Java hides and the operator overloading issue you mention. We have a two credit Java course (with a CS 2 prerequisite) that most of our students take since they see it as important for their resume. > (c) think about returning to Python in CS3, if there is such. > > (d) return to Python in some of the more specialized classes having to do > with graphics, computational geometry, statistics or other specific > applications (a recommendation similar to (c) I suppose). I think a programming languages course is a great place to cover some of the advanced topics (whether the instructor covers it or has the students do a presentation on it). And again, allowing students to use Python for some upper-level courses seems sufficient to keep their interest in learning more about Python. > (e) keep jiggering with the CS1 curriculum to squeeze more in, even if > students do not come in more prepared. I'm not certain how feasible this is. For us, Python allows us to spend more time on problem solving (vs. C++ where we spent time dealing with syntax issues, compiler errors, etc.). I think that (problem solving) is more important in CS1 than advanced Python features. > When considering option (e), my attention goes to the Point class. If all a > Point does is hold x and y coords, then a class implementation seems like > overkill in Python. You could get by with built-in tuples. But what if we > make a Point slightly more interesting by making it a Vector? Then you can > put in __add__ __sub__ __mul__ and __neg__, as well as length(self) and > maybe even dot(self,other) and cross(self,other) -- do one in the text, > leave the other for an exercise. Then there's conversion to/from > polar/spherical coordinates. > > Such a Vector might still be used as a parameter to Rectangle and Circle > constructors, as in the current version, i.e. it could start out as a simple > (x,y) container, and gradually mature as new OO ideas are mentioned. > > Another approach would be to add a chapter called something like 'Looking > Ahead' or 'Advanced Python', wherein a lot of these cool features were > covered rather quickly and briefly, the intent being to give students a > foretaste. Those students most enamored of programming and wanting to move > more quickly, could be directed to this chapter and a for-further-reading > section. I'd rather see this in a CS2 book. > However, none if this is about detracting from the worth of the text as it > stands. I believe Zelle is perfectly positioned to press Python's case, and > is doing a very credible and creditable job of it. > > He's clear in his intro that his goal is less to teach Python than to give > an overview of important computer science concepts that students will > re-encounter in just about any language. He's consciously eschewing certain > Python idioms (list comprehensions?) in favor of a more generic approach > because mastery of Python per se is not the main goal. I understand his > reasoning. > > Through his efforts, I'm hoping we quickly get to the point where "arguing > for Python" as a CS1 language becomes a no-brainer, i.e. it's not even a > point of controversy. I think this text moves us a big step in that > direction. It's clear, it works, and it should easily go into multiple > future editions. > > Kirby I hope so too. Dave From ajsiegel at optonline.net Fri Dec 12 19:31:34 2003 From: ajsiegel at optonline.net (Arthur) Date: Fri Dec 12 19:31:39 2003 Subject: [Edu-sig] Numarray, Python and the Universe Message-ID: <0HPT00MMB5GGOG@mta2.srv.hcvlny.cv.net> The release of numarray-0.8 was announced today. Numarray is being developed as a replacement to/improvement on Numeric. The announcement brought me to its website: http://www.stsci.edu/resources/software_hardware/numarray >..., numarray is sufficiently developed to be useful for a number of >applications, and is being used in the Hubble Space Telescope data >processing pipeline (for the Advanced Camera for Surveys) and to develop >the Cosmic Origins Spectrograph pipeline. PyFITS is also based on it. Most >of STScI's future astronomical data processing applications will be built >using its capabilities. Why does this kind of thing knock my socks off? Even beyond the fact that it is not a web page templating mechanism. Art From hancock at anansispaceworks.com Sat Dec 13 08:59:13 2003 From: hancock at anansispaceworks.com (Terry Hancock) Date: Sat Dec 13 08:51:45 2003 Subject: [Edu-sig] Numarray, Python and the Universe In-Reply-To: <0HPT00MMB5GGOG@mta2.srv.hcvlny.cv.net> References: <0HPT00MMB5GGOG@mta2.srv.hcvlny.cv.net> Message-ID: On Friday 12 December 2003 06:31 pm, Arthur wrote: > The release of numarray-0.8 was announced today. Numarray is being > developed as a replacement to/improvement on Numeric. Yeah, my understanding is that the original Numeric had some serious design problems and "would need a rewrite" to become a standard python library module. Numarray being positioned for that role. STScI has been the primary motivator behind that, IIRC. > http://www.stsci.edu/resources/software_hardware/numarray > > >..., numarray is sufficiently developed to be useful for a number of > >applications, and is being used in the Hubble Space Telescope data > >processing pipeline (for the Advanced Camera for Surveys) and to develop > >the Cosmic Origins Spectrograph pipeline. PyFITS is also based on it. Most > >of STScI's future astronomical data processing applications will be built > >using its capabilities. Yep. Python has taken over STScI. ;-) It's getting a grip in other parts of the astronomical community as well. I made a point of installing these packages at Caltech's Infrared Processing and Analysis Center (IPAC) which was my "day job" for the last couple of years. > Why does this kind of thing knock my socks off? > Even beyond the fact that it is not a web page templating mechanism. I'm confused by what you meant there. Are you saying you're not aware of python as a scientific programming language? It's pretty popular, actually. The main competitor is IDL (Interactive Data Language) from RSI. But RSI is Proprietary (with a capital 'P'), and VERY EXPENSIVE. You have to have a license server and pay per-CPU, per-year! For a site like IPAC, this costs something like $50,000 a year. Needless to say, the idea of using a free-licensed program like Python becomes very attractive if it can do the same job. As delivered, Python can't. But with the right extension modules, it can become very powerful. And unlike, IDL, Python is *also* a mainstream programming language, so it wouldn't be too hard to integrate with a web application, for example (I could set up a Zope site to drive IRAF via PyRAF, for example, or to generate charts with Chaco. It wouldn't exactly be 'easy', but it could be done). References for your reading pleasure: ;-) http://www.stsci.edu/resources/software_hardware/numarray http://www.stsci.edu/resources/software_hardware/pyraf http://www.scipy.org/ http://www.scipy.org/site_content/chaco http://starship.python.net/~hinsen/ScientificPython/ http://www.pythonware.com/products/pil/index.htm http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/ http://pyopengl.sourceforge.net/ http://www.fftw.org/ http://cens.ioc.ee/projects/f2py2e/ Oh, and the competition: http://www.rsinc.com/ ;-) Most of this stuff "isn't quite ready for prime time", but it's coming along nicely. Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From ajsiegel at optonline.net Sat Dec 13 11:54:04 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 13 11:54:08 2003 Subject: [Edu-sig] re: Numarray, Python and the Universe Message-ID: <0HPU00G02EY6LP@mta7.srv.hcvlny.cv.net> Terry - >I'm confused by what you meant there. Are you saying you're >not aware of python as a scientific programming language? It's >pretty popular, actually. Really nothing more than that this and other projects for which numeric/numarray is an important component are, to me, exciting beyond most other real world applications of Python of which I am aware. The relevance to edu-sig, is that I think Python can by all rights consider itself to be a important educational tool in connection with scientific related curricula, beyond computer science itself. And that, of its own accord, things are likely to be moving in this direction. And that more general awareness of the projects you list would be a good thing. For example, Michael McLay - in trying to put together a major funding proposal related to Python and education - admits to being largely unaware of this entire aspect of Python in the real world. Whereas, to me, it is the lead article. Art From jmillr at umich.edu Sat Dec 13 12:30:42 2003 From: jmillr at umich.edu (John Miller) Date: Sat Dec 13 12:30:47 2003 Subject: [Edu-sig] Education Arcade In-Reply-To: Message-ID: <13682D90-2D92-11D8-ADED-00039303967A@umich.edu> On Thursday, December 11, 2003, at 12:03 PM, Arthur wrote: > One thing I got from a quick look at the presentation was quite > positive. > Clearly distinguishing between entertainment and educational software. > Probably the biggest reason I react negatively to the general subject > of > software for kids is that there seems to be a reluctance to make clear > distinctions here. Particularly in the case of non-commercial > software. > Somehow if its directed at kids, and comes out of the opensource > community, > its educational - in some overly vague way. Obviously there is > nothing > wrong with opensource efforts to entertain kids. But there seems to be > a > habit of misclassification, or certainly vagueness, here. The following came from NewsScan Daily, 11 December 2003. (I happened to read it immediately after reading Arthur's message above.) Instead of thinking of this as an unfortunate blurring of boundaries, these researchers appear to be identifying this as a means of engaging students' attention. (If you can't beat 'em, join 'em!) Perhaps we can think of it as simply a new or different genre. I think the real value of this sort of effort (below) lies in the direction of *students* developing such software for their peers (perhaps their younger peers). Hence the value of PyGame; hence the value of Soya 3D (and others like it): --------------------- EDUCATION ARCADE SEEKS TO MERGE LEARNING, GAMING The Massachusetts Institute of Technology has launched the Education Arcade initiative, aimed at exploiting the educational benefits of videogames. The project plans to harness the talents of scholars, international game designers, publishers, educators and policy makers to develop videogames that would be fully incorporated into existing curricula. "We want to lead the change in the way the world learns through computer and video games," says MIT professor Henry Jenkins. "Our mission is to demonstrate the social, cultural and educational potential of games by initiating game development projects. We will also be informing public conversations about the broader and sometimes unexpected uses of this emerging art form in education." (Herald Sun 10 Dec 2003) http://www.heraldsun.news.com.au/common/story_page/ 0,5478,8101066%255E11869,00.html ---------------------- John Miller From ajsiegel at optonline.net Sat Dec 13 12:50:08 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 13 12:50:12 2003 Subject: [Edu-sig] re: Education Arcade Message-ID: <0HPU00DENHJK56@mta5.srv.hcvlny.cv.net> >EDUCATION ARCADE SEEKS TO MERGE LEARNING, GAMING >The Massachusetts Institute of Technology has launched the Education >Arcade initiative, aimed at exploiting the educational benefits of >videogames. Funded by.... I'll be the Catholic church here, thank you. An avowed enemy of this kind of progress. Avowed. Art From urnerk at qwest.net Sat Dec 13 13:19:04 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 13:19:02 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: <0HPU00DENHJK56@mta5.srv.hcvlny.cv.net> Message-ID: I always thought SimCity was a fairly good intro to (a) simulations in general and (b) city planning in particular There's lots of infrastructure to think about, traffic problems, land values, taxes... I can't think of a better way to have these concepts sink in. Games in the same genre (SimAnt, SimEarth and even The Sims) likewise lead to constructive concept development. I think schools could have taken more advantage of it than they did. So kids learn something outside of school -- not the first time. Zoombinis CDs exercise logic abilities. Not that different from sitting down to do some Martin Gardner puzzles. Anything wrong with Martin Gardner puzzles? The Magic School Bus CDs mix some arcade-style games with lots of information about planets, bodies, marine life, rock formations or what have you (we have several). I've never seen much of a downside to this kind of exposure. Arthur, until/unless I understand your view better, it sounds laughably grinch-like, along the lines of: "since *I* didn't learn this easy/fun way, why should *they* get this benefit?" For now, my view is: more power to MIT's Education Arcade initiative. Kirby > >EDUCATION ARCADE SEEKS TO MERGE LEARNING, GAMING > >The Massachusetts Institute of Technology has launched the Education > >Arcade initiative, aimed at exploiting the educational benefits of > >videogames. > > Funded by.... > > I'll be the Catholic church here, thank you. An avowed enemy of this kind > of progress. Avowed. > > > Art From ajsiegel at optonline.net Sat Dec 13 13:39:29 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 13 13:39:32 2003 Subject: [Edu-sig] re: Education Arcade Message-ID: <0HPU00EF0JTOL1@mta2.srv.hcvlny.cv.net> >For now, my view is: more power to MIT's Education Arcade initiative. The Waldorf School movement, with which I have no affiliation or particular interest, has an aggressive perspective on this kind of thing. http://hem.passagen.se/thebee/waldorf/links2.htm See the links under: MASS MEDIA AND COMPUTERS, WITH SPECIAL REFERENCE TO CHILDHOOD AND EDUCATION Kirby - for what its worth - I believe your friend at Design Science Toys does have some affiliation. Which is consistent with the kind of hands on toys he markets. Toys can be educational, sure. Games can be educational, sure. Why isn't it fairly well common sense that toys and games will be less meaningful and therefore effective when we turn them from concrete to virtual. What does virtuality bring to the table? I am by no means endorsing all the views expressed in some of the above links. I am aware of the Waldorf Movement only because affiliated folks have done some interesting, and, in my view (I am not an authority), unimpeachable work in connection with projective geometry. So they happen to be on my radar, and their particular form of "resistance" is something I can quickly put my hands on. And I am not unwilling to find allies where I can, on this issue. The issues here are by all reasonable standards beyond scientific measurement, though the folks committed to this approach will, no doubt, claim scientific justification. And have considerable success, I'm afraid. What we are left with, really, is another front of cultural wars. There is a computer scientist down in Brazil vocal on these issues, whose stuff I appreciated - but I can't re-find the link right now. I'll bother the list with it when I do. Art From urnerk at qwest.net Sat Dec 13 13:41:57 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 13:41:53 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to ComputerScience In-Reply-To: Message-ID: Earlier I wrote: > When considering option (e), my attention goes to the Point class. If all > a Point does is hold x and y coords, then a class implementation seems > like overkill in Python. You could get by with built-in tuples. Now that I have the student CD, I see that the Point class is not just a holder for (x,y) values. It has some knowledge of Tk, is in fact a subclass of GraphicsObject, which is very Tk aware. This brings up a design pattern thread for me. My tendency over the years has been to write the geometric objects, such as vectors and polyhedra, in such a way as to deliberately keep them ignorant of any output apparatus. Then I define a "writer" that's customized to say Tk, or VRML, or POV-Ray, and pass the geometric objects to the writer. The writer squeezes pure geometric information from the things, and translates them into output appropriate to its medium. You can see evidence of this strategy going all the way back to 1998, when I was still doing this stuff in FoxPro (I hadn't learned of Python yet): http://www.4dsolutions.net/ocn/oop.html A consequence of this design is I've been putting what philosophers used to call "secondary attributes" (color, texture) in the writer, instead of in the geometric objects. So if I want a red tetrahedron, say, I change to "edge color" and "face color" properties in the writer, before passing a tetrahedron object to it. E.g.: >>> povwriter = povray.Povray("outfile.pov") >>> povwriter.cylcolor = 'Red' # secondary attribute >>> obj = rbf.Tetra() # get a tetrahedron >>> obj.draw(povwriter) But internally to obj.draw(povwriter), I'm invoking povwriter on the various edges, vertices and faces of my obj: def draw(povwriter): for e in self.edges(): povwriter.edge(e) ... and like that. The upside of this design is if I go obj.draw(vrmlwriter), then the same object gets output in VRML syntax. In sum, when writing geometric objects to output media, there's a way to go wherein anything specific to the medium is saved to the "writer" object, while anything purely geometric, and common to all media, is saved in the geometric object. The pure geometry is kept separate from the messy details of I/O. I'm just bringing this up as a by the way. I'm not saying Zelle should have done this in his text book. It'd be a fruitful discussion for CS2 level course -- when we're talking about design patterns. Kirby From urnerk at qwest.net Sat Dec 13 14:08:21 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 14:08:18 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: <0HPU00EF0JTOL1@mta2.srv.hcvlny.cv.net> Message-ID: > Kirby - for what its worth - I believe your friend at Design Science Toys > does have some affiliation. Which is consistent with the kind of hands on > toys he markets. Toys can be educational, sure. Games can be > educational, sure. Why isn't it fairly well common sense that toys > and games will be less meaningful and therefore effective when we turn > them from concrete to virtual. What does virtuality bring to the table? What's so "virtual" about a colorful, visual, responsive experience, which engages your fingers and your mind, and plays sounds? It's not the computer game itself that's virtual, but the thing it represents, such as a city, or the planet. It presents a model. A physical globe can do no better, and unless it's animated/interactive, maybe doesn't do as well. Board games are the closest things to simulations. Monopoly for example. One might argue that computer games are isolating, as it's just the player and the computer, so the social interactions are poor. But this argument neglects the fact that kids get together to play these things peer-to-peer, and or take turns at the console. > I am by no means endorsing all the views expressed in some of the above > links. I am aware of the Waldorf Movement only because affiliated folks > have done some interesting, and, in my view (I am not an authority), > unimpeachable work in connection with projective geometry. So they happen > to be on my radar, and their particular form of "resistance" is something > I can quickly put my hands on. I'd be more interested in understanding your own views than trying to wade through the Waldorf stuff. If you're such an avowed enemy of educational arcade games, you must have a succinct synopsis of what's the big deal. > And I am not unwilling to find allies where I can, on this issue. > I wonder if Waldorfians would consider you an ally. I doubt you follow their line in enough key respects to be considered on board with their overall philosophy of education. But I don't really know. > The issues here are by all reasonable standards beyond scientific > measurement, though the folks committed to this approach will, no doubt, > claim scientific justification. And have considerable success, I'm afraid. > > What we are left with, really, is another front of cultural wars. There > is a computer scientist down in Brazil vocal on these issues, whose stuff > I appreciated - but I can't re-find the link right now. > > I'll bother the list with it when I do. > > Art So far, I'm no further educated as to your specific objections. When you come up with something (that's specifically yours), let me know. I don't really want to read long essays. Just give the gist. Kirby From ajsiegel at optonline.net Sat Dec 13 14:11:26 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 13 14:11:29 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to ComputerScience Message-ID: <0HPU008CFLB3SZ@mta10.srv.hcvlny.cv.net> >In sum, when writing geometric objects to output media, there's a way to go >wherein anything specific to the medium is saved to the "writer" object, >while anything purely geometric, and common to all media, is saved in the >geometric object. The pure geometry is kept separate from the messy >details of I/O. If I am following you: In PyGeo the geometric "reality" is separated from the drawing, for a number of reasons. My Vpython objects, which draw, are related to my geometric objects which "are", but they are not those objects themselves. Partly because of the corner cases. If, say, my point defined as the intersection of 2 lines moves off to infinity, I have a drawing problem. I cheat and put it, well, very far away - but not so far away as would create havoc in the rendering. The point itself knows where it really is - at infinity. 'Til now, I have been using Vpython to output to Povray. But am moving toward each geometric object having its own method to output itself to Povray format. And if VPython goes away, I can always plug in a different rendering system without changing anything too near the core of what PyGeo is. Think it is sensible, and standard, design practice for this kind of thing. Art From ajsiegel at optonline.net Sat Dec 13 14:37:02 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 13 14:37:05 2003 Subject: [Edu-sig] re: Education Arcade Message-ID: <0HPU00GVHMHQ8Z@mta4.srv.hcvlny.cv.net> >So far, I'm no further educated as to your specific objections. When you >come up with something (that's specifically yours), let me know. I don't >really want to read long essays. Just give the gist. What is the point of espousing further the gist of my Zen on this, unsupported by scientific evidence? Not even I have stomach to hear more of that from me. What is clear is that whoever gets more funding will garner more "scientific" evidence to supports their Zen. My side doesn't have a prayer in hell in keeping up. And I ask you to keep that in mind as the scientific evidence begins to emerge. I am voicing the anti-establishment view. Or what is likely to evolve as such. So therefore I expect your support ;) Art From ajsiegel at optonline.net Sat Dec 13 14:57:38 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 13 14:57:42 2003 Subject: [Edu-sig] re: Education Arcade Message-ID: <0HPU00AWFNFS8S@mta9.srv.hcvlny.cv.net> Kirby writes - >So far, I'm no further educated as to your specific objections. When you >come up with something (that's specifically yours), let me know. I don't >really want to read long essays. Just give the gist. On second thought let me say this much. Learning is about demystification. I would probably not go as far as the Waldorf folks and deny kids a great magic show. But that's precisely what a good video game is. In some sense it is the opposite of a learning experience. And the power relationship is perverse. The machine has the power, the developer has the power. The kid is a shmuck. Exactly the wrong lesson. This is the part that gets me worked up and I better stop before I get myself too worked up. I am, BTW, 4000% percent *for* helping kids, as part of their education, demystify their games. That in part is what PyGeo could be about. But there is very little point and click to it, a good deal of math to it, and it is not a game. Art From urnerk at qwest.net Sat Dec 13 14:59:57 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 14:59:55 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to ComputerScience In-Reply-To: <0HPU008CFLB3SZ@mta10.srv.hcvlny.cv.net> Message-ID: > 'Til now, I have been using Vpython to output to Povray. But am moving > toward each geometric object having its own method to output itself to > Povray format. > This would be a different design pattern from the one I've described. In the implementation I'm describing, the geometric object will never know anything about Povray or VRML or Vpython. It doesn't output itself, but gets passed to a "writer" which knows how to interrogate it for the necessary information. Here's an example: #===== class Vector: # note: no draw method def __init__(self,x,y): self.x = x self.y = y #===== class Povray: def __init__(self,filename): self.outfile = filename def point(self, v): # v is a vector (above) # def edge(self,v0,v1): # v0,v1 are vectors (above) # def polygon(self,vlist): # vlist is a list of vectors # #===== class VRML: def __init__(self,filename): self.outfile = filename def point(self, v): # def edge(self,v0,v1): # def polygon(self,vlist): # > And if VPython goes away, I can always plug in a different rendering > system without changing anything too near the core of what PyGeo is. > Think it is sensible, and standard, design practice for this kind of > thing. > But if you take away VPython, will your objects still have a lot of draw methods that are now irrelevant. From your description, it sounded like you were doing something like: #===== class Vector: def __init__(self,x,y): self.x = x self.y = y def drawPOV(self, filename): # def drawVRML(self, filename): # def drawTk(self, canvas): # In this case, the Vector object has a lot of knowledge about specific output formats. In the former case, the format writers squeeze objects like oranges, to get the "juice" out (just numbers, basically). The writers then independently translate this "juice" into their own respective media. Kirby PS: If I did add a draw method to Vector (above), it would have the form: class Vector: # note: no draw method def __init__(self,x,y): self.x = x self.y = y def draw(self, writerobj): writerobj.point(self) i.e. it's still the case that all POV-ray specific info is hidden inside the passed-in object: v.draw(povobject) and v.draw(VRMLobject) would result in different syntax because of the parameter objects, not because of the vector object. Kirby From tjd at sfu.ca Sat Dec 13 15:20:23 2003 From: tjd at sfu.ca (Toby Donaldson) Date: Sat Dec 13 15:20:34 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to Computer Science In-Reply-To: Message-ID: <003a01c3c1b6$8cf1c790$a47074ce@bigduck> -- Dr. Toby Donaldson Assistant Professor School of Interactive Arts and Technology Simon Fraser University > -----Original Message----- > From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On > Behalf Of edu-sig-request@python.org > Sent: December 13, 2003 8:54 AM > To: edu-sig@python.org > Subject: Edu-sig Digest, Vol 5, Issue 11 > > Send Edu-sig mailing list submissions to > edu-sig@python.org > Message: 1 > Date: Fri, 12 Dec 2003 11:00:29 -0800 > From: "Kirby Urner" > Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer > Science > To: edu-sig@python.org > Message-ID: > Content-Type: text/plain; charset="US-ASCII" > > > I'm reading John Zelle's book, a real CS1 text book with exercises, using > Python as the language. > > This is an exciting book (see my concluding remarks below). I agree with > the blurbs on the back. E.g. Russell May of Morehead State University > writes "This text does an excellent job of filling a gaping hole in the > Python community -- a textbook for an introductory computer science > class... > It is as good a text as I have read for CS1." > > Zelle has a lot of experience teaching CS1, back to Pascal days. I trust > his sense of what belongs in a CS1 course in your average community or > 4-year college. It's a fairly gentle slope by design, and Python makes it > gentler. > > What frustrates me somewhat is that CS1 doesn't really show off the full > power of Python, and by the time we get to CS2 at Zelle's academy (and I'm > suspecting this will be somewhat typical), we're on to Java. The > reasoning > is solid: real CS majors need exposure to a static-typed language, as > well > as to more than one language. I have no problem with this reasoning. > > The frustrating part is this means cool CS2-level features of Python may > not > get much if any airplay. Syntax overloading is not taken up, and many OO > concepts get only initial treatment (e.g. no discussion of class vs. > instance properties/methods, nor of multiple inheritance). No list > comprehensions, generators, regular expressions. No passing of functions > as > parameters to other functions. No numarray, nor much use of the standard > library beyond math, random, string and Tkinter (which last is wrapped in > a > simpler module, graphics.py). No default or optional parameters. > > Try-except *is* covered, as is eval() and docstrings. > > Again, I'm not questioning Zelle's judgment re what's appropriate to CS1. > He has long experience in this domain. He's fully aware of what Python > can > do, and just had to make these necessary cuts. It's probably somewhat > painful to him as well, as when James Cameron (movie director) had to cut > out reel three of 'Aliens' in order to have it fit the movie-house time > constraints of the day (reel three is restored in the extended play > version). > > So let's assume a future in which Python is wildly successful as a CS1 > language, but with this pattern of moving on for CS2, with the sense that > Python has well-prepared students to tackle something thornier. Given > this > bright future, I still have this lingering concern that Python may > eventually be typecast as a "beginner language" in the sense of being not > sophisticated enough for higher level development. > > As Guido concludes in his short forward: "Reader of this book, > congratulations! You will be well rewarded for studying Python. I > promise > you'll have fun along the way, and I hope you won't forget your first > language once you have become a proficient software developer." > > I think it's this hope that I'm echoing as a concern. How will we ensure > that Python continues to receive attention even *beyond* its considerable > virtues as a beginner's language? > > When I try to think about how to get deeper into Python within a CS > curriculum, I come up with a few ideas: > > (a) push more compsci content into the earlier grades so that CS1 might > move > more quickly from the beginning, and therefore get further. E.g. if a lot > of the students coming in already know some Python, this would be ideal. > > (b) keep the Python thread alive in CS2 even as Java is introduced, with > the > potential to bridge the two using Jython. This keeps Python around for > contrast. This may actually be closer to Zelle's own approach, as he > mentions at his website using Python as "pseudo code" for Java-based > implementations (but then current Java doesn't do operator overriding, so > some cool features of Python would still be missed using this approach). > > (c) think about returning to Python in CS3, if there is such. > > (d) return to Python in some of the more specialized classes having to do > with graphics, computational geometry, statistics or other specific > applications (a recommendation similar to (c) I suppose). > > (e) keep jiggering with the CS1 curriculum to squeeze more in, even if > students do not come in more prepared. > > When considering option (e), my attention goes to the Point class. If all > a > Point does is hold x and y coords, then a class implementation seems like > overkill in Python. You could get by with built-in tuples. But what if > we > make a Point slightly more interesting by making it a Vector? Then you > can > put in __add__ __sub__ __mul__ and __neg__, as well as length(self) and > maybe even dot(self,other) and cross(self,other) -- do one in the text, > leave the other for an exercise. Then there's conversion to/from > polar/spherical coordinates. > > Such a Vector might still be used as a parameter to Rectangle and Circle > constructors, as in the current version, i.e. it could start out as a > simple > (x,y) container, and gradually mature as new OO ideas are mentioned. > > Another approach would be to add a chapter called something like 'Looking > Ahead' or 'Advanced Python', wherein a lot of these cool features were > covered rather quickly and briefly, the intent being to give students a > foretaste. Those students most enamored of programming and wanting to > move > more quickly, could be directed to this chapter and a for-further-reading > section. > > However, none if this is about detracting from the worth of the text as it > stands. I believe Zelle is perfectly positioned to press Python's case, > and > is doing a very credible and creditable job of it. > > He's clear in his intro that his goal is less to teach Python than to give > an overview of important computer science concepts that students will > re-encounter in just about any language. He's consciously eschewing > certain > Python idioms (list comprehensions?) in favor of a more generic approach > because mastery of Python per se is not the main goal. I understand his > reasoning. > > Through his efforts, I'm hoping we quickly get to the point where "arguing > for Python" as a CS1 language becomes a no-brainer, i.e. it's not even a > point of controversy. I think this text moves us a big step in that > direction. It's clear, it works, and it should easily go into multiple > future editions. > > Kirby As much as I like Python, it doesn't walk on water. Arguing about CS1 languages usually degenerates into tedious religious battle where opposing sides argue the undeniable virtues of their language, and are generally disinterested in hearing about any other language. Yes, Python has lots of neat features, but so does every language, and arguing that Python's neat set of feature is better than language X's is a stalemate from the start. Productivity is far more important than language features, and the reason why Python trumps other languages is ultimately that it is so much easier to become productive in Python. I also think that if Python became known as the "beginner's language", then that would be a *much* bigger success than if it became the language of choice for CS1. Far more people program than take CS1 courses. Toby From ajsiegel at optonline.net Sat Dec 13 15:23:08 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 13 15:23:20 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to ComputerScience Message-ID: <0HPU0024EONDUG@mta1.srv.hcvlny.cv.net> >This would be a different design pattern from the one I've described. >In the implementation I'm describing, the geometric object will never know >anything about Povray or VRML or Vpython. It doesn't output itself, but >gets passed to a "writer" which knows how to interrogate it for the >necessary information That's sort of how the povexport.py that is available for Vpython works (though I use my own 'enhanced' version of the 'official' povexport.py, same principle, handles some neglected and newer Vpython primitives, I release it to the Vpython folks, might have needed a tweak here or there for their purposes, nothing happens, 2 years later, another story) Can you envision a way to make the pattern you are describing real time and interactive? Maybe so, and maybe I can apply it. Did he say interactive? That's right, mouse clicks - am I a hypocrite or what. Or else middle ground, middle ground. Art From urnerk at qwest.net Sat Dec 13 15:26:44 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 15:26:40 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: <0HPU00AWFNFS8S@mta9.srv.hcvlny.cv.net> Message-ID: > Learning is about demystification. I would probably not go as far as the > Waldorf folks and deny kids a great magic show. But that's precisely what > a good video game is. In some sense it is the opposite of a learning > experience. > > And the power relationship is perverse. The machine has the power, the > developer has the power. The kid is a shmuck. Exactly the wrong lesson. > > This is the part that gets me worked up and I better stop before I get > myself too worked up. > Well, this is the kind of thing I'm trying to get a feel for -- scientific evidence is not of interest at the moment. I just want to get where you're coming from. I understand you don't like black boxes which simply dazzle without providing insights. You don't like bread and circuses, designed to keep the masses dumbed down, the better to be taken advantage of by those puppet-masters with the cynical know-how. You see bells and whistles as so much science fiction scenery designed to create an illusion, to fool, to hoodwink on some level, and so arcade games, for you, are the antithesis of real education. How 'm I doing? Where I think you might be mixing a couple of ideas is when you talk about how video games don't provide much insight into how they actually work (are mystifying in this regard). But I would-be Boeing 777 pilot in a flight simulator wants to train her reflexes to match those of the real 777. The layout of the cockpit controls is of interest, and the reactions of the plane. It's probably not of specific interest how this realism is achieved, how the pneumatic rods supporting the faux cockpit are set to rock and roll in accordance with simulated wind buffeting, thrust, flap position and so on. The point of this simulation is to teach about the 777, not about how to build a flight simulator. Likewise, while I think it's true that many kids have no clue as to how a given arcade game works, the game designers may well have done a very good job of imparting knowledge about *something completely different* -- such as the workings of global weather patterns, the stock market, the advertising business, or political campaigning. Imagine an arcade game wherein you're running for president of some country. You have money concerns, issue concerns, perception concerns. Donor X promises you big bucks, but not if you appear to side with Y in your statements. Different versions of a stump speech appear on screen. You have to decide which one you'll go with (advisors weigh in with pros and cons, perhaps audibly, using emotional language). Money sources appear or dry up as a result of your choices. In the meantime, your competition is doing likewise. Negative ads appear, about your accepting funds from Donor X. How all this is implemented electronically may be something of a black box, but the insights obtainable about the political process might be significant. Of course it all depends on the game designers just what lessons might be built in. But that's true of any simulation (including those delivered in narrative formats, in the form of history books for example). In other words, I don't think the fact that games will come with built-in biases and world views is an issue about the games per se. It's more an issue about teachers and teaching in general -- we have points of view, and that's just the way it is (and always will be, no?). Kirby From jeff at elkner.net Sat Dec 13 15:28:12 2003 From: jeff at elkner.net (Jeffrey Elkner) Date: Sat Dec 13 15:28:16 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to Computer Science In-Reply-To: <003a01c3c1b6$8cf1c790$a47074ce@bigduck> References: <003a01c3c1b6$8cf1c790$a47074ce@bigduck> Message-ID: <1071347292.6233.27.camel@robeson> I completely agree with Toby on this. I've already managed to make Python the CS1 language at Yorktown High, but it hasn't reached beyond the hard core geek community. If we really want to popularize it to a broader audience, it needs to fill the space taken by VB (at the high school) or what Logo used to do (at the middle school). On Sat, 2003-12-13 at 15:20, Toby Donaldson wrote: > I also think that if Python became known as the "beginner's language", > then that would be a *much* bigger success than if it became the > language of choice for CS1. Far more people program than take CS1 > courses. > > Toby -- Jeffrey Elkner Open Book Project From ajsiegel at optonline.net Sat Dec 13 15:29:46 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 13 15:30:13 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to Computer Science Message-ID: <0HPU00C96OXFHN@mta3.srv.hcvlny.cv.net> Tony writes- >I also think that if Python became known as the "beginner's language", >then that would be a *much* bigger success than if it became the >language of choice for CS1. Far more people program than take CS1 >courses. I doubt whether the folks using it in connection with the Hubble project think of themselves as beginners in any sense. It is a tool of choice, very much so. With the world of possibilities open to them. It is important, to me, that it - and other projects like it (there are many) - be on Python's resume as such. And why the "beginners language" thing is a misnomer in some important ways. Though not untrue in itself. Art From ajsiegel at optonline.net Sat Dec 13 15:39:42 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 13 15:39:46 2003 Subject: [Edu-sig] re: Education Arcade Message-ID: <0HPU00C0YPE13Q@mta2.srv.hcvlny.cv.net> >Well, this is the kind of thing I'm trying to get a feel for -- scientific >evidence is not of interest at the moment. I just want to get where you're >coming from. Can't respond. Gotta go. Prairie Home Companion is coming live out of New York tonight and I have tickets. Listen to it. I'll wave. Art From urnerk at qwest.net Sat Dec 13 15:42:05 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 15:42:02 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <003a01c3c1b6$8cf1c790$a47074ce@bigduck> Message-ID: > As much as I like Python, it doesn't walk on water. Arguing about CS1 > languages usually degenerates into tedious religious battle where > opposing sides argue the undeniable virtues of their language, and are > generally disinterested in hearing about any other language. Yes, Python > has lots of neat features, but so does every language, and arguing that > Python's neat set of feature is better than language X's is a stalemate > from the start. I wasn't doing that though. I realize there are lots of worthwhile languages out there and it pays to move on from Python. But it also pays to come back to it later, and if all the Python you ever get is in CS1, then you might not realize some of its power. This is equally true for some other languages. When I did CS1 (or the equivalent), the approach was to look at a different language every few weeks, or even more frequently. We used FORTRAN, PL/1, SNOBOL, APL, Assembler (simplified/simulated), and probably a few others I can't remember right now. I kind of liked this approach. Very eclectic. In the meantime, a lot of the lectures were about the guts of computers -- details about the registers 'n stuff. Of course this was long before Python. PCs hadn't even been invented yet (we did all our work on a mainframe). > Productivity is far more important than language features, and the > reason why Python trumps other languages is ultimately that it is so > much easier to become productive in Python. > How is this different from discussing "neat features"? That you can use such simple syntax to do file I/O, or don't need a lot of type declarations, are *features* which lead to higher productivity. Likewise, generators and list comprehensions (which we might not get to in CS1), are productivity enhancers (there's also a PEP about combining these two in particular, which Martelli is pushing -- dunno what's it's status as of today). > I also think that if Python became known as the "beginner's language", > then that would be a *much* bigger success than if it became the > language of choice for CS1. Far more people program than take CS1 > courses. > > Toby I don't see these as particularly different either. CS1 is casting about for a good language to start with, for introductory purposes. C++ was definitely too hard, and Java, though better, is still sucking a lot of attention away from concepts, and onto syntax. So people in Zelle's camp argue that we should (a) look at so-called "scripting" languages for candidates and that (b) of these languages, Python is one of the best (other choices being Ruby, Perl and Scheme -- Scheme having a big advantage when it comes to having an already-developed CS1/CS2 curriculum). Kirby From urnerk at qwest.net Sat Dec 13 15:46:20 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 15:46:17 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to ComputerScience In-Reply-To: <0HPU0024EONDUG@mta1.srv.hcvlny.cv.net> Message-ID: > Can you envision a way to make the pattern you are describing real time > and > interactive? > > Maybe so, and maybe I can apply it. > I'll give it some thought. What's true is I've so far been very file-centric in my output concerns -- I haven't done much real time updating of a canvas object. But off hand, I don't see how that'd be much different. For example, a Tkwriter would know how to write a point or edge to the canvas, but the point or edge object in question would know nothing whatsoever about Tk. Kirby From john.zelle at wartburg.edu Sat Dec 13 15:59:56 2003 From: john.zelle at wartburg.edu (John Zelle) Date: Sat Dec 13 16:02:04 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to ComputerScience References: Message-ID: <3FDB7DCC.4000107@wartburg.edu> Hello all, I've been reading the thread about my book with great interest. All feedback is helpful, even when I don't necessarily agree. Let me just say that I thought Kirby's initial posting was right on target. My book is intended as a CS1 book, not a book on Python. Because of that, I have been a little fearful about how the book might be received in the Python community. Kirby clearly understands the distinction being drawn, and I appreciate the way his remarks are framed. I am much less concerned than others about how the more advanced and/or indiosyncratic features of Python are/might be taught. The truth is that the tradtional core computer science sequence CS1 (Intro to programming), C2 (Data Structures and Design), CS3 (Advanced Data structures and Algorithms) have not been "about" language for a long time. Even a student that goes through this sequence using a single language, whether that be C++, Java, or Python will not acquire expert knowledge of the language. That's simply not what these courses are about. The point is that once a student has completed CS1/CS2, they can pick up a good technical book and have the foundation to learn the complete feature set of any language. Students continue programming throughout their CS programs and in future careers. They are constantly changing tools. With some serious early exposure to a variety of tools (say dynamic and static languages) they are in a better position to pick tools that are best suited for the job at hand. A move to Java or C++ in CS2 should not be seen as "abandoning" Python. In fact, seeing Python side-by-side with Java ususally leads my students to want to do more Python projects (and hence learn more about Python) in their upper-level classes. Without seeing a statically typed language, it's hard to appreciate the elegance and flexibility of Python. For example, when we talk about polymorphism in CS1, the students say "of course, what's the big deal." Only when they see the complexity of doing similar things in C++ or Java do they really appreciate the concept. Whatever approach one takes to the first classes, it is important to realize that our students do not begin programming with the same background that we have. Most of my students are not particularly mathematically or scientifically oriented (at least at the start). And they are concrete, not abstract thinkers. It's important that we try to meet them where they are so that they can learn and grow with minimal frustration. Packing more into CS1 is probably not the way to do that. Along similar lines, Kirby's comment on abstracting geometric objects from their realizations (see below) are absolutely right on track as a matter of design principle. I do address this sort of decoupling toward the end of the book (model-view architectures). However, the goal of the graphics package is somewhat different. The purpose is to introduce objects in a very concrete way. It is a graphics library, not a geometry library. A Point doesn't really represent an abstract geometric point, but a postion _in_a_window_. Similarly, the Rectangle is not a general mathemetical abstraction, but an actual box on the screen (maybe I should have called it "box"). Now an object on the screen has inherent properties such as color and outline width as instrinsic properties; whereas the mathematical abstraction does not. This is most evident in the Line class. A Line on the screen is not really a line in the mathematical sense---at best it would be a line segment. If you were designing an application around the mathematical concepts you could use the primitives of the graphics library to visually realize some of those (so the graphics package would be analogous to the backend, not the front). Of course, I do use the graphics package to get my students to do things like calculating points of intersection and computing coordinate transformations. The beauty of it is that they think they are just drawing pretty pictures :-). My thanks to all of you who have given me both encouragement and criticism on this project. --John Kirby Urner wrote: >Earlier I wrote: > > >>When considering option (e), my attention goes to the Point class. If all >>a Point does is hold x and y coords, then a class implementation seems >>like overkill in Python. You could get by with built-in tuples. >> >> > >Now that I have the student CD, I see that the Point class is not just a >holder for (x,y) values. It has some knowledge of Tk, is in fact a subclass >of GraphicsObject, which is very Tk aware. > >This brings up a design pattern thread for me. My tendency over the years >has been to write the geometric objects, such as vectors and polyhedra, in >such a way as to deliberately keep them ignorant of any output apparatus. > >Then I define a "writer" that's customized to say Tk, or VRML, or POV-Ray, >and pass the geometric objects to the writer. The writer squeezes pure >geometric information from the things, and translates them into output >appropriate to its medium. > >You can see evidence of this strategy going all the way back to 1998, when I >was still doing this stuff in FoxPro (I hadn't learned of Python yet): >http://www.4dsolutions.net/ocn/oop.html > >A consequence of this design is I've been putting what philosophers used to >call "secondary attributes" (color, texture) in the writer, instead of in >the geometric objects. So if I want a red tetrahedron, say, I change to >"edge color" and "face color" properties in the writer, before passing a >tetrahedron object to it. > >E.g.: > > >>> povwriter = povray.Povray("outfile.pov") > >>> povwriter.cylcolor = 'Red' # secondary attribute > >>> obj = rbf.Tetra() # get a tetrahedron > >>> obj.draw(povwriter) > >But internally to obj.draw(povwriter), I'm invoking povwriter on the various >edges, vertices and faces of my obj: > > def draw(povwriter): > > for e in self.edges(): > povwriter.edge(e) > > ... > >and like that. > >The upside of this design is if I go obj.draw(vrmlwriter), then the same >object gets output in VRML syntax. > >In sum, when writing geometric objects to output media, there's a way to go >wherein anything specific to the medium is saved to the "writer" object, >while anything purely geometric, and common to all media, is saved in the >geometric object. The pure geometry is kept separate from the messy details >of I/O. > >I'm just bringing this up as a by the way. I'm not saying Zelle should have >done this in his text book. > >It'd be a fruitful discussion for CS2 level course -- when we're talking >about design patterns. > >Kirby > > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://mail.python.org/mailman/listinfo/edu-sig > > > > -- John M. Zelle, Ph.D. | Wartburg College Associate Prof. of CS | Dept. Math/CS/Physics john.zelle@wartburg.edu | Waverly, Iowa From urnerk at qwest.net Sat Dec 13 16:09:10 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 16:09:07 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <1071347292.6233.27.camel@robeson> Message-ID: > -----Original Message----- > From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On > Behalf Of Jeffrey Elkner > Sent: Saturday, December 13, 2003 12:28 PM > To: Edu-sig > Cc: Toby Donaldson > Subject: Re: [Edu-sig] re: Python Programming: An Introduction to > ComputerScience > > I completely agree with Toby on this. I've already managed to make > Python the CS1 language at Yorktown High, but it hasn't reached beyond > the hard core geek community. If we really want to popularize it to a > broader audience, it needs to fill the space taken by VB (at the high > school) or what Logo used to do (at the middle school). I guess I don't see how Logo makes a good case. It never went anywhere much beyond middle school. No Hubble stuff is done in Logo. I guess my question is, what's being used outside the "hard core geek community" that CS1 doesn't reach? VB? Or is it just that programming itself is still not a very widespread activity, using any language? In my view, we need more programming in the mathematics curriculum, which means recognizing that writing programs is likewise a way of writing mathematics. Or, more accurately, I'd say both kinds of writing are similar kinds of symbolic activity which deserve a prime spot in K-12 education. In the math curriculum, the real competition is not some other language, but calculators (I guess the TI programming language might count -- but my impression is more HS math teachers than students actually bother with the programming part). Numeracy, the equivalent of literacy with regard to prose and poetry, involves programming, mathematics, data visualizations, puzzle solving, logic, simulations, and other such. Numeracy and literacy connect at many levels. Kirby From jhrsn at pitt.edu Sat Dec 13 16:14:38 2003 From: jhrsn at pitt.edu (Jim Harrison) Date: Sat Dec 13 16:14:46 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: <0HPU00AWFNFS8S@mta9.srv.hcvlny.cv.net> Message-ID: on 12/13/03 2:57 PM, Arthur at ajsiegel@optonline.net wrote: > Learning is about demystification. I would probably not go as far as the > Waldorf folks and deny kids a great magic show. But that's precisely what a > good video game is. In some sense it is the opposite of a learning > experience. > > And the power relationship is perverse. The machine has the power, the > developer has the power. The kid is a shmuck. Exactly the wrong lesson. In the early stages of learning, kids are expected to take a great deal on faith about the way in which the world and society works, and we typically start the demystification process with relatively easy, middle of the road examples with a lot of unstated assumptions. That's true for any kind of instruction with any kind of instructional material. Explorations of the difficult boundary conditions and underlying assumptions are left until later, both in the sciences and the humanities. So a lot remains un-demystified for a long time in traditional instruction. For example, elementary physics typically includes macroscopic solid body problems, not quantum mechanics. There are a lot of assumptions inherent in those problems that ultimately need demystification, but initially we concentrate on the most obvious issues and work toward the others incrementally over a significant period of time. Instructors often illustrate physics problems with a small physical apparatus that represents what happens in the wider world, and kids watch. It would be substantially beneficial if the kids each had their own apparatus for experimentation, but that's usually not possible. In the absence of that, I don't see the harm (and do see benefit) in providing kids with a video simulator of the same problem that provides responses that appear to be identical to those occurring with the physical apparatus, and that allows experimentation. I don't believe the kids have any problem isolating the display from the non-demystified computer behind it and understanding that within the confines of the simulation the actions they see represent real-world responses. As an aside, the greater problem is going the other way--convincing them fully that what they see in some cases does not represent the real world. Similarly, I have no problem with starting kids learning computing/programming in a GUI (a form of simulator) to allow them to acquire a basic skill set rapidly under reinforcing conditions, then progressing from there to the command line ('cd is just like opening a folder'). I've seen this work fine. And I don't buy the machine:power/kid:schmuck scenario. When kids can manipulate a simulation to produce a result, they feel empowered. If the result doesn't honor the parameters of the simulation, the kids immediately label the developer/machine "lame" -- not themselves. Jim Harrison Univ. of Pittsburgh From lac at strakt.com Sat Dec 13 17:56:35 2003 From: lac at strakt.com (Laura Creighton) Date: Sat Dec 13 17:56:48 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: Message from "Kirby Urner" of "Sat, 13 Dec 2003 12:26:44 PST." References: Message-ID: <200312132256.hBDMuZ9D026648@ratthing-b246.strakt.com> In a message of Sat, 13 Dec 2003 12:26:44 PST, "Kirby Urner" writes: >Imagine an arcade game wherein you're running for president of some country. >You have money concerns, issue concerns, perception concerns. Donor X >promises you big bucks, but not if you appear to side with Y in your >statements. Different versions of a stump speech appear on screen. You >have to decide which one you'll go with (advisors weigh in with pros and >cons, perhaps audibly, using emotional language). Money sources appear or >dry up as a result of your choices. In the meantime, your competition is >doing likewise. Negative ads appear, about your accepting funds from >Donor X. > Kirby, this is an example of the problem. When you teach children using a simulation, you teach them, in addition to everything else, to think within the system that the simulators were using. So here we have, as unchallenged assumption -- it costs big bucks to become president. The fix for that would be to pass campaign finance reform -- forbid spending beyond a certain amount. Every version of those stump speeches come with the biases of the people who authored them. Their results have the outcomes that somebody programmed in as well. You have now taught the children how to use emotional language to criticise people and get them to change their positions based on how well you can manipulate them. Your funding base, presumably, is either the White, Prosperous Middle class, or Big Business -- since you are campaign contribution based. Does your simulation reflect the fact that poor people do not vote in the USA? Negative ads are now a fact of life .... it goes on, and on. I don't want another generation of Americans conditioned to view the system as something that can not be changed, but can only be worked. I don't know what the best way to teach children how to question authority, recongnise opportunities, and strive to improve the society they are in, but I suspect that this is a step in precisely the wrong direction. Laura From urnerk at qwest.net Sat Dec 13 18:18:42 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 18:18:39 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to ComputerScience In-Reply-To: <3FDB7DCC.4000107@wartburg.edu> Message-ID: I appreciate your comments John. One of many things I like about your book is how you jump into chaos right away. I think that's good on a number of levels, one being that people new to computers might think they're entering a brave new world of deterministic Laplacian engines and are perhaps just ten short chapters away from being able to simulate the stock market or global weather. However, as the chaos examples show, computer simulations are limited by mathematical principles. This is a useful lesson in humility. I also really like the approach you've taken with Tkinter. You're quite right that students are crazy about computer graphics and want this component. I've used POV-Ray for similar reasons. But whereas POV-Ray will spit out nice three dimensional polyhedra, the 2D canvas has the advantage of doubling for a GUI-style interface, with buttons and other widgets. In keeping it 2D, you're keeping it simple, and also connecting to the whole business of GUI design (e.g. your calculator example). And since Tk is there if IDLE is there, your approach also minimizes the need for extra software and installation. Kirby From lac at strakt.com Sat Dec 13 18:21:11 2003 From: lac at strakt.com (Laura Creighton) Date: Sat Dec 13 18:21:23 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: Message from "Kirby Urner" of "Sat, 13 Dec 2003 13:09:10 PST." References: Message-ID: <200312132321.hBDNLB6F026743@ratthing-b246.strakt.com> In a message of Sat, 13 Dec 2003 13:09:10 PST, "Kirby Urner" writes: > > >> -----Original Message----- >> From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On >> Behalf Of Jeffrey Elkner >> Sent: Saturday, December 13, 2003 12:28 PM >> To: Edu-sig >> Cc: Toby Donaldson >> Subject: Re: [Edu-sig] re: Python Programming: An Introduction to >> ComputerScience >> >> I completely agree with Toby on this. I've already managed to make >> Python the CS1 language at Yorktown High, but it hasn't reached beyond >> the hard core geek community. If we really want to popularize it to a >> broader audience, it needs to fill the space taken by VB (at the high >> school) or what Logo used to do (at the middle school). > >I guess I don't see how Logo makes a good case. It never went anywhere m >uch >beyond middle school. No Hubble stuff is done in Logo. > >I guess my question is, what's being used outside the "hard core geek >community" that CS1 doesn't reach? VB? Or is it just that programming >itself is still not a very widespread activity, using any language? I think the second. > >In my view, we need more programming in the mathematics curriculum, which >means recognizing that writing programs is likewise a way of writing >mathematics. Or, more accurately, I'd say both kinds of writing are similar >kinds of symbolic activity which deserve a prime spot in K-12 education. > >In the math curriculum, the real competition is not some other language, >but >calculators (I guess the TI programming language might count -- but my >impression is more HS math teachers than students actually bother with th >e >programming part). > >Numeracy, the equivalent of literacy with regard to prose and poetry, >involves programming, mathematics, data visualizations, puzzle solving, >logic, simulations, and other such. Numeracy and literacy connect at many >levels. > >Kirby I think that a problem we have is that programming is seen to be tied to math, and numeracy, (as is problem solving in general) rather that literacy, and the arts and humanities in general. I think that we could make a tremendous push for the number of people who are programming at all if we made courses on 'data mining for the humanities' and the like. How to write programs to take the information from some website and do something useful with it. The problem I see when teaching non-technical people how to program, is how little their expectation of 'what programming would be good for' has to do with the sort of problems that they have in their lives. But I have a small following of 'grandmothers who have taught themselves some python'. They needed a computer program to take a list of their friends and then make mime attatchments of the digital pictures they had made of their grandchildren, and mail them to everybody on their mailing list without having to mouse click and do things by hand, which takes hours. But not too many non-nerds know that programming is good for repetative tasks like this. Laura From lac at strakt.com Sat Dec 13 18:32:35 2003 From: lac at strakt.com (Laura Creighton) Date: Sat Dec 13 18:32:46 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: Message from Jim Harrison of "Sat, 13 Dec 2003 16:14:38 EST." References: Message-ID: <200312132332.hBDNWZSg026815@ratthing-b246.strakt.com> In a message of Sat, 13 Dec 2003 16:14:38 EST, Jim Harrison writes: > >And I don't buy the machine:power/kid:schmuck scenario. When kids can >manipulate a simulation to produce a result, they feel empowered. If the >result doesn't honor the parameters of the simulation, the kids immediately >label the developer/machine "lame" -- not themselves. > >Jim Harrison >Univ. of Pittsburgh This may sometimes be a problem. There is a difference between 'being empowered' and 'feeling empowered'. Some studies of children who 'play video games too much' indicate that they do this is because they like feeling empowered -- and it feels better to be the Pokemon champion than a mediocre student. Laura From urnerk at qwest.net Sat Dec 13 19:02:55 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 19:02:52 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: <200312132256.hBDMuZ9D026648@ratthing-b246.strakt.com> Message-ID: > Kirby, this is an example of the problem. When you teach children > using a simulation, you teach them, in addition to everything else, > to think within the system that the simulators were using. > Yes, I agree. So show them several simulations and discuss their differences. The thing is, I don't see any way to get away from bias, no matter how we do it. Kids have been brought up within confining belief systems since time immemorial. As adults, we pretty much take them for granted, or exchange one for another from time to time. > So here we have, as unchallenged assumption -- it costs big bucks to > become president. The fix for that would be to pass campaign finance > reform -- forbid spending beyond a certain amount. Every version > of those stump speeches come with the biases of the people who > authored them. Their results have the outcomes that somebody > programmed in as well. You have now taught the children how to > use emotional language to criticise people and get them to change > their positions based on how well you can manipulate them. Your > funding base, presumably, is either the White, Prosperous Middle > class, or Big Business -- since you are campaign contribution based. I'd like students to develop a critical eye w/r to educational games. Ideally, we play the games, then talk about what assumptions they embody. I don't necessarily want to cushion them either, by making the simulations too unreal. As a matter of fact, it does cost big bucks to become president in many countries, and emotional language is used manipulatively all the time. It's better to develop and awareness of this than to pretend it doesn't exist. My simulation is, in a way, a parody. > Does your simulation reflect the fact that poor people do not vote > in the USA? Negative ads are now a fact of life .... it goes on, > and on. Yes. I worked in a voter outreach organization once, trying to get more poor people to vote. We'd show up at the post office in Washington DC at 2 AM and send out hundreds of dollars worth of get-out-the-vote flyers by express mail. > I don't want another generation of Americans conditioned to view the > system as something that can not be changed, but can only be worked. I think a first step towards creative change is simulating something accurately. A simulation that focused on the influence of big money in political affairs might well be an agent for exactly the kind of change you'd support. > I don't know what the best way to teach children how to question > authority, recongnise opportunities, and strive to improve the society > they are in, but I suspect that this is a step in precisely the wrong > direction. > > Laura I think it might be in the right direction. Did you like 'Wag the Dog'? How about 'Senator Bullworth'? Kirby From urnerk at qwest.net Sat Dec 13 19:19:06 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 13 19:19:02 2003 Subject: [Edu-sig] re: Python Programming: An Introduction toComputerScience In-Reply-To: <200312132321.hBDNLB6F026743@ratthing-b246.strakt.com> Message-ID: Laura wrote: > I think that a problem we have is that programming is seen to be tied to > math, and numeracy, (as is problem solving in general) rather that > literacy, and the arts and humanities in general. Yes, I agree. Another way of saying it, however, is that numeracy skills have application in the humanities. I like Kappraff's 'Connections: The Geometric Bridge Between Art and Science' (2nd edition) as a source of good programming ideas.[1] Kirby [1] http://www.amazon.com/exec/obidos/tg/detail/-/9810245866/ -- too bad it's so spendy. From lac at strakt.com Sat Dec 13 19:41:31 2003 From: lac at strakt.com (Laura Creighton) Date: Sat Dec 13 19:41:40 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: Message from "Kirby Urner" of "Sat, 13 Dec 2003 16:02:55 PST." <200312140002.hBE02nNB030419@theraft.strakt.com> References: <200312140002.hBE02nNB030419@theraft.strakt.com> Message-ID: <200312140041.hBE0fVV7026994@ratthing-b246.strakt.com> I think that most educational material in the hands of an extremely well motivated and gifted teacher can work wonders. But I worry about the same materials in the hands of the average teacher, and the struggling teacher. Part of the problem here is that it would be very easy for a well meaning teacher to mistake children who are learning for children who are being amused. If your lessons are poor, you generally bore your students. If they are learning, they aren't bored. So I used boredom as a pretty good indicator of where my lessons were good, indifferent, and lousy. I'd worry if this connection was broken. How would I tell if my students were enjoying themselves and still not learning much? >I'd like students to develop a critical eye w/r to educational games. > >Ideally, we play the games, then talk about what assumptions they embody. > >I don't necessarily want to cushion them either, by making the simulations >too unreal. As a matter of fact, it does cost big bucks to become >president >in many countries, and emotional language is used manipulatively all the >time. It's better to develop and awareness of this than to pretend it >doesn't exist. My simulation is, in a way, a parody. Ah, that didn't come across to me the first time. I am all for the development of critical thinking, but I don't think that our choices are limited to pretending it doesn't exist, and running simulations. For instance, I had classes in that, for years, as well as classes in how the advertising media manipulates you. That was deemed crucial for 11 12 and 13 year olds. It was a very popular series of classes, well loved by pretty much every student, as opposed to the usual fair. I think that teaching such things by making the students help program the simulation -- writing the manipulative texts, and program how jerks with a lot of money can make your poor political leader spend all of his time speaking on issues he doesn't care about, while the ones that he does care about get little or no coverage. Teaching a course where the students got to hack the system, change the parameters, and change the outcomes would be a lot of fun. But I think having them able to modify the code, or at least the rules would be essential. Otherwise they will end up being too passive, passengers in their own lives. >I think a first step towards creative change is simulating something >accurately. A simulation that focused on the influence of big money in >political affairs might well be an agent for exactly the kind of change >you'd support. Maybe, but I write simulations, and so I know that the question isn't whether or not to make it accurate, but how much innacuracy are you willing to tolerate. I worry about teachers' ability to recognise innaccuracy when they see it. > >> I don't know what the best way to teach children how to question >> authority, recongnise opportunities, and strive to improve the society >> they are in, but I suspect that this is a step in precisely the wrong >> direction. >> >> Laura > >I think it might be in the right direction. Did you like 'Wag the Dog'? >How about 'Senator Bullworth'? Those are movies, correct? I've never seen them. 'Movies' is one of my great chasms of ignorance. > >Kirby Laura From jeff at elkner.net Sat Dec 13 19:52:06 2003 From: jeff at elkner.net (Jeffrey Elkner) Date: Sat Dec 13 19:52:11 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <200312132321.hBDNLB6F026743@ratthing-b246.strakt.com> References: <200312132321.hBDNLB6F026743@ratthing-b246.strakt.com> Message-ID: <1071363126.6070.24.camel@robeson> On Sat, 2003-12-13 at 18:21, Laura Creighton wrote: > In a message of Sat, 13 Dec 2003 13:09:10 PST, "Kirby Urner" writes: >> I guess my question is, what's being used outside the "hard core geek >> community" that CS1 doesn't reach? VB? Or is it just that programming >> itself is still not a very widespread activity, using any language? > > I think the second. VB is used by the Business department, which has more students than CS at our school (and in the world at large, too). It is true that most students still are not exposed to programming at all, but I see more students coming to me with some exposure to programming already than I did 10 years ago. >> In my view, we need more programming in the mathematics curriculum, which >> means recognizing that writing programs is likewise a way of writing >> mathematics. Or, more accurately, I'd say both kinds of writing are similar >> kinds of symbolic activity which deserve a prime spot in K-12 education. >> >> In the math curriculum, the real competition is not some other language, >> but calculators (I guess the TI programming language might count -- but my >> impression is more HS math teachers than students actually bother with the >> programming part). >> >> Numeracy, the equivalent of literacy with regard to prose and poetry, >> involves programming, mathematics, data visualizations, puzzle solving, >> logic, simulations, and other such. Numeracy and literacy connect at many >> levels. >> >> Kirby > > I think that a problem we have is that programming is seen to be tied to > math, and numeracy, (as is problem solving in general) rather that > literacy, and the arts and humanities in general. I think that we > could make a tremendous push for the number of people who are programming > at all if we made courses on 'data mining for the humanities' and the > like. How to write programs to take the information from some website > and do something useful with it. The problem I see when teaching > non-technical people how to program, is how little their expectation > of 'what programming would be good for' has to do with the sort of > problems that they have in their lives. But I have a small following > of 'grandmothers who have taught themselves some python'. They needed > a computer program to take a list of their friends and then make > mime attatchments of the digital pictures they had made of their > grandchildren, and mail them to everybody on their mailing list > without having to mouse click and do things by hand, which takes hours. > But not too many non-nerds know that programming is good for repetative > tasks like this. > > Laura I don't think there is a necessary contradiction between these two statements. I can say with confidence that most of the students (and teachers, for that matter) at my school fear/hate mathematics, so if we give students the idea that computer programming is inherently a mathematics like activity than we won't reach many students with it. But Kirby is talking about using programming in the mathematics classroom, where it could serve to make mathematics instruction more real and more comprehensible for the students who are there. I think that is a great idea. That is not at all to say that programming should in be limited to mathematics, or that it should even be primarily there. I like what Laura says about data mining on the web. The web can be an empowering and democratic tools for folks if they learn how to use it, and some basic programming skills would be a big help with that. I'm also finding that basic web scripting is an important tool for students wanting to make dynamic web sites (and lots of students want to make web sites). I've been using PHP for that mostly, but the students in my classes who are doing this kind of thing benefitted greatly from their exposure to Python. -- Jeffrey Elkner Open Book Project From lac at strakt.com Sat Dec 13 19:53:17 2003 From: lac at strakt.com (Laura Creighton) Date: Sat Dec 13 19:53:26 2003 Subject: [Edu-sig] re: Python Programming: An Introduction toComputerScience In-Reply-To: Message from "Kirby Urner" of "Sat, 13 Dec 2003 16:19:06 PST." <200312140019.hBE0J1NB030847@theraft.strakt.com> References: <200312140019.hBE0J1NB030847@theraft.strakt.com> Message-ID: <200312140053.hBE0rHKV027029@ratthing-b246.strakt.com> In a message of Sat, 13 Dec 2003 16:19:06 PST, "Kirby Urner" writes: >Laura wrote: >> I think that a problem we have is that programming is seen to be tied t >o >> math, and numeracy, (as is problem solving in general) rather that >> literacy, and the arts and humanities in general. > >Yes, I agree. Another way of saying it, however, is that numeracy skills >have application in the humanities. > >I like Kappraff's 'Connections: The Geometric Bridge Between Art and >Science' (2nd edition) as a source of good programming ideas.[1] > >Kirby > >[1] http://www.amazon.com/exec/obidos/tg/detail/-/9810245866/ -- too bad >it's so spendy. Oooh, thank you! I am getting this out of the library and reading it over Christmas. One good turn deserves another: http://www.cambiumbooks.com/books/design/0-9643999-1-1/ http://www.cambiumbooks.com/books/design/0-9643999-0-3/ David Pye -- the Nature and Aesthetic of Design + the Nature and Art of Workmanship David Pye was a professor of Architecture and a woodworker. But these books are about the creative process, and the creating of anything. Laura From jason.cunliffe at verizon.net Sun Dec 14 01:25:04 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sun Dec 14 01:25:17 2003 Subject: [Edu-sig] PowerPoint Makes You Dumb Message-ID: <000901c3c20b$04132c20$6501a8c0@vaio> Skipped content of type multipart/alternative-------------- next part -------------- A non-text attachment was scrubbed... Name: PowerPoint Makes You Dumb.url Type: application/octet-stream Size: 320 bytes Desc: not available Url : http://mail.python.org/pipermail/edu-sig/attachments/20031214/ae4b08f5/PowerPointMakesYouDumb.obj From tjd at sfu.ca Sun Dec 14 04:19:48 2003 From: tjd at sfu.ca (Toby Donaldson) Date: Sun Dec 14 04:20:10 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer In-Reply-To: Message-ID: <004a01c3c223$7421ec50$a47074ce@bigduck> > I wasn't doing that though. I realize there are lots of worthwhile > languages out there and it pays to move on from Python. But it also pays > to come back to it later, and if all the Python you ever get is in CS1, > then you might not realize some of its power. > > This is equally true for some other languages. Which begs the question: why Python instead of these other languages? Given the choice between teaching CS students more Python or teaching a new language (such as Prolog, Scheme, ML, or Haskell), I would decide to teach a new language. Anyways, I think that many students who continue to program will simply continue to use Python when it makes sense. That's been my experience so far. > How is this different from discussing "neat features"? That you can use > such simple syntax to do file I/O, or don't need a lot of type > declarations, > are *features* which lead to higher productivity. I guess that's true. When I think about it, for me the question is "How do I convince my department to change CS1 from Java to Python?", and listing language features isn't the answer. Neat language features are a dime a dozen in CS. By the way, I am in "Zelle's camp": http://tonka.iat.sfu.ca/toby/pythoned/pp4e. I don't think Perl, Ruby, or Scheme (or VB, PHP, JavaScript, Tcl/Tk, ActionScript, etc.) have any hope of becoming popular CS1 languages the way Python does. Toby -- Dr. Toby Donaldson Assistant Professor School of Interactive Arts and Technology Simon Fraser University From tjd at sfu.ca Sun Dec 14 04:32:26 2003 From: tjd at sfu.ca (Toby Donaldson) Date: Sun Dec 14 04:32:37 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to Computer Science In-Reply-To: Message-ID: <004b01c3c225$32a79d90$a47074ce@bigduck> > In my view, we need more programming in the mathematics curriculum, which > means recognizing that writing programs is likewise a way of writing > mathematics. Or, more accurately, I'd say both kinds of writing are > similar kinds of symbolic activity which deserve a prime spot in K-12 > education. I think teaching math and programming is a very interesting idea ... proofs are just a kind of code walkthrough. Toby -- Dr. Toby Donaldson Assistant Professor School of Interactive Arts and Technology Simon Fraser University From tjd at sfu.ca Sun Dec 14 05:05:06 2003 From: tjd at sfu.ca (Toby Donaldson) Date: Sun Dec 14 05:05:20 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer Science In-Reply-To: Message-ID: <004c01c3c229$c2f63970$a47074ce@bigduck> > I think that we could make a tremendous push for the number of people who > are programming at all if we made courses on 'data mining for the > humanities' and the like. How to write programs to take the information > from some website and do something useful with it. One approach for getting "non-nerds" to do programming is to tie a scripting language to an application, like Flash or Director. The application does all the tricky technical stuff, while the scripting lets the user concentrate on the task logic. I guess you could do the same thing with Python and libraries, but nice GUI environments are friendlier. Toby -- Dr. Toby Donaldson Assistant Professor School of Interactive Arts and Technology Simon Fraser University > -----Original Message----- > From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On > Behalf Of edu-sig-request@python.org > Sent: December 13, 2003 3:33 PM > To: edu-sig@python.org > Subject: Edu-sig Digest, Vol 5, Issue 14 > > Send Edu-sig mailing list submissions to > edu-sig@python.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.python.org/mailman/listinfo/edu-sig > or, via email, send a message with subject or body 'help' to > edu-sig-request@python.org > > You can reach the person managing the list at > edu-sig-owner@python.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Edu-sig digest..." > > > Today's Topics: > > 1. Re: Re: Python Programming: An Introduction to > ComputerScience (John Zelle) > 2. RE: re: Python Programming: An Introduction to > ComputerScience (Kirby Urner) > 3. Re: re: Education Arcade (Jim Harrison) > 4. Re: re: Education Arcade (Laura Creighton) > 5. RE: Re: Python Programming: An Introduction to > ComputerScience (Kirby Urner) > 6. Re: re: Python Programming: An Introduction to > ComputerScience (Laura Creighton) > 7. Re: re: Education Arcade (Laura Creighton) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sat, 13 Dec 2003 14:59:56 -0600 > From: John Zelle > Subject: Re: [Edu-sig] Re: Python Programming: An Introduction to > ComputerScience > To: Kirby Urner > Cc: edu-sig@python.org > Message-ID: <3FDB7DCC.4000107@wartburg.edu> > Content-Type: text/plain; charset=us-ascii; format=flowed > > Hello all, > > I've been reading the thread about my book with great interest. All > feedback is helpful, even when I don't necessarily agree. Let me just > say that I thought Kirby's initial posting was right on target. My book > is intended as a CS1 book, not a book on Python. Because of that, I have > been a little fearful about how the book might be received in the Python > community. Kirby clearly understands the distinction being drawn, and I > appreciate the way his remarks are framed. > > I am much less concerned than others about how the more advanced and/or > indiosyncratic features of Python are/might be taught. The truth is that > the tradtional core computer science sequence CS1 (Intro to > programming), C2 (Data Structures and Design), CS3 (Advanced Data > structures and Algorithms) have not been "about" language for a long > time. Even a student that goes through this sequence using a single > language, whether that be C++, Java, or Python will not acquire expert > knowledge of the language. That's simply not what these courses are > about. The point is that once a student has completed CS1/CS2, they can > pick up a good technical book and have the foundation to learn the > complete feature set of any language. > > Students continue programming throughout their CS programs and in future > careers. They are constantly changing tools. With some serious early > exposure to a variety of tools (say dynamic and static languages) they > are in a better position to pick tools that are best suited for the job > at hand. A move to Java or C++ in CS2 should not be seen as "abandoning" > Python. In fact, seeing Python side-by-side with Java ususally leads my > students to want to do more Python projects (and hence learn more about > Python) in their upper-level classes. Without seeing a statically typed > language, it's hard to appreciate the elegance and flexibility of > Python. For example, when we talk about polymorphism in CS1, the > students say "of course, what's the big deal." Only when they see the > complexity of doing similar things in C++ or Java do they really > appreciate the concept. > > Whatever approach one takes to the first classes, it is important to > realize that our students do not begin programming with the same > background that we have. Most of my students are not particularly > mathematically or scientifically oriented (at least at the start). And > they are concrete, not abstract thinkers. It's important that we try to > meet them where they are so that they can learn and grow with minimal > frustration. Packing more into CS1 is probably not the way to do that. > > Along similar lines, Kirby's comment on abstracting geometric objects > from their realizations (see below) are absolutely right on track as a > matter of design principle. I do address this sort of decoupling toward > the end of the book (model-view architectures). However, the goal of the > graphics package is somewhat different. The purpose is to introduce > objects in a very concrete way. It is a graphics library, not a geometry > library. A Point doesn't really represent an abstract geometric point, > but a postion _in_a_window_. Similarly, the Rectangle is not a general > mathemetical abstraction, but an actual box on the screen (maybe I > should have called it "box"). Now an object on the screen has inherent > properties such as color and outline width as instrinsic properties; > whereas the mathematical abstraction does not. This is most evident in > the Line class. A Line on the screen is not really a line in the > mathematical sense---at best it would be a line segment. If you were > designing an application around the mathematical concepts you could use > the primitives of the graphics library to visually realize some of those > (so the graphics package would be analogous to the backend, not the > front). > > Of course, I do use the graphics package to get my students to do things > like calculating points of intersection and computing coordinate > transformations. The beauty of it is that they think they are just > drawing pretty pictures :-). > > My thanks to all of you who have given me both encouragement and > criticism on this project. > > --John > > Kirby Urner wrote: > > >Earlier I wrote: > > > > > >>When considering option (e), my attention goes to the Point class. If > all > >>a Point does is hold x and y coords, then a class implementation seems > >>like overkill in Python. You could get by with built-in tuples. > >> > >> > > > >Now that I have the student CD, I see that the Point class is not just a > >holder for (x,y) values. It has some knowledge of Tk, is in fact a > subclass > >of GraphicsObject, which is very Tk aware. > > > >This brings up a design pattern thread for me. My tendency over the > years > >has been to write the geometric objects, such as vectors and polyhedra, > in > >such a way as to deliberately keep them ignorant of any output apparatus. > > > >Then I define a "writer" that's customized to say Tk, or VRML, or POV- > Ray, > >and pass the geometric objects to the writer. The writer squeezes pure > >geometric information from the things, and translates them into output > >appropriate to its medium. > > > >You can see evidence of this strategy going all the way back to 1998, > when I > >was still doing this stuff in FoxPro (I hadn't learned of Python yet): > >http://www.4dsolutions.net/ocn/oop.html > > > >A consequence of this design is I've been putting what philosophers used > to > >call "secondary attributes" (color, texture) in the writer, instead of in > >the geometric objects. So if I want a red tetrahedron, say, I change to > >"edge color" and "face color" properties in the writer, before passing a > >tetrahedron object to it. > > > >E.g.: > > > > >>> povwriter = povray.Povray("outfile.pov") > > >>> povwriter.cylcolor = 'Red' # secondary attribute > > >>> obj = rbf.Tetra() # get a tetrahedron > > >>> obj.draw(povwriter) > > > >But internally to obj.draw(povwriter), I'm invoking povwriter on the > various > >edges, vertices and faces of my obj: > > > > def draw(povwriter): > > > > for e in self.edges(): > > povwriter.edge(e) > > > > ... > > > >and like that. > > > >The upside of this design is if I go obj.draw(vrmlwriter), then the same > >object gets output in VRML syntax. > > > >In sum, when writing geometric objects to output media, there's a way to > go > >wherein anything specific to the medium is saved to the "writer" object, > >while anything purely geometric, and common to all media, is saved in the > >geometric object. The pure geometry is kept separate from the messy > details > >of I/O. > > > >I'm just bringing this up as a by the way. I'm not saying Zelle should > have > >done this in his text book. > > > >It'd be a fruitful discussion for CS2 level course -- when we're talking > >about design patterns. > > > >Kirby > > > > > > > >_______________________________________________ > >Edu-sig mailing list > >Edu-sig@python.org > >http://mail.python.org/mailman/listinfo/edu-sig > > > > > > > > > > -- > John M. Zelle, Ph.D. | Wartburg College > Associate Prof. of CS | Dept. Math/CS/Physics > john.zelle@wartburg.edu | Waverly, Iowa > > > > > > > ------------------------------ > > Message: 2 > Date: Sat, 13 Dec 2003 13:09:10 -0800 > From: "Kirby Urner" > Subject: RE: [Edu-sig] re: Python Programming: An Introduction to > ComputerScience > To: "'Edu-sig'" > Message-ID: > Content-Type: text/plain; charset="us-ascii" > > > > > -----Original Message----- > > From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On > > Behalf Of Jeffrey Elkner > > Sent: Saturday, December 13, 2003 12:28 PM > > To: Edu-sig > > Cc: Toby Donaldson > > Subject: Re: [Edu-sig] re: Python Programming: An Introduction to > > ComputerScience > > > > I completely agree with Toby on this. I've already managed to make > > Python the CS1 language at Yorktown High, but it hasn't reached beyond > > the hard core geek community. If we really want to popularize it to a > > broader audience, it needs to fill the space taken by VB (at the high > > school) or what Logo used to do (at the middle school). > > I guess I don't see how Logo makes a good case. It never went anywhere > much > beyond middle school. No Hubble stuff is done in Logo. > > I guess my question is, what's being used outside the "hard core geek > community" that CS1 doesn't reach? VB? Or is it just that programming > itself is still not a very widespread activity, using any language? > > In my view, we need more programming in the mathematics curriculum, which > means recognizing that writing programs is likewise a way of writing > mathematics. Or, more accurately, I'd say both kinds of writing are > similar > kinds of symbolic activity which deserve a prime spot in K-12 education. > > In the math curriculum, the real competition is not some other language, > but > calculators (I guess the TI programming language might count -- but my > impression is more HS math teachers than students actually bother with the > programming part). > > Numeracy, the equivalent of literacy with regard to prose and poetry, > involves programming, mathematics, data visualizations, puzzle solving, > logic, simulations, and other such. Numeracy and literacy connect at many > levels. > > Kirby > > > > > > ------------------------------ > > Message: 3 > Date: Sat, 13 Dec 2003 16:14:38 -0500 > From: Jim Harrison > Subject: Re: [Edu-sig] re: Education Arcade > To: edu-sig@python.org > Message-ID: > Content-Type: text/plain; charset="US-ASCII" > > on 12/13/03 2:57 PM, Arthur at ajsiegel@optonline.net wrote: > > > Learning is about demystification. I would probably not go as far as > the > > Waldorf folks and deny kids a great magic show. But that's precisely > what a > > good video game is. In some sense it is the opposite of a learning > > experience. > > > > And the power relationship is perverse. The machine has the power, the > > developer has the power. The kid is a shmuck. Exactly the wrong lesson. > > In the early stages of learning, kids are expected to take a great deal on > faith about the way in which the world and society works, and we typically > start the demystification process with relatively easy, middle of the road > examples with a lot of unstated assumptions. That's true for any kind of > instruction with any kind of instructional material. Explorations of the > difficult boundary conditions and underlying assumptions are left until > later, both in the sciences and the humanities. So a lot remains > un-demystified for a long time in traditional instruction. > > For example, elementary physics typically includes macroscopic solid body > problems, not quantum mechanics. There are a lot of assumptions inherent > in > those problems that ultimately need demystification, but initially we > concentrate on the most obvious issues and work toward the others > incrementally over a significant period of time. > > Instructors often illustrate physics problems with a small physical > apparatus that represents what happens in the wider world, and kids watch. > It would be substantially beneficial if the kids each had their own > apparatus for experimentation, but that's usually not possible. > > In the absence of that, I don't see the harm (and do see benefit) in > providing kids with a video simulator of the same problem that provides > responses that appear to be identical to those occurring with the physical > apparatus, and that allows experimentation. I don't believe the kids have > any problem isolating the display from the non-demystified computer behind > it and understanding that within the confines of the simulation the > actions > they see represent real-world responses. As an aside, the greater problem > is > going the other way--convincing them fully that what they see in some > cases > does not represent the real world. > > Similarly, I have no problem with starting kids learning > computing/programming in a GUI (a form of simulator) to allow them to > acquire a basic skill set rapidly under reinforcing conditions, then > progressing from there to the command line ('cd is just like opening a > folder'). I've seen this work fine. > > And I don't buy the machine:power/kid:schmuck scenario. When kids can > manipulate a simulation to produce a result, they feel empowered. If the > result doesn't honor the parameters of the simulation, the kids > immediately > label the developer/machine "lame" -- not themselves. > > Jim Harrison > Univ. of Pittsburgh > > > > ------------------------------ > > Message: 4 > Date: Sat, 13 Dec 2003 23:56:35 +0100 > From: Laura Creighton > Subject: Re: [Edu-sig] re: Education Arcade > To: "Kirby Urner" > Cc: edu-sig@python.org, 'Arthur' > Message-ID: <200312132256.hBDMuZ9D026648@ratthing-b246.strakt.com> > Content-Type: text/plain; charset=iso-8859-1 > > In a message of Sat, 13 Dec 2003 12:26:44 PST, "Kirby Urner" writes: > >Imagine an arcade game wherein you're running for president of some > country. > >You have money concerns, issue concerns, perception concerns. Donor X > >promises you big bucks, but not if you appear to side with Y in your > >statements. Different versions of a stump speech appear on screen. You > >have to decide which one you'll go with (advisors weigh in with pros and > >cons, perhaps audibly, using emotional language). Money sources appear > or > >dry up as a result of your choices. In the meantime, your competition is > >doing likewise. Negative ads appear, about your accepting funds from > >Donor X. > > > > Kirby, this is an example of the problem. When you teach children > using a simulation, you teach them, in addition to everything else, > to think within the system that the simulators were using. > > So here we have, as unchallenged assumption -- it costs big bucks to > become president. The fix for that would be to pass campaign finance > reform -- forbid spending beyond a certain amount. Every version > of those stump speeches come with the biases of the people who > authored them. Their results have the outcomes that somebody > programmed in as well. You have now taught the children how to > use emotional language to criticise people and get them to change > their positions based on how well you can manipulate them. Your > funding base, presumably, is either the White, Prosperous Middle > class, or Big Business -- since you are campaign contribution based. > Does your simulation reflect the fact that poor people do not vote > in the USA? Negative ads are now a fact of life .... it goes on, > and on. > > I don't want another generation of Americans conditioned to view the > system as something that can not be changed, but can only be worked. > I don't know what the best way to teach children how to question > authority, recongnise opportunities, and strive to improve the society > they are in, but I suspect that this is a step in precisely the wrong > direction. > > Laura > > > > > ------------------------------ > > Message: 5 > Date: Sat, 13 Dec 2003 15:18:42 -0800 > From: "Kirby Urner" > Subject: RE: [Edu-sig] Re: Python Programming: An Introduction to > ComputerScience > To: "'John Zelle'" > Cc: edu-sig@python.org > Message-ID: > Content-Type: text/plain; charset="us-ascii" > > > I appreciate your comments John. > > One of many things I like about your book is how you jump into chaos right > away. > > I think that's good on a number of levels, one being that people new to > computers might think they're entering a brave new world of deterministic > Laplacian engines and are perhaps just ten short chapters away from being > able to simulate the stock market or global weather. > > However, as the chaos examples show, computer simulations are limited by > mathematical principles. This is a useful lesson in humility. > > I also really like the approach you've taken with Tkinter. > > You're quite right that students are crazy about computer graphics and > want > this component. > > I've used POV-Ray for similar reasons. > > But whereas POV-Ray will spit out nice three dimensional polyhedra, the 2D > canvas has the advantage of doubling for a GUI-style interface, with > buttons > and other widgets. > > In keeping it 2D, you're keeping it simple, and also connecting to the > whole > business of GUI design (e.g. your calculator example). > > And since Tk is there if IDLE is there, your approach also minimizes the > need for extra software and installation. > > Kirby > > > > > > ------------------------------ > > Message: 6 > Date: Sun, 14 Dec 2003 00:21:11 +0100 > From: Laura Creighton > Subject: Re: [Edu-sig] re: Python Programming: An Introduction to > ComputerScience > To: "Kirby Urner" > Cc: 'Edu-sig' > Message-ID: <200312132321.hBDNLB6F026743@ratthing-b246.strakt.com> > Content-Type: text/plain; charset=iso-8859-1 > > In a message of Sat, 13 Dec 2003 13:09:10 PST, "Kirby Urner" writes: > > > > > >> -----Original Message----- > >> From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On > >> Behalf Of Jeffrey Elkner > >> Sent: Saturday, December 13, 2003 12:28 PM > >> To: Edu-sig > >> Cc: Toby Donaldson > >> Subject: Re: [Edu-sig] re: Python Programming: An Introduction to > >> ComputerScience > >> > >> I completely agree with Toby on this. I've already managed to make > >> Python the CS1 language at Yorktown High, but it hasn't reached beyond > >> the hard core geek community. If we really want to popularize it to a > >> broader audience, it needs to fill the space taken by VB (at the high > >> school) or what Logo used to do (at the middle school). > > > >I guess I don't see how Logo makes a good case. It never went anywhere m > >uch > >beyond middle school. No Hubble stuff is done in Logo. > > > >I guess my question is, what's being used outside the "hard core geek > >community" that CS1 doesn't reach? VB? Or is it just that programming > >itself is still not a very widespread activity, using any language? > > I think the second. > > > > >In my view, we need more programming in the mathematics curriculum, which > >means recognizing that writing programs is likewise a way of writing > >mathematics. Or, more accurately, I'd say both kinds of writing are > similar > >kinds of symbolic activity which deserve a prime spot in K-12 education. > > > >In the math curriculum, the real competition is not some other language, > >but > >calculators (I guess the TI programming language might count -- but my > >impression is more HS math teachers than students actually bother with th > >e > >programming part). > > > >Numeracy, the equivalent of literacy with regard to prose and poetry, > >involves programming, mathematics, data visualizations, puzzle solving, > >logic, simulations, and other such. Numeracy and literacy connect at > many > >levels. > > > >Kirby > > I think that a problem we have is that programming is seen to be tied to > math, and numeracy, (as is problem solving in general) rather that > literacy, and the arts and humanities in general. I think that we > could make a tremendous push for the number of people who are programming > at all if we made courses on 'data mining for the humanities' and the > like. How to write programs to take the information from some website > and do something useful with it. The problem I see when teaching > non-technical people how to program, is how little their expectation > of 'what programming would be good for' has to do with the sort of > problems that they have in their lives. But I have a small following > of 'grandmothers who have taught themselves some python'. They needed > a computer program to take a list of their friends and then make > mime attatchments of the digital pictures they had made of their > grandchildren, and mail them to everybody on their mailing list > without having to mouse click and do things by hand, which takes hours. > But not too many non-nerds know that programming is good for repetative > tasks like this. > > Laura > > > > ------------------------------ > > Message: 7 > Date: Sun, 14 Dec 2003 00:32:35 +0100 > From: Laura Creighton > Subject: Re: [Edu-sig] re: Education Arcade > To: Jim Harrison > Cc: edu-sig@python.org > Message-ID: <200312132332.hBDNWZSg026815@ratthing-b246.strakt.com> > Content-Type: text/plain; charset=iso-8859-1 > > In a message of Sat, 13 Dec 2003 16:14:38 EST, Jim Harrison writes: > > > >And I don't buy the machine:power/kid:schmuck scenario. When kids can > >manipulate a simulation to produce a result, they feel empowered. If the > >result doesn't honor the parameters of the simulation, the kids > immediately > >label the developer/machine "lame" -- not themselves. > > > >Jim Harrison > >Univ. of Pittsburgh > > This may sometimes be a problem. There is a difference between 'being > empowered' and 'feeling empowered'. Some studies of children who > 'play video games too much' indicate that they do this is because they > like feeling empowered -- and it feels better to be the Pokemon > champion than a mediocre student. > > Laura > > > > > > > ------------------------------ > > _______________________________________________ > Edu-sig mailing list > Edu-sig@python.org > http://mail.python.org/mailman/listinfo/edu-sig > > > End of Edu-sig Digest, Vol 5, Issue 14 > ************************************** From brian at macnevin.net Sun Dec 14 05:12:39 2003 From: brian at macnevin.net (BJ MacNevin) Date: Sun Dec 14 05:19:50 2003 Subject: [Edu-sig] LIVEWIRES Package problems... References: <200312140019.hBE0J1NB030847@theraft.strakt.com> <200312140053.hBE0rHKV027029@ratthing-b246.strakt.com> Message-ID: <002901c3c22c$1a824380$98e7e50c@laptop> If anyone is familiar with the Livewires package... I can't get the graphics windows to behave. When I run the test() then everything seems to be working fine. But when I try to use it this happens: begin_graphics() #The graphics window opens as it does for test() draw(200,200) #nothing happens. No graphics. And then, when the mouse is over the window there is a WAIT cursor... and if I click, it all stops working. DOH! Could there be a mouse driver problem? I have no clue at all. Thanks fro any suggestions! BJ MacNevin From ajsiegel at optonline.net Sun Dec 14 05:21:58 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 14 05:22:01 2003 Subject: [Edu-sig] re: Education Arcade Message-ID: <0HPV00J6QRGHUX@mta2.srv.hcvlny.cv.net> Jim writes - >And I don't buy the machine:power/kid:schmuck scenario. When kids can >manipulate a simulation to produce a result, they feel empowered. If the >result doesn't honor the parameters of the simulation, the kids immediately >label the developer/machine "lame" -- not themselves. The medium is the message. And if "busting out" is not even a possibility, remind me: why am I learning to program? A great learning environment game idea = the goal is to bust out of the learning environment. We need to make kids *want* to bust out, not stay in. I've never seen that made part of the game. Nor expect I will. First message of all these environments: there is no way out. Art From ajsiegel at optonline.net Sun Dec 14 05:43:20 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 14 05:43:23 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: <0HPU000A7OS6K3@mta16.srv.hcvlny.cv.net> Message-ID: <0HPV00JZDSG2KU@mta2.srv.hcvlny.cv.net> Kirby - >Where I think you might be mixing a couple of ideas is when you talk about >how video games don't provide much insight into how they actually work (are >mystifying in this regard). And, again, the most important and least escapable point: the medium *is* the message. Art From ajsiegel at optonline.net Sun Dec 14 06:17:02 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 14 06:17:06 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: <200312132256.hBDMuZ9D026648@ratthing-b246.strakt.com> Message-ID: <0HPV00EJAU0QEX@mta6.srv.hcvlny.cv.net> Laura writes - >Kirby, this is an example of the problem. When you teach children >using a simulation, you teach them, in addition to everything else, >to think within the system that the simulators were using. This I see as a key point. Outside the simulation, what makes 2+2=4 interesting is that 2+2 might = anything, but *does* equal 4. Inside the environment, the only options are the provided options. We learn well enough that 2+2=4, within the environment. Without having learned, convincingly, that that is also true, outside the environment. For good reason. Because one thing we do understand - hopefully - without being taught, is the difference between virtual and real. And in the virtual world, anything might be made to be true, and from moment to moment. There is little to be learned, because the thing missing is the thing most important and the hardest to communicate - a map from the virtual to the real. Adults can use simulation effectively because they have the tools to make that mapping is some reasonable way. Kids don't. Art From ajsiegel at optonline.net Sun Dec 14 06:24:41 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 14 06:24:44 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: <0HPU000A7OS6K3@mta16.srv.hcvlny.cv.net> Message-ID: <0HPV000OKUCZY0@mta2.srv.hcvlny.cv.net> Kirby - >Well, this is the kind of thing I'm trying to get a feel for -- scientific >evidence is not of interest at the moment. I just want to get where you're >coming from. >I understand you don't like black boxes which simply dazzle without >providing insights. You don't like bread and circuses, designed to keep >the masses dumbed down, the better to be taken advantage of by those >puppet-masters with the cynical know-how. >You see bells and whistles as so much science fiction scenery designed to >create an illusion, to fool, to hoodwink on some level, and so arcade >games,for you, are the antithesis of real education. >How 'm I doing? Fair, at best. Somewhat of a trivialization. I hope my other posts this morning communicate my feelings better. Art From john.zelle at wartburg.edu Sun Dec 14 11:22:21 2003 From: john.zelle at wartburg.edu (John Zelle) Date: Sun Dec 14 11:26:02 2003 Subject: [Edu-sig] LIVEWIRES Package problems... References: <200312140019.hBE0J1NB030847@theraft.strakt.com> <200312140053.hBE0rHKV027029@ratthing-b246.strakt.com> <002901c3c22c$1a824380$98e7e50c@laptop> Message-ID: <3FDC8E3D.90008@wartburg.edu> I have never used the LIVEWIRES material, so I don't have specific knowledge. I was wondering if you are running this out of IDLE. The new version of IDLE (by default) does not merge the event-loops of Tk subprocesses. This leaves some graphics packages apparently unresponsive when being tested interactively under IDLE. If this is your situation, try running IDLE with the -n switch, or try using a plain vanilla Python shell (not IDLE) and see if that solves the problem. If you are not using IDLE, then just ignore this post, as it clearly isn't your problem :-) --John BJ MacNevin wrote: >If anyone is familiar with the Livewires package... > >I can't get the graphics windows to behave. When I run the test() then >everything seems to be working fine. But when I try to use it this happens: > >begin_graphics() #The graphics window opens as it does for test() > >draw(200,200) #nothing happens. No graphics. > >And then, when the mouse is over the window there is a WAIT cursor... and if >I click, it all stops working. DOH! Could there be a mouse driver problem? > >I have no clue at all. > >Thanks fro any suggestions! > >BJ MacNevin > > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://mail.python.org/mailman/listinfo/edu-sig > > > > -- John M. Zelle, Ph.D. | Wartburg College Associate Prof. of CS | Dept. Math/CS/Physics john.zelle@wartburg.edu | Waverly, Iowa From brian at macnevin.net Sun Dec 14 11:30:17 2003 From: brian at macnevin.net (BJ MacNevin) Date: Sun Dec 14 11:28:16 2003 Subject: [Edu-sig] LIVEWIRES Package problems... References: <200312140019.hBE0J1NB030847@theraft.strakt.com> <200312140053.hBE0rHKV027029@ratthing-b246.strakt.com> <002901c3c22c$1a824380$98e7e50c@laptop> <3FDC8E3D.90008@wartburg.edu> Message-ID: <002401c3c25f$9275a110$98e7e50c@laptop> By george that did it! Thanks a lot, John! I really appreciate the help! BJ ----- Original Message ----- From: "John Zelle" To: "BJ MacNevin" Cc: "'Edu-sig'" Sent: Sunday, December 14, 2003 8:22 AM Subject: Re: [Edu-sig] LIVEWIRES Package problems... > I have never used the LIVEWIRES material, so I don't have specific > knowledge. I was wondering if you are running this out of IDLE. The new > version of IDLE (by default) does not merge the event-loops of Tk > subprocesses. This leaves some graphics packages apparently unresponsive > when being tested interactively under IDLE. If this is your situation, > try running IDLE with the -n switch, or try using a plain vanilla Python > shell (not IDLE) and see if that solves the problem. > > If you are not using IDLE, then just ignore this post, as it clearly > isn't your problem :-) > > --John > > BJ MacNevin wrote: > > >If anyone is familiar with the Livewires package... > > > >I can't get the graphics windows to behave. When I run the test() then > >everything seems to be working fine. But when I try to use it this happens: > > > >begin_graphics() #The graphics window opens as it does for test() > > > >draw(200,200) #nothing happens. No graphics. > > > >And then, when the mouse is over the window there is a WAIT cursor... and if > >I click, it all stops working. DOH! Could there be a mouse driver problem? > > > >I have no clue at all. > > > >Thanks fro any suggestions! > > > >BJ MacNevin > > > > > > > >_______________________________________________ > >Edu-sig mailing list > >Edu-sig@python.org > >http://mail.python.org/mailman/listinfo/edu-sig > > > > > > > > > > -- > John M. Zelle, Ph.D. | Wartburg College > Associate Prof. of CS | Dept. Math/CS/Physics > john.zelle@wartburg.edu | Waverly, Iowa > > > > From urnerk at qwest.net Sun Dec 14 11:59:31 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sun Dec 14 11:59:26 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer In-Reply-To: <004a01c3c223$7421ec50$a47074ce@bigduck> Message-ID: > > This is equally true for some other languages. > > Which begs the question: why Python instead of these other languages? > Given the choice between teaching CS students more Python or teaching a > new language (such as Prolog, Scheme, ML, or Haskell), I would decide to > teach a new language. > Yes, and I said I understood why CS2 was about Java and not more Python. I said the reasoning for this was solid. My frustration/worry was that if Python always gets beginner treatment, that people might never get to appreciate some of its deeper structure. For example, I think the reason it's often compared to LISP is you have all these hooks into the syntax itself, such that you can program at the meta level. Changing the meaning of the arithmetic operators is just the beginning. One thing I like to do when introducing Python is: >>> dir(1) And then talk about what the output is telling us (basically, this is about type/class unification, which recent versions of Python have worked hard to achieve). But I didn't argue that the solution was to abandon other languages and just go with Python. On the contrary, my position, consistently, has been that any real computer science curriculum needs to include exposure to multiple languages. > Anyways, I think that many students who continue to program will simply > continue to use Python when it makes sense. That's been my experience so > far. I've been somewhat reassured by a number of posts to this effect. Let's hope that it's true. > By the way, I am in "Zelle's camp": > http://tonka.iat.sfu.ca/toby/pythoned/pp4e. I don't think Perl, Ruby, or > Scheme (or VB, PHP, JavaScript, Tcl/Tk, ActionScript, etc.) have any > hope of becoming popular CS1 languages the way Python does. > > Toby Me too (in Zelle's camp). Kirby From guido at python.org Sun Dec 14 12:22:49 2003 From: guido at python.org (Guido van Rossum) Date: Sun Dec 14 12:22:54 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer In-Reply-To: Your message of "Sun, 14 Dec 2003 08:59:31 PST." References: Message-ID: <200312141722.hBEHMnV15533@c-24-5-183-134.client.comcast.net> > For example, I think the reason it's often compared to LISP is you > have all these hooks into the syntax itself, such that you can > program at the meta level. Changing the meaning of the arithmetic > operators is just the beginning. Um, this is not a "hook into the syntax", and operator overloading isn't very Lispish; I think the concept actually came from Algol-68 and was popularized by C++. Lisp's hooks into the syntax are a lot more direct: its syntax actually translates to a data structure that is directly manipulable from inside the program, which is not how Python works. The available "representations" of program code are either trivial (strings), immutable (code objects) or extremely hard to handle (parse trees). And there is no way to change the *syntax*. About the main topic of this weekend's thread, I am happy to hear Python's role in the CS curriculum clarified (thanks to John Zelle's book as a conversation-starter), and I am seeing some posts from Arthur that I can actually understand. --Guido van Rossum (home page: http://www.python.org/~guido/) From urnerk at qwest.net Sun Dec 14 13:16:52 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sun Dec 14 13:16:46 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer In-Reply-To: <200312141722.hBEHMnV15533@c-24-5-183-134.client.comcast.net> Message-ID: Kirby: > > For example, I think the reason it's often compared to LISP is you > > have all these hooks into the syntax itself, such that you can > > program at the meta level. Changing the meaning of the arithmetic > > operators is just the beginning. Guido: > Um, this is not a "hook into the syntax", and operator overloading > isn't very Lispish; I think the concept actually came from Algol-68 > and was popularized by C++. > By "hook into the syntax" I meant the ability to change the behavior of obj() via __call__, or obj.a via __getattr__ or __getattribute__. Or we might change the behavior of obj[a] (__getitem__). I see overloading of arithmetic operators as just the beginning. > Lisp's hooks into the syntax are a lot more direct: its syntax > actually translates to a data structure that is directly manipulable > from inside the program, which is not how Python works. The available > "representations" of program code are either trivial (strings), > immutable (code objects) or extremely hard to handle (parse trees). > And there is no way to change the *syntax*. > This is a sort of perverse example, but is what I was trying to get at re "syntax overloading": >>> class P: def __init__(self,value): self.value = value def __getitem__(self,other): return P(self.value + other.value) def __repr__(self): return "P: value = %s" % self.value >>> p1 = P(3) >>> p2 = P(5) >>> p1[p2] P: value = 8 >>> p1[p2][p1][p2][p1][p1][p1] P: value = 25 Many other languages wouldn't let you mess with the behavior of square brackets like this. Not that we'd want to in just this way of course. True, the syntax is still legal Python. What's changing is behavior. > About the main topic of this weekend's thread, I am happy to hear > Python's role in the CS curriculum clarified (thanks to John Zelle's > book as a conversation-starter), and I am seeing some posts from Arthur > that I can actually understand. > > --Guido van Rossum (home page: http://www.python.org/~guido/) Kirby From hancock at anansispaceworks.com Sun Dec 14 14:07:28 2003 From: hancock at anansispaceworks.com (Terry Hancock) Date: Sun Dec 14 13:59:57 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: <0HPV00EJAU0QEX@mta6.srv.hcvlny.cv.net> References: <0HPV00EJAU0QEX@mta6.srv.hcvlny.cv.net> Message-ID: On Sunday 14 December 2003 05:17 am, Arthur wrote: > >Kirby, this is an example of the problem. When you teach children > >using a simulation, you teach them, in addition to everything else, > >to think within the system that the simulators were using. > > Adults can use simulation effectively because they have the tools to make > that mapping is some reasonable way. Kids don't. Where simulations are interesting and even exciting teaching tools is in the other extreme -- where the mapping from real to virtual is uncontroversial, but the consequences of these known interactions are unclear. This is generally the case when we are simulating physics. An orbit-integrator is a prime example: there's no question about how gravity works, we can demonstrate that pretty trivially from real-world experiments and observations. On the other hand, the consequences of this are extraordinarily complex and unpredictable. A simulator can run that math at high speed and show you what you can expect. Furthermore, the actual experiment is basically impossible. Even if you had the multi-million dollar budget to launch a real object into space, the actual playing out of the orbital mechanics takes years. A simulation lets you run that fast-forward. Even electronics and engineering simulations are usually like this: the individual interactions are easy to model, and there's little Human bias to consider in applying them. But I understand your point -- this always irritated me about SimEarth: it was blantantly obvious what the authors' assumptions were. I felt they were wrong, and the result is wrong predictions (IMHO, but who knows what the reality is?). That's an example where the models are a relatively poor reflection of the real problem's complexity, and there's no empirical test to run to find out how right or wrong they are. Cheers, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From urnerk at qwest.net Sun Dec 14 14:38:33 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sun Dec 14 14:38:32 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <004b01c3c225$32a79d90$a47074ce@bigduck> Message-ID: > I think teaching math and programming is a very interesting idea ... > proofs are just a kind of code walkthrough. > > Toby > -- In my own case, I've thought less about proofs and more about using programs to demonstrate what a proof means/says (i.e. what's asserted, before you even prove it). I understand Jeff's point that lots of kids dislike mathematics and bringing more math into programming might be a sure way to kill it -- takes all the fun out. But he also sees the flip side of the equation, which is we have the opportunity to take a somewhat unpopular subject (math) and enliven it with a command line such as Python's. An example I like is polynomials (usually a big topic in algebra). You get to see that there's a kind of positional notation, as with decimal numbers, where the positions correspond to 'degree' i.e. x**0, x**1, x**2 and so on. So Poly([1,2,-3]) would be a way to instantiate 1 + 2*(x**1) - 3*(x**2). Then using __call__, you can actually pass in some value for x, e.g.: >>> p1 = Poly([1,2,-3]) >>> p1 1 + 2*(x**1) - 3*(x**2) >>> p1(5) -64 With this framework in place, we'd now like to define __add__, __sub__, and __mul__ so that we might go: >>> p2 = Poly([0,0,1]) >>> p1 + p2 1 + 2*(x**1) - 2*(x**2) >>> p3 = p1 * p2 >>> p3 (x**2) + 2*(x**3) - 3*(x**4) In coding the guts of polynomial addition and multiplication, you learn quite a bit about programming, and polynomials, at the same time. And it's remarkable how little Python code it takes to implement all of the above. And as I mentioned earlier, I think it really pays off to develop a Vector class in Python, complete with operator overloading. I did this with 13 year olds in conjunction with POV-Ray. They remained open minded and pleased with the topic, even though it was way above grade level, because it was presented in a context that was interesting to them. http://www.4dsolutions.net/ocn/pygeom.html is where I've archived materials from this course (now complete). Kirby From ajsiegel at optonline.net Sun Dec 14 15:03:34 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 14 15:03:36 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer Message-ID: <0HPW005XMIDXRB@mta4.srv.hcvlny.cv.net> Guido writes: >...and I am seeing some posts from Arthur that I can actually understand. I've run it through numarray. Turns out, law of averages :) Art From rhseabrook at aacc.edu Sun Dec 14 16:08:00 2003 From: rhseabrook at aacc.edu (Seabrook, Richard) Date: Sun Dec 14 16:08:55 2003 Subject: FW: [Edu-sig] re: Education Arcade Message-ID: <74DAD2F23F03F7438D9BE3436C6846F7012909E1@AACC-MAIL.aacc.cc.md.us> Where simulations are interesting and even exciting teaching tools is in the other extreme -- where the mapping from real to virtual is uncontroversial, but the consequences of these known interactions are unclear. This is generally the case when we are simulating physics. An orbit-integrator is a prime example: there's no question about how gravity works, we can demonstrate that pretty trivially from real-world experiments and observations. On the other hand, the consequences of this are extraordinarily complex and unpredictable. A simulator can run that math at high speed and show you what you can expect. Furthermore, the actual experiment is basically impossible. Even if you had the multi-million dollar budget to launch a real object into space, the actual playing out of the orbital mechanics takes years. A simulation lets you run that fast-forward. ================================================================== Further on yours and Ms. Creighton's -- in this century we'll move human cognition from philosophy to physics, leading to reasonable definitions for thinking and learning. Perhaps then Ms. Creighton will get better feedback. Dick S. From Scott.Daniels at Acm.Org Mon Dec 15 15:21:01 2003 From: Scott.Daniels at Acm.Org (sdd) Date: Sun Dec 14 16:40:09 2003 Subject: [Edu-sig] Re: Python Programming: An Introduction to Computer Science In-Reply-To: References: <0HPM001I063XNC@mta4.srv.hcvlny.cv.net> Message-ID: Kirby Urner wrote: > What frustrates me somewhat is that CS1 doesn't really show off the full > power of Python, and by the time we get to CS2 at Zelle's academy (and I'm > suspecting this will be somewhat typical), we're on to Java. The reasoning > is solid: real CS majors need exposure to a static-typed language, as well > as to more than one language. I have no problem with this reasoning. What I'd like to see in the CS2 w/ Java course in this sequence is some display of how to use Jython To exercise and test your Java code. Often it is a long time before a programmer actually uses more than a single language in a project. By demonstrating this early, you are showing students how to let a pair of languages to "ply to their strengths." I'd also like to see a "learning Java with Jython book, but that's just me. -Scott David Daniels Scott.Daniels@Acm.Org From ajsiegel at optonline.net Sun Dec 14 18:42:33 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 14 18:42:37 2003 Subject: [Edu-sig] re: Education Arcade Message-ID: <0HPW00DQ3SIX9L@mta10.srv.hcvlny.cv.net> Richard writes - >Where simulations are interesting and even exciting teaching tools >is in the other extreme -- where the mapping from real to virtual is >uncontroversial, but the consequences of these known interactions >are unclear. This is generally the case when we are simulating physics. A nice, small non-technical and generic explanation of a physics SDK can be found at: http://opende.sourceforge.net/slides/slide1.html Also happen to like the presentation's aesthetics. The author, Russel Smith, created the Open Dynamics Engine (ODE): http://opende.sourceforge.net There is a Python wrapper to ODE, but for some reason the link is not working. So I will mention that there is an extant copy of a Windows binary for PyODE and Python2.3 which I had compiled, and made available some time ago at my own site: http://pw1.netcom.com/~ajs/download And, yes, I agree. Art From leslieball at msn.com Mon Dec 15 16:50:35 2003 From: leslieball at msn.com (Parker Sumner) Date: Mon Dec 15 04:57:09 2003 Subject: [Edu-sig] ,,Be strong and youthful, feel incredible!! o Message-ID: <3fcb0-b49d74@htju.if9pf> An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20031215/0f21976f/attachment.html From urnerk at qwest.net Mon Dec 15 05:06:09 2003 From: urnerk at qwest.net (Kirby Urner) Date: Mon Dec 15 05:06:01 2003 Subject: [Edu-sig] Graphing using Zelle's graphics.py Message-ID: John Zelle's graphics.py makes it easy for students to do graphics using Tk from within IDLE. Plus IDLE is making things somewhat easier these days, e.g. there's the 'restart shell' feature that clears out the memory without necessitating a reboot of IDLE. Suppose I wanted a quick sine and cosine graphs using graphics.py. Here's one way that might look: >>> from zelle.graphics import * >>> import math >>> def graph(f, domain, thewindow): """ Take a function, domain and target window, Return a graph """ for x1,x2 in zip(domain[:-1], domain[1:]): seg = Line( Point(x1,f(x1)), Point(x2,f(x2)) ) seg.draw(thewindow) >>> win = GraphWin('Graph',600,600) >>> win.setBackground('Blue') >>> win.setCoords(-10,-2,10,2) >>> domain = [i/100. for i in range(-1000,1000)] >>> graph(math.cos ,domain, win) >>> graph(math.sin ,domain, win) >>> win.close() The setCoords method is especially convenient, as it lets the user decide what the coordinate system will be. Kirby From ajsiegel at optonline.net Mon Dec 15 08:34:21 2003 From: ajsiegel at optonline.net (Arthur) Date: Mon Dec 15 08:34:25 2003 Subject: [Edu-sig] re: Graphing using Zelle's graphics.py Message-ID: <0HPX00GBBV18JG@mta4.srv.hcvlny.cv.net> >for x1,x2 in zip(domain[:-1], domain[1:]) OT, to be sure, but: Ain't 'zip' cool. The problem that zip addresses occurred over and over in my code. It's appearance allowed me to clean-up code that otherwise seemed bothersome and inelegant. Now my code is perfect ;) Art From ajsiegel at optonline.net Mon Dec 15 09:37:22 2003 From: ajsiegel at optonline.net (Arthur) Date: Mon Dec 15 09:37:25 2003 Subject: [Edu-sig] zip Message-ID: <0HPX00GUZXYAUQ@mta4.srv.hcvlny.cv.net> >Ain't 'zip' cool. >The problem that zip addresses occurred over and over in my code. (To Guido's chagrin) I do become fascinated and interested in language design issues. 'zip', for my purposes, was perfect. The intention, in my cases, is to iterate over lists of equal lengths. But there are corner cases in which the len of the lists become unequal, and I needed to test and adjust for that. My adjustment was exactly what zip provides - what the heck, go over the shorter of the two lists. Good enough for my purposes. Actually helped bulletproof my code. But only because there are parts of my code (when I'm just drawing, after all) where good enough is good enough. That is often not the case when programming. So as much as I appreciate 'zip' I recognize danger in it, because an unequal length list condition might also indicate an unexpected 'out of balance' condition as well as an expected one. That condition was more likely to be exposed with the 'old fashioned' way of handling the situation which zip addresses. So, in using zip, without some caution, an unexpected condition - a bug - might pass silently. The edu-sig relevance, I guess, is that there are always trade-offs, and therefore subtleties every way one turns. And, in the end, often no way to make things truly 'simple'. And students of the language, IMO, need to understand that upfront. And to take responsibility in all cases. It's all in the docs. But the reality is that probably the only way one is going to get one's arms fully around something as simple as the full implications of 'zip' is to get bitten by it once. Or at least that's how I end up learning most of the nooks and crannies. Having been bitten enough times and taken it like a .. (be careful) programmer, I sort of expect others to do the same. And get cranky when they don't. Which has been the base source of some of my crankiness when the issue of "newbies" and Python's responsibilities to them comes up again and again. Art From urnerk at qwest.net Mon Dec 15 11:26:16 2003 From: urnerk at qwest.net (Kirby Urner) Date: Mon Dec 15 11:26:13 2003 Subject: [Edu-sig] enumerate In-Reply-To: <0HPX00GUZXYAUQ@mta4.srv.hcvlny.cv.net> Message-ID: In addition to 'zip', I like 'enumerate'. It helps with that polynomial class I was mentioning. >>> def value(plist,x): """Evaluate a polynomial with coeffs plist at x""" return sum([c*(x**e) for e,c in enumerate(plist)]) >>> def repr(plist): """Takes polynomial coefficients plist and returns a formatted textual representation of the poly""" terms = ['%s*(x**%s)' % (c,e) for e,c in enumerate(plist) if not c==0] return " + ".join(terms).replace("*(x**0)","") Using: >>> repr([1,0,2,3,-1,5]) '1 + 2*(x**2) + 3*(x**3) + -1*(x**4) + 5*(x**5)' >>> value([1,0,2,3,-1,5],4) 5089 Another way to check results: >>> x = 4 >>> eval(repr([1,0,2,3,-1,5])) 5089 Change value to __call__ and repr to __repr__, add some self stuff, and you've got your little Poly class (still need __add__ and __mul__ tho). Kirby From dethe.elza at blastradius.com Mon Dec 15 13:40:06 2003 From: dethe.elza at blastradius.com (Dethe Elza) Date: Mon Dec 15 13:40:12 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: References: Message-ID: <1A48CBD0-2F2E-11D8-951B-0003939B59E8@blastradius.com> Quoth Kirby: > Likewise, generators and list comprehensions (which we might not get > to in > CS1), are productivity enhancers (there's also a PEP about combining > these > two in particular, which Martelli is pushing -- dunno what's it's > status as > of today). Generator expressions have generated (pardon the pun) a lot of interest and support and will be part of Python 2.4 with a syntax very similar to list comprehensions, but with parentheses instead of square brackets (and the parens are optional in some cases). Between this and the new itertools module (in the standard library) lazy evaluation becomes very accessible in Python (with all the benefits it brings for memory use and speed). --Dethe "All spiritual paths have four steps: show up, pay attention, tell the truth, and don't be attached to the results." Angeles Arien From dethe.elza at blastradius.com Mon Dec 15 14:03:29 2003 From: dethe.elza at blastradius.com (Dethe Elza) Date: Mon Dec 15 14:03:36 2003 Subject: [Edu-sig] re: Education Arcade In-Reply-To: References: Message-ID: <5EA89646-2F31-11D8-951B-0003939B59E8@blastradius.com> Quote Kirby: >> Kirby, this is an example of the problem. When you teach children >> using a simulation, you teach them, in addition to everything else, >> to think within the system that the simulators were using. >> > > Yes, I agree. So show them several simulations and discuss their > differences. Or better yet, give them a similulation, and a configuration mechanism for it. Here, try to get elected with more-or-less the system we have now. OK, now turn on the "Campaign Spending Limits" option and try again. Try with multiple parties, proportional representation, voter registration by the BMV, etc. Use the presets for elections in different countries (or California!). A good simulation doesn't have to be limited to one set of assumptions, it can be flexible. And of course, you could let interested players get "behind the scenes" to script new scenarios and options directly. My kids (7 and 3) both enjoy playing "educational" games, like Reader Rabbit. They enjoy the puzzle-solving aspect, and my seven-year-old daughter really likes doing math puzzles on the computer. She is bored in school because the lessons often don't challenge her enough, and asks the teacher for harder work. Now, this isn't just because the programs are interesting, but because we work with her a lot. My wife stayed home with the kids to give them a head start. We've always presented reading and math as things that are fun to do, and as positive ways of getting attention (powerful motivation for kids!). And, as I've mentioned here before, we're working on a game together. So far it's pretty simplistic, just a sprite moving around on a background. But she drew both the background and the sprite (I just scanned them and animated with PyGame), which makes it more personal. As we move forward with it, I see her getting not only into the graphics and story, but also into directly manipulating the environment through code. So my view is that simulations are good, but much better if you have the whole toolkit at your disposal, both the simulation, the rules for the simulation (for tweaking) and the ability to extend the simulation in new ways. --Dethe "The law I sign today directs new funds and new focus to the task of collecting vital intelligence on terrorist threats and on weapons of mass production." -- George W. Bush From ajsiegel at optonline.net Mon Dec 15 20:42:13 2003 From: ajsiegel at optonline.net (Arthur) Date: Mon Dec 15 20:42:19 2003 Subject: [Edu-sig] re: Education Arcade Message-ID: <0HPY00LTSSQ535@mta9.srv.hcvlny.cv.net> >So my view is that simulations are good, but much better ... My view is largely otherwise, but I suspect we can agree on some more fundamental issues. The stakes involved are enormous - financial and cultural. According to my simulation, those with interests in the outcome are quite actively influencing this debate, and can be expected to do so more aggressively in the future. It is not a subterranean plot. It is simply the way of the world. And in this particular case the weight of those with a direct interest in the outcome are very much on one side of the scale. In other debates, the circumstances are different and the influences more evenly distributed. I would probably be considerably less strident if I thought the debate had a reasonable chance of being conducted on an even playing field. And decided on its merits. I do not. According to my simulation, the fact that educational spending, as a broad category, is second only to health care is of considerable relevance. I believe the merits of the Waldorfian view on technology in the K to 9 (let's say) classroom (and certainly those more moderate, but with leanings in the Waldorfian direction) will quite likely be underrepresented (and underfunded). And I am a sucker for a lost cause. Sounds very Leftist, probably. But, education has traditionally been, to a reasonable extent, insulated from the marketplace. Some of us feel that tradition or ideal is under siege in connection with the technology issue, more and more. But that Left or Right categories actually don't apply. Art From mmclay at comcast.net Wed Dec 17 16:28:52 2003 From: mmclay at comcast.net (Michael McLay) Date: Wed Dec 17 16:22:54 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <1071363126.6070.24.camel@robeson> References: <200312132321.hBDNLB6F026743@ratthing-b246.strakt.com> <1071363126.6070.24.camel@robeson> Message-ID: <200312171628.52429.mmclay@comcast.net> On Saturday 13 December 2003 07:52 pm, Jeffrey Elkner wrote: > On Sat, 2003-12-13 at 18:21, Laura Creighton wrote: > > In a message of Sat, 13 Dec 2003 13:09:10 PST, "Kirby Urner" writes: > >> I guess my question is, what's being used outside the "hard core geek > >> community" that CS1 doesn't reach? VB? Or is it just that programming > >> itself is still not a very widespread activity, using any language? > > > > I think the second. > > VB is used by the Business department, which has more students than CS > at our school (and in the world at large, too). It is true that most > students still are not exposed to programming at all, but I see more > students coming to me with some exposure to programming already than I > did 10 years ago. I would be very surprised if programming spreadsheets wasn't the largest programming activity if we were just counting the number of people who write some rudimentary programs. Business people and 12 year olds have about the same level of tolerance for learning arcane programming languages. They want it to be easy and fast to make something work. It is not surprising that decimal numbers are expected for both groups. Why should they need to known about binary number representation? If Python is going to crack the business and educational markets there is one simple change that must be made. The lack of a native decimal number type is show stopper for using Python in the business community. Add decimal numbers and watch the COBOL programmer flock to Python:-) > >> In my view, we need more programming in the mathematics curriculum, > >> which means recognizing that writing programs is likewise a way of > >> writing mathematics. Or, more accurately, I'd say both kinds of writing > >> are similar kinds of symbolic activity which deserve a prime spot in > >> K-12 education. > >> > >> In the math curriculum, the real competition is not some other language, > >> but calculators (I guess the TI programming language might count -- but > >> my impression is more HS math teachers than students actually bother > >> with the programming part). I suppose in school the programmable calculator would outnumber the spreadsheet users. That reverses in the business world. [...] > But Kirby is talking about using programming in the mathematics > classroom, where it could serve to make mathematics instruction more > real and more comprehensible for the students who are there. I think > that is a great idea. +1 > That is not at all to say that programming should in be limited to > mathematics, or that it should even be primarily there. I like what > Laura says about data mining on the web. The web can be an empowering > and democratic tools for folks if they learn how to use it, and some > basic programming skills would be a big help with that. I'm also > finding that basic web scripting is an important tool for students > wanting to make dynamic web sites (and lots of students want to make web > sites). I've been using PHP for that mostly, but the students in my > classes who are doing this kind of thing benefitted greatly from their > exposure to Python. Of course if you are talking about doing computational linguistics (or whatever the name is for people who do analysis of sentence structure and try to understand words in a given context) the math gets reintroduced to the data mining activity. Some types of interactive games and developing software to support testing of students for the humanities also fit into this non-math use of programming. Perhaps you can lure the students into using math by using interesting problems with the programming language to introduce where using math can make life easier. From guido at python.org Wed Dec 17 16:31:37 2003 From: guido at python.org (Guido van Rossum) Date: Wed Dec 17 16:31:44 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: Your message of "Wed, 17 Dec 2003 16:28:52 EST." <200312171628.52429.mmclay@comcast.net> References: <200312132321.hBDNLB6F026743@ratthing-b246.strakt.com> <1071363126.6070.24.camel@robeson> <200312171628.52429.mmclay@comcast.net> Message-ID: <200312172131.hBHLVbv23011@c-24-5-183-134.client.comcast.net> > Business people and 12 year olds have about the same level of > tolerance for learning arcane programming languages. I know I'm taking this out of context, but I think you're wrong about the 12 year olds. Teenagers will spend *endless* amounts of time decyphering arcane stuff if there's a bounty to be had. Witness all the young computer criminals -- they've had to master a lot of very arcane tools to perpetrate their crimes. Viruses for example are one of the the last kind of software industry that are still mostly written in assembler language. --Guido van Rossum (home page: http://www.python.org/~guido/) From urnerk at qwest.net Wed Dec 17 16:46:03 2003 From: urnerk at qwest.net (Kirby Urner) Date: Wed Dec 17 16:45:48 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <200312171628.52429.mmclay@comcast.net> Message-ID: > I would be very surprised if programming spreadsheets wasn't the largest > programming activity if we were just counting the number of people who > write some rudimentary programs. Good point. > Business people and 12 year olds have about the same level of tolerance > for learning arcane programming languages. They want > it to be easy and fast to make something work. It is not surprising that > decimal numbers are expected for both groups. Why should they need to > known about binary number representation? > Also a good point. > If Python is going to crack the business and educational markets there is > one simple change that must be made. The lack of a native decimal number > type is show stopper for using Python in the business community. Add > decimal numbers and watch the COBOL programmer flock to Python:-) They're in the pipeline I understand. I'm not sure of their status though (I say this even after googling some). Kirby From mmclay at comcast.net Wed Dec 17 17:16:00 2003 From: mmclay at comcast.net (Michael McLay) Date: Wed Dec 17 17:10:06 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <200312172131.hBHLVbv23011@c-24-5-183-134.client.comcast.net> References: <200312171628.52429.mmclay@comcast.net> <200312172131.hBHLVbv23011@c-24-5-183-134.client.comcast.net> Message-ID: <200312171716.00615.mmclay@comcast.net> On Wednesday 17 December 2003 04:31 pm, Guido van Rossum wrote: > > Business people and 12 year olds have about the same level of > > tolerance for learning arcane programming languages. > > I know I'm taking this out of context, but I think you're wrong about > the 12 year olds. Teenagers will spend *endless* amounts of time > decyphering arcane stuff if there's a bounty to be had. Witness all > the young computer criminals -- they've had to master a lot of very > arcane tools to perpetrate their crimes. Viruses for example are one > of the the last kind of software industry that are still mostly > written in assembler language. That is certainly true for some teenagers today, but those aren't the ones that are avoiding math and science classes. Even the shop class crowd has to know about computers these days in order know how to re-program their car's on-board-computer. But for a very large portion of students these incentives aren't very interesting. They are looking for ways to avoid taking math and science classes. They spend all of their spare time socializing. The closes they come to science is when the are communicating in coded messages with other members of there social group. There's also a group in the middle that would be more willing to do learn math and science, if it were a little less abstract and boring. The socialites will never change, but some of the kids in the middle are reachable by reducing the investment required to get something useful out of science and math. From urnerk at qwest.net Wed Dec 17 17:40:23 2003 From: urnerk at qwest.net (Kirby Urner) Date: Wed Dec 17 17:40:09 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <200312171716.00615.mmclay@comcast.net> Message-ID: Guido (abbrev): > > I know I'm taking this out of context, but I think you're wrong about > > the 12 year olds. Michael (abbrev): > That is certainly true for some teenagers today, but those aren't the ones > that are avoiding math and science classes. Good thread -- we need more along these lines. Although Guido is right about a few kids, we should be aware of the vast numbers of "script kiddies" who get access to harass-ware that's pretty user-friendly on the face of it, but a black box (to them). Trojan horses, embedded in always-online Windows boxes world wide, able to respond to commands and all launch a DNS attack on the same target, may be sent forth and rallied from a GUI by a script kiddie with practically zippo real knowledge of the underlying mechanics. A perverse brand of techno-savvy adult likes to supply the kiddos with weaponry of this high caliber. This guy who sells ZoneAlarm had a fascinating piece on his interactions with a script kiddie who launched a DNS against him, primarily because he was offended by being called a script kiddie (which is what he was). Let's see if I can find the URL: [didn't find it, but found lots of related stuff]. With regard to "those in the middle" teens, who'd tune in more math were it less abstract and relevant, I think more programming could be the key. In fact, with programming, you can take abstractions and make them seem concrete simply because you're coding them. For example, it's considered college level to consider Zn, a group of numbers added and multiplied modulo N. But with operator overloading, it's a concrete exercise to have a * b return (a*b) % n. Then you can examine group and field properties. Abstract algebra made easy with Python. And although the decimals have not yet arrived (at least not in the Standard Library), we *do* have this ability to invoke giant integers without fuzzing over to floating points. This meets student expectations, and opens a wide area of exploration. That's something to celebrate. Likewise, with operator overloading, we can construct rational numbers and polynomials as entities with field and ring properties respectively. That's high level math, but the fact that we can program around it makes it relatively concrete and accessible to a middle-of-the-road teen -- is what I would argue. "Math through programming" has a bright future, but is slow in coming. I think the open source community is well poised to start the revolution, given the global reach of cybergoods. Kirby From ajsiegel at optonline.net Wed Dec 17 19:37:54 2003 From: ajsiegel at optonline.net (Arthur) Date: Wed Dec 17 19:37:57 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience Message-ID: <0HQ2001SQF35DN@mta2.srv.hcvlny.cv.net> Jeff writes: >VB is used by the Business department, which has more students than CS >at our school (and in the world at large, too Can we be outraged that VB is being taught on the public dime? VB is aggressively non-generic in many ways. If Chevy decided it was in their business interest to have its own kind of engine which ran on witch oil, and the shop classes then followed up by teaching kids only how to work on Chevies... Can we be outraged that a sense of outrage is being lost as to this issue? Can we at least be strategically outraged ;) Art From ajsiegel at optonline.net Wed Dec 17 20:03:00 2003 From: ajsiegel at optonline.net (Arthur) Date: Wed Dec 17 20:03:02 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience Message-ID: <0HQ200DWSG920C@mta7.srv.hcvlny.cv.net> Michael writes - >There's also a group in the middle that would be more willing to do learn >math and science, if it were a little less abstract and boring. The same is true as to computer programming. What does being able to print "Hello World" to the screen do for me, after all. The beauty is, teaching science with programming and programming with science, can bring both subject areas (if we choose to consider them to be separate subject areas) alive in ways not otherwise possible. Does this qualify as Synergy, Kirby? Art From ajsiegel at optonline.net Thu Dec 18 08:03:50 2003 From: ajsiegel at optonline.net (Arthur) Date: Thu Dec 18 08:03:53 2003 Subject: [Edu-sig] Introduction to Programming for the Physical Sciences Message-ID: <0HQ3003JJDM5FZ@mta3.srv.hcvlny.cv.net> Just as a for example: http://www.physics.umd.edu/courses/Phys165/williams/ I came across this just now somewhat by accident, by the way. Not searching for an example to post. So I can only expect that a true search would find many. But almost all would be at the undergraduate college level. Not K-12. That's where the "market" is saying the action is for this kind of thing. And I trust the market, here. Art From ajsiegel at optonline.net Thu Dec 18 08:34:57 2003 From: ajsiegel at optonline.net (Arthur) Date: Thu Dec 18 08:35:07 2003 Subject: [Edu-sig] The National Computational Science Institute Message-ID: <0HQ300CYCF28DL@mta4.srv.hcvlny.cv.net> The National Computational Science Institute http://www.computationalscience.org/ is working under a 2.75 million NSF grant to provide education to educators about the use of computational science as an educational tool in a variety of science related disciplines. """ The initial target audience for NCSI are teams of faculty from predominantly undergraduate institutions (PUI's), minority serving institutions (MSI's), and community colleges whose students are either the next generation of scientists and engineers, the next generation of K-12 teachers, or both. """ I happen to agree with that "educating the educators" is a good target at this stage of things. Leverages the effort. These folks, however, don't seem to know about Python. Or have not incorporated into their thinking, anyway. I actually think that Python - certainly as opposed to Java - will make these kinds of efforts more productive and realistic. Art From urnerk at qwest.net Thu Dec 18 13:43:49 2003 From: urnerk at qwest.net (Kirby Urner) Date: Thu Dec 18 13:43:51 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <0HQ2001SQF35DN@mta2.srv.hcvlny.cv.net> Message-ID: I dunno Arthur -- doesn't seem a cut and dried an issue to me. Open source is a relatively recent phenomenon and until recently, just about any language learning was going to involve using some commercial brand of licensed software. Oft times, it was a university that was the licensee, so students didn't have a sense of paying for it (separately), but that was before PCs came along. Was it outrageous to be teaching Unix shell programming before Linux? Java is likewise proprietary. Do you have any outrage about public institutions teaching it? And I'm not sure to what extent the newest VB (.NET version) is actually proprietary. At least in the case of C#, the standard is open, meaning anyone is welcome to write a C# compiler (which Miguel de Icaza has already done, for Linux). Actually, on checking the mono website, I see the VisualBasic.NET compiler is already in development. http://www.go-mono.com/mbas.html Kirby > Can we be outraged that VB is being taught on the public dime? VB is > aggressively non-generic in many ways. If Chevy decided it was in their > business interest to have its own kind of engine which ran on witch oil, > and > the shop classes then followed up by teaching kids only how to work on > Chevies... > > Can we be outraged that a sense of outrage is being lost as to this issue? > > Can we at least be strategically outraged ;) > > Art From urnerk at qwest.net Thu Dec 18 13:44:26 2003 From: urnerk at qwest.net (Kirby Urner) Date: Thu Dec 18 13:44:29 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <0HQ200DWSG920C@mta7.srv.hcvlny.cv.net> Message-ID: > Does this qualify as Synergy, Kirby? > > Art It shore do. KU From jeff at elkner.net Thu Dec 18 14:49:37 2003 From: jeff at elkner.net (Jeffrey Elkner) Date: Thu Dec 18 14:47:29 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <0HQ2001SQF35DN@mta2.srv.hcvlny.cv.net> References: <0HQ2001SQF35DN@mta2.srv.hcvlny.cv.net> Message-ID: <1071776977.6352.7.camel@blake.careercenter.arlington.k12.va.us> Would could be outraged, Arthur, for all the good it would do us ;-) Or, alternatively we could try to do something about it, like trying to present a sensible alternative. On Wed, 2003-12-17 at 19:37, Arthur wrote: > Jeff writes: > > >VB is used by the Business department, which has more students than CS > >at our school (and in the world at large, too > > Can we be outraged that VB is being taught on the public dime? VB is > aggressively non-generic in many ways. If Chevy decided it was in their > business interest to have its own kind of engine which ran on witch oil, and > the shop classes then followed up by teaching kids only how to work on > Chevies... > > Can we be outraged that a sense of outrage is being lost as to this issue? > > Can we at least be strategically outraged ;) > > Art -- Jeffrey Elkner Open Book Project From jeff at elkner.net Thu Dec 18 14:57:17 2003 From: jeff at elkner.net (Jeffrey Elkner) Date: Thu Dec 18 14:55:22 2003 Subject: [Edu-sig] Begin planning now for the big opportunity... In-Reply-To: <0HQ2001SQF35DN@mta2.srv.hcvlny.cv.net> References: <0HQ2001SQF35DN@mta2.srv.hcvlny.cv.net> Message-ID: <1071777436.6352.13.camel@blake.careercenter.arlington.k12.va.us> btw. The big opportunity for Python to make it into Business classes will be along with the introduction of Linux. Resistance to change will prevent making any big inroads before that time. But Linux is coming, and with it will be the opportunity for a lot of other changes to ride in at the same time. On Wed, 2003-12-17 at 19:37, Arthur wrote: > Jeff writes: > > >VB is used by the Business department, which has more students than CS > >at our school (and in the world at large, too > > Can we be outraged that VB is being taught on the public dime? VB is > aggressively non-generic in many ways. If Chevy decided it was in their > business interest to have its own kind of engine which ran on witch oil, and > the shop classes then followed up by teaching kids only how to work on > Chevies... > > Can we be outraged that a sense of outrage is being lost as to this issue? > > Can we at least be strategically outraged ;) > > Art -- Jeffrey Elkner Open Book Project From jason.cunliffe at verizon.net Thu Dec 18 16:03:42 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Thu Dec 18 16:03:08 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience References: <0HQ2001SQF35DN@mta2.srv.hcvlny.cv.net> Message-ID: <002601c3c5aa$6bbbfc60$6501a8c0@vaio> > Can we be outraged that VB is being taught on the public dime? Not much - as long Microsoft Windows is the OS of choice in Government and Business. How long before the US follows the lead of European and Asian countries to cross-over and base their major 21st century information architectures on Linux and ilk? If you want to get outraged and active that seems a more effective place to start - at the head not the tail of the [ahem] problem :-) - Jason From arkamir at softhome.net Thu Dec 18 16:49:48 2003 From: arkamir at softhome.net (arkamir@softhome.net) Date: Thu Dec 18 16:49:55 2003 Subject: [Edu-sig] Re: Edu-sig Digest, Vol 5, Issue 20 In-Reply-To: References: Message-ID: Only a very miniscule amount of teenagers spend time writing viruses. I would prefer to see 1,000 people using my program then pissing of 2 million just for my amusment. (Or just 1 person) I am one of the 3-5 people who can actually program at my school. And only 1 of 3 who can actually use linux. Most kids are just too dumb to program. They spend the whole day skateboarding and hitting on girls or gaming. They just dont care enough about there education. Others struggle with just the regular curriculum, and I dont know if teaching them to program will help. From hancock at anansispaceworks.com Thu Dec 18 18:06:59 2003 From: hancock at anansispaceworks.com (Terry Hancock) Date: Thu Dec 18 18:00:20 2003 Subject: [Edu-sig] Re: Edu-sig Digest, Vol 5, Issue 20 In-Reply-To: References: Message-ID: On Thursday 18 December 2003 03:49 pm, arkamir@softhome.net wrote: > Only a very miniscule amount of teenagers spend time writing viruses. And only a very miniscule amount of clueful adults think otherwise. ;-) Just so you know you're appreciated, Terry -- Terry Hancock ( hancock at anansispaceworks.com ) Anansi Spaceworks http://www.anansispaceworks.com From ajsiegel at optonline.net Thu Dec 18 20:51:20 2003 From: ajsiegel at optonline.net (Arthur) Date: Thu Dec 18 20:51:25 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience Message-ID: <0HQ4003EPD5KD9@mta11.srv.hcvlny.cv.net> Kirby writes: >I dunno Arthur -- doesn't seem a cut and dried an issue to me. I had recently come across this for the first time, though it is apparently famous (and probably apocryphal): I have been looking for an opportunity to throw it your way, but give up on finding the proper opening. """ Isaac Newton's assistant at Cambridge claimed that during five years he saw Newton laugh only once. Newton had loaned a copy of Euclid to an acquaintance, and the gentleman asked what use it was to study Euclid, "upon which Sir Isaac was very merry. """ And VB sucks. Art From urnerk at python.org Thu Dec 18 20:56:40 2003 From: urnerk at python.org (Kirby Urner) Date: Thu Dec 18 20:56:42 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <0HQ4003EPD5KD9@mta11.srv.hcvlny.cv.net> Message-ID: > And VB sucks. > > Art This part I agree with, and any outrage attaches to this, more than to any presumption regarding the impropriety of proprietary programming languages. Kirby From dragoncow2 at hotmail.com Thu Dec 18 22:18:43 2003 From: dragoncow2 at hotmail.com (Nicholas Wheeler) Date: Thu Dec 18 22:18:48 2003 Subject: [Edu-sig] re: Python Programming: An Introduction toComputerScience Message-ID: As a student who has gone through VB first (freshmen year), and then CS1&2 with Jeff Elkner, I can reassure you that the way the children are learning VB is completely useless, and none of it will stay with them. Furthermore, it doesn't get them interested in programming at all, and the children don't walk out of the class with -any- knowledge. In example, during CS1 I hadn't the faintest clue as to what a function was, and why they were used, and I was one of the "best" in the VB class. Even though in VB, we used function, the concepts just weren't taught. So basically the Business area is a failure in my eyes, and doesn't really cover programming. Unfortuantly I just don't see python covering the VB niche, because of it's non-visual nature, and I can't really see a good argument for it being in the Business curriculum. Nicholas Wheeler Yorktown Highschool [Insert intersting stuff here] > > And VB sucks. > > > > Art > >This part I agree with, and any outrage attaches to this, more than to any >presumption regarding the impropriety of proprietary programming languages. > >Kirby > > > >_______________________________________________ >Edu-sig mailing list >Edu-sig@python.org >http://mail.python.org/mailman/listinfo/edu-sig _________________________________________________________________ Get dial-up Internet access now with our best offer: 6 months @$9.95/month! http://join.msn.com/?page=dept/dialup From dethe.elza at blastradius.com Thu Dec 18 23:00:09 2003 From: dethe.elza at blastradius.com (Dethe Elza) Date: Thu Dec 18 23:00:21 2003 Subject: [Edu-sig] re: Python Programming: An Introduction toComputerScience In-Reply-To: References: Message-ID: Quoth Nicholas, > As a student who has gone through VB first (freshmen year), and then > CS1&2 with Jeff Elkner, I can reassure you that the way the children > are learning VB is completely useless, and none of it will stay with > them. Furthermore, it doesn't get them interested in programming at > all, and the children don't walk out of the class with -any- > knowledge. In example, during CS1 I hadn't the faintest clue as to > what a function was, and why they were used, and I was one of the > "best" in the VB class. Even though in VB, we used function, the > concepts just weren't taught. So basically the Business area is a > failure in my eyes, and doesn't really cover programming. Unfortuantly > I just don't see python covering the VB niche, because of it's > non-visual nature, and I can't really see a good argument for it being > in the Business curriculum. Python doesn't isn't necessarily lacking a visual nature, it just isn't bound tightly to an IDE/Visual Designer/Database. There are an embarassment of GUI tools, visual builders, IDEs, and databases to choose from, as well as more advanced tools for 2D, 3D, etc. What Python could benefit by is *packaging* a default selection of these tools put together to appeal to VB users, especially now that VB.net is essentially a different syntax for C# and not an easy-to-use scripting language (this opens an opportunity for Python in the Windows world, IMHO). With the WinPython package installed you can do anything from Python that you can do from VB, including (if I recall correctly, I don't have my copy of "Win32 Programming with Python handy) creating a UI with VB and scripting it with Python. It's interesting that VB is so poorly taught, and I'm very glad that Python is taught well, but I wouldn't rule out Python for business users. --Dethe "I started with nothing, and I still have most of it." -- Steven Wright From urnerk at python.org Thu Dec 18 23:08:10 2003 From: urnerk at python.org (Kirby Urner) Date: Thu Dec 18 23:08:10 2003 Subject: [Edu-sig] re: Python Programming: An IntroductiontoComputerScience In-Reply-To: Message-ID: > failure in my eyes, and doesn't really cover programming. Unfortuantly I > just don't see python covering the VB niche, because of it's non-visual > nature, and I can't really see a good argument for it being in the > Business > curriculum. > I think the quickest/easiest way to get a business face on Python, in the sense of a visual front end, is to do some simple cgi stuff. Use the browser and its
tags to provide interactive widgets, not Tk, not wxPython (the latter could come later). This isn't to say I'm opposed to the graphics.py type exercises ala John Zelle. But in business, ecommerce is more the thing. Even intranets use the browser these days. Plus business *has* to introduce SQL (I can't imagine leaving this out), so a relational database simply *must* be in the picture. In the business context, the goal is to see how a programming language gets between the browser and a database. Python is good at this. Kirby From lac at strakt.com Fri Dec 19 04:17:33 2003 From: lac at strakt.com (Laura Creighton) Date: Fri Dec 19 04:17:57 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: Message from "Kirby Urner" of "Thu, 18 Dec 2003 10:43:49 PST." References: Message-ID: <200312190917.hBJ9HXYq008529@ratthing-b246.strakt.com> In a message of Thu, 18 Dec 2003 10:43:49 PST, "Kirby Urner" writes: > >I dunno Arthur -- doesn't seem a cut and dried an issue to me. > >Open source is a relatively recent phenomenon and until recently, just about >any language learning was going to involve using some commercial brand of >licensed software. Oft times, it was a university that was the licensee, >so students didn't have a sense of paying for it (separately), but that was >before PCs came along. ?? Before PCs came along, open source was the norm at universities, and all the universities I knew were teaching some sort of 'teaching langauge', generally one they wrote themselves, or Pascal. 'Commercial programming' when it was done by people employed by businesses, was in general done in COBOL or RPG. Scientists used FORTRAN. University computer science departments didn't concern themselves with such wordly things. The universities did indeed pay for the mainframes, and the operating systems which ran on them, of course. The big switch happened when computer science departments became flooded with people who wanted to be programmers, and they decided that it would be a good idea to teach languages that people wanted to learn because they would use them on the job, rather than languages you were guaranteed to never ever see again unless you got a job at your university. Laura From lac at strakt.com Fri Dec 19 04:42:28 2003 From: lac at strakt.com (Laura Creighton) Date: Fri Dec 19 04:42:40 2003 Subject: [Edu-sig] Re: Edu-sig Digest, Vol 5, Issue 20 In-Reply-To: Message from arkamir@softhome.net of "Thu, 18 Dec 2003 14:49:48 MST." References: Message-ID: <200312190942.hBJ9gSpU008678@ratthing-b246.strakt.com> In a message of Thu, 18 Dec 2003 14:49:48 MST, arkamir@softhome.net writes: >Only a very miniscule amount of teenagers spend time writing viruses. I >would prefer to see 1,000 people using my program then pissing of 2 milli >on >just for my amusment. (Or just 1 person) I am one of the 3-5 people who c >an >actually program at my school. And only 1 of 3 who can actually use linux >. >Most kids are just too dumb to program. They spend the whole day >skateboarding and hitting on girls or gaming. They just dont care enough >about there education. Others struggle with just the regular curriculum, >and >I dont know if teaching them to program will help. > I am not sure if 'dumb' is the right word, though I think you understand the problem. I think 'bored' and 'unmotivated' might be the problem. Now, I like creating things whenever I feel bored. Do you think that we could get them interested in becoming creators -- of anything -- if we tried? Or do you think that this is too simplistic a solution? Laura From ajsiegel at optonline.net Fri Dec 19 07:45:43 2003 From: ajsiegel at optonline.net (Arthur) Date: Fri Dec 19 07:45:46 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience Message-ID: <0HQ5003DM7G7AW@mta6.srv.hcvlny.cv.net> Kirby writes - >>VB sucks. >This part I agree with, and any outrage attaches to this, more than to any >presumption regarding the impropriety of proprietary programming languages. For education related purposes - I argue these issues are one and the same, or certainly correlated. I would not make the same argument for business purposes. VB is useful in business. So are lots of other inanities. I happen to consider myself a businessman. So I say this without rancor. Art From urnerk at qwest.net Fri Dec 19 10:01:13 2003 From: urnerk at qwest.net (Kirby Urner) Date: Fri Dec 19 10:01:14 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <0HQ5003DM7G7AW@mta6.srv.hcvlny.cv.net> Message-ID: > For education related purposes - I argue these issues are one and the > same, or certainly correlated. > I don't see a need to link these issues. A given open source language could suck or be inappropriate. > I would not make the same argument for business purposes. VB is useful in > business. So are lots of other inanities. > I think VB is becoming less useful. MSFT is trying its best to bring along a generation of VB programmers, but if you're just starting out, might as well use C# against the .NET framework. It likely has a brighter future. Or Java. > I happen to consider myself a businessman. So I say this without rancor. > > Art > I still think it'd be better to do some simple cgi programming with Python, against some database. Basically, I'm thinking LAMP deserves more airplay. But WAMP is another option (Windows, Apache, MySQL, Python/Perl/PHP). My ideal CS-for-business type class is more into overview in any case. We look at streamlined implementations of these things ("cave paintings") as grist for the mill, to help us extrapolate to real world cases, which are almost inevitably more complex. A business person should know about Enterprise Java, .NET, LAMP, SQL and XML. It's also good to have a handle on open source (history, where it fits in to business models these days). Kirby From urnerk at qwest.net Fri Dec 19 10:25:29 2003 From: urnerk at qwest.net (Kirby Urner) Date: Fri Dec 19 10:25:34 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience In-Reply-To: <200312190917.hBJ9HXYq008529@ratthing-b246.strakt.com> Message-ID: > 'Commercial programming' when it was done by people employed by > businesses, was in general done in COBOL or RPG. Scientists used > FORTRAN. University computer science departments didn't concern > themselves with such wordly things. The universities did indeed pay > for the mainframes, and the operating systems which ran on them, of > course. I wonder if Princeton paid for APL (did it pay IBM?). That was all the rage when I got there in 1976. Ran on the mainframe (IBM 370). We hard terminals with those weird keyboards in some of the dorms (basement of Princeton Inn, where I was) and Firestone Library. The Engineering Quad used graphical APL on Tektronix terminals. I snuck in at night a few times and played with them. If the source code for APL was available for free inspection, I never knew about it. There was no GPL or anything like that of course. My guess is IBM owned that source and was protective of it even then. In terms of paying for operating systems, was the compiler bundled with that? It'd be hard to imagine Linux without GNU's gcc. If so, then we could say that much of the C programming was on proprietary systems. > The big switch happened when computer science departments became flooded > with people who wanted to be programmers, and they decided that it would > be a good idea to teach languages that people wanted to learn because > they would use them on the job, rather than languages you were guaranteed > to never ever see again unless you got a job at your university. > > > > Laura And yet because of open source, a lot of these job-relevant languages are still free. Ironically, LISP, which started out in the guts of GNU (e.g. Stallman's emacs) is one of the harder to find in non-commercial form (if you want to do anything fancy with it, like write GUIs). I use xBase a lot on the job (Visual FoxPro). That's proprietary and Microsoft has attempted to quash any demos of the runtime library running on Linux, even though, as a FoxPro developer, it'd be in my best interests to have that as a platform and client base as well. But I've never taken a class in xBase. My impression, looking over the community college syllabi in my area, is that the curricula are usually two or three years behind. When it comes to commercial culture, your average college or university can take you only so far. Kirby From jason.cunliffe at verizon.net Fri Dec 19 10:32:46 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Fri Dec 19 10:32:40 2003 Subject: [Edu-sig] re: Python Programming: An Introduction toComputerScience References: Message-ID: <001701c3c645$5b036ca0$6501a8c0@vaio> > I think VB is becoming less useful. MSFT is trying its best to bring along > a generation of VB programmers, but if you're just starting out, might as > well use C# against the .NET framework. It likely has a brighter future. > Or Java. Yes. Annecdotes.. A longtime VB business [forms/database] programmer I met recently is very wary about VB.NET and everyone he speaks with now [including me] recommends Python. He said that he felt Microsoft has been very misleading with their langauge naming. By his account VB.NET is not the old VB6. I only dabbled in VB6 about 5 years ago cause I wanted to use some ActiveX components in a Director Lingo project. Drop in Super Calendar Widgets and IPWorks! Very cool - both packages saved me tons of time for proof-of-concept. I honestly did not have the skills to create those even if I had the time.. And when I found the http://www.vbxtras.com/ site it was quite exciting. So I caught the 3rd party module bug, but disturbed by the deeper proprietary inderpinnings of MS and MM I searched around for open cross-plaform replacement system and found Python. Happy day :-) - Jason From jeff at elkner.net Fri Dec 19 12:57:14 2003 From: jeff at elkner.net (Jeffrey Elkner) Date: Sat Dec 20 03:02:37 2003 Subject: [Edu-sig] re: Python Programming: An Introduction toComputerScience In-Reply-To: References: Message-ID: <1071856633.5129.247.camel@mdeicaza> I'm afraid one of the almost certain results of any wide spread adoption of Python in schools is that Python will be poorly taught as well :-( I would know we had "arrived" when there is a Shelly Cashman book on Python, and I would pitty the poor students who had to suffer through using it. To change that we would need to change the way curriculum is developed and implemented, a worthy, but much more radical goal. I believe using free, community oriented tools like Python goes a long way toward helping in that cause, but it is only part of it. On Thu, 2003-12-18 at 23:00, Dethe Elza wrote: > It's interesting that VB is so poorly taught, and I'm very glad that > Python is taught well, but I wouldn't rule out Python for business > users. > > --Dethe -- Jeffrey Elkner Open Book Project From ajsiegel at optonline.net Sat Dec 20 09:17:31 2003 From: ajsiegel at optonline.net (Arthur) Date: Sat Dec 20 09:17:36 2003 Subject: [Edu-sig] Python, Povray anhd the Universe Message-ID: <0HQ700JZF6D67F@mta2.srv.hcvlny.cv.net> Got to love Mark Shuttleworth: The South African entrepreneur and space explorer: """ He was a member of the crew of Soyuz TM-34, launched from Baikonur in Kazakhstan and docked with the International Space Station two days later. """ His foundation helps finance Python education related projects: http://www.markshuttleworth.com/bounty.html All well-known, I think, within the Python community at this point. But... Every few months I check into www.povray.org for a look see as to what is happening in the Povray world. On a whim, did so this morning, Might have otherwise passed over this, had I not began to understand who Shuttleworth is. See: "POV-Ray at the International Space Station" http://www.povray.org/news/index.php#79 This "Reach for the Stars" rendering: http://www.povray.org/posters/ was not designed by Shuttleworth, but was rendered by him while in orbit. Those of us who are fans of Python and povray and opensource technology and education and the intersection of all these things have to be intrigued by this guys focus. Art From urnerk at qwest.net Sat Dec 20 11:12:06 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 20 12:12:09 2003 Subject: [Edu-sig] Python, Povray anhd the Universe In-Reply-To: <0HQ700JZF6D67F@mta2.srv.hcvlny.cv.net> Message-ID: > Got to love Mark Shuttleworth: > Yep. Great connect-the-dots Arthur. Thanks for making my day (which has just started -- great that it's already made). Kirby From jason.cunliffe at verizon.net Sat Dec 20 14:23:34 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sat Dec 20 14:24:16 2003 Subject: [Edu-sig] open net sci gov mil biz edu art Message-ID: <003a01c3c72e$c3b13720$6501a8c0@vaio> Following the recent VB thread a little more.. It would seem that in science and Internet applications especially, open source is the dominant model. >From web servers to distributed biotech Genome libraries, open source and Linux are becoming the natural best choice. In showbiz, Linux is also hard at work, witness big budget special effects rendering farms etc. [LOTR et alia]. Similar in many ways to Gnome collaborative data mining and visualization. Both of these domains marry needs of rapid interoperability with often proprietary cutting edge software development. FX houses may be using open toolkits, but they guard their competitive edge and secrets closely. As do the Biotech programmers. There is hot symbiosis where openSource academia distances itself from often closed business. An article in latest Biotech World magazine is an interview with Zachary Zimmerman a geneticist at Princeton: http://www.bioitworld.com/ http://www.bio-itworld.com/archive/121503/horizons_language.html -Learning the Language of Systems Biology- "...We have always been writing our own software. The vendors have always been lagging behind what we see as state of the art. Where we do use commercial software, we have already worked out the algorithms and have something that works, then for various reasons some vendor is motivated to run faster, run on more platforms, etc. The axon scanner is good example: GenePix is much improved and better engineered version of something that Mike Eisen wrote in our lab. So the vendors make their money not from us but the pharmas [pharmaceutical companies]. To a large extent, their systems are weakened by being closed, not open-source, and unnecessarily restrictive in access and by being expensive. As a result, if you have the kind of tools for writing your own software, [that is] the disincentive to pay a lot of money so one of your guys can work on one terminal, on the kind of computer your don't really like to support. So if you have bright students, who in a few days can work up something pretty robust is C or Java, why would you use those (expensive commercial) things? So we don't. Most state-of-the-art places don't use the commercial stuff. It's also the same reason we made our own microarrays -- because we do better for less, and the really good stuff we just couldn't afford"... It seems in the US, regular business, Government and K-12 education are still the weighty slow holdouts for MSwindows and often legacy VB use. Science, Art, Internet and higher ed have all moved to open platforms and [python friendly] programming. I wonder what the tools/platform US military mainly uses now, and what their information architecture plans are? [oops! Alt+Ctrl+Del the invasion] Since Governments in Asia are now leading the Linux shift, higher and lower ed will presumably soon be in sync, and many business will soon be well motivated to follow. Good days ahead for Python programmers [and similar] globally in schools at all ages, and the general workplace. - Jason From arkamir at softhome.net Fri Dec 19 13:26:14 2003 From: arkamir at softhome.net (arkamir@softhome.net) Date: Sat Dec 20 14:26:21 2003 Subject: [Edu-sig] Re: Edu-sig Digest, Vol 5, Issue 21 In-Reply-To: References: Message-ID: What is CS1??? From missive at hotmail.com Fri Dec 19 22:04:55 2003 From: missive at hotmail.com (Lee Harr) Date: Sat Dec 20 15:08:17 2003 Subject: [Edu-sig] re: Python Programming: An Introduction to ComputerScience Message-ID: >I still think it'd be better to do some simple cgi programming with Python, >against some database. Basically, I'm thinking LAMP deserves more airplay. >But WAMP is another option (Windows, Apache, MySQL, Python/Perl/PHP). > I think Zope is a good way to go. Written (mostly) in python. Scriptable in python either right from the web interface, or on the filesystem. Very powerful. Zope also has great support for relational databases, and the added bonus of being built on top of an object database. _________________________________________________________________ The new MSN 8: smart spam protection and 2 months FREE* http://join.msn.com/?page=features/junkmail From urnerk at qwest.net Sat Dec 20 16:42:23 2003 From: urnerk at qwest.net (Kirby Urner) Date: Sat Dec 20 16:42:21 2003 Subject: [Edu-sig] Re: Edu-sig Digest, Vol 5, Issue 21 In-Reply-To: Message-ID: > What is CS1??? > Computer Science 1 -- any introduction to computer science course. They're not all the same of course, but we're just using it as shorthand for a general class, mostly (not any one particular instance). Kirby From jason.cunliffe at verizon.net Sun Dec 21 02:40:26 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sun Dec 21 05:50:56 2003 Subject: [Edu-sig] NLII 2004 Annual Meeting Message-ID: <000b01c3c795$b3bd7ba0$6501a8c0@vaio> http://www.educause.edu/nlii/meetings/nlii041/ From jason.cunliffe at verizon.net Sun Dec 21 02:37:19 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sun Dec 21 06:03:29 2003 Subject: [Edu-sig] MERLOT Message-ID: <000501c3c795$4408fc80$6501a8c0@vaio> http://www.merlot.org/artifact/BrowseArtifacts.po?catcode=124&browsecat=124&sort=rating From jason.cunliffe at verizon.net Sun Dec 21 02:47:11 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sun Dec 21 06:41:38 2003 Subject: [Edu-sig] The Center For Distance Learning Research Message-ID: <001101c3c796$a4d2b500$6501a8c0@vaio> http://www.cdlr.tamu.edu/education/grants.asp From ajsiegel at optonline.net Sun Dec 21 08:13:12 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 21 08:13:15 2003 Subject: [Edu-sig] re: NLII 2004 Annual Meeting Message-ID: <0HQ800HSBY20KY@mta2.srv.hcvlny.cv.net> Jason points to: http://www.educause.edu/nlii/ In a minute's perusal, I know I am in an enemy camp. And every additional minute confirms my first impression. Everything is boosterism. Nothing, a critical analysis. As a for example, link form the home page: Key Documents>> NLII May Focus Session Meeting Notes """ The NLII held a focus session in Vancouver on May 31, 2002, co-sponsored by WebCT, Industry Canada, and University of British Columbia. """ http://www.webct.com/ """ WebCT is the world's leading provider of integrated e-learning systems for higher education. """ I am guessing that the focus session was enthusiastic about integrated e-learning systems for higher education. I'm a seer. And: http://www.educause.edu/nlii/keythemes/partnering.asp "Partnering In The Learning Marketspace" """ Partnering in the learning marketspace was a key NLII theme for 2000-2002 and continues to be an NLII focus because it provides new opportunities to reconfigure the way that instruction is funded, developed, marketed, delivered, and supported. We continue to examine alternatives and issues involved for inter-institutional partnering and for partnering with commercial service providers to develop and implement highly leveraged strategies for e-learning-the use of Internet technologies in teaching and learning in higher education. """ It is predictable then that NLII's head is a former University administrator, not an instructor or technologist. Not too different than talking about the economics of Big Ten football. There is lots of feeding at the trough going on. And as long as result is *economically* mutually beneficial to the University and the "service provider", the issue, for all intensive purposes, is at rest. So it is not at all surprising we get to: http://www.educause.edu/ir/library/pdf/erm0340.pdf Next Generation Educational Technology versus the Lecture """ The idea briefly stated is that large lecture courses may someday be replaced by the kind of immersive digital environments that have been popularized by the videogame industry. """ Indeed they might. This is no more or less, to me, than the internet bubble mentality alive in academia. My counter-organization would be the Center for Appropriate Use of Technology in Education. CAUTE. If you catch my drift. Art From nico at tekNico.net Sun Dec 21 09:41:56 2003 From: nico at tekNico.net (Nicola Larosa) Date: Sun Dec 21 10:32:47 2003 Subject: [Edu-sig] re: NLII 2004 Annual Meeting In-Reply-To: <0HQ800HSBY20KY@mta2.srv.hcvlny.cv.net> References: <0HQ800HSBY20KY@mta2.srv.hcvlny.cv.net> Message-ID: <3FE5B134.8080001@tekNico.net> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > My counter-organization would be the Center for Appropriate Use of > Technology in Education. CAUTE. Interesting in this vein is the work being done by Steve Talbott with NetFuture and other organizations: http://www.netfuture.org/ - From that page: "The Nature Institute, publisher of NetFuture. We are a non-profit research organization pursuing a qualitative science that is contextual and holistic in spirit, and ethically informed in immediate practice rather than in afterthought." And, more in-topic: "Alliance for Childhood, a movement to protect the very idea of childhood as a time of special vulnerability, deserving of protection by caring, responsible adults." - -- Nicola Larosa - nico@tekNico.net "Like music and mathematical equations, computer language is just that, language, and it communicates information either to a computer or to those who can read it. ... For the purposes of First Amendment analysis, this court finds that source code is speech." -- Judge Marilyn Hall Patel -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.3 (GNU/Linux) iD8DBQE/5bEzXv0hgDImBm4RApbMAKDC9fSeGa8JU0Isyjjhn7fwQAUY4wCdGhe8 Z+GscPLxtqWfApgb0B3qDSA= =ua7j -----END PGP SIGNATURE----- From jason.cunliffe at verizon.net Sun Dec 21 11:25:22 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sun Dec 21 11:26:57 2003 Subject: [Edu-sig] re: NLII 2004 Annual Meeting References: <0HQ800HSBY20KY@mta2.srv.hcvlny.cv.net> Message-ID: <003401c3c7df$09228ec0$6501a8c0@vaio> Our [brave embedded reporter] Arthur wrote: > In a minute's perusal, I know I am in an enemy camp. ...snip... > This is no more or less, to me, than the internet bubble mentality alive in > academia. > > My counter-organization would be the Center for Appropriate Use of > Technology in Education. CAUTE. Yes thanks for diving in there..and the quick front-line report Fascinating and scary. Shades of a large well-intentioned grant-attractor cult. Bits and pieces that I skimmed resonate at moments but then many appalled me. Hard to put my finger on why. Is it just mantric grant-speak of learning learning learning prose that threatens to go out of control? Too many words too few good examples? Lack of lucid design philosophy? Imbalance of Admin vs. hands-on-ness? "Learning Objects" in itself is good idea, one which I've been working towards myself without any knowledge of the phrase or NLII influence.. --------- As practice and understanding evolve, a number of different definitions have emerged for learning objects (see Resources below for a few examples). The NLII Learning Objects work group uses David Wiley's definition: Learning Object: Any digital resource that can be reused to support learning. Learning objects are digital resources, modular in nature, that are used to support learning. They include, but are not limited to, simulations, electronic calculators, animations, tutorials, text entries, Web sites, bibliographies, audio and video clips, quizzes, photographs, illustrations, diagrams, graphs, maps, charts, and assessments. They vary in size, scope, and level of granularity ranging from a small chunk of instruction to a series of resources combined to provide a more complex learning experience. Learning objects are an emerging NLII theme because their use has the potential "to provide learning customized for each specific learner at a specific time, taking into account, their learning styles, experience, knowledge and learning goals" (Schatz, 2000). In addition, learning objects may "offer great value in terms of saving time and money in course development, increasing the reusability of content, enhancing students' learning environment, sharing knowledge within and across disciplines, and engaging faculty in a dynamic community of practice" (Metros, 2001). --------- ..eek Learning Objects = OK But there is almost nothing here about students or their actual experience, process, perspective, input, happiness success, results etc. It seems to be more about management and budgets. I'd hate to be misreading all this without doing my homework properly. I am far outside of the formal school system so I'd welcome further analysis and comments CAUTE [Center for Appropriate Use of Technology in Education] is good idea happy solstice wishes to you all - Jason From tjd at sfu.ca Sun Dec 21 15:16:09 2003 From: tjd at sfu.ca (Toby Donaldson) Date: Sun Dec 21 15:16:23 2003 Subject: [Edu-sig] re: NLII 2004 Annual Meeting In-Reply-To: Message-ID: <000401c3c7ff$48eff860$a47074ce@bigduck> > But there is almost nothing here about students or their actual > experience, process, perspective, input, happiness success, results etc. > It seems to be more about management and budgets. > > I'd hate to be misreading all this without doing my homework properly. > I am far outside of the formal school system so I'd welcome further > analysis and comments For the last 5 years, I've been in an environment where the sort of mentality that you describe dominated. It was indeed mostly about project management, planning, and budgets (which is true of all large projects, in some sense), although there is certainly a strong rhetoric of "learner centered" teaching. There was a lot of evangelism, a lot of people shouting (so to speak) "praise the lord" whenever eLearning was mentioned. > Learning Object: Any digital resource that can be reused to support > learning. Maybe "learning objects" are a good idea, but this definition is worthless. The letter "e" is a digital resource that can be reused to support learning, and so is Internet Explorer, Google, Yahoo!, and my mother's friend's blog on weaving. From what I've read, the eLearning people who promote this stuff seem pretty much to have taken it because, in programming, "object" = "good". (Cynics might say that the only reason learning objects are popular in academia is that 1) at least a couple of years ago, it attracts large grants where the outcomes are as vague as the above-definition; and 2) it doesn't involve people. 2) is a bit scary once you realize that the push for eLearning in universities a couple of years ago was almost an entirely top-down initiative: administrators looking for a cost-effective way to teach more students. Compared to learning objects --- which never complain, don't need offices or benefits packages --- people look mighty expensive.) But I grant that there is something to the *idea* of learning objectives, even though the definitions are foolish. I see a much bigger problem: the learning object camp have no clue about how to actually re-use learning objects. They confuse *storing* with *reusing*. The problem I've had in using learning objects is that they are often too much work to *configure* for my particular usage. How do I *split* a learning object, e.g. what if I just want half of a learning object? Or what if I want to remove mention of one concept because it's inaccurate (e.g. imagine an animation that talks about 500Mhz as being the fastest available computers)? What if I want to fix an error, or change a font to match my other presentations, or add footnotes? Know one can be sure ahead of time what part of learning object they may want (or need) to change. Ultimately, I remain unconvinced that education is that much different than any other content management problem. I suspect that most teachers would be better off buying good weblog software as opposed to WebCT, or its ilk. Toby -- Dr. Toby Donaldson Assistant Professor School of Interactive Arts and Technology Simon Fraser University From ajsiegel at optonline.net Sun Dec 21 16:29:50 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 21 16:29:52 2003 Subject: [Edu-sig] re: NLII 2004 Annual Meeting Message-ID: <0HQ900FARL1CV0@mta9.srv.hcvlny.cv.net> Tony writes - >I suspect that most teachers would be better off buying good weblog >software as opposed to WebCT, or its ilk. I'm suspecting that good weblog software can be bought for $0. A budget buster, sure enough ;) Art From ajsiegel at optonline.net Sun Dec 21 19:28:00 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 21 19:28:02 2003 Subject: [Edu-sig] re: NLII 2004 Annual Meeting Message-ID: <0HQ900M3CTANEU@mta4.srv.hcvlny.cv.net> Nicola writes: >Interesting in this vein is the work being done by Steve Talbott with >NetFuture and other organizations: >http://www.netfuture.org/ Some more connect-the-dots: """ NetFuture is a freely distributed newsletter dealing with technology and human responsibility. It is published by The Nature Institute, 169 Route 21C, Ghent NY 12075 (tel: 518-672-0116). """ Ghent NY rang a bell. Search revels that it is the home of the Rudolf Steiner Library. Steiner is the founder of Anthroposophical movement, which provides the philosophical underpinnings of the Waldorf education movement, which I referenced earlier in these discussions. Because of their strong stance in regard to the use of computers in early childhood education. And it is pretty well clear to me that The Nature Institute, which publishes NetFuture, is either Waldorf related or Waldorf influenced. See: http://www.netfuture.org/ni/ """ Our Fall, 2003 program - three lectures and a workshop: on a human-centered understanding of illness, a Goethean understanding of science, and a nature-centered understanding of language. """ And refer back to my cite in the Education Arcade thread: """ The Waldorf School movement, with which I have no affiliation or particular interest, has an aggressive perspective on this kind of thing. http://hem.passagen.se/thebee/waldorf/links2.htm """ And you will there see prominent mention of Goetheanism. I don't know what Goetheanism is. I make this clear and direct link between netfuture.org and the Waldorfian movement only as a point of information I spy. Art From ajsiegel at optonline.net Sun Dec 21 20:36:24 2003 From: ajsiegel at optonline.net (Arthur) Date: Sun Dec 21 20:36:27 2003 Subject: [Edu-sig] re: NLII 2004 Annual Meeting Message-ID: <0HQ900G62WGR6I@mta1.srv.hcvlny.cv.net> Its all too good actually: A closer look at my original cite: http://hem.passagen.se/thebee/waldorf/links2.htm does list The Nature Institute as an affiliated entity to the Rudolf Steiner folks, Go to The Nature Institute site http://www.natureinstitute.org/ And find: """ This site comes to you through the extraordinary generosity of O'Reilly & Associates, book publishers. """ Click through to O'Reilly (it's a link on the Nature Institute site) and we are back in Python territory. >From the 19th century mystic, Steiner, right back to home territory in three clicks. And around the world, once - as well. Simply too good. Art From jason.cunliffe at verizon.net Sun Dec 21 20:57:04 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Sun Dec 21 20:59:03 2003 Subject: [Edu-sig] re: NLII 2004 Annual Meeting References: <000401c3c7ff$48eff860$a47074ce@bigduck> Message-ID: <001d01c3c82e$e6878dc0$6501a8c0@vaio> Toby > But I grant that there is something to the *idea* of learning > objectives, even though the definitions are foolish. I see a much bigger > problem: the learning object camp have no clue about how to actually > re-use learning objects. They confuse *storing* with *reusing*. Yes thanks much for your comments. That's really good point.. > The problem I've had in using learning objects is that they are often > too much work to *configure* for my particular usage. How do I *split* a > learning object, e.g. what if I just want half of a learning object? Or > what if I want to remove mention of one concept because it's inaccurate > (e.g. imagine an animation that talks about 500Mhz as being the fastest > available computers)? What if I want to fix an error, or change a font > to match my other presentations, or add footnotes? Know one can be sure > ahead of time what part of learning object they may want (or need) to > change. Excellent. Browsing quickly over this NLII and Learning Objects depressed and freaked me out a bit. So against the grain of my own intuition and thinking about the potential of resources, or implicit notions of use/reuse/newuse. And how to design and develop intelligently for that. Not just piling stuff up based on static labels laden with dated topdown assumptions. I believe useful tools and system architectures should be based on fundamental communications behavior. Two-way sharing with live metadata from dual of systemic [overview] and subjective [personal] perspectives. This to be coupled with view/use dialog. Using of any resource creates a local metadata record, as well as a contributing remote record stream/buffer. Implicit bi-directional symmetric feedback which facilitates explicit associative private and shared editing of context and conditions. Sorry that's rather a mouthful of buzzwords.. still working out how to describe this well. Zope good for the backend, Leo for code management and more. http://zope.org http://webpages.charter.net/edreamleo/front.html - Jason From excgv at el-nacional.com Sun Dec 28 00:18:15 2003 From: excgv at el-nacional.com (Conrad Olson) Date: Sun Dec 28 00:23:37 2003 Subject: [Edu-sig] Re: AWYOSYPD, they say there Message-ID: bellhop willowy gimbel until defecate medusa croon anonymity belvedere knockout collegial appointee objectivity glory curvature civic franca postgraduate ail decertify -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20031228/c2ff0768/attachment.html From vwbxi at hongkong.com Mon Dec 29 15:48:09 2003 From: vwbxi at hongkong.com (Maribel) Date: Mon Dec 29 15:57:09 2003 Subject: [Edu-sig] Re: APU, and at once Message-ID: ohio hearty pergamon slugging obstetric between conakry offprint mechanism sorcery textural thurman conversion circa crux cinquefoil -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.python.org/pipermail/edu-sig/attachments/20031230/d99cb767/attachment.html From raul_c at aol.com Mon Dec 29 21:39:08 2003 From: raul_c at aol.com (Violet Barrow) Date: Mon Dec 29 20:39:02 2003 Subject: [Edu-sig] edu-sig@python.org, cialis Message-ID: %Med + lots of other medications http://Dr7o.rroot5.com/v95/index.php?id=v95 From jasonic at nomadics.org Tue Dec 30 01:00:40 2003 From: jasonic at nomadics.org (Jason Cunliffe) Date: Tue Dec 30 01:00:39 2003 Subject: [Edu-sig] interactive code example Message-ID: <000501c3ce9a$418ab280$6601a8c0@inspiron> A nice little example of code with interactive explanations. Actionscript in flash, but same technique coudl be ysed for Python etc. http://www.jurjans.lv/flash/shape.html - Jason From jason.cunliffe at verizon.net Tue Dec 30 03:10:32 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Tue Dec 30 03:12:28 2003 Subject: [Edu-sig] SCORM Message-ID: <000501c3ceac$65caeb80$6501a8c0@vaio> http://www.rhassociates.com/scorm.htm "This is an overview of the Sharable Courseware Object Reference Model. It's hard to make technical standards understandable (much less interesting). Nonetheless, here's the cliff notes version of what you need to know about SCORM. SCORM is a suite of technical standards that enable web-based learning systems to find, import, share, reuse, and export learning content in a standardized way. (See ADL Background for how SCORM came to be.) Note that SCORM is written primarily for vendors and toolmakers who build Learning Management Systems and learning content authoring tools so they know what they need to do to their products to conform with SCORM technically. A "Designer's Guide" for implementing SCORM is in the works. Stay tuned." From jason.cunliffe at verizon.net Tue Dec 30 15:15:22 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Tue Dec 30 15:18:00 2003 Subject: [Edu-sig] interactive code example References: <000501c3ce9a$418ab280$6601a8c0@inspiron> Message-ID: <002d01c3cf11$a7b115a0$6501a8c0@vaio> > http://www.jurjans.lv/flash/shape.html hmm.. just in case it is not obvious, this is what I wanted to bring to your attention... - Click on 'tutorials' - Then roll the mouse over the code sections - Right hand pane changes to illustrate geometrically what the code is doing or solving. - The main "with" phrase pop-up includes a small sublink "it can be calculated" in red type. - Rollover over that to see an additional illustration. I think there is a good idea here, but the implementation is crude/minimal... Problems: -The type is far too small, and needs intuitive zoom method to fix that. - How to print ? ..what a shame :-( Both of these can be easily addressed in Flash, especially now since the latest version handles mousewheel events. [Great for scrolling and zooming.] Printing is just a little more work for the developer, but Flash offers good control of print. However Without implementing it at all, if you try to print this page now from your web browser you'll get a disappointing blank where the swf file is embedded. Wishlist: I'd like to see 2-way interactivity, where the geometric illustrations are active so one can select parts of them ala Geometer. Where relevant grabbing the parts of the drawing could feedback dynamically to highlight the code and/or description. A technique used in the famous Edu-TV series "The Mechanical Universe" explaining off Kepler's equations and Newton's Laws of Motion For me this flash example hints at a healthy bridge between Mathematica Notebooks, and interactive visual Python type programming. One wants the ability and encouragement to dive in hands-on and explore code and results "live", but also to have a teacher/programmers metaview - an durable explanation which marries the back-of-napkin sketch algorthmic thinking with the reality of working code. One difficulty for learning programming is that key sections of code are very powerful and important - the core algorithms but you can't easily see or discuss them until the whole program is often constructed. Here then is a way to provide that overview while exploring sections. I can imagine a cool tagging system to facilitate authoring meta data illustrations. Authors could tag sections of their code with some minimal dictionary pair [id, name]. Then a subsequent authoring/presentation tool could be used to add more complete metadata, descriptions, illustrations etc. Leo provides one good structure for this. http://webpages.charter.net/edreamleo/front.html Leo helps one break up code to suit context and readability, without sacrificing formal language requirements. It's 100% XML-based so meta-anything is implicit. And Leo embraces many kinds of language, code, text, lists, links etc. Written in Python, it has an open plug-in architecture. Existing Python projects can be imported into Leo easily and then additional non-Python materials added. Finally one needs a dynamic presentation tool. Flash offers one obvious platform, but there others. Not sure where PythonCard fits into this dream. happy new year all - Jason From jason.cunliffe at verizon.net Tue Dec 30 15:22:36 2003 From: jason.cunliffe at verizon.net (Jason Cunliffe) Date: Tue Dec 30 15:25:30 2003 Subject: [Edu-sig] interactive code example References: <000501c3ce9a$418ab280$6601a8c0@inspiron> <002d01c3cf11$a7b115a0$6501a8c0@vaio> Message-ID: <004501c3cf12$aa388e60$6501a8c0@vaio> > if you try to > print this page now from your web browser you'll get a disappointing blank > where the swf file is embedded. oops.. My mistake. Just experimented with "Print Preview" The page can print, and even seems to capture the active selection. That's nice - but alas very distorted and could waste a *lot* of ink. :-( - Jason From jmillr at umich.edu Wed Dec 31 17:33:37 2003 From: jmillr at umich.edu (John Miller) Date: Wed Dec 31 17:33:43 2003 Subject: [Edu-sig] promoting computer literacy through programming python In-Reply-To: Message-ID: <604E5D38-3BE1-11D8-B381-00039303967A@umich.edu> Hi, and a Happy New Year to everyone. For the past year or so, I've been working on my doctoral dissertation in Educational Technology at the University of Michigan. I've finally finished (passed the oral exam on Dec. 17th) and I've posted it in .pdf format at: http://www-personal.umich.edu/~jmillr/miller_dissertation.pdf (1.25 MB) The reason I mention it here is that I decided to do a qualitative analysis of the messages posted to this newsgroup. Here is the topic that I was pursuing: What considerations are most important in teaching Python as a first programming language in a secondary school setting? I thought that the messages posted here would provide sufficient material to approximate a reasonable answer to the question. I'd like to stress the fact that I only considered a fraction of the total material; there was simply too much to include all the interesting and provocative ideas that have been addressed over the past four years. I also ignored all the personal interactions and focused instead on the ideas being presented. I'd also like to thank everyone who posted to this newsgroup with their insightful perspectives on the difficulties of promoting Python programming in educational settings. I have learned much from reading and analyzing these archives. I hope that this dissertation will prove useful to others who share these concerns. If anyone is inclined to take a look at it, but won't be able to read the entire 288 pages, I suggest that Chapter 4 might be the most interesting as it most directly deals with the messages and ideas of the newsgroup, along with Chapter 5 which provides the conclusions drawn from the results of the fourth chapter. Finally, here is the abstract of the dissertation: """ Computer programming contributes an essential aspect to a well-rounded computer literacy, analogous to the role of writing in the domain of traditional print literacy. Many computer languages are unwieldy for rapid prototyping; however, the open-source Python language was designed to be easy for beginners to learn and is appropriate as a first computer language. This dissertation explores what considerations are most important in teaching Python as a first programming language in a secondary school setting. The data examined was three years worth of messages publicly posted to the online Python edu-sig newsgroup. These messages were filtered to obtain only those that were contained in meaningful threads; that is, threads of mean length or longer containing a mean number or more of unique posters. The filtered threads were then categorized by a) subject header and b) phrases identified by an automated keyword algorithm, and further reduced by choosing categories most germane to this dissertation?s topic. The selected threads were then subjected to a qualitative content analysis. The data revealed numerous issues that teachers who may want to incorporate programming into their classroom may need to deal with, including, whether to establish a standalone programming class or integrate programming exercises with other subjects; the importance of establishing programming teams and involving the students? interests; how to present both procedural and object-oriented programming styles; differences in mathematical notation compared with traditional classes; encouraging a healthy programming aesthetic; and teaching algorithmic thinking. Three major conclusions were derived from the results: a) computer programming is a bona fide form of writing that combines well-formed arguments with good stories, and is central to a complete mastery of computer literacy; b) learning to program enables programming to learn; that is, the major purpose of learning computer programming in school settings is to develop the means of using programming to promote learning in other subject areas; and c) computer programming fosters a variety of executable notations that alters what is worth knowing in other subject areas. """ John Miller From urnerk at qwest.net Wed Dec 31 21:06:37 2003 From: urnerk at qwest.net (Kirby Urner) Date: Wed Dec 31 21:06:25 2003 Subject: [Edu-sig] promoting computer literacy through programming python In-Reply-To: <604E5D38-3BE1-11D8-B381-00039303967A@umich.edu> Message-ID: Hi John -- What a wonderful way to end the year! What a cool thing, to have edu-sig get the focus of a PhD dissertation -- one about the very subjects we're most focused on. I read the whole thing, and I like how we all come off -- a dedicated, thoughtful bunch (you fit right in). I hope you're planning to keep that link, or some link, alive for the foreseeable future. I'd like to point to it from the edu-sig page, pending your permission. Thank you again, for this valuable contribution. Kirby PS: I presume/hope your dissertation sparks a lot of new discussion. You've given us a valuable document to work from. And I hope it gains an audience out there beyond our ken.