Hello everyone, I'm new to this group, so forgive me if I bring up topics already addressed here or babble on a bit! I've signed up because I'm a programmer who has become addicted to Python and think it's a great introductory programming language. I really believe Guido van Rossum is right that it is an ideal first programming language, not just because it's clean code but because at the conceptual level it's abstract enough that things just work like they should. I've often written a Python script only to think "I'm done?" because I'm so used to sweating all the low-level details or dealing with cryptic syntax errors. I also think Guido is right in saying that programming is a skills everyone should learn. I know colleagues who spend much of their time doing repetitive tasks, taking hours or days to do something that a computer could do in seconds or minutes. The problem is, of course, that most of the "learn programming" books out there are not really that good, IMHO. They may teach you to write code in C/Java/Python but they don't teach you how to design a program. They don't teach you how to abstract a problem and break it down; in short, they don't teach you to "think like a programmer." In my experience, learning programming that way can take years. You have to just keep writing bad programs over and over, picking up small lessons about good program design from each failure. It's hard to recommend programming to a colleague or friend knowing it will take them so long to learn how to do it. I think there has to be a better way. So first I'd like to throw out a couple questions, if you don't mind me picking your collective minds: 1) Are there any "best practices" about how to teach programming? What works, and what doesn't? 2) I've read the CP4E project is dormant. Is there any interest in the Python community for reviving this, or have suitable replacement projects sprung up? 3) Is there anyone out there who has had experience teaching Python, or even another language for that matter? I'd be interested in knowing if people agree with the points I mentioned above. Since I've taken your time and asked these questions, I might as well give something back. =) Below is a link to, IMHO, a very interesting Introductory C++ Programming course. The entire course is designed as a simulation, where the learner assumes the role of an employee at a new programming company and receives tasks that start out easy and get more and more difficult. The learner receive "emails" from the "boss" giving them their assignment. The interesting thing is that there is a completely integrated help system. If the learner doesn't feel comfortable with completing a task, the software will point the learner to relevant documents and examples to help get them up to speed. I haven't taken the course (it is quite expensive!) but it certainly seems an innovative way of teaching programming. I thought you all may like to see it. The link is: http://www.as.columbia.edu/exec/guest/courses/course_icplus_overview.cfm You can take a "tour" of the course environment by clicking on "view course demonstration". Worth a click, IMO. Sorry to bother you all with so many questions on my first post, and thanks for taking the time out to read this! Kevin Ollivier