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?"
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)
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.
Yes, but does he know Visual WhizBang 1.0 and MoreXtremeThanYou Programming?
Mea navis aericumbens anguillis abundat
I ponder if we made a list of oh say 'n' of these if the typical /.er would read them....
/. "wild herd" post questions and comments, and let them moderate up the ten or fifteen most important questions for your perusal.
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
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.
Opinions on the Twiddler2 hand-held keyboard?
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.
I think Alan Kay would agree that not all CS papers of a worthy read are in CS..
:)
Chemistry
:)
g
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
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/Weblo
#11: Thou shalt not covet thy neighbor's tagline.
Don't Tread on OpenSource
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
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.
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.
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.
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.)
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.
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.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.
But of course at your age, you know far better than those with greater experience.
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
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.
Table-ized A.I.
Ecclesiastes 1:9
Gamingmuseum.com: Give your 3D accelerator a rest.
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