CT3620 VETENSKAPSMETODIK FÖR TEKNIKOMRÅDET HISTORY OF IDEAS IN COMPUTING Gordana Dodig-Crnkovic Department of Computer Science and Engineering Mälardalen University 2004 1 2 Pieter BRUEGEL, the Elder COMPUTING CURRICULA 3 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 – … 4 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" 5 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" 6 Yet there is a whole universe of people contributing to the development of the field of computing rather different from hackers and painters... 7 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 8 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. 9 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). 10 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). 11 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 ... 12 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. 13 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 14 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. . 15 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. 16 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. 17 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 .... 18 Mathematical Foundations • Discrete mathematics (Boolean algebra, Graph theory, Domain theory ..) • Mathematical logic • Probability and Statistics • Information theory • ... 19 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 • ... 20 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 • ... 21 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 • ... 22 Computer Systems Organization • • • • • • Computer architecture Computer networks Distributed computing Performance of systems Computer system implementation ... 23 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 ... 25 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 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 27 Computing • CS != Programming • CS >> Programming • Computing != CS • Computing >> CS 28 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 29 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). 30 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. 31 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(), Theta()]) Common idioms/solution techniques, e.g. – divide-and-conquer – linear programming – dynamic programming – graph algorithms 32 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 complexity. – approximation algorithms – online algorithms – polynomial heuristic solutions – randomized algorithms 33 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) 34 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 transformations. 35 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 comprehension • 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) 36 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) 37 Big ideas in Computer Science and Engineering • A computing machine can be implemented out of X. • X=mechanical interactions, relays, tubes, transistors, DNA, molecules... • 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 disciplines) 38 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). 39 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) 40 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. 41 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 42 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. 43 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. 44 Big ideas in Computer Science and Engineering A data structure or computation can either be dynamic or static. • 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. 45 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. 46 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 LINKS 47 C u ltu re L o g ic (R elig io n , A rt, … ) 5 & M a th em a tics 1 CS N atu ral S cien ces (P hy sics, C h em istry , B iology , … ) 2 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, … ) 3 T h e H u m an ities (P hilo so p h y, H isto ry, L in g u istics … ) 4 The whole is more than the sum of its parts. Aristotle, Metaphysica 21 48 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) 49 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.” 50 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. 51 Boole: Logic as Algebra George Boole Born: 2 Nov 1815 in Lincoln, Lincolnshire, England Died: 8 Dec 1864 in Ballintemple, County Cork, Ireland 52 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. 53 Properties of Boolean Operations A AND B A B A OR B A + B 54 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 55 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. 56 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...’. 57 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. 58 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. 59 Cantor: Infinity Georg Ferdinand Ludwig Philipp Cantor Born: 3 March 1845 in St Petersburg, Russia Died: 6 Jan 1918 in Halle, Germany 60 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. 61 Hilbert described Cantor's work as:- ´...the finest product of mathematical genius and one of the supreme achievements of purely intellectual human activity.´ 62 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 63 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! 64 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 65 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 proved. 66 Turing: Universal Automaton Alan Mathison Turing Born: 23 June 1912 in London, England Died: 7 June 1954 in Wilmslow, Cheshire, England 67 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 Luftwaffe. 68 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. 69 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. 70 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. 71 Von Neuman: Computer John von Neumann Born: 28 Dec 1903 in Budapest, Hungary Died: 8 Feb 1957 in Washington D.C., USA 72 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 ... 73 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. 74 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. 75 Computer Science Hall of Fame Charles Babbage Julia Robinson Ada Countess of Lovelace Noam Chomsky Axel Thue Juris Hartmanis Stephen Kleene John Brzozowski 76 Computer Science Hall of Fame Richard Karp Stephen Cook Donald Knuth Sheila Greibach Manuel Blum Leonid Levin 77 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 78 Ada Byron King, Countess of Lovelace (1815-1852) 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. 79 Edith Clarke (1883-1959) 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 faster. 80 Rósa Péter (1905-1977) 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. 81 ENIAC Ladies 82 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. 83 Grace Murray Hopper (1906-1992) Grace Murray Hopper: Inventor of the Computer Compiler She participated in the development of the Common Business-Oriented Language (COBOL; 1959-61) for the UNIVAC The very first computer bug: Grace Murray Hopper originated this term when she found a real bug in a computer 84 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. 85 Evelyn Boyd Granville Evelyn Boyd Granville - was one of the first African American women to earn a Ph.D. in Mathematics. 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. 86 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. 87 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. 88 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 inference. 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. 89 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. 90 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. 91 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 woman. 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 job. 92 International Difference in Percentage of Female Students within Informatics 2001 Country England Italy, France, Spain, Portugal Former Sowjetunion Bulgaria %Women 35 40 50 50 60-70 Grece 59 India, Malaysia, Singapure 50 Germany 8 Olga Goldmann, Seminar: Geschichte der Informatik http://www.millo.de/virtosphere/schillo/teaching/WS2001/Vortraege/Frauen.ppt 93 Philosophical Problems of Computing Fleming's original thermionic valve, 1889. Science Museum London 94 Babbage's Difference Engine No 1, 1832. Front detail. Science Museum London 95 The 'Bombe' code-breaking machine, 1943 at Bletchley Park in Bedfordshire, the British forces' intelligence centre during WWII. 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 unbreakable. However, the codebreakers at Bletchley cracked the code with the help of the Bombe machine. 96 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. 97 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 98 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) 99 “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 100 Philosophy of Computing or Philosophy of Information? DICHOTOMY INFORMATION – COMPUTATION SUBSTANTIVE - VERB DATA STRUCTURE – FUNCTION/ALGORITHM PARTICLE – FORCE (FIELD) Instructive analogy from physics: ATOMISM PARTICLES are considered as the primary principle. FIELDS/INTERACTIONS are defined in terms of particles, particle exchange. 101 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 (SDI): 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 context. "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. www.class.uidaho.edu/mickelsen/texts/Hegel%20Glossary.htm 102 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 http://www.wolfson.ox.ac.uk/~floridi/papers.htm 103 What is Computation? Brian Cantwell Smith 104 The Age of Significance Volume I • Introduction Brian Cantwell Smith 105 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 content; 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”; 106 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 dessert; 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 robot; 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. 107 Church-Turing Thesis* *Source: Stanford Encyclopaedia of Philosophy (B. Jack Copeland) 108 A Turing machine is an abstract representation of a computing device. It is more like a computer program (software) than a computer (hardware). 109 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". 110 Effective Computability The Church-Turing thesis concerns an effective or mechanical method in logic and mathematics. 111 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. 112 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". 113 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. 114 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. 115 Turing’s "Machines". These machines are humans who calculate. (Wittgenstein) A man provided with paper, pencil, and rubber, and subject to strict discipline, is in effect a universal machine. (Turing) 116 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’. 117 Among a machine’s repertoire of atomic operations there may be those that no human being unaided by machinery can perform. 118 Two Most Fundamental Functions SEARCH (identify objects = divide universe in parts) SORT (organize: what is the same, what is different) 119 Repetition, Similarity As repetition is based upon similarity, it must be relative. Two things that are similar are always similar in certain respects. 120 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. 121 Identity The basic feature of experimental method is its reproducibility: 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. 122 Identity 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 identical. 123 Identity Declaring two systems/particles/states as identical is entirely the matter of focus. 124 Identity 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. 125 Identity 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. 126 Identity 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! 127 Classification (1) – A relation is an equivalence relation if it is reflexive, symmetric and transitive. – An example of such is equality on a set. 128 Classification (2) CLASSES SHOULD BE DISJUNCT ... class2 class 1: positive effect class 2: negative effect class1 class 3: no effect class3 Universe here is a group of patients who test a new medicine. ... AND CHOSEN ACCORDING TO SAME CRITERIA ... 129 Classification (3) Jorge Luis Borges, "The Analytical Language of John Wilkins“ (Incongruity) Borges's fictive encyclopedia divides animals into: (a) those that belong to the Emperor, (b) embalmed ones, (c) those that are trained, (d) suckling pigs, (e) mermaids, (f) fabulous ones, (g) stray dogs, (h) those that tremble as if they were mad, (i) those that resemble flies from a distance (j) those drawn with a very fine camel's hair brush, (k) innumerable ones, (l) others, (m) those that have just broken a flower vase 130 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 131 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. 132 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 133 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 machine! Unifying concept of information has even the potential to bring together Sciences and Humanities. New Natural Philosophy? 134 135 A New Kind of Science Stephen Wolfram 136 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 137 INFORMATION COMPUTATION COGNITION 138 Evolutionary Biological Paradigm The most developed forms of computational systems: Evolutive self-organizing self-sustaining complex systems built of metabolic/computational units 139 140 Pieter BRUEGEL, the Elder

Descargar
# Document