SlideShare a Scribd company logo
1 of 79
Download to read offline
Yann-Gaël Guéhéneuc
This work is licensed under a Creative
Commons Attribution-NonCommercial-
ShareAlike 3.0 Unported License
Some
Well-known
Computer Scientists
yann-gael.gueheneuc@concordia.ca
Version 1.0.2
2019/02/20
2/79
Any questions/comments are welcome at
yann-gael.gueheneuc@concordia.ca
3/79
Why Is It Important? (1/2)
“Those who cannot remember the past are
condemned to repeat it”
—By George Santayana
in Life of Reason, Reason in
Common Sense, Scribner's,
1905, page 284
4/79
Why Is It Important? (2/2)
 Pythagoras’ theorem
 Ohm’s law
 …
 You know the Nobel Prizes…
… do you know the Turing Awards?
5/79
How to Choose? (1/2)
 Hundreds of women and men made and are
making the history of computer science
– Difficult choice, impossible choice
– Inclusion criteria
• Historical importance
• Historical continuity
• Link to software engineering
– No exclusion criteria!
6/79
How to Choose? (2/2)
 Suggestions for other computer scientists to
appear here
– Please send an e-mail to Yann-Gaël Guéhéneuc
yann-gael.gueheneuc@concordia.ca
7/79
Some Well-known Computer Scientists
1936 Alan Turing
1948 Claude Elwood Shannon
1950 Grace Murray Hopper
1960 John McCarthy
1966 Frances E. Allen
1967 Dahl et Nygaard
1969 Charles A. R. Hoare
1970 Edgar F. Codd
1972 Dave Parnas
1974 Manny Lehman
1975 Frederick Brooks
1986 Edward Yourdon
1987 Barbara Liskov
1994 Erich Gamma
1997 Grady Booch
2001 Butler Lampson
8/79
Alan Turing
 Alan Mathison Turing
– Born June 23rd, 1912, died June 7th, 1954
– Turing machines, undecidability, halting
problem, computability
The Turing Award is given in his honour
IEEE Milestone
…
– http://en.wikipedia.org/wiki/Alan_Turing
Alan Turing
*1912 †1954
9/79
Alan Turing
 1928
– Hilbert introduced the decision problem
 1931
– Gödel give results on the limits of proofs and
computability
10/79
Alan Turing
 1936
– “On computable
numbers with an
application to the
entscheidungsproblem”
• Turing introduces a
concept of machines now
known as “Turing
machines”
• Turing proves with his
machines that the halting
problem is undecidable
11/79
Alan Turing
 Halting problem
– First problem proven undecidable
– Used to prove that other problems are
undecidable by reduction
12/79
Alan Turing
 Generalisation particular cases
– Correctness proofs are posibles but on
particular problems and not automatically in the
general case
 Formal methods  tests
– Prove the correctness of a particular algorithm
– Prove the presence of errors
13/79
Alan Turing
 19381945
– Work at Bletchley Park
• British Government Code and Cypher School
• Five major contributions
– Decode the Enigma code of the German army
– Decode the indicator procedure of the Enigma use by the
German navy
– Develop a statistical method to make the “Bombe”
more efficient
– Develop a procedure to decode the
Lorenz SZ 40/42 machines
– Develop a voice scrambler
14/79
Alan Turing
 1952
– Turing test
 1966
– ELIZA
Joseph Weizenbaum
*1923 †12008
15/79
Alan Turing
 Chapter 10 is all about
undecidability
– Proof by contradiction
– ChurchTuring thesis
– Consequences
• Algorithms
• Humans
16/79
Claude Elwood Shannon
 Claude Elwood Shannon
– Born April 30th, 1916, died
February 24th, 2001
– Father of the information theory
National Medal of Science in the USA in 1966
IEEE Medal of Honor in 1966
…
– en.wikipedia.org/wiki/Claude_Shannon
Claude Elwood Shannon
*1916 †12001
17/79
Claude Elwood Shannon
 1830s
– Telegraph – Morse Code
18/79
Claude Elwood Shannon
 1830s
– A form of lossless compression
19/79
Claude Elwood Shannon
 1948
« The fundamental problem of communication is
that of reproducing at one point, either exactly or
approximately, a message selected at another
point. »
—Shannon, in A Mathematical
Theory of Communication, 1948
20/79
Claude Elwood Shannon
 1948
– Probabilistic theory quantifying the average
information content of a message
– Entropy
– Code theory
• Compression
• Detection and correction of errors
– All electronic “communication”!
– Cryptography
21/79
Grace Murray Hopper
 Grace Murray Hopper (rear admiral)
– Born the 9th of December, 1906, died the
1st of January, 1992
– Mother of the first compiler, of the term
“debugging”, of COBOL and of standards
Defense Distinguished Service Medal in the USA
in 1986
– Cf. http://en.wikipedia.org/wiki/Grace_Hopper
Grace Hopper
*1906 †1992
22/79
Grace Murray Hopper
 1944
– WWII is almost over
– Computers showed their usefulness
• 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): production
of calculus tables for the Navy
23/79
Grace Murray Hopper
 Principle of the first
computers
– Electromechanical or
electromagnetic relays
– Two active relays make
a third relay active
• Relays “3” et “6” make
relay “9” active for a sum
1947
24/79
Grace Murray Hopper
 1950
– Computers become programmable with higher-
level languages than microcode or assembly
• UNIVAC I: census
• A-0 (Arithmetic Language version 0)
• Loader or linker more than a compiler
 1954
– B-0 (Business Language version 0) also known
as FLOW-MATIC
25/79
Grace Murray Hopper
 1959
– Conference CODASYL (Conference on Data
Systems Languages)
– COBOL as successor of FLOW-MATIC
– Close to English
 1970s
– Advocated standards tests for programming
languages, FORTRAN in particular
26/79
John McCarthy
 John McCarthy
– Born the 4th of September, 1927
– Died on the 24 October, 2011
– Father of artificial intelligence, LISP, contributor to time-
sharing computing, inventor of “SaaS”
ACM Turing Award in 1971
National Medal of Science in the USA in 1991
– Cf. http://en.wikipedia.org/wiki/John_McCarthy_(computer_scientist)
John McCarthy
*1927 †2011
27/79
John McCarthy
 Artificial intelligence, 1956
