Great Computer Science Papers? 410
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?"
Papers or books ? (Score:4, Informative)
Then, you can use citeseer to see what's new and what's the fashion in the domain.
Anyway, one of the best papers (and oldest) I read give birth to a whole community:
http://cm.bell-labs.com/cm/ms/what/sh
Any members of ACM or IEEE Computer Soc? (Score:4, Informative)
Re:Edsger Wybe Dijkstra (Score:4, Informative)
http://www.cs.utexas.edu/users/EWD/
Euclid's Elements of programming languages... (Score:5, Informative)
For a refreshing analysis of the paper by Lisp guru Paul Graham (the same guy who proposed the idea of Bayesian anti-spam filtering), see The Roots of Lisp [paulgraham.com].
Re:Any members of ACM or IEEE Computer Soc? (Score:5, Informative)
Re:Does anyone know where to get... (Score:2, Informative)
Not exactly computer science... (Score:5, Informative)
E.W. Dijkstra Archives (Score:4, Informative)
Quantum Computation (Score:3, Informative)
Citeseer (Score:3, Informative)
Re:Does anyone know where to get... (Score:5, Informative)
Does anyone know of a website where you can get access to comp sci and comp eng papers and stuff?
Try looking at arxiv.org [arxiv.org] and CiteSeer [nec.com].
Re:Does anyone know where to get... (Score:1, Informative)
the American Association for AI [aaai.org]
ACM Classics of the Month (Score:5, Informative)
The remaining ACM Classics of the Month are here [acm.org].
Classic paper on security (Score:3, Informative)
Some seminal works in the evolution of TCP/IP (Score:3, Informative)
Some suggestions (Score:3, Informative)
GCH full text (Score:2, Informative)
You have to register to get most papers from ACM (the Association for Computing Machinery who published "GOTO considered harmful"). However, the full text can be found free in their classics series [acm.org].
Everybody should read this paper, then read Linus Torvalds et. al. discussing the matter on kernaltrap.org [kerneltrap.org]
FYI - try CiteSeer instead of Google (Score:5, Informative)
The URL : [nec.com]
http://citeseer.nj.nec.com/cs
That said, I often find very interesting ideas in scientific papers, but sometimes things can't be implemented with current technology (I'm still talking about computer science domain, since that's what I know), or sometimes, the good idea in the paper is obsoleted a few years later.
For instance, I remember a scheduling algorithm to read disk blocks in a Video-On-Demand server : it was maybe very clever when it was written, when they had to feed 155 Mbps with a computer having 16 MB of RAM, but today, you have maybe 10 times more throughput, but 100 times more RAM - so you can use simpler, memory-hungry, buffering methods.
The problem is, that it's difficult (IMHO) to say "OK, this paper is theoretically interesting, but we can't implement this today, BUT we will probably be able to do it in a few (dozen) years", because you don't know what will and won't evolve (in my previous example, it was easy to predict that network bandwidth and memory size would increase, but it was maybe harder to guess that MPEG4 and DivX would allow the bitrate of a video stream to stay low...)
Re:"since google has no answers".. (Score:2, Informative)
Networked Computer Science Technical Reference Lib (Score:3, Informative)
- Hubert
Re:Old Research and Patents - A True and Recent St (Score:2, Informative)
I hate to burst your bubble after all the effort that you went through, but ... From your description, your Dad's company is nowhere near out of the woods yet.
In order to invalidate a patent, the prior art must no only describe an invention, but also be "enabling" in it's description (either standing alone or in combination with other prior art). Most conference proceeding consist of a title and/or abstract, neither of which normally contains sufficient information to teach how to make and use the invention (i.e., is "enabling"). A mere mention of the concept does not make for invalidating prior art. In almost every case such as this you also need additional prior art and testimony of the speaker at the conference (and possibly those attending).
And, if you are relying on testimony, the (enabled) invention must be proven to have been "known or used by others" (35 USC 102(a)), or "on sale or in public use" (35 USC 102(b)) ... "in this country" . 35 USC 102 [cornell.edu]. Unfortunately, testimony corroborating oral disclosure in a foreign country doesn't do the trick.
Here are some that come to mind... (Score:5, Informative)
Vannevar Bush. As We May Think [vub.ac.be]. Atlantic Monthly, July, 1945.
This paper put forth the very first ideas about how people can mechanically search for information. While we don't have desks with levers on them, we do have Google.
Tim Berners Lee. Information Management: A Proposal [w3.org]. 1989.
This paper is where Tim Berners Lee proposes what we now know as the world wide web. It's an interesting read if you'd like to see what the original intent of the web was so that you can compare it to what we have today.
A place to look for good old computer science papers is in older issues of Communications of the ACM. There are lots of articles in plain English that you may find of interest. If you are a university student, your school may have a subscription to the ACM Digital Library. If they do, you can read all the issues back to 1958.
Also, you can find a lot of interesting CS publications at Citeseer [nec.com]. They have a page with the top 200 most accessed papers of all times [nec.com]. When I skimmed through it, I saw quite a few titles that may be of interest.
Re:Why should I? (Score:3, Informative)
(those who feel left out should immediately report to me or the nearest AC; they will be duly noted in the next edition of this post)
Ah yes, Claude E. Shannon's paper (Score:3, Informative)
Shannon's 1948 paper, "A Mathematical Theory of Communication [bell-labs.com]", the seminal work on information theory and coding.
I.F. Stone Learned Greek for Socrates (Score:4, Informative)
An admirable exercise.
Journalist I.F. Stone, rather late in life, taught himself ancient Greek, in order to read the actual source documents relating to the trial and execution of Socrates [umkc.edu].
No translation would suffice: Stone felt that only by reading the original text for himself could he arrive at the insight he desired.
-kgj
MIT Open Courseware (Score:4, Informative)
p.s. - Check out the link [nasa.gov] in my earlier post
origin of public-key cryptography (Score:4, Informative)
Not all comp sci papers are difficult to grok (Score:2, Informative)
Well, maybe I just wanted to whore my favourite paper.
xxx
Re:Old Research and Patents - A True and Recent St (Score:3, Informative)
The Invention of OOP in Sutherland's Dissertation (Score:4, Informative)
In the section titled GENERIC STRUCTURE, HIERARCHIES , Sutherland describes how he restructured SKETCHPAD in what we would immediately recognize as an OO manner:
Later in the section DEMONSTRATIVE LANGUAGE we see what we might call today the association of classes with methods as Sutherland notes:
grid computing seminal work... (Score:2, Informative)
Morgan Kaufmann, San Francisco; 1999.
Some good software engineering papers (Score:2, Informative)
Lamport, Leslie. "Time, Clocks, and the Ordering of Events in a Distributed System", pps. 558-565, CACM, Vol. 21, No. 7, July, 1978
Parnas, David. "On the Criteria To Be Used in Decomposing Systems into Modules", pps. 1053-1058, CACM, Vol. 15, No. 12, December, 1972
Hester, S.D, Parnas, D.L., and Utter, D.F. "Using Documentation as a Software Design Medium", pps. 1942-1977, The Bell System Technical Journal, October, 1981
Parnas, David L. and Clements, Paul C. "A Rational Design Process: How and Why to Fake It", Presented at the Tapsoft Joint Conference on Theory and Practice of Software Development, Berlin, March, 1985
And one more(I know this guy, and I had to read this for a class, so I figured I'd give him some props..) Wheeler, Tom. Software System Development Through The Use of Formal Documentation, Ch. 2 (System Documentation), PhD. Thesis, Steven's Institute of Technology 1988
Re:Great Computer Science Papers & /. readers (Score:3, Informative)
Let me quibble with you a bit.
There are no details to "give away". The knowledge isn't a secret.
I'm reminded of Robert Heinlein's book Starman Jones, where guilds, using Intellectual Property laws, had made all scientific and technical knowledge proprietary (much as guilds did in the Middle Ages).
Fortunately, in our world, we are moving away from that model. Scientific and technical knowledge is available to anyone with the tenacity and aptitude to learn it.
Certainly, all the knowledge to be learned in an introductory Computer Science course is available -- free -- on the web. For other disciplines, there's still the cost of $100 textbooks -- but more and more free alternatives are becoming available.
What's lacking is not the knowledge, or the software; what's lacking are tutors able to explain the tough bits, smooth the rough bits, and challenge their students to make the knowledge their own. Somebody to demonstrate adding a node to a linked list to the puzzled; someone to review the basic math for those of us (like me) who got a bit intimidated by Big O notation. that's the next problem, and the problem I want to address.
But the knowledge is a click away -- and no Sphinx is guarding any "secrets".
Re:Any members of ACM or IEEE Computer Soc? (Score:3, Informative)
You will get a much bigger bang from the special interest groups. Sign up for the ones that are your field of specialty or interest, and you'll get a more focused journal that will show you the leading edge issues of the field, as well as giving you visibility into who some of the academic and corporate players are. Most of the SIGs are relatively small, so the journal may only be quarterly and not a fancy production. Some of the big ones - SIGGraph for graphics or SIGChi for human interaction are big fancy productions and can be very engaging.
For most people, there will also be local chapters who have occasional meetings. I live in the Silicon Valley, so you can network with a lot of interesting people and see what different companies and universities are up to. I found this very interesting, and (for
I used to do a lot of work in computer graphics and found that SIGGraph was really useful to me in terms of keeping abreast of what was new. I've largely switched into a different area over the past years (embedded systems mostly) and found that I haven't had time to keep up with the graphics world, so I let my membership lapse. I guess I should join the IEEE which has a lot of the same material in my current area.
If you're out of academia, the need to be up to date on the latest battles in your field may be unnecessary, but if you dig this stuff, this is an excellent way to get engaged.
Lambda (Score:2, Informative)
Djikstra (Score:3, Informative)
It talks about software quality and testing -- which seem very applicable, if not entirely in sync with, recent ideas about agile programming, test-driven-development, etc.
The Calculi of Lambda CONVERSION (Score:4, Informative)
Re:Nay, archetypal... (Score:3, Informative)
Doug Engelbart's NLS System (Score:3, Informative)
For instance, he has the very first mouse, a word processor with cut, copy, paste, embedded graphics (remember how cool OLE seemed to be?), hyper-linking (remember how cool hypercard seemed to be?), embedded levels of text (kind of like looking at a hyper-linked table of contents in a book), multi-handed interface, a piece of groupware that allows him and a distant co-worker to work together in the same application (think collaborative real-time modification of the same document -- something we still don't really have), telepointers (graphical representation of other people's mouse pointers), embedded video (think webcam), and the list goes on and on and on.
When you think about the fact that this was done in the 1960's, you really begin to wonder, "what the hell have we been doing since then!?"
Rob Pike is worth a read (Score:3, Informative)
be sure to catch "Systems Software Research is Irrelevant"
You will probably see a lot worse links than
Bell Labs [bell-labs.com] - formerly known as heaven.
Re:Classic papers (Score:3, Informative)
Plan 9 from Bell-Labs [bell-labs.com]
Somebody else mentioned Rob Pike already, pity you can't find any of his older (pre-Plan 9) papers online anymore: "The Hideous Name" and "Cat -v Considered Harmful":
R. Pike, P. Weinberger, "The Hideous Name" USENIX Summer 1985, pp 563-568.
and an abstract of the other: http://gaul.org/files/cat_-v_considered_harmful.h
As for history repeating itself, let me quote Ron Minnich:
You want to make your way in the CS field? Simple. Calculate rough time of amnesia (hell, 10 years is plenty, probably 10 months is plenty), go to the dusty archives, dig out something fun, and go for it. It's worked for many people, and it can work for you.
In pursuit of excellence... (Score:1, Informative)
Learn from other people's mistakes by pointing your newsgroup reader to comp.risks and reading the digests religiously.
Re:The Invention of OOP in Sutherland's Dissertati (Score:3, Informative)
Alan Borning proposed a neato object system where relationships among objects (it's prototype based) was handled by "inheritance constraints," a sort of super-flexible inheritance cum delegation scheme. See this page [washington.edu] for Classes versus Prototypes in Object-Oriented Languages.
ACM is part of the problem, not the solution (Score:3, Informative)
CanonicalPapers (Score:2, Informative)
Sounds like the sort of problem that a system like CanonicalTomes [canonicaltomes.org] would be good for. Canonical tomes is for books. Anyone up for making a similar site for "canonical papers"?
Re:Nay, archetypal... (Score:4, Informative)
What a bunch of bullox! The following are excerpted from "The Ultra Secret" which was written by F. W. Winterbotham who worked closely with Allen Turing and the rest of his team at Bletchly Park throughout the war.
"Although the well-guarded Kriegsmarine messages could not be deciphered, BP was regularly eavesdropping on the Luftwaffe. The Luftwaffe was particularly negligent in applying appropriate safeguards to their Enigma-coded messages, perhaps due to a measure of arrogance evident in World War II "fly-boys." Through this source the British were able to piece together Hitler's plans for the cross-channel invasion, dubbed Seelowe (Sealion). Before it could be accomplished, the RAF would have to be neutralized. Warned beforehand of Luftwaffe bombing raids on airfields, designed to eliminate not only the fields themselves but also destroy RAF fighters on the ground, British planes were able to avoid being caught as sitting ducks. Although Ultra intelligence forewarned of impending attacks, coastal radar (underestimated by the Germans) was able to pinpoint flights of incoming enemy planes."
"The British were regularly reading Luftwaffe messages, Of particular interest were messages from the Fliegerverbindungoffiziere, or "Flivos", liaison officers responsible for coordinating air and ground operations The all important Kriegsmarine signals ("Dolphin") were still a mystery. U-33, on a mission to sow mines in the Firth of Clyde, was depth charged and forced to the surface on Feb 12, 1940 by minesweeper HMS Gleaner."
"One of the first relied on German operators using some easily remembered sequence of letters as rotor starting positions. There were identified as "Cillies", after one operator who frequently used "Cilly", his girlfriend's name."
Obviously you were misinformed about your chosen subject. The Kriegsmarine messages were the really tough ones to crack because they were disciplined about transmission lengths, randomized key rotor selections for each message, and distribution of code books which contained the key sequences that would be used in a particular month. By comparison the Luftwaffe operators used their girlfriend's initials as rotor settings and changed keys only infrequently.
Great Papers in Computer Science (Score:4, Informative)
Great Papers in Computer Science:
http://bit.csc.lsu.edu/~chen/GreatPapers.html [lsu.edu]
I kept trying to put the TOC from the site in this comment, but Slashdot kept saying that the line length was too short. Since it was just plain text, I do not understand what was going on with that. So sorry, but the link really is worth checking out. Good reading!
Re:Nay, archetypal... (Score:2, Informative)
Good CS Reading List (Score:3, Informative)