Andre Roberge wrote: > ... Let me give a concrete example explaining inheritance for non-computer > scientists. > === > class Father(object): ... > class Mother(object): ... > > class Child(Mother, Father): ... > === > The computer scientists in the (virtual) room are probably horrified.
Yup. I am aghast. You are using the "built-from" relationship. For yourself this is fine, but pedagogically it leads to very bad habits. The reason I am appalled is that I have maintained code that was written this way, and the mess that results over years of extending from such a shaky foundation is scary. > I would claim the above example would be appropriate for the average person. I claim this is because you are a scientist, not a mathematician. At Penn, Mathematics was an Art, not a Science (I have great sympathy for that classification). You are in the habit of lying to your students and, next course, telling them "you know, what you learned in the previous course was wrong." This is a reason for people leaving the sciences. Mathematicians tend to try to stick to truths, though they expand the universe they talk about each time. In part this distinction in approaches makes sense because mathematicians who make mistakes are corrected (and scorned) by other mathematicians, while physicists are corrected by reality (and refine their models). Computer Science is a funny field, reached from both mathematics and engineering, so the ideas you see there can come from either of these sides (and cause lovely fights in faculty meetings). I consider CompSci an architecture-like discipline, with mathematics holding the position in CompSci that physics has in architecture. > Words like "inheritance" have been borrowed and adapted by computer > scientists for use in their own discipline. While words like "spin" for physicists.... Natural languages seldom have precise definitions, and Computer Science is not close to the worst offender in this respect. To follow up on Kirby's personal history suggestion: I was a math loving kid by fourth grade, came to computers by accident in summer after 9th grade (in 1966) doing machine language on a vacuum tube computer (LGP-30). The following summer I spent full-time in an NSF-sponsored class at Penn where we a language a week for the summer (two programs per language). The experience gave me a good feel for what a programming language is in general, as well as specifically. I decided around 1972 (after auditing a class or two from Knuth) that I could be either a mediocre mathematician or a very good computer programmer. Twenty years ago I went back to school to attempt a PhD as a teaching union card in CompSci, and got a "drop-out masters." For my research I was trying to do Query Optimization in Object-Oriented Databases, and glanced briefly at Python (the type system did not fit my research needs). After working in compilers and Databases after school, I picked up Python as a way of pursuing a long-running personal project, and had the most fun I've had in a new language in 30 years. --Scott David Daniels [EMAIL PROTECTED] _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig