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 roomsized 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
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
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
– File formats
• Information systems
– Databases
– Information Storage and retrieval
– Information Interfaces and Presentation
• Data recovery
• .....
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
• ....
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
http://web.clas.ufl.edu/users/rhatch/pages/10-HisSci/links/ H I S T O R Y O F S C I E N C E
C u ltu re
L o g ic
(R elig io n , A rt, … )
M a th em a tics
N atu ral S cien ces
(P hy sics,
C h em istry ,
B iology , … )
S ocial S cien ces
(E co n o m ics, S o ciolo g y, A n th ro p o lo g y, … )
T h e H u m an ities
(P hilo so p h y, H isto ry, L in g u istics … )
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.
B  N = N  B.
Any plurality of terms, as A and B, can be added to compose
A  B.
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 194748 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
Julia Robinson
Ada Countess of Lovelace
Noam Chomsky
Axel Thue
Juris Hartmanis
Stephen Kleene
John Brzozowski
Computer Science Hall of Fame
Richard Karp
Stephen Cook
Donald Knuth
Sheila Greibach
Manuel Blum
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, maplearning 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
Italy, France, Spain, Portugal
Former Sowjetunion
40 50
India, Malaysia, Singapure
Olga Goldmann, Seminar: Geschichte der Informatik
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?
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*
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:
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);
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;
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:
positive effect
class 2:
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:
those that belong to the Emperor,
embalmed ones,
those that are trained,
suckling pigs,
fabulous ones,
stray dogs,
those that tremble as if they were
(i) those that resemble flies from a
(j) those drawn with a very fine camel's
hair brush,
(k) innumerable ones,
(l) others,
(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