Slashdot Mirror


Donald Knuth Worried About the "Dumbing Down" of Computer Science History

An anonymous reader writes: Thomas Haigh, writing for Communications of the ACM, has an in-depth column about Donald Knuth and the history of computer science. It's centered on a video of Knuth giving a lecture at Stanford earlier this year, in which he sadly recounts how we're doing a poor job of capturing the development of computer science, which obscures vital experience in discovering new concepts and overcoming new obstacles. Haigh disagrees with Knuth, and explains why: "Distinguished computer scientists are prone to blur their own discipline, and in particular few dozen elite programs, with the much broader field of computing. The tools and ideas produced by computer scientists underpin all areas of IT and make possible the work carried out by network technicians, business analysts, help desk workers, and Excel programmers. That does not make those workers computer scientists. ... Computing is much bigger than computer science, and so the history of computing is much bigger than the history of computer science. Yet Knuth treated Campbell-Kelly's book on the business history of the software industry (accurately subtitled 'a history of the software industry') and all the rest of the history of computing as part of 'the history of computer science.'"

28 of 149 comments (clear)

  1. Sheeit, journalist by Anonymous Coward · · Score: 3, Insightful

    When you find yourself disagreeing like this to Don Knuth, of all people, and essentially calling him a myopic old coot, for reals nigga you better check yourself. The article doesn't even try to make a counterargument to itself.

    1. Re:Sheeit, journalist by bmajik · · Score: 5, Informative

      If you look up "appeal to authority" logical fallacy, there is an exception for Donald Knuth:

      "footnote: It is never fallacious to properly cite Donald Knuth in lieu of providing your own argument."

      --
      My opinions are my own, and do not necessarily represent those of my employer.
  2. Knuth is right. by Anonymous Coward · · Score: 5, Insightful

    One of the problems this causes is the lack of appreciation for the mathematics that defines computer science, and computers.

    The end result is politicians making stupid laws and judges making stupid rulings...

    With stupid patents on software being the stupid result.

    1. Re:Knuth is right. by Penguinisto · · Score: 4, Interesting

      One of the problems this causes is the lack of appreciation for the mathematics that defines computer science, and computers.

      The end result is politicians making stupid laws and judges making stupid rulings...

      With stupid patents on software being the stupid result.

      Umm, dunno how else to say it, but honestly? Ignorance of mathematics isn't the cause of stupid laws and policy around technology; lobbyist money, bullshit ideological agendas, and self-serving BS flowing from big tech corporations would be your most likely sources for that.

      I'm perfectly willing and eager to be proven wrong on this, but I figure in the list of causes? Ignorance of CompSci-oriented mathematics is waaaaaaaaaaaaaay down on the list of causes for stupid governmental tech policy, somewhere around "Clippy".

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    2. Re:Knuth is right. by Anonymous Coward · · Score: 3, Informative

      Discreet mathematique are the basis for computing

    3. Re:Knuth is right. by Anonymous Coward · · Score: 2, Informative

      It is the mathematics that IS the computer. Studies on math proofs, generation of ballistics tables, navigation tables...

      And the realization that the ideal person to carry out mathematical steps is someone without imagination, can't be distracted, and doesn't lose their place... In sort, a "mechanical calculator"... Thus the invention of calculators - going back to the Abacus (1300BC), Napiers Bones for multiplication (1612AD), and slide rules (1622AD), first mechanical adding machine (Pascal, 1642), the Leibniz calculator (add/subtract/multiply/divide, in 1674. Then we get to Charles Babbage and the difference engine (for creating navigation tables in 1822) who then moves on to what is considered the first real computer - the Analytical Enging (1838) - even though it was never built, the first programs were written to show what it could do (credited to Ada Lovelace). - references from http://www.mortgagecalculator.org/helpful-advice/chronological-calculator-timeline.php, which has a nice presentation for calculator history

      The instruction cycle is how math formulas are evaluated.

      The CPU is an implementation of the instruction cycle, combined with an arithmetic logic unit.

      All that a CPU can do is defined by mathematics - it can't do anything else.

    4. Re:Knuth is right. by ShanghaiBill · · Score: 3, Funny

      Discreet mathematique are the basis for computing

      Not at the semiconductor junction level. It is quantum wave functions at that level. Talking about computers as discrete devices, and ignoring the quantum physics, is just dumbing it down. Kids should not be learning programming until they can independently derive both Schrodinger's equation and Heisenburg's matricies.

    5. Re:Knuth is right. by beelsebob · · Score: 5, Insightful

      If you don't know how mathematics defines computer science, then you need to go and study more computer science.

    6. Re:Knuth is right. by Mr.+Slippery · · Score: 3, Insightful

      Discreet mathematique are the basis for computing

      Not at the semiconductor junction level.

      You are confusing computing with computers. Indeed, a "computer" used to be a human being implementing algorithms with a mechanical adding machine, and then were tube-based electrical systems, and in the future may use something wholely other than semiconductors; computing, however, remains the same. A bubble sort is still a bubbble sort.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    7. Re:Knuth is right. by swilly · · Score: 5, Informative

      Computer Science is a pretty broad area of study, but I consider these three problems to be the most fundamental.

      Computability: What can a computer do and what can it not do? There are an uncountably infinite number of problems that a computer cannot solve (undecidable), and only a countably infinite number of problems that a computer can solve (decidable). Fortunately, most of the interesting problems are decidable.

      Complexity: If a computer can do something, how efficiently can it be done? This goes beyond the Big O you are taught as an undergraduate, and considered language spaces such as P, NP, PSPACE, EXPTIME, and so on. It also considered not only computation time but space (unfortunately, few undergraduates are introduced to space constraints of algorithms, a great interview question is to list an example of a sorting algorithm that takes constant space).

      Equivalence: Given two algorithms, do they perform the same computation? Meaning that given the same inputs they will always produce the same outputs (and yes, side effects are also outputs)? A less strict (but of more practical importance) is whether or not a program meets a specification.

      Computability and complexity are both important parts of the theory of computation, which is usually built on top of Language Theory, which is itself built on top of Set Theory. The hardest problem is modern mathematics may be P = NP, which is also a Computer Science problem. The third problem requires creating mathematical proofs using Formal Logic. It is also an excellent example of an undecidable problem, meaning that there is no general algorithm that can perform it for every program (in other words, it's something that a computer cannot do).

      In addition to Set Theory and Formal Logic, Computer Science relies heavily on Boolean Algebra, Graph Theory, and other areas of Discrete Mathematics. Computer Science is inherently cross-disciplinary, but at its core it is closer to Mathematics than it is to Engineering or Science.

  3. Summary needs a rewrite... by patniemeyer · · Score: 2

    I get the gist of it but the summary is so mangled that it doesn't really make much sense.

  4. False Summary - Haigh Agrees with Knuth's Thesis by careysub · · Score: 5, Informative

    Which is: there are no good technical histories of computer science.

    Read TFA - he spends the majority of the article explaining in detail why Knuth is right - that there are indeed no good technical histories of computer science, and little prospect of any.

    Where Haigh takes issue with Knuth is in arguing that the histories of computers and software, which are not technical histories, are nonetheless valuable in their own right, and thus Knuth's dismay at their publication is misplaced. But he otherwise agrees with Knuth has to say.

    --
    Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
  5. Obligatory Dr. Fun reference by cruff · · Score: 3, Funny

    Seems to me he's already sold out. :-) http://www.ibiblio.org/Dave/Dr-Fun/df200002/df20000210.jpg

  6. Jobs is Jesus by Anonymous Coward · · Score: 3, Funny

    Steve Jobs invented computers, smartphones, innovation, and minimalism.

    What more does one need to know about computer science history?

    1. Re:Jobs is Jesus by K.+S.+Kyosuke · · Score: 3, Insightful

      Well, sort of. If you replace "NASA" by "MIT", "invented" by "vastly improved", and "computers" by "embedded systems", then you're right. :-)

      --
      Ezekiel 23:20
    2. Re: Jobs is Jesus by K.+S.+Kyosuke · · Score: 2

      How is that relevant to my claim that MIT pushed for a modern-style embedded system (IC-fabricated stored program digital computer with a priority scheduling, event processing RTOS) as the solution for the control, navigation, and guidance of Apollo?

      How's been your reading comprehension lately?

      --
      Ezekiel 23:20
  7. But wait,there's more by ripvlan · · Score: 3, Insightful

    I returned to college several years ago after a 20 year hiatus (the first 6 years were my creative period). My first time around I studied what might be called pure Computer Science. A lot has happened in the industry after 20 years and I very much enjoyed conversations in class - esp with the perspective of the younger generation. I found it fascinating how many kids of today hoped to enter the gaming industry (my generation - Zork was popular when I was a kid and Myst was a breakout success on a new level). Kids today see blockbuster gaming as an almost make it rich experience - plus a "real world" job that sounds like fun.

    But more interesting was the concepts of Computer Engineering vs Computer Science. What is Science vs Engineering? Are software "engineers" really scientists? Do they need to learn all this sciencey stuff in order to enter the business school? I attended a large semi-well-known University. Back in the '80s the CS department was "owned" by the school of business. Programming computers was thought to be the money maker - only business really used them with a strong overlap into engineering because computers were really big calculators. However it was a real CS curriculum with only 1 class for business majors. Fast forward a dozen years and CS is now part of the Engineering school (with Business on its own). The "kids" wondered why they needed to study Knuth et al when they were just going to be programming games. What about art? Story telling? They planned on using visual creative studio tools to create their works. Why all this science stuff? (this in a haptics class). Should a poet learn algorithms in order to operate MS-Word?

    Since computers are ubiquitous they are used everywhere. I tell students to get a degree in what interests them - and learn how to use/program computers because...well..who doesn't use a computer? I used to program my TI calculator in highschool to pump out answers to physics & algebra questions (basic formulas).

    Are those who program Excel Macros computer scientists? No. Computer Engineers? no. Business people solving real problems? Yes/maybe. The land is now wider. Many people don't care about the details of landing a man on the moon - but they like it when the velcro strap on their shoes holds properly. They receive entertainment via the Discovery Channel and get the dumbed down edition of all things "science."

    When creating entertainment - it needs to be relatable to your target audience. The down and dirty details and technicalities interest only a few of us. My wife's eyes glaze over when I talk about some cool thing I'm working on. Retell it as saving the world and improving quality - she gets it (only to politely say I should go play with the kids -- but at least she was listening to that version of events).

    I think that the dumbing down of history is ... well.. history. There was this thing called World War 2. The details I learned in grade school - lots of details. Each battle, names of important individuals. Today - lots of history has happened in the meantime. WW2 is now a bit dumbed down - still an important subject - but students still only have 8 grades in school with more material to cover.

    My brain melts when I watch the Discovery Channel. I'm probably not the target audience. The details of historical science probably interest me. The history of Computing needs to be told like "The Social Network."

    1. Re:But wait,there's more by ledow · · Score: 3, Interesting

      It's even simpler than that.

      Computers are a tool. That's what they were designed to be, that's what they are. You can use them, or not.

      Computer science isn't about using a tool. It's about creating a tool that's useful, and enhancing existing tools.

      Every idiot can pick up a hammer and bash a nail it. Not everyone could forge a hammer-head, wedge it strong enough into well-prepared wooden handles, etc.

      That you can use the tools made by others to get rich - it's undeniable. It's also very rare and down to little more than chance. And gaming is the one that attracts young minds because they are ALL users of games and games devices.

      But there were a bucket of clone games before the existence of and while things like Minecraft, Angry Birds, etc. were being developed.

      The programmer who wrote the map editor for Half-Life probably couldn't put a level together. But a 3D artist can take that tool and slap it together even if he doesn't really understand what a shader is. It's two entirely separate areas that people STILL confuse.

      Want to play games? Go ahead. You just need a computer. Want to write games? You have to become a coder, or use the tools other coders have written for you. Want to write the tools? You have to be a coder. Working in IT in schools, I get a lot of parents tell me their kids are "good with computers" and should be in the top IT classes, etc. and what university should they go to to write games? I advise all of them against it, when they come from that angle. Because immediately my first question is Have you ever written one? No. Then find another career path. Or go away, write one, come back in six months and ask me again.

      The parents get miffed, but they are the ones that have come to me for the advice. And yet, the ones who COULD make it in computer science, they don't need to ask. They know where they're heading. They can knock up something in an afternoon or tell you how to go about it.

      Using the tools can be a skill. I wouldn't want to be up on an oil rig handling some specialist device to build the platform, and it probably takes years of on-the-job and other training to do it properly and safely. But the guy who designed it? You'll probably never see him. If he turns up on the oil rig, it's in a hardhat and business suit to look at the job, and then he's gone.

      Everyone can use a basic tool. Some can use a complex tool skilfully. Others can design and make the tools in the first place. It applies to all walks of life and all careers, though, not just IT.

      You can no-doubt drive a car. But you'll never win a rally no matter how good you think you are. And though you might be able to cobble together parts to make something that moves, to build and design the car to similar specifications from nothing takes decades of experience and a high level of skill.

      You can no-doubt browse the web on your computer. But you'll never run your own network effectively. And though you can cobble together parts to make something that works, to build and design the chips, the protocols, the electrical specifications, etc. takes decades of experience and a high level of skill.

      You can no-doubt play some kind of instrument. But you'll never be a concert performed. And though you can cobble together parts to make something that makes a good sound, to build and design and PLAY the instruments properly takes decades of experience and a high level of skill.

      You can no-doubt draw. But you'll never be an artist. And though you can cobble together parts to make something that looks good, to knock up a work of art takes decades of experience and a high level of skill.

      We just need to separate the idea in people's heads. Using a computer is different to "being good" with a computer. which is different to "knowing" about the computer, which is different to programming the computer, which is different to designing the computer.

      The deeper you go, the more skill and knowledge you need.

      Wor

  8. It Really Does Feel Like We're Going Backward by Greyfox · · Score: 2

    Since the mid 2000s I feel like I've been seeing a lot more BFI solutions, BAD BFI solutions, than I did back in the '90's. I guess back then you had to use some finessee in your programming to get the performance you needed out of the system. Either that or I'm working with more bad developers lately. I suppose that's also possible.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    1. Re:It Really Does Feel Like We're Going Backward by plopez · · Score: 4, Insightful

      Even worse. I have seen both hierarchical and network databases re-invented.

      --
      putting the 'B' in LGBTQ+
  9. it's everywhere by Virtucon · · Score: 2, Insightful

    we've raised at least two generations of self obsessed, no attention-span kids who want instant gratification. Retards like Justin Bieber who today tweets that he bought a new plane. As the later generations grow into the workforce and into fields like journalism, history and computer science it's no small wonder they want to reduce everything down to one liners or soundbites. Pick your field because these kids started with censored cartoons and wound up with Sponge Bob. Shit, even the news is now brokered into short paragraphs that just say "this shit happened now onto the next.."

    Screw that! Yeah I'm getting older so get the fuck off my lawn!

    --
    Harrison's Postulate - "For every action there is an equal and opposite criticism"
  10. Re:False Summary - Haigh Agrees with Knuth's Thesi by Dracos · · Score: 4, Insightful

    there are indeed no good technical histories of computer science, and little prospect of any.

    I see the posthumous reactions to Steve Jobs and Dennis Ritchie as indicators that Knuth is absolutely right. Jobs, who was essentially just a marketing asshole, gets every manner of fanfare commemorating his "world-changing" achievements. Ritchie on the other hand is almost completely ignored in the media, even though he is one of the giants upon whose shoulders Jobs undeservingly stood.

    I bet anyone here would agree that co-authoring UNIX is a far more important event than being the iPod/iPhone taskmaster.

  11. The physics does NOT define Computer Science by Anonymous Coward · · Score: 5, Insightful

    The physics does NOT define Computer Science. Computer Science has nothing that depends on transistors, or tubes, or levers and gears.

    Computers can be designed and built, and computing performed, at many different levels of physical abstraction.

    You can do computer science all on paper for fucks sake.

    Ever heard of this guy called Alan Turing?

    Knuth is right, the ignorance, even among technical people, is astounding

  12. Comment removed by account_deleted · · Score: 3, Funny

    Comment removed based on user account deletion

  13. Re:False Summary - Haigh Agrees with Knuth's Thesi by plopez · · Score: 2

    " far more important event than being the iPod/iPhone taskmaster"

    I am actually going to argue that point with you. From an applications POV; IPods, IPads, iPhones, and OS X took the capabilities of Unix, and a host of other technologies, and leveraged them into something with a huge impact on social order, business, art, and science. Having Unix at the ready was important. But creating those products took the power of Unix into a whole new realm.

    By analogy, knowing 2 Ca3SiO5 + 7 H2O ---> 3 CaO.2SiO2.4H2O + 3 Ca(OH)2 + 173.6kJ is important.

    Taking that and using it to create a transcontinental highway system is also very important.

    --
    putting the 'B' in LGBTQ+
  14. Re:Knuth vs. whom? Thomas Haigh? OK. by loufoque · · Score: 2

    Anyone who venerates TAoCP like you do is a drone formatted by the establishment, an elitist, or both.

  15. Re:Just wondering by PatPending · · Score: 2

    Quote:

            People frequently ask me why I picked such a title; and in fact some people apparently don't believe that I really did so, since I've seen at least one bibliographic reference to some books called "The Act of Computer Programming."

            In this talk I shall try to explain why I think "Art" is the appropriate word. I will discuss what it means for something to be an art, in contrast to being a science; I will try to examine whether arts are good things or bad things; and I will try to show that a proper viewpoint of the subject will help us all to improve the quality of what we are now doing.

            One of the first times I was ever asked about the title of my books was in 1966, during the last previous ACM national meeting held in Southern California. This was before any of the books were published, and I recall having lunch with a friend at the convention hotel. He knew how conceited I was, already at that time, so he asked if I was going to call my books "An Introduction to Don Knuth." I replied that, on tile contrary, I was naming the books after him. His name: Art Evans. (The Art of Computer Programming, in person.)

            --via Preface of "Literate Programming" citing Knuth's Turing Award speech in 1974

    --
    What one fool can do, another can. (Ancient Simian Proverb)
  16. Re:Fuzzball definitions by tlhIngan · · Score: 2

    Entire field is a bit young and I always thought that 'computer science' is a bit awkward term. But IME everyone agrees that it's study of algorithms and their implementation in computing devices. It's basically applied math.

    It's a more misunderstanding of science and engineering. Computer science is like other sciences - biology, physics, chemistry, etc. They're concerned about studying the theory of their branch of science, so for computer science, it's about computability - can you do something? And in what kind of time/space constraints?

    But you don't ask a biologist to heal you, or a physicist to build you a bridge, or a chemist to manufacture gasoline. So you shouldn't ask a computer scientist to write you an app. Engineering is the application of science - and in more than a few places, the engineering degree is marked as applied science.

    The computer engineer takes the research done by computer scientists and applies it with standard engineering compromises to produce something. Most people who do "computer science" actually do "computer engineering".

    Want to see the differences illustrated more clearly? Try comparing the periodicals produced by computer science groups like the ACM, versus those by engineering groups like the IEEE.