Stop the insanity -- no more case sensitivity discussion!
The discussion on case sensitivity has already driven at least one educator away from this forum. I'm very sorry that that has happened. I propose that we impose a voluntary ban on further discussion of that topic in the edu-sig; feel free to take the discussion elsewhere (c.l.py for example; it will look good in the stats :-). I will not respond to any posts on this topic in the edu-sig, nor in private email -- I simply don't have the capacity to argue this point any more. Python 1.x will remain case sensitive anyway. --Guido van Rossum (home page: http://www.python.org/~guido/) (I am also going away for a week.)
This is the message I received; forwarded with permission. To repeat, I'm really sorry to see people withdraw from this great forum for this reason. Let's all behave like grown-ups and heed his warning without sending him a reply -- clearly more arguments in his mailbox is the last thing he needs. If you disagree, do so in silence. I've learned that that's a great mental exercise and usually gets the job done! Now, let's go back to our educational focus... --Guido van Rossum (home page: http://www.python.org/~guido/) ------- Forwarded Message Date: Sat, 05 Feb 2000 18:53:20 -0500 From: Xenophanes <tgabriel@bellsouth.net> To: guido@python.org Subject: Education forum Hi Dr. van Rossum, The other day I received an e-mail from you about the edu-sig forum for the Python programming language. It described this new forum as one where communication would generally be about how the Python community could get a broader acceptance and penetration of Python into educational areas, helping kids and adults to get into programming. Your paper "Computer Programming For Everyone," was referred to, I believe. The goal of this forum , it seemed to me was to advocate in the various communities we all are a part of to get Python "out there." I subscribed to the list and after a few days of moderate activity, the forum took off like a rocket to Alpha Centauri. The only problem with it was the direction it took off in. Instead of discussing ways to get Python widely accepted and to use Python in programming and computer classes to help kids to become better at critical thinking and eventually providing an avenue toward self determination, the forum degenerated into a group of programmers arguing whether there ought to be case recognition in the syntax of the programs written in Python. It seems the Unix people could not stand that Python is not case sensitive and Unix is. (At least that is what it seems to have evolved to) Dr van Rossum, this should not be a discovery environment where developers try to change Python to reflect some idealistic fairy tale land. It should be a time where the ideas of a Jeffrey Elkner or the environmental activist from Appalachia, or the many others who struggle with the impossibility of computer programming get heard. Instead, the only forum with that kind of opportunity has been stolen by computer language developers who are concerned about teaching their five-year-olds to program!! Yesterday at about five-thirty p.m., I received over 25 e-mails from forum participants at one time when I logged on to the net. Not one was concerned with getting Python out to the people who need it. Most were concerned with whether or not Python knows the difference between This and this. I am not amused. I am a fan of Python. I think Python is what is going to be instrumental in saving democracy. If that sounds extreme, maybe it is. But Python, the way you developed it is the only hope we have as a people to fight the corporate interests who want to dumb the society down to the point where we will be willing and happy to work for the same wages that the Bangladeshis do. My understanding when I was first exposed to Python was that it first and foremost was a tool to help kids and other people to enhance their critical thinking skills by being able to relatively easily program solutions for themselves and others that corporate America did not spoon feed them. Apparently, the Python community is too tied up in knots over case sensitivity to understand that case sensitivity is not an issue. "The language is not case sensitive, get over it." That should be your message to these Philistines. I was sorry to have to unsubscribe from the edu-sig group. I just could not abide by the idiotic arguing over nothing that was going on. I do not have time in my day to read such drivel. Please let me know when and if the group returns to the land of the living and starts discussing how to use Python as it was intended instead of what Python is. Thanks, Terry Gabriel ------- End of Forwarded Message
I think there's a deep issue raised by Terry Gabriel's complaint. There are two large issues which need to be discussed regarding "Python in education": 1. Lesson planning, evangelism, course content creation. 2. Tool improvements, such as IDE enhancements, specialized libraries, frameworks for problem domains, and, less significantly, future changes to the language itself. Clearly these topics are related. However, there are some obvious problems with having both of these topics discussed in the same forum: 1. People who want to start teaching python NOW couldn't care less about tool development because it will happen too slowly. They will look on discussions of (2) as distractions at best. 2. Similarly, those of us who believe that some tool development is absolutely a prerequisite to using Python in our environments or for CP4E find discussion of (1) a little too premature to be helpful. 3. Discussion of (2) is likely to become excessively technical for some of the people in this forum. 4. At least right now, the traffic on the list is much too high for anyone without procmail and a threaded mail reader. I am therefore convinced that this forum is inappropriate for discussing (2). I therefore put the following question to the SIG: 1. Is anyone else interested in seriously discussing new or enhanced Python libraries and tools to make Python more usable in educational settings, or in a specific curriculum? 2. If so, is there a better forum to discuss these issues? 3. If not, should one be created? If the answer to (1) is no, then let's make that explicit in the SIG charter, and restrict discussion of tool development to private communication channels. Otherwise, let's find another forum. I'm deeply sorry that anyone felt it necessary to leave the SIG because of excessive discussion of language issues. However, I am also aware that there are several different groups, including Guido at CNRI and our group at Carnegie Mellon, actively engaged in the development of Python-based environments for education, and I think there should be *some* forum for us to communicate with each other and with people interested in applying our work. Dave Scherer
Dave, You are making valid points but I think you are rushing a little. I expect that the current flood of traffic will settle down a lot in a week or so as people finish stating their initial interests and objectives. It may be that when the traffic settles we can handle both threads. There are not completely exclusive. Tool development needs to be guided by the practical experience of those on the ground trying to teach. Those on the ground need to understand the possibilities of what tool people can deliver in the future. By the way I am clearly on the tool development side but would hate to move forward without significant feedback from the intended users. I also don't think the dichotomy is as clear as you state it. I suspect that most people are more in the middle. Where do you put such things as creation of examples. How about packaging examples with the interpreter, ide and documentation in an easy to deploy package. I would define your dichotomy as more of a continuous spectrum with at least these tentative breakdowns: 1) People wanting to use existing software unchanged and looking for ways to do that. 2) People looking for simple short term enhancements that improve their ability to deploy in the short term. 3) Longer term ideas of varying scales. Plese don't try to define this in polarizing us and them terms. Steve David Scherer writes:
I think there's a deep issue raised by Terry Gabriel's complaint. There are two large issues which need to be discussed regarding "Python in education":
1. Lesson planning, evangelism, course content creation.
2. Tool improvements, such as IDE enhancements, specialized libraries, frameworks for problem domains, and, less significantly, future changes to the language itself.
Clearly these topics are related. However, there are some obvious problems with having both of these topics discussed in the same forum:
1. People who want to start teaching python NOW couldn't care less about tool development because it will happen too slowly. They will look on discussions of (2) as distractions at best.
2. Similarly, those of us who believe that some tool development is absolutely a prerequisite to using Python in our environments or for CP4E find discussion of (1) a little too premature to be helpful.
3. Discussion of (2) is likely to become excessively technical for some of the people in this forum.
4. At least right now, the traffic on the list is much too high for anyone without procmail and a threaded mail reader.
I am therefore convinced that this forum is inappropriate for discussing (2). I therefore put the following question to the SIG:
1. Is anyone else interested in seriously discussing new or enhanced Python libraries and tools to make Python more usable in educational settings, or in a specific curriculum?
2. If so, is there a better forum to discuss these issues?
3. If not, should one be created?
If the answer to (1) is no, then let's make that explicit in the SIG charter, and restrict discussion of tool development to private communication channels. Otherwise, let's find another forum.
I'm deeply sorry that anyone felt it necessary to leave the SIG because of excessive discussion of language issues. However, I am also aware that there are several different groups, including Guido at CNRI and our group at Carnegie Mellon, actively engaged in the development of Python-based environments for education, and I think there should be *some* forum for us to communicate with each other and with people interested in applying our work.
Dave Scherer
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://www.python.org/mailman/listinfo/edu-sig
on 2/6/00 10:24 AM, David Scherer at dscherer@cmu.edu wrote:
1. Lesson planning, evangelism, course content creation.
2. Tool improvements, such as IDE enhancements, specialized libraries, frameworks for problem domains, and, less significantly, future changes to the language itself.
Crossover discussion between these two groups is essential. If the list is split, it needs to be done in such a way that the groups are not isolated from each other. Perhaps a weekly summary of important issues discussed on each list could be posted to the other.
4. At least right now, the traffic on the list is much too high for anyone without procmail and a threaded mail reader.
At least in my hands the download times have not been particularly long, and anyone with a POP or IMAP client that supports mail sorting rules should be able to deal with the message numbers.
1. Is anyone else interested in seriously discussing new or enhanced Python libraries and tools to make Python more usable in educational settings, or in a specific curriculum?
Yes. Jim Harrison Univ. of Pittsburgh
Guido,
It should be a time where the ideas of a Jeffrey Elkner or the environmental activist from Appalachia, or the many others who struggle with the impossibility of computer programming get heard. Instead, the only forum with that kind of opportunity has been stolen by computer language developers who are concerned about teaching their five-year-olds to program!!
Clearly, you need to define "what everyone" is and the goals of this sig. If you wish to limit it to some age group, fine. Just state so and I will unsubscribe. By the way, I am serious about teaching my 6/8/10 year olds to program. I am not a language developer and I could care less about case sensitivity. John Glossner signing off from here
At 08:58 AM 02/06/2000 -0500, Guido van Rossum wrote:
This is the message I received; forwarded with permission. To repeat, I'm really sorry to see people withdraw from this great forum for this reason.
Guido -- Personally, I think it's immature of Terry to whine to you privately, instead of sharing his valuable focus and perspective with the whole group. He gave us only a few days to live up to his standards and then quit in a huff. I have likewise shared my frustration with the "fantasy land" attitute taken by many posters, who just want to sit back and dream of language improvements they're not going to implement themselves. But I don't take advantage of my frustration to make a big stink. I note that you yourself were one of those who weighed in on the case-sensitivity issue (as did I --both of us briefly).
he needs. If you disagree, do so in silence. I've learned that
I'm not sending an email to Terry about any of this, but it may come up again that some lurker is outraged by the direction of the threads and doesn't bother to pipe up. So I'm going to disagree with Terry's approach out loud, not in silence. If you want this to be a moderated group, that's fine, but in the meantime I don't think you can assume that everyone reads your edicts -- about what to talk about or not talk about (nor mine either of course). If we get more posts re cs, it might be from newbies just joined, or others who didn't track this 'insanity' thread. They shouldn't get jumped on either -- make this a moderated group if you plan to exercise strict controls over content. Kirby
[Guido]
... Now, let's go back to our educational focus...
Hmm. I'm not sure how to tell a relevant topic from noise. The thing that makes Usenet unbearable at times is a combination of flame wars and endless meta-discussion (like my very post here, for which I apologize even as I write it <0.3 wink>). Case-sensitivity is neither of those; its role seemed entirely on-topic, and it was particularly interesting to see informed challenges to the oft-cited Alice position on this. OK: I've found a foolproof way to tell the difference. A topic that *seems* appropriate *is* -- until Guido sends a msg with "no more!" in the subject line <wink>. hundreds-of-people-thousands-of-opinions-ly y'rs - tim
Tim Peters writes:
[Guido]
... Now, let's go back to our educational focus...
Hmm. I'm not sure how to tell a relevant topic from noise.
If true maybe that's what we should be talking about. I can offer some suggestions. o - If the word education comes up infrequently in the discussion it is a topic probably better discussed elsewhere. o - The more technical the subject the less likely it will be of value to a general discussion of python in education. The topic of whether case (in)sensitivity is needed is "on point." The issues of how it should be implemented or its impact on the installed base of python software etc. etc. are clearly "off point." They are important topics but more relevent to the technical python community. I've seen this happen often on other lists. Everybody wants to contribute but most don't have anything unique to say. A subject that everyone recognizes comes up and all the lurkers jump in with both feet beating the subject to death. Case sensitivity is an example. We all type. We all have a shift key on our keyboard. We all have an opinion on the proper use of case. We all care about it. We don't need to understand anything about education to talk about upper case and lower case. It is not the subject so much that causes the problem as its over-discussion, swamping more central business. Here in a new group the overriding topic should be setting up an adgenda and charter. To do that we need to try out some issues, finding which have meat, which have relevence to the subscriber base. Unlike Mr Terry "walk out in a huff" we need to have some patience with each other while we work this out. I'd like to see people posting their list of ideas about what they think should be the adgenda of this discussion group, trying not to get too deep yet in the details of how the discussion should go. So far we have had some pretty focused requests for various on the ground support for packaging, lesson plans etc. We have also had some longer term discussion of what we might like in a perfect world. What else? How do we move forward? Where do we want to go? Does anyone want to volunteer to go through the archives and try to extract potential adgenda topics from previous posts? It seems to me there's juice in there already. If we can make a list then we can start prioritizing. We need a keeper of the list who will collect ideas and repost the list to the list once in a while. Volunteers? I would volunteer but I am too biased and inflamatory to be neutral and neutrality would be important in this role. Personally I think a good way to focus our thinking is to think in terms of what work needs to be done and how that work should progress. We should be defining projects big and small, short term and long, and recruiting people to work on them. If we don't actually do anything edu-sig will become a waste of time and bits. We should create a community of people helping each other use python in education.
I am agreeable to keeping charters and agendas and whatnot for the SIG. With, of course, the consent and blessing of Mr. Rossum. I think it is crucial that we add a dash of focus to this list which is so obviously packed with ideas and good thinking and potential. I think we all have our biases, and I will admit I have mine. If there is general approval I will try to make my biases explicit so that you all can expect and deal with them. Dustin --------------------------------------------------------------------- | Dustin Mitchell )O( | ---------------------------------------------------------------------
Dustin James Mitchell wrote:
I am agreeable to keeping charters and agendas and whatnot for the SIG. With, of course, the consent and blessing of Mr. Rossum. I think it is crucial that we add a dash of focus to this list which is so obviously packed with ideas and good thinking and potential.
I think we all have our biases, and I will admit I have mine. If there is general approval I will try to make my biases explicit so that you all can expect and deal with them.
After so many excellent ideas have been posted to this forum there should definitly be some focussing activity leading to a real agenda. If I dare add some more concrete items I'd opt for the following to be at least considered as potential candidates, listed here in no particular order. - Definition of CP4E target groups more precize than just 'everybody'. - Collection and analysis of requirements (language, tools, documentation) of existing and potential Python users in different application domains. - Evaluation of language/syntax changes to Python for reaching a wider programming audience. - Evaluation of the need for some (additional) 'downsized' version of Python, say, MiniPython (or MontiPython, to avoid copyright issues), if not even PythonScript. - Evaluation of existing text-books with the goal of adapting them to Python instead of other languages. - Implementation of additional development/usage tools needed for other target groups. - Evaluation of improvements to existing Python distribu- tions for existing and new target groups. - Generation of (domain-specific?) tutorials and text- books based on the experience made by this forum's members. - Underlining the fact that CP4E, as Python, is a 'world movement' and not tied to an American or angle-saxon audience like K-12 or the like. - Based on the previous item, considering other languages than English right from the start. So long, Dinu -- Dinu C. Gherman ................................................................ "The thing about Linux or open software in general is that it actually tries to move software from being witchcraft to being a science," [...] "A lot of the programs you see today are actually put together by shamans, and you just take it and if the computer crashes you walk around it three times... and maybe it's OK." (Linus Thorvalds, LinuxWorld 2000, NYC)
- Evaluation of language/syntax changes to Python for reaching a wider programming audience.
Although I think Python will change in some of its "under the hood" aspects (e.g. maybe garbage collection), I think these highly technical design issues are being discussed in comp.lang.python by top-level Python gurus (including some posting here). Why rehash such material in this edu-sig? Isn't that redundant? On the other hand, if we trully think really basic changes to syntax are required (e.g. changes in case sensitivity, division syntax or whatever), then maybe we've decided Python is _not_ suitable to this job of making computer languages more accessible to more people. Perhaps it's time to disband? Twas fun while it lasted. My own agenda is to look for (and contribute) useful ideas about how to enchance the curriculum using Python in its present form, minus any reliance on vaporware suggested by people who will not be doing the real work themselves (I've learned from experience not to put many eggs in vaporware baskets). Pointers to web pages with working source code are always welcome. Thanks Jeff, http://www.livewires.org.uk/python.html looks like a valuable resource.
- Evaluation of the need for some (additional) 'downsized' version of Python, say, MiniPython (or MontiPython, to avoid copyright issues), if not even PythonScript.
We'll inevitably be using a scaled back version, because we will not be importing every module in every lesson (plus we will be writing and importing modules of our own design). I don't see the need to develop a pared down Python for teaching purposes when its highly modular design gives us that already.
- Evaluation of existing text-books with the goal of adapting them to Python instead of other languages.
Personally, I'm not waiting for text books to catch up, and think the web has superceded dinosaur mass-published text books in many classrooms. Lots of teachers are doing their own web sites these days -- a very positive sign.
- Underlining the fact that CP4E, as Python, is a 'world movement' and not tied to an American or angle-saxon audience like K-12 or the like.
K-12 does not mean "anglo-saxon" -- Americans are way more ethnically diverse than that. But I agree we should not be focussing on the USA curriculum exclusively. Speaking more autobiographically, my own network extends to places like Kuala Lumpur and Maseru (I went to high school in the Philippines, elementary school in Italy), plus I clerk the AFSC program committee behind Portland's UVKrew [1]. I am happy to see Python making inroads elsewhere (and only _some_ communities in the USA will be able to keep up -- and not necessarily the mostly anglo-saxon ones). Of course Python itself is from the Netherlands originally, with a hyperlink across the channel to Anglo culture via Monty Python's Flying Circus. Kirby [1] http://www.geocities.com/uvkrew/
At 06:59 AM 02/11/2000 -0800, Kirby Urner wrote: [clip]
On the other hand, if we trully think really basic changes to syntax are required (e.g. changes in case sensitivity, division syntax or whatever), then maybe we've decided Python is _not_ suitable to this job of making computer languages more accessible to more people. Perhaps it's time to disband? Twas fun while it lasted.
But of course disbanding would be irresponsible of us to do, Kirby. Because I think we're both of the opinion that disbanding would either gravely delay "programming for everyone" while people argue about the best language to use and how to change it, or it would allow an opportunistic group to sneak in with a language to meet their agenda (Visual Basic -- what do you want to learn today :-). In the past few weeks of discussion there has been no proposed change to Python with a clear majority, which says to me that for the time being our best course is to go with the Python we have today -- the Python that attracted most of us here in the first place. We can build a curriculum, textbooks, teachers guide, schedule etc around that Python, and offer it to people (I don't remember ever hearing this initiative was only for children) of an age to assimilate it. Once we've secured our ground in that age group, and once we have experience and feedback, we may choose to modify the curriculum or even the language, if it's obvious we should do so. I move we use present day Python as the centerpiece of the initiative, and begin designing our curriculum and materials. Do I hear a second? Steve Steve Litt Webmaster, Troubleshooters.Com http://www.troubleshooters.com slitt@troubleshooters.com
On Fri, 11 Feb 2000, Steve Litt wrote:
I move we use present day Python as the centerpiece of the initiative, and begin designing our curriculum and materials. Do I hear a second?
Seconded. --------------------------------------------------------------------- | Dustin Mitchell )O( | ---------------------------------------------------------------------
[Kirby Urner]
Although I think Python will change in some of its "under the hood" aspects (e.g. maybe garbage collection), I think these highly technical design issues are being discussed in comp.lang.python by top-level Python gurus (including some posting here). Why rehash such material in this edu-sig? Isn't that redundant?
Even worse, it would drive away the people (i.e., educators) who really matter here. Python developers need feedback on what is and isn't working, and educators need feedback on what's feasible, but I believe we can keep that at a very high (& infrequent) level on this SIG.
On the other hand, if we trully think really basic changes to syntax are required (e.g. changes in case sensitivity, division syntax or whatever), then maybe we've decided Python is _not_ suitable to this job of making computer languages more accessible to more people. Perhaps it's time to disband? Twas fun while it lasted.
Yes, it *was* fun <wink>. But if C++ is being taught now (brrrrr), the notion that perfection is a prerequisite is absurd.
... We'll inevitably be using a scaled back version, because we will not be importing every module in every lesson (plus we will be writing and importing modules of our own design). I don't see the need to develop a pared down Python for teaching purposes when its highly modular design gives us that already.
Good point! The core language is relatively small, but there are still things you're not going to want to teach at first (e.g., operator overloading, metaclasses, __getattr__ hooks, ...). You never bump into those things by accident, though, so simply don't teach them and they won't get in the way. or-if-they-do-that's-educational-too<wink>-ly y'rs - tim
At 2000-02-11 11:12 +0100, Dinu C. Gherman wrote:
- Underlining the fact that CP4E, as Python, is a 'world movement' and not tied to an American or angle-saxon audience like K-12 or the like.
- Based on the previous item, considering other languages than English right from the start.
This is a very good point. In fact, one of the features of APL was the heavy-duty use of those weird ideograms (that needed a special keyboard and charset, to be sure) instead of keywords taken from English. A bit like mathematical symbols, which were their inspiration. Not that I'm necessarily advocating this for Neopython, but while we're still in the brainstorming mood... In particular English speakers (especially those who can't properly speak any other language) should be aware of the shock and barrier that a non-English-speaking kid faces when confronted with a piece of script where all the control words are incomprehensible gibberish. Then, suddenly, the "Python looks just like natural language" argument no longer holds. Frank (http://i.am/filologo.disneyano/) http://www.uk.research.att.com/~fms/
Dustin - just wanted to say that I like your discussions. I'm Randy Latimer...I've been teaching computer science in high school since the early 80's, Pascal for years, now C++ and some Java. I looked at some languages with alternative styles way back in the 80's - Lisp, Prolog, Logo - taught them some in high school, but these languages didn't catch on. The AP College Board pretty much dictates the main language we teach. I tried to introduce C++ in the early 90's, but it was too soon, the college board didn't switch to C++ until 98 or so, and that's when the high school curriculum moved from Pascal to C++. At what age do we introduce programming, and what language?...obviously not a simple answer, depends who you talk to. Rice Univ. has been working on introducing Scheme, I think it's the same kind of thing as introducing Python as an intro language. I know Scheme/Lisp pretty well, new to Python. Randy
Oh my, you bring up a point that hasn't been raised yet. That is, how do we try to teach Python when the APs are in C++? It seems we'd have little hope of changing the AP's when they've only so recently switched to C++, and since C++ has a vocal backing in the business community. Perhaps, then, for the time being, we need to target Python in the earlier grades and construct a gentle changeover to C++ in the AP courses? What are our options here? Dustin --------------------------------------------------------------------- | Dustin Mitchell )O( | ---------------------------------------------------------------------
Dustin, From my experience here in Fairfax County, VA, it's very difficult to get the high school CS teachers to support a language other than the one currently in use by the APCS board. The best that I've been able to do is to introduce a second language at the end of the school year, and let some of the "advanced" students work on it. BUt by that time, there's usually little interest by the students in taking on another language, unless it's one with alot of "press" such as Java. I guess trying to introduce students to programming earlier than high school is alot like the use of Logo in the 80's (I still have all the old texts). There's a book called Mindstorms that proposes teaching Logo early on. It's a tough process trying to get teachers to use a new curriculum. You need a strong set of materials and good teacher training and something that tells the teachers that there's a benefit for them to take the time to learn a "new" way. Anyway, I think this is a great discussion. Randy On Fri, 11 Feb 2000, Dustin James Mitchell wrote:
Oh my, you bring up a point that hasn't been raised yet. That is, how do we try to teach Python when the APs are in C++? It seems we'd have little hope of changing the AP's when they've only so recently switched to C++, and since C++ has a vocal backing in the business community.
Perhaps, then, for the time being, we need to target Python in the earlier grades and construct a gentle changeover to C++ in the AP courses? What are our options here?
Dustin
--------------------------------------------------------------------- | Dustin Mitchell )O( | ---------------------------------------------------------------------
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://www.python.org/mailman/listinfo/edu-sig
On Fri, 11 Feb 2000, Randy Latimer wrote:
It's a tough process trying to get teachers to use a new curriculum. You need a strong set of materials and good teacher training and something that tells the teachers that there's a benefit for them to take the time to learn a "new" way.
So in light of this and the AP problem, do we have any hope of introducing Python at the High School level, or would our interests (CP4E, not Py4E) be better served by developing a sensible, effective, well-supported environment in which to teach C++? Is there anything else we can do to gain wider acceptance of our ideas? Could we offer alternatives to the APs? Is there any process by which we could appeal to the AP board to add Python as a possible language? Thanks for your insights! Dustin --------------------------------------------------------------------- | Dustin Mitchell )O( | ---------------------------------------------------------------------
On Fri, 11 Feb 2000, Dustin James Mitchell wrote:
So essentially you're using Python up to but notincluding the AP class?
Yes, most high schools do not offer AP as the first programming course. There is usually a prior course which is a prerequisit. I think Python's first point of entry into the curriculum will be as a first course language in both high schools and middle schools.
So in light of this and the AP problem, do we have any hope of introducing Python at the High School level, or would our interests (CP4E, not Py4E) be better served by developing a sensible, effective, well-supported environment in which to teach C++? Is there anything else we can do to gain wider acceptance of our ideas? Could we offer alternatives to the APs? Is there any process by which we could appeal to the AP board to add Python as a possible language?
C++ is a TERRIBLE language for CP4E! And we should not let the collegeboard dictate how we should teach (they have far too much power as it is ;-) The APs will be in C++ for the forseable future. I personally do not see that as a problem. The AP course is aimed at future CS majors. I want our first year course to reach way beyond that limited population. I have been arguing to anyone who will listen that Python is the language of choice for someone who wants to use programming as a tool but not necessarily as a career. We now have a second year course for students who want more programming but not on the AP track. Many of these students will be learning more Python in year 2. For those students who do want to major in computer science and who do plan on taking the AP exam, the ought to learn more than one language anyway. C++ will be a good learning experience for them, made better by the fact that they will already have a high level understanding of modern programming concepts through their experience with Python ;-)
Does anyone have a source for examples of developed curricula in any area? Something upon which we could model the structure of our curriculum?
Here is the collegeboard's apcsc site, for starters: http://www.collegeboard.org/ap/computer-science/ jeff
[Jeffrey Elkner]
... C++ is a TERRIBLE language for CP4E!
I'd say it's a terrible *first* (even second) language for any purpose whatsoever: its artificial complexities, both syntactic and semantic, are staggering. They exist for good reasons, but those have to do with maintaining compatibility with C, and with squeezing the very last drop of "performance" out of the machine. In some contexts, those are crucial (e.g., I work in commercial speech recognition, which pushes the limits of what PC HW can do, and the combo of C++ and hand-optimized assembler is our only realistic choice today). But for a newbie? Yuck. Bad, bad idea.
... The AP course is aimed at future CS majors.
Eiffel would be a vastly better choice for them if OO is in vogue; else Scheme or Haskell. All three took extreme care to get "everything exactly right" from a theoretical POV, and CS majors need that (especially if they're going on to graduate studies).
I want our first year course to reach way beyond that limited population. I have been arguing to anyone who will listen that Python is the language of choice for someone who wants to use programming as a tool but not necessarily as a career.
Yes, Python excels at "getting stuff done, and quickly". This is also important for people who program for a living, and Python remains the most generally *useful* language in my professional toolkit. You couldn't regret teaching Python to anyone, as it's something they'll actually use the rest of their lives, no matter what direction they take. Invite your board to read comp.lang.python for a while: it's the most eclectic lang group on Usenet, from "theory heads" debating the fine points of continuations, thru parents teaching their kids how to write a database to keep track of Beanie Baby collections, to professional programmers on the bleeding edge of new web apps. Then study comp.lang.{eiffel, scheme, c++, ...}. The Python community is the very antithesis of a cult <wink>.
We now have a second year course for students who want more programming but not on the AP track. Many of these students will be learning more Python in year 2. For those students who do want to major in computer science and who do plan on taking the AP exam, the ought to learn more than one language anyway.
Definitely.
C++ will be a good learning experience for them,
The complexities of C++ are best left to professional programmers; for a CS major, the best lesson to learn from C++ may be how painful "backward compatibility" and "speed at any cost" can become. But you could teach that in one lesson, by putting up lots of examples of incomprehensibly obscure C++ and laughing a lot <wink>.
made better by the fact that they will already have a high level understanding of modern programming concepts through their experience with Python ;-)
There is a rational subset of C++ that corresponds to what comes naturally in Python -- add "virtual" to everything and avoid some of the C++ features Stroustrup himself regrets adding (like the "protected" keyword). Much of C++'s OO story is artificially strained due to the desire to make a C++ class the same (by default) as a C struct. So you have to go out of your way to add "noise words" to C++ to get it to act the way every other OO language acts by default. The part of C++ that "makes good OO sense" is largely the part they will have picked up without artificial strain from Python. I think that's a long-winded way of agreeing with you here. if-c++-is-the-answer-the-question-is-not-newbie-material-ly y'rs - tim
Tim Peters writes:
[Jeffrey Elkner]
... C++ is a TERRIBLE language for CP4E!
I'd say it's a terrible *first* (even second) language for any purpose whatsoever: its artificial complexities, both syntactic and semantic, are staggering.
I hate C++ but think you overstate it. C++ is a good language for getting a job in CS. Let's not forget that there is a real world out there. On the other hand I completely agree that Python is one of the best languages to teach non CS people and kids.
[Tim]
I'd say it's [C++] a terrible *first* (even second) language for any purpose whatsoever: its artificial complexities, both syntactic and semantic, are staggering.
[Steve Morris]
I hate C++
I love C++ -- for example, it payed for the computer I'm typing this on <wink>.
but think you overstate it.
Did you see the "*first* (even second)" part? C++ is about as baroque as languages get; there are much gentler ways to learn the essentials, and having learned them it's comparatively easy to learn how to "spell them" in C++. For much the same reasons, I wouldn't teach a kid how to swim by tossing them into the deep end of the pool.
C++ is a good language for getting a job in CS. Let's not forget that there is a real world out there.
This is a Python SIG -- it's all about the real world.
On the other hand I completely agree that Python is one of the best languages to teach non CS people and kids.
Programming in the real world is increasingly about getting disparate systems to work with each other, and Python may be the most practical "glue language" there is. Do the posters on comp.lang.python strike you as being unemployed <0.9 wink>? don't-prepare-for-last-decade's-jobs-unless-you-want-to-do- maintenance-work-ly y'rs - tim
Randy> BUt by that time, there's usually little interest by the students Randy> in taking on another language, unless it's one with alot of Randy> "press" such as Java. Though the Python community has done little or nothing to promote itself, it seems to be getting more and more press these days. Whether or not it's the right kind or of sufficient volume, I don't know. Still, I wouldn't consider lack of press a long-term impediment to adoption. I think your observations about teachers' avoidance of something new (especially if there is no curriculum available to support it) is going to be more of a problem. Maybe the way to introduce it initially is through computer clubs. (Schools do have computer clubs, yes?) Another possible hook is to get Zope installed and use it as the way to manage student-created web sites. Once they want to do more than create flat pages, you yank hard to set the hook... Skip Montanaro | http://www.mojam.com/ skip@mojam.com | http://www.musi-cal.com/ "Languages that change by catering to the tastes of non-users tend not to do so well." - Doug Landauer
Hi All! We should all take great joy in the fact that we are in the right place at the right time. Python is currently undergoing a qualitative shift in its user base, and that trend will not only continue but grow stronger in the next few years. If anyone has any doubts about this, just consider the number of new Python books that have been appearing lately. I am also completely confident that Python will make its way into schools. There simply isn't a language anywhere better suited to use in schools than Python is. We all have the good fortune to be part of this exciting process and to help it along. So let's get to it! Yes, computer clubs is one way that Python might make its way into schools (which is to say that students themselves will bring it in through the back door). Zope is another way. We shouldn't limit ourselves to one approach. jeff On Fri, 11 Feb 2000, Skip Montanaro wrote:
Though the Python community has done little or nothing to promote itself, it seems to be getting more and more press these days. Whether or not it's the right kind or of sufficient volume, I don't know. Still, I wouldn't consider lack of press a long-term impediment to adoption. I think your observations about teachers' avoidance of something new (especially if there is no curriculum available to support it) is going to be more of a problem.
Maybe the way to introduce it initially is through computer clubs. (Schools do have computer clubs, yes?) Another possible hook is to get Zope installed and use it as the way to manage student-created web sites. Once they want to do more than create flat pages, you yank hard to set the hook...
participants (14)
-
David Scherer -
Dinu C. Gherman -
Dustin James Mitchell -
Frank Stajano -
Guido van Rossum -
Jeffrey Elkner -
Jim Harrison -
John Glossner -
Kirby Urner -
Randy Latimer -
Skip Montanaro -
Steve Litt -
Steve Morris -
Tim Peters