Matthew Rosewarne on 20 Mar 2007 20:58:00 -0000 |
On Tuesday 20 March 2007 15:43, Douglas Muth wrote: > On 3/20/07, Matthew Singleton <msingle1@sccs.swarthmore.edu> wrote: > > I would suggest Python. My school has recently switched over to Python > > for CS intro courses, and it has been very successful. > > I'm not an educator, but I would also suggest Python for beginners. > > The biggest thing I like about it is that if forces indentation in > blocks of code, which is a habit best learned early. :-) > > I also like the fact that you can "dump" arrays and hash tables just > by printing them out. That's not something that you'll ever find on a > production system, but is very helpful for the beginner who doesn't > fully understand how those data structures work. I'm primarily investigating Python, Ruby, and Eiffel. Python and Ruby both have the advantages of being interpreted and can use bindings to Qt, which lets the students make programs they can run at home (all the programming there is done on Apples). I should think the goals of a teaching language would be: +simplicity: easy tasks should be easy and straightforward -Not C++ or Java then +consistency: things should behave in similar ways, so you can apply what you already know to what you want to find out +cleanliness: no ugly hacks please -Python's unicode handling is somewhat hackish IMO +strictness: ideally the language should enforce good practise, sloppy coding is something to be avoided early on! -Dynamic-typing may very well be a hindrance here? +relevance: it's not quite as important, but hopefully this language should be able to do the tasks needed by modern programmers -Big problem with Pascal & Scheme, also somewhat with Eiffel All have their upsides and downsides for educational purposes though. Python and Ruby may be great for real-world coding, but I'm worried they might lack the enforcement of coding discipline that I feel is important for teaching beginners. Eiffel is very strict and requires good practise, but does not seem very widely used, although perhaps it will grow now that its tools are GPL... Perhaps it's just paranoia and coding correctness can still be enforced by the teacher? Being able to write Python or Ruby (or C++ for that matter) would facilitate a program where students could spend a semester working on FOSS projects for real world experience (SoC-style), whereas something like Eiffel or Pascal would definitely not... Is there something important I'm missing? P.S.: Teaching beginners PHP is a crime, it would be better for students to learn how to manipulate CPU registers with a hammer and chisel. P.P.S.: Same with Perl. Attachment:
pgpBNk0PSbnDz.pgp ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
|
|