Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!uakari.primate.wisc.edu!brutus.cs.uiuc.edu!apple!snorkelwacker!spdcc!xylogics!world!madd From: madd@world.std.com (jim frost) Newsgroups: comp.software-eng Subject: Re: CS education [engineering, mathematics, and computer science] Message-ID: <1989Nov22.195230.11965@world.std.com> Date: 22 Nov 89 19:52:30 GMT References: <1989Nov20.160513.19313@world.std.com> <34804@regenmeister.uucp> Organization: Software Tool & Die Lines: 73 chrisp@regenmeister.uucp (Chris Prael) writes: >From article <1989Nov20.160513.19313@world.std.com>, by madd@world.std.com (jim frost): >> I've found mathematics to be priceless in both practical and >> theoretical computing. >Some examples would be useful. Most of the networks you're using use high-powered math, particularly graph theory, to get reasonable performance. Go pick up a networking book worth its name and you'll find tons of those little squiggles all through it. Statistics are in use every day. Ever used a paging kernel? They use statistics to predict future probabilities. Which page should I get rid of? Which are likely to be used soon? There's math behind all that, since the pager is doing statistical analysis (often tempered with a bit of generalizations like "programs run linearly" which may or may not hold water). Much of graphics is modelling real-life which works on physics which works on mathematics. Ever done ray-tracing? These are off the top of my head. Go get an algorithms book and go through it and you'll find HUNDREDS of examples, most of which will be better than mine because most of those guys are real theoreticians. >> It certainly can avoid doing things the hard >> way, and we can avoid the mistakes of our predecessors who had to do >> so because of a poor understanding of the problems at hand. >More mistakes and misunderstandings in computing and its development >can be traced to pseudo-mathematical pretences than can be traced to >mathematical ignorance. Huh? Most of the mistakes I've seen were the result of people not understanding complexity, something which you learn early in mathematics. Bubble-sorts don't work on million-record databases. 2n programmers don't create twice the code in the same amount of time. Summing a series expicitly is not as effective as calculating a general case and using it instead. These are the kinds of mistakes you see all over the place, most often with people who spend all of their time worrying about having the most efficient code. I'd like to see counterexamples. >As did Dario, your argument raises the >question of how deep or shallow your comprehension of either mathematics >or computing are. At least I acknowledge a relationship. Do you? >One thing that becomes particularly clear if one examines the development >of the field over the last forty years is that the pace of innovation has >decreased drastically in the last 20 to 25 years. Kids come out of school >with 25 year old techniques and ideas, believing that this stuff is brand >new. One can blame the slowing partly on the "maturing" of computing as a >field. I'm confused here. I mean, really confused. I was shocked when studying algorithms to find that most of the people involved are still alive and working on things. Development hasn't slowed, it's accellerated to the point where it's impossible to keep up with it all. People building on previous theories or proving they degrade in this-or-that circumstance or showing that some other technique is optimal, or nearly so, or as optimal as possible given that you can't know the future. I read the technical reports and every month there's something new. If you don't see it, you're not looking for it, or you're missing it because it's a much wider field than it used to be. It certainly isn't going slow to me. jim frost software tool & die madd@std.com