[1] Joe Armstrong 2003. "Making reliable distributed systems in the presence of software errors" (the Erlang paper, perhaps the most famous implementation of message passing concurrency).

[2] John Backus 1979. "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs." (a famous case for functional programming)

[3] Victor R. Basili and Albert J. Turner. 1975 "Iterative enhancement: A practical technique for software development" (Agile in 1975? Actually it seems iterative development can be traced back to the 50s)

[4] Andrew D. Birrell and Bruce Jay Nelson 1984 "Implementing remote procedure calls" (The idea of making a distributed language operation similar to a local language operation)

[5] Edsger W. Dijkstra. "Go To statement considered harmful" (the mother of all those "considered harmful" titles)

[6] Carl Hewitt 1977. "Viewing control structures as patterns of passing messages". (seminal study of asynchronous messaging)

[7] Carl Hewitt, Peter Bishop, and Richard Steiger 1973. "A universal modular ACTOR formalism for artificial intelligence" (idem)

[8] Charles Antony Richard Hoare 1974. "Monitors: An operating system structuring concept". (an early refinement of a very influential concurrency concept)

[9] Charles Antony Richard Hoare 1979. Communicating sequential processes (an early presentation of invariants for state machines)

[10] deleted

[11] Gilles Kahn and David B. MacQueen 1977. "Coroutines and networks of parallel processes" (non preemptive concurrency, an alternative to threads for collaborative concurrency)

[12] Robert A. Kowalski 1979. "Algorithm = logic + control". (A logic program can be “read” in two ways: either as a set of logical axioms (the what) or as a set of commands (the how); the idea behind relational programming, like in prolog)

[13] Nancy Leveson and Clark S. Turner 1993. "An investigation of the Therac-25 accidents." (the mother of all race conditions papers? Focuses the mind about the dangers of interleavings)

[14] Henry Lieberman. 1986 "Using prototypical objects to implement shared behavior in object- oriented systems." (influenced js? Understanding delegation)

[15] George A. Miller. 1956 "The magical number seven, plus or minus two: Some limits on our capacity for processing information." (this might be pushing it, but maybe the original case for managing complexity)

[16] Chris Okasaki. 1998 "Purely Functional Data Structures." (how to design functional algorithms)

[17] John C. Reynolds 1975. "User-defined types and procedural data structures as complementary approaches to data abstraction." (the fundamental abstract data types concept)

[1] http://erlang.org/download/armstrong_thesis_2003.pdf

[2] https://www.thocp.net/biographies/papers/backus_turingaward_...

[3] https://www.cs.umd.edu/~basili/publications/journals/J04.pdf
[4] http://www.bighole.nl/pub/mirror/www.bitsavers.org/pdf/xerox...

[5] https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.p...

[6] https://www.cypherpunks.to/erights/history/actors/AIM-410.pd...

[7] http://worrydream.com/refs/Hewitt-ActorModel.pdf

[8] http://www.cs.unm.edu/~cris/481/hoare-monitors.pdf

[9] http://lass.cs.umass.edu/~shenoy/courses/677/readings/Hoare....

[11] https://hal.inria.fr/inria-00306565/PDF/rr_iria202.pdf

[12] http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.472...

[13] https://www.cs.umd.edu/class/spring2003/cmsc838p/Misc/therac...

[14] http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.6...

[15] http://www.sns.ias.edu/~tlusty/courses/InfoInBio/Papers/Mill...

[16] https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf

[17] https://pdfs.semanticscholar.org/71db/39fe3e2a6b80c52b18bd24...