10 Amazing Computer Scientists
If you are not a computer scientist most of these people will, almost certainly, be unknown to you. Sadly the popular drinking game 'name that computer scientist' is, for you, over quickly. This may not seem a big problem but I would wish to argue otherwise. The scientists below have set out the foundations of our digital world. Their work is beautiful and important. It is furthermore, of the highest cultural significance spanning the boundaries of mathematics, engineering, psychology and the natural sciences. It is what we computer scientists aspire to. If you are a computer scientist, feel free to quibble about my choices. You could also try the sober version of 'name that computer scientist': give yourself 1 point if you know the work, 2 if you have heard them speak, 3 if you have met the scientist, and 4 if the scientist knows (or knew) you, finally 5 if you have written a paper together. Here are my 10 amazing computer scientists.
Edsger Dijkstra. A polymath whose contributions include some of the most widely used algorithms, most notably that for determining the shortest path in a graph (a network comprising objects and links between the objects). A contributor of many of the key concepts that allow us to coordinate the work of multiple distributed programs. Known as much for bringing an elegant mathematical style based on reasoning and proof to the development of programs.
Tony Hoare. Developed the logical tools for determining the 'correctness' of programs. Provided formal, mathematically rigorous, ways of representing and understanding concurrent processes (where programs are executing at the same time and interacting with each other) the building blocks of distributed network computing. Noted for combining elegant exposition with a practical focus on the development of industrial programs.
Robin Milner. Developed groundbreaking tools for automating the process of proving complex logical theorems which is critical to reasoning about the properties of programs. To do this it was necessary to develop a new programming language that incorporated mechanisms that allows programmers to eliminate certain classes of common programming errors while preserving flexibility and economy of expression. As if this was not sufficient, he also a developed a theoretical framework for analysing concurrent systems widely used to understand problems in areas as diverse as mobile computing and the life sciences.
Barry Boehm. A pioneer of software engineering whose most notable contribution has been to establish the field of software economics. He developed approaches to cost modelling that underpin a good part of the industrial practice of software engineering. Also contributed important and influential insights into the organisation of the software development process.
Barbara Liskov. Provided some key practical and theoretical tools and methods for distributed programming, specifically contributing to the design of programming languages and techniques for data abstraction that hide the complexity of how data is stored and manipulated so as to make life easier for programmers. She has also worked on fault tolerance, an important property of distributed programs that allows them to continue to function in the presence of partial failure.
Ted Codd. Developed the 'relational model' that provides the mathematical and practical basis for databases, both data management and querying. A work that combines simplicity and broad applicability. A contribution of immense importance that has delivered tools we use on a daily basis.
Judea Pearl. Provided a powerful and broadly generalisable scheme by which probabilistic, that is uncertain, relationships between variables may be represented. This scheme, the 'Bayesian network' is fundamental to the development of algorithms and statistical methods that can solve decision problems under uncertainty and hence underpins much current work on artificial intelligence.
Doug Englebart. A pioneer of human–computer interaction who through the study of 'augmentation' developed many of the user-interface concepts that dominate modern computing. This includes early prototypes of the computer mouse, the graphical user-interface, hypertext and collaborative applications. He showed realisations of these technologies before personal computing was either recognised or practically achievable.
Sally Floyd. A major contributor to the development of key protocols, formats and rules that allow for effective communication over networks. Known best for work on network dynamics and particularly congestion control which is concerned with avoiding problems associated with excessive traffic over restricted network links, an important practical problem for the internet. Has contributed techniques, models and analyses to some of the most critical internet communication standards.
Don Knuth. Contributed to the analysis of algorithms, particularly to the study of their computational complexity which is essential as a basis for understanding the resources that these algorithms might use to address a problem. Famous for his set of books 'The Art of Computer Programming' a compendium of algorithms and of data structures that is oftern referred to as the defining work of computer science. He also developed alongside mathmenatical puzzles and games, an elegant, innovative and influential typographic scheme, TeX, and associated tools.
@profserious scores 22