
Sorry all - this post will probly stir up a commotion. I have been keen on Python for quite a while. I have tried using it ti teach programming in a high school situation and would have liked to extend into PyGame. Sadly, though I feel I DO understand object oriented concepts, I DO NOT have any idea of determining what objects to create. Similarly, as there is SO MUCH to learn before one becomes capable of completing even simple tasks like a blackjack cardgame (with gui too) ... I am finding students get turned off before they even get a chance to see what can be done. I know ... it must be just me and the way I teach it. However, I have recently revisited Gamemaker. I saw it a few years ago and could not make much sense of it. But now it is up to version 6, there are loads of fantastic tutorials to follow along with. I have introduced it to classes from Yr7 - 10 and they love it whereas only 2 - 3 of the really "nerdy", "geeky" kids appreciated Python! My feeling is that Python will never be widely used (in schools) unless we can get a PyGamemaker package. Even girls have a ball with gamemaker! regards Darren ===== ----------------------------------------------------------------------------------- regards Darren Payne Hurlstone Agricultural High School Ph: 9829 9222 Fax: 98292026 __________________________________ Do you Yahoo!? The all-new My Yahoo! - Get yours free! http://my.yahoo.com

Darren writes -
Sorry all - this post will probly stir up a commotion.
I've been stirring up a commotion here for some time by suggesting the possibility that Python is too rich and complex a tool to be realistically taught and appreciated by students of the age you are trying to teach who are not predisposed to some "geekiness". So maybe if I am correct, you have been trying to bang your head against the wall, a bit. But to what extent are you fulfilling your mission to teach programming by using Gamemaker? Its a question, not a provocation, since I don't know the program. Do you ever get to something that can be considered, fairly, to be programming? PyGeo is (better, will be) of course the perfect alternative ;) The GUI is all pre-built (thanks to VPython). Its API is a narrow (and realistically absorbable) subset of the full range of possibilities. And to the extent it fails as a tool in teaching something about programming, it might succeed in teaching something about geometry, and vice versa. A better hedge in an educational environment, IMO. And there is no reason it shouldn't be fun. Nice and colorful 3d. I do believe fun should be part of the equation. Just thought I'd venture out of the closet on the possibilities of PyGeo, as I begin to focus some of my resources on it again. I was successful in finding someone quite qualified to help me (as a paid consultant) in the technical aspects of preparing decent distributions. We'll see. Art
I have been keen on Python for quite a while. I have tried using it ti teach programming in a high school situation and would have liked to extend into PyGame. Sadly, though I feel I DO understand object oriented concepts, I DO NOT have any idea of determining what objects to create. Similarly, as there is SO MUCH to learn before one becomes capable of completing even simple tasks like a blackjack cardgame (with gui too) ... I am finding students get turned off before they even get a chance to see what can be done. I know ... it must be just me and the way I teach it. However, I have recently revisited Gamemaker. I saw it a few years ago and could not make much sense of it. But now it is up to version 6, there are loads of fantastic tutorials to follow along with. I have introduced it to classes from Yr7 - 10 and they love it whereas only 2 - 3 of the really "nerdy", "geeky" kids appreciated Python! My feeling is that Python will never be widely used (in schools) unless we can get a PyGamemaker package. Even girls have a ball with gamemaker!
regards Darren
===== -------------------------------------------------------------------------- --------- regards Darren Payne Hurlstone Agricultural High School Ph: 9829 9222 Fax: 98292026
__________________________________ Do you Yahoo!? The all-new My Yahoo! - Get yours free! http://my.yahoo.com
_______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig

