Matthew Smillie wrote: > > Basically, there are many ways to accomplish a given task, which makes > it comparatively easy to write a program that - while it produces the > desired output - completely misses the point of the learning exercise. If accomplishing a given task is *not* the point of the learning exercise, then what is, and why might students be unclear on what is expected of them? I'm skeptical that Tim Toady is the culprit here. If you, as the teacher, don't want students diddling arounf with every syntax for a conditional, then tell them the one form they are allowed to use for the exercise and leave it at that. > > Another difficulty is that while the syntax might *look* straight- > forward, but in part that's because a lot of Ruby relies on programmers > having an understanding of how programming works in general, and a lot > of the generic terms can be elided or condensed. When you're learning > programming, you need to know about those implicit bits, and having to > write them out explicitly helps with that. > > To give a concrete example, think of the 'return' statement - it's > *required* in Java for the method to return anything, and is optional > (but generally not used) in Ruby. For someone learning Ruby, this > means they have to remember that the last statement evaluated is the > return value, which is just one more thing to put on their stack of > not-quite-understood concepts (and they have LOTS of those concepts > when they're learning). Actually, this is fundamental to understanding Ruby; expressions return values; methods are a series of expressions. The "must remember to type a gratuitous 'return'" seems like the extra work. Students will learn the Ruby you teach them. Don't throw a lot of syntax at them before explaining basic principles. Otherwise the syntax just seems arbitrary (or more arbitrary than it is), and the principles will not make much sense after they've been blindly coding with random expressions in search of code that simply runs without errors. It may be useful to watch the SICP videos from MIT (and they may be the best argument for teaching Scheme over Ruby :) ) http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/ -- James Britt "Take eloquence and wring its neck." - Paul Verlaine