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?"
For "great and seminal" it's hard to beat Alan Turing's 1950 (!) paper on AI.
~ Whence do you come, slayer of men, or where are you going, conqueror of space?
I was writing this one great paper and the computer went, like, bloop bleep, and it was, like, gone. It was a really good paper. So I had to write it again, but it wasn't as good. It was a.....bummer.
apologies to ellen feiss
Back around the time I graduated, I used to try and read some of those papers. The language they were written in was rather hard to decipher, communications skills were not very prominent ;-)
Mielipiteet omiani - Opinions personal, facts suspect.
Often, when you're new to a given domain, there exists a book (on citeseer too...) that covers the domain and express, often better than the original authors, the main ideas.a nnonday/pape r.html
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
Read Guy Steele's 'Growing a Language'. Definitely has a lot of thought-provoking, refreshing ideas.
I wonder how many IT gurus are members of ACM or IEEE Computer Society? The % of /. members who are in ACM must be very small because ACM only has 75,000 members in total.
Two wrongs don't make a right, but three lefts do.
one such text from literary theory http://www.eiu.edu/~literary/4950/barthes.htm
In short, nothing is original, we are all just convergances of the ideas that went before us. The reader has more power (adds the meaning) than the author. Authors are dying.
"The UNIX Time-Sharing System," by Dennis Ritchie & Ken Thompson, is one of the best-written papers ever. The elegance of thought and economy of description set a standard we should all aspire to.t ml
t ml
http://cm.bell-labs.com/cm/cs/who/dmr/cacm.h
I list several more classics on my "Software Engineering Reading List" page at
http://www.multicians.org/thvv/swe-readings.h
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)
There are so many good papers though. You just have to read them all :)
If nobody reads those "great old papers" any more, there's probably a reason. Sometimes the ideas have been superceeded; sometimes they weren't any good to begin with; often the papers are simply really hard to understand. The fact that people seriously suggest reading "great papers" reflects on the immaturity of the field; in a field like mathematics, hardly anyone ever reads the original papers (even for work done in the 20th century), instead opting to read someone else's simplification/clarification of the ideas.
We speak of the TAoCP as "the bible", but I'm not sure if there are any "new" ideas there; rather, the value of TAoCP is as a compilation and exposition of all the best ideas other people have produced.
Learn about great algorithms; don't worry about reading great papers.
Tarsnap: Online backups for the truly paranoid
I've taught computer science. Specifically Software Engineering where there is about a 1" thick stack of around 15 papers that get the whole idea. Wonderful works like "Goto Considered Harmful" (Communications of the ACM, 11, p147-148, 1968) come to mind. But I don't think there's much hope the typical /.er will take the time and effort to read them better yet think about them.
In the last couple of weeks /. as a culture came up as a lunch conversation between my co-workers and I. We came to the conclusion that the wild herd doesn't pay for stuff (Kazaa, Morphious, etc), is ADD (how many times have you read a posting where the poster hadn't read the link?) and generally thinks that education is mostly worthless (the bi-annual do I need a degree grudge match). Given these behaviors, why go through the effort of making a list?
If I were working this space (putting my teaching hat back on) I'd cover:
Computer Architecture (where all things come from)
Theory of Computing including O() [& friends], analysis of algs, Turing, etc.
Software Engineering
Software Testing
Graphics
Databases
Numerical Methods
Simulation (& Statistics)
and
Systems Analysis (where apparently all books currently suck)
I think that would be the place to start and there would be more than 10 or 20 of them.
-- Multics
if it's not on Google it does not exist.
uh....right?.
Slashdot Sig. version 0.1alpha. Use at your own risk.
Does anyone know of a website where you can get access to comp sci and comp eng papers and stuff? I'm speaking as a normal person, as opposed to a student (ie. something free, doesn't require university resources, easy to access, etc). Searching on google is well, not my idea. I'm wondering if there is a central repository or something that tracks things. For example, let's say I want to read up on AI, where do I go? There are places like this for other stuff (eg. physics, astronomy, medicine, etc) but haven't found anything for computer stuff... Of course, there are tons of sites for practical stuff but I'm thinking more of theoretical future stuff.
Thanks!
Sivaram Velauthapillai
Sivaram Velauthapillai
Seeking the meaning of life... @slashdot of all places
McCarthy's paper on Lisp: Recursive Functions of Symbolic Expressions and Their Computation by Machine (Part I).
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.
Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/
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.
These are fairly good papers and a good example of an idea 30 years ahead of useful technology.
A stereoscopic display mounted on an enormous ceiling mount (rather like an upside down anglepoise lamp) with crude wire frame graphics - this is VR 1968 style.
Sutherland, Ivan E.: 'The ultime display' 1965
Sutherland, Ivan E.: 'A head-mounted three dimensional display'
...but Claude E. Shannon's paper, A Mathematical Theory of Communication has changed our outlook on information and communication. The importance of this paper on modern communication cannot be stressed enough, and it is very readable. If I had 10 papers to take to a desert island, surely this one would be on my list (:
Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/
These great works of human thought will be loved by all for countless generations...
This has been reported in Slashdot a while ago, but it deserves another mention: the manuscripts of Edsger W. Dijkstra. There are more than a thousand documents written by Dijkstra in this archive, and very interesting ones too -- careful or you'll lose days browsing it like I did.
Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/
While not exactly classic papers, some of these may be regarded as classic by our grandchildren when the time comes, since they're at the forefront of computer science's research today. A good introduction to quantum computing was recently linked in a Slashdot story posting: The Centre for Quantum Computation's Tutorials. Very, very interesting reading, if a bit advanced.
Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/
This is shameless self-promotion, but you should read my book!
Technomanifestos discusses the truly thought-provoking, inspirational, seminal computer papers of the 20th century, from Turing's "On Computable Numbers" and "Computing Machinery and Intelligence", to Alan Kay's "Personal Dynamic Media" to Larry Wall's States of the Perl Onion.
The book delves into the historical, biographical, and scientific context of works such as these and follows the thread of inspiration to today's world. If you want to know where the Internet germinated, or how Marshall McLuhan and Pierre de Chardin influenced the World Wide Web (or even who McLuhan and de Chardin are!) you should pick up my book. And then read it.
Technomanifestos tracks the evolution of the MIT hacker, from the dapper Boston Brahmin Vannevar Bush to the famously unkempt Richard Stallman, and introduces the cast of lesser-known (to the non-Slashdot world) but crucially inventive individuals such as Ivan Sutherland and Seymour Papert.
Moreover, it discusses how the truly great computing ideas come from people who recognize that technology, especially information technology, has the power to transform people and society--these are (in the words of similarly great books) tools for thought and dream machines.
Or if you have no interest in helping me pay my DSL bill, you can go straight to the sources, many of which are available online.
author,
Citeseer was cited in the blurb, but a really nice service that they provide is the Computer Science Directory. There you can look for papers sorted by domain, and ranked by several criteria like "authority". The top papers are usually a good read if you are interested in a particular domain.
Many papers by Robert E. Tarjan are classics. His small book "Data Structures and Network Algorithms" (1983) is also a classic. It shows how to present theoretical material accurately without introducing cumbersome formalisms that hamper readability.
Yes, but does he know Visual WhizBang 1.0 and MoreXtremeThanYou Programming?
Mea navis aericumbens anguillis abundat
Go To Statement Considered Harmful.
We ought at least to give Slashdot readers the chance to read these papers...
John Backus is often regarded as one of the greatest computer scientists ever to live - I personally like his denouncing of procedural languages in favour of a new functional approach.
John Backus - Can Programming Be Liberated From The Von-Neumann Style?
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.
Though it has very few entries, and is no longer updated, there are at least two papers in that list that the typical Slashdotter may have heard about: Go To Statement Considered Harmful, by Dijkstra, and Reflections on Trusting Trust, by Ken Thompson.
The remaining ACM Classics of the Month are here.
Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/
This is absolutely not true. While code can give you a good idea of them implementation of something, that's really just the "how" of it. A good paper will discuss the "why". Too many people come into CS these days only for the programming and are shocked when they take their first theory class and realize that they need to know math and logic as well. There's so much more to CS than just the code.
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
My own personal recommendation would be the original book on CSP (it is an expanded paper essentially), an idea that is well worth-while, and also look at some of the useful applications
I'm not sure if academics consider it a classic, but many will be interested in reading about the beginnings of UNIX: The UNIX Time-Sharing System, by Dennis Ritchie and Ken Thompson.
Join the NFSNET. Our prime goal is making little numbers out of big ones. http://www.nfsnet.org/
Some of Knuths papers - a refutation of Dijkstra's 'GOTOs considered harmful'; and Literate Programming are interesting.
That being said, here's a question: has anyone published an anthology of classic CS papers? I'd love to have in one volume examples of the classic work by Von Neumann, Turing, Ritchie, and the rest of the gang. Has such an anthology been published? If so, I'd buy one in a heartbeat.
[this
Reference: Jerome H. Saltzer, and Michael D. Schroeder. The Protection of Information in Computer Systems. (invited tutorial paper) Proceedings of the IEEE 63, 9 (September 1975) pages 1278-1308. Reprinted in David D. Clark and David D. Redell, editors. Protection of Information in Computer Systems. IEEE 1975 CompCon tutorial. IEEE # 75CH1050-4. Also reprinted in Rein Turn, editor. Advances in Computer System Security. ArTech House, Dedham, MA, 1981, pages 105-135. ISBN 0-89006-096-7 Also reprinted in Marvin S. Levin, Steven B. Lipner, and Paul A. Karger. Protecting Data & Information: A Workshop in Computer & Data Security. Digital Equipment Corporation, 1982. This paper was originally prepared off-line. In 1997, Norman Hardy kindly rendered it into World-Wide Web form. here
- Van Jacobson and Michael J. Karels Congestion Avoidance and Control. SIGCOMM, 1988
- J.H. Saltzer, D.P. Reed and D.D. Clark, End-to-end Arguments in System Design, ACM Transactions on Computer Systems, Nov 1984, p. 277-288
- Jeffrey C. Mogul The Case for Persistent-Connection HTTP. In Proceedings of ACM Sigcomm '95, pp. 299-313, Cambridge, MA, August 1995
Maybe someone else will have better luck tracking down a link to Mogul's paper.Donald Knuth has written a lot of interesting papers, but his paper on TeXs line-breaking algoritm
and as far as I know, the algoritm is still state of the art and is used only by TeX, InDesign and an addition to QuarkXPress.
-- Rolf Lindgren, cand.psychol
If you want a mind bender, there is always On the Duality of Operating System Structures. But if you want something a little more practical, I'd recommend Eliminating Receive Livelock in an Interrupt-Driven Kernel or The End to End Argument in System Design.
Many "classic" papers are reissued in "Readings In..." volumes--check on Amazon for your favorite subject area. Also, Citeseer ranks papers by popularity; that's not necessarily an indication of either quality or significance, but it is another measure of interest. Then, ask your colleagues, friends, professors, fellow students for recommendations.
You can also do some digital archaeology: a lot of decades-old ideas are embodied in software you can download. You can get copies of MIT's ITS, TENEX, Smalltalk-80, PDP-11 UNIX, and run them on emulators. In particular, Alan Kay's own Smalltalk-80 system is available as part of Squeak (squeak.org): running it will show you both what Smalltalk-80 was and what it wasn't.
Keep in mind that often, the mere existence of prior art won't convince people. For example, much of the stuff Microsoft and Apple's PR departments are claiming as "new technology" is ideas that people explored and abandoned decades ago. Some of it may well be worth reviving (given that we have faster processors), but that doesn't make it original or innovative. And in some cases, you get the idea that the developers themselves just don't know of the history of their (fairly obvious) idea.
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.
Everybody should read this paper, then read Linus Torvalds et. al. discussing the matter on kernaltrap.org
foo mane padme hum
As a PhD student, I often have to look for papers in the computer science field ; and very often, CiteSeer yields better results - or, rather, different results, but with a very good cross-referencing system. You can directly jump to the other papers cited by the paper you're reading, and you can see which papers did cite it, too.
The URL :
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...)
It looks like an AT&T researcher "invented" sublists as a way to defeat duplicate detection filters as part of a research project. The patent reads like a research paper, with various theorems and corollaries to prove how various methods of filtering spam by duplicate detection are ineffective and that spammers have the upper hand against those methods.
There was a classic response to Dijkstra's GOTO article. It proposes the COME FROM statement, which has lately been reinvented in aspect-oriented programming as the pointcut.
http://www.fortranlib.com/gotoless.htm
"On computable numbers, with an application to the Entscheidungsproblem"" is unarguably the paper that began the field of computer science as we understand it today. Here we have the first descriptions of universal computing devices, Turing machines, which eventually led to the idea of universal stored-program digital computers. The paper even seems to describe, in what is unarguably the first ever conceptual programming language, a form of continuation passing style in the form of the "skeleton tables" Turing used to abbreviate his Turing machine designs. It's also relatively easy reading compared to many other scientific papers I've seen.
Along with this we might also include Alonzo Church's 1941 paper "The Calculi of Lambda Abstraction" (which sadly does not appear to be anywhere online), where the lambda calculus, the basis for all functional programming languages, is first described.
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
How can the language used in that kind of paper possibly rival the attraction of strong and concise word like "hot" and "grits"?
Language frames the thoughts and shapes the minds of those that use it. And Slashdot pretty much proves the point.
['Not sure if a smily helps or hinders the point here.]
Forgive me for asking, but what is a "monopoly science"?
Quite possibly the most impressive paper from SIGGRAPH 87. The abstract reveals the importance of this paper: "New technology is presented for imaging a restricted class of dessert foods."
Here's the author's page on the topic, and a usenet post containing most of the text, including the important Schrodinger wave equation for the Jell-O field J.
Check out the Networked Computer Science Technical Reference Library.
- Hubert
the worst spam message ever!!! =)
It means that many people call things computer science when it is in fact a bloated manual for a Microsoft product.
way too narrow in scope.
'understanding' bits & bytes, while somewhat useful, is not required to take advantage of the creators' newclear power plan, &/or participate in the wwwildly popular, great planet/population rescue mandate.
the creators' 'program' is so simple, it confounds 'big thinkers' & payper liesense corepirate nazi felons/murderers.
so it goes:
consult with/trust in yOUR creators... get ready to see the light.
Do you mean bloated manuals for Microsoft (oh.. ok.. and Apple) products? ...or the "real thing"?
Hmmm... I must say only books about semiconductors and electronics in general come to my mind... sorry..
I highly doubt those types of publications are what anybody here is talking about.
not so much an answer, as validation/definition of the elevation of the planet/population crisis mode, in hopes to avoid overheating the main processor.
& oe =UTF-8&q=planet+population+decimation&btnG=Google+ Search
http://www.google.com/search?hl=en&lr=&ie=UTF-8
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. Unfortunately, testimony corroborating oral disclosure in a foreign country doesn't do the trick.
Don't know if I ever read a great book about computer science, but... there are great things that are indirectly about CompSci. 1) Anything by George F.L.P. Cantor...his stuff is infinitly interesting. Also you can get much of his stuff in bracketed sets. 2) Great CompSci videos: all Star Trek movies, Blade Runner, Solaris (book, movie, and OS), Buffy the Vampire Slayer, and finally both Tomb Raider movies. 3) Last suggestion try /. man
Hope this helps....jamej
I wish that would be the fact.
Here's a classic that foreshadowed the rise of object-oriented computing by a couple of decades:
On the Criteria To Be Used in Decomposing Systems into Modules, D.L. Parnas, CACM, Vol. 15, No. 12, December 1972 pp. 1053 - 1058
Available online at http://www.acm.org/classics/may96/
Since nobody who seems to have actually read any computer science papers has posted, here are two that immediately come to my mind.
:)
Vannevar Bush. As We May Think. 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. 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. They have a page with the top 200 most accessed papers of all times. When I skimmed through it, I saw quite a few titles that may be of interest.
There are a number of sources for such things. If I was looking for a list of great papers I would look in Citations Classics - papers selected based on thier frequency of citation by other papers. I would also look in the bibliographies of text books and dissertations. Articles in review journals are also expected to have very strong bibliographies.
Well... technically, no. Without any kind of User Interface, we'd have to use our telekinetic powers to manipulate electrons flowing about the transistors directly. And I don't know about you, but I'm not usually awake enough to do that when I'm checking BBC News & Slashdot before I head off to work...
Have you been touched by his noodly appendage?
Moderators, get a clue, this clearly ain't a troll
"When I first heard Daydream Nation it quite frankly scared the living shit out of me." -- Matthew Stearns
My grandfathers new microwave isn't on Google, and beleive me I've looked.
He therefor has a magical place on his worktop that can superheat salmon-en-croute by no visible means.
NTRS - Enjoy!
(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)
Hell is not other people; it is yourself. - Ludwig Wittgenstein
Anything that explains how the universe works with the scientific method is physics. Everything else scientific is stamp-collecting. And everything else is just religion.
Oft cited classic paper As We May Think.
Isn't it possible to seach citeseer for the most cited papers? Heck, couldn't someone do a pagerank-esque regression over the referrences to find the authoritative papers in CS? I know there's a best number of citation search out there.
What is music when you despise all sound?
Dave Parnas is rarely mentioned as one of the "great computer science", but his ideas have been very influential in software engineering. He wrote on information hiding and separation of concerns well before object-oriented programming existed. His discussion of "undesired events" was a forerunner to exception handling mechanisms. He wrote of families of software products decades ago which is only now being actively pursued under the term "product lines".
A number of his papers have been collected into a book called "Software Fundamentals: Collected Papers by David L. Parnas".
-- Will quantum computers run imaginary-time operating systems?
See comment #4 from a .doc file on the USPTO site OR an html version of that comment
More information on use of project
and the project home page
There be plenty of metaphors and analogies HEAR and here + search engine on member 46..
Shannon's 1948 paper, "A Mathematical Theory of Communication", the seminal work on information theory and coding.
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
Detritus is a troll.
Nothing like mass subsconscious programming...
The metaphors and analogies to the real will be exposed.
This rabbit hole goes alot" DEEPER and gets REAL and comment #4 protected
I'm learning to read classical Greek so that I may read Euripides.
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.
No translation would suffice: Stone felt that only by reading the original text for himself could he arrive at the insight he desired.
-kgj
-kgj
And I also completely forgot about Life and Everything. So, stay tuned for 2nd Ed.!
Hell is not other people; it is yourself. - Ludwig Wittgenstein
MIT Open Courseware These are not whitepapers and the like. Rather, they are mostly lecture notes from the professors who teach the classes there - Enjoy!
p.s. - Check out the link in my earlier post
Jon Bentley - "Programming Pearls" and "More Programming Pearls". Also, Fred Brooks - The Mythical Man Month (unfortunately most managers have not heard of this). Bentley had articles in the CACM for a while. "The Psychology of Computer Programming" and "The Design of Everyday Things" are worth a read. Everyone should have (or have access to) Knuth's multi-volume set. Also, anything by Kernighan and Robb Pike.
More recently, "Design Patterns" by the gang of four, and Fowler's "Refactoring" are must reads.
[Insert pithy quote here]
This is the paper by Diffie and Hellman that originated public-key cryptography. This paper explained for the first time (in an unclassified place) how two parties could communicate privately over an open channel without previously agreeing on a secret key. Every time your browser says, "Setting up a secure connection..." when you order from Amazon or check your bank account, you're witnessing the impact of this work.
A lot of the classic papers aren't being read because there are fads in this field, as there are in any other...and, well, those classic papers are *so* outdated and old-fashioned, everything they have to say has been overtaken by newer technology..."
Just as RDBMS was the answer to *everything*, and *no* *one* uses heirarchical systems (they just changed the terminology), or OO is *so* different (ditto).
Someone mentioned IEEE Computer. I used to be a member. Then I changed jobs, and it was Dr. Dobb's *or* IEEE Computer...and one of the reasons that it wasn't even a choice was one of Computer's covers (around Jan '94, I believe), where they were *literally* offering OO as The Silver Bullet to all programming woes.
I suggest that among the great papers is F. Brooks. No silver bullet: Essence and accidents of software engineering. Computer, 20(4):10-19, April 1987.
mark
...has to go to:
"Recursive Functions of Symbolic Expressions and Their Computation by Machine" by John McCarthy 1960
Here was a professor who was analyzing Lambda Calculus mathematics and had written out a bunch of formulas to prove some mathematical theorems. Unbeknownst to him, he had invented arguably the most fundamental and elegant programming language possible by accident. Only after another mathematician had seen his ideas and said "Hey! these formulas are describing a computer language!" and wrote the formulas in the form of a computer program did they realize their discovery and called it LISP. That moment is now revered among LISPweenies everywhere!
In proper LISPweenie-troll mode, I hereby declare that LISP, invented in 1960, kicks the butt of C++, Python, Java, etc. etc. or any other language people have developed since. Read this article if you remained unconvinced:
Revenge Of The Nerds
You touch on the topic of information overload. There is so much new information now, not to mention the amount being generated every day, that people don't have a good grasp of them. Some social scientist once remarked how most "new" works are not really original. A lot of papers, theses, books, articles, magazines, etc are published every year, yet many of them are repeating stuff and inadvertently cover stuff that were already done. For instance, the number of unique scientific papers being published now is a lower percentage than 100 years ago, but the number of papers published now is several magnitudes larger.
Ironically, if people actually spent time using old stuff, it wouldn't necessarily be better. For instance, people will probably spend more time searching for existing stuff than generating ideas.
Perhaps the decline of science will be precipitated by this...
Sivaram Velauthapillai
Sivaram Velauthapillai
Seeking the meaning of life... @slashdot of all places
cool stuff. read it. it's not really technical.
this is interesting because back then they already collected a lot of evidence why crap like clippy is not going to work. it's also one of the rare examples of a paper where researches explain why their great idea isn't so great after all.
it's a classification of the various bugs in tex. nice to know that people smarter than me make the same mistakes.
if there are still people around who thing the try/throw/catch thingy was invented by C++; unfortunately it's difficult to read
i can't find my dead-tree-copy right now. there seems to be an online version, but it lacks the rebutal by some unix dude, which AFAIR is printed in datamaton. there are mostly 2 things intersting about this: first, this is the same norman that moved on to be a founding member of the usability genre ("design of everyday things" and stuff). second, while most of the problems pointed out in the article have been fixed by now, the same kind of design mistakes are made over and on again by the unix comunity still today.
my favourite part: norman points out that unix doesn't produce error messages. the unix dude replies that's ok because if it would, it could break all the programs that expect the output to match a certain pattern. (years later, someone smarter than him invented stderr.)
this is a horrible paper. i never managed to read it to the end. however it is interesting insofar as that it's quite obvious why nobody reads this kind of papers. basically, it full of selfsatiesfied mathematical brainwanking and shoulderpadding. so IMO its main point is to show why developers and mathematicians are not working together anymore (like they did until the 70ties)
Well, maybe I just wanted to whore my favourite paper.
xxx
So, the Author may be dying because there are no new ideas, but (s)he will rise again one day.
/.er" is no exception, it would be completely unsurprising to learn that most of the community doesn't read technical papers dealing with research and theory.
Well observed. But, as you implied (if I understood correctly), the heraldic Author is not necessarily a new individual or gorup, since a genius work might lie in those all-but-forgotten stacks, waiting to be reinterpreted in a way that releases its potential.
Even if the works in question are not revolutionary, the evolutionary progress they demark may still be ignored or unappreciated.
I think a major reason that many of these papers remain undebated is that theory is not consistently emphasized in CS/CIS/CSE/etc. undergraduate programs, and I do not believe that the scientific nature of Computer and Information Science is emphasized early in the academic careers of undergrads by and large.
Symptoms of this problem have been discussed here before. Perhaps you'll agree that one dilemma is that undergrads who don't aspire to graduate school take a stiflingly pragmatic view of their coursework: many want the IT-oriented curriculum of a technical school, but don't want to compromise the quality of a university education. At universities, these students coexist in the department with MS- and PhD-minded students who have an academic interest in theory.
Suffice it to say that some students interpret the term "Computer Science" loosely, since in practice a CS student is unlikely to become a scientist. Since the "average
There are necessary and harmonious differences between those concerned with theory and those concerned with application, but the ambiguous definition of a student of Computer Science, and the overwhelmingly popular preference for application (IT), worries me insofar as it engenders a widespread equanimity in an educated community that feigns to live on the cutting edge.
I'll put my vote in for "Impossibility of Distributed Consensus With One Faulty Process", by Fischer, Lynch, and Paterson. This paper is better known in theoretical circles as the the FLP result. Quite a cool little paper. Consensus is a problem in which processes are expected to come to an agreement about some value based on the values that were initially proposed by the participating processes. Basically, at the start of any consensus algorithm, each process proposes some value $v \in S$ (where S is some predefined set of values), and when a process decides a value, no process can decide a different value and moreover it must be a value that was initially proposed by some process. There's also a liveness condition: processes must eventually make a decision. What FLP proved was that even when $S = \{0,1\}$ (i.e., they examined the binary consensus problem), and there was only 1 faulty process (i.e., one process may "crash" during the execution of the consensus algorithm), then in a purely asynchronous system, the consensus problem cannot be solved. For example, you can have 10^9 processes, and exactly 1 of those processes could be faulty, and there is absolutely no way in hell that those other 10^9-1 processes can reach any sort of an agreement. Cool, eh?
All our basic problems are there in [classical Athens] miniature. -- I.F. Stone
... but in terms of our humanity, we are fundamentally the same as our ancestors.
Exactly. The soul of man has not changed since the classical world.
Good, evil, right and wrong, kindness and cruelty, peace and war -- details may change, interpretations may change, certainly the technologies change
There is a terrible temptation -- especially in America, my home country, whose founders saw themselves as the spiritual successors to the democratic principles of classical Athens -- to view one's own country as "better" than the rest of the world. Indeed, there is a terrible temptation to view oneself as "better" than the rest of mankind. But a reading of history says otherwise. We are neither better nor worse than our ancestors: we are surprisingly like them.
-kgj
-kgj
The (re)discovery of the FFT was a major achievement in itself, and was the algorithm that popularized divide-and-conquer strategies for solving computational problems.
See also; How the FFT gained acceptance for more information about this groundbreaking work.
Ed Yordon put together two great collections of these: Classics in Software Engineering (1979; ISBN 0131351796) and Writings of the Revolution: Selected Readings on Software Engineering (1986; ISBN 0139707085).
Hard to find, but worth looking for.
Stupid job ads, weird spam, occasional insight at
The abelard.org link requires a Windows browser to depict the math symbols! The journal it was published in actually makes its last 5 years of papers available to anyone with a pdf viewer, but not "On Computable Numbers ..." Nope! It can be viewed only by those marching to M$ beat!
Good thing Turing killed himself before seeing his work locked up in this manner!
Stupid job ads, weird spam, occasional insight at
In CS, conference proceedings generally include full texts of the papers. Often conference papers will be a general description of an idea and how it was implemented in a system, with references that include a technical report or someone's thesis with more details about the ideas and implementation. I'm not disagreeing that to prove prior art more may be required than old papers.
I'm afraid that now we're constantly going to have people on Slashdot quoting CiteSeer papers, grossly out of context, to support some unrelated crazy idea of theirs. "Look, XXX published this paper on YYY algorithm, therefore my idea must be good!" Of course what you don't realize is that XXX's paper was a CRITICISM of YYY algorithm, and you can't understand the language well enough to realize this.
I'm BY NO MEANS saying that information should be restricted to certain individuals, but I've always thought of CiteSeer as a secret weapon, something that should be discovered by the individual, not have it told to you by someone else. We're about to be inundated by pseudo-computer-scientists...
The first thing that struck me when reading the question is that "great" is a subjective term. I'm sure many people would acknowledge the very well known things, such as "Goto considered harmful", as great.
I imagine others would consider a much broader spectrum. For example, one of the most insightful papers I've ever read is John Hughes's Why functional programming matters . It took a subject I'd seen briefly, in introductory lectures during a CS course, and put a perspective on it that motivated what I'd already seen -- something no other book or paper I had found did.
Perhaps to an experienced user of functional programming languages, this paper would offer little or nothing new. Nevertheless, to a relative newbie interested in the subject, it provided a very useful second step on the path. In that sense, from my perspective, that was also a great paper.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
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:
Yo, you should check out this thing...its called grad school.
The Grid: Blueprint for a New Computing Infrastructure by Dr. Ian Foster of Argonne National Laboratory and the University of Chicago, and Dr. Carl Kesselman of the Information Sciences Institute and the University of Southern California.
Morgan Kaufmann, San Francisco; 1999.
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.
True enough. But the methods use in the algorithm may still be of use in other contexts. For example, maybe the video application is not a problem on workstations or dedicated video appliances. (Or not - using the better algorithm might make using less memory possible which could make something like a pocket video viewer less expensive.) But maybe it would be useful in loading sequential blocks of data for processing if you want to generate fast visualizations of huge data sets. Or it might be useful in a very different context (who knows what).
We can't all read all the literature out there. But we can try to keep up with at least a good sample of it and that can help a lot.
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
If you are interested in theory of computation, you should read Lance Fortnow's
My favorite ten complexity theorems of the past decade.
It's a survey, but it has all the references if you want to know more about a result.
If you're a slashdotter without an engineering degree (like myself), I can't recommend JR Pierce's book on Information Theory highly enough. Very accessible, well written, and a quick read.
I believe that there is value in reading the originals. The best way to do this is to checkout or buy various collected works such as Alan Turing's collected works. One great collected works is a book called From Frege to Godel.
:)
In truth, it is a math book, but this is the part of math that gave birth to modern computer science. It was a branch of mathematics known as "metamathematics" or "proof theory", and it dealt with things such as completeness, consistency, and effective procedures. This programme of math failed to achieve its originals goals as people like Turing and Godel proved the goals were impossible.
However, metamathematics succeeded in that it gave rise to modern computer science. "From Frege to Godel" is such a great book because it is a collection of the original papers of the great mathematicians who lived the field of metamathematics. You will learn the problems and solutions as the great mathematicians figure them out through scholarly discourse.
You will gain real insight into what math is, how it is practiced, and the true genesis of computer science.
Not only that, but you will also read a few things that will send your mind into a state of mathematician's nirvana. Something everyone should experience at least once in their life
Follow up "Frege to Godel" with a book called The Undecidable, which contains the selected original works of Church, Turing, and others.
After that, I would look into algorithms papers by people like Dijkstra,
whose works are available on the net.
The utility of this is to see how new problems are dealt with and how new ideas are made.
A recent short job assignment at HP let me run amok through the online libraries of both IEEE and ACM. It was interesting to see published articles from 5-10 years ago that directly covered topics that were the hot issues in the office today. Looking at the issues that were hot topics in the last few companies over the past 2 years, I saw the same pattern of scholarly articles being about 5-10 years ahead of the industry.
While working in medium to larger companies, I would find the number of people who did not even understand simple concepts of Computer Science frightening.
I am curious as to how much effort is wasted reinventing the wheel. I know a lot, because as a programmer on death march projects, I rarely have the hours to devote to finding how other people solved the same problem 5-30 years ago. That pointy haired boss breathing down my back thinks that any time not spent slaving over a hot keyboard is a waste of time. As the old saying: it is hard to remember the job is to drain the swamp when you are up to your armpits wrestling with gators. No amount of showing that spending a few hours sharpening the saw each week could save far more time that what appeared to be wasted. One past job allowed some time to be billed to research each week until some phb wandered by to bitch about it. It was the appearance of goofing off reading that made the boss look worse than the schedule slipping. And appearances appear to be more important in today's economy than actual results.
As mentioned on LtU, Hoare's Turing lecture is quite a good engineering paper.
How about the Steele and Sussman "Lambda the Ultimate" MIT AI Lab tech reports. Very influential. Sadly, I don't know if anyone's put them on the web. And, of course, there's the repository of Dijkstra's stuff....
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.
I think you mean "The Calculi of Lambda Conversion" , or are they two different things?
Great Papers in Computer Science edited by Phillip A. Laplante collects a lot of classic papers in one volume. Unfortunately, the book was put together a bit too quickly, with the result of many typos. (Laplante talks about that in the Amazon.com comments for the book.) However, I still find it to be a useful collection.
Research papers assume a certain background knowledge of the subject. Thats why they may not be easy to understand.
Teaching reformats these ideas in a more digestable progression. However, it can be fascinating to go back to the original papers to see who and what influenced the scientist's(s') thoughts. What we accept as dogma now may not have been clear-cut back then.
SCHEME: An Interpreter For Extended Lambda Calculus, Gerald Jay Sussman and Guy Lewis Steele, Jr, 1975. This paper introduces the concept of the closure, unifying the concept of object-oriented programming with lambda-calculus inspired semantics. It also provides a very interesting interpretation strategy (and Steele's subsequent work on the Rabbit optimizing compiler goes even beyond this). Scheme is probably one of the most important languages ever devised (some claim it was "discovered").
LAMBDA: The Ultimate Imperative, Guy Lewis Steele, Jr. and Gerald Jay Sussman, 1976. Introduces Continuation Passing Style, and provides a (surprisingly clean, elegant) mechanism for expressing all primitive imperative operations in terms of pure lambda-calculus semantics (introducing the modern concept of functional programming languages). Also includes a very insightful section on various argument passing techniques.
A correspondence between ALGOL 60 and Church's Lambda-Notation, Peter J. Landin, 1965. This is one of the primary influences on the development of Scheme. The J-operator goes on to become call-with-current-continuation. ALGOL goes on to become the single most influential programming language ever (lexical scoping, Backus-Naur Form, and ALGOL's syntax are all widely used today).
Something more on the light side, I think Craig W. Reynold's Boids paper and mechanism was pretty important in computer graphics. Nowadays, most crowd mechanism (including Weta's Massive) use essentially the same approach.
In the great CONS chain of life, you can either be the CAR or be in the CDR.
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!?"
http://www.cs.bell-labs.com/who/rob/
:
be sure to catch "Systems Software Research is Irrelevant"
You will probably see a lot worse links than
Bell Labs - formerly known as heaven.
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Yesterday, on a whim, I was surfing the net reading about historical computer languages. I was curious about ALGOL, which was the forerunner to PASCAL, C and all the rest. Reading ALGOL reminded me of PASCAL and it's designer, Prof. Niklaus Wirth. I had a signed copy of his 'Algorithms + Data Structures = Programs'. and I decided to take it off the shelf.
Being an excellent condensation of Knuth's 'Art of Computer Programming', I decided to read the chapter on sorting. It's a fantastic read on the history of sorting and what algorithms there are and why they are efficient.
If you are a budding programmer I highly recommend you pick it up. It's harder to get these days because it's written assuming a procedural paradigm and OO is what sells. (I'm amazed these days how many CS programs really pay short shrift to a deep study of data structures and move immediately to pre-built object libraries.)
More to the point, in Wirth's conclusions he observes that it is the data structures themselves that determine the most appropriate and efficient algorithms. In that he is already observing that the data structure presages the algorithm or that they are inextricably bound together.
That was a cogent observation, but one that wouldn't have surprised programmers that worked deeply in data structures long enough. OO came about more as a design technique for reliable systems, but the groundwork had been laid long before. (Even before Wirth and PASCAL -- probably in LISP. It's a good thing Microsoft didn't patent it. They might have called it 'Active Data Structures' 8-)
I just went over to Amazon. Its out of print, but you can probably find it on the used market. I'm not selling mine.
Have fun!
Maybe not seminal or classic like many of the already cited papers, but I'm surprised nobody mentioned it yet. I'm learning Lisp and I was curious about what exactly is "functional programming" in practice. The 1984 paper was a great introduction, along with Graham's book On Lisp.
Prescriptive grammar:linguistics
The book indeed contains a list of great papers:
Link
Let's not forget a classic: Intelligent Machinery (1948)
Modded Sigs afects Karma
What's in a sig?
FYI, the use of "Re:" to preface the subject of a post means "regarding" or "in response to".
Thus,
"Re:Appalling! Accessible only to Windows Users!"
would mean that there is a already post entitled
"Appalling! Accessible only to Windows Users!"
Your use of "Re:" is unnecessary, incorrect, and misleading.
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
I've found these two papers to be not only easy and fun to read but perhaps the best introduction to the feilds of study they inspired.
The first is Knuth and Bendix, "Simple word problems in universal algebra" from 1970. This was the foundation for term rewriting.
The second paper I would recommend is, Dana Scott, "The lattice of flow diagrams", from 1971, which is a very sweet introduction to some serious mathematics of computation (domain theory).
What continues to amaze me is the simplicity of the ideas presented, and how you get a great sense of the author's original excitement about the subject, which is often not present in more "modern" and abstract treatments.
They post lots of papers related to computer languages here.
A deep unwavering belief is a sure sign you're missing something...
If you take an extra .5 year for the undergrad, an extra 1 year for the MBA, and can't write acronyms in order, then perhaps you are too learning disabled to RTFA?
(I'm just kidding! You were probably taking time off to work or something. How'd the CS+MBA turn out for you, anyway?)
But the real world often is not hierarchical after closer inspection or seen over time. Even many experienced OO'ers will tell you that they use less inheritance and sub-typing than they used to, and instead use composition and aggregation, which are "less OO" concepts, and found in IBM's 1964 IMS database. Even in geometry with its stable rules, we have the ellipse-circle fights and the square-rectangle fights. Hierarchies and sub-typing are alluring ideas, but just don't stand up well to many real-world changes.
Table-ized A.I.
Gibbon, like other original authors, heavily influenced the study of Roman history, but he simply did not have the access to original texts that modern historians now enjoy. He worked from a limited 18th century library, and the biases of Catholicism clouded his judgments. In short, if you read The Rise and Fall... make sure it's a supplemental read, and not the mainstay of your investigation.
I would suggest the same with most original papers and texts in the scientific community as well. Their value today rests primarily in their importance in the history of ideas. Great ideas and arguments deserve mention, but only rarely do they deserve direct attention. It is usually an inefficient use of intellectual energy that could better be spent on original contributions.
I'll point you to a scientific example... You can go read Maxwell's brilliant papers on electromagnetism if you choose, but you will find yourself wondering what this mysterious "ether" substance is to which Maxwell continuously refers. Of course, there is no such thing: but Maxwell was simply referring to what the scientific community believed at the time. It doesn't make his work less important to the history of physics ideas, but it certainly makes it less useful to a modern student. The mathematical language he uses to describe differential equations is also somewhat dissimilar to what a modern student would expect. A modern summary of Maxwell's work would be superior for any physics student.
It all boils down to this: do you want to spend your time in a historical admiration of other people's work? Or do you want to learn about their ideas in the most efficient manner possible, so that you can build on their ideas and make your own contributions to the history of ideas?
...you must sometimes also seek mediocrity.
Learn from other people's mistakes by pointing your newsgroup reader to comp.risks and reading the digests religiously.
Parent poster obviously did not look at the link in the article, which actually links to citeseer. So I can only say two things about this: RTFA and mod down parent.
--- Sigmentation Fault - Comments Dumped
Chaper 1. Douglas Engelbart "A Conceptual Framework for the Augmentation of Man's Intellect" (GUI + AI)
Chaper 2. Guiuliano & Jones "Linear Associative Information Retrieval" (AltaVista, Google)
Chapter 3. Cheydleur, "Dimensioning Asociative Memory" (Connectionism)
Chapter 5. Dostert, "Automatic Translation and Language Data Procesing" (Babelfish)
One interesting thing about so many of these articles is that they come from people in orgainzations that are not necessarily acedemic. Philco, SAAB, Hercules Power. Real programmers used to think about this stuff.
You just don't see this kind of book today, with the recent Wolfram book being a glaring exception. We spend most of our time now re-writing and arguing over what is the best OS. (oh btw... its VMS)
yah! Whizbang!!!
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 for Classes versus Prototypes in Object-Oriented Languages.
In the great CONS chain of life, you can either be the CAR or be in the CDR.
or however u do that...
what about the one and only paper he wrote, on pancake networks.
"if i'd known it was harmless, i'd have killed it myself"
Thirty years ago I designed and built a display subsystem for a realtime air defence simulator. Written in an assembler language it, nevertheless, incorporated some features of an object-orientated design. It was only later that I found out about object orientation as it is now defined.
It served its purpose which was to hide the details of how to display simulation information, separating it from the simulation process, but also provided a realtime debugging system the rest of the system did not have to know about. Pace those who really know about modern O-O. This code was used and supplied with several systems, no papers (what's a paper) no patents (who would want to patent stuff like that, even if you could). It was only abandoned because later systems were of a completely different architecture and implemented by different people.
Remembering systems written in assembler languages in that era by teams of ingenious programmers makes me despair of the modern money grabbing view that often tries to make money out of half baked ideas (and mine may be one of them, but I still love it!).
To exploit an idea by putting it out of the financial reach of those who might have a better grasp of how to use it is very sad. Besides, until someone else sees it their way how will you see it another way? Developing software is like conversation and argument, imagine going into a pub with the results of a match that you played in and denying the opportunity for someone else to give them out.
- Codd: "A Relational Model of Data for Large Shared Data Banks"
- Dijkstra: "Go To Statement Considered Harmful"
- Dijkstra: "Appendix of The Structure of the "THE"-Multiprogramming System"
- Hoare: "Monitors: An Operating System Structuring Concept"
- Metcalfe & Boggs: "Ethernet: Distributed Packet Switching for Local Computer Networks"
- Parnas: "On the Criteria to be Used in Decomposing Systems into Modules"
- Thompson: "Reflections on Trusting Trust"
- Wirth: "Program Development by Stepwise Refinement"
Of course, the ACM Digital Library contains the "[f]ull text of every article ever published by ACM", but only for paying subscribers ($198/year). An organization that considers itself to be "a major force in advancing the skills of information technology professionals and students worldwide" should be trying to get information into circulation, not trying to squeeze publications fees out of the practioners of the field.is that there are so many of them, and most are written with a single intent - just to get published. You know that academia rule: Publish or perish.
So there are lots of outstanding papers, with brilliant ideas. with many practical implications, yet there are more papers who leave your mind completely blank. You study such a paper and at the end ask yourself: Have I been cheated? I recently went through this experience while doing research in a field of 802.11. Approximately 1% of all the papers I've read had some interesting results and practical implications. The rest was essentially moving the air.
So the researches either have to spend incredible amount of time reading the already published staff, or reinventing the wheel.
http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD340. PDF
Two top-class papers if you want to take a look to the "emerging" world of pervasive computing
Mark Weiser, The Computer for the Twenty-First Century (the most referenced paper in the subject)
Frank Stajano, Security for whom? The shifting security assumptions of pervasive computing (dangers of ubiquitous computing exposed)
Sounds like the sort of problem that a system like CanonicalTomes would be good for. Canonical tomes is for books. Anyone up for making a similar site for "canonical papers"?
"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
Right on. I couldn't have put it better myself.
On a similar note: Plato taught that knowledge is universal and eternal, and that the illusion of learning is in fact the loss of amnesia.
-kgj
-kgj
That work about Socrates is nothing but the newspaper reports from thousands of years ago in a different language.
... and whether or not I've read Steinbeck and Twain, which as it happens I have.
...
... instead of being a worthless grad school parasite destined to waste out his life annoying kids as a depressed high school teacher who doesn't understand why the world doesn't appreciate intellectuals.
... well, never mind why: make up your own misinformed reason why, I don't care.
The problem -- did you read the link I posted, where Stone discusses his work? -- is that the very scanty reports about Socrates have been (according to Stone) drastically misinterpreted over the centuries. Stone, greatest of newsmen, did history a great service by going back to the source material. Hell, that's what every good reporter does: goes to the source material.
Get your nose out the book, boy. The humans you want to learn about are walking by all around you. Notice how all the "great american novels" were written on the back of years of newspaper reporting on the scene -- Steinbeck and the Grapes of Wrath (covered Okies for the San Fransisco paper), Mark Twain, etc.
For a guy who doesn't know anything about me, you sure make a lot of presumptions about what I do with my nose
Read, and write, the newspaper reports of today in this language, and you will get the same insight, with the added benefit that you, as a reporter, will matter to the world
Perhaps. But that does nothing to invalidate the worth of reading the ancients, however bent you are on the matter. Did you have some sort of tramautic boarding school experience, or what?
Actually, I dropped out of college, because
-kgj
-kgj
If those are your ideas of good books, I'm interested in these mysteries by Elizabeth Peters that you mention.
I need a break in between the tough reads; my wife wants to be Indian Jones. Maybe these would be good books.
Thanks for the suggestion....
(not sure who to attribute that to)
09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
Prof. Manindra Agarwal and two of his students, Nitin Saxena and Neeraj Kayal (both BTech from CSE/IITK who have just joined as Ph.D. students), have discovered a polynomial time deterministic algorithm to test if an input number is prime or not. Lots of people over (literally!) centuries have been looking for a polynomial time test for primality, and this result is a major breakthrough, likened by some to the P-time solution to Linear Programming announced in the 70s.
You may want to add this one to your list....
Primes is in P
Here is a neat site that I found (yep, using Google):
Great Papers in Computer Science:
http://bit.csc.lsu.edu/~chen/GreatPapers.html
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!
Ok, the title doesn't relate to the rest of the post, but its a good attention grabber.
Scholarly Papers are more than just the result or theory they propose. They contain much more information than that. There is the methods, and reasoning that goes behind them. That can be morevaluable than the result itself. Just think about biology. The first virus was identified in tobbaco plants. Great, doesn't really directly effect someone working on human biology right? basically it says that they found a new way for plants to die. But think of all of the methodology contained within.
Now think about computer SCIENCE. If it truley is a SCIENCE, then much more important than the result, is the process. Think of the math used to derive the result. Even if in a particualr case it produced a suboptimal result, applied to a different problem it may be revolutionary.
Well.. maybe. Or Maybe not. But Definitely not sort of.
I read with great awe many of the comments of this
The problem we have here isn't limited to the info-overloading, nor info-over-scattering, but also, the way we can learn how to teach.
I taught university level CS classes a few years ago, and although I knew the subjects that I've taught, a constant problem that I had was that sometimes it's kinda hard to relate what I knew (knowledge) to my students (knowledge transfer).
Many of the comments here about "the manuscrips are hard to understand" I think also suffer from the same problem.
You see, in effective information transfer, we not only have to tackle the amount of info-transfer, but the effectiveness (or the _how_) of information transfer.
If what we do makes sense, but we can't infer of what we know to those we want to teach, than what we know (insights?) would largely end up useless to the world.
All I need now is to learn how to teach.
Is there something out there that would help me ?
Thanks !
Muchas Gracias, Señor Edward Snowden !
1) Boyer moore (sp?) search algorithm.
2) The one - that I forgot the name of - that says when you have a list of stuff and somebody picks something, move it up one position in the list. Over time the most commonly picked ones are at the top.
These were published, I think, in the CACM in the 80s.
Need Mercedes parts ?
Suprising, I found paper:
"Finding Naked People - Forsyth, Fleck (1996) (Correct)"
make everybody pay a dollr, half to the teacher, half to the teachers teachers.
the Amway of education!
The Kruger Dunning explains most post on
Y'ever notice that 9876543211 is prime? Isn't that weird?
I think it's prime, anyhow. I had a TI-BASIC program that did stupid brute-force factoring, and punching that number in came up prime. (I was bored.) Maybe it was a number that looked a lot like that.
Anyone want to bother whipping up a five-line Perl script and checking on that?
--grendel drago
Laws do not persuade just because they threaten. --Seneca
This actually brings up an interesting point -- AFAI can tell, a good deal of the more "revolutionary" jumps in fields occur when someone who is familiar with two different fields brings in ideas from the first field to the second, which is populated by people who have never heard of the idea before.
:-(
Better analysis of existing data may be more rewarding than producing new data.
Of course, you don't get fat research grants for reading old papers.
May we never see th
While I'm not sure I'm up to learning classical Greek to read Euripides or improving my Latin to the point of reading Ovid, I strongly agree with the child posters who point out that pioneers in creative fields often are not just stepping-stones; they are enduring visionaries as well, whose initial works deserve as much thought as more-recent anthologies or restatements.
In the law, my current field of study, you most certainly do not begin contracts, for example, with the Uniform Commercial Code or the most recent American Law Institute Restatement. You start with King's Bench opinions from the 1700s, if not earlier ones.
Modern civil law codes are not intelligible solely from modern commentators; their origins in (sometimes truly ancient) compilations of law are as important, if not more so, than their present incarnations. You will still find civil law judges citing authorities from Roman or Byzantine proconsuls and edictuaries (seriously) to elucidate difficult questions.
And simply because ground-breaking work in creative fields tends to become more specialized and understandable as time passes is no reason to abandon historically important works. You'd sound silly arguing that the opinions of, say, Oliver Wendell Holmes, Benjamin Cardozo and Learned Hand have no application in modern law. They were insightful decades ago, and remain so. I venture such is true in a variety of fields.
Don't lump all physics together! Subfields within the physics community like to claim monopolies on each other. The high-energy physics types think they know how to explain the universe, but they're all full of s**t. Same with the astrophysicists. In fact, independent of the underlying microscopic laws, the behavior of macroscopic objects is explained purely by statistical mechanics!
why is IT so depressing?
http://john.regehr.org/reading_list/
The New Media Reader - recently published by MIT Press, this is a compilation of the best work in the so-called "new media" discipline. The papers range in date from the end of World War II to the present, and include a lot of good stuff, from Alan Turing's paper about the Turing Test, to early academic discussions of video games, to the GNU Manifesto. Not a lot of code or math (it's new media, after all, not CS), but plenty of food for thought.
Hamlet on the Holodeck by Janet Murry - this is an interesting work on the possibilities of the computer as a story-telling medium. Murry's main point is that computer games need to move away from their current fixation on combat and resource accumulation towards stories that foster sympathy.
In 2000 I found a collection of several hundered college CS papers on the topic of circumvention of copy-protection. I have never been able to find it since. DOES ANYONE KNOW THE URL?
I would give my left anything to find it again.
And the only way to know-it is to remember it :)
Exactly. Plato called this anamnesia -- that is, "loss of amnesia".
-kgj
No computer science education should be considered complete without reading Alonzo Church's paper from the 30s, "The Lambda Calculus". (BTW, Church was Turing's thesis advisor.)
"Format C:" by B. Gates
Link. Not all the courses have lecture notes or othe useful stuff in them yet. When dig deeper into each course's links you may notice a nav bar on the left of the screen. Many of the courses have the "Lecture Notes" section there.
I have a paper for your list. The paper topic is fault tolerant computer systems and is referenced heavily in Aerospace/NASA/Military reseach...
The Byzantine Generals Problem (1982) Leslie Lamport, Robert Shostak, Marshall Pease Advances in Ultra-Dependable Distributed Systems, N. Suri, C. J. Walter, and M. M. Hugue (Eds.), IEEE Computer Society Press
It basically points out that in fault tolerant systems, you need a minimum of 3 sources to determine if one source is bad.
Holland
I agree with Knuckles. This isn't troll... I find it funny/insightful.
yours truly,
the poster of the parent, ljavelin.
I agree. Happily, my Dad's company does have their (full time) patent lawyers involved.
They located the German researcher and he mentioned an application where the patented technology was used - in some time like 1973.
Although it isn't a done deal yet, it looks like the important claims of the patent are on very shakey ground.
My CPU is a neural net processor, a learning computer.
The Anatomy of a Large-Scale Hypertextual Web Search Engine, has produced Google. Why make this post longer than it need be?
Exercise your right not to vote. thinkoutside.org
There you lazy Euro, that is how you spell American!
Learn to spell it, for you owe your freedom to the blood of real men, American Men.
Your mother knows real men, Americans have been improving the genetic makeup of Europe since 1918.
How about modern papers that can help a wanna-be CS graduate student (who only has a BA) to find enough passion and specialization in the field to at least formulate a statement of purpose for graduate school? It's ok to suggest ones that are highly technical. I am trying to come up with a very rough outline of my future research program. I heard that without going into this level of detail one can't hope to get into a top CS graduate school in USA.