Arthur:
But to what extent are you fulfilling your mission to teach programming by using Gamemaker? Its a question, not a provocation, since I don't know the program.
Do you ever get to something that can be considered, fairly, to be programming?
FYI, Gamemaker does expose a coding layer that requires some Java-like programming. It also does a lot out of the box at the click and drag level -- then you can see what you've wrought in terms of code (the palette-driven GUI design motif, applied to dynamic interfaces). At Saturday Academy, Gamemaker is a well established offering and the word of mouth on it is positive, i.e. kids learn from other kids that this is a fun course or courses (I think we might have a beginner and advanced level -- you'd have to check the catalog). It serves as a motivator towards programming, in that eventually you become frustrated with the limitations of the point and click constructions, and the teacher says "OK, you'll need to start learning this OO language then." Some kids drop out right there -- others stick with it. A possible drawback of Gamemaker (I should be corrected if I'm wrong) is that the OO language you need to learn isn't specifically any of the mainstream languages -- it's Gamemaker language, which is Java-like but not Java. Did I get that right? The Satacad instructor (Edwin Pilobello) gave me a quick tour of the package awhile back and this is all I'm going on. Even if that's right, this isn't a super-serious draw back. You get your feet wet in a Java-like language. How bad can that be? My approach to teaching Python is to mix it with a different knowledge domain, but not GUI game making (not that I have any problem with PyGame, but that's not so friendly to newbies as GameMaker). I lean towards using mathematics as my place to cut new programming teeth. At first glance, that sounds like a real turn off. Doesn't it just take the fun out of programming to tie it to a boulder like math, and throw it off a bridge. We just sink to the bottom, right? But look at it this way: they want you to learn quite a bit of math *anyway* (the boulder is a given) and approaching the stuff while learning Python makes the math more fun. In other words *given* math is important, Python has way more to offer in the fun department than just graphing calculators. I think of PyGeo is fitting somewhere in between these two extremes. My math stuff tends to be pretty stark, pretty austere, although I too phase towards visuals with POV-Ray and VPython. PyGeo gives students an interactive command line for creating dynamic interfaces (like GameMaker does), but with stronger ties to mathematics (projective geometry and such). Then at the other extreme you have GameMaker, where you've cut loose from formal math and have to think of some rules that might actually make for a fun experience, i.e. the challenge is to come up with something worth playing (an art in itself). Another approach in which I've been successful with Python is mixing it in as one tool among many in a kind of open source work shop. We're in this bicycle shop (metaphor for Unix-like work bench) and want to know how to fix and assemble bicycles. Python lets you script stuff -- an alternative to bash scripting (Perl got off the ground here too). Python lets you throw together some cgi (e.g. the calendar example). In both applications (scripting and cgi), working in Python helps you learn this new knowledge domain (just like it helped you learn math). You become acclimated to a whole range of new concepts. Note that we're not doing 100% Python programming here. We're getting used to a context, a set of tools. Synergy is key -- always has been in Unix-like worlds (many special purpose tools with orthogonal relationships, like Python itself, sort of). Kirby

Darren, Teaching programming is not easy, but it can be very rewarding. My experience is in teaching at the college level, but I think what I have learned would also be good at the high school level. Darren Payne wrote:
Sorry all - this post will probly stir up a commotion.
I have been keen on Python for quite a while. I have tried using it ti teach programming in a high school situation and would have liked to extend into PyGame. Sadly, though I feel I DO understand object oriented concepts, I DO NOT have any idea of determining what objects to create. Similarly, as there is SO MUCH to learn before one becomes capable of completing even simple tasks like a blackjack cardgame (with gui too)
Some on this list have suggested that Python is "too rich" to be good language for young or first-time programmers. 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. In my introductory class, we teach real programming in Python. I use a simple graphics package that allows students to play with graphics objects in a simple way. This keeps them motivated, and by the end of the semester, they can program an interactive Blackjack game with a simple GUI. I've used that project several times, this semester we're doing mastermind.
... I am finding students get turned off before they even get a chance to see what can be done. I know ... it must be just me and the way I teach it.
The key here is finding interesting problems (or problems that can be made interesting) that don't necessarily require a lot of code. Different students find different things interesting, but I have found that virtually all of them seem to groove on some simple graphics programming.
However, I have recently revisited Gamemaker. I saw it a few years ago and could not make much sense of it. But now it is up to version 6, there are loads of fantastic tutorials to follow along with.
I don't know much about Gamemaker, but what little I have seen suggests to me that learning it may be fun, but does not teach the students very much of lasting value. Do they learn underlying principles of computing such as how data is represented, and what problems can be solved algorithmically? Do they learn anything at all that they can take away and apply to something besides making games in gamemaker? I don't know the answer to these questions, but I suspect it's "no."
I have introduced it to classes from Yr7 - 10 and they love it whereas only 2 - 3 of the really "nerdy", "geeky" kids appreciated Python! My feeling is that Python will never be widely used (in schools) unless we can get a PyGamemaker package.
Games are nice to generate interest, but there are other interesting avenues as well. Graphical programs of all sorts, simulations, even numerical programs, if properly motivated can prove interesting. For example a discussion of what factorial means in terms of rearrangements followed by an algorithm and demonstration can actually keep a lot of students very interested. They get a real kick out of computing 100! (easy to do in Python, not so in other languages). Simple chaotic programs are another example, if you introduce things like the butterfly effect, even a simple sequence of numbers can be interesting. Now the shameless plug. If you are interested in using Python to really teach programming and computer science to high school students, take a look at my book: "Python Programming: An Introduction to Computer Science." Quite a number of high schools having been using it with good success. Programming is not all fun and games, but it's "hard fun" as has been said many times in this group.
Even girls have a ball with gamemaker!
This is an interesting comment. In CS education we wrestle with how to get more girls involved with computers and programming. At many conferences I've been to, female presenters have argued that girls and young women are turned off by game-oriented projects. That has not been my experience, and apparently not yours, either. Just my 2 cents. --John

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. 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, Unless you know something I don't about the Australian school system, those seem to me to be very different matters. 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.
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. 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. Art

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

While we're on the subject of very young students, I thought I should stick my head up and mention that I'm using Zelle's text as the basis for a class of 7th grade girls. I teach at the Hamlin School in San Francisco and, while the girls never actually see the Zelle text, I've used it to structure and scaffold my work with them. The class also uses a specialized language for text adventure games (TADS2), but I've really enjoyed having Python around to teach the computing concepts in a syntax-light environment. Andrew Carle MS Technology The Hamlin School

While we're on the subject of very young students, I thought I should stick my head up and mention that I'm using Zelle's text as the basis for a class of 7th grade girls.
<SNIP>
Andrew Carle MS Technology The Hamlin School
Sounds like a fun class. I'm having trouble keeping up with the 8th grader I'm mentoring. We started with the calendar cgi, then he got into Apache more heavily, including mod_rewrite and mod_python. Another goal was to implement a blog for his teacher, so I recommended Pybloxsom. Before long, he was installing plugins, including a WYSIWYG posting interface. His latest foray was into xml.sax, using Python's sax parser to reorganize his buddy list on gaim. I was able to assist, but had to go to the docs quite a bit. On another front, I've been mentoring a much older guy (70s?) in New Zealand (flies his own plane, takes gorgeous pictures of Middle Earth). His background is Pascal and his questions about Python are more basic and easier for me to answer (nothing about mod_python or xml.sax). You can visit his site, and see some mention of me here: http://www.geokem.com/background.html (scroll down to Programming Languages for Geochemical Applications). I notice he calls me 'Dr. Kirby Urner' which is only correct if you buy that the Fuller School (which has an uphill battle getting any of its syllabus accepted in universities) is authorized to hand out doctor of philosophy degrees. This isn't a discussion I've had with Bernie -- he probably just surmised the Dr. cuz I'm such a geek. Kirby PS: added a couple threads re my Geek Channel idea http://worldgame.blogspot.com/2004/11/geek-channel.html (scroll down to 'Follow-up Threads' -- hit reload if they don't appear).
participants (5)
-
Andrew Carle
-
Arthur
-
Darren Payne
-
John Zelle
-
Kirby Urner