Arthur wrote:
John writes -
Some on this list have suggested that Python is "too rich" to be good language for young or first-time programmers.
That some, as far as I can tell, might only be me.
But if it is, if can't be.
That's a great line. I was thinking of some comments you have made, but not you alone (see other responses on this thread). My only point here is that, while there are occasional pitfalls for new programmers, my experience has been that Python is absolutely one of the best beginner languages. The complexity lamented in Daniel's original post is either a function of the environment being used or inherent to programming, not an artifact of Python. Sorry if I raised any hackles but indirectly accusing anyone of being "some."
I have given witness to having been a first-time programmer who learned enough from my experience working with Python to now get paid for doing development work.
And then there is the question of defining young. If we leave the term vague enough, we can allow ourselves to both be right. But you teach college and target your text to high schoolers (and up). Darren was targeting 7th to 10th,
This is an excellent point. I don't have any direct experience with students below 9th grade. The maturity level here could make a big difference. Last time I checked, 10 grade was still high school.
Unless you know something I don't about the Australian school system, those seem to me to be very different matters.
I'm relatively certain that Australian schools can't be any worse than US schools (at least if performance standardized tests in reading, writing, and mathematics are used a gauage).
You would be carving out a very exceptional niche for programming curriculum by claiming that the same text appropriate to 11th and 12th graders is also appropriate for 7th and 8th. I would insist that I am being more careful in my remarks than you might want to believe.
Yes, you are being more careful. I'm simply saying that a real intro to programming is not beyond the intellectual maturity of the average high school student (grades 9-12). Here in Iowa, 10-15 years ago, most high schools offered such a course. These days they are rare; sadly they have been replaced by word-processing, and web-page design classes.
I cannot agree with this. Yes, Python is a real-world language, but what makes it so useful in the real-world is its simplicity and clean design. All general purpose languages are powerful. Python is one of the easiest to learn. That said, programming _is_ hard. Not everyone can do it well, but my experience has been that anyone who really tries can learn to do useful things with Python.
I happen to be someone who really tried. And I am all for allowing us to assume we are talking about folks motivated to learn, in all cases of our discussions.
We are, of course in agreement here. But I am also including as "trying" those who might not be all that excited about programming, but who still give the class an honest effort. We have a lot of freshman who take our CS1 class to fullfill a gen. ed. math requirement. Even though they might not be motivated by the material, they still want to get a decent grade. They can be and are successful.
It is more when we - I am not sure what we I am referring to here - get off on how to hocus-pocus folks into learning, and what language design issues prevent folks who don't care to learn, from learning - that I tend to mouth off a bit.
And I tend to agree with those assessments. --John