– Champion of logic programming
– Collaboration with Marvin Minsky
 Inventor of LISP, 1960
– Recursive Functions of Symbolic
Expressions and Their Computation
by Machine, Part I, 1960
– Lambda calculus
– Garbage collection
28/79
John McCarthy
 Time-sharing systems
– Multiprogramming and multitasking
– Most important change of paradigm in computer
science in 1970
• Sharing of resources to avoid “waiting computation
time (cycles)”
– SaaS
• Software as a Service
• Architecture/engineering based on services
DEC PDP-1, c. 1960
29/79
Frances E. Allen
 Frances E. Allen
– Born on the 4th of August, 1932
– Pioneer of optimising compilation, code
optimisation, and parallelisation
AWC Augusta Ada Lovelace Award in 2002
ACM Turing Award in 2006
– Cf. http://en.wikipedia.org/wiki/Frances_E._Allen
Frances E. Allen
*1932
30/79
Frances E. Allen
 Before 1966
– Since the 1930s
• Programmable computers
– Since the 1950s
• First compilers by Grace Murray Hopper
• Programming languages
– FORTRAN: first complete compiler
– COBOL: first programming language compiled for different
computer architectures (UNIVAC II et RCA 501)
31/79
Frances E. Allen
 Before 1966
– In 1955
• Context-free grammar invented by Noam Chomsky
– In 1966
• LR Parsing invented by Donald Knuth
32/79
Frances E. Allen
 In 1966
– Program Optimization
• Use of graphs to describe programs and to allow their
optimisations
 In 1970
– Control Flow Analysis et A Basis for Program
Optimization
• Intervals for control-flow analyses
 In 1974
– Interprocedural data flow analysis
• Interprocedural analyses of whole programs
33/79
Dahl–Nygaard
 Ole-Johan Dahl
– Born 12 October 1931, †29 June 2002
– Co-inventor of the object-oriented paradigm
– ACM Turing Award in 2001
– IEEE J. von Neumann in 2002
– Cf. http://www.olejohandahl.info/
– Cf. http://en.wikipedia.org/wiki/Ole-Johan_Dahl
Ole-Johan Dahl
*1931 †2002
34/79
Dahl–Nygaard
 Kristen Nygaard
– Born 27 August 1926, †10 August 2002
– Co-inventor of the object-oriented paradigm
– ACM Turing Award in 2001
– IEEE J. von Neumann in 2002
– Cf. http://www.ifi.uio.no/in_memoriam_kristen/
– Cf. http://en.wikipedia.org/wiki/Kristen_Nygaard
Kristen Nygaard
*1926 †2002
35/79
Dahl–Nygaard
 Object-oriented paradigm
– Context
• 1961
– Algol imperative programming
– Classes, objects, encapsulation, inheritance,
polymorphism
• Simula I
• Simula 67
36/79
Dahl–Nygaard
 Object-oriented programming
– Smalltalk
• Xerox Parc, 1970–1983
– GUI
– Icons
– WYSIWYG
– Mouse (cf. Stanford Research Institute)
• Dynamic typing
• Reflection
• Garbage collection
37/79
Dahl–Nygaard
 Object-oriented programming
– C++
• AT&T Bell Labs
• Bjarne Stroustrup
• 1980
• Static typing
• Multiple inheritance
• Cf. http://www.approximity.com/ruby/
Comparison_rb_st_m_java.html
38/79
Dahl–Nygaard
 Object-oriented programming
– Oberon
• ETH Zurich
• Niklaus Wirth
• 1986
• Static typing
• Garbage collection
• Array bounds checking
39/79
Charles A. R. Hoare
 Sir Charles Antony Richard Hoare
– Born January 11th, 1934
– Inventor of QuickSort
– Inventor of the Hoare logic
–
– ACM Turing Award in 1980
– IEEE J. von Neumann in 2011
– Cf. http://en.wikipedia.org/wiki/C._A._R._Hoare
Sir Charles Antony Richard Hoare
*1934
40/79
Charles A. R. Hoare
 QuickSort
– Context
• 1960
– In Soviet Union, Hoare works at Moscow State University in
automatic translation
– He must sort words to be translated to map them with words
already translated
– QuickSort
• O(n  log(n)) in average, O(n2) worst case
• Works well with a cache
41/79
Charles A. R. Hoare
 Hoare logic
– Context
• 1969
– 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…
42/79
Edgar F. Codd
 Edgar Frank “Ted” Codd
– Born August 23rd, 1913,
died April 18th, 2003
– Father of relational algebra
ACM Turing Award in 1999
– http://en.wikipedia.org/wiki/Edgar_F._Codd
Edgar F. Codd
*1923 †12003
43/79
Edgar F. Codd
 1960s
– Databases become possible
• Direct-access storages
– 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)
44/79
Edgar F. Codd
 1970
– “A Relational Model of Data for Large Shared
Data Banks”
• 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)
Lawrence Joseph "Larry" Ellison
*1944
45/79
Edgar F. Codd
 Today
– SQL is a standard
• ANSI since 1986
• ISO since 1987
– Implemented by almost all existing databases
– Interoperability
• Careful with proprietary extensions
• Careful with ambiguities
46/79
Edgar F. Codd
47/79
Edgar F. Codd
 NoSQL
– http://nosql-database.org/
– http://www.10gen.com/nosql
48/79
Dave Parnas
 Dave Parnas
– Born February 10th, 1941
– Father of the criteria to divide a program into
modules in a modular design
IEEE Computer Society 60th Anniversary Award
in 2007
– Cf. http://en.wikipedia.org/wiki/David_Parnas
Dave Parnas
*1941
49/79
Dave Parnas
 Modular design
– Context
• 1972
– Procedural and object
programming languages
– Flow diagrams
– Decomposition of
programs in modules,
classes…
50/79
Dave Parnas
– Criteria
• “[I]t is almost always incorrect to begin the
decomposition of a system into modules on the basis
of a flowchart. We propose instead that one begins
with a list of difficult design decisions or design
decisions which are likely to change. Each module
is then designed to hide such a decision from the
others”
• Information hiding = Encapsulation
51/79
Dave Parnas
– Rewriting of the criteria in terms of
• Cohesion
• Coupling
• Concepts “invented” by Larry Constantine in 1968
and published in 1972 in W. Stevens, G. Myers, L.
Constantine, "Structured Design", IBM Systems
Journal, 13 (2), 115-139, 1974.
• A module must have a strong cohesion and be
weakly coupled to other modules
52/79
Manny Lehman
 Meir M. “Manny” Lehman
