RE: [Edu-sig] Natural Language Programming
Hi Art,
One last effort -
One last reply. :-)
Anyone who has worked at all with 3d graphics knows that a pretty standard vocabulary has developed, by a process of natural selection, over numbers of years.
99.5% (please don't quote me on the statistic and find other exceptions) of the 3d graphics world has settled on a vocabulary. Presumably lots of very smart people where involved in the trial and error process. And what we have is what I suspect is exactly what has been determined to be the most natural language (in standard English) necessary to do a particular job, while avoiding ambiguities and other evils. Could certain vocabulary words turned out diffierently. Probably. But the point is its done, and without *COMPELLING* evidence there is no reason to change it.
I would serious suggest that anyone with a deep interest in the subject of natual language technology study the development. of 3d vocabulary. Because in the end what we are left with is substanital (though not perfectly - we do go to third and fourth defintions of standard English words) natural language.
And vocabulary is about nothing if it is not about communication.
Here is where I disagree or at least disagree with your conclusions. Language is about communicating in the broad sense. Sometimes the communication is on many levels and often one of those levels is a level of exclusion. Vocabulary can be used to say "I am an insider and you are an outsider." Take legal language for example. This has also evolved by a process of natural selection, over a number of years. It exists the way it does (opaque) for several reasons 1) It creates a level of precision. 2) It evolved this way from archaic forms of English. 3) There is resistance to change for fear that the precision will be lost. If it ain't broke don't fix it. 4) It creates a private club with a language understood only by the practicioners thus inreasing the value of their skills. It is part of what sets apart those special people who have "passed the bar." 5) Practicioners are not bothered by the vocabulary once they have entered the priesthood and have little incentive to change it. 4 is a not inconsiderable issue. There is a lot of legal pomp and circumstance that is intended merely to emphasize the importance and solemnity of the occasion and to create respect for the process. There no legal reason that the judge needs to sit on his high bench. The bench represents his authority. "All rise." Why the heck should we rise when the judge enters. These proceedures and the language of the law in general exist at least partially to reduce communication. The entire legal process is an excercise in controlled communication (ie limiting communication.) Many things are not allowed to be said in the courtroom, Perry Mason to the contrary. In other words the language of the law is about limiting communication. And how about music. Music notation is a kludge. Only music in the key of C makes sense. Sharps and flats are repairs to the defective system. In a properly designed music notation system intervals (the relationship between notes) would be implicit in the notation. Music is interval and timing. An octave should leap out at you just from the notation. A fifth should shout its existance. Music notation was designed for playing, not composition or analysis. The structure of music (what sounds interesting and why) is highly mathematical. I defy anyone to see the mathematics in music notation. The closely held secret of music theory is that it is simple. It is only the language that is more opaque than it could be. There's many a potential talented musician who couldn't learn to read music. Is the defect in them or the notation? I suggest that it is the notation, hundreds of years of acceptance or not. An M4E program would have to address this. Just because there is an accepted vocabulary doesn't mean that it is easy to learn or that there aren't better alternatitives. What we have here is what economists call lock in. (VCS vs. Beta is the classic example.) Current practice is often far from best known practice. This is true of any evolutionary system. Why this happens is a large, well studied subject that I don't want to go into to deeply here but I'll make a simple pass. Physicists think of these as local minima. A marble rolling down a hill doesn't always reach the lowest point in spite of the driving force of gravity. The path is critical. Local dips in the terrain grab it and prevent it from going lower. The same is true of the evolution of vocabulary.
I have a simple premise. If something is easy for me to comprehend, it is easy for the next guy. I am not sure who I would be if I thought otherwise. Not someone I would like very much.
Strange premise. There are things that are easy for you that are hard for me. This is a simple fact and no insult. I am baffled as to why you would dislike yourself for acknowledging this simple fact.
By calling the next guy stupid, you're calling me stupid because in some other area of endeavor I am going to be the novice. And I am not even going to have the opportunity to tell you - "translate", "move" - got it, next.
Since you like being personal in these discussions let me offer myself as one of several examples. Perhaps this personification will make my point clearer to you. I do not consider myself stupid even though my ability to acquire vocabulary is limited. I have strengths that I quite immodestly think are more important and make me a quite capapable person. We all have different blends of strengths and weaknesses. The world would be boring if this were not true. People come in all shapes and sizes and capapabilities. For some, new vocabularies are a snap. My father in law was an amazing amateur linguist. He was fluent in 5 languages and did technical translation in 20 more. If he new the subject he could translate in languages he had never seen before as long as it shared common roots with one or more of the languages he did know. (He claimed that most technical words are the same in all languages anyway.) If he wanted to read something he could pick up a working capability for a language in a few weeks. He didn't work hard at this. It came naturally to him. I think the real key to his success was an almost eidetic memory for vocabulary. He had it in large measure. I have it almost not at all. You are probably somewhere in the middle. CP4E needs to address people at my end of the scale. It is an insult to no one to say that my vocabulary learning skills are less than yours. It is a simple fact. My proceedural memory and skills just might be better than yours. They certainly have helped me compensate. I test high in langauge skills because my comprehension of grammer and syntax is high. In spite of that I have never been able to learn other verbal languages because I can't get over the vocabulary hurdle. I have tried again and again. On the other hand I know over 20 programming languages, maybe as many as 30 (it's hard to count because I keep forgetting about the ones I rarely use.) There are generally fewer than 10 key words (basic vocabularly) in programming languages. These are langueages with high syntatic and grammatical content but are almost vocabulary free. So I'm a great programmer but a lousy linguist. I am suggesting very simply and personally that "translate" instead of "move" (and similar words) could have been a barrier to me. By refusing to acknowledge this difference between people you would eliminate people with my strengths and weaknesses from the people you would recruit into a CP4E type effort. Just because you don't have a problem with vocabulary doesn't mean no one else does. It is no insult to me to say so. Special vocabularies are not a barrier to everyone but they are a barrier to some. I am one. Your insistance that my abilities are the same as yours is exclusionary. You deal with my weaknesses by denying that they exist and thus don't help me work around them. That's like saying we should design programs only for the rich because everyone has the same ability to acquire money. I obviously don't mean me personally. I have successfully compensated for my problems with vocabulary, partially by my choice of careers. I over compensate perhaps in working on acquiring and using English vocablary. However CP4E, if the E means anything, should include people to whom vocabulary is a barrier. I assure you that there are more of us than you might think. CP4E (in the broad sense, not just Guido's grant projects) should be about identifying barriers to entry and addressing them. Programming is clearly something that anyone can learn. They don't largely because of various barriers to entry. The correct way to handle this particular barrier is probably with transitional vocabularies (perhaps simple aliases to the less 'naturally' named commands) just the way kindergarden uses transitional spelling stratagies to teach spelling. If you are going to teach 3d programming, eventually the student needs to know the standard vocabulary or they can't benefit from the current body of knowledge. That is no reason to say they shouldn't be allowed into the temple of 3D learning with out jumping this vocabulary hurdle first. I think the heat you see on this subject is from people like me, to whom specialized vocabulary IS a barrier, taking personally your suggestion that our problem doesn't exist or deserve to be addressed. CP4E doesn't mean CP4 everyone whose learning abilities exactly match Arthur Siegel's. Regards, Steve Morris
These are complicated and eternal matters re language that we're tackling. In terms of economics, it's a question of "pay off". People generally don't read Buckminster Fuller's 'Synergetics' (a home base for a lot of the geometry I'm phasing in to K-12) because, upon cracking the cover, they immediately see that the vocabulary is (a) somewhat duanting and (b) fairly unique to Fuller in a lot of ways. It's (b) especially that's the turn-off. Like, what's to gain if what I learn only helps me navigate Bucky Lit 101?? I want _transferrable_ skills. As I'm a product of the Philosophy Department in a lot of ways, I'm used to picking up books with as many flavors of "Being" as Eskimos apocryphally have for "snow". The author will have been pain-stakingly precise, and invented a language that doesn't really exist except between these two covers. Actually, I've just described 'Synergetics' again -- except "Being" isn't the "Snow" in this book (more like "System" or "Tetrahedron"). There are those of us who are tempermentally curious about Individual Philosophers and don't really care that we're spending time in Private Worlds (Wittgenstein's is another I savor). Maybe that's why I like science fiction as well. No, this Universe doesn't really exist and therefore, when I'm done with the book, or the series, and learned a hell of a lot about the ins and outs, I'll maybe be no more "worldly" vis-a-vis the Universe which actually obtains. Or will I? I'm reading 'Red Mars' these days, by the way. The thing about these remote, private languages, these weirdo Philosophies, is that, like Poetic works, they may of partake of what's generalized and principled. So you _do_ absorb something that's of eternal value. And because the Work (Opus) was _internally_ tight, consistent, like a clockworks in a lot of ways, you really _do_ come away with deeper comprehension of Worldly Matters. Transferrability is a possibility, even an actuality. Or so I would claim, based on my personal experience. OK, so now substitute Software Package for Philosophy Book, or Curriculum for Science Fiction Universe, and you start to see where I'm coming from. "Is it really worth my time to master this arcane package and/or language and/or "environment" (I can hear Arthur scoffing)??" That's the central question after all, because life is short. Is there Quality here? Or am I going to be Wasting My Time (cardinal sin?). A good teacher isn't necessarily in a position to answer that in some simple "yes" or "no" way. The best one can do is perhaps say "this is what I found valuable, this is what worked for me along my journey". If the student respects where the teacher ended up, i.e. looks to the teacher as a role model in some ways (kind of what we _mean_ by teacher), then these hints, clues and cues may carry some weight. The earnest student will go check out the teacher's teachers. That's how it really does work in the real world. Finally, as Arthur points out, we over time develop a Community that speaks a similar shop talk, so in gaining entre to a Philosophy (or software package, or language), it's not just a set of skills you're mastering, but a set of contacts, relationships, peers, cronies, colleagues (living and dead). It's not necessarily a point against a Community to say "oh, that's just an inner circle, and exclusive group!" I mean, like, yeah? So? Got a problem with that? Of _course_ we have clubs and clubhouses in this world. Like what'd you expect?? Like, I remember when E.J. Applewhite invited me to his Cosmos Club that time. I didn't have a dinner jacket on me, so we skipped the drink, but I got the tour, and still have the Cosmos Club comb I picked up in the fancy marbled bathroom where it was a true privilege to pee. So if you want to talk shop with the computational geometers, probably a good idea to start learning the lingo, which includes translate, scale, vector, matrix, lattice, symmetry, rotation, symmetry group, polyhedron, vertex, edge, face, Euler, Gauss, Coxeter, Fuller... blah blah blah blah blah blah. Really, it'll be worth your time, if this is the Community in which you seek membership. Or if you're more an Idea Merchant, a Gypsy traveling between Systems, it's at least worth learning some of the key terms and meanings each Community holds dear -- the better to trade with them my dear, and profit from the endless Synergies you will find, if you only live long enough to become trully Worldly Wise (not something you'll become overnight -- and it really helps to find some good teachers). Kirby PS: In Python, don't forget that you can just define synonyms. Like, if your Vector object has a translate(self,v) method (mine does), feel free to write: def move(self,v): return self.translate(v) And you could define resize() as an alternative to scale(). In other words, most powerful languages admit synonyms, even if at the lower levels, we don't admit them because we're trying to be spare (stark, austere, economical) so as not to confuse the poor compiler/interpreter (like, at the level of quantum mechanics, you just want the one proton and neutron, whatever we call 'em).
When I tackled Synergetics I wished that Bucky was able to express his ideas in software, because they could be made so much more expressive and accessible. He was describing some seriously dynamic systems, and the line drawings and text can only convey so much. I think some of the reasons he had to invent so much of the language he used are: 1) As you described, an effort to define precise terms, 2) Inability to *show* the dynamic systems, and 3) his own ego. Part of what I like about your work (and Struck, etc.) is that the dynamic aspects of Synergetics are finally being modelled and illustrated as they should be, which make his ideas available to those who aren't willing to struggle through his weighty tomes (I was one of only two people who checked out Nine Chains to the Moon from my university library--the other was a professor who was as difficult to understand, in his own way, as Bucky). Python also appeals to me in the way it makes programming more accessible. It's still not *easy* by any stretch of the imagination--even with Python's simplicity I find myself reaching for the reference books quite a bit--but it is a big improvement over other programming languages/environments I've worked with (C/C++/Java/Pascal/Awk/Perl/JavaScript/Prolog), enough of improvement that I could imagine teaching it to a "normal" (non-computer-geek) person. There is still room for improvement, of course, especially in the proliferation of GUI tools, but I can at least imagine it. I may have the opportunity to test out my theory soon, as I'm going to try expanding the continuing-ed course on XML I teach at UBC, both to other area universities and colleges, and into a series which includes Python. Programming for the Fun of It needs some reality checks which only students can provide. Thanks for the thought-provoking work. --Dethe p.s., how is Red Mars? I just finished reading Antarctica, by the same author, and was very impressed. It was among the better science fiction, the kind which changes the way you look at the real and present world.
p.s., how is Red Mars? I just finished reading Antarctica, by the same author, and was very impressed. It was among the better science fiction, the kind which changes the way you look at the real and present world.
Satisfying. Haven't found a Python angle yet, as I did for 'Cryptonomicon' (that clubhouse page recently improved with 'cyclic permutations' I swipped from a group theory book). Except to say, I think if humans want to go to Mars then they'll need CP4E to kick in more than it has. Kirby
I'm gonna skip all the *interesting* stuff and get straight to the technical Python nit <wink>: [Kirby Urner]
... PS: In Python, don't forget that you can just define synonyms. Like, if your Vector object has a translate(self,v) method (mine does), feel free to write:
def move(self,v): return self.translate(v)
Too hard! It's enough to do move = translate inside the class body, after the "translate" method has been defined. Example: class C: def hifalutin_offputting_name(self, arg): print arg plainfolks_friendly_name = hifalutin_offputting_name C().plainfolks_friendly_name(42) prints 42.
And you could define resize() as an alternative to scale().
No, I'm afraid that one isn't allowed <wink>. Oh, all right, it is. You can actually have any executable code whatsoever in a class body. At the end of the class body, whatever is sitting in the class's local namespace becomes the content of the class __dict__. And this is why assignment works just as well as a "def" to define a method in the class. sometimes-the-chisel-is-as-surprisingly-interesting-as-the- sculpture<wink>-ly y'rs - tim
Too hard! It's enough to do
move = translate
And let's not forget, while we're at it, that a synonym for a word might by another symbol, like *, thanks to the "operator override" feature.
From my real "poly" class (polyhedron), written before I'd forgotten what Tim just showed me:
class Poly: <<SNIP>> __mul__ = scale __rmul__ = __mul__
import polys a = polys.Octa() b = a*3 b Octa: origin=(0.0, 0.0, 0.0); volume=108.0 c = a.scale(3) c Octa: origin=(0.0, 0.0, 0.0); volume=108.0
Kirby
The emergence and preservation of specialized language is an interesting subject for me. When I learned to speak pig-Latin in elementary school, we used it to exclude others from the conversation. The same when we practiced using cyphers with each other. I think you underestimate the value of (4), however. Just like watching Roberts Rules be applied in a group activity (a process that many people think is weird and controlling), you can also see that one of the things it provides is an assured way to bring a situation to a conclusion while still providing for due consideration and deliberation. (Notice that the U.S. Congress has come up with lots of rules that undermine that, but the Constitution gives them permission. You get to say how that works for you only at the ballot box or by standing for election.) Robert's Rules are designed to provide a reliable structure for deliberative processes that must come to a definite conclusion, avoiding perpetual revisiting of the same arguments, etc. It takes people being willing to abide by the process, even when they think it is a waste of time. A lot of what happens in a courtroom is structured to get to a conclusion among individuals who are unable or unwilling to do that themselves (e.g., in a civil action). This means that establishing and preserving the authority of the court is a very big deal and part of the "language" of it. The structure of the courtroom gives something that is very important to the conversations that happen there. We got to see that in the recent civics lessons on election processes and how courts are used to resolve disputes and disagreements. Don't underestimate the value of playing dress-up! Or playing any game by the rules of that game. It seems to me that specialized language is inevitable, and that means specialized vocabulary. We are constantly working to assure that we have a common vocabulary, yet it would seem that everything about language, especially our inability to ever be *certain* that we mean the same thing that the other person does, works toward drift in language usage. An experiment. Look at a sport that you like and that you follow closely, maybe play in. Look at one that you have no interest in. Notice how much alien vocabulary exists among people who are more intimately involved with the second one. (Cricket baffles me. Every tried to explain baseball to someone from a non-baseball culture?) Then look at what it is like for someone who doesn't know about your favorite sport, or has only superficial interest. Or consider the language around automobiles or fashion. Or cosmetics We have a Clinique representative in our household. That use of specialized language is all noise to me. We also have a family member who is a theater professional. His relationship to make-up is different than that of the other two of us, and I still have to ask which is upstage, downstage, stage left, and stage right. I am inclined to doubt your lack of facility with vocabulary. I get that when you work at acquiring vocabulary, you find that you have trouble with it. I bet that you are as masterful at unconsciously, automatically acquiring vocabulary as you are articulate in e-mail and comfortable with different programming language structures. When you take on maintaining someone else's program, do you find that you struggle with the vocabulary of the original authors and their choice of programming idioms? I do. And I am usually good at re-abstracting what is going on and what the intention for the program is, as part of figuring out how to maintain it. If I am in a situation where I can recast the program, even better. I can't even leave Knuth's expression of algorithms alone. Something I have recently begun a self-conscious look at: http://www.infonuovo.com/orcmid/readings/R010101.htm I haven't attempted learning another human language since I struggled with high-school German over 40 years ago. My wife and I are working at learning Italian, and not doing too badly. The two victories were (1) realizing that I don't even know how I learned English, so believing that learning Italian should look a particular way and that I was failing if it didn't was something I had made up; (2) being with that I didn't understand the journey and simply accepting that if I kept doing the work and stop trying to understand everything first, I would ultimately acquire Italian. Exactly what my instructors have been trying to tell me. I don't dream in Italian yet, but I sense that it could happen any day now. I can't remember what it was like not to know how to program (after being at it for 43 years), and I am not sure how I first began to see abstraction and design in programs. Or be able to talk about it. -- Dennis -- Dennis AIIM DMware Technical Coordinator AIIM DMware http://www.infonuovo.com/dmware ODMA Support http://www.infonuovo.com/odma ------------------ Dennis E. Hamilton tel. +1-425-793-0283 mailto:orcmid@email.com fax. +1-425-430-8189 -----Original Message----- From: edu-sig-admin@python.org [mailto:edu-sig-admin@python.org]On Behalf Of Morris, Steve Sent: Wednesday, January 10, 2001 08:09 To: edu-sig@python.org Subject: RE: [Edu-sig] Natural Language Programming Hi Art,
One last effort -
One last reply. :-) [ ... ]
[ ... ]Because in the end what we are left with is substanital (though not perfectly - we do go to third and fourth defintions of standard English words) natural language.
And vocabulary is about nothing if it is not about communication.
Here is where I disagree or at least disagree with your conclusions. Language is about communicating in the broad sense. Sometimes the communication is on many levels and often one of those levels is a level of exclusion. Vocabulary can be used to say "I am an insider and you are an outsider." Take legal language for example. This has also evolved by a process of natural selection, over a number of years. It exists the way it does (opaque) for several reasons 1) It creates a level of precision. 2) It evolved this way from archaic forms of English. 3) There is resistance to change for fear that the precision will be lost. If it ain't broke don't fix it. 4) It creates a private club with a language understood only by the practicioners thus inreasing the value of their skills. It is part of what sets apart those special people who have "passed the bar." 5) Practicioners are not bothered by the vocabulary once they have entered the priesthood and have little incentive to change it. 4 is a not inconsiderable issue. There is a lot of legal pomp and circumstance that is intended merely to emphasize the importance and solemnity of the occasion and to create respect for the process. There no legal reason that the judge needs to sit on his high bench. The bench represents his authority. "All rise." Why the heck should we rise when the judge enters. These proceedures and the language of the law in general exist at least partially to reduce communication. The entire legal process is an excercise in controlled communication (ie limiting communication.) Many things are not allowed to be said in the courtroom, Perry Mason to the contrary. In other words the language of the law is about limiting communication. And how about music. Music notation is a kludge. Only music in the key of C makes sense. Sharps and flats are repairs to the defective system. In a properly designed music notation system intervals (the relationship between notes) would be implicit in the notation. Music is interval and timing. An octave should leap out at you just from the notation. A fifth should shout its existance. Music notation was designed for playing, not composition or analysis. The structure of music (what sounds interesting and why) is highly mathematical. I defy anyone to see the mathematics in music notation. The closely held secret of music theory is that it is simple. It is only the language that is more opaque than it could be. There's many a potential talented musician who couldn't learn to read music. Is the defect in them or the notation? I suggest that it is the notation, hundreds of years of acceptance or not. An M4E program would have to address this. Just because there is an accepted vocabulary doesn't mean that it is easy to learn or that there aren't better alternatitives. What we have here is what economists call lock in. (VCS vs. Beta is the classic example.) Current practice is often far from best known practice. This is true of any evolutionary system. Why this happens is a large, well studied subject that I don't want to go into to deeply here but I'll make a simple pass. Physicists think of these as local minima. A marble rolling down a hill doesn't always reach the lowest point in spite of the driving force of gravity. The path is critical. Local dips in the terrain grab it and prevent it from going lower. The same is true of the evolution of vocabulary.
I have a simple premise. If something is easy for me to comprehend, it is easy for the next guy. I am not sure who I would be if I thought otherwise. Not someone I would like very much.
Strange premise. There are things that are easy for you that are hard for me. This is a simple fact and no insult. I am baffled as to why you would dislike yourself for acknowledging this simple fact.
By calling the next guy stupid, you're calling me stupid because in some other area of endeavor I am going to be the novice. And I am not even going to have the opportunity to tell you - "translate", "move" - got it, next.
Since you like being personal in these discussions let me offer myself as one of several examples. Perhaps this personification will make my point clearer to you. I do not consider myself stupid even though my ability to acquire vocabulary is limited. I have strengths that I quite immodestly think are more important and make me a quite capapable person. We all have different blends of strengths and weaknesses. The world would be boring if this were not true. People come in all shapes and sizes and capapabilities. For some, new vocabularies are a snap. My father in law was an amazing amateur linguist. He was fluent in 5 languages and did technical translation in 20 more. If he new the subject he could translate in languages he had never seen before as long as it shared common roots with one or more of the languages he did know. (He claimed that most technical words are the same in all languages anyway.) If he wanted to read something he could pick up a working capability for a language in a few weeks. He didn't work hard at this. It came naturally to him. I think the real key to his success was an almost eidetic memory for vocabulary. He had it in large measure. I have it almost not at all. You are probably somewhere in the middle. CP4E needs to address people at my end of the scale. It is an insult to no one to say that my vocabulary learning skills are less than yours. It is a simple fact. My proceedural memory and skills just might be better than yours. They certainly have helped me compensate. I test high in langauge skills because my comprehension of grammer and syntax is high. In spite of that I have never been able to learn other verbal languages because I can't get over the vocabulary hurdle. I have tried again and again. On the other hand I know over 20 programming languages, maybe as many as 30 (it's hard to count because I keep forgetting about the ones I rarely use.) There are generally fewer than 10 key words (basic vocabularly) in programming languages. These are langueages with high syntatic and grammatical content but are almost vocabulary free. So I'm a great programmer but a lousy linguist. I am suggesting very simply and personally that "translate" instead of "move" (and similar words) could have been a barrier to me. By refusing to acknowledge this difference between people you would eliminate people with my strengths and weaknesses from the people you would recruit into a CP4E type effort. Just because you don't have a problem with vocabulary doesn't mean no one else does. It is no insult to me to say so. Special vocabularies are not a barrier to everyone but they are a barrier to some. I am one. Your insistance that my abilities are the same as yours is exclusionary. You deal with my weaknesses by denying that they exist and thus don't help me work around them. That's like saying we should design programs only for the rich because everyone has the same ability to acquire money. I obviously don't mean me personally. I have successfully compensated for my problems with vocabulary, partially by my choice of careers. I over compensate perhaps in working on acquiring and using English vocablary. However CP4E, if the E means anything, should include people to whom vocabulary is a barrier. I assure you that there are more of us than you might think. CP4E (in the broad sense, not just Guido's grant projects) should be about identifying barriers to entry and addressing them. Programming is clearly something that anyone can learn. They don't largely because of various barriers to entry. The correct way to handle this particular barrier is probably with transitional vocabularies (perhaps simple aliases to the less 'naturally' named commands) just the way kindergarden uses transitional spelling stratagies to teach spelling. If you are going to teach 3d programming, eventually the student needs to know the standard vocabulary or they can't benefit from the current body of knowledge. That is no reason to say they shouldn't be allowed into the temple of 3D learning with out jumping this vocabulary hurdle first. I think the heat you see on this subject is from people like me, to whom specialized vocabulary IS a barrier, taking personally your suggestion that our problem doesn't exist or deserve to be addressed. CP4E doesn't mean CP4 everyone whose learning abilities exactly match Arthur Siegel's. Regards, Steve Morris _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://www.python.org/mailman/listinfo/edu-sig
participants (5)
-
Dennis E. Hamilton
-
Dethe Elza
-
Kirby Urner
-
Morris, Steve
-
Tim Peters