Document Sample


             Gordana Dodig-Crnkovic
     Department of Computer Science and Engineering
                  Mälardalen University

Pieter BRUEGEL, the Elder

    Technological Advancement within
     Computing over the Past Decade
– The World Wide Web and its applications
– Networking technologies, particularly those based on TCP/IP
– Graphics and multimedia
– Embedded systems
– Relational databases
– Interoperability
– Object-oriented programming
– The use of sophisticated application programmer interfaces (APIs)
– Human-computer interaction
– Software safety
– Security and cryptography
– …

                Hackers & Painters

"Everything around us is turning into computers. Your
  typewriter is gone, replaced by a computer. Your phone
  has turned into one. So has your camera. Soon your TV
  will. Your car has more processing power in it than a
  room-sized mainframe had in 1970. Letters, encyclopedias,
  newspapers, and even your local store are being replaced
  by the Internet. So if you want to understand where we are,
  and where we're going, it will help if you understand
  what's going on inside the heads of hackers.“
                       Paul Graham "Hackers & Painters"

                Hackers & Painters

Hacking and painting have a lot in common. In fact, of all the
  different types of people I’ve known, hackers and painters
  are among the most alike.

                        Paul Graham "Hackers & Painters"

Yet there is a whole universe of people contributing to the
  development of the field of computing rather different
  from hackers and painters...

                  Computer Science

In practice, computer science includes a variety of topics
   relating to computers, which range from the abstract
   analysis of algorithms, formal grammars, etc. to more
   concrete subjects like programming languages, software,
   and computer hardware.
As a scientific discipline, it differs significantly from and is
   often confused with mathematics, programming, software
   engineering, and computer engineering, although there is
   some degree of overlap with these and other fields.

              Church-Turing Thesis

The Church-Turing thesis states that all known kinds of
  reasonable paradigms of computation are essentially
  equivalent in what they can do, although they vary in time
  and space efficiency. The thesis is not a mathematical
  theorem that can be proven, but an empirical observation
  that all known computational schemes have the same
  computational power.

Now the problem is what is the ”reasonable paradigm of
  computation” – we will have reason to come back to this
  point later on in this lecture.


Most research in computer science has been related to von
 Neumann computers or Turing machines (computers that
 do one small, deterministic task at a time). These models
 resemble most real computers in use today. Computer
 scientists also study other kinds of machines, some
 practical (like parallel machines) and some theoretical (like
 probabilistic, oracle, and quantum machines).

                 Computer Science

Computer scientists study what programs can and cannot do
  (computability), how programs should efficiently perform
  specific tasks (algorithms), how programs should store and
  retrieve specific kinds of information (data structures and
  data bases), how programs might behave intelligently
  (artificial intelligence), and how programs and people
  should communicate with each other (human-computer
  interaction and user interfaces).

            CS Body of Knowledge
– Discrete Structures
– Programming Fundamentals
– Algorithms and Complexity
– Programming Languages
– Architecture and Organization
– Operating Systems
– Net-Centric Computing
– Human-Computer Interaction
– Graphics and Visual Computing
– Intelligent Systems
– Information Management
– Software Engineering
– Social and Professional Issues
– Computational Science and Numerical Methods
– ...
                    Related Fields

Computer science is closely related to a number of fields.
  These fields overlap considerably, though important
  differences exist
• Information science is the study of data and information,
  including how to interpret, analyze, store, and retrieve it.
  Information science started as the foundation of scientific
  analysis of communication and databases.
• Computer programming or software development is the act
  of writing program code.

                   Related Fields

• Software engineering emphasizes analysis, design,
  construction, and testing of useful software. Software
  engineering includes development methodologies (such as
  the waterfall model and extreme programming) and project
• Information systems (IS) is the application of computing to
  support the operations of an organization: operating,
  installing, and maintaining the computers, software, and
• Computer engineering is the analysis, design, and
  construction of computer hardware

                     Related Fields

• Mathematics shares many techniques and topics with
  computer science, but is more general. In some sense, CS
  is the mathematics of computing.
• Logic is a formal system of reasoning, and studies
  principles that lay at the very basis of computing/reasoning
  machines, whether it be the hardware (digital logic) or
  software (verification, AI etc.) levels. The subfield of logic
  called computability logic provides a systematic answer to
  the fundamental questions about what can be computed
  and how. .

                  Related Fields

• Lexicography and specialized lexicography focus on the
  study of lexicographic reference works and include the
  study of electronic and Internet-based dictionaries.
• Linguistics is the study of languages, converging with
  computer science in such areas as programming language
  design and natural language processing.

                 Debate over Name

There is some debate over whether the name of the field
  should be computer science or computation science or
  computing. The first name is the original, traditional name;
  however it implies that CS studies computers. The second
  name is more recent, and it implies that CS studies what
  we do with computers. The third is the most general term
  including not only what we can do with present-day
  computers but any computing process that any physical
  system can perform.

       Major Fields of Importance for CS
•   Mathematical foundations
•   Theoretical Computer Science
•   Hardware
•   Software
•   Data and Information Systems
•   Computing Methodologies
•   Computer Systems Organization
•   Computer applications
•   Computing Milieux
•   ....

          Mathematical Foundations

• Discrete mathematics (Boolean algebra, Graph theory,
  Domain theory ..)