– Died December 29th, 2010
– Father of the laws of software evolution
Stevens Award in 2003
– Cf. http://www.doc.ic.ac.uk/news/archive/story/
manny-lehman
– Cf. http://www.ieeeghn.org/wiki/index.php/Oral-
History:Meir_Lehman
Manny Lehman
*1925 †2010
53/79
Manny Lehman
 Laws of software evolution
– Context
• 1974
– 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
54/79
Manny Lehman
– Eight laws
1. Continuing change: E-type systems must be continually
adapted or they become progressively less satisfactory
2. Increasing complexity: As an E-type system evolves its
complexity increases unless work is done to maintain or
reduce it
3. Self regulation: E-type system evolution process is self
regulating with distribution of product and process measures
close to normal
4. Conservation of organisational stability: The average
effective global activity rate in an evolving E-type system is
invariant over product lifetime
55/79
Manny Lehman
– Eight laws
5. Conservation of familiarity: As an E-type system evolves all
associated with it must maintain mastery of its content and
behaviour to achieve satisfactory evolution. The average
incremental growth remains invariant as the system evolves
6. Continuing growth: The functional content of E-type systems
must be continually increased to maintain user satisfaction
over their lifetime
7. Declining quality: The quality of E-type systems will appear
to be declining unless they are rigorously maintained and
adapted to operational environment changes
8. Feedback system: E-type evolution processes constitute
multi-level, multi-loop, multi-agent feedback systems and must
be treated as such to achieve significant improvement over
any reasonable base
56/79
Frederick Brooks
 Frederick Brooks
– Born April 19th, 1931
– Father of Brooks’ Law
– IEEE J. von Neumann Medal in 1993
– ACM Turing Award in 1999
– Cf. http://en.wikipedia.org/wiki/Fred_Brooks
Frederick Brooks
*1931
57/79
Frederick Brooks
 Principle of Brooks’ Law
– Context
• 1956–1964
– Manager of the IBM OS/360 development project
– Delays in the delivery
– Book
• The Mythical Man-Month: Essays on Software
Engineering
– Principle
• Adding manpower to a late software project
makes it later
58/79
Frederick Brooks
– Rationale
• It takes some time for the people added to a
project to become productive. Brooks calls this the
"ramp up" time. New workers must first become
educated about the work that has preceded them;
also integrate with a team composed of multiple
engineers who must educate the new worker in their
area of expertise in the code base, day by day
• Communication overheads increase as the
number of people increases. The number of
different communication channels increases along
with the square of the number of people
59/79
Frederick Brooks
– Comments, solutions
• Brooks' Law applies to projects that are already late
• The quantity, quality and role of the people added to
the project also must be taken into consideration
• Good management and development practices also
help to minimize the impact of Brooks' Law
• Rather than depending on heroes to carry the day
with extraordinary efforts, Wiegers argues that a team
of ordinarily-skilled individuals can repeatedly deliver
timely results in the right work environment
60/79
Frederick Brooks
– Critics
“How to quadruple your productivity with an army of
student interns”
• 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
61/79
Edward Yourdon
 Edward Yourdon
– Born April 20th, 1944
– “Inventor” of seven types of cohesion
– Cf. http://en.wikipedia.org/wiki/Edward_Yourdon
Edward Yourdon
*1944
62/79
Edward Yourdon
 Modular design
– Context
• 1972
– Procedural and object
programming languages
– Flow diagrams
– Decomposition of
programs in modules,
classes…
• 1987
– Object-oriented
programming is
increasingly popular
63/79
Edward Yourdon
– Cohesion criteria
1. Accidental: the weakest cohesion in which their is
no links between methods or their link is based on a
useless criteria
– Utility classes
2. Logic: when methods are linked logically by one or
more common criteria
– All classes pertaining to I/O, to user interactions...
3. Temporal: when methods must be called within a
common time-frame
– A method and the method called in on of its catch
statement, and so on
64/79
Edward Yourdon
– Cohesion criteria
4. Procedural: when methods must be called in a
specific order
– One method that check user rights and one method that
opens a file subsequently
5. Communicational: when methods process the
dame set of data
– All classes pertaining to dates...
65/79
Edward Yourdon
– Cohesion criteria
6. Sequential: when methods that process the same
set of data must be called in a specific order
– A parser: inputs to one class are the outputs of another
7. Functional: highest level of cohesion, when a class
or module is dedicated to a unique task
– Classes that contribute in implementing some
requirements
66/79
Barbara Liskov
 Barbara Liskov
– Born November 7th, 1939
– Mother of the Liskov’s substitution principle
– IEEE J. von Neumann Medal in 2004
– ACM Turing Award in 2008
– Cf. http://en.wikipedia.org/wiki/
Liskov_substitution_principle
Barbara Liskov
*1939
67/79
Barbara Liskov
 Liskov’s substitution principle
– Context
• 1987
– Object-oriented programming is increasingly popular
– Principle
• Let q(x) be a property provable about objects x
of type T. Then q(y) should be true for objects y
of type S where S is a subtype of T
68/79
Barbara Liskov
– Principle
• Behavioural sub-typing is different and stronger than
the concept of sub-typing in type theory
• In type theory
– Contravariance of parameters: a parameter of type T can
accept 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
69/79
Barbara Liskov
– Implementation in Java
• Java < 1.5
– Redefinition
/* Mother class */ public T foo(String a, String b) {...}
/* 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) {...}
70/79
Erich Gamma
 Erich Gamma
– Born in 1961
– Father of the software design patterns
Dahl-Nygaard Prizes in 2006
– Cf. http://en.wikipedia.org/wiki/Erich_Gamma
– Cf. http://c2.com/cgi/wiki?ErichGamma
Erich Gamma
*1961
71/79
Erich Gamma
 Software design patterns
– Context
• 1977 et 1979
– Christopher Alexander
– A Pattern Language: Towns, Buildings, Construction and the
idea of generative patterns
– The Timeless Way of Building and the idea of perfection in
architecture
• 1990
– Object-oriented programs are becoming mainstream
72/79
Erich Gamma
 A Pattern Language: Towns, Buildings, Construction
– 253 patterns
– Generative grammar
– “At the core... is the idea that people should design for
themselves their own houses, streets and communities.
This idea... comes simply from the observation that most of
the wonderful places of the world were not made by
architects but by the people”
 Design Patterns: Elements of Reusable Object-
Oriented Software
– 23 patterns
– Not a language?
– “Dynamic, highly parameterized software is harder to
understand and build than more static software”
73/79
Erich Gamma
 Design Patterns:
Elements of Reusable
Object-Oriented
Software
– Dahl-Nygaard Prizes to
• Ralph Johnson
• Richard Helm
• Erich Gamma
• † John Vlissides
74/79
Grady Booch
 Grady Booch
– Born February 27th, 1955
– Father of the UML with Jacobson and Rumbaugh
Stevens Award in 2003
– Cf. http://en.wikipedia.org/wiki/Grady_Booch
Grady Booch
*1955
75/79
Grady Booch
 UML
– Context
76/79
Grady Booch
– Three Amigos and their methods
• Grady Booch,
– Booch Method (design)
• Ivar Jacobson
– Object Oriented Software Engineering, OOSE (use cases)
• James Rumbaugh
– Object Modeling Technique, OMT (analysis)
• Rational Software Corporation
– UML
77/79
Butler Lampson
 Butler Lampson
– Born December 23, 1943
– Founding members of Xerox Parc
– IEEE J. von Neumann Medal in 2001
– ACM Turing Award in 1992
– Cf. https://en.wikipedia.org/wiki/Butler_Lampson
78/79
Butler Lampson
 Wildflower general blueprint
 Laser printer, two-phase commit protocols,
Bravo, WYSIWYG text formatting programs,
Ethernet, and Euclid
 “Any problem in computer science can be
solved with another level of indirection”
– Attributed to David Wheeler in Lampson’s Turing
Award Lecture in 1993
79/79
To Be Continued
 ACM A. M. Turing Award
– Cf. http://awards.acm.org/homepage.cfm?
awd=140
 AITO Dahl-Nygaard Prize
– http://www.aito.org/Dahl-Nygaard/
 IEEE J. von Neumann Medal
– Cf. http://www.ieee.org/about/awards/bios/
vonneumann_recipients.html

More Related Content

Similar to Well-known Computer Scientists v1.0.2

med122 brief history of the computer lecture
med122 brief history of the computer lecturemed122 brief history of the computer lecture
med122 brief history of the computer lectureRob Jewitt
 
Art/Science Interaction - Case study: Silicon Valley
 Art/Science Interaction - Case study: Silicon Valley Art/Science Interaction - Case study: Silicon Valley
Art/Science Interaction - Case study: Silicon Valleypiero scaruffi
 
Week 2 - Introduction to Computers II.pptx
Week 2 - Introduction to Computers II.pptxWeek 2 - Introduction to Computers II.pptx
Week 2 - Introduction to Computers II.pptxKwadjoOwusuAnsahQuar
 
The Evolution Of Computer
The Evolution Of ComputerThe Evolution Of Computer
The Evolution Of ComputerShravan Kumar
 
The First Billion Android Activations
The First Billion Android ActivationsThe First Billion Android Activations
The First Billion Android ActivationsDavid Evans
 
History of computer lecture notes
History of computer lecture notesHistory of computer lecture notes
History of computer lecture notesmbalenia
 
The computer as a modelling machine, a history of analog computing
The computer as a modelling machine, a history of analog computingThe computer as a modelling machine, a history of analog computing
The computer as a modelling machine, a history of analog computingCharles Care
 
IT-HISTORY-OF-COMPUTER.pptx
IT-HISTORY-OF-COMPUTER.pptxIT-HISTORY-OF-COMPUTER.pptx
IT-HISTORY-OF-COMPUTER.pptxMarkCarmeloAzor
 
Alan Turing: Founder of Computer Science
Alan Turing: Founder of Computer ScienceAlan Turing: Founder of Computer Science
Alan Turing: Founder of Computer ScienceJonathan Bowen
 
Invitation to Computer Science 8thEd Ch 1 (1).pptx
Invitation to Computer Science 8thEd Ch 1 (1).pptxInvitation to Computer Science 8thEd Ch 1 (1).pptx
Invitation to Computer Science 8thEd Ch 1 (1).pptxkalyank35
 

Similar to Well-known Computer Scientists v1.0.2 (20)

History of Women in Tech
History of Women in TechHistory of Women in Tech
History of Women in Tech
 
med122 brief history of the computer lecture
med122 brief history of the computer lecturemed122 brief history of the computer lecture
med122 brief history of the computer lecture
 
Lecture-2-02112021-013800pm.pdf
Lecture-2-02112021-013800pm.pdfLecture-2-02112021-013800pm.pdf
Lecture-2-02112021-013800pm.pdf
 
History
HistoryHistory
History
 
History
HistoryHistory
History
 
Evolution3
Evolution3Evolution3
Evolution3
 
Art/Science Interaction - Case study: Silicon Valley
 Art/Science Interaction - Case study: Silicon Valley Art/Science Interaction - Case study: Silicon Valley
Art/Science Interaction - Case study: Silicon Valley
 
Week 2 - Introduction to Computers II.pptx
Week 2 - Introduction to Computers II.pptxWeek 2 - Introduction to Computers II.pptx
Week 2 - Introduction to Computers II.pptx
 
Alan Turing
Alan TuringAlan Turing
Alan Turing
 
The Evolution Of Computer
The Evolution Of ComputerThe Evolution Of Computer
The Evolution Of Computer
 
My lectures
My lecturesMy lectures
My lectures
 
A history of (Nordic) compilers and autocodes
A history of (Nordic) compilers and autocodesA history of (Nordic) compilers and autocodes
A history of (Nordic) compilers and autocodes
 
The First Billion Android Activations
The First Billion Android ActivationsThe First Billion Android Activations
The First Billion Android Activations
 
History of computer lecture notes
History of computer lecture notesHistory of computer lecture notes
History of computer lecture notes
 
The computer as a modelling machine, a history of analog computing
The computer as a modelling machine, a history of analog computingThe computer as a modelling machine, a history of analog computing
The computer as a modelling machine, a history of analog computing
 
IT-HISTORY-OF-COMPUTER.pptx
IT-HISTORY-OF-COMPUTER.pptxIT-HISTORY-OF-COMPUTER.pptx
IT-HISTORY-OF-COMPUTER.pptx
 
Alan Turing: Founder of Computer Science
Alan Turing: Founder of Computer ScienceAlan Turing: Founder of Computer Science
Alan Turing: Founder of Computer Science
 
Lecture 1 a
Lecture 1 aLecture 1 a
Lecture 1 a
 
Invitation to Computer Science 8thEd Ch 1 (1).pptx
Invitation to Computer Science 8thEd Ch 1 (1).pptxInvitation to Computer Science 8thEd Ch 1 (1).pptx
Invitation to Computer Science 8thEd Ch 1 (1).pptx
 
Evolution4
Evolution4Evolution4
Evolution4
 

More from Yann-Gaël Guéhéneuc

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Yann-Gaël Guéhéneuc
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Yann-Gaël Guéhéneuc
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Yann-Gaël Guéhéneuc
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Yann-Gaël Guéhéneuc
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Yann-Gaël Guéhéneuc
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...Yann-Gaël Guéhéneuc
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesYann-Gaël Guéhéneuc
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Yann-Gaël Guéhéneuc
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1Yann-Gaël Guéhéneuc
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6Yann-Gaël Guéhéneuc
 

More from Yann-Gaël Guéhéneuc (20)

Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5Advice for writing a NSERC Discovery grant application v0.5
Advice for writing a NSERC Discovery grant application v0.5
 
Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1Ptidej Architecture, Design, and Implementation in Action v2.1
Ptidej Architecture, Design, and Implementation in Action v2.1
 
Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22Evolution and Examples of Java Features, from Java 1.7 to Java 22
Evolution and Examples of Java Features, from Java 1.7 to Java 22
 
Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3Consequences and Principles of Software Quality v0.3
Consequences and Principles of Software Quality v0.3
 
Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9Some Pitfalls with Python and Their Possible Solutions v0.9
Some Pitfalls with Python and Their Possible Solutions v0.9
 
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
An Explanation of the Unicode, the Text Encoding Standard, Its Usages and Imp...
 
An Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its ConsequencesAn Explanation of the Halting Problem and Its Consequences
An Explanation of the Halting Problem and Its Consequences
 
Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0Are CPUs VMs Like Any Others? v1.0
Are CPUs VMs Like Any Others? v1.0
 
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
Informaticien(ne)s célèbres (v1.0.2, 19/02/20)
 
On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1On Java Generics, History, Use, Caveats v1.1
On Java Generics, History, Use, Caveats v1.1
 
On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6On Reflection in OO Programming Languages v1.6
On Reflection in OO Programming Languages v1.6
 
ICSOC'21
ICSOC'21ICSOC'21
ICSOC'21
 
Vissoft21.ppt
Vissoft21.pptVissoft21.ppt
Vissoft21.ppt
 
Service computation20.ppt
Service computation20.pptService computation20.ppt
Service computation20.ppt
 
Serp4 iot20.ppt
Serp4 iot20.pptSerp4 iot20.ppt
Serp4 iot20.ppt
 
Msr20.ppt
Msr20.pptMsr20.ppt
Msr20.ppt
 
Iwesep19.ppt
Iwesep19.pptIwesep19.ppt
Iwesep19.ppt
 
Icsoc20.ppt
Icsoc20.pptIcsoc20.ppt
Icsoc20.ppt
 
Icsoc18.ppt
Icsoc18.pptIcsoc18.ppt
Icsoc18.ppt
 
Icsm20.ppt
Icsm20.pptIcsm20.ppt
Icsm20.ppt
 

Recently uploaded

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 

Recently uploaded (20)

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 

Well-known Computer Scientists v1.0.2

  • 1. Yann-Gaël Guéhéneuc This work is licensed under a Creative Commons Attribution-NonCommercial- ShareAlike 3.0 Unported License Some Well-known Computer Scientists yann-gael.gueheneuc@concordia.ca Version 1.0.2 2019/02/20
  • 2. 2/79 Any questions/comments are welcome at yann-gael.gueheneuc@concordia.ca
  • 3. 3/79 Why Is It Important? (1/2) “Those who cannot remember the past are condemned to repeat it” —By George Santayana in Life of Reason, Reason in Common Sense, Scribner's, 1905, page 284
  • 4. 4/79 Why Is It Important? (2/2)  Pythagoras’ theorem  Ohm’s law  …  You know the Nobel Prizes… … do you know the Turing Awards?
  • 5. 5/79 How to Choose? (1/2)  Hundreds of women and men made and are making the history of computer science – Difficult choice, impossible choice – Inclusion criteria • Historical importance • Historical continuity • Link to software engineering – No exclusion criteria!
  • 6. 6/79 How to Choose? (2/2)  Suggestions for other computer scientists to appear here – Please send an e-mail to Yann-Gaël Guéhéneuc yann-gael.gueheneuc@concordia.ca
  • 7. 7/79 Some Well-known Computer Scientists 1936 Alan Turing 1948 Claude Elwood Shannon 1950 Grace Murray Hopper 1960 John McCarthy 1966 Frances E. Allen 1967 Dahl et Nygaard 1969 Charles A. R. Hoare 1970 Edgar F. Codd 1972 Dave Parnas 1974 Manny Lehman 1975 Frederick Brooks 1986 Edward Yourdon 1987 Barbara Liskov 1994 Erich Gamma 1997 Grady Booch 2001 Butler Lampson
  • 8. 8/79 Alan Turing  Alan Mathison Turing – Born June 23rd, 1912, died June 7th, 1954 – Turing machines, undecidability, halting problem, computability The Turing Award is given in his honour IEEE Milestone … – http://en.wikipedia.org/wiki/Alan_Turing Alan Turing *1912 †1954
  • 9. 9/79 Alan Turing  1928 – Hilbert introduced the decision problem  1931 – Gödel give results on the limits of proofs and computability
  • 10. 10/79 Alan Turing  1936 – “On computable numbers with an application to the entscheidungsproblem” • Turing introduces a concept of machines now known as “Turing machines” • Turing proves with his machines that the halting problem is undecidable
  • 11. 11/79 Alan Turing  Halting problem – First problem proven undecidable – Used to prove that other problems are undecidable by reduction
  • 12. 12/79 Alan Turing  Generalisation particular cases – Correctness proofs are posibles but on particular problems and not automatically in the general case  Formal methods  tests – Prove the correctness of a particular algorithm – Prove the presence of errors
  • 13. 13/79 Alan Turing  19381945 – Work at Bletchley Park • British Government Code and Cypher School • Five major contributions – Decode the Enigma code of the German army – Decode the indicator procedure of the Enigma use by the German navy – Develop a statistical method to make the “Bombe” more efficient – Develop a procedure to decode the Lorenz SZ 40/42 machines – Develop a voice scrambler
  • 14. 14/79 Alan Turing  1952 – Turing test  1966 – ELIZA Joseph Weizenbaum *1923 †12008
  • 15. 15/79 Alan Turing  Chapter 10 is all about undecidability – Proof by contradiction – ChurchTuring thesis – Consequences • Algorithms • Humans
  • 16. 16/79 Claude Elwood Shannon  Claude Elwood Shannon – Born April 30th, 1916, died February 24th, 2001 – Father of the information theory National Medal of Science in the USA in 1966 IEEE Medal of Honor in 1966 … – en.wikipedia.org/wiki/Claude_Shannon Claude Elwood Shannon *1916 †12001
  • 17. 17/79 Claude Elwood Shannon  1830s – Telegraph – Morse Code
  • 18. 18/79 Claude Elwood Shannon  1830s – A form of lossless compression
  • 19. 19/79 Claude Elwood Shannon  1948 « The fundamental problem of communication is that of reproducing at one point, either exactly or approximately, a message selected at another point. » —Shannon, in A Mathematical Theory of Communication, 1948
  • 20. 20/79 Claude Elwood Shannon  1948 – Probabilistic theory quantifying the average information content of a message – Entropy – Code theory • Compression • Detection and correction of errors – All electronic “communication”! – Cryptography
  • 21. 21/79 Grace Murray Hopper  Grace Murray Hopper (rear admiral) – Born the 9th of December, 1906, died the 1st of January, 1992 – Mother of the first compiler, of the term “debugging”, of COBOL and of standards Defense Distinguished Service Medal in the USA in 1986 – Cf. http://en.wikipedia.org/wiki/Grace_Hopper Grace Hopper *1906 †1992
  • 22. 22/79 Grace Murray Hopper  1944 – WWII is almost over – Computers showed their usefulness • 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): production of calculus tables for the Navy
  • 23. 23/79 Grace Murray Hopper  Principle of the first computers – Electromechanical or electromagnetic relays – Two active relays make a third relay active • Relays “3” et “6” make relay “9” active for a sum 1947
  • 24. 24/79 Grace Murray Hopper  1950 – Computers become programmable with higher- level languages than microcode or assembly • UNIVAC I: census • A-0 (Arithmetic Language version 0) • Loader or linker more than a compiler  1954 – B-0 (Business Language version 0) also known as FLOW-MATIC
  • 25. 25/79 Grace Murray Hopper  1959 – Conference CODASYL (Conference on Data Systems Languages) – COBOL as successor of FLOW-MATIC – Close to English  1970s – Advocated standards tests for programming languages, FORTRAN in particular
  • 26. 26/79 John McCarthy  John McCarthy – Born the 4th of September, 1927 – Died on the 24 October, 2011 – Father of artificial intelligence, LISP, contributor to time- sharing computing, inventor of “SaaS” ACM Turing Award in 1971 National Medal of Science in the USA in 1991 – Cf. http://en.wikipedia.org/wiki/John_McCarthy_(computer_scientist) John McCarthy *1927 †2011
  • 27. 27/79 John McCarthy  Artificial intelligence, 1956 – Champion of logic programming – Collaboration with Marvin Minsky  Inventor of LISP, 1960 – Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I, 1960 – Lambda calculus – Garbage collection
  • 28. 28/79 John McCarthy  Time-sharing systems – Multiprogramming and multitasking – Most important change of paradigm in computer science in 1970 • Sharing of resources to avoid “waiting computation time (cycles)” – SaaS • Software as a Service • Architecture/engineering based on services DEC PDP-1, c. 1960
  • 29. 29/79 Frances E. Allen  Frances E. Allen – Born on the 4th of August, 1932 – Pioneer of optimising compilation, code optimisation, and parallelisation AWC Augusta Ada Lovelace Award in 2002 ACM Turing Award in 2006 – Cf. http://en.wikipedia.org/wiki/Frances_E._Allen Frances E. Allen *1932
  • 30. 30/79 Frances E. Allen  Before 1966 – Since the 1930s • Programmable computers – Since the 1950s • First compilers by Grace Murray Hopper • Programming languages – FORTRAN: first complete compiler – COBOL: first programming language compiled for different computer architectures (UNIVAC II et RCA 501)
  • 31. 31/79 Frances E. Allen  Before 1966 – In 1955 • Context-free grammar invented by Noam Chomsky – In 1966 • LR Parsing invented by Donald Knuth
  • 32. 32/79 Frances E. Allen  In 1966 – Program Optimization • Use of graphs to describe programs and to allow their optimisations  In 1970 – Control Flow Analysis et A Basis for Program Optimization • Intervals for control-flow analyses  In 1974 – Interprocedural data flow analysis • Interprocedural analyses of whole programs
  • 33. 33/79 Dahl–Nygaard  Ole-Johan Dahl – Born 12 October 1931, †29 June 2002 – Co-inventor of the object-oriented paradigm – ACM Turing Award in 2001 – IEEE J. von Neumann in 2002 – Cf. http://www.olejohandahl.info/ – Cf. http://en.wikipedia.org/wiki/Ole-Johan_Dahl Ole-Johan Dahl *1931 †2002
  • 34. 34/79 Dahl–Nygaard  Kristen Nygaard – Born 27 August 1926, †10 August 2002 – Co-inventor of the object-oriented paradigm – ACM Turing Award in 2001 – IEEE J. von Neumann in 2002 – Cf. http://www.ifi.uio.no/in_memoriam_kristen/ – Cf. http://en.wikipedia.org/wiki/Kristen_Nygaard Kristen Nygaard *1926 †2002
  • 35. 35/79 Dahl–Nygaard  Object-oriented paradigm – Context • 1961 – Algol imperative programming – Classes, objects, encapsulation, inheritance, polymorphism • Simula I • Simula 67
  • 36. 36/79 Dahl–Nygaard  Object-oriented programming – Smalltalk • Xerox Parc, 1970–1983 – GUI – Icons – WYSIWYG – Mouse (cf. Stanford Research Institute) • Dynamic typing • Reflection • Garbage collection
  • 37. 37/79 Dahl–Nygaard  Object-oriented programming – C++ • AT&T Bell Labs • Bjarne Stroustrup • 1980 • Static typing • Multiple inheritance • Cf. http://www.approximity.com/ruby/ Comparison_rb_st_m_java.html
  • 38. 38/79 Dahl–Nygaard  Object-oriented programming – Oberon • ETH Zurich • Niklaus Wirth • 1986 • Static typing • Garbage collection • Array bounds checking
  • 39. 39/79 Charles A. R. Hoare  Sir Charles Antony Richard Hoare – Born January 11th, 1934 – Inventor of QuickSort – Inventor of the Hoare logic – – ACM Turing Award in 1980 – IEEE J. von Neumann in 2011 – Cf. http://en.wikipedia.org/wiki/C._A._R._Hoare Sir Charles Antony Richard Hoare *1934
  • 40. 40/79 Charles A. R. Hoare  QuickSort – Context • 1960 – In Soviet Union, Hoare works at Moscow State University in automatic translation – He must sort words to be translated to map them with words already translated – QuickSort • O(n  log(n)) in average, O(n2) worst case • Works well with a cache
  • 41. 41/79 Charles A. R. Hoare  Hoare logic – Context • 1969 – 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…
  • 42. 42/79 Edgar F. Codd  Edgar Frank “Ted” Codd – Born August 23rd, 1913, died April 18th, 2003 – Father of relational algebra ACM Turing Award in 1999 – http://en.wikipedia.org/wiki/Edgar_F._Codd Edgar F. Codd *1923 †12003
  • 43. 43/79 Edgar F. Codd  1960s – Databases become possible • Direct-access storages – 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)
  • 44. 44/79 Edgar F. Codd  1970 – “A Relational Model of Data for Large Shared Data Banks” • 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) Lawrence Joseph "Larry" Ellison *1944
  • 45. 45/79 Edgar F. Codd  Today – SQL is a standard • ANSI since 1986 • ISO since 1987 – Implemented by almost all existing databases – Interoperability • Careful with proprietary extensions • Careful with ambiguities
  • 47. 47/79 Edgar F. Codd  NoSQL – http://nosql-database.org/ – http://www.10gen.com/nosql
  • 48. 48/79 Dave Parnas  Dave Parnas – Born February 10th, 1941 – Father of the criteria to divide a program into modules in a modular design IEEE Computer Society 60th Anniversary Award in 2007 – Cf. http://en.wikipedia.org/wiki/David_Parnas Dave Parnas *1941
  • 49. 49/79 Dave Parnas  Modular design – Context • 1972 – Procedural and object programming languages – Flow diagrams – Decomposition of programs in modules, classes…
  • 50. 50/79 Dave Parnas – Criteria • “[I]t is almost always incorrect to begin the decomposition of a system into modules on the basis of a flowchart. We propose instead that one begins with a list of difficult design decisions or design decisions which are likely to change. Each module is then designed to hide such a decision from the others” • Information hiding = Encapsulation
  • 51. 51/79 Dave Parnas – Rewriting of the criteria in terms of • Cohesion • Coupling • Concepts “invented” by Larry Constantine in 1968 and published in 1972 in W. Stevens, G. Myers, L. Constantine, "Structured Design", IBM Systems Journal, 13 (2), 115-139, 1974. • A module must have a strong cohesion and be weakly coupled to other modules
  • 52. 52/79 Manny Lehman  Meir M. “Manny” Lehman – Died December 29th, 2010 – Father of the laws of software evolution Stevens Award in 2003 – Cf. http://www.doc.ic.ac.uk/news/archive/story/ manny-lehman – Cf. http://www.ieeeghn.org/wiki/index.php/Oral- History:Meir_Lehman Manny Lehman *1925 †2010
  • 53. 53/79 Manny Lehman  Laws of software evolution – Context • 1974 – 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
  • 54. 54/79 Manny Lehman – Eight laws 1. Continuing change: E-type systems must be continually adapted or they become progressively less satisfactory 2. Increasing complexity: As an E-type system evolves its complexity increases unless work is done to maintain or reduce it 3. Self regulation: E-type system evolution process is self regulating with distribution of product and process measures close to normal 4. Conservation of organisational stability: The average effective global activity rate in an evolving E-type system is invariant over product lifetime
  • 55. 55/79 Manny Lehman – Eight laws 5. Conservation of familiarity: As an E-type system evolves all associated with it must maintain mastery of its content and behaviour to achieve satisfactory evolution. The average incremental growth remains invariant as the system evolves 6. Continuing growth: The functional content of E-type systems must be continually increased to maintain user satisfaction over their lifetime 7. Declining quality: The quality of E-type systems will appear to be declining unless they are rigorously maintained and adapted to operational environment changes 8. Feedback system: E-type evolution processes constitute multi-level, multi-loop, multi-agent feedback systems and must be treated as such to achieve significant improvement over any reasonable base
  • 56. 56/79 Frederick Brooks  Frederick Brooks – Born April 19th, 1931 – Father of Brooks’ Law – IEEE J. von Neumann Medal in 1993 – ACM Turing Award in 1999 – Cf. http://en.wikipedia.org/wiki/Fred_Brooks Frederick Brooks *1931
  • 57. 57/79 Frederick Brooks  Principle of Brooks’ Law – Context • 1956–1964 – Manager of the IBM OS/360 development project – Delays in the delivery – Book • The Mythical Man-Month: Essays on Software Engineering – Principle • Adding manpower to a late software project makes it later
  • 58. 58/79 Frederick Brooks – Rationale • It takes some time for the people added to a project to become productive. Brooks calls this the "ramp up" time. New workers must first become educated about the work that has preceded them; also integrate with a team composed of multiple engineers who must educate the new worker in their area of expertise in the code base, day by day • Communication overheads increase as the number of people increases. The number of different communication channels increases along with the square of the number of people
  • 59. 59/79 Frederick Brooks – Comments, solutions • Brooks' Law applies to projects that are already late • The quantity, quality and role of the people added to the project also must be taken into consideration • Good management and development practices also help to minimize the impact of Brooks' Law • Rather than depending on heroes to carry the day with extraordinary efforts, Wiegers argues that a team of ordinarily-skilled individuals can repeatedly deliver timely results in the right work environment
  • 60. 60/79 Frederick Brooks – Critics “How to quadruple your productivity with an army of student interns” • 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
  • 61. 61/79 Edward Yourdon  Edward Yourdon – Born April 20th, 1944 – “Inventor” of seven types of cohesion – Cf. http://en.wikipedia.org/wiki/Edward_Yourdon Edward Yourdon *1944
  • 62. 62/79 Edward Yourdon  Modular design – Context • 1972 – Procedural and object programming languages – Flow diagrams – Decomposition of programs in modules, classes… • 1987 – Object-oriented programming is increasingly popular
  • 63. 63/79 Edward Yourdon – Cohesion criteria 1. Accidental: the weakest cohesion in which their is no links between methods or their link is based on a useless criteria – Utility classes 2. Logic: when methods are linked logically by one or more common criteria – All classes pertaining to I/O, to user interactions... 3. Temporal: when methods must be called within a common time-frame – A method and the method called in on of its catch statement, and so on
  • 64. 64/79 Edward Yourdon – Cohesion criteria 4. Procedural: when methods must be called in a specific order – One method that check user rights and one method that opens a file subsequently 5. Communicational: when methods process the dame set of data – All classes pertaining to dates...
  • 65. 65/79 Edward Yourdon – Cohesion criteria 6. Sequential: when methods that process the same set of data must be called in a specific order – A parser: inputs to one class are the outputs of another 7. Functional: highest level of cohesion, when a class or module is dedicated to a unique task – Classes that contribute in implementing some requirements
  • 66. 66/79 Barbara Liskov  Barbara Liskov – Born November 7th, 1939 – Mother of the Liskov’s substitution principle – IEEE J. von Neumann Medal in 2004 – ACM Turing Award in 2008 – Cf. http://en.wikipedia.org/wiki/ Liskov_substitution_principle Barbara Liskov *1939
  • 67. 67/79 Barbara Liskov  Liskov’s substitution principle – Context • 1987 – Object-oriented programming is increasingly popular – Principle • Let q(x) be a property provable about objects x of type T. Then q(y) should be true for objects y of type S where S is a subtype of T
  • 68. 68/79 Barbara Liskov – Principle • Behavioural sub-typing is different and stronger than the concept of sub-typing in type theory • In type theory – Contravariance of parameters: a parameter of type T can accept 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
  • 69. 69/79 Barbara Liskov – Implementation in Java • Java < 1.5 – Redefinition /* Mother class */ public T foo(String a, String b) {...} /* 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) {...}
  • 70. 70/79 Erich Gamma  Erich Gamma – Born in 1961 – Father of the software design patterns Dahl-Nygaard Prizes in 2006 – Cf. http://en.wikipedia.org/wiki/Erich_Gamma – Cf. http://c2.com/cgi/wiki?ErichGamma Erich Gamma *1961
  • 71. 71/79 Erich Gamma  Software design patterns – Context • 1977 et 1979 – Christopher Alexander – A Pattern Language: Towns, Buildings, Construction and the idea of generative patterns – The Timeless Way of Building and the idea of perfection in architecture • 1990 – Object-oriented programs are becoming mainstream
  • 72. 72/79 Erich Gamma  A Pattern Language: Towns, Buildings, Construction – 253 patterns – Generative grammar – “At the core... is the idea that people should design for themselves their own houses, streets and communities. This idea... comes simply from the observation that most of the wonderful places of the world were not made by architects but by the people”  Design Patterns: Elements of Reusable Object- Oriented Software – 23 patterns – Not a language? – “Dynamic, highly parameterized software is harder to understand and build than more static software”
  • 73. 73/79 Erich Gamma  Design Patterns: Elements of Reusable Object-Oriented Software – Dahl-Nygaard Prizes to • Ralph Johnson • Richard Helm • Erich Gamma • † John Vlissides
  • 74. 74/79 Grady Booch  Grady Booch – Born February 27th, 1955 – Father of the UML with Jacobson and Rumbaugh Stevens Award in 2003 – Cf. http://en.wikipedia.org/wiki/Grady_Booch Grady Booch *1955
  • 76. 76/79 Grady Booch – Three Amigos and their methods • Grady Booch, – Booch Method (design) • Ivar Jacobson – Object Oriented Software Engineering, OOSE (use cases) • James Rumbaugh – Object Modeling Technique, OMT (analysis) • Rational Software Corporation – UML
  • 77. 77/79 Butler Lampson  Butler Lampson – Born December 23, 1943 – Founding members of Xerox Parc – IEEE J. von Neumann Medal in 2001 – ACM Turing Award in 1992 – Cf. https://en.wikipedia.org/wiki/Butler_Lampson
  • 78. 78/79 Butler Lampson  Wildflower general blueprint  Laser printer, two-phase commit protocols, Bravo, WYSIWYG text formatting programs, Ethernet, and Euclid  “Any problem in computer science can be solved with another level of indirection” – Attributed to David Wheeler in Lampson’s Turing Award Lecture in 1993
  • 79. 79/79 To Be Continued  ACM A. M. Turing Award – Cf. http://awards.acm.org/homepage.cfm? awd=140  AITO Dahl-Nygaard Prize – http://www.aito.org/Dahl-Nygaard/  IEEE J. von Neumann Medal – Cf. http://www.ieee.org/about/awards/bios/ vonneumann_recipients.html