Most Influential Papers in Computer Science History
terriblesoftware.org
terriblesoftware.org
And this seems to be a cool course: https://canvas.harvard.edu/courses/34992/assignments/syllabu... > This course examines papers every computer scientist should have read, from the 1930s to the present. It is meant to be a synthesizing experience for advanced students in computer science: a way for them to see the field as a whole, not through a survey, but by reliving the experience of its creation. The idea is to create a unified view of the field of computer science, for students who already know something about it, by replaying its entire evolution at an accelerated frame rate.
The Turing paper is foundational for CS, but without it, would the technology have evolved differently? Probably not. Most software engineers have not read it. Conversely, the IP standard is a technological cornerstone, but there's hardly any science in it. It's just a specification of a fairly simple protocol that you need to know when doing almost anything network-adjacent.
I wonder how pagerank was influential to CS as a field?
even mapreduce is more a rally clever technique than a boundary pushing or boundary identifying extension of the field. unlike, say, CSP --- which is missing in the list.
still unlike the conciseness and structure of the list. it could evolve into a nice book :-D
Agreed about map reduce though.
My understanding of the term "history of CS" would be "how CS evolved", as a field. How do we think about "processing 'data' with computers". what can we compute? what are limitations in how fast we can compute? how to we talk about and present algorithms, prescriptions for these computations? how do we talk about data and how we structure it (leading to SQL, and sgml/xml/JSON)?
Pagerank in contrast is a very specific type of breakthrough, a breakthrough for it's application domain. But it's not a breakthrough for how we compute or how we think about computation.
does that make sense?
What joke of a list :-)
If quantum or biological computing find some success, none of these are going to be relevant.
That said, pagerank is important to understand the modern tech world. Search is something we take for granted, and it’s great there’s a deeply mathematical (and somewhat counterintuitive) theory behind it.
But, indirectly looking, it influenced establishment of Google, which influenced many thousands of innovations in this field.
So yes, PageRank is hugely influential in my opinion.
We don't use cuneiform these days, but back in its day, it was as close to a standard writing system as it was possible to get.
I've read five of of the seven papers on the list. The two I haven't read are Cerf and Kahn's, and Berner-Lee's.
Turing's paper on computability was particularly hard to follow, for me, because he used these gothic-font upper-chase characters to name all sorts of objects, and all those characters looked kinda the same to me! I had to use auxiliary materials to be able to make my way through the paper. Today, I would recommend reading it with Charles Petzold's easy-to-follow book on the paper: https://www.amazon.com/Annotated-Turing-Through-Historic-Com...
Cook's paper on NP-completeness was also hard to follow (again, for me). As with Turing's paper, I had to use auxiliary materials to make my way. Today, I would recommend reading instead an introductory book on computational complexity that works through Cook's proof.
Shannon's paper is a work of art, clearly articulated and beautifully written. It's just not casual reading, to put it mildly.
Brin and Page's paper, and Codd's paper, are not hard to follow, at least as I remember them, but understanding Brin and Page's work requires some knowledge of Linear Algebra.
Thank you for sharing this on HN.
I don't known if anyone has gone through the trouble to re-typeset the original paper in LaTex.
In the paper, the significance of the so-called "damping factor" is not clear. However, with linear algebra, we know that the damping factor makes the stochastic matrix positive rather than merely nonnegative. Hence the Perron eigenvalue is "simple" (i.e. of multiplicity one), the Perron vector is unique and the power iteration must converge to it.
There is probably some gain from understanding the algorithm specifically as a Markov chain iteration (if nothing else, it provides a great example for Markov chain iteration), but I think it's perfectly possible -- and easier -- to understand it as a fixed-point iteration on a compact space. And I am someone who does algebra for a living and normally explains everything algebraically if ever possible...
https://en.wikipedia.org/wiki/A_Symbolic_Analysis_of_Relay_a...
He outlined how you could use switching elements in circuits (read: transistors) to define boolean logic.
(That's not to downplay the importance of, well, establishing the foundations of the entire field of information theory.)
That's not what Turing proved. Instead, what he proved in his paper was that there are some problems which aren't solvable by Turing Machines (and therefore presumably by any machine). That's the Entscheidungsproblem (decision problem) referenced in the title.
What TFA references is the so-called Church-Turing-Thesis, which is exactly that, a thesis. It can't really be proven although we have very strong reason to believe it given that in almost 100 years nobody has found a system of computation more powerful than Turing Machines.
https://philsci-archive.pitt.edu/9085/1/SterrettBringingUpTu...
But that is not the direction that AI seems to be taking, it is "smart" because it does a good job of parroting humans that sound "smart", not because it "knows" truths.
The actor model is a way to describe that a program exists, not if it’s possible to ‘compute’ that program.
You’re right that it can describe more things than a Turing machine, but doesn’t provide a constructive way to compute them.
If you were computing with actors, and you also had a sufficiently-detailed spec about the actor model, is there some particular algorithm you could not compute by just executing a TLA+ spec of your actor algorithm using Turing-ish software?
[1] https://en.wikipedia.org/wiki/Nondeterministic_Turing_machin...
I was actually doing something similar on my own, so I might recommend some papers
- RSA: A Method for Obtaining Digital Signatures and Public-Key Cryptosystems (1978)
- PageRank: The PageRank Citation Ranking: Bringing Order to the Web (1999)
- MapReduce: MapReduce: simplified data processing on large clusters (2008)
- Bitcoin: Bitcoin: A Peer-to-Peer Electronic Cash System (2008)
- BackProp: Learning representations by back-propagating errors (1986)
- Hoare Logic: An Axiomatic Basis for Computer Programming (1969)
https://web.archive.org/web/20070926212100/http://www.almade...
While Cook was the first to introduce NP-completeness, Karp's paper presenting 21 problems that could be reduced polynomially to 3SAT was also an enormeous cornerstone that helped kick off a more general interest in Cook's theory.
https://en.wikipedia.org/wiki/Karp%27s_21_NP-complete_proble...
"Companies in every industry need to assume that a software revolution is coming. This includes even industries that are software-based today."
https://a16z.com/why-software-is-eating-the-world/
"But this is Day 1 for the Internet and, if we execute well, for Amazon.com."
https://www.aboutamazon.com/news/company-news/amazons-origin...
[1]https://open.substack.com/pub/0x7f1/p/is-all-you-need-is-all...
Hewitt, Carl; Bishop, Peter; Steiger, Richard (1973). "A Universal Modular Actor Formalism for Artificial Intelligence". IJCAI.
This is outdated and does not apply to modern goto.
It is often misunderstood which causes people to avoid goto even when it is very valid, even better than alternatives solution
I mean, no one feels like using a laser is a proper way to cut butter, but using lasers is sometime the best cutting accurate option.
J. Cooley and J. Tukey, “An Algorithm for the Machine Calculation of Complex Fourier Series,” 1965
Wolpert, D. H., & Macready, W. G. (1997). No free lunch theorems for optimization. IEEE transactions on evolutionary computation, 1(1), 67-82.
And the corresponding search paper. Got me started in search and optimization (and Prolog).
Licklider, J. C. (1960). Man-computer symbiosis. IRE transactions on human factors in electronics, (1), 4-11.
More of a philosophical outlook but the thought of man-computer symbiosis instead of "computer solves it" has stuck with me (and is quite relevant in this day and age).
[1] https://courses.cs.duke.edu/spring03/cps296.5/papers/ziv_lem...
Probably just needs to be a bigger list.
Unix paper.
Hinton on deep learning (pick one).
Map Reduce + GFS from Google.
Paxos from dist systems.
PGP paper; RSA paper
Surprised no one has mentioned The Unreasonable Effectiveness of Data. Data is more important than complex domain specific algorithms.
The paper itself is very approachable and worth spending an hour or so on.
Yes, it's very widely used at Google through Chubby, which underpins many core pieces of infrastructure, including name resolution. (It used to be common practice to depend more directly on Chubby for synchronization of state via shared global files, but that fell out of favor about 6 years ago due to reliability risks associated with just blasting out changes globally without any canarying.)
https://en.wikipedia.org/wiki/Paxos_(computer_science)#Produ... lists a bunch of other use cases (notably, Google's Spanner and Amazon's DynamoDB).
> And let me ask the same question for all other academic distributed algorithms right away.
Raft (designed as a more understandable alternative to Paxos) is more commonly used, as I understand it.
https://en.wikipedia.org/wiki/Raft_(algorithm)#Production_us...
> I recall seeing a study some 10 years ago checking the major cloud providers for Byzantine fault tolerance and finding none of them to exhibit the qualities that the known algorithms would guarantee.
I'm curious which study you're referring to. I could believe that while Paxos might be used as a building block, it might not be used in a consistent manner throughout.
Also, note that not all of the variations of Paxos handle Byzantine faults.
I can't find the study any more, though I'm pretty sure I saw it on HN...
Plan9+CSP.
Both, maybe, polar opposites, but complementary.
https://paulgraham.com/rootsoflisp.html
This is the arch-rival of Unix+C, and also one of his best CS friends (GNU Emacs it's still there, and it was widely used on Unixen, among reusing GNU (Unix clone) tools).
[1]: https://mitpress.mit.edu/9780262045308/ideas-that-created-th...
"Sketchpad: A Man-machine Graphical Communication System."
Andrew Tridgell and Paul Mackerras, The rsync algorithm, June 1996, https://www.andrew.cmu.edu/course/15-749/READINGS/required/c...
For example: Rust took a bunch of ideas from some research languages that one guy did 1-3 decades ago at the time. These ideas have probably always been good and useful, but they weren't put to use, not all of them at least.
I would add "On the Criteria to Be Used in Decomposing Systems into Modules" (1972, ~7800 citations) by Parnas, though more software engineering than computer science in a strict sense.
Citation needed
> Don't act in bad faith
This sounds like projection to me
The original comment you were responding to was pointing out that none of the papers listed were by women, and suggested several that were that are undeniably influential. Perhaps you think they aren't because you haven't read them, or presumably even heard of them?
Of course, you can't do justice to the entire field with such a short list. Two papers on web but none on graphics, e.g. But it's a fine reading list for sure.
I think the also ran list should be in the main list.
- Ideas That Created the Future https://www.amazon.com/Ideas-That-Created-Future-Computer/dp...
- "Classics of CS" https://canvas.harvard.edu/courses/34992/assignments/syllabu...
Bitcoin paper is really interesting from CS perspective
And also had HUGE influence on the world
And no, I dont own btc
Regardless of whether you buy the full hype or you think they're just stochastic parrots, I think it more than qualifies to make the second list (and probably the first, but I get that there's no perspective to be so sure about that).
The paper itself (as a paper, i.e. an explanation of the underlying results) is quite bad, by the way. It's better to learn about Transformers from one of the many good blog posts. But that doesn't detract from its influence.