• Mathematical logic
• Probability and Statistics
• Information theory
• ...

       Theoretical Computer Science

• Algorithmic information theory
• Computability theory
• Cryptography
• Formal semantics
• Theory of computation (or theoretical computer science)
    – analysis of algorithms and problem complexity
    – logics and meanings of programs
    – Mathematical logic and Formal languages
• Type theory
• ...

• Control structures and Microprogramming
• Arithmetic and Logic structures
• Memory structures
• Input/output and Data communications
• Logic Design
• Integrated circuits
    – VLSI design
• Performance and reliability
• ...

• Computer programming (Programming techniques,
  Program specification, Program verification)
• Software engineering
    – Optimization
    – Software metrics
    – Software Configuration Management (SCM)
    – Structured programming
    – Object orientation
    – Design patterns
    – Documentation
• Programming languages
• Operating Systems
• Compilers
• ...
       Computer Systems Organization

•   Computer architecture
•   Computer networks
•   Distributed computing
•   Performance of systems
•   Computer system implementation
•   ...

       Data and Information Systems
• Data structures
• Data storage representations
• Data encryption
• Data compression
• Data recovery
• Coding and Information theory
• Files
    – File formats
• Information systems
    – Databases
    – Information Storage and retrieval
    – Information Interfaces and Presentation
• Data recovery
• .....                                         24
           Computing Methodologies

•   Symbolic and Algebraic manipulation
•   Artificial intelligence
•   Computer graphics
•   Image processing and computer vision
•   Pattern recognition
•   Simulation and Modeling
•   Document and text processing
•   Digital signal processing
•   ...

             Computer Applications
• Administrative data processing
• Mathematical software (Numerical analysis, Automated
  theorem proving, Computer algebra systems)
• Physical sciences and Engineering (Computational
  chemistry, Computational physics)
• Life and medical sciences (Bioinformatics, Computational
  Biology, Medical informatics)
