List of pioneers in computer science
|al-Khwārizmī||The term "algorithm" is derived from the algorism, the technique of performing arithmetic with Hindu-Arabic numerals developed by al-Khwarizmi. Both "algorithm" and "algorism" are derived from the Latinized forms of al-Khwarizmi's name, Algoritmi and Algorismi, respectively. His Compendious Book on Calculation by Completion and Balancing (Arabic: الكتاب المختصر في حساب الجبر والمقابلة al-Kitāb al-mukhtaṣar fī ḥisāb al-jabr wal-muqābala) is a mathematical book written approximately 830 CE. The word Algebra is also derived from the title of his book and it is believed to be the first book on the subject. The notion of zero is found for the first time in this book. However, it is believed he had learned the notion of zero from Indians through his travels to India. With zero, he was able to invent the systematic Indo-Arabic number (decimal) system. The word algorithm was given in Europe to a method he called "Attarigolkharazmi" (Akharazmi's Method) for taking square root of whole numbers in decimal system. The method is based on first identity ((a+b)^2 = a^2 + b^2, where a= 10^n, n>1). The word "method" was dropped in time and the word algorithm referred to this method of taking square root. As more elaborate ways of doing complex things, in a mechanized way, through mathematical reasoning were discovered/invented, they were all called algorithms. Certain algorithms, such as deriving the greatest common divisor existed way before Alkharazmi (Greek time). However, Europeans were so impressed by Kharazmi's method that his name replaced the word "method".||0830~|
|John Atanasoff||Built the first electronic digital computer, the Atanasoff–Berry Computer, though it was neither programmable nor Turing-complete.||1939|
|Charles Babbage||Originated the concept of a programmable general-purpose computer. Designed the Analytical Engine and built a prototype for a less powerful mechanical calculator.|| 1822|
|John Backus||Invented FORTRAN (Formula Translation), the first practical high-level programming language, and he formulated the Backus–Naur form that described the formal language syntax.|| 1954|
|Jean Bartik||One of the first computer programmers, on ENIAC (1946), an early Vacuum tube computer back when "programming" involved using cables, dials, and switches to physically rewire the machine. Worked with John Mauchly toward BINAC (1949), EDVAC (1949), UNIVAC (1951) to develop early "Stored program" computers.||1946|
|Tim Berners-Lee||Invented worldwide web. With Robert Cailliau, sent first HTTP communication between client and server.|| 1989|
|George Boole||Formalized Boolean algebra, the basis for digital logic and computer science.|| 1847|
|Per Brinch Hansen||Developed the RC 4000 multiprogramming system which introduced the concept of an operating system kernel and the separation of policy and mechanism, effectively the first microkernel architecture. Co-developed the monitor with Tony Hoare, and created the first monitor implementation. Implemented the first form of remote procedure call in the RC 4000, and was first to propose remote procedure calls as a structuring concept for distributed computing.||1969
|Nikolay Brusentsov||Built ternary computer Setun.||1958|
|Vannevar Bush||Analogue computing pioneer. Originator of the Memex concept, which led to the development of Hypertext.||1930|
|David Caminer||With John Pinkerton, developed the LEO computer the first business computer, for J. Lyons and Co||1951|
|Vint Cerf||With Bob Kahn, designed the Transmission Control Protocol and Internet Protocol (TCP/IP), the primary data communication protocols of the Internet and other computer networks.||1978|
|Noam Chomsky||Made contributions to computer science with his work in Linguistics. He developed Chomsky hierarchy, a discovery which has directly impacted Programming language theory and other branches of computer science.||1956|
|Alonzo Church||Founded contributions to theoretical computer science, specifically for the development of the lambda calculus and the discovery of the undecidability problem within it.||1936|
|Wesley A. Clark||Designed LINC, the first functional computer scaled down and priced for the individual user. Put in service in 1963, many of its features are seen as prototypes of what were to be essential elements of personal computers.||1962|
|Edmund M. Clarke||Developed model checking and formal verification of software and hardware together with E. Allen Emerson.||1981|
|Edgar F. Codd||Proposed and formalized the relational model of data management, the theoretical basis of relational databases.||1970|
|Stephen Cook||Formalized the notion of NP-completeness, inspiring a great deal of research in computational complexity theory.||1971|
|James Cooley||With John W. Tukey, created the Fast Fourier Transform.||1965|
|Ole-Johan Dahl||With Kristen Nygaard, invented the proto-object oriented language SIMULA.||1962|
|Edsger Dijkstra||Made advances in algorithms, pioneered and coined the term structured programming, invented the semaphore, and famously suggested that the GOTO statement should be considered harmful.||1968|
|J. Presper Eckert||With John Mauchly, designed and built the ENIAC, the first modern (all electronic, Turing-complete) computer, and the UNIVAC I, the first commercially available computer.|| 1943|
|E. Allen Emerson||Developed model checking and formal verification of software and hardware together with Edmund M. Clarke.||1981|
|Douglas Engelbart||Best known for inventing the computer mouse (in a joint effort with Bill English); as a pioneer of human-computer interaction whose Augment team developed hypertext, networked computers, and precursors to GUIs.||1963|
|Tommy Flowers||Designed and built the Mark 1 and the ten improved Mark 2 Colossus computers, the world's first programmable, digital, electronic, computing devices.||1943|
|Gottlob Frege||Developed first-order predicate calculus, which was a crucial precursor requirement to developing computation theory.||1879|
|Seymour Ginsburg||Proved "don't-care" circuit minimization does not necessarily yield optimal results, proved that the ALGOL programming language is context-free (thus linking formal language theory to the problem of compiler writing), and invented AFL Theory.|| 1958|
|Kurt Gödel||Proved that Peano axiomatized arithmetic could not be both logically consistent and complete in first-order predicate calculus. Church, Kleene, and Turing developed the foundations of computation theory based on corollaries to Gödel's work.||1931|
|Lois Haibt||Was a member of the ten person team that invented Fortran and among the first women to play a crucial role in the development of computer science.||1954|
|Margaret Hamilton||Credited with coining the phrase "Software engineering" and developed the concepts of asynchronous software, priority scheduling, end-to-end testing, and human-in-the-loop decision capability, such as priority displays which then became the foundation for ultra reliable software design.||1971|
|C.A.R. Hoare||Developed the formal language Communicating Sequential Processes (CSP) and Quicksort.|| 1960|
|Herman Hollerith||Widely regarded as the father of modern machine data processing. His invention of the punched card evaluating machine marks the beginning of the era of automatic data processing systems.||1889|
|Grace Hopper||Pioneered work on the necessity for high-level programming languages, which she termed automatic programming, and wrote the A-O compiler, which heavily influenced the COBOL language.||1952|
|Cuthbert Hurd||Helped the International Business Machines Corporation develop its first general-purpose computer, the IBM 701.||1952|
|Kenneth E. Iverson||Assisted in establishing the first graduate course in computer science (at Harvard) and taught that course; invented the APL programming language and made contribution to interactive computing.||1954; 1962|
|Joseph Marie Jacquard||Built and demonstrated the Jacquard loom, a programmable mechanized loom controlled by punch cards.||1801|
|Maurice Karnaugh||Inventor of the Karnaugh map, used for logic function minimization.|| 1953|
|Jacek Karpinski||Developed the first differential analyzer that used transistors, and developed one of the first machine learning algorithms for character and image recognition. Also was the inventor of one of the first minicomputers, the K-202.||1973|
|Alan Kay||Pioneered many of the ideas at the root of object-oriented programming languages, led the team that developed Smalltalk, and made fundamental contributions to personal computing.||1970~|
|Stephen Cole Kleene||Pioneered work with Alonzo Church on the Lambda Calculus that first laid down the foundations of computation theory.||1936|
|Donald Knuth||Wrote The Art of Computer Programming and created TeX. Coined the term "analysis of algorithms" and made major contributions to that field, including popularizing Big O notation.|| 1968|
|Leslie Lamport|| Formulated algorithms to solve many fundamental problems in distributed systems (e.g. the bakery algorithm).
Developed the concept of a logical clock, enabling synchronization between distributed entities based on the events through which they communicate. Created LaTeX.
|Sergei Alekseyevich Lebedev||Independently designed the first electronic computer in the Soviet Union, MESM, in Kiev, Ukraine.||1951|
|Gottfried Leibniz||Made advances in symbolic logic, such as the Calculus ratiocinator, that were heavily influential on Gottlob Frege. Made developments in first-order predicate calculus that were crucial for the theoretical foundations of computer science.||1670~|
|J. C. R. Licklider||Began the investigation of human-computer interaction, leading to many advances in computer interfaces as well as in cybernetics and artificial intelligence.||1960|
|Ramon Llull||Designed multiple symbolic representations machines, and pioneered notions of symbolic representation and manipulation to produce knowledge—both of which were major influences on Leibniz.||1300~|
|Ada Lovelace||Began the study of scientific computation, analyzing Babbage's work in her Sketch of the Analytical Engine, and was the namesake for the Ada programming language.||1843|
|John Mauchly||With J. Presper Eckert, designed and built the ENIAC, the first modern (all electronic, Turing-complete) computer, and the UNIVAC I, the first commercially available computer. Also worked on BINAC(1949), EDVAC(1949), UNIVAC(1951) with Grace Hopper and Jean Bartik, to develop early "Stored program" computers.|| 1943|
|John McCarthy||Invented LISP, a functional programming language.||1955|
|Marvin Minsky||Co-founder of Artificial Intelligence Lab at Massachusetts Institute of Technology, author of several texts on AI and philosophy.||1963|
|Peter Naur||Edited the ALGOL 60 Revised Report, introducing Backus-Naur form||1960|
|Max Newman||Instigated the production of the Colossus computers at Bletchley Park. After the war he established the Computing Machine Laboratory at the University of Manchester where the world's first Stored-program computer, the Manchester Small-Scale Experimental Machine was invented.||1943|
|John von Neumann||Formulated the von Neumann architecture upon which most modern computers are based.||1945|
|Kristen Nygaard||With Ole-Johan Dahl, invented the proto-object oriented language SIMULA.||1962|
|Blaise Pascal||Invented the mechanical calculator.||1642|
|Emil L. Post||Developed the Post machine as a model of computation, independently of Turing. Known also for developing truth tables, the Post correspondence problem used in recursion theory as well as proving what is known as Post's theorem.||1936|
|Dennis Ritchie||With Ken Thompson, pioneered the C programming language and the Unix computer operating system at Bell Labs.||1967|
|Saul Rosen||Designed the software of the first transistor-based computer. Also influenced the ALGOL programming language.||1958–1960|
|Bertrand Russell||Made contributions to computer science with his work on Mathematical logic (example: Truth function). Introduced the notion of Type theory. He also introduced Type system (along with Alfred North Whitehead) in his work, Principia Mathematica.||1910|
|Gerard Salton||A pioneer of automatic information retrieval, who proposed the vector space model and the inverted index.||1975|
|Claude Shannon||Founded information theory and practical digital circuit design.|| 1937|
|Herbert A. Simon||A political scientist and economist who pioneered artificial intelligence. Co-creator of the Logic Theory Machine and the General Problem Solver programs.|| 1956|
|Ivan Sutherland||Author of Sketchpad, the ancestor of modern computer-aided drafting (CAD) programs and one of the early examples of object-oriented programming.||1963|
|John W. Tukey||With James Cooley, created the Fast Fourier Transform.||1965|
|Alan Turing||Made several founding contributions to computer science, including the Turing machine computational model, the conceiving of the stored program concept and the designing of the high-speed ACE design. Widely considered as the father of Computer Science and Artificial Intelligence.||1936|
|Willis Ware||Co-designer of JOHNNIAC. Chaired committee that developed the Code of Fair Information Practice and led to the Privacy Act of 1974. Vice-chair of the Privacy Protection Study Commission.|| 1955|
|Adriaan van Wijngaarden||Developer of the W-grammar first used in the definition of ALGOL 68||1968|
|Maurice Wilkes||Built the first practical stored program computer (EDSAC) to be completed and for being credited with the ideas of several high-level programming language constructs.||1949|
|Sophie Wilson||Wrote BBC Basic programming language. Also designed the ARM architecture and Firepath processors|| 1981|
|Niklaus Wirth||Designed the Pascal, Modula-2 and Oberon programming languages.|| 1970|
|Konrad Zuse|| Built the first digital freely programmable computer, the Z1.
Built the first functional tape-stored program-controlled computer, the Z3. The Z3 was proven to be Turing-complete in 1998.
Produced the world's first commercial computer, the Z4.
Designed the first high-level programming language, Plankalkül.
~ Item marks with a tilde are circa dates
- Mario Tokoro, ed. (2010). "9". e: From Understanding Principles to Solving Problems. pp. 223–224. ISBN 978-1-60750-468-9.
- Cristopher Moore, Stephan Mertens (2011). The Nature of Computation. Oxford University Press. p. 36. ISBN 978-0-19-162080-5.
- A. P. Ershov, Donald Ervin Knuth, ed. (1981). Algorithms in modern mathematics and computer science: proceedings, Urgench, Uzbek SSR, September 16-22, 1979. Springer. ISBN 978-3-540-11157-3.
- "Per Brinch Hansen • IEEE Computer Society". www.computer.org. Retrieved 2015-12-15.
- Brinch Hansen, Per (April 1993). "Monitors and Concurrent Pascal: a personal history" (PDF). 2nd ACM Conference on the History of Programming Languages.
- Brinch Hansen, Per (November 1978). "Distributed processes: a concurrent programming concept" (PDF). Communications of the ACM.