# Liste de publications importantes en informatique

Voici une liste de publications importantes en informatique, organisés par domaine.
Quelques raisons pour lesquelles une publication peut être considérée comme importante :
* sujet créateur – Une publication qui a créé un nouveau sujet ;
* découverte – Une publication qui a changé de manière significative les connaissances scientifiques ;
* influence – Une publication qui a considérablement influencé le monde, ou qui a eu un impact massif sur l'enseignement de l'informatique.

## Intelligence artificielle

* Computing Machinery and Intelligence, Alan Turing, Mind, 59:433–460, 1950 (Copie en ligne). Cet article suggère le test de Turing comme méthode pour faire la différenciation entre machine et humain.
* A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence, John McCarthy, Marvin Minsky, N. Rochester, Claude Shannon (Copie en ligne). Ce projet de recherche d'été a inauguré et a défini le champ. Il contient la première utilisation du terme de l'intelligence artificielle et cette description succincte de la base philosophique du champ : « tous les aspects de l'apprentissage ou de toute autre caractéristique de l'intelligence peut en principe être ainsi décrit précisément qu'une machine peut être fait pour les simuler » (Voir la philosophie de l'intelligence artificiel). Cette proposition a invité les chercheurs à la conférence de Dartmouth, qui est largement considérée comme la naissance de l'IA. (Voir l'histoire de l'IA.).
* Fuzzy sets, Lotfi Zadeh, Information and Control, Vol. 8, p. 338–353, 1965. Cet article fondateur publié en 1965 fournit des détails sur les mathématiques de la théorie des ensembles flous.
* Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference, Judea Pearl (ISBN 1-55860-479-0). Ce livre introduit les méthodes bayésiennes aux AI.
* Artificial Intelligence: A Modern Approach, Stuart J. Russell, Peter Norvig, Prentice Hall, Englewood Cliffs, New Jersey, 1995, (ISBN 0-13-080302-2) (Copie en ligne). Manuel de référence en Intelligence Artificielle. Le site Web du livre répertorie plus de 1 100 collèges.

## Apprentissage automatique

* An Inductive Inference Machine, Ray Solomonoff, IRE Convention Record, Section on Information Theory, Part 2, p. 56–62, 1957. Le premier document écrit sur l'apprentissage automatique. Il souligne l'importance des séquences de formation, et l'utilisation de partie de solutions précédentes à des problèmes dans la construction de solutions d'essai à de nouveaux problèmes.
* Language identification in the limit, E. Mark Gold, Information and Control, 10(5):447–474, 1967 ((HTML) (PDF)). Ce document créé la théorie de l'apprentissage algorithmique.
* On the uniform convergence of relative frequencies of events to their probabilities, Vladimir Vapnik, Alexeï Tchervonenkis, Theory of Probability and Its Applications, 16(2):264—280, 1971. Théorie de l'apprentissage informatique, la théorie VC, la convergence uniforme statistique et la dimension VC.
* A theory of the learnable, Leslie Valiant, Communications of the ACM, 27(11):1134–1142, 1984. Apprentissage PAC.
* Learning representations by back-propagating errors, David E. Rumelhart, Geoffrey E. Hinton et Ronald J. Williams, Nature, 323, 533—536, 1986. Développement de l'algorithme rétropropagation pour les réseaux de neurones artificiels. Notez que l'algorithme a été décrit par Paul Werbos (en) en 1974.
* Induction of Decision Trees, Ross Quinlan, Machine Learning, 1. 81—106, 1986. Les arbres de décision sont un algorithme d'apprentissage commun et un outil de représentation de décision.
* Learning Quickly When Irrelevant Attributes Abound: A New Linear-threshold Algorithm, Nick Littlestone, Machine Learning 2: 285–318, 1988 (Version en ligne (PDF))
* Learning to predict by the method of Temporal difference, Richard S. Sutton, Machine Learning 3(1): 9–44 (Version en ligne). La méthode de différence temporelle pour l'apprentissage par renforcement.
* Learnability and the Vapnik–Chervonenkis dimension, A. Blumer, Andrzej Ehrenfeucht, D. Haussler, M. K. Warmuth, Journal of the ACM, 36(4):929–965, 1989. Caractérisation complète de l'apprentissage PAC en utilisant la dimension VC.
* Cryptographic limitations on learning boolean formulae and finite automata , M. Kearns, Leslie Valiant, Symposium on Theory of Computing, pages 433–444, New York, ACM. (Version en ligne (HTML)). Preuves des résultats négatifs pour l'apprentissage PAC.
* The strength of weak learnability, Robert Schapire, Machine Learning, 5(2):197–227, 1990. (Version en ligne (HTML)). Preuve que l'apprenabilité faible et forte sont équivalentes dans le cadre PAC.
* A training algorithm for optimum margin classifiers, Bernhard E. Boser, Isabelle M. Guyon, Vladimir Vapnik, (Version en ligne (HTML)). Ce document présente les machines à vecteurs de support, un algorithme d'apprentissage automatique pratique et populaire. Les machines à vecteurs de support utilisent souvent l'astuce du noyau.
* A fast learning algorithm for deep belief nets, Geoffrey E. Hinton, Simon Osindero, Yee-Whye Teh, Neural Computation, 2006 ([PDF] en ligne)
* Knowledge-based analysis of microarray gene expression data by using support vector machines, MP Brown, WN Grundy, D Lin, Nello Cristianini, CW Sugnet, TS Furey, M Ares Jr, David Haussler, PNAS, 4 janvier 2000 ; 97(1):262–7. La première application de l'apprentissage supervisé à des données d'expression génétique, en particulier la machine à vecteurs de support. La méthode est maintenant standard, et le document est l'un des plus cités dans ce domaine.

## Compilateurs

* D. E. Knuth, « On the translation of languages from left to right », Information and Control, vol. 8, n$^o$ 6,‎ juillet 1965, p. 607–639 (DOI 10.1016/S0019-9958(65)90426-2, lire en ligne, consulté le 29 mai 2011). Analyseur LR.
* Semantics of Context-Free Languages, Donald Knuth, Math. Systems Theory 2:2 (1968), 127–145. À propos de l'attribution de la grammaire, la base pour s-attribué de yacc et l'approche de LR-attribué de zyacc.
* A program data flow analysis procedure, Frances E. Allen, John Cocke, Commun. ACM, 19, 137—147.
* A Unified Approach to Global Program Optimization, Gary Kildall, Proceedings of ACM Sigact-Sigplan 1973 Symposium on Principles of Programming Languages (pdf). A formalisé le concept d'analyse de flux de données comme point fixe de calcul sur treillis.
* YACC: Yet another compiler-compiler, Stephen C. Johnson, Unix Programmer's Manual Vol 2b, 1979 (Lire en ligne (HTML). Yacc est un outil de génération d'analyseurs syntaxiques.
* gprof: A Call Graph Execution Profiler, Susan L. Graham, Peter B. Kessler, Marshall Kirk McKusick, Proceedings of the ACM Sigplan 1982 Symposium on Compiler Construction, Sigplan Notices 17, 6, Boston, MA., juin 1982. (Lire en ligne ; pdf). Le profilage gprof.
* Compilers: Principles, Techniques and Tools, Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Monica Lam, Addison-Wesley, 1986. (ISBN 0-201-10088-6). Ce livre est devenu un classique dans l'écriture de compilateur.

## Architecture d'un ordinateur

* Colossus computer, Tommy Flowers, Annals of the History of Computing, Vol. 5 (No. 3), 1983, p. 239–252. (The Design of Colossus). Les machines Colossus étaient les premiers appareils informatiques utilisés par les cryptanalyses britanniques pour briser les messages allemands chiffrés avec la machine de Lorenz pendant la Seconde Guerre mondiale. Colossus est un ordinateur numérique électronique binaire.
* First Draft of a Report on the EDVAC, John von Neumann. 30 juin 1945, le projet ENIAC. (First Draft of a report on the EDVAC) ([PDF]). Contient la première description publiée de la conception logique d'un ordinateur à l'aide de l'architecture de von Neumann.
* Architecture of the IBM System/360, Gene Amdahl, Fred Brooks, G. A. Blaauw, IBM Journal of Research and Development, 1964. (Architecture of the IBM System/360). Le système IBM/360 est une famille de système d'ordinateur central annoncé par IBM le 7 avril 1964. Il a été la première famille d'ordinateurs faisant une distinction claire entre l'architecture et la mise en œuvre.
* The case for the reduced instruction set computer, DA Patterson, DR Ditzel, Computer Architecture News, vol. 8, n$^o$ 6, octobre 1980, p. 25–33. (Version en ligne ([PDF]))
* Comments on the Case for the Reduced Instruction Set Computer, DW Clark, WD Strecker, Computer Architecture News, 1980. (Version en ligne ([PDF])
* The CRAY-1 Computer System, DW Clark, WD Strecker, Communications of the ACM, janvier 1978, volume 21, numéro 1, pages 63–72. (Version en ligne ([PDF])). Le Cray-1 était un supercalculateur conçu par une équipe comprenant Seymour Cray pour Cray Research. Le premier système Cray-1 a été installé au Los Alamos National Laboratory en 1976, il est devenu l'un des supercalculateurs les plus connus et les plus réussis de l'histoire.
* Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities, Gene Amdahl, AFIPS 1967 Spring Joint Computer Conference, Atlantic City, N.J. (Version en ligne ([PDF])). La Loi d'Amdahl.
* A Case for Redundant Arrays of Inexpensive Disks (RAID), David A. Patterson, Garth Gibson, Randy H. Katz, In International Conference on Management of Data, pages 109—116, 1988. (Version en ligne ([PDF])). Le document présente le concept de disques RAID, décrit les différents niveaux de RAID, et les avantages de chaque niveau.

## Infographie

* The Rendering Equation, J. Kajiya, Siggraph: ACM Special Interest Group on Computer Graphics and Interactive Techniques, pages 143—150
* Elastically deformable models, Demetri Terzopoulos, John Platt, Alan Barr, Kurt Fleischer, Computer Graphics, 21(4), 1987, 205–214, Proc. ACM SIGGRAPH'87 Conference, Anaheim, CA, juillet 1987. (Version en ligne ([PDF])).

## Vision numérique

* The Phase Correlation Image Alignment Method, C.D. Kuglin, D.C. Hines, IEEE 1975 Conference on Cybernetics and Society, 1975, New York, p. 163–165. Une méthode de corrélation basée sur la transformation de Fourier inverse.
* Determining Optical Flow, B.K.P. Horn, B.G. Schunck, Artificial Intelligence, Volume 17, 185–203, 1981. DOI 10.1016/0004-3702(81)90024-2. Une méthode d'estimation du mouvement d'image de points entre deux images d'une séquence vidéo.
* An Iterative Image Registration Technique with an Application to Stereo Vision, B.D. Lucas, Takeo Kanade, Proceedings of the 7th International Joint Conference on Artificial Intelligence, 674–679, Vancouver, Canada, 1981 (Version en ligne). Ce document fournit une technique efficace pour l'enregistrement d'image.
* The Laplacian Pyramid as a compact image code, Peter J. Burt, Edward H. Adelson, IEEE Transactions on Communications, volume = COM-31,4, p. 532–540, 1983. (Version en ligne). Une technique pour l'encodage d'image en utilisant des opérateurs locaux de nombreuses échelles.
* Stochastic relaxation, Gibbs distributions, and the Bayesian restoration of images, Stuart Geman, Donald Geman, IEEE Transactions on Pattern Analysis and Machine Intelligence, 1984. Introduction de 1) MRFs pour l'analyse d'image 2) l'échantillonnage de Gibbs qui a révolutionné la statistique bayésienne et donc eu un impact primordial dans de nombreux autres domaines, en plus de la vision par ordinateur.
* Snakes: Active contour models, Michael Kass, Andrew Witkin, Demetri Terzopoulos. Une technique interactive variationnelle pour la segmentation d'images et suivi visuel.
* Condensation – conditional density propagation for visual tracking, M. Isard, A. Blake, International Journal of Computer Vision, 29(1):5–28, 1998. (Version en ligne). Une technique pour le match moving.
* Object recognition from local scale-invariant features, David Lowe, International Conference on Computer Vision, p. 1150–1157, 1999. Une technique (Scale-invariant feature transform) pour la description de caractéristique.

## Base de données

* A relational model for large shared data banks, Edgar Frank Codd, Communications of the ACM, 13(6):377–387, juin 1970. Ce document présente le modèle relationnel des bases de données.
* Binary B-Trees for Virtual Memory, Rudolf Bayer, ACM-SIGFIDET Workshop 1971, San Diego, Californie, Session 5B, p. 219–235. Ce document introduit la structure de données des arbres B. Ce modèle est devenu le modèle numéro un.
* The Entity Relationship Model – Towards a Unified View of Data, Peter Chen, ACM Transactions on Database Systems, Vol. 1, Num. 1, mars 1976, p. 9–36. Ce document introduit le diagramme du modèle d'entité-relation (DRE) de la conception de base de données.
* Sequel: A structured English query language, Donald D. Chamberlin, Raymond F. Boyce. Ce document introduit le langage SQL.
* The notions of consistency and predicate locks in a database system, K.P. Eswaran, J. Gray, R.A. Lorie, I.L. Traiger, Communications of the ACM 19, 1976, 624—633. Ce document définit les concepts de transaction (en), et de cohérence. Il a également fait valoir qu'une transaction doit concerner une logique plutôt que d'un sous-ensemble physique de la base de données.
* Mining association rules between sets of items in large databases, Rakesh Agrawal, Tomasz Imielinski, Arun Swami, Proc. of the ACM SIGMOD Conference on Management of Data, pages 207–216, Washington, D.C., mai 1993 (Version en ligne (HTML)). Les règles d'association, une méthode très courante pour l'exploration de données.

## Histoire du calcul

* Herman H. Goldstine, The Computer from Pascal to von Neumann, Princeton University Press, 1972 (ISBN 0-691-08104-2). Le premier livre portant sur l'histoire de calcul.
* A History of Computing in the Twentieth Century, Nicholas Metropolis, J. Howlett, Gian-Carlo Rota, Academic Press, 1980, (ISBN 0-12-491650-3). Plusieurs chapitres de pionniers de l'informatique.

## Recherche d'information

* A Vector Space Model for Automatic Indexing, Gerard Salton, A. Wong, C. S. Yang, Commun. ACM, 18(11): 613–620 (1975). Présentation du modèle vectoriel.
* Extended Boolean Information Retrieval, Gerard Salton, Edward A. Fox, Harry Wu, Commun. ACM 26(11): 1022–1036 (1983). Présentation de l'index inversé.

## Réseau social

* Data Communications and Networking, Behrouz A. Forouzan, (ISBN 0073376221), McGraw hill education, 2013. Cet ouvrage présente une approche globale et accessible aux communications de données et de réseautage, et qui a fait de ce livre un favori avec les étudiants et les professionnels. Plus de 830 chiffres et 150 tableaux accompagnent le texte et offrent une compréhension visuelle et intuitive.

## Systèmes d'exploitation