• Social and behavioral sciences
• Arts and Humanities
• Computer-aided engineering
• Human-computer interaction (Speech synthesis, Usability
• Robotics                                                26
• ....
         Computing Aspects (Milieus)

•   Computer industry
•   Computers and education
•   Computers and society
•   Legal aspects of computing
•   Management of computing and Information systems
•   Personal computing
•   Computer and information security


• CS != Programming

• CS >> Programming

• Computing != CS

• Computing >> CS

Big ideas in Computer Science and Engineering

Prof. Gerry Sussman [MIT] said we could write down all the
  ideas in computer science on 4 pages!
CS has added valuable knowledge to our understanding of the
CS discipline offers some important concepts which it is
  useful for everyone to understand. Just as there is a utility
  for everyone to understand a certain amount of math and
  science, there is a good reason for people to understand a
  certain amount of computer science.

Big ideas in Computer Science and Engineering

Hilbert’s program: Mechanical procedures exist for finding
  the solutions to problems. That is, for many
  questions/problems, we can write down a series of steps
  and simple predicates which define precisely how to find
  the correct solution. This process is completely
  mechanical, not requiring any "human" judgment to
We can build physical machines which implement these
  procedures and perform the calculations.
There are simple, universal models of computing which
  capture the basic capabilities of these machines (e.g.
  automata, pushdown automata, Turing Machines).
Big ideas in Computer Science and Engineering

The Turing Machine model is "robust" in the sense that
  "reasonable" additions to it, or alternative formulations of
  computing models have the same asymptotic power of
  computability (Church's thesis).
“Reasonable" meaning they, for the most part, correspond to
  things we imagine a real machine could support. In
  particular, there are stronger models when the machine is
  allowed to do "unreasonable" things like consult an oracle.
Deterministic/guaranteed procedures do not exist for all
  problems (Halting Problem, uncomputability). An
  important component of CS theory is to classify problems
  as computable or uncomputable.
Big ideas in Computer Science and Engineering

Of the problems which are computable, tasks have different
  computational difficulty (complexity). An important
  component of CS theory allows us to analyze algorithms
  and assess their complexity. (complexity classes
  [P,NP,PSPACE, IP, ...], order analysis [O(), Omega(),
Common idioms/solution techniques, e.g.
    – divide-and-conquer
    – linear programming
    – dynamic programming
    – graph algorithms

Big ideas in Computer Science and Engineering

There are alternatives to directly solving hard problems
  optimally. CS theory also tells us what we can give up in
  the guarantee of solution quality to reduce computational
   – approximation algorithms
   – online algorithms
   – polynomial heuristic solutions
   – randomized algorithms

Big ideas in Computer Science and Engineering

The desired computation can be captured precisely and
  unambiguously. Computer science deals with how we
  construct languages to describe computations, and how we
  make them convenient for human use.
• languages
• syntax (grammars)
• semantics (denotational, operational)

Big ideas in Computer Science and Engineering

 We do not have to emulate the user's description of a
  computation to implement it correctly. We simply need to
  implement a computation which gives the same visible
  result (has the same meaning) as the user's computation
  (compilation, CAD) which means semantic

Big ideas in Computer Science and Engineering

The representation used for data in a computation can have a
  big effect on efficiency of operation and ease of human
• effects on computational and storage efficiency (e.g. arrays
  and fixed structures vs. tagged lists, red-black trees; sparse
  vs. dense representations of data)
• easing human comprehension (e.g. rich data structures)

Big ideas in Computer Science and Engineering

Our physical world allows us to build very large computer
  systems. The practical limit to the useful size of a
  computer system (or at least, the size of the function
  efficiently supported by a computer system) is almost
  always human comprehension, not the physical capacity
  required. Consequently, a major concern of computer
  science is techniques to manage and reduce complexity
  (abstractions/information hiding, modularity, problem
  decomposition, hierarchy, component isolation, invariants,
  common idioms/paradigms for organization (e.g.
  procedures, frames, streams, objects, APIs, servers)
Big ideas in Computer Science and Engineering

• A computing machine can be implemented out of X.
• X=mechanical interactions, relays, tubes, transistors, DNA,
• common/useful abstractions (e.g. digital abstraction, flops,
  memory, communication channels)
• disciplines achieving correctness in the face of
  noise/uncertainty (e.g. voltage levels, timing models and

Big ideas in Computer Science and Engineering

We can extend our notion of abstraction/information hiding to
  machine design. In particular, the machine code and
  operating environment for a machine represents the
  abstract interface it provides to the outside world. Any
  implementation which provides the same semantics to the
  machine code is viable.
Consequently, we have the notion of ISAs or architecture
  families which all run the same machine code but which
  admit to a variety of implementations (e.g. IBM 360,
  VAX, MIPS, SPARC, x86).

Big ideas in Computer Science and Engineering

Machine code is just another language specifying precisely
  the computation to be performed.
   – a computational engine need only provide the intended
     semantics, leaving it plenty of freedom as to how it
     implements the semantics.
   – like any other language, it can be translated from the
     input format to another native format (perhaps another
     machine's native machine format) as long as it provides
     the original semantics (e.g. softPC, binary translation)

Big ideas in Computer Science and Engineering

The engineering side of computer science is about: How do
  we minimize the resources we use in order to perform a
  computation (set of computations). Physical machines have
  finite/limited real resources so time, energy, area
  (hardware: memory, wires)… must be minimized.

Big ideas in Computer Science and Engineering

We can provide the abstraction of more physical resources by
 virtualizing the physical resources. That is, sharing the
 physical resource among multiple uses over time. To
 accomplish this, we store the state of a particular usage of
 the physical resources in cheaper storage, e.g. virtual
 memory, virtual channels, multitasking, time-sharing

Big ideas in Computer Science and Engineering

Computations occur at different time scales (rates). To
  minimize work, when possible, hoist a computation out of
  a high rate region into a slower region. A trivial example:
  loop invariants/hoisting.

Big ideas in Computer Science and Engineering

Feedback is the key to diagnosing discrepancies between
  one's model of the world and reality. This is really just the
  heart of the scientific method. It should be used by
  developers to improve programs (debug functional
  problems, identify and improve performance problems).
  Moreover, it can be embedded in programs so that they
  adapt to their data and environment.

Big ideas in Computer Science and Engineering

A data structure or computation can either be dynamic or
• Static structures and computations can be very efficient
  when the size and shape of the computation is constant or
  has little variance.
• Dynamic structures/computations are necessary when the
  size or scope of the problem is unbounded. They cost more
  per element or item, but they only have to be as large (as
  complex) as a particular problem instance.

            Big Ideas of Engineering

There are many big ideas in engineering, e.g.
• iterative design
• real-world constraints
• tradeoffs
• feedback
• complexity management techniques
that are important for understanding not only classical
   engineered systems but also for understanding social
   systems and the natural world.

         History of Ideas of Computer Science

           •   BOOLE: LOGIC AS ALGEBRA
           •   CANTOR: INFINITY
                                                                (Religion, Art, …)
                             Logic                                      5

                        Natural Sciences
                          Biology, …)
     CS                        2

                         Social Sciences
              (Economics, Sociology, Anthropology, …)

                        The Humanities
                (Philosophy, History, Linguistics …)

The whole is more than the sum of its parts. Aristotle, Metaphysica
     Leibniz: Logical Calculus

            Gottfried Wilhelm von Leibniz

  Born: 1 July 1646 in Leipzig, Saxony (now Germany)
Died: 14 Nov 1716 in Hannover, Hanover (now Germany)
        Leibniz´s Calculating Machine

“For it is unworthy of excellent men to lose hours like slaves in
  the labor of calculation which could safely be relegated to
             anyone else if the machine were used.”
              Leibniz´s Logical Calculus
DEFINITION 3. A is in L, or L contains A, is the same as to say that L can be
   made to coincide with a plurality of terms taken together of which A is one.
   B ⊕ N = L signifies that B is in L and that B and N together compose or
   constitute L. The same thing holds for larger number of terms.
AXIOM 1.           B ⊕ N = N ⊕ B.
POSTULATE.         Any plurality of terms, as A and B, can be added to compose
                   A ⊕ B.
AXIOM 2.           A ⊕ A = A.
PROPOSITION 5. If A is in B and A = C, then C is in B.
PROPOSITION 6. If C is in B and A = B, then C is in A.
(For A is in A ⊕ A (by Definition 3). Therefore (by Proposition 6) A is in A.)
PROPOSITION 20. If A is in M and B is in N, then A ⊕ B is in M ⊕ N.

     Boole: Logic as Algebra

                    George Boole

 Born: 2 Nov 1815 in Lincoln, Lincolnshire, England
Died: 8 Dec 1864 in Ballintemple, County Cork, Ireland
  George Boole is famous because he showed that rules used
  in the algebra of numbers could also be applied to logic.

• This logic algebra, called Boolean algebra, has many
  properties which are similar to "regular" algebra.

• These rules can help us to reduce an expression to an
  equivalent expression that has fewer operators.

 Properties of Boolean Operations

A AND B ≡ A • B
A OR B ≡ A + B
        Frege: Matematics as Logic

                Friedrich Ludwig Gottlob Frege

Born: 8 Nov 1848 in Wismar, Mecklenburg-Schwerin (now Germany)
           Died: 26 July 1925 in Bad Kleinen, Germany

            The Predicate Calculus (1)

•   In an attempt to realize Leibniz’s ideas for a language of
    thought and a rational calculus, Frege developed a formal
    notation (Begriffsschrift).

•   He has developed the first predicate calculus: a formal
    system with two components: a formal language and a

                  The Predicate Calculus (2)
The formal language Frege designed was capable of expressing:

    – predicational statements of the form
      ‘x falls under the concept F’ and ‘x bears relation R to y’, etc.,

    – complex statements such as
      ‘it is not the case that ...’ and ‘if ... then ...’, and

    – ‘quantified’ statements of the form
      ‘Some x is such that ...x...’ and
      ‘Every x is such that ...x...’.

The Analysis of Atomic Sentences and
         Quantifier Phrases

  Fred loves Annie.
  Therefore, some x is such that x loves Annie.

  Fred loves Annie.
  Therefore, some x is such that Fred loves x.

  Both inferences are instances of a single valid inference rule.


As part of his predicate calculus, Frege developed a strict
definition of a ‘proof’.

In essence, he defined a proof to be any finite sequence of
well-formed statements such that each statement in the
sequence either is an axiom or follows from previous
members by a valid rule of inference.

        Cantor: Infinity

 Georg Ferdinand Ludwig Philipp Cantor

Born: 3 March 1845 in St Petersburg, Russia
   Died: 6 Jan 1918 in Halle, Germany


Set of integers has an equal number of members as the set
of even numbers, squares, cubes, and roots to equations!

The number of points in a line segment is equal to the
number of points in an infinite line, a plane and all
mathematical space!

The number of transcendental numbers, values such as π
and e that can never be the solution to any algebraic
equation, were much larger than the number of integers.
Hilbert described Cantor's work as:- ´...the finest product
of mathematical genius and one of the supreme
achievements of purely intellectual human activity.´

   Hilbert: Program for Mathematics

                          David Hilbert

Born: 23 Jan 1862 in Königsberg, Prussia (now Kaliningrad, Russia)
             Died: 14 Feb 1943 in Göttingen, Germany
                   Hilbert's program

Provide a single formal system of computation capable of
generating all of the true assertions of mathematics from
“first principles” (first order logic and elementary set

Prove mathematically that this system is consistent, that is,
that it contains no contradiction. This is essentially a proof
of correctness.

If successful, all mathematical questions could be
established by mechanical computation!
         Gödel: End of Hilberts Program

                              Kurt Gödel

Born: 28 April 1906 in Brünn, Austria-Hungary (now Brno, Czech Republic)
            Died: 14 Jan 1978 in Princeton, New Jersey, USA
        Incompleteness Theorems

1931 Über formal unentscheidbare Sätze der Principia
Mathematica und verwandter Systeme.

In any axiomatic mathematical system there are
propositions that cannot be proved or disproved within the
axioms of the system.

In particular the consistency of the axioms cannot be

Turing: Universal Automaton

             Alan Mathison Turing

     Born: 23 June 1912 in London, England
Died: 7 June 1954 in Wilmslow, Cheshire, England
When war was declared in 1939 Turing moved to work
full-time at the Government Code and Cypher School at
Bletchley Park.

Together with another mathematician W G Welchman,
Turing developed the Bombe, a machine based on earlier
work by Polish mathematicians, which from late 1940 was
decoding all messages sent by the Enigma machines of the

At the end of the war Turing was invited by the National
Physical Laboratory in London to design a computer.

His report proposing the Automatic Computing Engine
(ACE) was submitted in March 1946.

Turing returned to Cambridge for the academic year 1947-
48 where his interests ranged over topics far removed from
computers or mathematics, in particular he studied
neurology and physiology.
1948 Newman (professor of mathematics at the University
of Manchester) offered Turing a readership there.

Work was beginning on the construction of a computing
machine by F C Williams and T Kilburn. The expectation
was that Turing would lead the mathematical side of the
work, and for a few years he continued to work, first on the
design of the subroutines out of which the larger programs
for such a machine are built, and then, as this kind of work
became standardized, on more general problems of
numerical analysis.

1950 Turing published Computing machinery and
  intelligence in Mind
1951 elected a Fellow of the Royal Society of London mainly
  for his work on Turing machines
by 1951 working on the application of mathematical theory to
   biological forms.
1952 he published the first part of his theoretical study of
  morphogenesis, the development of pattern and form in
  living organisms.

Von Neuman: Computer

           John von Neumann

 Born: 28 Dec 1903 in Budapest, Hungary
Died: 8 Feb 1957 in Washington D.C., USA
In the middle 30's, Neumann was fascinated by the
problem of hydrodynamical turbulence.
The phenomena described by non-linear differential
equations are baffling analytically and defy even
qualitative insight by present methods.
Numerical work seemed to him the most promising way to
obtain a feeling for the behaviour of such systems. This
impelled him to study new possibilities of computation on
electronic machines ...

Von Neumann was one of the pioneers of computer
science making significant contributions to the
development of logical design. Working in automata
theory was a synthesis of his early interest in logic and
proof theory and his later work, during World War II and
after, on large scale electronic computers.

Involving a mixture of pure and applied mathematics as
well as other sciences, automata theory was an ideal field
for von Neumann's wide-ranging intellect. He brought to it
many new insights and opened up at least two new
directions of research.

He advanced the theory of cellular automata,
advocated the adoption of the bit as a measurement of
computer memory, and
solved problems in obtaining reliable answers from
unreliable computer components.

            Computer Science Hall of Fame

Charles Babbage   Ada Countess of Lovelace        Axel Thue       Stephen Kleene

 Julia Robinson      Noam Chomsky            Juris Hartmanis   John Brzozowski

        Computer Science Hall of Fame

Richard Karp    Donald Knuth      Manuel Blum

Stephen Cook    Sheila Greibach   Leonid Levin
          Women in Computer History
•   Ada Byron King, Countess of Lovelace (1815-1852)
•   Edith Clarke (1883-1959)
•   Rósa Péter (1905-1977)
•   Grace Murray Hopper (1906-1992)
•   Alexandra Illmer Forsythe (1918-1980)
•   Evelyn Boyd Granville
•   Margaret R. Fox
•   Erna Schneider Hoover
•   Kay McNulty Mauchly Antonelli
•   Alice Burks
•   Adele Goldstine
•   Joan Margaret Winters

        Ada Byron King,
        Countess of Lovelace

Ada heard in November, 1834, Babbage's ideas for a new
calculating engine, the Analytical Engine. Ada was touched by
the "universality of Babbages ideas". Hardly anyone else was.
In her article, published in 1843, Lady Lovelace's far-sighted
comments included her predictions that such a machine might
be used to compose complex music, to produce graphics, and
would be used for both practical and scientific use.
Ada suggested to Babbage writing a plan for how the engine
might calculate Bernoulli numbers. This plan, is now regarded
as the first "computer program." A software language was
named "Ada" in her honor in 1979.

    Edith Clarke

Edith Clarke is well-known in the field of
Power Engineering. Her main contribution
to the field was the development of tables
that speeded up calculations for engineers.
This was especially important because she
created them during World War I, when
engineers desperately needed to work

    Rósa Péter

Her first research topic was number theory, but she
became discouraged on finding that her results had
already been proved by Dickson.
For a while Rósa wrote poetry, but around 1930 she was
encouraged to return to mathematics by Kalmár. He
suggested Rósa examine Gödel's work, and in a series of
papers she became a founder of recursive function theory.
Rósa wrote Recursive Functions in 1951, which was the
first book on the topic and became a standard reference.
In 1952 Kleene described Rósa Péter in a paper in Bull.
Amer. Math. Soc. as ``the leading contributor to the
special theory of recursive functions."
From the mid 1950's she applied recursive function theory
to computers. In 1976 her last book was on this topic:
Recursive Functions in Computer Theory.
ENIAC Ladies

Erna Schneider Hoover
     Invention: Computerized Telephone Switching System

     Erna Schneider earned a B.A. with honors in medieval history
     from Wellesley College, and later a Ph.D. in the philosophy and
     foundations of mathematics from Yale University.

     In 1954, after teaching for a number of years at Swarthmore
     College, she began a research career at Bell Laboratories.

     While there, she invented a computerized switching system for
     telephone traffic, to replace existing hard-wired, mechanical
     switching equipment. For this ground-breaking achievement --
     the principles of which are still used today -- she was awarded
     one of the first software patents ever issued (Patent #3,623,007,
     Nov. 23, 1971) . At Bell Labs, she became the first female
     supervisor of a technical department.

Grace Murray Hopper

                Grace Murray Hopper: Inventor of
                   the Computer Compiler

                She participated in the
                   development of the Common
                   Business-Oriented Language
                   (COBOL; 1959-61) for the

                The very first computer bug:
                   Grace Murray Hopper
                   originated this term when she
                   found a real bug in a computer

    Ida Rhodes
        (1900 -1986)

She designed the C-10 language in the early 1950
   for the UNIVAC.

She also designed the original computer used for
  the Social Security Administration.

In 1949, the department of Commerce awarded her
    an exceptional Service Gold Medal for
    significant pioneering leadership and
    outstanding contributions to the scientific
    progress of the nation.

Evelyn Boyd Granville
     Evelyn Boyd Granville - was one of the first
        African American women to earn a Ph.D. in

     She became a specialist in rocket and missile
        fuses, orbit computations and trajectory
        calculations for national defense and the space
        program providing technical support for the
        Vanguard, Mercury and Apollo projects. In
        addition, she served as an educational
        consultant to the State of California, helping to
        improve the teaching of math in elementary
        and secondary schools.

Jean E. Sammet
  She initiated the concept and directed the
  development of the first FORMAC (FORmula
  MAnipulation Compiler). FORMAC was the
  first widely used general language. It was also
  the first system for manipulating nonnumeric
  algebraic expressions.

  In 1965, she became programming language
  technology manager in the IBM Systems
  Development Division. Afterward, she wrote a
  book on programming languages.

  Her book, Programming Languages: History and
  Fundamentals, was published by Prentice-Hall
  in 1969.

     Dr. Thelma Estrin
              Professor Emerita

Now retired from University of California, Los Angeles, where
   she was a computer science professor, Estrin was a pioneer
   in the field of biomedical engineering who realized that
   some of the most important ideas in science did not fit
   neatly into separate fields. Her work would combine
   concepts from anatomy, physiology, and neuroscience with
   electronic technology and electrical engineering. She was
   one of the first to use computer technology to solve
   problems in health care and in medical research.
Estrin designed and then implemented the first system for
   analog-digital conversion of electrical activity from the
   nervous system," a precursor to the use of computers in
   medicine. She published papers on how to map the brain
   with the help of computers, and long before the Internet
   became popular and easy to use, she designed a computer
   network between UCLA and UC Davis in 1975.

    Dana Angluin
B.A., Ph.D. University of California at Berkeley, 1969,
   1976, Joined Yale Faculty 1979
Algorithmic models of learning
Professor Angluin’s thesis was among the first work to
   apply complexity theory to the field of inductive
Her work on learning from positive data reversed a
   previous dismissal of that topic, and established a
   flourishing line of research. Her work on learning
   with queries established the models and the
   foundational results for learning with membership
   queries. Recently, her work has focused on the areas
   of coping with errors in the answers to queries, map-
   learning by mobile robots, and fundamental questions
   in modeling the interaction of a teacher and a learner.

   Nancy A. Lynch
Professor of Electrical Engineering and Computer
   Science, Massachusetts Institute of Technology.
   Nancy Lynch heads the Theory of Distributed Systems
   Group (TDS) research group in MIT's Laboratory for
   Computer Science. This group is part of the Theory of
   Computation (TOC) group and also of the Principles of
   Computer Systems (POCS) group.
Teaching - Spring 2001: 6.897 Modeling and Analyzing
   Really Complicated Systems, Using State Machines
   Fall 2001 6.852 Distributed Algorithms
Research interests:
   distributed computing, real-time computing, algorithms,
   lower bounds, formal modelling and verification.

Adele E. Goldberg

  Adele Goldberg received her Ph.D. from the
  University of California at Berkeley in 1992. She
  is an associate professor in the UIUC
  Department of Linguistics and a part-time
  Beckman Institute faculty member in the
  Cognitive Science Group. Her fields of
  professional interest are syntax/semantics,
  constructional approaches to grammar, lexical
  semantics, language acquisition, language
  processing, and categorization.

Sandra L. Kurtzig
In today's male-dominated software industry, women
founders and CEOs (chief executive officers) are
practically nonexistent. But while software titans like
Bill Gates and Oracle's Larry Ellison have become the
poster boys for Silicon Valley success, the first
multimillion-dollar software entrepreneur was a

Starting with just $2,000, Sandra Kurtzig built a
software empire that, at its peak, boasted around $450
million in annual sales. And it all started as a part-time

 International Difference in Percentage of
  Female Students within Informatics 2001
                             Country                    %Women
                England                                     35
                Italy, France, Spain, Portugal            40 50
                Former Sowjetunion                          50
                Bulgaria                                  60-70
                Grece                                       59
                India, Malaysia, Singapure                  50
                Germany                                      8

            Olga Goldmann, Seminar: Geschichte der Informatik   93
Philosophical Problems of Computing

                 Fleming's original thermionic valve, 1889.

                 Science Museum London

Babbage's Difference Engine No 1, 1832.
Front detail.

Science Museum London
The 'Bombe' code-breaking
machine, 1943 at Bletchley Park
in Bedfordshire, the British
forces' intelligence centre during
The cryptographers at Bletchley
Park deciphered top- secret
military communiques between
Hitler and his armed forces.
These communiques were
encrypted in the 'Enigma' code
which the Germans considered
However, the codebreakers at
Bletchley cracked the code with
the help of the Bombe machine.

Code-breaking personnel at
Bletchley Park, 1943.
This shows one of the Hut 3 priority
teams at Bletchley Park, in which
civilian and service personnel worked
together at code- breaking.

                                Wrens* operating the
                                'Colossus' computer, 1943.
                                Colossus was the world's first
                                electronic programmable
                                computer, at Bletchley Park
                                in Bedfordshire.

* Women's Royal Naval Service
The computer presents itself as a culturally defining technology
  and has become a symbol of the new millennium, playing a
  cultural role far more influential than the mills in the Middle
  Ages, mechanical clocks in the seventeenth century, or the
  steam engine in the age of the industrial revolution.
                                              (Bolter 1984)

“The important difference is that the computer (the physical
  object that is directly related to the theory) is not a focus of
  investigation (not even it he sense of being the cause of
  certain algorithm proceeding in certain way) but it is rather
  theory materialized, a tool always capable of changing in
  order to accommodate even more powerful theoretical
  concepts. ”
               Scientific Methods in Computer Science, GDC

         Philosophy of Computing
        Philosophy of Information?


              SUBSTANTIVE - VERB
            PARTICLE – FORCE (FIELD)

       Instructive analogy from physics: ATOMISM
    PARTICLES are considered as the primary principle.
FIELDS/INTERACTIONS are defined in terms of particles, particle
                                   What Is Information?
                                                     Luciano Floridi

There is no consensus yet on the definition of semantic information.

The Standard Definition of declarative, objective and semantic Information

       information = meaningful data

Floridis main thesis is that meaningful and well-formed data constitute
   information only if they also qualify as contingently truthful.

Now the problem is to interpret what contingently truthful means in this
"The contingent, roughly speaking, is what has the ground of its being not in itself but in somewhat else. Such is the aspect under
     which actuality first comes before consciousness . . . But the contingent is only one side of the actual . . . . It is the actual, in
     the signification of something merely possible. Accordingly we consider the contingent to be what may or may not be, what
     may be in one way or another, whose being or not-being, and whose being on this wise or otherwise, depends not upon itself
     but on something else. To overcome this contingency is . . .the problem of science . . . ." Logic, § 145 Note.

       The Philosophy of Information (PI)

A new philosophical discipline, concerned with

a) the critical investigation of the conceptual nature and basic
   principles of information, including its dynamics (especially
   computation and flow), utilisation and sciences; and

b) the elaboration and application of information-theoretic and
   computational methodologies to philosophical problems.
                                           L. Floridi
"What is the Philosophy of Information?", Metaphilosophy, 2002
What is Computation?
   Brian Cantwell Smith

The Age of Significance
Volume I • Introduction

Brian Cantwell Smith

        Construals of Computation
1. Formal symbol manipulation (FSM): the idea,
    derivative from a century’s work in formal logic and
    metamathematics, of a machine manipulating (at least
    potentially) symbolic or meaningful expressions
    without regard to their interpretation´or semantic

2. Calculation of a function (FUN): behavior that, when
    given as input an argument to a (typically
    mathematical) function, produces as output the value of
    that function on that argument.

3. Effective computability (EC): what can be done—and
    how hard it is to do it—mechanically, as it were, by, an
    abstract analogue of a “mere machine”;
4. Rule-following or algorithm execution (RF): what is
  involved, and what behaviour is thereby produced, in
  following a set of rules or instructions, such as when cooking

5. Digital state machines (DSM): the idea of an automaton with
   a finite, disjoint set of internally homogeneous states—as
   parodied in the “clunk, clunk, clunk” gait of a 1950’s cartoon

6. Information processing (IP): what is involved in storing,
   manipulating, displaying, and otherwise trafficking in
   “information,” whatever information might be; and

7. Physical symbol systems (PSS): the idea, made famous by
   Newell and Simon, that, somehow or other, computers interact
   with and perhaps are also made of symbols in a way that
   depends on their mutual physical embodiment.
                     Church-Turing Thesis*

*Source:   Stanford Encyclopaedia of Philosophy (B. Jack Copeland)

A Turing machine is an abstract representation
of a computing device.

It is more like a computer program (software)
than a computer (hardware).

LCMs [logical computing machines:
Turing’s expression for Turing machines]
were first proposed by Alan Turing,
in an attempt to give a mathematically precise definition
of "algorithm" or "mechanical procedure".

         Effective Computability

The Church-Turing thesis
concerns an
effective or mechanical method
in logic and mathematics.

     A method M is called ‘effective’ or ‘mechanical’ iff:

1.   M is set out in terms of a finite number of exact instructions
     (each instruction being expressed by means of a finite number
     of symbols);

2.   M will, if carried out without error, always produce the desired
     result in a finite number of steps;

3.   M can (in principle) be carried out by a human being unaided
     by any machinery save paper and pencil;

4.   M demands no insight or ingenuity on the part of the human
     being carrying it out.

 Misunderstandings of the Turing Thesis

Turing did not show that his machines can solve any problem
  that can be solved "by instructions, explicitly stated rules,
  or procedures" and nor did he prove that a universal Turing
  machine "can compute any function that any computer,
  with any architecture, can compute".

Turing proved that his universal machine can compute any
  function that any Turing machine can compute; and he
  put forward, and advanced philosophical arguments in
  support of, the thesis here called Turing’s thesis.

Turing introduces his machines as an idealised description of
  a certain human activity, the tedious one of numerical
  computation, which until the advent of automatic
  computing machines was the occupation of many
  thousands of people in commerce, government, and
  research establishments.

Turing’s "Machines". These machines are humans who

A man provided with paper, pencil, and rubber, and subject to
  strict discipline, is in effect a universal machine. (Turing)

A thesis concerning the extent of effective methods -
   procedures that a human being unaided by machinery is
   capable of carrying out - has no implication concerning the
   extent of the procedures that machines are capable of
   carrying out, even machines acting in accordance with
   ‘explicitly stated rules’.

Among a machine’s repertoire of atomic operations there may
  be those that no human being unaided by machinery can

     Two Most Fundamental Functions

SEARCH (identify objects = divide universe in parts)

SORT (organize: what is the same, what is different)

                  Repetition, Similarity

As repetition is based upon similarity, it must be relative. Two
  things that are similar are always similar in certain respects.
               Repetition, Similarity

Searching for similarity and differences leads to
  classifications i.e. the division of objects or events in
  different groups/classes.

The simplest tool by for classification is the binary opposition
  or dichotomy (dualism). When we use dichotomy, we only
  decide if an object is of kind A or of kind ∼A. Examples of
  frequent dichotomies are yes/no, true/false, before/after,
  more/less, above/below, etc.


The basic feature of experimental method is its
  It must be possible to establish essentially the same
  experimental situation in order to obtain the same results.
  This means that the experimental arrangement can be made
  with essentially equivalent parts.

What we call “essentially equivalent” (or we can call it
 “essentially the same”) depends on situation. Even here the
 principle of information hiding helps us to get a practical
 “level of resolution” which means information hiding for
 all objects below that level.

Declaring two systems/particles/states as identical is entirely
  the matter of focus.

For example if we focus on question of how many people in
   this country are vegetarians, we just treat all people as
   equal units.
If on the other hand we want to know how many women in
   this country are vegetarian, we discriminate between men
   and women in our analysis of people, so they are no longer


Declaring two systems/particles/states as identical is entirely the
                        matter of focus.


We can e.g. assume that bacteria of particular sort are
 interchangeable (indistinguishable) in certain context.

That enables us to make repeated experiments with different
  agents and to treat all bacteria of the same type as equal.

It does not mean that they are identical in the absolute sense. It
    only means that for our purpose the existing difference does
    not have any significance.


Example of ancient atomic theory. The problem of showing
  that one single physical body- say piece of iron is
  composed of atoms is at least as difficult as of showing
  that all swans are white. Our assertions go in both cases
  beyond all observational experience.

The difficulty with these structural theories is not only to
  establish the universality of the law from repeated
  instances as to establish that the law holds even for one
  single instance.


A singular statement like “This swan here is white” may be
  said to be based on observation. Yet it goes beyond
  experience- not only because of the word “white”, but
  because of the word “swan”.

For by calling something a “swan”, we attribute to it
  properties which go far beyond mere observation. So even
  the most ordinary singular statements are always the
  interpretations of the facts in the light of theories!

          Classification (1)

– A relation is an equivalence relation if it is
  reflexive, symmetric and transitive.

– An example of such is equality on a set.

                      Classification (2)
                                                class 1:
  CLASSES SHOULD BE DISJUNCT ...                positive effect

                                                class 2:
                       class2                   negative effect
                                                class 3: no effect

                                                 Universe here is a group of
                                                 patients who test a new

                             Classification (3)
                          Jorge Luis Borges,
               "The Analytical Language of John Wilkins“
Borges's fictive encyclopedia divides animals into:
                                              (h) those that tremble as if they were
   (a)   those that belong to the Emperor,        mad,
   (b)   embalmed ones,                       (i) those that resemble flies from a
   (c)   those that are trained,                  distance
                                              (j) those drawn with a very fine camel's
   (d)   suckling pigs,                           hair brush,
   (e)   mermaids,                            (k) innumerable ones,
   (f)   fabulous ones,                       (l) others,
   (g)   stray dogs,                          (m) those that have just broken a flower

Relations to Natural Philosophers Paradigm

                        Konrad von Megenberg.
                        Buch der Natur (Augsburg, 1481).
                        A medieval Latin compendium of
                        science translated into German in
                        the fourteenth century and was first
                        printed in Augsburg in 1475.
                        (Lessing J. Rosenwald Collection),
                        Lobrary of Congress

Universe As An Assemblage Of Natural Objects

                       Rudolf II, patron of Kepler and
                       briefly Brahe was fascinated by
                       alchemy, astrology, and other
                       ways in which human art
                       interfered in or perfected nature.
                       Here one of his court painters
                       has, through art, depicted Rudolf
                       as an assemblage of natural
                       objects: fruits, vegetables,
                       grains, and flowers.
                       Galileo referred contemptuously
                       to such portraits in his Dialogue
                       on Two Chief World Systems.

Universe As An Assemblage Of Natural Objects

                                                       What properties must a
                                                       system have to be living?
                                                       Can we make a clear
                                                       distinction between living
                                                       and nonliving systems?
                                                       What is connection between
                                                       self-organization and life?
 Two genetically engineered mice, 1988.
 These male mice are direct descendants of the first
 transgenic mammals to be granted a US patent. This
 strain was patented by Harvard University.
 Science Museum London
Philosophy Of Science – A New Paradigm
It is time again to direct gaze upward and see Nature as a whole.
    What have we learned last couple of centuries of scientific
    specialisation and division to ever smaller fields?

Field of computing seems to be the best candidate to replace
   physics as paradigmatic mirror of Philosophy of Science used
   to reflect the Universe that matters.

This time Universe has to include human, and not only as a

Unifying concept of information has even the potential to bring
  together Sciences and Humanities. New Natural Philosophy?

A New Kind of Science
    Stephen Wolfram

        Santiago Theory - Autopoiesis

”Living systems are cognitive systems, and living as a
  process is a process of cognition. This statement is valid
  for all organisms, with and without a nervous system.”

Maturana Humberto, Biology of Cognition, 1970



     Evolutionary Biological Paradigm

The most developed forms of computational systems:
  Evolutive self-organizing self-sustaining complex systems
  built of metabolic/computational units

Pieter BRUEGEL, the Elder

Shared By: