> So you're arguing that a CS major should start by learning electronics > fundamentals, how gates work, and how to design hardware(*)? Because > that's what the concrete level *really* is. Start anywhere above that, > and you wind up needing to look both ways.
Some very good schools still believe that Mike Meyer wrote: > Andrea Griffini <[EMAIL PROTECTED]> writes: >> On Sat, 11 Jun 2005 21:52:57 -0400, Peter Hansen <[EMAIL PROTECTED]> >> wrote: >> Also concrete->abstract shows a clear path; starting >> in the middle and looking both up (to higher >> abstractions) and down (to the implementation >> details) is IMO much more confusing. > > So you're arguing that a CS major should start by learning electronics > fundamentals, how gates work, and how to design hardware(*)? Because > that's what the concrete level *really* is. Start anywhere above that, > and you wind up needing to look both ways. > > Admittedly, at some level the details simply stop mattering. But where > that level is depends on what level you're working on. Writing Python, > I really don't need to understand the behavior of hardware > gates. Writing horizontal microcode, I'm totally f*cked if I don't > understand the behavior of hardware gates. > > In short, you're going to start in the middle. You can avoid looking > down if you avoid certain classes of problems - but not everyone will > be able to do that. Since you can only protect some of the students > from this extra confusion, is it really justified to confuse them all > by introducing what are really extraneous details early on? > > You've stated your opinion. Personally, I agree with Abelson, Sussman > and Sussman, whose text "The Structure and Interpretation of Computer > Programs" was the standard text at one of the premiere engineering > schools in the world, and is widely regarded as a classic in the > field: they decided to start with the abstract, and deal with concrete > issues - like assignment(!) later. > > <mike > > *) "My favorite programming langauge is solder." - Bob Pease > -- http://mail.python.org/mailman/listinfo/python-list