On 5/26/05 7:32 PM, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote:
>> It is fine and good to learn a single language, but this is not >> computer science. A single language is just a tool. It is necessary to >> learn several languages in order to have an idea of what computer >> science actually means. > > I believe that introductory computer science should be taught with more > than one language. Certainly, teaching several languages poses its own > problems. I believe two languages are just right for CS1/2 courses. My > personal choice has been Python for CS1 and Java for CS2. In this way, > students get familiar with the two principal programming language > cultures: interpreted languages and compiled languages. My experience > shows that students learn Java easier after having been acquainted with > Python. Also, teaching CS1 with Python and then CS2 with Java allows one > to cover more concepts (than by using only Java for both CS1 and CS2) > namely because the two languages are so different. I've been involved with teaching CS1/CS2 style courses for the last couple of years where Python is used in the first course, and Java in the second. It's a good combination. Simple Python programs are usually much easier to read and simpler to write than simple Java programs, and so students new to programming really like it. Interestingly, some of the students who have programmed before sometimes complained that Python was just a toy scripting language, and why weren't we teaching them C++ (because that what video games are written in, don't you know). Python's clean syntax is also good as a pseudo-code; I use it all the time now in other courses that don't use Python as the implementation language. The Python interpreter is another big pedagogical plus. The interpreter makes it easy to play with Python and get immediate feedback. It also naturally encourages an incremental and modular programming style. (I don't think the compiled/interpreted distinction is that big a deal. Both Python and Java blur that distinction. The speed and ease of feedback seems to have a bigger impact on beginners.) Seeing all the basic ideas of programming in a friendlier and easier environment surely helps when it comes to learning Java. It makes dealing with Java's OO overhead and relative prolixity more palatable. On the down side, the Python IDEs I've seen are nowhere near as good as the Java IDEs such as Eclipse or IDEA. This is no problem for Catholic coders who dislike IDEs, and it is less of problem for Python because of its good syntax, but an IDE that supports refactoring and incremental compiling sure would be nice. Toby -- Dr. Toby Donaldson School of Computing Science Simon Fraser University _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig