From kirby.urner at gmail.com Mon Mar 1 06:17:55 2010 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 28 Feb 2010 21:17:55 -0800 Subject: [Edu-sig] Pilot testing the new AP CS definition In-Reply-To: References: <37fa1dfb1002280742h37f543f2iddda22d7965f9283@mail.gmail.com> Message-ID: Interesting thread. If CS manages to stop being a mere elective, that would change the dynamics. In Oregon, the push is to fold anything worthwhile in CS into math proper, as at least that counts towards a requirement (3 years of math), whereas CS is highly dispensable when the budge ax cuts (as it does so often -- the priority is replacing those helicopter engines, thanks to sandstorms, am I right?). If there's an activist CS community working to save this subject at the high school level, we should learn more from this thread. I'm pretty sure Singapore is positioned to beat the pants off of the USA in this area, but I could be wrong. Some states have a budget. Paying attention, Kirby On Sun, Feb 28, 2010 at 9:38 AM, Helene Martin wrote: > I'm a UW graduate teaching high school CS in the Seattle area. ?Larry > and I are trying to schedule a meeting this week to discuss how we can > collaborate. ?I teach a Python-based course called Creative Computing. > > Let me know if there are any messages you would like relayed in > person. ?I'll definitely let him know that there's active interest in > helping out in this community. > > If you're on here, hi Larry. =) > > H?l?ne. > http://garfieldcs.com > > On Sun, Feb 28, 2010 at 7:42 AM, Jeff Elkner wrote: >> Potentially important news for Python in education: >> >> http://computinged.wordpress.com/2010/02/27/pilot-testing-the-new-ap-cs-definition/ >> >> I wonder if Larry (http://www.cs.washington.edu/homes/snyder/) would >> like help in either developing or testing his new course? >> >> jeff elkner From kirby.urner at gmail.com Mon Mar 1 17:51:09 2010 From: kirby.urner at gmail.com (kirby urner) Date: Mon, 1 Mar 2010 08:51:09 -0800 Subject: [Edu-sig] Fwd: python for math In-Reply-To: References: <20100224193159.GA27703@seberino.org> <20100225153616.GD8409@seberino.org> <20100225233558.GA15792@seberino.org> <20100227063339.GA11321@seberino.org> <20100301155235.GA11369@seberino.org> Message-ID: I hope Mark (not his real name) joins us on edu-sig. As you will see below, I'm encouraging him to do so, at which point he might reveal his true identity. He teaches AP Calculus and has been experimenting with using Python to abet student understanding, with mixed results. Kirby ---------- Forwarded message ---------- From: kirby urner Date: Mon, Mar 1, 2010 at 8:47 AM Subject: Re: python for math To: mark Hi [ Mark ] -- I'm not proposing to replace traditional math notation with Python's, only to have a computer language expressing these same concepts without too much clutter. For example, you might implement a simple Polynomial type in just a few lines of code (pre-written) and have methods for objects of this type to (a) produce roots (b) multiply together (c) add together. You then have the ability to discuss polynomials as "objects" that add and multiply, like number types. Here's a clear essay about the approach: http://mathforum.org/kb/message.jspa?messageID=6992862&tstart=0 To put it simply: ?I favor introducing "dot notation" (common to many computer languages) as just another math notation. More: http://www.4dsolutions.net/presentations/p4t_notes.pdf I'm into spatial geometry a lot, as I think the bigger / sharper screens (beyond calculator screens) should have lots of Z-axis, i.e. the depth dimension needs to be there. Just transferring a lot of flat stuff, not going spatial, is too much of a psychological let down, given what students already know computers can do. I have a simple non-Euclidean geometry I like to get into (simple in the sense of easy definitions), but that doesn't preclude doing all the usual stuff, including with XYZ vectors (another type of math object, easily expressed in Python, and easily rendered to screen using VPython). FYI here's an interesting text book some of us are using: http://www.skylit.com/mathandpython.html This is not a full blown "math objects" approach. ?In fact, there's no real object oriented programming except on page 88-89 (2nd edition). ?For the most part, it's just using Python in place of a scientific calculator, in hopes of keeping up with the rest of the world, which is moving in the same direction. That's what I'd tell parents: ?in the real world, computers and computer programming (including in Mathematica) have far more currency than scientific calculators. ?Used wisely, computer technology, including with some programming, is likely to open more doors, give a better sense of more career options, provide a stronger orientation. Understanding more about computers and their connection to math is vital to a "how things work" approach, which emphasizes explanations of such basic topics as tabulation of data, these days accomplished with SQL. ?Some mention of SQL, even some use of it (sqlite?), is completely apropos in Computational Math, but maybe not in an AP calculus course. Thanks for conversing on this topic. ?I encourage you to join edu-sig, where lots of educators are pondering these very issues. ?We've had recent threads on Sage etc., and are currently discussing the interface between math and computer science, at the secondary school level especially. ?See the edu-sig page at Python.org for more info. http://www.python.org/community/sigs/current/edu-sig/ Kirby On Mon, Mar 1, 2010 at 7:52 AM, ? wrote: > On Sun, Feb 28, 2010 at 09:44:25PM -0800, kirby urner wrote: >> Keep in mind that a reading knowledge of a language is far easier >> to acquire than a "write from scratch on a blank canvas" mode. ?If >> the lesson plan involves eyeballing already written code, making >> minor tweaks, this is probably going to yield greater results and/or >> student satisfaction than sitting them down in front of a white screen >> and saying 'write something that integrates a polynomial'. > > You may be onto something here. ?Are you saying you'd prefer ALL math concepts > be introduced in Python code? ?That may have benefits. ?One potential way you > could defend that is that you can't be unambiguous in Python. ?You *can* with > classical math notation. ?For example, does sin^(-1)(x) mean the "reciprocal > of the sine function" or the "Arcsin (inverse) function"? > > There is a physics book that attempts to do > something similar with Scheme. ?It is called "Structure And Interpretation of > Classical Mechanics". > > > An innovative curriculum that introduces everything in Python code with objects > may speed learning. ?If parents ask "why better?", I can say it is unambiguous > compared to classical math notation. > > Thanks a 10^6. > > [ Mark ] > From kirby.urner at gmail.com Thu Mar 4 03:17:14 2010 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 3 Mar 2010 18:17:14 -0800 Subject: [Edu-sig] Fwd: [pinoy-python-users] Dreampie - a new graphical shell for Python In-Reply-To: References: Message-ID: Anyone here on edu-sig have experience with the product below (appended from user group traffic)? I've been away on math-teach duty, expostulating on tetrahedral mensuration again, the intersection with Python + VPython (or Python + POV-Ray) being polyhedra, vector objects etc. http://mathforum.org/kb/thread.jspa?threadID=2047973&tstart=15 I don't get coherent / articulate objections to these proposals, so it's not like I'm countering specific arguments. The National Council of Teachers of Mathematics seems to have come around. http://www.bfi.org/our_programs/bfi_community/synergetics/synergetics/nctm_embraces_synergetics math-thinking-l has gone back to sleep. This essay remains one of my strongest, re a type-based object-oriented approach to algebra (what the functional programmers will probably want to shoot down): http://mathforum.org/kb/message.jspa?messageID=6992862&tstart=0 Today's concern is how to counter the stereotype of Computational Math as purely sedentary. Doing mathematics and doing physically strenuous activities should not always been considered opposite ends of the spectrum. Kirby ---------- Forwarded message ---------- From: JM Maranan Date: Wed, Mar 3, 2010 at 6:00 PM Subject: [pinoy-python-users] Dreampie - a new graphical shell for Python To: Pinoy-Python-Users Just found out a new Python shell from the mailing list. Here is a feature in a breeze from the author himself I'm pleased to announce DreamPie 1.0 - a new graphical interactive Python shell! Some highlights: * Has whatever you would expect from a graphical Python shell - attribute completion, tooltips which show how to call functions, highlighting of matching parentheses, etc. * Fixes a lot of IDLE nuisances - in DreamPie interrupt always works, history recall and completion works as expected, etc. * Results are saved in the Result History. * Long output is automatically folded so you can focus on what's important. * Jython and IronPython support makes DreamPie a great tool for exploring Java and .NET classes. * You can copy any amount of code and immediately execute it, and you can also copy code you typed interactively into a new file, with the Copy Code Only command. No tabs are used! * Free software licensed under GPL version 3. Check it out at http://dreampie.sourceforge.net/ and tell me what you think! Have fun, Noam -- You received this message because you are subscribed to the Google Groups "Pinoy-Python-Users" group. To post to this group, send email to pinoy-python-users at googlegroups.com. To unsubscribe from this group, send email to pinoy-python-users+unsubscribe at googlegroups.com. For more options, visit this group at http://groups.google.com/group/pinoy-python-users?hl=en. From missive at hotmail.com Mon Mar 8 04:01:02 2010 From: missive at hotmail.com (Lee Harr) Date: Mon, 8 Mar 2010 07:31:02 +0430 Subject: [Edu-sig] [ANNC] pynguin-0.2 (python turtle graphics application) Message-ID: Pynguin is a python-based turtle graphics application. ??? It combines an editor, interactive interpreter, and ??? graphics display area. It is meant to be an easy environment for introducing ??? some programming concepts to beginning programmers. http://pynguin.googlecode.com/ This release continues adding basic functionality and ??? corrects some annoyances. If you are interested, ??? please take a look and let me know what you think. Pynguin is tested with Python 2.6.4 and uses PyQt (4.6) ??? for its GUI elements. Pynguin is released under GPLv3. Changes in pynguin-0.2: ??? - added fill mode ??? - added basic auto-indent in editor ??? - added quick links to recent documents ??? - added quick links to example files ??? - even out speeds when drawing short line segments ??? - added animated circle drawing ??? - now exports entire drawing, even if not visible on screen ??? - fixed initial drawing speed to match menu ??? - fixed-width fonts in editor and interactive interpreter ??? - added classic turtle image ??? - file browser now starts in user's home directory ??? - removed scrollbars on graphic view ??? - now extends lines when animating _________________________________________________________________ Hotmail: Trusted email with Microsoft?s powerful SPAM protection. https://signup.live.com/signup.aspx?id=60969 From da.ajoy at gmail.com Tue Mar 9 20:11:40 2010 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Tue, 09 Mar 2010 14:11:40 -0500 Subject: [Edu-sig] TurtleArt, Etoys, Scratch, GameMaker Message-ID: Comparison between TurtleArt, Etoys, Scratch, and GameMaker, on how they represent basic math concepts: * Negative Numbers (the number line) * Equality * Assignment * Binary arithmetic operator, addition * Decimal Numbers http://tonyforster.blogspot.com/2010/03/programming-and-mathematics.html From jjposner at optimum.net Wed Mar 10 15:45:38 2010 From: jjposner at optimum.net (John Posner) Date: Wed, 10 Mar 2010 09:45:38 -0500 Subject: [Edu-sig] Method / Functions - What are the differences? In-Reply-To: <4b911ee0$0$4988$607ed4bc@cv.net> References: <4b8c2a34$0$10470$426a74cc@news.free.fr> <4b8cd310$0$4604$426a34cc@news.free.fr> <4b8e4041$0$17447$426a34cc@news.free.fr> <4b8e9660$0$21812$426a34cc@news.free.fr> <4B8EF717.3070701@optimum.net> <4b902338$0$31260$607ed4bc@cv.net> <4b90f5eb$0$9148$426a74cc@news.free.fr> <4b911ee0$0$4988$607ed4bc@cv.net> Message-ID: <4B97B092.4060901@optimum.net> [ cross-posting to edu-sig ] Bruno (and anyone else interested) -- As I promised/threatened, here's the *start* of a write-up on properties, aimed at non-advanced Python programmers: http://www.jjposner.net/media/python-properties-0310.pdf I'm interested in corrections, of course. But I'm also interested in opinions as to whether this somewhat lengthy treatment is worth the effort -- does it improve on existing write-ups? Tx, John From echerlin at gmail.com Wed Mar 10 16:31:35 2010 From: echerlin at gmail.com (Edward Cherlin) Date: Wed, 10 Mar 2010 10:31:35 -0500 Subject: [Edu-sig] Method / Functions - What are the differences? In-Reply-To: <4B97B092.4060901@optimum.net> References: <4b8e9660$0$21812$426a34cc@news.free.fr> <4B8EF717.3070701@optimum.net> <4b902338$0$31260$607ed4bc@cv.net> <4b90f5eb$0$9148$426a74cc@news.free.fr> <4b911ee0$0$4988$607ed4bc@cv.net> <4B97B092.4060901@optimum.net> Message-ID: On Wed, Mar 10, 2010 at 09:45, John Posner wrote: > [ cross-posting to edu-sig ] > > Bruno (and anyone else interested) -- > > As I promised/threatened, here's the *start* of a write-up on properties, > aimed at non-advanced Python programmers: > > ?http://www.jjposner.net/media/python-properties-0310.pdf > > I'm interested in corrections, of course. But I'm also interested in > opinions as to whether this somewhat lengthy treatment is worth the effort > -- does it improve on existing write-ups? I find that it will explain things to those who already understand most of the concepts. However, I felt as though I were being led through a maze without knowing where we were headed. This suggests that the concepts can be re-ordered in a manner that will help your readers more, and then we can refactor further. (Yes, you can apply Extreme Programming concepts to create Extreme Documentation, including consultations with users, pair or group writing, frequent refactoring, and more, as at FLOSSManuals.net.) Who is your expected audience? > Tx, > John > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Edward Mokurai (??/???????????????/????????????? ?) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://www.earthtreasury.org/ From kirby.urner at gmail.com Thu Mar 11 01:12:06 2010 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 10 Mar 2010 16:12:06 -0800 Subject: [Edu-sig] TurtleArt, Etoys, Scratch, GameMaker In-Reply-To: References: Message-ID: On Tue, Mar 9, 2010 at 11:11 AM, Daniel Ajoy wrote: > Comparison between TurtleArt, Etoys, Scratch, and GameMaker, on how they represent basic math concepts: > > * Negative Numbers (the number line) > * Equality > * Assignment > * Binary arithmetic operator, addition > * Decimal Numbers > > http://tonyforster.blogspot.com/2010/03/programming-and-mathematics.html > Thanks for posting to edu-sig Daniel. We could use a lot more of this kind of literature. This guy in Austrailia is lightyears ahead of most bloggers I've read. I note MariaD has already posted her appreciative comments. That's Maria Droujkova, salonstress for our Elluminate session the other evening, twixt the functional programmers and a couple imperative types. http://mybizmo.blogspot.com/2010/02/learning-on-line.html ( Maria reminds me of Romany Marie, Queen of Greenwich Village: http://coffeeshopsnet.blogspot.com/2009/03/serving-buzz.html ) On the topic of turtles, I'm using them to draw plane-nets in this post: http://mathforum.org/kb/message.jspa?messageID=7007687&tstart=0 They also come forward as illustrative of the object (instance) versus type distinction, which is just a hair's breadth different from the old philosophical distinction between ideal forms and their temporal expression.** If you scan the above post to math-teach, you'll see this passage, especially apropos to threads here on edu-sig: """ > [b] Note that [2] is a discrete concept more or less, [3] is continuous MOL. > OK to play it this way. Length may be developed more discretely if we need to. The literal pixels and voxels are discrete. Digital computers, implementing these turtles, use discrete math. This was one of my beefs with calling it Discrete Math instead of Digital Math originally (talking about Track 2): they might keep us from working with polyhedra if we called it discrete, because polyhedra used to be considered "perfectly continuous solids". Giving them a purely digital treatment, on the other hand, such as by rendering them with a ray tracer (POV-Ray), would not bring us into conflict with those protecting Discrete Math from "alien" topics. Digital Math would embrace Polyhedra. As it turns out, you're able to get Polyhedra into discrete math via graph theory (polyhedra (as wireframes) are simply graphs). Litvins Math for the Digital Age has V + F == E + 2 in one section, though most of its graphs are planar, like plane-nets. In other words, my fears we're ill-founded and we'll be able to make do with a Discrete Math labeling for Track 2. YMMV. """ Autobio: For those of you just joining us, I'm a long-time activist on edu-sig with my own quirky agenda: 0. to advance more computer programming in the context of high school math learning especially (I used to be a high school math teacher, after working under Dr. Rorty on the Wittgenstein stuff (he coined the term "linguistic turn"), later at McGraw-Hill in computer literacy, more recently a trainer with Saturday Academy (saturdayacademy.org), attending that luncheon tomorrow @ Oregon Zoo (no kidding)); 1. to advance a streamlining approach to polyhedra based on what I sometimes call "tetrahedral mensuration" inheriting from the work of an American Transcendentalist philosopher some of you may have heard of, but thought he was an architect. To this end, I've been using Python + VPython, and Python + Povray especially. I've been a controversial figure in the Python community, consider myself lucky and privileged to be with PSF. Chairman Steve and I did some great work during Pycon 2009, however I missed Pycon 2010 entirely, needing to mind the fort in my zip code area (97214). My company, 4D Solutions, sponsors the Oregon Curriculum Network, which has championed Python for some decades. Check: http://www.4dsolutions.net/ocn/cp4e.html Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > ** Do I think the object oriented shoptalk "just happens" to sound philosophical by accident? Does anyone I wonder? On the contrary, isn't it obvious that OO was deeply embedded in ordinary language to begin with? We already think in terms of "things" with behaviors and attributes. We already think in terms of the generic dog or horse (as a concept), versus the individual manifestations of this animal, each in its own time and place. Since the so-called "linguistic turn" in philosophy, we're respectful of the "ordinary language" roots of anything -- a pretty radical change from the old days, when "meta-physicians" ruled the roost. ( I should reintroduce myself as some guy who studied Wittgenstein's stuff at Princeton. Gregor, our resident turtle-meister (Standard Library) has sent me some links about that, such as to pictures of the house Wittgenstein designed in Vienna, for his sister I think it was. Very austere and simple, not unlike his writing in some ways. ) From macquigg at ece.arizona.edu Sat Mar 13 01:42:42 2010 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Fri, 12 Mar 2010 17:42:42 -0700 Subject: [Edu-sig] PyKata ready Message-ID: <4B9ADF82.4030108@ece.arizona.edu> In the open-source spirit of "release early", PyKata is now ready!! The website development will be finished ... real soon :>) Anyone who would like to contribute an exercise is now welcome. If you contributed to the old PyWhip website, you might want to copy your contribution over to PyKata. (Sorry we couldn't do this with Google App Engine. Looks like they are rushing ahead with new features for end users, and leaving us developers with a few headaches - like not being able to rename a project, or even clone an old one to the new name!!) That said, I am very pleased with App Engine. This is the infrastructure we need when we get to thousands of users. I've uploaded a draft of a new help file - bitsNbytes.py (at http://pykata.appspot.com/help). This topic is not the most important right now (we should be filling in the basic topics first), but I'm working with a class in cryptography, and we do a lot of bit-level manipulations. What I would like is some comments and suggestions. The examples in this file will be what we expand on with exercises and more helpful text. Have I chosen the right examples? Do I have the best way to do it in each example? Unlike other areas where we often have a clear best choice, working with bits and bytes in Python seems to have a bewildering collection of ways to do it, and not a clear winner. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * From missive at hotmail.com Mon Mar 15 00:06:19 2010 From: missive at hotmail.com (Lee Harr) Date: Mon, 15 Mar 2010 03:36:19 +0430 Subject: [Edu-sig] [ANNC] pynguin-0.4 (python turtle graphics application) Message-ID: Pynguin is a python-based turtle graphics application. ??? It combines an editor, interactive interpreter, and ??? graphics display area. It is meant to be an easy environment for introducing ??? some programming concepts to beginning programmers. http://pynguin.googlecode.com/ This release continues adding basic functionality and ??? refining the interface. If you are interested, please ??? take a look and let me know what you think. Pynguin is tested with Python 2.6.4 and uses PyQt (4.6) ??? for its GUI elements. Pynguin is released under GPLv3. Changes in pynguin-0.4: ??? - improved document switcher ??? - added easy 'random' color access ??? - added new commands ??????? - onscreen ??????? - onclick ??????? - stamp ??????? - viewcoords ??? - winding fill now default ??????? - added method to switch between winding/oddeven fill ??? - show file name in window header ??? - more examples ??? - added default values for examples that take parameters ??? - fixed star example for even number of sides ??? - fixed crash when changing to alternate view image ??? - fixed problem running code with blank lines ??? - fixed problem with ctrl key getting stuck on ??? - added bug report option in Help menu ??? - allow keypad Enter same as Return ??? - factored in to multiple files Changes in pynguin-0.3: ??? - added new commands ??????? - goto ??????? - turnto ??????? - lineto ??????? - distance ??????? - toward ??????? - write ??? - added more examples ??? - fixed problem when changing speed while code is running ??? - editor auto-indent improvement _________________________________________________________________ Hotmail: Powerful Free email with security by Microsoft. https://signup.live.com/signup.aspx?id=60969 From andre at lessaworld.com Fri Mar 19 05:28:54 2010 From: andre at lessaworld.com (Andre Lessa) Date: Fri, 19 Mar 2010 00:28:54 -0400 Subject: [Edu-sig] "Computer Science For Kids" Book Announcement Message-ID: Hey Python Community, I just self published this brand new book and I'm making its PDF available for (free) download on my web site. My goal is to explain some very basic fundamentals of computer science to kids who are starting to learn about computers at school and/or at home. For the tiny hints of programming, I referenced Python. If you (or a kid you know) ends up having access to this book, please send your feedback (suggestions/corrections) directly to me so I can start thinking about the next edition and how I can make it even cooler for kids. Thanks! Andre Lessa You can download the entire book here (no registration required). "Computer Science For Kids" http://www.LessaWorld.com/kids/ From echerlin at gmail.com Sat Mar 20 00:11:15 2010 From: echerlin at gmail.com (Edward Cherlin) Date: Fri, 19 Mar 2010 19:11:15 -0400 Subject: [Edu-sig] "Computer Science For Kids" Book Announcement In-Reply-To: References: Message-ID: Not bad. There are things we can improve. For example, a variable is less like a nickname referring to one thing than a pronoun that can refer to different things each time it is used. I do not have time today for a complete review, but I would like to do it sometime soon, in part because I have a different approach to teaching nine-year-olds Computer Science, and because I am promoting the idea of replacing printed textbooks with computers (costing less) and free electronic learning materials. We don't have a good name for them, because they are based on software such as Turtle Art or Smalltalk, and are clearly neither texts nor books. On Fri, Mar 19, 2010 at 00:28, Andre Lessa wrote: > Hey Python Community, > > I just self published this brand new book and I'm making its PDF > available for (free) download on my web site. > > My goal is to explain some very basic fundamentals of computer science > to kids who are starting to learn about computers at school and/or at > home. For the tiny hints of programming, I referenced Python. If you > (or a kid you know) ends up having access to this book, please send > your feedback (suggestions/corrections) directly to me so I can start > thinking about the next edition and how I can make it even cooler for > kids. > > Thanks! > Andre Lessa > > You can download the entire book here (no registration required). > "Computer Science For Kids" > http://www.LessaWorld.com/kids/ > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Edward Mokurai (??/???????????????/????????????? ?) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://www.earthtreasury.org/ From john.graves at aut.ac.nz Sun Mar 21 02:31:56 2010 From: john.graves at aut.ac.nz (John Graves) Date: Sun, 21 Mar 2010 14:31:56 +1300 Subject: [Edu-sig] Voice-and-vision enabled open source educational software project in Python Message-ID: <4BA62DDD020000E900011F2D@smtpdom.aut.ac.nz> Progress on the Open Allure project http://openallureds.org has led to demonstrated capabilities relating to voice recognition http://www.youtube.com/watch?v=tfKTk6rgWsA (and, more broadly, "gesture" or touchless pointing at http://bit.ly/openallure ) which suggest the potential for this type of system to become a viable and successful platform for collaborative development of intelligent interactive tutors which talk, watch, listen and respond in pedagogically meaningful ways on a wide variety of topics. The code for Open Allure is open source Python and the current version taps into the pygame, nltk and BeautifulSoup libraries. Please take a look at the demonstration video(s) and consider, at least, sharing your ideas at http://www.allourideas.org/openallure If you'd like to be kept updated with developments on the project, please subscribe to the YouTube channel (above) or the Google discussion list at http://bit.ly/openalluregg Your insights and contributions will be much appreciated. John Graves john.graves at aut.ac.nz PhD Student Auckland University of Technology New Zealand From lognaturel at gmail.com Mon Mar 22 00:53:25 2010 From: lognaturel at gmail.com (Helene Martin) Date: Sun, 21 Mar 2010 16:53:25 -0700 Subject: [Edu-sig] PyKata ready In-Reply-To: <4B9ADF82.4030108@ece.arizona.edu> References: <4B9ADF82.4030108@ece.arizona.edu> Message-ID: This is very cool. Just want to make sure everyone is aware that the service formerly known as JavaBat is now CodingBat and supports Python: http://codingbat.com/ That being said, I think PyKata has several very compelling features. It might be worth seeing if Nick Parlante would consider collaboration of some sort? On Fri, Mar 12, 2010 at 4:42 PM, David MacQuigg wrote: > In the open-source spirit of "release early", PyKata is now ready!! ?The > website development will be finished ... real soon :>) ?Anyone who would > like to contribute an exercise is now welcome. ?If you contributed to the > old PyWhip website, you might want to copy your contribution over to PyKata. > ?(Sorry we couldn't do this with Google App Engine. ?Looks like they are > rushing ahead with new features for end users, and leaving us developers > with a few headaches - like not being able to rename a project, or even > clone an old one to the new name!!) ?That said, I am very pleased with App > Engine. ?This is the infrastructure we need when we get to thousands of > users. > > I've uploaded a draft of a new help file - bitsNbytes.py (at > http://pykata.appspot.com/help). ?This topic is not the most important right > now (we should be filling in the basic topics first), but I'm working with a > class in cryptography, and we do a lot of bit-level manipulations. ?What I > would like is some comments and suggestions. ?The examples in this file will > be what we expand on with exercises and more helpful text. ?Have I chosen > the right examples? ?Do I have the best way to do it in each example? > ?Unlike other areas where we often have a clear best choice, ?working with > bits and bytes in Python seems to have a bewildering collection of ways to > do it, and not a clear winner. > > -- Dave > > ************************************************************ ? ? * > * David MacQuigg, PhD ? ?email: macquigg at ece.arizona.edu ? * ?* > * Research Associate ? ? ? ? ? ? ? ?phone: USA 520-721-4583 ? * ?* ?* > * ECE Department, University of Arizona ? ? ? ? ? ? ? ? ? ? ? * ?* ?* > * ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 9320 East Mikelyn Lane ? ? ? * * * > * http://purl.net/macquigg ? ? ? ?Tucson, Arizona 85710 ? ? ? ? ?* > ************************************************************ ? ? * > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From punch at cse.msu.edu Tue Mar 23 15:29:07 2010 From: punch at cse.msu.edu (Bill Punch) Date: Tue, 23 Mar 2010 10:29:07 -0400 Subject: [Edu-sig] Python projects for CS1 Message-ID: <4BA8D033.4010905@cse.msu.edu> Given all the discussion about exercises, we though we'd throw in some of the work we've done. MSU has taught its CS1 course in Python since the Fall of 2007. Each semester we have the students complete 11 programming projects (as homework). The homeworks start out easy and work their way up. Each project focuses on a particular topic i.e., strings, working with files, dictionaries etc. We've collected those projects on a webpage. Each project has some supporting material and a solution. However, at the moment the solution is not shown. We are working on that. Some of the projects ended up in the book we recently published ("Practice of Computing Using Python", Punch, Enbody) but there are over 58 listed here (and more coming) so there is a lot more listed on the web page http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/index.php If you have any comments, we'd love to hear them. -- >>>bill<<< -------------- next part -------------- An HTML attachment was scrubbed... URL: From macquigg at ece.arizona.edu Tue Mar 23 16:17:38 2010 From: macquigg at ece.arizona.edu (David MacQuigg) Date: Tue, 23 Mar 2010 08:17:38 -0700 Subject: [Edu-sig] Python projects for CS1 In-Reply-To: <4BA8D033.4010905@cse.msu.edu> References: <4BA8D033.4010905@cse.msu.edu> Message-ID: <4BA8DB92.70309@ece.arizona.edu> Hello Bill, Your contributions of exercises for PyKata are welcome. At the moment, we are classifying exercises with simple keywords: (lists, strings, logic) etc. Later we plan to have the website customizable for teachers like yourself who have not just a few exercises, but an entire course optimized for a particular group of students. When a student visits pykata.org/~punch, they will see just the problems you have selected. Looks like we are getting good response to Andy's solicitation for a Google Summer of Code project finishing our website development. I'm confident we will have this website fully developed by the end of the summer. Our key advantage is open-source teamwork. That should provide us with plenty of content, covering every educational need from junior high to graduate classes in engineering. -- Dave ************************************************************ * * David MacQuigg, PhD email: macquigg at ece.arizona.edu * * * Research Associate phone: USA 520-721-4583 * * * * ECE Department, University of Arizona * * * * 9320 East Mikelyn Lane * * * * http://purl.net/macquigg Tucson, Arizona 85710 * ************************************************************ * Bill Punch wrote: > Given all the discussion about exercises, we though we'd throw in some > of the work we've done. MSU has taught its CS1 course in Python since > the Fall of 2007. Each semester we have the students complete 11 > programming projects (as homework). The homeworks start out easy and > work their way up. Each project focuses on a particular topic i.e., > strings, working with files, dictionaries etc. > > We've collected those projects on a webpage. Each project has some > supporting material and a solution. However, at the moment the > solution is not shown. We are working on that. > > Some of the projects ended up in the book we recently published > ("Practice of Computing Using Python", Punch, Enbody) but there are > over 58 listed here (and more coming) so there is a lot more listed on > the web page > > http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/index.php > > If you have any comments, we'd love to hear them. > -- > > > >>>bill<<< > > > ------------------------------------------------------------------------ > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From vceder at canterburyschool.org Tue Mar 23 18:00:48 2010 From: vceder at canterburyschool.org (Vern Ceder) Date: Tue, 23 Mar 2010 13:00:48 -0400 Subject: [Edu-sig] Python projects for CS1 In-Reply-To: <4BA8D033.4010905@cse.msu.edu> References: <4BA8D033.4010905@cse.msu.edu> Message-ID: <4BA8F3C0.3040703@canterburyschool.org> Bill, This is a great collection! I do have one question, one that actually applies to PyKata and Codingbat as well... what license governs this material? Can it be "remixed" and/or republished? Thanks, Vern Bill Punch wrote: > Given all the discussion about exercises, we though we'd throw in some > of the work we've done. MSU has taught its CS1 course in Python since > the Fall of 2007. Each semester we have the students complete 11 > programming projects (as homework). The homeworks start out easy and > work their way up. Each project focuses on a particular topic i.e., > strings, working with files, dictionaries etc. > > We've collected those projects on a webpage. Each project has some > supporting material and a solution. However, at the moment the solution > is not shown. We are working on that. > > Some of the projects ended up in the book we recently published > ("Practice of Computing Using Python", Punch, Enbody) but there are over > 58 listed here (and more coming) so there is a lot more listed on the > web page > > http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/index.php > > If you have any comments, we'd love to hear them. > > -- > > > >>>bill<<< > > > ------------------------------------------------------------------------ > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig -- This time for sure! -Bullwinkle J. Moose ----------------------------- Vern Ceder, Director of Technology Canterbury School, 3210 Smith Road, Ft Wayne, IN 46804 vceder at canterburyschool.org; 260-436-0746; FAX: 260-436-5137 The Quick Python Book, 2nd Ed - http://bit.ly/bRsWDW From punch at cse.msu.edu Tue Mar 23 18:17:47 2010 From: punch at cse.msu.edu (Bill Punch) Date: Tue, 23 Mar 2010 13:17:47 -0400 Subject: [Edu-sig] Python projects for CS1 In-Reply-To: <4BA8F3C0.3040703@canterburyschool.org> References: <4BA8D033.4010905@cse.msu.edu> <4BA8F3C0.3040703@canterburyschool.org> Message-ID: <4BA8F7BB.9010009@cse.msu.edu> You know, that is a great question (and one we forgot to address). We just added a Creative Commons license to the bottom (share and share alike). That seems like what we were shooting for. Thanks Vern. >>>bill<<< Vern Ceder wrote: > Bill, > > This is a great collection! > > I do have one question, one that actually applies to PyKata and > Codingbat as well... what license governs this material? > > Can it be "remixed" and/or republished? > > Thanks, > Vern > > > > Bill Punch wrote: >> Given all the discussion about exercises, we though we'd throw in >> some of the work we've done. MSU has taught its CS1 course in Python >> since the Fall of 2007. Each semester we have the students complete >> 11 programming projects (as homework). The homeworks start out easy >> and work their way up. Each project focuses on a particular topic >> i.e., strings, working with files, dictionaries etc. >> >> We've collected those projects on a webpage. Each project has some >> supporting material and a solution. However, at the moment the >> solution is not shown. We are working on that. >> >> Some of the projects ended up in the book we recently published >> ("Practice of Computing Using Python", Punch, Enbody) but there are >> over 58 listed here (and more coming) so there is a lot more listed >> on the web page >> >> http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/index.php >> >> If you have any comments, we'd love to hear them. >> >> -- >> >> >> >>>bill<<< >> >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Edu-sig mailing list >> Edu-sig at python.org >> http://mail.python.org/mailman/listinfo/edu-sig > From vceder at canterburyschool.org Tue Mar 23 18:52:40 2010 From: vceder at canterburyschool.org (Vern Ceder) Date: Tue, 23 Mar 2010 13:52:40 -0400 Subject: [Edu-sig] Python projects for CS1 In-Reply-To: <4BA8F7BB.9010009@cse.msu.edu> References: <4BA8D033.4010905@cse.msu.edu> <4BA8F3C0.3040703@canterburyschool.org> <4BA8F7BB.9010009@cse.msu.edu> Message-ID: <4BA8FFE8.2000009@canterburyschool.org> Thanks addressing that so quickly, Bill. Now IMHO it's an even better collection! :) Cheers, Vern Bill Punch wrote: > You know, that is a great question (and one we forgot to address). We > just added a Creative Commons license to the bottom (share and share > alike). That seems like what we were shooting for. > > Thanks Vern. > > >>>bill<<< > > > > Vern Ceder wrote: >> Bill, >> >> This is a great collection! >> >> I do have one question, one that actually applies to PyKata and >> Codingbat as well... what license governs this material? >> >> Can it be "remixed" and/or republished? >> >> Thanks, >> Vern >> >> >> >> Bill Punch wrote: >>> Given all the discussion about exercises, we though we'd throw in >>> some of the work we've done. MSU has taught its CS1 course in Python >>> since the Fall of 2007. Each semester we have the students complete >>> 11 programming projects (as homework). The homeworks start out easy >>> and work their way up. Each project focuses on a particular topic >>> i.e., strings, working with files, dictionaries etc. >>> >>> We've collected those projects on a webpage. Each project has some >>> supporting material and a solution. However, at the moment the >>> solution is not shown. We are working on that. >>> >>> Some of the projects ended up in the book we recently published >>> ("Practice of Computing Using Python", Punch, Enbody) but there are >>> over 58 listed here (and more coming) so there is a lot more listed >>> on the web page >>> >>> http://www.cse.msu.edu/~cse231/PracticeOfComputingUsingPython/index.php >>> >>> If you have any comments, we'd love to hear them. >>> >>> -- >>> >>> >>> >>>bill<<< >>> >>> >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Edu-sig mailing list >>> Edu-sig at python.org >>> http://mail.python.org/mailman/listinfo/edu-sig >> -- This time for sure! -Bullwinkle J. Moose ----------------------------- Vern Ceder, Director of Technology Canterbury School, 3210 Smith Road, Ft Wayne, IN 46804 vceder at canterburyschool.org; 260-436-0746; FAX: 260-436-5137 The Quick Python Book, 2nd Ed - http://bit.ly/bRsWDW From edu-sig at asheesh.org Tue Mar 23 22:26:14 2010 From: edu-sig at asheesh.org (Asheesh Laroia) Date: Tue, 23 Mar 2010 17:26:14 -0400 (EDT) Subject: [Edu-sig] "Computer Science For Kids" Book Announcement In-Reply-To: References: Message-ID: On Fri, 19 Mar 2010, Andre Lessa wrote: > Hey Python Community, > > I just self published this brand new book and I'm making its PDF > available for (free) download on my web site. > > My goal is to explain some very basic fundamentals of computer science > to kids who are starting to learn about computers at school and/or at > home. For the tiny hints of programming, I referenced Python. If you > (or a kid you know) ends up having access to this book, please send > your feedback (suggestions/corrections) directly to me so I can start > thinking about the next edition and how I can make it even cooler for > kids. I found your math examples confusing. Is it the basketballs or the *number* of them that we're comparing in http://www.lessaworld.com/kids/csfk-page13.png ? I hope that you do some real kid testing and get their feedback! -- Asheesh. -- You are deeply attached to your friends and acquaintances. From philhwagner at gmail.com Tue Mar 23 22:50:32 2010 From: philhwagner at gmail.com (Phil Wagner) Date: Tue, 23 Mar 2010 14:50:32 -0700 Subject: [Edu-sig] Python projects for CS1 Message-ID: This is so perfect for what I am trying to do in my math class. I also appreciate the format. It is very clear and should be perfect for students. Thank you so much for sharing! Phil -- http://www.google.com/profiles/philhwagner http://staff.hthcv.hightechhigh.org/~pwagner/ (My Digital Portfolio) -------------- next part -------------- An HTML attachment was scrubbed... URL: From kirby.urner at gmail.com Wed Mar 24 01:58:04 2010 From: kirby.urner at gmail.com (kirby urner) Date: Tue, 23 Mar 2010 17:58:04 -0700 Subject: [Edu-sig] Python projects for CS1 In-Reply-To: <4BA8D033.4010905@cse.msu.edu> References: <4BA8D033.4010905@cse.msu.edu> Message-ID: On Tue, Mar 23, 2010 at 7:29 AM, Bill Punch wrote: << snip >> > If you have any comments, we'd love to hear them. > Hi Bill -- I enjoyed poking through some of these, reminiscent of some of the SuperQuest challenges for Oregon's annual software competition, high school students working in teams, with a language of their choice, to come up with a working solution in a time race. I like how you cover a lot of territory. Just looking at your page reassures a student that computer programs are ubiquitous i.e. in all walks a life (or a lot of 'em). Teachers should feel heartened as well, especially math teachers, seeking new relevance amidst real world topics, like strangers in a strange land (some of them). I'm wondering if you sometimes revisit the same problem suggesting different strategies for solution, perhaps after students have struggled and turned in some work. The same problem tackled multiple times may help boost student self-confidence, as they perceive how their powers are growing (like working out in a gym, lifting that same stack more easily). For example, the Caesar Code stuff is pretty interesting, as a generic introduction to permutations, wherein rotations might be "multiplied". You've got finite groups going here -- a topic I try to import from the college math world, much of which hides behind "calculus mountain", a killer peak most have to climb before they're even told "abstract algebra" exists. Yet so much fun could be had, so much cavorting, if we could just play with "math objects" that play in groups. http://www.4dsolutions.net/ocn/flash/group.html (annoying noise!) Another definition of a Caesar Code (Nero Code? Hadrian Code?) allows these codes to be completely random, though still one-to-one of course, and includes the space character as another one to encode, makes it all seem the more cryptic cuz of the wrecked word boundaries. So what if a student hasn't used dictionaries yet, or has only just discovered them, and sticks with indexed strings, as your hints suggest. Coming back to the same problem later, newly armed with a dictionary, list comprehensions, maybe the whole exercise seems easier and more concise? Don't wanna get *too* concise. Example IDLE 2.6.4 >>> from string import lowercase as lowers; from random import shuffle Get lowercase a-z plus space character >>> thechars = lowers[:26]+" " >>> def makekey(instring): thecopy = list(instring) shuffle(thecopy) return dict(zip(list(instring), thecopy)) Build the secret key with thechars, get back a dictionary: >>> coding = makekey(thechars) >>> coding {' ': 'g', 'a': 'x', 'c': 'w', 'b': 'c', 'e': 't', 'd': 'n', 'g': 'h', 'f': 'm', 'i': 'j', 'h': 'k', 'k': 'a', 'j': 'o', 'm': 's', 'l': 'u', 'o': 'p', 'n': 'l', 'q': 'y', 'p': 'z', 's': 'f', 'r': 'b', 'u': 'q', 't': 'i', 'w': 'e', 'v': ' ', 'y': 'r', 'x': 'd', 'z': 'v'} Define encoding and decoding functions, then test them. Pass through any letters not in the key: >>> def encode(phrase, secretkey): output = '' for char in phrase: output += secretkey.get(char, char) return output >>> def decode(phrase, secretkey): output = "" reverselookup = dict((value, key) for key,value in secretkey.items()) for char in phrase: output += reverselookup.get(char, char) return output >>> p = "Able was I ere I saw Elba" >>> e = encode(p, coding) >>> e 'AejlgfwtgIglclgIgtwfgEjew' >>> decode(e, coding) 'Able was I ere I say Elba' My propensity, coming from a math teaching perspective, is to look at a Python module as a "fish tank" with multiple mouths to feed, i.e. I like to publish a simple API and feed arguments to functions (other denizens) directly, sans raw_input prompts. This more directly corresponds to the idea of a grab bag of tools, a library, whereas a raw_input cycle more corresponds to polling in a GUI, staying alert for user inputs. Both modalities make a lot of sense, so I'm not saying I wouldn't go with raw_input sometimes -- I know students like being prompted, even by their own code. Sometimes I even use text menus with switching. :) http://www.4dsolutions.net/ocn/pymath.html (example at the end). Didn't see whether some of your challenges drop the raw_input to seem more like libraries, or whether you ask for a menu. Another thing is to ask for command line arguments and use sys.args -- so much fun, we might have, eh? Anyway, we're all aware of these possibilities -- just thought I'd remind myself of some of them. Again: reassuring to see the broad-based examples. Hitting the same challenge multiple times, but with new tools and/or concepts each time, is what many teachers call "spiraling" as you likely know. Pre-written code may be called "scaffolding" if you wanna sound like you know the shoptalk. In the high school math teaching world, John Saxon is often cited for making especially strategic use of "spiraling" although his detractors would consider this unmerited crediting of an interloper (something of a maverick that guy -- never met him). I mention all this by way of background, in that I cite him in my Notes for Teachers for Pycon 2009 re spiraling FYI: http://www.4dsolutions.net/presentations/py4t_notes.pdf On another note, thanks to Edward Cherlin (and Maria too) for jumping in on math-thinking-l this month. That's a functional programmers' hangout and any incursion of "imperative programmers" tends to generate some ire -- kinda like West Side Story? In the old days, we'd find some eligible prince or princess to marry into the Great Lambda tribe (as in lambda calculus). I've been bugging philosophers to devote some bandwidth to this feuding but they're busy with paper and pencil logic, can't be bothered with "CS" apparently. Maybe I'm being overly judgmental, and anyway it's not like there's anything much at stake. Or is there? -- math teachers like Maria get caught in the cross-fire, Gary too for that matter, though he seems to hold his own. Maybe the floodgates would open for more funding of discrete maths at the high school level, if only the engineers weren't seen to be fighting amongst themselves so much? Nothing scares away wannabe investor-sponsors so much as feuding and acrimony eh? Speaking of Gary (Litvin), he got the ball rolling by commenting on corestandards.org, a K-12 standards-building initiative purportedly with real state governors on board. He sees signs that discrete math topics are losing ground, not gaining it. But that's perhaps more testament to an unimaginative and uninformed bureaucracy that has yet to achieve a strangle-hold? One may fondly so hope I suppose. Over on math-teach, I mention that our Pauling Center has not been consulted, and we're at the epicenter (evidence that these bureaucrats have gone way out on a limb?). http://mathforum.org/kb/message.jspa?messageID=7013136&tstart=0 See math-thinking-l archives if wanting more substance behind these ramblings (wanderings). Bill, if you're still with me, I look forward to poking around in more of your exercises and may well have more to say, hope OK. Kirby From echerlin at gmail.com Wed Mar 24 02:12:31 2010 From: echerlin at gmail.com (Edward Cherlin) Date: Tue, 23 Mar 2010 21:12:31 -0400 Subject: [Edu-sig] Python projects for CS1 In-Reply-To: References: <4BA8D033.4010905@cse.msu.edu> Message-ID: See also Mr. Babbage's Secret: The Tale of a Cipher--and APL. Step-by-step through all of the kinds of cipher that Charles Babbage found in the agony column (Personals) in The Times, and a legal case where he testified about a cipher he cracked. On Tue, Mar 23, 2010 at 20:58, kirby urner wrote: > On Tue, Mar 23, 2010 at 7:29 AM, Bill Punch wrote: > > << snip >> > >> If you have any comments, we'd love to hear them. >> > > > Hi Bill -- > > I enjoyed poking through some of these, reminiscent of some of the > SuperQuest challenges for Oregon's annual software competition, > high school students working in teams, with a language of their > choice, to come up with a working solution in a time race. > > I like how you cover a lot of territory. ?Just looking at your page > reassures a student that computer programs are ubiquitous i.e. > in all walks a life (or a lot of 'em). ?Teachers should feel heartened > as well, especially math teachers, seeking new relevance > amidst real world topics, like strangers in a strange land > (some of them). > > I'm wondering if you sometimes revisit the same problem suggesting > different strategies for solution, perhaps after students have struggled > and turned in some work. ?The same problem tackled multiple times > may help boost student self-confidence, as they perceive how their > powers are growing (like working out in a gym, lifting that same stack > more easily). > > For example, the Caesar Code stuff is pretty interesting, as a generic > introduction to permutations, wherein rotations might be "multiplied". > You've got finite groups going here -- a topic I try to import from the > college math world, much of which hides behind "calculus mountain", > a killer peak most have to climb before they're even told "abstract > algebra" exists. ?Yet so much fun could be had, so much cavorting, > if we could just play with "math objects" that play in groups. > > http://www.4dsolutions.net/ocn/flash/group.html ?(annoying noise!) > > Another definition of a Caesar Code (Nero Code? ?Hadrian Code?) > allows these codes to be completely random, though still one-to-one > of course, and includes the space character as another one to > encode, makes it all seem the more cryptic cuz of the wrecked > word boundaries. > > So what if a student hasn't used dictionaries yet, or has only just > discovered them, and sticks with indexed strings, as your hints > suggest. ?Coming back to the same problem later, newly armed > with a dictionary, list comprehensions, maybe the whole exercise > seems easier and more concise? ?Don't wanna get *too* concise. > > Example > > IDLE 2.6.4 > >>>> from string import lowercase as lowers; from random import shuffle > > Get lowercase a-z plus space character > >>>> thechars = lowers[:26]+" " > >>>> def makekey(instring): > ? ? ? ?thecopy = list(instring) > ? ? ? ?shuffle(thecopy) > ? ? ? ?return dict(zip(list(instring), thecopy)) > > Build the secret key with thechars, get back a dictionary: > >>>> coding = makekey(thechars) > >>>> coding > {' ': 'g', 'a': 'x', 'c': 'w', 'b': 'c', 'e': 't', 'd': 'n', 'g': 'h', > 'f': 'm', 'i': 'j', 'h': 'k', 'k': 'a', 'j': 'o', 'm': 's', 'l': 'u', > 'o': 'p', 'n': 'l', 'q': 'y', 'p': 'z', 's': 'f', 'r': 'b', 'u': 'q', > 't': 'i', 'w': 'e', 'v': ' ', 'y': 'r', 'x': 'd', 'z': 'v'} > > Define encoding and decoding functions, then test them. ?Pass through > any letters not in the key: > >>>> def encode(phrase, secretkey): > ? ? ? ?output = '' > ? ? ? ?for char in phrase: > ? ? ? ? ? ? ? ?output += secretkey.get(char, char) > ? ? ? ?return output > >>>> def decode(phrase, secretkey): > ? ? ? ?output = "" > ? ? ? ?reverselookup = dict((value, key) for key,value in secretkey.items()) > ? ? ? ?for char in phrase: > ? ? ? ? ? ? ? ?output += reverselookup.get(char, char) > ? ? ? ?return output > >>>> p = "Able was I ere I saw Elba" > >>>> e = encode(p, coding) >>>> e > 'AejlgfwtgIglclgIgtwfgEjew' > >>>> decode(e, coding) > 'Able was I ere I say Elba' > > My propensity, coming from a math teaching perspective, is to look > at a Python module as a "fish tank" with multiple mouths to feed, > i.e. I like to publish a simple API and feed arguments to functions > (other denizens) directly, sans raw_input prompts. > > This more directly corresponds to the idea of a grab bag of tools, > a library, whereas a raw_input cycle more corresponds to polling > in a GUI, staying alert for user inputs. > > Both modalities make a lot of sense, so I'm not saying I wouldn't > go with raw_input sometimes -- I know students like being prompted, > even by their own code. > > Sometimes I even use text menus with switching. :) > http://www.4dsolutions.net/ocn/pymath.html ?(example at the end). > > Didn't see whether some of your challenges drop the raw_input > to seem more like libraries, or whether you ask for a menu. ?Another > thing is to ask for command line arguments and use sys.args > -- so much fun, we might have, eh? > > Anyway, we're all aware of these possibilities -- just thought I'd > remind myself of some of them. > > Again: ?reassuring to see the broad-based examples. > > Hitting the same challenge multiple times, but with new tools > and/or concepts each time, is what many teachers call > "spiraling" as you likely know. > > Pre-written code may be called "scaffolding" if you wanna > sound like you know the shoptalk. > > In the high school math teaching world, John Saxon is often > cited for making especially strategic use of "spiraling" > although his detractors would consider this unmerited > crediting of an interloper (something of a maverick that > guy -- never met him). > > I mention all this by way of background, in that I cite him > in my Notes for Teachers for Pycon 2009 re spiraling FYI: > > http://www.4dsolutions.net/presentations/py4t_notes.pdf > > On another note, thanks to Edward Cherlin (and Maria too) > for jumping in on math-thinking-l this month. ?That's a > functional programmers' hangout and any incursion of > "imperative programmers" tends to generate some ire > -- kinda like West Side Story? ?In the old days, we'd > find some eligible prince or princess to marry into the > Great Lambda tribe (as in lambda calculus). > > I've been bugging philosophers to devote some bandwidth > to this feuding but they're busy with paper and pencil logic, > can't be bothered with "CS" apparently. > > Maybe I'm being overly judgmental, and anyway it's not like > there's anything much at stake. ?Or is there? -- math teachers > like Maria get caught in the cross-fire, Gary too for that > matter, though he seems to hold his own. ?Maybe the > floodgates would open for more funding of discrete maths > at the high school level, if only the engineers weren't seen > to be fighting amongst themselves so much? ?Nothing scares > away wannabe investor-sponsors so much as feuding and > acrimony eh? > > Speaking of Gary (Litvin), he got the ball rolling by commenting > on corestandards.org, a K-12 standards-building initiative > purportedly with real state governors on board. ?He sees signs > that discrete math topics are losing ground, not gaining it. > But that's perhaps more testament to an unimaginative > and uninformed bureaucracy that has yet to achieve > a strangle-hold? ?One may fondly so hope I suppose. Over > on math-teach, I mention that our Pauling Center has not > been consulted, and we're at the epicenter (evidence that > these bureaucrats have gone way out on a limb?). > > http://mathforum.org/kb/message.jspa?messageID=7013136&tstart=0 > > See math-thinking-l archives if wanting more substance > behind these ramblings (wanderings). > > Bill, if you're still with me, I look forward to poking around > in more of your exercises and may well have more to say, > hope OK. > > Kirby > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -- Edward Mokurai (??/???????????????/????????????? ?) Cherlin Silent Thunder is my name, and Children are my nation. The Cosmos is my dwelling place, the Truth my destination. http://www.earthtreasury.org/ From brookscl at computer.org Wed Mar 24 03:29:02 2010 From: brookscl at computer.org (Chris Brooks) Date: Tue, 23 Mar 2010 19:29:02 -0700 Subject: [Edu-sig] "Computer Science For Kids" Book Announcement In-Reply-To: References: Message-ID: Andre, Thanks for your efforts putting this together. As the text stands right now I'd have a hard time recommending it over CS Unplugged (http://csunplugged.org/). You are covering very advanced concepts at times on a single page, and in some cases I would question the value of learning that concept in an intro text (threads, network ports, dictionary data structure). You use exception notation at times (try/except) that I think would confuse a beginner audience (why not just build on the if/then concept?). Most of the teachers I know that would be candidates for this (elementary / middle school) would have a hard time teaching from the text and would need quite a bit of supplemental information to understand the concept being taught. I would study the level of detail you see in the (free, creative commons) CS Unplugged modules to get a sense for how much needs to be explained to get even basic concepts across. Thanks for asking, Chris Brooks From kirby.urner at gmail.com Wed Mar 24 21:41:55 2010 From: kirby.urner at gmail.com (kirby urner) Date: Wed, 24 Mar 2010 13:41:55 -0700 Subject: [Edu-sig] Python projects for CS1 In-Reply-To: References: <4BA8D033.4010905@cse.msu.edu> Message-ID: << snip >> Kirby wrote: >>>>> p = "Able was I ere I saw Elba" >> >>>>> e = encode(p, coding) >>>>> e >> 'AejlgfwtgIglclgIgtwfgEjew' >> >>>>> decode(e, coding) >> 'Able was I ere I say Elba' >> Kirby replies: First of all: Happy Ada Lovelace Day! Secondly: Yikes! I see the typo here (quoted above). My actual IDLE session had some mistakes so when I built up this posting, I cut and pasted the working bits, but then kept this early wrong value for the plaintext p. When p was enciphered / deciphered, it came back right, i.e. decode(encode( p )) should be the identity function for arbitrary p. However, it started out with this 'say' mutation, instead of 'saw'. This is a famous palindrome by the way, not invented by me, and is put into the mouth of Napoleon Bonaparte for mnemonic purposes. Anyway, apologies for my sloppiness to future readers who might stumble on this post. Just to expand a bit while I'm at it: Allowing our permutations to be random instead of rotations clearly makes this a rather large permutation space, so the kind of brute force code cracking suggested in the exercise would be harder. Were MFTDA (Math for the Digital Age) to morph into a series, with more time given to many of the topics (in addition to new topics), then the ramp up to RSA could be more leisurely and include such as the Caesar Codes in more detail. Rotations of polyhedra may be described with such mappings, with starting / ending points of the vertices. One might think of two copies of the same polyhedron superimposed, with the A of one going to the D of the other upon rotation, other vertexes moving accordingly. Permutations give a road map between the different positions, showing what states are but one hop away (thinking of hypertoons again -- another thread). Over on math-teach today, I've drawn an analogy between the digital divide separating traditional math classes from their more digital counterparts, and the Berlin Wall. I claim to be echoing Ronald Reagan in demanding it be torn down. http://mathforum.org/kb/message.jspa?messageID=7019256&tstart=0 (rather lengthy, might be called a rant). I actually think just using Python as a calculator might can take one a long way. One might be projecting some spatial geometric relationship, such as an icosahedron with faces glued to an enclosing octahedron's, lots of phi relationships to check. This is exactly what I was doing yesterday in fact. Here's an excerpt from my email outbox: """ Meant to include this Python excerpt (back of the napkin check on the length he claims to find): >>> from math import sqrt as radical >>> phi = ( 1 + radical(5))/2. >>> phi 1.618033988749895 >>> phi / radical(2) 1.1441228056353685 >>> phi / radical(2) + radical(2) / 2 1.851229586821916 >>> ... http://www.rwgrayprojects.com/synergetics/s09/figs/f87242.html (18.51... == volume of C. in figure) That length of the octahedron (icosahedron inside) is 1/10 the volume of the enclosed icosahedron. Curious. Just thought I'd mention, given we're on the topic of the icosahedral hubs in many versions of Flextegrity. """ This might be a signature difference between using Python in a math class versus a computer science class: math students may make very light use of Python as a calculator while focusing a lot of attention on problems that do NOT require much if any programming to solve. In other words, math students may often use Python but do little or no programming with it -- not talking about no programming in the whole course, just saying a whole hour might go by where you just run Python as a scratch pad on the side, have no need to compose or run programs, other than to import from the occasional library. More like Sage in some ways, except we may just get by with IDLE or something similar. I underline this difference for the sake of teachers who cringe at the word "programming". Some people went into math teaching precisely because they didn't like doing that, or just see it as adding a lot of overhead. BTW, I think 3.1.2 is taken a significant step in its numeric display habits. The IEEE floating point specification is not messed with, but repr has a new set of conventions. In general, number formatting is getting more powerful. When it comes to bulk data, you start to need more programming just for file i/o, although even here you might get away with a lot, especially if the module in question pre-stores the data. This is the Rich Data Structure idea I was talking about, i.e. if you want students to have the lat/long for every major city on Earth, or to have the Periodic Table of the Elements as a dictionary of Atom objects (however designed), then just include the bulk data as a part of the module, already loaded up into these sophisticated structures. Or, if you wanna be more ambitious, include a Reader for grabbing and loading from raw files, either locally provided or over the wire (having these in addition to "ready to use" would be most convenient). I've got lat / long data for some cities at my web site, along with a sample "capitals of states" quiz in MySQL and simple Python. http://www.4dsolutions.net/ocn/geoquiz.html You'll see if you read my rant that I go on about needing a school server or rack of servers. High schools may not as yet have those, an unhappy truth. Those that do, though, will have an easy way to build up their data stores. Math students will get to study the source code, help maintain it -- or do we call them computer science students? How much does it really matter? Geometry + Geography = What? Discrete math? >> My propensity, coming from a math teaching perspective, is to look >> at a Python module as a "fish tank" with multiple mouths to feed, >> i.e. I like to publish a simple API and feed arguments to functions >> (other denizens) directly, sans raw_input prompts. >> Kirby From chris at seberino.org Fri Mar 26 03:40:32 2010 From: chris at seberino.org (chris at seberino.org) Date: Thu, 25 Mar 2010 21:40:32 -0500 Subject: [Edu-sig] Confused how teach geometry and importance of teaching geometry in 21st century. Message-ID: <20100326024032.GA22309@seberino.org> I'm teaching high school math to homeschoolers and I'm looking for how to make geometry year meaningful. I'm having a "crisis of confidence" because from my viewpoint, algebra was 10x more useful for future math and science work. The only thing I can remember that was useful from geometry was a few volume and area formulas. That can justify maybe a month but not a whole YEAR of geometry!?!? cs P.S. Yes yes I know that geometry is meant to teach logical reasoning. Maybe one can get that from chess, debate club and other activities as well if not better? People also say geometry is where you learn proofs. Couldn't proofs be just as easily emphasized in all the other math classes? -- _______________________________________ Christian Seberino, Ph.D. Email: chris at seberino.org _______________________________________ From jrgray at gmail.com Fri Mar 26 04:39:08 2010 From: jrgray at gmail.com (Jeremy Gray) Date: Thu, 25 Mar 2010 23:39:08 -0400 Subject: [Edu-sig] Confused how teach geometry and importance of teaching geometry in 21st century. In-Reply-To: <20100326024032.GA22309@seberino.org> References: <20100326024032.GA22309@seberino.org> Message-ID: <844f07dc1003252039u7c1158bbr4447746326266a1c@mail.gmail.com> well, there's future usefulness and practicality to motivate your homeschoolers. and there's also in-the-moment fun, beauty, and joy of doing it. check out Strogatz's recent New York Times column: "I bet I can guess your favorite math subject in high school. "It was geometry. "So many people I?ve met over the years have expressed affection for that subject. Arithmetic and algebra ? not many takers there. But geometry, well, there?s something about it that brings a twinkle to the eye." see the full article at http://opinionator.blogs.nytimes.com/2010/03/14/square-dancing/ beyond being cool, maybe geometry helps develop spatial imagery and visualization? --Jeremy On Thu, Mar 25, 2010 at 10:40 PM, wrote: > I'm teaching high school math to homeschoolers and I'm looking for how to > make > geometry year meaningful. > > I'm having a "crisis of confidence" because from my viewpoint, algebra was > 10x > more useful for future math and science work. > > The only thing I can remember that was useful from geometry was a few > volume > and area formulas. That can justify maybe a month but not a whole YEAR of > geometry!?!? > > cs > > P.S. Yes yes I know that geometry is meant to teach logical reasoning. > Maybe > one can get that from chess, debate club and other activities as well if > not better? People also say geometry is where you learn proofs. Couldn't > proofs be just as easily emphasized in all the other math classes? > > -- > _______________________________________ > > Christian Seberino, Ph.D. > Email: chris at seberino.org > _______________________________________ > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chris at seberino.org Fri Mar 26 04:54:01 2010 From: chris at seberino.org (chris at seberino.org) Date: Thu, 25 Mar 2010 22:54:01 -0500 Subject: [Edu-sig] Confused how teach geometry and importance of teaching geometry in 21st century. In-Reply-To: <844f07dc1003252039u7c1158bbr4447746326266a1c@mail.gmail.com> References: <20100326024032.GA22309@seberino.org> <844f07dc1003252039u7c1158bbr4447746326266a1c@mail.gmail.com> Message-ID: <20100326035401.GB22398@seberino.org> On Thu, Mar 25, 2010 at 11:39:08PM -0400, Jeremy Gray wrote: > well, there's future usefulness and practicality to motivate your > homeschoolers. and there's also in-the-moment fun, beauty, and joy of doing it. I'm glad you said that. I was simultaneously coming to same conclusion. Still it is nice to hear it from someone else. If I tried to "wow" my students and make the class fun and engaging without trying to be "practical" maybe I'll be ok. cs From kirby.urner at gmail.com Fri Mar 26 05:17:07 2010 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 25 Mar 2010 21:17:07 -0700 Subject: [Edu-sig] Confused how teach geometry and importance of teaching geometry in 21st century. In-Reply-To: <20100326024032.GA22309@seberino.org> References: <20100326024032.GA22309@seberino.org> Message-ID: On Thu, Mar 25, 2010 at 7:40 PM, wrote: > I'm teaching high school math to homeschoolers and I'm looking for how to make > geometry year meaningful. > Most geometry taught in high school is flat, planar. This is a problem in an age of HDTVs, LCDs. If you wanna blow some time on a meandering meditation on just this theme, 'Beyond Flatland', here's something I wrote last night. This takes off from a 1997 Math Summit held here in Oregon, with Keith Devlin, Roger Penrose, Ralph Abraham and other luminaries. http://groups.yahoo.com/group/synergeo/message/58095 (maybe just scan the opening paragraphs, then decide if it grabs ya -- I'm talking to an inner circle, using some shoptalk, so probably a yawner). > I'm having a "crisis of confidence" because from my viewpoint, algebra was 10x > more useful for future math and science work. > 10th grade geometry distills just some of the Euclidean stuff. There's precious little topology, no V + F = E + 2, no Descartes Deficit, no sphere packing, gnomon studies, hardly much about polyhedra, their duals, little to nothing about Phi... I agree with ya, a big rip off. Fortunately, the Internet is brimming with cool stuff, so much to see and do. Lots of great Java applets, no reason to avoid them (we're not language bigots). Geometry in the sense of events in space is about geography, which (going big) includes astronomy and (going small) internal organs, cells, molecules down to whatever particles. In other words, geometry applies to the whole kit 'n kaboodle so can't be "irrelevant to science" no matter how hard we try. My advice: remember to stay spatial, with planar as subset (special case) of spatial. Regarding Python in particular, I recommend getting into VPython. Also POV-Ray if you have the time, and VRML. I've got lots of writings on this at my web site, complete with source. Recommended: 'The Book of Numbers' by Conway and Guy. Lots to program around. > The only thing I can remember that was useful from geometry was a few volume > and area formulas. ?That can justify maybe a month but not a whole YEAR of > geometry!?!? > > cs > I've spent many years with the Python + Geometry combo. One pay-off is I generated most of the graphics at my web sites and am therefore free to upload them to Wikipedia and Wikieducator, where the authorities tend to be sticklers about intellectual property. Given all these cool graphics are mine, mine, mine, I feel at liberty to spread them. Thank you Python. Thank you other free tools. > P.S. Yes yes I know that geometry is meant to teach logical reasoning. ?Maybe > one can get that from chess, debate club and other activities as well if > not better? ?People also say geometry is where you learn proofs. ?Couldn't > proofs be just as easily emphasized in all the other math classes? > If you're free to work in a home schooling setting, then you can blend the topics a lot more, as student interest meanders. 'The Geometrical Foundation of Natural Structure: A Source Book of Design' by Robert Williams would be a good title to start with. It's not a textbook. Dover Press books tend to be quite affordable though, this one not too hard to obtain. If you're into lore or stories, which I consider central to any credible curriculum, then maybe the Siobhan Roberts bio of Donald Coxeter would be work getting and sharing with students. There are some juicy stories in there, gossip about Escher's son I think it was, trying to break into the radome business... radomes were those DEW line things across Canada, a manifestation of the cold war.... Lots more to say, but since this is a topic I've worked on a lot, I need to hold back, not open the floodgates. Lots here in the archive. Thanks for joining us. Oh, and if you get the Litvins text, Math for the Digital Age and Programming in Python, then you'll find stuff on graphs (in the sense of networks), mostly planar, but it's easy to turn graphs into polyhedra with the wave of a magic wand. Turtle Art / Turtle Graphics... Springie.com. Darwin @ Home. Gregor helped me with getting Python turtle to draw the plane-net for a T-module (back to my shoptalk), 120 of which build a rhombic triacontahedron (an important shape with thirty 1 x phi diamond facets). Per Robert Williams, once you start jamming polyhedra together, you're into lattices, and that's Linus Pauling style chemistry, nanotechnology, crystallography -- no shortage of relevant pages and projects. Happy camping! Kirby > -- > _______________________________________ > > Christian Seberino, Ph.D. > Email: chris at seberino.org > _______________________________________ > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From bostonvaulter at gmail.com Fri Mar 26 06:08:21 2010 From: bostonvaulter at gmail.com (Jason Axelson) Date: Thu, 25 Mar 2010 19:08:21 -1000 Subject: [Edu-sig] Confused how teach geometry and importance of teaching geometry in 21st century. In-Reply-To: <20100326024032.GA22309@seberino.org> References: <20100326024032.GA22309@seberino.org> Message-ID: <21810b631003252208p522c3c30s8c2487065001821e@mail.gmail.com> As a somewhat recent high-school graduate (2005) I must say that I don't think that all the countless proofs we did in geometry helped my logical reasoning that much. I think that programming helped that 100x more than geometry did. Jason On Thu, Mar 25, 2010 at 4:40 PM, wrote: > I'm teaching high school math to homeschoolers and I'm looking for how to > make > geometry year meaningful. > > I'm having a "crisis of confidence" because from my viewpoint, algebra was > 10x > more useful for future math and science work. > > The only thing I can remember that was useful from geometry was a few > volume > and area formulas. That can justify maybe a month but not a whole YEAR of > geometry!?!? > > cs > > P.S. Yes yes I know that geometry is meant to teach logical reasoning. > Maybe > one can get that from chess, debate club and other activities as well if > not better? People also say geometry is where you learn proofs. Couldn't > proofs be just as easily emphasized in all the other math classes? > > -- > _______________________________________ > > Christian Seberino, Ph.D. > Email: chris at seberino.org > _______________________________________ > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > -------------- next part -------------- An HTML attachment was scrubbed... URL: From kirby.urner at gmail.com Fri Mar 26 06:10:29 2010 From: kirby.urner at gmail.com (kirby urner) Date: Thu, 25 Mar 2010 22:10:29 -0700 Subject: [Edu-sig] Fwd: course outline (pythonic math) Message-ID: Here's something I originally posted to another list, but one that is white-space insensitive. Hardly a venue for sharing anything Pythonic. Anyway, it's relevant here too. This is more of a sketch than something I've poured over for hours, just trying to give the gist of a possible Discrete Math course, one among hundreds or thousands or... not trying to write "the national standard" (blech). Kirby ==== DIGITAL MATH: Cardinality versus Ordinality Naming things Two different versus two the same Of zip codes and phone numbers Sorting things Equality, greater than, less than Hello World! A Biotum Class (Python) A Snake Class (Python) Numbers and Bases Positional Notation Lore: Algorithms liberate Europe (Liber Abacci) Lore: from ASCII to Unicode Decimal versus Hexadecimal Volume Bases: Tetrahedron versus Cube Functions and Relations (Part 1) Lore: the rise and fall of New Math Mappings Python's dictionary structure Caesar Codes Lore: from secret key to public key crypto Inverse Functions Injection, Surjection, Bijection What's a Relation? On Growth and Form Functions for Gnomon Growth Triangular Numbers Lore and Proof: Gauss summing 1..100 Square Numbers Proof: Sum of consecutive squares Tetrahedral Numbers Cubic Numbers Lore: Fibonaccis and Phi Generating Fibonaccis Generating Polyhedral Numbers Generating Pascal's Triangle Triangular and Tetrahedral Numbers Prime and Composite Numbers Euclid's Method for GCD Primes versus Composites Strangers Totatives and Totients Functions and Relations (Part 2) Permutations Polyhedral Rotations (dice in Casino Math) Composition of Functions (a kind of multiplying) Abstract Algebra I Multiplication: What is it Python and "Modulo Numbers" Vegetable Group Soup Cayley Tables Group Properties (CAIN and Abelian) Addition: What is it Rings and Fields Preview of Future Topics Supermarket Math SQL web frameworks Neolithic Math artifacts and encoded geography constellations Casino Math random number generators (Python) Deck and Card classes (Python) Martian Math Sphere packing and the Octet Truss Tetrahedral Accounting Pentagon Math Lore: geodesic spheres and domes, radomes Phi in Fuller's concentric hierarchy Notes for Teachers: Cardinality versus Ordinality -- Before we order or sort, we need to recognize which things or objects are of which type. This course uses a type based mathematical logic known as the Python computer language, so awareness of types will be front and center from the get go. Exercises will include querying objects as to their types. Z-axis (depth dimension): if you've going through this in a spiral with plans to go deeper each time, then at some point your students may want to define their own classes and implement meanings for __lt__ __gt__ __eq__, Python's "ribs" (special names) for < , > and == respectively. However, this course outline does not make too many assumptions about which turn of the spiral one is in. Students will vary, as will teachers. Numbers and Bases -- This should feel like fairly easy review. I recommend playing Tom Lehrer's 'New Math' from 'That Was the Year that Was' and making sure students get that it's mathematically correct. This is looking ahead to later lore, where we talk about the rise and fall of New Math. About Lore: this curriculum is premised on the notion that storytelling is integral to passing on a culture, and that too much time on a technical axis, to the exclusion of narrative context, is either counter-productive or is an intentionally applied filter aimed at testing student tolerance for "in the dark" learning. Functions and Relations (Part 1) -- A lot of this is standard Algebra 1. New Math helped writers formalize their notion of function as distinct from a relation, using set theoretic constructs. This may not be the right place for a Python dictionary on a first pass. I was getting into Caesar Codes again recently, relating them to permutations and polyhedral rotations, and am freshly persuaded this is one of the better routes to elementary group theory, just ahead. http://mail.python.org/pipermail/edu-sig/2010-March/009867.html http://mail.python.org/pipermail/edu-sig/2010-March/009870.html On Growth and Form -- Here's a way to connect the graphical and lexical without getting into XYZ coordinates or vectors right off. Gnomon studies and sphere packing keep the number sequences connected to the visualizations. Influences and valuable resources here would include 'The Book of Numbers' by Conway and Guy, 'Gnomon' by Midhat Gazale, and certain passages from 'Synergetics' by R.B. Fuller, with bolstering writing from H.S.M. Coxeter. Lore: getting a sense of Coxeter's outrage on finding nature's geometry had been patented by Fuller prefigures a generic distrust of the private ownership paradigm when applied to common natural heritage. In some classes, this might lead to a discussion of the free and open source software movement. I didn't include that in this particular segment though, as we're running low on time. Look in Pentagon Math under Future Topics. Abstract Algebra I -- Because Python makes our exercises much more concrete and hands on, especially with scaffolding (pre-written / canned libraries or modules), it's new feasible to get more abstract. 'Concrete Mathematics' is an influence ('con' from continuous, 'crete' from discrete). With this kind of groundwork in place, it becomes easier to review topics such as dividing fractions, as we may now talk about division as "syntactic sugar" for "multiplying by the multiplicative inverse". Reviewing such basic concepts as the four operations with Q (Rational Numbers) would not be out of place in this segment. Preview of Future Topics -- If this course or talk was used as a teaser or sampler, then here would be another chance to look ahead. I don't have anything on Pentagon Math at the Wikieducator site (Heuristics for Teachers). That's because you can easily fold it in with Neolithic and/or Martian Math. I split it out here because I wanted to dig into some of the lore in the Siobhan Roberts bio of Donald Coxeter. Remember: we think lore is very important, as are exercises and time alone with the Python interpreter (not all programming is pair programming in these initial stages, nor even later on -- depends on the project). For further reading: http://www.4dsolutions.net/presentations/p4t_notes.pdf Kirby From mpaul213 at gmail.com Fri Mar 26 06:23:11 2010 From: mpaul213 at gmail.com (michel paul) Date: Thu, 25 Mar 2010 22:23:11 -0700 Subject: [Edu-sig] Confused how teach geometry and importance of teaching geometry in 21st century. In-Reply-To: <21810b631003252208p522c3c30s8c2487065001821e@mail.gmail.com> References: <20100326024032.GA22309@seberino.org> <21810b631003252208p522c3c30s8c2487065001821e@mail.gmail.com> Message-ID: <40ea4eb01003252223w1fe2f36at15ee8727ff66fd6c@mail.gmail.com> Beautiful! Thank you for making this statement. Lots of people making decisions in education need to hear this. On Thu, Mar 25, 2010 at 10:08 PM, Jason Axelson wrote: > As a somewhat recent high-school graduate (2005) I must say that I don't > think that all the countless proofs we did in geometry helped my logical > reasoning that much. I think that programming helped that 100x more than > geometry did. > > Jason > > On Thu, Mar 25, 2010 at 4:40 PM, wrote: > >> I'm teaching high school math to homeschoolers and I'm looking for how to >> make >> geometry year meaningful. >> >> I'm having a "crisis of confidence" because from my viewpoint, algebra was >> 10x >> more useful for future math and science work. >> >> The only thing I can remember that was useful from geometry was a few >> volume >> and area formulas. That can justify maybe a month but not a whole YEAR of >> geometry!?!? >> >> cs >> >> P.S. Yes yes I know that geometry is meant to teach logical reasoning. >> Maybe >> one can get that from chess, debate club and other activities as well if >> not better? People also say geometry is where you learn proofs. Couldn't >> proofs be just as easily emphasized in all the other math classes? >> >> -- >> _______________________________________ >> >> Christian Seberino, Ph.D. >> Email: chris at seberino.org >> _______________________________________ >> _______________________________________________ >> Edu-sig mailing list >> Edu-sig at python.org >> http://mail.python.org/mailman/listinfo/edu-sig >> > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > > -- "Computer science is the new mathematics." -- Dr. Christos Papadimitriou -------------- next part -------------- An HTML attachment was scrubbed... URL: From enbody at cse.msu.edu Fri Mar 26 15:36:06 2010 From: enbody at cse.msu.edu (Richard Enbody) Date: Fri, 26 Mar 2010 10:36:06 -0400 Subject: [Edu-sig] Confused how teach geometry and importance of teaching geometry in 21st century. In-Reply-To: <20100326024032.GA22309@seberino.org> References: <20100326024032.GA22309@seberino.org> Message-ID: <4BACC656.10400@cse.msu.edu> Another thing to consider is that there is a lot of different math: algebra and geometry are quite different and someone being good at one might not be good at the other. As a former high school math teacher and one who saw his kids recently go through high school, I believe that many geometry courses these days deemphasize the logical part of geometry in favor of a more computational form. Development of proofs is useful for reasoning skills, beyond simple logic. Finally, geometry is useful for learning about the world. My $0.02 -rich enbody at cse.msu.edu chris at seberino.org wrote: > I'm teaching high school math to homeschoolers and I'm looking for how to make > geometry year meaningful. > > I'm having a "crisis of confidence" because from my viewpoint, algebra was 10x > more useful for future math and science work. > > The only thing I can remember that was useful from geometry was a few volume > and area formulas. That can justify maybe a month but not a whole YEAR of > geometry!?!? > > cs > > P.S. Yes yes I know that geometry is meant to teach logical reasoning. Maybe > one can get that from chess, debate club and other activities as well if > not better? People also say geometry is where you learn proofs. Couldn't > proofs be just as easily emphasized in all the other math classes? > > -- > _______________________________________ > > Christian Seberino, Ph.D. > Email: chris at seberino.org > _______________________________________ > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From litvin at skylit.com Fri Mar 26 16:24:35 2010 From: litvin at skylit.com (Litvin) Date: Fri, 26 Mar 2010 11:24:35 -0400 Subject: [Edu-sig] Confused how teach geometry and importance of teaching geometry in 21st century. Message-ID: <6.2.1.2.2.20100326112432.03dd7850@mail.skylit.com> At 10:40 PM 3/25/2010, you wrote: >I'm teaching high school math to homeschoolers and I'm looking for how to make >geometry year meaningful. > >I'm having a "crisis of confidence" because from my viewpoint, algebra was 10x >more useful for future math and science work. The fact that geometry is considered a place to teach formal reasoning (and not much more) is peculiar to the math standards in this country. Properties of congruent triangles and other trivial stuff can be dispatched with rather quickly (by the end of 6th grade in many countries). I think after that, geometry, more than any other elementary math subject, offers opportunities for creative problem solving. It also teaches transformations and symmetry, invariants (loci of points), creative straightedge and compass constructions, right triangle trigonometry, spacial reasoning, etc. For a creative exploration approach consider http://books.google.com/books?id=tDRJi-qlE18C&printsec=frontcover&dq=%22lines+and+curves%22&source=bl&ots=xPHqn0h_fk&sig=5Ve-5_pEsafkCAcRlDUfYvZFiOU&hl=en&ei=xNCsS6CLKMiVtgfb3KmrDw&sa=X&oi=book_result&ct=result&resnum=1&ved=0CAYQ6AEwAA#v=onepage&q=&f=false. Gary Litvin www.skylit.com From chris at seberino.org Fri Mar 26 20:19:44 2010 From: chris at seberino.org (chris at seberino.org) Date: Fri, 26 Mar 2010 14:19:44 -0500 Subject: [Edu-sig] Confused how teach geometry and importance of teaching geometry in 21st century. In-Reply-To: References: <20100326024032.GA22309@seberino.org> Message-ID: <20100326191944.GE2106@seberino.org> On Thu, Mar 25, 2010 at 09:17:07PM -0700, kirby urner wrote: > Happy camping! Wow thanks for all the great ideas. I feel better now. Have fun. That is my new key. cs From da.ajoy at gmail.com Sat Mar 27 06:02:41 2010 From: da.ajoy at gmail.com (Daniel Ajoy) Date: Sat, 27 Mar 2010 00:02:41 -0500 Subject: [Edu-sig] Did you feel learning to program with turtle graphics was useful? Message-ID: stackoverflow discussion: http://stackoverflow.com/questions/346061/did-you-feel-learning-to-program-with-turtle-graphics-was-useful Daniel From kirby.urner at gmail.com Sat Mar 27 06:38:18 2010 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 26 Mar 2010 22:38:18 -0700 Subject: [Edu-sig] about iterators, range, and summing consecutive integers Message-ID: Here are some looks at summing consecutive integers, ways to sum 1 + 2 + ... + n in Python: We start with the closed form, which doesn't actually need to iterate through intermediate terms, works directly with n, the last term in the sequence: >>> def trinumbs(n): return n * (n + 1) // 2 These next two make use of all the intermediate values: >>> def trinumbs2(n): return sum(range(1,n+1)) >>> def trinumbs3(n): i = 1 thesum = 0 while i <= n: thesum = thesum + i i += 1 return thesum Although all of these give the same answers, between the last two, the very last one is the most "classic" in terms of what an old time imperative programmer would expect. Having a range() function built right into the language is more APL-like. Most "classic" imperative languages such as FORTRAN and PL/1 required the programmer to do all the incrementing "by hand" (explicitly). You will find more about the range() function below. Notice the two ways of incrementing and rebinding. When writing thesum = thesum + i, the name 'thesum' is being rebound to the result of thesum plus whatever value i names. The equal sign (=) is not used to assert equality but as an "assignment operator". Objects have names and the assignment operator is what binds a name to an object. i += 1 is a shorter way of saying i = i + 1 and is borrowed from C / C++, is a much used convention. Python has very few control statements. Another way to write the above would be: >>> def trinumbs4(n): i = 1 thesum = 0 for i in range(1, n+1): thesum = thesum + i return thesum The keywords 'while' and 'for' are the two main looping constructs. trinumbs2 is making use of another built-in that directly consumes the output of range( ), and that is the sum( ) function. Since range( ) is zero-indexed, and since our tacit understanding is we're working with "natural" or "counting" numbers starting with 1, both uses of range (in trinumbs2 and trinumbs4) bump up the starting and ending parameters. If you feed only one argument to range, this is mapped to its ending parameter with the start parameter defaulting to 0. range ( 10 ) is equivalent to range (start = 0, stop = 10), except range doesn't take keyword arguments, so you can't actually get away the the 2nd expression. Examples: Only one parameter, so an ending parameter: >>> list ( range( 10 )) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] Two parameters, so a starting and ending parameter: >>> list ( range(1, 11 )) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Three parameters, so a starting, ending and "increment by" or "step" parameter: >>> range(2,31,2) range(2, 31, 2) >>> list ( range(2,31,2) ) [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30] Yes, you may increment negatively, but then remember not to make your starting value less than your stopping value: >>> list ( range(1, 10, -1) ) [] >>> list ( range(10, 0, -1) ) [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] range(5) returns a "range object" (of type range) which may in turn be interacted with in various ways: >>> d = range(5) >>> d range(0, 5) >>> type(d) >>> list(d) [0, 1, 2, 3, 4] >>> tuple(d) (0, 1, 2, 3, 4) >>> sum(d) 10 How else might we address a Python range object? With slicing notation: >>> d[1] 1 >>> d[4] 4 Although it's an iterable (you may iterate over it, using 'for'), d is not an iterator, meaning it's not supportive of 'next' (as no __next__ rib internally). The built-in iter function will trigger an object's internal __iter__ method, if there is one, and return an iterator prepared to be eaten by next(). >>> next(d) Traceback (most recent call last): File "", line 1, in next(d) TypeError: range object is not an iterator >>> k = iter(d) >>> next(k) 0 >>> next(k) 1 >>> next(k) 2 >>> d range(0, 5) >>> j = iter(d) >>> next(j) 0 >>> next(k) 3 Notice that k and j above are two separate iterators and they go through to exhaustion independently of one another. Once an iterator has been exhausted, it will no longer return contents, including in response to the print function. >>> theiterator = iter(d) >>> next(theiterator) 0 >>> next(theiterator) 1 >>> print(theiterator) >>> print(list(theiterator)) [2, 3, 4] >>> next(theiterator) Traceback (most recent call last): File "", line 1, in next(theiterator) StopIteration In the above example, d (which is our range object) is the source of a fresh iterator, theiterator. After nexting through two terms, the print function is used. The first use simply returns the type of the object, not its contents. However, by feeding theiterator to the list function, we cause it to squirt out the rest of its contents, meaning it is now exhausted. When theiterator is then fed to the next method, it raises an exception, a StopIteration. >>> def test(): try: next(theiterator) except StopIteration: print("I'm exhausted") >>> test() I'm exhausted Note that the range object is happy to return a "reversed" iterator, so instead of stepping by -1, you might do something like: >>> theiterator = reversed(range(10)) >>> next(theiterator) 9 >>> next(theiterator) 8 >>> for item in theiterator: print (item, end=" ") 7 6 5 4 3 2 1 0 Here's an author unhappy with Python's iterators. His commentators debate him. You may learn more about a language by reading the arguments people have about it. What's frustrating. What's considered "a wart". http://sandersn.com/blog//index.php/2009/06/29/python_s_iterators_are_a_bad_implementat You might imagine how iterators could contribute to a programmer's confusion, when trying to debug code. They're not like collections of static data, are more like "mortal coils" or one-time-through sequences. An iterator passed to a function and partially advanced, with have been modified "off stage". >>> theiterator = reversed(range(10)) >>> next(theiterator) 9 This function returns nothing, but has the effect of advancing the passed in iterator. The object being passed in is bound to the name theinput for local processing, which name goes out of scope when the function is finished. However, the object still persists "on the outside" and has been affected by what went on in this function. >>> def squeeze_me( theinput, howmany): for i in range( howmany ): next( theinput ) >>> squeeze_me ( theiterator, 3 ) >>> next(theiterator) 5 Here's an instructive example of changes to Python's behavior resulting in new wrinkles: http://lists.fedoraproject.org/pipermail/devel/2009-September/037966.html The __length_hint__ attribute (mentioned in the above report) is one you might use to get a sense of how close your iterator might be to exhaustion. When converting an iterator to a list, this attribute is apparently consulted, which is what was causing problems in a user-defined class (__get_attr__ had been redefined). This problem has apparently been resolved in Python 3.x as I'm getting the expected behavior. More dialog with "the snake": >>> thelist = ['a',1,2,['another','list']] >>> next(thelist) Traceback (most recent call last): File "", line 1, in next(thelist) TypeError: list object is not an iterator >>> '__iter__' in dir(thelist) True >>> theiterator = iter(thelist) >>> next(theiterator) 'a' >>> next(theiterator) 1 >>> next(theiterator) 2 >>> next(theiterator) ['another', 'list'] >>> next(theiterator) Traceback (most recent call last): File "", line 1, in next(theiterator) StopIteration >>> For further reading: http://worldgame.blogspot.com/2009/11/kicking-can-down-road.html Kirby From kirby.urner at gmail.com Sat Mar 27 06:57:46 2010 From: kirby.urner at gmail.com (kirby urner) Date: Fri, 26 Mar 2010 22:57:46 -0700 Subject: [Edu-sig] about iterators, range, and summing consecutive integers In-Reply-To: References: Message-ID: On Fri, Mar 26, 2010 at 10:38 PM, kirby urner wrote: << snip >> > How else might we address a Python range object? > > With slicing notation: > >>>> d[1] > 1 >>>> d[4] > 4 > Erratum: no, not with slicing notation, with individual indexes only: >>> d[2:3] Traceback (most recent call last): File "", line 1, in d[2:3] TypeError: sequence index must be integer, not 'slice' >>> Apologies. Thanks for the pointer to an overview of turtle graphics responses Daniel. I always thought Logo was under-appreciated for what it could do completely independently of having a turtle. Your libraries prove that you really appreciate Logo. Speaking of turtle art, I found this entertaining session with Alex Martelli helping out: http://stackoverflow.com/questions/1452311/turtlegraphics-python-constraining-random-moving-turtle-in-a-circle Note: The iterator stuff I just posted is to help with a 'Gnomon Studies' lesson plan... http://groups.yahoo.com/group/synergeo/message/58114 Kirby From john.graves at aut.ac.nz Sun Mar 28 03:27:18 2010 From: john.graves at aut.ac.nz (John Graves) Date: Sun, 28 Mar 2010 14:27:18 +1300 Subject: [Edu-sig] Dreaming in Code by Scott Rosenberg (2007) Message-ID: <4BAF6747020000E90001224E@smtpdom.aut.ac.nz> This book is about the open source, python-based Chandler project ( http://chandlerproject.org/ last mentioned on Edu-sig in 2006) and, more broadly, about the art of creating software. Here is the website for the book: http://www.dreamingincode.com/ And a Salon interview with the author: http://www.salon.com/books/int/2007/02/03/leonard/ Surprisingly, this book has not been mentioned before on Edu-sig if a Google search of the archives is to be believed. Here are excerpts [and comments on the excerpts] which suggest why it might be useful to Python-using Educators: pg 41 Torvalds, who is known as Benevolent Dictator for Life of the Linux operating system, consistently exudes a calm optimism about the long-term prospects for the movement he symbolizes. "In science," as he explained in a 2004 interview in Business Week, "the whole system builds on people looking at other people's results and building on top of them. In witchcraft, somebody had a small secret and guarded it--but never allowed others to really understand it and build on it. Traditional software is like witchcraft. In history, witchcraft just died out. The same will happen in software. When problems get serious enough, you can't have one person or one company guarding their secrets. You have to have everybody share in knowledge." [Are the principles of open source and the reading of well written code parts of your curriculum?] pg 43 In the 1962 essay that laid out his plan of research into the augmentation of human intelligence, Engelbart explained why computer programmers were the most promising initial target group. ... [He] noted that "successful achievements can be utilized within the augmentation-research program itself, to improve the effectiveness of the computer programming activity involved in studying and developing augmentation systems. The capability of designing, implementing, and modifying computer programs will be very important to the rate of research progress." In other words, if NLS [oNLine System] could help his programmers program better, they'd be able to improve NLS faster. You'd have a positive feedback loop. You'd be, in the term Engelbart favored, bootstrapping. To Engelbart, bootstrapping meant "an improving of the improvement process." pg 98 "If it takes the typical programmer more than two minutes and twenty-seven seconds to find something," Constantine wrote, "they will conclude it does not exist and therefore will reinvent it." [How do you teach code reuse and enhancement?] pg 127 There is no reliable relationship between the volume of code produced and the state of completion of a program, its quality, or its ultimate value to a user. ... The week that he was asked to fill out the new management form for the first time, Atkinson had just completed rewriting a portion of the Quickdraw code, making it more efficient and faster. The new version was 2000 lines of code shorter than the old one. What to report? He wrote in the number -2000. [What do you teach students to produce -- code or value-to-the-user?] pg 149 In 1990, at the PC Forum gathering of computer industry luminaries, Kapor first delivered the text of his "Software Design Manifesto." No one is speaking for the poor user. ... Perhaps the most important conceptual move to be taken is to recognize the critical role of design, as a counterpart to programming, in the creation of computer artifacts. ... Reaching back to ancient Rome, Kapor proposed applying to software the architecture theorist Vitruvius's principles of good design: firmness--sound structure, no bugs; commodity--"A program should be suitable for the purposes for which it was intended"; delight--"The experience of using the program should be a pleasurable one." [What design principles do you teach? How do they compare?] pg 245 [In "Methods" chapter, discussion of CMM:] One Humphrey presentation offered these bluntly persuasive bullet points: - We all work for organizations. - These organizations require plans. - Unless you are independently wealthy, you must work to a schedule. - If you don't make your own schedules, somebody else will. - Then that person will control your work. pg 252 The meeting found a more virile name for the movement--Agile Software Development--and produced a manifesto that reads in its entirety: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: - Individuals and interactions over processes and tools - Working software over comprehensive documentation - Customer collaboration over contract negotiation - Responding to change over following a plan [Do you expose students to these ideas?] pg 306 Knuth's faith is distilled in the haiku-like poem by the Danish poet/scientist/designer Piet Hein that adorns the entryway to his home: The road to wisdom?--Well, it's plain and simple to express: Err and err and err again but less and less and less. Literate programming is intended as an antidote to the excruciating fact that, as Joel Spolsky puts it, "it's harder to read code than to write it. Instead of imaging that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. [By implication, if you do not teach literate programming, you teach "illiterate" programming! ;-) ] pg 268 [Rosenberg's Law] Software is easy to make, except when you want it to do something new. [corollary] The only software that's worth making is software that does something new. [see also discussion at http://www.wordyard.com/2007/01/15/rosenbergs-law/ ] pg 314 After spending some time studying Chandler's code base, Eby posted to his blog a lengthy entry titled "Python Is Not Java." ... So, the sad thing is that these poor folks worked much, much harder than they needed to, in order to produce much more code than they needed to write, that then performs much more slowly than the equivalent idiomatic Python would. ... Pretend that Python is a magic wand that will miraculously do whatever you want without you having to lift a finger. Ask, "how does Python already solve my problem?" and "What Python language feature most resembles my problem?" You will be absolutely astonished at how often it happens that [the] thing you need is already there in some form. [ http://dirtsimple.org/2004/12/python-is-not-java.html ] ---- I found the book very informative and inspiring--especially in light of another open source, Python-based project, Open Allure, a voice-and-vision enabled educational software, which is part of my PhD study of open source software development. If you are interested in following this project, check out the short videos at http://bit.ly/openallure join the discussion list at http://bit.ly/openalluregg or get the source code at http://openallureds.org John Graves Auckland NEW ZEALAND From lognaturel at gmail.com Sun Mar 28 04:09:50 2010 From: lognaturel at gmail.com (Helene Martin) Date: Sat, 27 Mar 2010 19:09:50 -0700 Subject: [Edu-sig] Dreaming in Code by Scott Rosenberg (2007) In-Reply-To: <4BAF6747020000E90001224E@smtpdom.aut.ac.nz> References: <4BAF6747020000E90001224E@smtpdom.aut.ac.nz> Message-ID: Agreed that it's a very entertaining and informative read. I really enjoyed this one and have recommended it to students. On Sat, Mar 27, 2010 at 6:27 PM, John Graves wrote: > This book is about the open source, python-based Chandler project ( http://chandlerproject.org/ last mentioned on Edu-sig in 2006) and, more broadly, about the art of creating software. > > Here is the website for the book: > http://www.dreamingincode.com/ > > And a Salon interview with the author: > http://www.salon.com/books/int/2007/02/03/leonard/ > > Surprisingly, this book has not been mentioned before on Edu-sig if a Google search of the archives is to be believed. > > Here are excerpts [and comments on the excerpts] which suggest why it might be useful to Python-using Educators: > > pg 41 > Torvalds, who is known as Benevolent Dictator for Life of the Linux operating system, consistently exudes a calm optimism about the long-term prospects for the movement he symbolizes. "In science," as he explained in a 2004 interview in Business Week, "the whole system builds on people looking at other people's results and building on top of them. ?In witchcraft, somebody had a small secret and guarded it--but never allowed others to really understand it and build on it. Traditional software is like witchcraft. ?In history, witchcraft just died out. The same will happen in software. When problems get serious enough, you can't have one person or one company guarding their secrets. You have to have everybody share in knowledge." > > [Are the principles of open source and the reading of well written code parts of your curriculum?] > > pg 43 > In the 1962 essay that laid out his plan of research into the augmentation of human intelligence, Engelbart explained why computer programmers were the most promising initial target group. ?... [He] noted that "successful achievements can be utilized within the augmentation-research program itself, to improve the effectiveness of the computer programming activity involved in studying and developing augmentation systems. ?The capability of designing, implementing, and modifying computer programs will be very important to the rate of research progress." ?In other words, if NLS [oNLine System] could help his programmers program better, they'd be able to improve NLS faster. ?You'd have a positive feedback loop. You'd be, in the term Engelbart favored, bootstrapping. > ? ?To Engelbart, bootstrapping meant "an improving of the improvement process." > > pg 98 > "If it takes the typical programmer more than two minutes and twenty-seven seconds to find something," Constantine wrote, "they will conclude it does not exist and therefore will reinvent it." > > [How do you teach code reuse and enhancement?] > > pg 127 > There is no reliable relationship between the volume of code produced and the state of completion of a program, its quality, or its ultimate value to a user. ... The week that he was asked to fill out the new management form for the first time, Atkinson had just completed rewriting a portion of the Quickdraw code, making it more efficient and faster. ?The new version was 2000 lines of code shorter than the old one. ?What to report? He wrote in the number -2000. > > [What do you teach students to produce -- code or value-to-the-user?] > > pg 149 > In 1990, at the PC Forum gathering of computer industry luminaries, Kapor first delivered the text of his "Software Design Manifesto." > > ? No one is speaking for the poor user. ?... Perhaps the most important conceptual move to be taken is to recognize the critical role of design, as a counterpart to programming, in the creation of computer artifacts. ?... > > Reaching back to ancient Rome, Kapor proposed applying to software the architecture theorist Vitruvius's principles of good design: > > firmness--sound structure, no bugs; > commodity--"A program should be suitable for the purposes for which it was intended"; > delight--"The experience of using the program should be a pleasurable one." > > [What design principles do you teach? ?How do they compare?] > > pg 245 > [In "Methods" chapter, discussion of CMM:] > One Humphrey presentation offered these bluntly persuasive bullet points: > - We all work for organizations. > - These organizations require plans. > - Unless you are independently wealthy, you must work to a schedule. > - If you don't make your own schedules, somebody else will. > - Then that person will control your work. > > pg 252 > The meeting found a more virile name for the movement--Agile Software Development--and produced a manifesto that reads in its entirety: > > ? We are uncovering better ways of developing software by doing it and helping others do it. > ? ? ?Through this work we have come to value: > ? ? ?- Individuals and interactions over processes and tools > ? ? ?- Working software over comprehensive documentation > ? ? ?- Customer collaboration over contract negotiation > ? ? ?- Responding to change over following a plan > > [Do you expose students to these ideas?] > > pg 306 > Knuth's faith is distilled in the haiku-like poem by the Danish poet/scientist/designer Piet Hein that adorns the entryway to his home: > > The road to wisdom?--Well, it's plain > and simple to express: > Err > and err > and err again > but less > and less > and less. > > Literate programming is intended as an antidote to the excruciating fact that, as Joel Spolsky puts it, "it's harder to read code than to write it. > > ? ?Instead of imaging that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. > > [By implication, if you do not teach literate programming, you teach "illiterate" programming! ;-) ] > > pg 268 > [Rosenberg's Law] > Software is easy to make, except when you want it to do something new. > [corollary] > The only software that's worth making is software that does something new. > > [see also discussion at http://www.wordyard.com/2007/01/15/rosenbergs-law/ ] > > pg 314 > After spending some time studying Chandler's code base, Eby posted to his blog a lengthy entry titled "Python Is Not Java." > > ? ... So, the sad thing is that these poor folks worked much, much harder than they needed to, in order to produce much more code than they needed to write, that then performs much more slowly than the equivalent idiomatic Python would. > > ... > > ?Pretend that Python is a magic wand that will miraculously do whatever you want without you having to lift a finger. ?Ask, "how does Python already solve my problem?" and "What Python language feature most resembles my problem?" You will be absolutely astonished at how often it happens that [the] thing you need is already there in some form. > > [ http://dirtsimple.org/2004/12/python-is-not-java.html ] > > ---- > > I found the book very informative and inspiring--especially in light of another open source, Python-based project, Open Allure, a voice-and-vision enabled educational software, which is part of my PhD study of open source software development. If you are interested in following this project, check out the short videos at > > http://bit.ly/openallure > > join the discussion list at > > http://bit.ly/openalluregg > > or get the source code at > > http://openallureds.org > > John Graves > Auckland > NEW ZEALAND > > > > > > > _______________________________________________ > Edu-sig mailing list > Edu-sig at python.org > http://mail.python.org/mailman/listinfo/edu-sig > From kirby.urner at gmail.com Sun Mar 28 07:54:57 2010 From: kirby.urner at gmail.com (kirby urner) Date: Sat, 27 Mar 2010 22:54:57 -0700 Subject: [Edu-sig] Dreaming in Code by Scott Rosenberg (2007) In-Reply-To: <4BAF6747020000E90001224E@smtpdom.aut.ac.nz> References: <4BAF6747020000E90001224E@smtpdom.aut.ac.nz> Message-ID: > Surprisingly, this book has not been mentioned before on Edu-sig if a Google search of the archives is to be believed. > I believe you're correct. > Here are excerpts [and comments on the excerpts] which suggest why it might be useful to Python-using Educators: > > pg 41 > Torvalds, who is known as Benevolent Dictator for Life of the Linux operating system, consistently exudes a calm optimism about the long-term prospects for the movement he symbolizes. "In science," as he explained in a 2004 interview in Business Week, "the whole system builds on people looking at other people's results and building on top of them. ?In witchcraft, somebody had a small secret and guarded it--but never allowed others to really understand it and build on it. Traditional software is like witchcraft. ?In history, witchcraft just died out. The same will happen in software. When problems get serious enough, you can't have one person or one company guarding their secrets. You have to have everybody share in knowledge." > I'd not seen this quote before. I understand his point of course. However, having someone proclaimed a dictator in Business Week saying negative stuff about witchcraft might not be the best PR imaginable. The guy lives in Portland, you'd think he'd know better? Note that wizards seem to get off, i.e. Unix culture embraced the wizard meme (Google for hits), but not witch (hardly any). I tried introducing "FOSS witch" on Diversity (python.org) and appeared to get no takers. Hacker, pirate, wizard, geek, dictator... but not witch. I realize there are male witches (technically) but thought some "subversive word" (like pirate) with a clear slant towards women, might actually be a positive contribution. Just about all the hits on Google are my own uses of this term ("FOSS coven" was another). I think the history here is that both alchemy and witchcraft were proto-sciences and didn't so much die out as transform. They became actual sciences with the spread of literacy and less persecution by religious authorities. Witches were herbalists, practitioners of medicinal arts. Alchemists were metallurgists and chemists. The culture witches lived in believed in curses and spells (as many do today), so countering spells against a client would count as psychotherapy by today's standards. Witches were proto-psychologists. Witchcraft waned in proportion to people no longer taking it seriously, meaning you could no longer be put on trial for its practice, any more than for practicing magic or voodoo -- unless animals were harmed in the process, or you happened to be an economist. :) I'd rather cast the Spanish Inquisition as cathedralist and anti-FOSS, secretive and control freaky: a priesthood (mostly male and hierarchical), looking appropriately klannish in those identity-masking pointy hoods. Witches and wizards, good people of the forest, are more egalitarian and self-organizing, are the open sourcery types trading goods and skills in the free-wheeling bazaar. They're like faculty at Hogwarts, more liberal artsy, more collegial. Just my own bias. OK, back to regularly scheduled programming... Kirby From bert at freudenbergs.de Sun Mar 28 14:36:23 2010 From: bert at freudenbergs.de (Bert Freudenberg) Date: Sun, 28 Mar 2010 14:36:23 +0200 Subject: [Edu-sig] [OT] Re: Dreaming in Code by Scott Rosenberg (2007) In-Reply-To: References: <4BAF6747020000E90001224E@smtpdom.aut.ac.nz> Message-ID: <98A9A655-3CDB-4140-9A04-DA3E71B196EA@freudenbergs.de> On 28.03.2010, at 07:54, kirby urner wrote: > > I tried introducing "FOSS witch" on Diversity (python.org) and > appeared to get no takers. > > Hacker, pirate, wizard, geek, dictator... but not witch. Google for "haecksen". The German word for witch is "Hexe", plural "Hexen". The German pronunciation of "Haeckse" is almost identical to "Hexe". It was created as a play on the word "Hacker" which is masculine in German, the canonical femininum would be "Hackerin" (i.e., 'hacktress'). But "Haeckse" is much more playful and creative so this is how some women in the CCC started to call themselves. Also it sounds decidedly unixy, some old-school hackers still insist the plural of "unix" is "unixen" and the boxes running them are "boxen". Since "witch" nowadays has a generally positive connotation (not the least because of J.K.Rowling's and other's books) it at least elicits a giggle when telling girls about this. In Germany anyway. - Bert - From kirby.urner at gmail.com Sun Mar 28 20:42:08 2010 From: kirby.urner at gmail.com (kirby urner) Date: Sun, 28 Mar 2010 11:42:08 -0700 Subject: [Edu-sig] [OT] Re: Dreaming in Code by Scott Rosenberg (2007) In-Reply-To: <98A9A655-3CDB-4140-9A04-DA3E71B196EA@freudenbergs.de> References: <4BAF6747020000E90001224E@smtpdom.aut.ac.nz> <98A9A655-3CDB-4140-9A04-DA3E71B196EA@freudenbergs.de> Message-ID: On Sun, Mar 28, 2010 at 5:36 AM, Bert Freudenberg wrote: > On 28.03.2010, at 07:54, kirby urner wrote: >> >> I tried introducing "FOSS witch" on Diversity (python.org) and >> appeared to get no takers. >> >> Hacker, pirate, wizard, geek, dictator... but not witch. > > Google for "haecksen". > > The German word for witch is "Hexe", plural "Hexen". The German pronunciation of "Haeckse" is almost identical to "Hexe". It was created as a play on the word "Hacker" which is masculine in German, the canonical femininum would be "Hackerin" (i.e., 'hacktress'). But "Haeckse" is much more playful and creative so this is how some women in the CCC started to call themselves. Also it sounds decidedly unixy, some old-school hackers still insist the plural of "unix" is "unixen" and the boxes running them are "boxen". > > Since "witch" nowadays has a generally positive connotation (not the least because of J.K.Rowling's and other's books) it at least elicits a giggle when telling girls about this. In Germany anyway. > > - Bert - Very cool Bert, and also encouraging. Thx! I'll share with other members of the coven. :) Kirby