950 likes | 1.16k Vues
CT3620 VETENSKAPSMETODIK FÖR TEKNIKOMRÅDET HISTORY OF IDEAS IN COMPUTING Gordana Dodig-Crnkovic Department of Computer Science and Engineering Mälardalen University 2004. A History of Computing: A History of Ideas Gordana Dodig-Crnkovic
E N D
CT3620 VETENSKAPSMETODIK FÖR TEKNIKOMRÅDET HISTORY OF IDEAS IN COMPUTING Gordana Dodig-Crnkovic Department of Computer Science and Engineering Mälardalen University 2004
A History of Computing: A History of Ideas Gordana Dodig-Crnkovic Department of Computer Science and ElectronicMälardalen University, Sweden
HISTORY OF COMPUTING • LEIBNIZ: LOGICAL CALCULUS • BOOLE: LOGIC AS ALGEBRA • FREGE: MATEMATICS AS LOGIC • CANTOR: INFINITY • HILBERT: PROGRAM FOR MATHEMATICS • GÖDEL: END OF HILBERTS PROGRAM • TURING: UNIVERSAL AUTOMATON • VON NEUMAN: COMPUTER • CONCEPT OF COMPUTING • FUTURE COMPUTING
Pieter BRUEGEL, the Elder The Tower of Babel, 1563
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 • Quantum Computing • Biological Computing • Agent Based Computing • ……
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. http://en.wikipedia.org/wiki/Computer_science
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.
Computer 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 management. • Information systems (IS) is the application of computing to support the operations of an organization: operating, installing, and maintaining the computers, software, and data. • 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. .
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 • ...
Hardware • Control structures and Microprogramming • Arithmetic and Logic structures • Memory structures • Input/output and Data communications • Logic Design • Integrated circuits • VLSI design • Performance and reliability • ...
Software • 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 • .....
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 engineering) • Robotics • ....
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 world. 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. http://www.cs.caltech.edu/~andre/general/computer_science.html
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 complete. 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 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 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 Engineering The engineering side of computer science is about minimizing 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 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 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 • LEIBNIZ: LOGICAL CALCULUS • BOOLE: LOGIC AS ALGEBRA • FREGE: MATEMATICS AS LOGIC • CANTOR: INFINITY • HILBERT: PROGRAM FOR MATHEMATICS • GÖDEL: END OF HILBERTS PROGRAM • TURING: UNIVERSAL AUTOMATON • VON NEUMAN: COMPUTER 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 L I N K S
CS 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. PROPOSITION 7. A 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, EnglandDied: 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 logic.
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.
Proof 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, RussiaDied: 6 Jan 1918 in Halle, Germany
Infinities 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 theory). 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