* An experimental timesharing system, Fernando J. Corbató, M. Merwin-Daggett, R.C. Daley, Proceedings of the AFIPS FJCC, pages 335–344, 1962. (Version en ligne (HTML)). Ce document porte sur le temps-partagé d'une méthode de partage des ressources de l'ordinateur. Cette idée a changé l'interaction avec les systèmes informatiques.
* The Working Set Model for Program Behavior, Peter J. Denning, Communications of the ACM, Vol. 11, n$^o$ 5, mai 1968, p. 323–333 (Version en ligne ([PDF])). Le début de la mémoire cache.
* Virtual Memory, Processes, and Sharing in Multics, Robert C. Daley, Jack B. Dennis, Communications of the ACM, Vol. 11, n$^o$ 5, mai 1968, p. 306–312. (Version en ligne ([PDF]). Document classique sur Multics, le système d'exploitation le plus ambitieux de l'histoire des débuts de l'informatique. La plupart des systèmes d'exploitation depuis Multics ont incorporé un sous-ensemble de ses installations.
* The nucleus of a multiprogramming system, Per Brinch Hansen, Communications of the ACM, Vol. 13, n$^o$ 4, avril 1970, p. 238–242 (Version en ligne ([PDF])). Document sur l'architecture de noyau extensible du système de multiprogrammation RC 4000 (en), maintenant connu sous le nom de micronoyau.
* Operating System Principles, Per Brinch Hansen, Prentice Hall, Englewood Cliffs, NJ, juillet 1973. (Version en ligne (ACM Digital Library)). Le premier manuel complet sur les systèmes d'exploitation.
* The UNIX Time-Sharing System, Dennis M. Ritchie et Ken Thompson, Communications of the ACM, 17(7), juillet 1974. (Version en ligne). Le système d'exploitation Unix et ses principes ont été décrits dans ce document. L'importance principale ne provient pas de ce document, mais du système d'exploitation, ce qui a eu un effet considérable sur le système d'exploitation et la technologie informatique.
* Experiences with Processes and Monitors in Mesa, Butler W. Lampson, David D. Redell, Communications of the ACM, Vol. 23, n$^o$ 2, février 1980, p. 105–117. (Version en ligne ([PDF])). Document classique sur les techniques de synchronisation.
* A Fast File System for Unix, Marshall Kirk McKusick, William N. Joy, Samuel J. Leffler, Robert S. Fabry, ACM Transactions on Computer Systems, Vol. 2, n$^o$ 3, aout 1984, p. 181–197. (Version en ligne ([PDF])). Le système de fichier d'Unix. L'un des premiers articles portant sur la façon de gérer le stockage sur disque pour les systèmes de fichiers haute performance.
* Microkernel operating system architecture and Mach, David L. Black, David B. Golub, Daniel P. Julin, Richard F. Rashid, Richard P. Draves, Randall W. Dean, Alessandro Forin, Joseph Barrera, Hideyuki Tokuda, Gerald Malan, David Bohman, pages 11–30, avril 1992. Document traitant d'une architecture de micronoyau particulière.
* Soft Updates: A Solution to the Metadata Update problem in File Systems, G. Ganger, M. McKusick, C. Soules, Y. Patt, ACM Transactions on Computer Systems 18, 2, p. 127–153, mai 2000 (Version en ligne). Une nouvelle façon de maintenir la cohérence du système de fichiers.

## Langages de programmation

* The Fortran Automatic Coding System, John Backus et al., Proceedings of the WJCC (Western Joint Computer Conference), Los Angeles, Californie, février 1957. (Version en ligne ([PDF])). Ce document décrit la conception et la mise en œuvre du premier compilateur Fortran par l'équipe IBM. Fortran est un langage de programmation dédié, procédural, et impératif qui est particulièrement adapté au calcul numérique et scientifique.
* Recursive functions of symbolic expressions and their computation by machine, part I, John McCarthy, Communications of the ACM, 3(4):184–195, avril 1960. (Version en ligne). Ce document introduit LISP, le premier langage de programmation fonctionnel, qui a été largement utilisé dans de nombreux domaines de l'informatique, en particulier dans l'IA. LISP dispose également de fonctionnalités puissantes pour manipuler des programmes LISP au sein du langage.
* Fundamental Concepts in Programming Languages, Christopher Strachey,. A introduit la terminologie du langage de programmation encore en usage aujourd'hui.
* Lambda Papers, Gerald Jay Sussman et Guy Lewis Steele, Jr., AI Memos, 1975–1980. Cette série d'articles et de rapports définit d'abord le langage de programmation Scheme influent et remis en question les pratiques en vigueur dans la conception du langage de programmation, en utilisant le lambda-calcul à grande échelle pour modéliser les concepts du langage de programmation et de guider la mise en œuvre efficace sans sacrifier la puissance expressive (en).
* Structure and Interpretation of Computer Programs, Hal Abelson et Gerald Jay Sussman, MIT Press, 1984, 1996. Ce manuel explique les concepts de base de programmation informatique, et est considéré comme un texte classique en informatique.
* Comprehending Monads, Philip Wadler, Mathematical structures in computer science 2.04, 1992, 461-493. (Version en ligne). Ce document introduit le monade à la programmation fonctionnelle.
* Towards a Theory of Type Structure, John Reynolds, Programming Symposium. Springer Berlin Heidelberg, 1974. (Version en ligne). Ce document introduit le système F.
* An axiomatic basis for computer programming, Charles Antony Richard Hoare, Communications of the ACM, Volume 12, n$^o$ 10, octobre 1969, Pages 576-580. Cet article introduit la logique de Hoare, qui constitue le fondement de la vérification du programme.

## Scientific computing

* J. H. Wilkinson et C. Reinsch, Linear algebra, volume II of Handbook for Automatic Computation, Springer, 1971 (ISBN 978-0-387-05414-8)
* Gene H. Golub, Charles F. van Loan, Matrix Computations, 3rd edition, Johns Hopkins University Press, 1996 [1983] (ISBN 978-0-8018-5414-9)
* Computational linguistics, T. L. Booth « Probabilistic representation of formal languages » (1969) — « (ibid.) », dans IEEE Conference Record of the 1969 Tenth Annual Symposium on Switching and Automata Theory, p. 74–81
* Kimmo Koskenniemi, Two-level morphology: A general computational model of word-form recognition and production, Department of General Linguistics, University of Helsinki, 1983. La première description publiée de la morphologie de calcul en utilisant des transducteurs finis. (Kaplan et Kay avaient déjà effectué des travaux dans ce domaine et présenté lors d'une conférence, le linguiste Johnson avait remarqué la possibilité en 1972, mais ne l'a pas mise en œuvre.)
* Lawrence R. Rabiner, « A tutorial on hidden Markov models and selected applications in speech recognition », Proceedings of the IEEE, vol. 77, n$^o$ 2,‎ 1989, p. 257–286 (DOI 10.1109/5.18626). Un aperçu des modèles de Markov cachés orientés vers la reconnaissance vocale, décrivant l'algorithme de Viterbi et forward-backward.
* Eric Brill, « Transformation-based error-driven learning and natural language processing: A case study in part-of-speech tagging », Computational Linguistics, vol. 21, n$^o$ 4,‎ 1995, p. 543–566. Décrit un tagger POS maintenant couramment utilisé sur la base de l'apprentissage basé sur la transformation.

## Génie logiciel

* Software engineering: Report of a conference sponsored by the NATO Science Committee, Peter Naur, Brian Randell (eds.), Garmisch, Allemagne, 7–11 octobre 1968, Brussels, Scientific Affairs Division, NATO (1969) 231 pp. (Version en ligne ([PDF])). Conférence des chefs de file dans le domaine des logiciels c. 1968. Le document définit le domaine du génie logiciel.
* A Description of the Model-View-Controller User Interface Paradigm in the Smalltalk-80 System, Glenn E. Krasner, Stephen T. Pope, The Journal of Object Technology, août-septembre 1988 (Version en ligne ([PDF]))
* Go To Statement Considered Harmful, Edsger Dijkstra, Communications of the ACM, 1(3):147–148, mars 1968 (Version en ligne). Ne pas utiliser goto - le début de la programmation structurée.
* On the criteria to be used in decomposing systems into modules, David Parnas, Communications of the ACM, Volume 15, n$^o$ 12 :1053–1058, décembre 1972. (Version en ligne ([PDF])). L'importance de la modularisation et de l'encapsulation.
* Hierarchical Program Structures, Ole-Johan Dahl, Charles Antony Richard Hoare, Structured Programming, Academic Press, Londres et New York, p. 175–220, 1972. Le début de la programmation orientée objet. Cet article a fait valoir que les programmes doivent être décomposés en composants indépendants. Ils ont également fait valoir que les objets doivent avoir des données et des méthodes connexes.
* A technique for software module specification with examples, David Parnas, Comm. ACM 15, 5 (Mai 1972), 330–336. spécification.
* Structured Design, Wayne Stevens, Glenford Myers, et Larry Constantine, IBM Systems Journal, 13 (2), 115–139, 1974. (Version en ligne ([PDF])). Articles portant sur la conception structurée (en), diagramme de flux de données, couplage et sur la cohésion.
* The Emperor's Old Clothes, C.A.R. Hoare, Communications of the ACM, Vol. 24, n$^o$ 2, février 1981, p. 75–83. (Version en ligne ([PDF])). Illustre l'« effet de second système » et l'importance de la simplicité.
* The Mythical Man-Month: Essays on Software Engineering, Frederick Brooks, Addison Wesley Professional, 2e édition, 1995. Lancer plus de gens à la tâche ne sera pas accélérer son achèvement...
* No Silver Bullet: Essence and Accidents of Software Engineering, Frederick. P., Jr. Brooks, « No Silver Bullet: Essence and Accidents of Software Engineering », Computer, vol. 20, n$^o$ 4,‎ avril 1987, p. 10–19 (DOI 10.1109/MC.1987.1663532)
* The Cathedral and the Bazaar, Eric Raymond, First Monday, 3, 3, mars 1998 (Version en ligne (HTML)). Méthodologie open source.
* Design Patterns: Elements of Reusable Object Oriented Software, Erich Gamma, Design Patterns, R. Johnson, J. Vlissides
* Addison-Wesley, Reading, Massachusetts, 1995. Ce livre a été le premier à définir et à lister des modèles de conception.
* Statecharts: A Visual Formalism For Complex Systems, David Harel, D. Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, 8:231—274, 1987 (Version en ligne). Les statecharts sont une méthode de modélisation visuelle. Ils sont une extension de l'automate fini qui pourraient être exponentiellement plus efficace. Par conséquent, les statcharts permettent la modélisation formelle des applications qui étaient trop complexes avant.

## Sécurité
### Systèmes d'anonymat

* David Chaum, Untraceable electronic mail, return addresses, and digital pseudonyms, Communications of the ACM, 4(2):84–88, février 1981.
* Dingledine et Mathewson, Anonymity Loves Company: Usability and the Network Effect, Workshop on the Economics of Information Security (WEIS) 2006

### Cryptographie

* Whitfield Diffie et Martin E. Hellman, New Directions in Cryptography, IEEE Transactions on Information Theory, novembre 1976
* R. L. Rivest, A. Shamir et L. M. Adelman, A Method For Obtaining Digital Signatures And Public-Key Cryptosystems, MIT/LCS/TM-82, 1977
* R. Merkle, Security, Authentication, and Public Key Systems, Thèse, Stanford University, 1979.

### Mots de passe

* Robert Morris et Ken Thompson, Password security: a case history, Communications of the ACM CACM Homepage archive, Volume 22, n$^o$ 11, novembre 1979 Pages 594-597.
* Mazurek et al., Measuring password guessability for an entire university, CCS '13 Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security, Pages 173-186

### Système de Sécurité

* Saltzer et Schroeder, The Protection of Information in Computer Systems, ACM Symposium on Operating System Principles, octobre 1973, (HTML HTML2)
* Karger et Schell, Thirty Years later: Lessons from the Multics Security Evaluation, ACSAC, 2002
* Lamport, Butler, A Note on the Confinement Problem, Communications of the ACM, 16:10 (octobre 1973), p. 613–615.
* Thompson, Reflections on Trusting Trust, Communications of the ACM, 27:8, août 1984
* J.E. Forrester et B.P. Miller, An Empirical Study of the Robustness of Windows NT Applications Using Random Testing, 4th USENIX Windows Systems Symposium, Seattle, août 2000.

### Sécurité Utilisable

* Whitten, Alma, Why Johnny Can't Encrypt: A Usability Evaluation of PGP 5.0, Proceedings of the 8th conference on Usenix Security Symposium, Volume 8, pages 14–28
* Simson Garfinkel et Abhi Shelat, Remembrance of Data Passed, IEEE Security and Privacy, Volume 1, n$^o$ 1, janvier 2003, Page 17-27

## Informatique théorique

* Sujets couverts : informatique théorique, théorie de la complexité , algorithmes, théorie algorithmique de l'information, théorie de l'information et vérification formelle.