35
Big Ideas in Computing Frank van Harmelen Dept. of Computer ScienceVU Amsterdam Creative Commons License: allowed to share & remix, but must attribute & non-commercial

Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Big Ideas in Computing

Frank van HarmelenDept. of “Computer Science”

VU Amsterdam

Creative Commons License: allowed to share & remix,but must attribute & non-commercial

Page 2: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Health Warning:

This is going to be a pretentious talk

Big Ideas in ComputingThe

Page 3: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Big Ideas in ComputingThe

Based on a course developed together with Hajo Reijers and Ellen Maassen

Page 4: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Why do we need a list of “The Big Ideas in Computing”?

Page 5: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

The physicists do it!• Force, mass, acceleration  [Newton]

• Conservation of energy [Kelvin]

• Increase of entropy [Clausius]

• Invariance of speed of light  [Einstein]

• Quantized nature of time, space and mass       [Planck]

• Uncertainty principle [Heisenberg]

Page 6: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Everybody else does it too!

“It is a common practice in science to articulate scientific fields as frameworks of fundamental principles.  Robert Hazen and James Trefil have done this for the biological and life sciences, Richard Feynman for physics, andCarl Sagan for astronomy"‐‐ Peter Denning

Page 7: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

The impact of such a list• It changes how PC’s and editorial boards think• It changes how you teach your courses• It changes how you train your PhD’s• It changes how you judge a PhD thesis• It changes how other fields perceive us• It changes how the general public perceive us

“The curse of applicability”“Een vakgebied kan zelfs zó nuttig zijn dat al dat nut ‘t naar de keel vliegt. Door hun toepassingen in een wurggreep gehouden, moeten deze onderzoekers moeite doen de alledaagse werkelijkheid flink van zich af te duwen om weer eens diep wetenschappelijk adem te kunnen halen.Een goed voorbeeld van zo'n 'vervloekt' vak is de informatica.”

Page 8: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Authorities on “Computer” Science"Computer science is no more about computers than astronomy is about telescopes”

‐‐ Edsger W. Dijkstra

“We have to think of computation as a principle and computers (only) as the tool”

“Computing is, and always has been, the science of information processes, natural and artificial "

‐‐ Peter Denning

"Professor Shih‐Fu Chang will receive a doctorate for his many groundbreaking contributions to our understanding of the digital universe“

‐‐ Arnold Smeulders

Page 9: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Have others tried this before? 

Bill Rapaport’s page with a map of 45(!) years of debate

Page 10: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Have others tried this before? 

six categories: communication, computation, coordination, recollection, evaluation, design

Computation is a sequence of representations

Virtual machines organize software as simulations of computing machines.

Abstraction, information hiding, and decomposition are complementary aspects of modularity.

Page 11: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Have others tried this before? 

six categories: communication, computation, coordination, recollection, evaluation, design

“Finite representations of real processes always contain errors”

“Messages can be compressed”

“A network of servers is a common, efficient representation of computing systems”

Page 12: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Goals of the talk:1. Convince 2. Propose      .

Page 13: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

So what do you think are the Big Ideas in Computing?

Page 14: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Your list of “Big Ideas in Computing”

Page 15: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Four parts

1. The Science of Algorithms2. The Science of Data3. Taming Complexity4. Philosophy of Computing 

Page 16: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

1: The Science of Algorithms

• what is an algorithm• independence of language and machine modelexistence of universal languages

• programs as data, stored program computer, universal machines

• complexity of algorithms: runtime as function of input length

• tractable vs. intractable• computability vs. uncomputability

Page 17: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language
Page 18: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language
Page 19: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Existence of universal languages

Every program can be written using only sequence:  

step1;step2and loop:  while test do action

11

0

Every computer can be built using only one type of component:  

NAND(A,B)= 0 iff A=B=1

JavaPythonC++PrologLisp….

Page 20: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language
Page 21: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

• Tiling the plane• Determining wether a context‐free 

grammar is ambiguous 

• Finding the fastest machine code for higher level language code

• Finding primitives (anti‐derivative)• Writing an anti‐virusprogram that 

never executes malicious instruction• Type checking for lambda‐calculus• Determining the Kolmogorov 

complexity of a string• Hilbert’s 10th problem (Diophantine 

equations)

Uncountably infinitely many problems cannot be computed !

“The police killed the man with a chainsaw”

Page 22: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

2: The Science of Data

• Digitisation, encoding in bits• Complexity of data, Shanon information theory, compressibility

• error‐correcting codes• discovering patterns in data, machine learning

Page 23: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Everything can be encoded in bits

155 = v =118 =01110110

=00011000001111000111111011111111…..

= 255,153,31

Page 24: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

How much information is there in data

vs

World Blue

Uncompressed 29453 29453

Compressed 1353 155

Sizes:

Information content = 

Page 25: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

error‐correcting through redundundancy

Page 26: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

3: Taming complexity

• algorithmic abstraction: – information hiding, abstraction layers, virtual machines

– specification vs. implementation, program correctness

– modularity (cohesion & coupling), interfaces

– stepwise refinement– problem solving as divide and conquer, recursion– problem solving as state space search

Page 27: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

algorithmic abstraction

– information hiding, abstraction layers– divide and conquer, recursion

Page 28: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

problem

existing system

Page 29: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Generic problem solving as state‐space search

Page 30: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

3: Taming complexity

• data abstraction – Archetypical data structures: tables, trees, graphs, arrays, hash, list, ..

– mutual encodings (e.g. from graph to table, from table to array)

– abstract datatypes

Page 31: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Datastructures and their reductions

Page 32: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Abstract data types

Page 33: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

4: Philosophy of Computing• Thinking is computing• Everything is computing“A growing number of physicistsunderstand that the universe is not mathematical, but computational, and physics is in the business of finding an algorithm that can reproduce our observations.” 

Joshua Bach (MIT, Harvard)“Biology is today an information science. The output of the system, the mechanics of life, are digitally encoded and read out by a series of reading heads.” 

David Baltimore, CalTech, Nobel Prize Winner

“Economists consider the workings of economies as complex information processes that compute optima, and  analyze economic systems for their inherent information flows”

“Nature is written in the language of computation, contrary to Galileo’s claim that it is written in mathematics

Steven Wolfram

Page 34: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Goals of the talk:1. Convince 2. Propose    ?3. Tickle         !.

Page 35: Big Ideas in Computing - SIKS keynote 2017.pdf · Taming Complexity 4. Philosophy of Computing. 1: The Science of Algorithms • what is an algorithm • independence of language

Remember why this is important

• It changes how PC’s and editorial boards think• It changes how you teach your courses• It changes how you train your PhD’s• It changes how you judge a PhD thesis• It changes how other fields perceive us• It changes how the general public perceive uss