Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Some Well-known computer scientists


Published on

Brief presentations of some of the women and men who made the history of computer science

  • Be the first to comment

  • Be the first to like this

Some Well-known computer scientists

  1. 1. SomeWell-knownComputer ScientistsYann-Gaël GuéhéneucDépartement de génie informatique et de génie logicielThis work is licensed under a CreativeCommons Attribution-NonCommercial-ShareAlike 3.0 Unported Licenseyann-gael.gueheneuc@polytmtl.caVersion 1.02013/04/22
  2. 2. Any questions/comments are welcome at2/76Any questions/comments are welcome
  3. 3. Why Is It Important? (1/2)“Those who cannot remember the past arecondemned to repeat it”3/76—By George Santayanain Life of Reason, Reason inCommon Sense, Scribners,1905, page 284
  4. 4. Why Is It Important? (2/2)Pythagoras’ theoremOhm’s law…4/76…You know the Nobel Prizes…… do you know the Turing Awards?
  5. 5. How to Choose? (1/2)Hundreds of women and men made and aremaking the history of computer science– Difficult choice, impossible choice5/76– Inclusion criteria• Historical importance• Historical continuity• Link to software engineering– No exclusion criteria!
  6. 6. How to Choose? (2/2)Suggestions for other computer scientists toappear here– Please send an e-mail to Yann-Gaël Guéhéneuc6/
  7. 7. Some Well-known Computer Scientists1936 Alan Turing1948 Claude Elwood Shannon1950 Grace Murray Hopper1960 John McCarthy1966 Frances E. Allen1972 Dave Parnas1974 Manny Lehman1975 Frederick Brooks1986 Edward Yourdon1987 Barbara Liskov7/761966 Frances E. Allen1967 Dahl et Nygaard1969 Charles A. R. Hoare1970 Edgar F. Codd1987 Barbara Liskov1994 Erich Gamma1997 Grady Booch
  8. 8. Alan TuringAlan Mathison Turing– Born June 23rd, 1912, died June 7th, 1954– Turing machines, undecidability, haltingproblem, computabilityAlan Turing*1912 †19548/76problem, computabilityThe Turing Award is given in his honourIEEE Milestone…–
  9. 9. Alan Turing1928– Hilbert introduced the decision problem9/761931– Gödel give results on the limits of proofs andcomputability
  10. 10. Alan Turing1936– Turing introduce a concept of machines nowknown as “Turing machines”– Turing prove with his machines that the halting10/76– Turing prove with his machines that the haltingproblem is undecidable
  11. 11. Alan TuringHalting problem– First problem proven undecidable– Used to prove that other problems areundecidable by reduction11/76undecidable by reduction
  12. 12. Alan TuringGeneralisation ≠ particular cases– Correctness proofs are posibles but onparticular problems and not automatically in thegeneral case12/76general caseFormal methods ≠ tests– Prove the correctness of a particular algorithm– Prove the presence of errors
  13. 13. Alan Turing1938−1945– Work at Bletchley Park• British Government Code and Cypher School• Five major contributions13/76• Five major contributions– Decode the Enigma code of the German army– Decode the indicator procedure of the Enigma use by theGerman navy– Develop a statistical method to make the “Bombe”more efficient– Develop a procedure to decode theLorenz SZ 40/42 machines– Develop a voice scrambler
  14. 14. Alan Turing1952– Turing test1966– ELIZAJoseph Weizenbaum*1923 †1200814/76
  15. 15. Claude Elwood ShannonClaude Elwood Shannon– Born April 30th, 1916, diedFebruary 24th, 2001– Father of the information theoryClaude Elwood Shannon*1916 †1200115/76– Father of the information theoryNational Medal of Science in the USA in 1966IEEE Medal of Honor in 1966…–
  16. 16. Claude Elwood Shannon1830s– Telegraph – Morse Code16/76
  17. 17. Claude Elwood Shannon1830s– A form of lossless compression17/76
  18. 18. Claude Elwood Shannon1948« The fundamental problem of communication isthat of reproducing at one point, either exactly or18/76that of reproducing at one point, either exactly orapproximately, a message selected at anotherpoint. »—Shannon, in A MathematicalTheory of Communication, 1948
  19. 19. Claude Elwood Shannon1948– Probabilistic theory quantifying the averageinformation content of a message19/76– Entropy– Code theory• Compression• Detection et correction of errors– All electronic “communication”!– Cryptography
  20. 20. Grace Murray HopperGrace Murray Hopper (rear admiral)– Born the 9th of December, 1906, died the1st of January, 1992– Mother of the first compiler, of the termGrace Hopper*1906 †199220/76– Mother of the first compiler, of the term“debugging”, of COBOL and of standardsDefense Distinguished Service Medal in the USAin 1986– Cf.
  21. 21. Grace Murray Hopper1944– WWII is almost over– Computers showed their usefulness21/76• Dehomag D11 (Germany/USA, 1930s):handling of identify cards• Zuse Z3 (Germany, 1941): flutter(dynamic aeroelasticity of wings)• Colossus Mark 1 (Grande Bretagne,1943): decoding of messages• Harvard Mark I (USA, 1944): productionof calculus tables for the Navy
  22. 22. Grace Murray HopperPrinciple of the firstcomputers– Electromechanical orelectromagnetic relays22/76electromagnetic relays– Two active relays makea third relay active• Relays “3” et “6” makerelay “9” active for a sum1947
  23. 23. Grace Murray Hopper1950– Computers become programmable with higher-level languages than microcode or assembly• UNIVAC I: census23/76• UNIVAC I: census• A-0 (Arithmetic Language version 0)• Loader or linker more than a compiler1954– B-0 (Business Language version 0) also knownas FLOW-MATIC
  24. 24. Grace Murray Hopper1959– Conference CODASYL (Conference on DataSystems Languages)– COBOL as successor of FLOW-MATIC24/76– COBOL as successor of FLOW-MATIC– Close to English1970s– Advocated standards tests for programminglanguages, FORTRAN in particular
  25. 25. John McCarthyJohn McCarthy– Born the 4th of September, 1927– Died on the 24 October, 2011– Father of artificial intelligence, LISP, contributor to time-John McCarthy*1927 †201125/76– Father of artificial intelligence, LISP, contributor to time-sharing computing, inventor of “SaaS”ACM Turing Award in 1971National Medal of Science in the USA in 1991– Cf.
  26. 26. John McCarthyArtificial intelligence, 1956– Champion of logic programming– Collaboration with Marvin Minsky26/76Inventor of LISP, 1960– Recursive Functions of SymbolicExpressions and Their Computationby Machine, Part I, 1960– Lambda calculus– Garbage collection
  27. 27. John McCarthyTime-sharing systems– Multiprogramming and multitasking– Most important change of paradigm in computerscience in 1970DEC PDP-1, c. 196027/76science in 1970• Sharing of resources to avoid “waiting computationtime (cycles)”– SaaS• Software as a Service• Architecture/engineering based on services
  28. 28. Frances E. AllenFrances E. Allen– Born on the 4th of August, 1932– Pioneer of optimising compilation, codeoptimisation, and parallelisationFrances E. Allen*193228/76optimisation, and parallelisationAWC Augusta Ada Lovelace Award en 2002ACM Turing Award en 2006– Cf.
  29. 29. Frances E. AllenBefore 1966– Since the 1930s• Programmable computers– Since the 1950s29/76– Since the 1950s• First compilers by Grace Murray Hopper• Programming languages– FORTRAN: first complete compiler– COBOL: first programming language compiled for differentcomputer architectures (UNIVAC II et RCA 501)
  30. 30. Frances E. AllenBefore 1966– In 1955• Context-free grammar invented by Noam Chomsky– In 196630/76– In 1966• LR Parsing invented by Donald Knuth
  31. 31. Frances E. AllenIn 1966– Program Optimization• Use of graphs to describe programs and to allow theiroptimisations31/76In 1970– Control Flow Analysis et A Basis for ProgramOptimization• Intervals for control-flow analysesIn 1974– Interprocedural data flow analysis• Interprocedural analyses of whole programs
  32. 32. Dahl–NygaardOle-Johan Dahl– Born 12 October 1931, †29 June 2002– Co-inventor of the object-oriented paradigmOle-Johan Dahl*1931 †200232/76– ACM Turing Award in 2001– IEEE J. von Neumann in 2002– Cf.– Cf.
  33. 33. Dahl–NygaardKristen Nygaard– Born 27 August 1926, †10 August 2002– Co-inventor of the object-oriented paradigmKristen Nygaard*1926 †200233/76– ACM Turing Award in 2001– IEEE J. von Neumann in 2002– Cf.– Cf.
  34. 34. Dahl–NygaardObject-oriented paradigm– Context• 1961– Algol imperative programming34/76– Algol imperative programming– Classes, objects, encapsulation, inheritance,polymorphism• Simula I• Simula 67
  35. 35. Dahl–NygaardObject-oriented programming– Smalltalk• Xerox Parc, 1970–1983– GUI35/76– GUI– Icons– WYSIWYG– Mouse (cf. Stanford Research Institute)• Dynamic typing• Reflection• Garbage collection
  36. 36. Dahl–NygaardObject-oriented programming– C++• AT&T Bell Labs• Bjarne Stroustrup36/76• Bjarne Stroustrup• 1980• Static typing• Multiple inheritance• Cf.
  37. 37. Dahl–NygaardObject-oriented programming– Oberon• ETH Zurich• Niklaus Wirth37/76• Niklaus Wirth• 1986• Static typing• Garbage collection• Array bounds checking
  38. 38. Charles A. R. HoareSir Charles Antony Richard Hoare– Born January 11th, 1934– Inventor of QuickSortSir Charles Antony Richard Hoare*193438/76– Inventor of the Hoare logic–– ACM Turing Award in 1980– IEEE J. von Neumann in 2011– Cf.
  39. 39. Charles A. R. HoareQuickSort– Context• 1960– In Soviet Union, Hoare works at Moscow State University in39/76– In Soviet Union, Hoare works at Moscow State University inautomatic translation– He must sort words to be translated to map them with wordsalready translated– QuickSort• O(n × log(n)) in average, O(n2) worst case• Works well with a cache
  40. 40. Charles A. R. HoareHoare logic– Context• 1969– Study program correctness40/76– Study program correctness– Original idea sown by Robert Floyd in 1967– Verification of the correctness of a program• Hoare triplet: {P} C {Q}• Pre-condition P, instruction C, post-condition Q• Set of rules for imperative languages…
  41. 41. Edgar F. CoddEdgar Frank “Ted” Codd– Born August 23rd, 1913,died April 18th, 2003– Father of relational algebraEdgar F. Codd*1923 †1200341/76– Father of relational algebraACM Turing Award en 1999–
  42. 42. Edgar F. Codd1960s– Databases become possible• Direct-access storages– No standard data models or query models42/76– No standard data models or query models– Two dominant models• CODASYL, network model– “Manual” traversal• IBM/IMS, hierarchical model– Relations 1:n only(Microsoft Windows Registry)
  43. 43. Edgar F. Codd1970– “A Relational Model of Data for Large SharedData Banks”• Limits of the CODASYL approachLawrence Joseph "Larry" Ellison*194443/76• Limits of the CODASYL approach• Introduction of the concept of tables• Introduction of the concept of relation (keys)– IBM Future Systems includes SEQUEL in 1975– Relational Software Inc. release Oracle in 1979(SEQUEL becomes SQL at the end of the ’70s)
  44. 44. Edgar F. CoddToday– SQL is a standard• ANSI since 1986• ISO since 198744/76• ISO since 1987– Implemented by almost all existing databases– Interoperability• Careful with proprietary extensions• Careful with ambiguities
  45. 45. Edgar F. Codd45/76
  46. 46. Edgar F. CoddNoSQL––
  47. 47. Dave ParnasDave Parnas– Born February 10th, 1941– Father of the criteria to divide a program intomodules in a modular designDave Parnas*194147/76modules in a modular designIEEE Computer Society 60th Anniversary Awardin 2007– Cf.
  48. 48. Dave ParnasModular design– Context• 1972– Procedural and object48/76– Procedural and objectprogramming languages– Flow diagrams– Decomposition ofprograms in modules,classes…
  49. 49. Dave Parnas– Criteria• “[I]t is almost always incorrect to begin thedecomposition of a system into modules on the basisof a flowchart. We propose instead that one begins49/76of a flowchart. We propose instead that one beginswith a list of difficult design decisions or designdecisions which are likely to change. Each moduleis then designed to hide such a decision from theothers”• Information hiding = Encapsulation
  50. 50. Dave Parnas– Rewriting of the criteria in terms of• Cohesion• Coupling50/76• Concepts “invented” by Larry Constantine in 1968and published in 1972 in W. Stevens, G. Myers, L.Constantine, "Structured Design", IBM SystemsJournal, 13 (2), 115-139, 1974.• A module must have a strong cohesion and beweakly coupled to other modules
  51. 51. Manny LehmanMeir M. “Manny” Lehman– Died December 29th, 2010– Father of the laws of software evolutionManny Lehman*1925 †201051/76Stevens Award in 2003– Cf.– Cf.
  52. 52. Manny LehmanLaws of software evolution– Context• 1974– IBM OS/360 et OS/37052/76– IBM OS/360 et OS/370• Types of programs– S: can be formally specified– P: follow an iterative development process– E: are embedded in our environment
  53. 53. Manny Lehman– Eight laws1. Continuing change: E-type systems must be continuallyadapted or they become progressively less satisfactory2. Increasing complexity: As an E-type system evolves itscomplexity increases unless work is done to maintain or53/76complexity increases unless work is done to maintain orreduce it3. Self regulation: E-type system evolution process is selfregulating with distribution of product and process measuresclose to normal4. Conservation of organisational stability: The averageeffective global activity rate in an evolving E-type system isinvariant over product lifetime
  54. 54. Manny Lehman– Eight laws5. Conservation of familiarity: As an E-type system evolves allassociated with it must maintain mastery of its content andbehaviour to achieve satisfactory evolution. The averageincremental growth remains invariant as the system evolves54/76incremental growth remains invariant as the system evolves6. Continuing growth: The functional content of E-type systemsmust be continually increased to maintain user satisfactionover their lifetime7. Declining quality: The quality of E-type systems will appearto be declining unless they are rigorously maintained andadapted to operational environment changes8. Feedback system: E-type evolution processes constitutemulti-level, multi-loop, multi-agent feedback systems and mustbe treated as such to achieve significant improvement overany reasonable base
  55. 55. Frederick BrooksFrederick Brooks– Born April 19th, 1931– Father of Brooks’ LawFrederick Brooks*193155/76– IEEE J. von Neumann Medal in 1993– ACM Turing Award in 1999– Cf.
  56. 56. Frederick BrooksPrinciple of Brooks’ Law– Context• 1956–1964– Manager of the IBM OS/360 development project56/76– Manager of the IBM OS/360 development project– Delays in the delivery– Book• The Mythical Man-Month: Essays on SoftwareEngineering– Principle• Adding manpower to a late software projectmakes it later
  57. 57. Frederick Brooks– Rationale• It takes some time for the people added to aproject to become productive. Brooks calls this the"ramp up" time. New workers must first become57/76"ramp up" time. New workers must first becomeeducated about the work that has preceded them;also integrate with a team composed of multipleengineers who must educate the new worker in theirarea of expertise in the code base, day by day• Communication overheads increase as thenumber of people increases. The number ofdifferent communication channels increases alongwith the square of the number of people
  58. 58. Frederick Brooks– Comments, solutions• Brooks Law applies to projects that are already late• The quantity, quality and role of the people added tothe project also must be taken into consideration58/76the project also must be taken into consideration• Good management and development practices alsohelp to minimize the impact of Brooks Law• Rather than depending on heroes to carry the daywith extraordinary efforts, Wiegers argues that a teamof ordinarily-skilled individuals can repeatedly delivertimely results in the right work environment
  59. 59. Frederick Brooks– Critics“How to quadruple your productivity with an army ofstudent interns”59/76• Tolerate a little crowding• Locate next to a deep pool of hackers• Know who the best people are and only hire them• Pay well• Divide tasks to be as loosely-coupled as possible• Design your intern projects in advance
  60. 60. Edward YourdonEdward Yourdon– Born April 20th, 1944– “Inventor” of seven types of cohesionEdward Yourdon*194460/76– Cf.
  61. 61. Edward YourdonModular design– Context• 1972– Procedural and object61/76– Procedural and objectprogramming languages– Flow diagrams– Decomposition ofprograms in modules,classes…• 1987– Object-orientedprogramming isincreasingly popular
  62. 62. Edward Yourdon– Cohesion criteria1. Accidental: the weakest cohesion in which their isno links between methods or their link is based on auseless criteria62/76useless criteria– Utility classes2. Logic: when methods are linked logically by one ormore common criteria– All classes pertaining to I/O, to user interactions...3. Temporal: when methods must be called within acommon time-frame– A method and the method called in on of its catchstatement, and so on
  63. 63. Edward Yourdon– Cohesion criteria4. Procedural: when methods must be called in aspecific order– One method that check user rights and one method that63/76– One method that check user rights and one method thatopens a file subsequently5. Communicational: when methods process thedame set of data– All classes pertaining to dates...
  64. 64. Edward Yourdon– Cohesion criteria6. Sequential: when methods that process the sameset of data must be called in a specific order– A parser: inputs to one class are the outputs of another64/76– A parser: inputs to one class are the outputs of another7. Functional: highest level of cohesion, when a classor module is dedicated to a unique task– Classes that contribute in implementing somerequirements
  65. 65. Barbara LiskovBarbara Liskov– Born November 7th, 1939– Mother of the Liskov’s substitution principleBarbara Liskov*193965/76– IEEE J. von Neumann Medal in 2004– ACM Turing Award in 2008– Cf.
  66. 66. Barbara LiskovLiskov’s substitution principle– Context• 1987– Object-oriented programming is increasingly popular66/76– Object-oriented programming is increasingly popular– Principle• Let q(x) be a property provable about objects xof type T. Then q(y) should be true for objects yof type S where S is a subtype of T
  67. 67. Barbara Liskov– Principle• Behavioural sub-typing is different and stronger thanthe concept of sub-typing in type theory• In type theory67/76• In type theory– Contravariance of parameters: a parameter of type T canaccept object of type S, where S is a sub-type of T– Covariance of return type: the return type can be “enlarged”from T to S• In addition– Pre-conditions cannot be stronger in a sub-type– Post-conditions cannot be weaker in a sub-type– The sub-type S must preserve the invariants of type T
  68. 68. Barbara Liskov– Implementation in Java• Java < 1.5– Redefinition/* Mother class */ public T foo(String a, String b) {...}68/76/* Daughter class */ public T foo(String a, String b) {...}– Overriding/* Mother class */ public T foo(String a, String b) {...}/* Daughter class */ public T foo(String a, Integer c) {...}• Java > 1.5– Redefinition/* Mother class */ public T foo(String a, String b) {...}/* Daughter class */ public S foo(String a, String b) {...}
  69. 69. Erich GammaErich Gamma– Born in 1961– Father of the software design patternsErich Gamma*196169/76Dahl-Nygaard Prizes in 2006– Cf.– Cf.
  70. 70. Erich GammaSoftware design patterns– Context• 1977 et 1979– Christopher Alexander70/76– Christopher Alexander– A Pattern Language: Towns, Buildings, Construction and theidea of generative patterns– The Timeless Way of Building and the idea of perfection inarchitecture• 1990– Object-oriented programs are becoming mainstream
  71. 71. Erich GammaA Pattern Language: Towns, Buildings, Construction– 253 patterns– Generative grammar– “At the core... is the idea that people should design forthemselves their own houses, streets and communities.71/76themselves their own houses, streets and communities.This idea... comes simply from the observation that most ofthe wonderful places of the world were not made byarchitects but by the people”Design Patterns: Elements of Reusable Object-Oriented Software– 23 patterns– Not a language?– “Dynamic, highly parameterized software is harder tounderstand and build than more static software”
  72. 72. Erich GammaDesign Patterns:Elements of ReusableObject-OrientedSoftware72/76Software– Dahl-Nygaard Prizes à• Ralph Johnson• Richard Helm• Erich Gamma• † John Vlissides
  73. 73. Grady BoochGrady Booch– Born February 27th, 1955– Father of the UML with Jacobson et RumbaughGrady Booch*195573/76Stevens Award in 2003– Cf.
  74. 74. Grady BoochUML– Context74/76
  75. 75. Grady Booch– Three Amigos and their methods• Grady Booch,– Booch Method (design)• Ivar Jacobson75/76• Ivar Jacobson– Object Oriented Software Engineering, OOSE (use cases)• James Rumbaugh– Object Modeling Technique, OMT (analysis)• Rational Software Corporation– UML
  76. 76. To Be ContinuedACM A. M. Turing Award– Cf. Dahl-Nygaard Prize76/76AITO Dahl-Nygaard Prize– J. von Neumann Medal– Cf.