Slashdot Mirror


Great Computer Science Papers?

slevin writes "Recently I listened to a talk by Alan Kay who mentioned that many 'new' software ideas had already been discovered decades earlier by computer scientists - but 'nobody reads these great papers anymore.' Over the years I have had the opportunity to read some really great and thought-provoking academic papers in Computer Science and would like to read more, but there are just too many to sort through. I'm wondering what great or seminal papers others have encountered. Since Google has no answers, perhaps we can come up with a list for the rest of the world?"

18 of 410 comments (clear)

  1. Edsger Wybe Dijkstra by marsbarboy · · Score: 5, Insightful

    What about the work of Edsger Dijkstra? His seminal work on 'The GOTO statement considered harmful', the Shortest Path Algorithm, and the dining philosophers.

    --
    The truth is rarely pure and never simple. Oscar Wilde (1854 - 1900)
  2. Old Research and Patents - A True and Recent Story by ljavelin · · Score: 5, Insightful

    You betcha. There has been a lot of research over the past 50 years, and much of it ignored - especially research that isn't in English.

    A lot of old research is interesting in terms of Patent law. A lot of this research can be used to invalidate patent cliaims - prior art. An idea published 30 years ago simply cannot be legitimately patented now.

    Very recently my Dad told me about a new patent assigned to one of his competitors. But my Dad claimed that his colleauge didn't patent that very idea in the 1970s because my dad knew of prior art - my dad had heard a researcher from Germany talk about the same thing at a small conference.

    Given prior art, my Dad and his colleauge didn't apply for patent back then. But 35 years later, a company patented the idea. My Dad was pretty pissed!

    So Dad and I shlogged through tons of (paper) documents and LoC and other resources trying to help him remember who the speaker was and where the conference was held. After a few weeks of digging, we got a copy of the (hard to locate) conference proceedings, and now that brand new patent looks like it's toast.

    Now here's the rub - the only reason why this patent was invalidated was because my dad is still in the industry - and he's well over retirement age. Everyone else my Dad works with thought the patent would toast them. Only my dad, and old researcher with a good memory, could help his company overcome the (invalid) patent. What if my dad was retired? What if he didn't attend that talk in the 1970s? Most people simply wouldn't have known where to look for the prior art. [And not every call for prior art is suitable for Slashdot.]

    Old research and old researchers are good - not only for disposing of "new" patents, but for the value of the efforts and lessons learned. So much is forgotten.

  3. Re:Old Research and Patents - A True and Recent St by Detritus · · Score: 1, Insightful

    Yes, but does he know Visual WhizBang 1.0 and MoreXtremeThanYou Programming?

    --
    Mea navis aericumbens anguillis abundat
  4. Re:Great Computer Science Papers & /. readers by orthogonal · · Score: 5, Insightful

    I ponder if we made a list of oh say 'n' of these if the typical /.er would read them....
    We came to the conclusion that the wild herd [on Slashdot]... generally thinks that education is mostly worthless....
    If I were working this space (putting my teaching hat back on) I'd cover:....


    So put your money (time is money) where your mouth is.

    Seriously. Email one of the Slashdot editors, get a section called "Slashdot Tells", and post your first lecture, along with assigned reading.

    Let the /. "wild herd" post questions and comments, and let them moderate up the ten or fifteen most important questions for your perusal.

    Come back the next week, post your answers and your next lecture, and let those who can demonstrate mastery of your earlier lecture and the assigned reading go through the cycle again.

    I'll take part in whatever you care to teach, and I'd wager you'd get a core group who would follow the lecture series through.

    Use a free e-text (such as the MIT open courseware), or some GFDL book, as your text.

    What's in it for you? Well, teaching is the best way to learn (or re-learn). Keeps the mind supple. Not to mention the satisfaction of passing on what you know.

    And telling your collegues you've learned to herd cats.

  5. Surveys by davi_slashdot · · Score: 2, Insightful

    Some of the most interesting papers are actually surveys. From there will get the overview, often in a easy to read text, and pointers to the seminal papers. You also will know which are the relevant publications.
    Try browsing the ACM Surveys. I've read recently "A guided tour to approximate string matching". Quite good, and starting from there, I could get a good insight of the field.

  6. I think Alan Kay would agree by linuxislandsucks · · Score: 3, Insightful

    I think Alan Kay would agree that not all CS papers of a worthy read are in CS..

    Information Theory was certainly not in CS when it was orginally written in the 1940s..instead it was in Telcommunications and Mathematics :)

    Basically the areas you shoudl be looking at are:

    Logic
    Philosphy
    Mathematics
    Physics
    Bilogy
    Chemistry

    For example the concept of meta data.. ie data that has diferent menains based on context is common in all these areas and has direct applicatiosn to CS! Some of the current concepts of Semantic web are from this area and started in Language studies..:)

    Rmember the old adage of the crusty old CS professor that CS is multidisplinary still applies! :)

    Fred Grott
    ShareMeTechnologies-The Mobile Future
    http://www.jroller.com/page/shareme/Weblog
    #11: Thou shalt not covet thy neighbor's tagline.

    --
    Don't Tread on OpenSource
  7. Re:Don't read the originals by kfg · · Score: 5, Insightful

    People don't read those great old papers anymore in the same way they don't read Euripides or Shakespeare anymore. They're difficult.

    Harlequin romance novels express the same ideas in much easier to read language.

    I didn't first learn my Special Relativity from Einstein's original paper. I learned it from Bertrand Russell's The ABCs of Relativity, but you can be sure that I later went back and read a translation of the original paper as well (and even poked at the original a bit), as I've also read Bohr, Bohm, Feynman and Weinberg.

    I've read The Blind Watchmaker and The Beak of the Finch. I've also read Darwin and Huxley.

    I've read modern histories of the Roman Empire. I've also read Gibbon.

    I've read C for Dummies. I've also read Kernighan & Ritchie.

    No, it wasn't always easy. I didn't expect it to be easy, or even desirable for it to be easy, because I expected to learn.

    Date is easier to read than Codd, but Codd is only hard until you understand the relational algebra. If you wish to be an expert in the field of databases understanding the relational algebra isn't really optional, no matter what your salary is.

    I'm learing to read classical Greek so that I may read Euripides. I've read most of Shakespeare and I'm working on the rest. I've never read a Harliquin romance novel. Elizabeth Peters mysteries are pretty nifty though, if you're willing to read some good works on Egyptology to get the most out of them.

    Your milage may vary, but I'll take the harder road and be better informed for it. You may settle for being a kind of craftsman/tradesman, I'm trying for scientist/artist and it puzzles me that most people in the computer field are functionally innumerate and desire that state of ignorance.

    Are we not geeks?

    No, I guess most of us are Devo.

    I think that's a bit sad.

    KFG

  8. Re:Don't read the originals by seafortn · · Score: 5, Insightful

    All I have to say, brother, is Amen! Anti-Intellectualism is the "cool" thing in too many fields today, and I think it'll eventually lead to a re-stangation of society, technology, and science - at least in America, where we'll be content to be a third-rate country so long as we can still buy McDonalds.

  9. Re:Great Computer Science Papers & /. readers by Simon+Lyngshede · · Score: 2, Insightful

    In the field of Software Engineering one article you should read the Fredrick P. Brooks "No Silver Bullet". It is an old article, but has not been forgotten. What Brooks wrote in 1987 is equally true today, perhaps even more so. The truly greate articles are never forgotten, but some greate ideas is not understood until later and does articles can be hard to find, because nobody ever heard of them.

  10. Papers for Human-Computer Interaction by JAS0NH0NG · · Score: 4, Insightful
    A lot of people have covered a lot of great areas in computer science. Here's a short annotated list I've put together for an often-overlooked area, human-computer interaction.
    • As We May Think, by Vannevar Bush. Bush was the Director of the Office of Scientific Research and Development, basically the precursor to NSF and DARPA. In this magazine article, he observed the problem of disseminating information, and noted that electronics may be a better medium (keep in mind that this was written in 1945). He also outlines what he calls the Memex, the first description of a hypertext machine. Bush's theme is that we need to create devices that will make it easier for us to store and access information, and ultimately solve problems better.
    • Sketchpad, by Ivan Sutherland. Couldn't find a link to a video, but this truly is one of the seminal papers in computer science. This paper introduced the first graphical user interface (graphical as in graphics, not windows and mouse), the first object-oriented system, the first zooming interface, and the first constraint solver. Best quote:
      "I once asked Ivan, 'How is it possible for you to have invented computer graphics, done the first object oriented software system and the first real time constraint solver all by yourself in one year?" And he said "I didn't know it was hard." -- Alan Kay on Ivan Sutherland.
      The embarassing part is that, although this was done in the early 1960's, Sketchpad still looks cool and useful today.
    • Doug Engelbart's 1968 Demo. The link points to a video collection, which is easier to read than his papers. Engelbart is not the most exciting speaker, but keep in mind that in 1968 that people were still stuck using terminals and punchcards. What does he show them? The first mouse. The first hypertext implementation. The first use of video-conferencing. The first online help system. The first interactive word processor. Obviously a mind-blowing experience if you were there. As many people have said, this is the mother of all demos, and we still have not achieved many of his visions today.
    • The Computer for the Twenty-First Century by Mark Weiser. Although this was written in 1991, I think that this might be the most important paper of the 1990s. Why? Keep in mind that in 1991, people were still using desktop PCs, that wireless had not achieved momentum, and that sensors were very few and far between.

      So what is the basic idea? That computers should not be constrained to the physical desktop, but should become an everyday and seamless part of our lives. And in this paper, Weiser and his team at Xerox PARC introduced location-based computing; devices of all form factors, from small PDAs to tablet PCs to electronic whiteboards; sensors for integrating the physical and virtual worlds; wireless networking to make it all connected no matter where you were (in their office building anyway). Weiser's vision is so influential, that there are now (literally) thousands of researchers working on what he called ubiquitous computing, as well as several research conferences devoted to this theme, not to mention the direction that the commercial world has already taken with PDAs, WiFi, sensor networks, and so on.

  11. Re:Great Computer Science Papers & /. readers by Hast · · Score: 2, Insightful
    Email one of the Slashdot editors, get a section called "Slashdot Tells", and post your first lecture, along with assigned reading.

    Let the /. "wild herd" post questions and comments, and let them moderate up the ten or fifteen most important questions for your perusal.

    In case anyone is interested in doing stuff like this I'd recommend using Kuro5hin as a testbed. There's a lot of good introductionary texts there on a variaty of subjects. And their article system makes it easy to put stuff up for critique and feedback.

    I'd recommend anyone who's interested in doing a project like this to check it out. (And once it's done you can always put it on Slashdot or other sites as well. I've seen some cases of that.)
  12. Re:Don't read the originals by Sage+Gaspar · · Score: 2, Insightful

    Well, I'm going to have to agree and disagree.

    While it is a lot easier to read the current statement of theorems and their condensed, concise proofs, it's very educational to go back and read the original proofs.

    I've just begun my foray into mathematical research, and a lot of times you'll get a result that makes absolute sense if you look at the thought process behind it and the steps leading up to it, but that all gets cut out in the end in favor of a more minimalist paper (and rightly so). However, that extra background information is what gives you the understanding that you need to be able to work in that field or on similar problems yourself, and answers the age-old question, "How the hell would anyone ever come up with this?"

    I think a lot of the reason why people believe that they can't "do math" right now is because the great results as presented in textbooks seem to have popped out of nowhere, when in actuality they were mostly logical extensions of the work that was going on in the day.

  13. Re:Don't read the originals by DerekLyons · · Score: 2, Insightful
    If nobody reads those "great old papers" any more, there's probably a reason.
    Yep, but the reason is different than most people think...

    The papers lie unread because most 'computer scientists' aren't scientists, but "engineers" or at best a weird hybrid of the two. (Frankly I don't regard computer programmers as engineers but rather as artisans. The sucess of their efforts depends less on their tools and material as than as on their personal abilities.)

    They aren't working on new discoveries, or delving into the foundations of the art, or much in the way of basic research at all. Instead they are mostly working on applied research, trying to build a better x for specific application y. Furthermore, unlike most scientific curricula, they concentrate on teaching the current state of the art, rather than working from the foundations up. Again, a characteristic of engineering rather than science, and a symptom of the "if it's working, it's obsolete" paradigm that pervades computing.
    Learn about great algorithms; don't worry about reading great papers.
    Reading the great papers leads to understanding, regardless of the field. Working from cookbooks leads to comfort. One is the hallmark of the great, the other the comfortable.
  14. Re:Great Computer Science Papers & /. readers by DerekLyons · · Score: 2, Insightful
    You Sir represent *exactly* the attitude the original poster was decrying.
    My gripe with the education system - and particularly higher institutions of learning, which should know better - is that they dumb the stuff down for the least common denominator,
    Which means you are in the wrong institution, not that the institution is at fault. But then getting into a institution where the curricula is hard, is of it's itself difficult.
    can't think of an interesting way to teach it for the life of them
    Last I checked, education and entertainment are entirely different fields. Some things can be made interesting and or easy, other things cannot. Being unable to learn because something is not 'interesting' is the fault of the student, not the teacher. (Or more accurately it's the fault of a student raised on the fallacy that everything must be interesting to coincide with their dreadfully short attention spans.)
    I've run into CS professors that couldn't program.
    If that surprises you, it's more likely because you confuse the overall field with it's subset.

    But of course at your age, you know far better than those with greater experience.
  15. Something a little more concrete by xenocide2 · · Score: 2, Insightful

    I know a lot of people are going to suggest the Turing papers, and other more impact-of-computation-on-society type papers. Of course, they might be better off mentioning Seymour Papert, but I'd rather focus on some papers a little more concrete.

    One of the problems with looking for original papers on CS is that the earliest were intensively focused on mathematical notation-- from the 1930's! For example, famous mathematician Church is accreddited with the definition of the lambda calculus denoting functions, which classes about programming languages use heavily. During such a class, our professor introduced us to a few papers, "Definitional Interpreters for Higher-Order Programming Languages" by John Reynolds. The paper was originally published in 1972, so I'm not sure how he got ahold of it. But it's a great survey of the topic. If you're really interested in a specific topic, the easiest way, I find, to find foundational papers is to find a textbook on the topic with a thick bibliography. Then just try to trace out the citation geneology to an appropriate root. Eventually you'll work your way from something like "Designing autonomous robots to work independently in cellular networks" to something like "cooperative robotics." In this quest, Cite Seer can be a great tool. But it makes a poor starting place, as you mentioned.

    --
    I Browse at +4 Flamebait

    Open Source Sysadmin

  16. Re:Great Computer Science Papers & /. readers by Tablizer · · Score: 2, Insightful

    Wonderful works like "Goto Considered Harmful" (Communications of the ACM, 11, p147-148, 1968) come to mind.

    That paper is mostly an opinion, not cut-and-dry math. The main reasons most prefer nested blocks over goto's is that:

    1. They are more consistent across developers than goto's.

    2. The visual "shape" of the code resembles the nesting, whereas goto's provide little or no visual clues.

    In other words, it is more a psychological issue than a mathematical one. But, the paper is worded like a math paper.

  17. Re:Good and Evil: Eternal Verities by operagost · · Score: 2, Insightful
    "What has been will be again, what has been done will be done again; there is nothing new under the sun. Is there anything of which one can say, "Look! This is something new"? It was here already, long ago; it was here before our time."

    Ecclesiastes 1:9
    --

    Gamingmuseum.com: Give your 3D accelerator a rest.
  18. Re:Great Computer Science Papers & /. readers by Twylite · · Score: 2, Insightful

    I know this is news to most people, but computer science is not about programming. If you want to learn how to program, how to develop large systems and databases ... study the commerce subject "Information Systems".

    Computer science is about the science of computing. It is about understanding and advancing the state of computing through the advancement of computing theory.

    The fact that practical application or emperical testing of the techniques requires computer science students to have rudimentary programming skills in no way qualifies them to actually develop software.

    Fortunately most "computer science" degrees are only half focused on the science aspect, and draw in a lot of what they call "engineering": how to use the theory to build a system. This is largely a reaction by universities to the public perception that computer science is about programming.

    A select group of institutions recognise that software engineering deals very little with building the system, and mostly with the management of the process to ensure that a quality product is delivered on time and on budget.

    --
    i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net