A Python quote I liked by, I think, Michael Hudson was, (loose quote, I can't dig it up): "Python blurs the line between programming a computer, and using a computer". Relevant, as I realize that my approach to learning Python has been closer to learning a software application than the traditional approach to learning to program and learning a programming language. For better and worse, I guess. Probably because I learned a number of software applications - some complex - before I ever sat down to learn "to program". And in thinking back, I think what worked for me about Python - and why I found myself comfortable with it quickly - was that it seemed to respond to that approach. Treat it as an application and I am not doing anything I haven't done before - just learning a different kind of application. And maybe that's were I fell off the "Python is easy" bus - it's a relatively hard application to learn. But for me - at least - a hard application is easier to learn than an easy programming language ;) I focus on having a dialog with Python's behavior. And that is conducted mostly by throwing code at it, and then registering the result - until I zone in more and more finely on controlling the result by controlling the code I throw at it. effbot once accused me of not understanding Python because I said something that indicated I didn't understand duck typing - at least in the way he understands it should be understood. And my feeling was that to the extent I understand how Python behaves, given code as input, and if Python is behaving in a manner that is called duck typing - then I understand duck typing. I felt this is worth posting/ thinking about - because as it is, most folks have learned some relatively complex applications before ever thinking about programming. My son has, my wife has - personal frame of reference-wise. And it seems to me that if the approach to teaching Python was more toward Python as an application, than as a "programming language", better results might be achievable for a wider range of people. FWIW. Art
On Tue, Oct 25, 2005 at 04:26:26PM -0400, Arthur wrote:
... I realize that my approach to learning Python has been closer to learning a software application than the traditional approach to learning to program and learning a programming language.
...
I focus on having a dialog with Python's behavior. And that is conducted mostly by throwing code at it, and then registering the result - until I zone in more and more finely on controlling the result by controlling the code I throw at it.
...
And it seems to me that if the approach to teaching Python was more toward Python as an application, than as a "programming language", better results might be achievable for a wider range of people.
FWIW.
Thank you for your comments, that is worth something to me. Question for you: How much did Python's interactive mode (the >>> prompt thingy) help you in your explorations? As you threw code at Python, how often did you create scratch .py files and run them, vs. trying something at the interactive prompt? -- David Handy Computer Programming is Fun! Beginning Computer Programming with Python http://www.handysoftware.com/cpif/
David Handy wrote:
Thank you for your comments, that is worth something to me.
Question for you: How much did Python's interactive mode (the >>> prompt thingy) help you in your explorations? As you threw code at Python, how often did you create scratch .py files and run them, vs. trying something at the interactive prompt.
At the early stages *extremely* important. At the early stage my "programs" were nothing more than scratch files themselves, and even then I would tend to have both a prompt and an editor open, conducting some form of an interactive dialog before "committing to paper".. Art
Arthur wrote:
Relevant, as I realize that my approach to learning Python has been closer to learning a software application than the traditional approach to learning to program and learning a programming language.
Relevant autobiographical note is the fact that what has me focusing on this distinction is a recent conversation with my son wherein he told me how much he is enjoying a class that has him digging into learning Excel. And I cannot help posting a cry into cyberspace on this point. My son is learning something about using a spreadsheet - extremely useful and I support it 100%. That he thinks what he is learning is Excel is absolutely unforgivable, in terms of my understanding of ethical norms that once prevailed in an institute of higher education. We understand how derivative Excel is of others' important work. He apparently never will - unless I intercede. The institution I am supporting by tuition and the taxpayer is subsidizing, is collaborating with a mega-corporation's branding strategies. For no good reason. We understand that all the functionality he will ever need from Excel is available for free in other spreadsheet software. He apparently never will - unless I intercede. Do I care that he is using Excel rather than an open source alternative. Not really. Do I care that he is within an institution that has lost its bearings on fundamental matters of academic ethics. Immensely. Do I care that I am made to feel that this point of view is somehow radical on a educational forum that is an offshoot of an open source software community. It scares me, frankly. ARt
Arthur wrote:
Do I care that he is within an institution that has lost its bearings on fundamental matters of academic ethics.
Last consecutive post - promise. What the early (Unix shell) 'net meant to someone like myself more than anything else was access to the connected academic world for someone who was otherwise cut off from it. What the last ten years seems to have brought to me is a graphical interface to that world, and a lot fewer reasons to want to access it. Art
Hello Arthur, Tuesday, October 25, 2005, 4:26:21 PM, you wrote: A> We understand that all the functionality he will ever need from Excel is A> available for free in other spreadsheet software. A> He apparently never will - unless I intercede. Does it really matter where the software came from, especially if the open-source version is made to be a virtual copy of Excel (as Open Office is)? He's learning Good Stuff. Why muddy the waters with orthogonal political and business issues? What difference will this make to your son's software/programming experience? Especially at his age (I assume he's not in college by your description), why not let him explore with the tools he has. (And please don't swear at me.) -- Best regards, Chuck
-----Original Message----- From: Chuck Allison [mailto:chuck@freshsources.com] Sent: Wednesday, October 26, 2005 2:05 AM To: Arthur Cc: edu-sig@python.org Subject: Re[2]: [Edu-sig] Python as Application
Hello Arthur,
Tuesday, October 25, 2005, 4:26:21 PM, you wrote:
A> We understand that all the functionality he will ever need from Excel is A> available for free in other spreadsheet software.
A> He apparently never will - unless I intercede.
Does it really matter where the software came from, especially if the open-source version is made to be a virtual copy of Excel (as Open Office is)? He's learning Good Stuff. Why muddy the waters with orthogonal political and business issues? What difference will this make to your son's software/programming experience? Especially at his age (I assume he's not in college by your description), why not let him explore with the tools he has.
(And please don't swear at me.)
Chuck, I am trying to be a good boy. In replying to David's question about how important the interactive prompt was to my learning experience, I edited out my blast at the educator who got himself granted to maintain VPython. For distributing it bundled in such a way that - at least on Windows - there is a conscious decision to override the expressed will of the author of IDLE (a Mr. Guido somethingorother), and fuck with its configuration files (I cursed) in a way that good etiquette dictates one does not fuck with someone else's configuration files (I cursed again) - so as to obscure the existence of the silly interactive prompt. I guess you provoked me enough to un-edit it out, and at least to get some curses out of my system. And what was Excel a virtual copy of? I honestly don't feel our society survives a moratorium on matters of principle - even in the interests of the advancement of technology. Though there is good enough evidence that there is little appetite for discussion of these things here, and I will try to accept the judgment that one man's apples and apples may be other folks apples and oranges. Art
-----Original Message----- From: Chuck Allison [mailto:chuck@freshsources.com] Sent: Wednesday, October 26, 2005 2:05 AM To: Arthur Cc: edu-sig@python.org Subject: Re[2]: [Edu-sig] Python as Application
Hello Arthur,
Tuesday, October 25, 2005, 4:26:21 PM, you wrote:
A> We understand that all the functionality he will ever need from Excel is A> available for free in other spreadsheet software.
A> He apparently never will - unless I intercede.
Sometimes we use Visual Basic for Application in Excel to teach digital image processing, or digital speech processing. I never found powerfull tools such as VBA in any free spreadsheet software. Iwan Awaludin
-----Original Message----- From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On Behalf Of Iwan Awaludin Sent: Wednesday, October 26, 2005 3:27 AM To: edu-sig@python.org Subject: Re: [Edu-sig] Python as Application
Sometimes we use Visual Basic for Application in Excel to teach digital image processing, or digital speech processing. I never found powerfull tools such as VBA in any free spreadsheet software.
Iwan Awaludin
My comments on these matters are really only focused on matters as they stand and have stood in the U.S.. I don't have expectations as to the academic traditions in other places, so that I am beyond being offended by seeing them become - as we say - as mutable as they have seem to have become here. Though if you exposed further what you were trying to accomplish for students in terms of digital image processing via VBA, I would most certainly bet that we can find you a good/better alternative using Python and tools. I understand the practical realm of things quite well, and am pretty effective with VBA myself. My problem was I didn't have the stomach to sit down to make a project of learning it. Clever guy that I am, I reasoned that if I undertook to do something a bit more serious - like learning Python - then what I needed to know to do what I need to do in VBA would get thrown in for free. Which is pretty much as things have worked out. Art
-----Original Message----- From: edu-sig-bounces@python.org [mailto:edu-sig-bounces@python.org] On Behalf Of Arthur
Clever guy that I am, I reasoned that if I undertook to do something a bit more serious - like learning Python - then what I needed to know to do what I need to do in VBA would get thrown in for free. Which is pretty much as things have worked out.
Sorry to comment on my own comment, again - but I want to expand this thought a bit. When looked at from my personal frame of reference and the experience, among other things, as a business person - it is the old rules that work. My route to a practical, business-oriented understanding of technology included - probably as its most important effort - undertaking the effort of learning abstract mathematics with the help of a multi-paradigm Open Source programming language. If industry wants sharp C# folks, they are not going to get them by turning CS department into C# training grounds. They are industry - not their job to understand that. It is educators' job to understand that. Played by what I consider to be the older rules of the game, everybody wins. Art
Arthur wrote:
My route to a practical, business-oriented understanding of technology included - probably as its most important effort - undertaking the effort of learning abstract mathematics with the help of a multi-paradigm Open Source programming language.
Seeing multi-paradigm triggers the tought of Oz/Mozart in my brain. Do you know Mozart? http://www.mozart-oz.org/ ? It is a Opens-Source multiparadigm language with functional programming (including terminal recursivity), logic (single-assignment) variables, dataflow concurrency (through suspending thread on undetermined variables), object-orientation, transparent distribution, and constraint programming (did I forget one ? :-) A recent very good introductory book uses it to travel among the world of the different programming paradigms: "Concepts, Techniques, and Models of Computer Programming" http://mitpress.mit.edu/0262220695 I found many things similar to Python stuff in there and I think both languages could benefit from each other. Best, -- Grégoire Dooms
Grégoire Dooms wrote:
I found many things similar to Python stuff in there and I think both languages could benefit from each other. Best, -- Grégoire Dooms
I actually have looked at it top-level fairly recently. But the little time I have to explore new things is being spent exploring old things - Lisp. Reading -slowly - Paul Graham's classic On Lisp http://www.paulgraham.com/onlisp.html Not very far into it but have been influenced already by the "bottom-up" approach which he talks about as Lisp's strength - the concept of building layers of a domain specific "programming language" appropriate to an application. Wasn't really conscious of it, but that is I think how I got to the concept of the mutable complex number - if that's what I think my program needs (I am not convinced yet it does, but what the heck, let's look at it), build the mutable complex number. Love this stuff. Art
-----Original Message----- From: edu-sig-bounces+ajsiegel=optonline.net@python.org [mailto:edu-sig- bounces+ajsiegel=optonline.net@python.org] On Behalf Of Arthur Sent: Thursday, October 27, 2005 10:25 AM To: Grégoire Dooms
But the little time I have to explore new things is being spent exploring old things - Lisp.
Those, BTW, are very related issues. With little time, I feel I only have time to explore things that have withstood the test of time. Novels, poetry and programming languages Art
On 10/26/05, Arthur <ajsiegel@optonline.net> wrote:
And what was Excel a virtual copy of? Art
I actually do have a copy of VisiCalc lying around, but I need a new power supply for my Apple ][e so that I can run it (http://oldapples.blogspot.com). I find Excel (or the TI-83, or other spreadsheet tool) to be a decent planning tool, and then once the project exceeds Excel's capabilities, I turn it into a relational database in Python. One huge thing to beware: Excel doesn't use the proper order of operations -- it evaluates exponents from left to right rather than from the top expression down. That is, 4^3^2 in Excel is (4^3)^2 where in Python, 4 ** 3 ** 2 is (properly) 4 ** (3 ** 2) the moral of the story is that programmers should ALWAYS use parentheses to avoid rude surprises.
-----Original Message----- From: Lloyd Hugh Allen [mailto:chandrakirti@gmail.com] Sent: Wednesday, October 26, 2005 6:15 AM To: Arthur Cc: Chuck Allison; edu-sig@python.org Subject: Re: [Edu-sig] Python as Application
I find Excel (or the TI-83, or other spreadsheet tool) to be a decent planning tool, and then once the project exceeds Excel's capabilities, I turn it into a relational database in Python.
I appreciate Excel in one respect. You recognize when a project exceeds Excel's capabilities, and have a "next step". Most folks - in the real business world (at least in the world of midsize and small business), don't. I am quite convinced I can go into 90% of the businesses out there, and improve processes, efficiencies, and organizational dynamics by analyzing how Excel is being used, and replace it with more appropriate technology. That's in fact largely how I make my living. I don't see many matters "matters of principle" in terms of technology selection in the business environment. But am part of the problem in some respect by, so far, sticking with "name brand" technologies. I know Python decently, and databases decently - but oddly have not done much database work, with Python. I would be quite interested in hearing about your path from Excel to relational database with Python. Can you describe your toolset more completely. Art
participants (6)
-
Arthur -
Chuck Allison -
David Handy -
Grégoire Dooms -
Iwan Awaludin -
Lloyd Hugh Allen