> They're things that can be IMO genuinely accept > as "obvious". Even "counting" is not the lowest > level in mathematic... there is the mathematic > philosohy direction. I am personally highly interested in become aware of the very bottom, the fundaments all our knownledge is build on. Trying to answer questions like: What are the most basic ideas all other are derived from in mathematics and programming? keeps me busy for hours, days, years ...
Any insights you can share with me(and/or this group)? Claudio "Andrea Griffini" <[EMAIL PROTECTED]> schrieb im Newsbeitrag news:[EMAIL PROTECTED] > On Sun, 12 Jun 2005 20:22:28 -0400, Roy Smith <[EMAIL PROTECTED]> wrote: > > >How far down do you have to go? What makes bytes of memory, data busses, > >and CPUs the right level of abstraction? > > They're things that can be IMO genuinely accept > as "obvious". Even "counting" is not the lowest > level in mathematic... there is the mathematic > philosohy direction. From "counting" you can go > "up" in the construction direction (rationals, > reals, functions, continuity and the whole > analysis area) building on the counting concept > or you can go "down" asking yourself what it > does really mean counting, what do you mean > with a "proof", what really is a "set". > However the "counting" is naturally considered > obvious for our minds and you can build the > whole life without the need to look at lower > levels and without getting bitten too badly for > that simplification. > > Also lower than memory and data bus there is > of course more stuff (in our universe looks > like there is *always* more stuff no mattere > where you look :-) ), but I would say it's > more about electronic than computer science. > > >Why shouldn't first-year CS students study "how a computer works" at the > >level of individual logic gates? After all, if you don't know how gates > >work, things like address bus decoders, ALUs, register files, and the like > >are all just magic (which you claim there is no room for). > > It's magic if I'm curious but you can't answer > my questions. It's magic if I've to memorize > because I'm not *allowed* to understand. > It's not magic if I can (and naturally do) just > ignore it because I can accept it. It's not > magic if I don't have questions because it's > for me "obvious" enough. > > >> 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. > > > >At some point, you need to draw a line in the sand (so to speak) and say, > >"I understand everything down to *here* and can do cool stuff with that > >knowledge. Below that, I'm willing to take on faith". I suspect you would > >agree that's true, even if we don't agree just where the line should be > >drawn. You seem to feel that the level of abstraction exposed by a > >language like C is the right level. I'm not convinced you need to go that > >far down. I'm certainly not convinced you need to start there. > > I think that if you don't understand memory, > addresses and allocation and deallocation, or > (roughly) how an hard disk works and what's > the difference between hard disks and RAM then > you're going to be a horrible programmer. > > There's no way you will remember what is O(n), > what O(1) and what is O(log(n)) among containers > unless you roughly understand how it works. > If those are magic formulas you'll just forget > them and you'll end up writing code that is > thousands times slower than necessary. > > If you don't understand *why* "C" needs malloc > then you'll forget about allocating objects. > > Andrea -- http://mail.python.org/mailman/listinfo/python-list