Presentation is loading. Please wait.

Presentation is loading. Please wait.

CMPF144 FUNDAMENTALS OF COMPUTING THEORY An Introduction to Computer Science.

Similar presentations


Presentation on theme: "CMPF144 FUNDAMENTALS OF COMPUTING THEORY An Introduction to Computer Science."— Presentation transcript:

1 CMPF144 FUNDAMENTALS OF COMPUTING THEORY An Introduction to Computer Science

2 Module 1CMPF144 Fundamentals of Computing TheorySlide 2 Agenda Section 1 - A bit of Formalisation Section 2 – a bit of history Section 3 - the emergence of electronics

3 Module 1CMPF144 Fundamentals of Computing TheorySlide 3 Module 1 Section 1 A Bit of Formalisation

4 Module 1CMPF144 Fundamentals of Computing TheorySlide 4 Computer Science: Few Definitions 1. Computer Science (CS) is the study of Computation and Information processing, in hardware and in software. 2. Computer Science, the study of computers, including their design, operation, and use in processing information.

5 Module 1CMPF144 Fundamentals of Computing TheorySlide 5 Computer Science Defined: Aspects Computer science combines both theoretical and practical aspects of engineering, electronics, information theory, mathematics, logic, and human behavior (NOT only programming). Aspects of computer science range from programming and computer architecture to artificial intelligence and robotics.

6 Module 1CMPF144 Fundamentals of Computing TheorySlide 6 Computational Models 1. The Turing machine Model: Stores characters on an infinitely long tape. One square, (representing an instruction/formula), being scanned at any given time, (by a read/write head), and executed.

7 Module 1CMPF144 Fundamentals of Computing TheorySlide 7 Computational Models Continued.. 2. Recursive Functions Model: uses functions and function composition to operate on numbers. The lambda calculus, one of the topics covered under Algorithmic Analysis, uses a similar approach. Others, including Markov Algorithms and Post Systems, use grammar-like rules to operate on character strings.

8 Module 1CMPF144 Fundamentals of Computing TheorySlide 8 Fundamental Principle of CS The Church-Turing thesis: “all known kinds of general computing devices are essentially equivalent in what they can do, although they vary in time and space efficiency” This thesis is sometimes treated as the fundamental principle of computer science.

9 Module 1CMPF144 Fundamentals of Computing TheorySlide 9 von Neumann Machine 1. Todays Sequential Computers are named after von Neumann computers or Turing machines 2. They resemble most real computers in use today. 3. They do one small, deterministic task at a time. The Deterministic tasks done during an Instruction Cycle are:  “FETCH and EXECUTE a SIMPLE DIRECTIVE “  We know this as an INSTRUCTION).

10 Module 1CMPF144 Fundamentals of Computing TheorySlide 10 Other Types of Computers Some are practical like: parallel machines Some are theoretical like: Random Machines Oracle and Quantum machines.

11 Module 1CMPF144 Fundamentals of Computing TheorySlide 11 CS Study Spectrum 1. What programs can and cannot do ? Computability and Artificial Intelligence 2. How programs should efficiently perform specific tasks? Algorithms 3. How programs should store and retrieve specific kinds of information? Data Structures 4. How programs and people should communicate with each other? user interfaces programming languages

12 Module 1CMPF144 Fundamentals of Computing TheorySlide 12 First Exercise Students are grouped into several groups Category A identifies 5 items 'that can be solved using computers' Category B identifies 5 items 'that cannot be solved using computers' Category C identifies 5 items 'that can eventually be solved; not so sure; in any case difficult; we don't know‘ Students discuss in class the items identified

13 Module 1CMPF144 Fundamentals of Computing TheorySlide 13 Up to 1900 Section 2 A Bit of History: Up to 1900

14 Module 1CMPF144 Fundamentals of Computing TheorySlide 14 Up to 1900 Theoretical computing began with Pascal and Babbage in the 1800's. Antikythera mechanism built in 87 B.C A device for astronomical calculations Abacus: Ancient Babylonia Al-Khawrizmi: (around 800 AD) wrote 'Al-jabr wa'l muqabala' (Al-jabr --> Algebra) one of the greatest mathematicians ever

15 Module 1CMPF144 Fundamentals of Computing TheorySlide 15 Up to 1900 Napier, John (1550-1617 ) invented logarithms and first to use decimal to represent fraction numbers In 1641 the French mathematician and philosopher Blasé Pascal built a mechanical adding machine

16 Module 1CMPF144 Fundamentals of Computing TheorySlide 16 Up to 1900 Continued.. Gottfried Wilhelm Leibniz (1646-1716). He made a machine similar to Pascal but Leibniz also advocated use of the binary system for doing calculations. Charles Babbage (1791-1871) The Difference Engine The Analytical Engine; Supposed to calculate tables for x 2 + x + 41 Ada Augusta Byron, Countess of Lovelace (1815- 1852), Sometimes is called the ‘first’ programmer, ADA language is named after her.

17 Module 1CMPF144 Fundamentals of Computing TheorySlide 17 Up to 1900 Continued.. George Boole (1815-1864 ) Formulated a mathematical form of logic (Boolean Logic) Herman Hollerith (1860-1929) Invented ‘punched card’ for the machine (like programming tool)

18 Module 1CMPF144 Fundamentals of Computing TheorySlide 18 1900 onwards.. David Hilbert Questions: 1. Is mathematics complete? 2. Is mathematics consistent? 3. Is mathematics decidable? (Entscheidungsproblem. )

19 Module 1CMPF144 Fundamentals of Computing TheorySlide 19 1900 to 1940s.. 1. 1931, Kurt Gödel answered two of Hilbert's questions: That every sufficiently powerful formal system is either inconsistent or incomplete. If an axiom system is consistent, this consistency cannot be proved within itself.

20 Module 1CMPF144 Fundamentals of Computing TheorySlide 20 1900 to 1940s.. Hilberts 3 rd question remained open, with 'provable' substituted for 'true'. In 1936, Alan Turing provided a solution to Hilbert's Entscheidungsproblem by constructing a formal model of a computer “The Turing machine” that there were problems such a machine could not solve. One such problem is the so-called "halting problem": given a Pascal program, does it halt on all inputs?

21 Module 1CMPF144 Fundamentals of Computing TheorySlide 21 From 1900 Onwards Section 3 Electronics Finds Its Way into Computation

22 Module 1CMPF144 Fundamentals of Computing TheorySlide 22 Electronic Computers.. Alan Turing: “COLOSSUS” A Computing device breaking ENIGMA Code Howard H. Aiken : “Mark I” An electromechanical computer in 1944, with the assistance of IBM. John Vincent Atanasoff and Clifford Berry An electronic computer for solving systems of linear equations. It never worked properly !

23 Module 1CMPF144 Fundamentals of Computing TheorySlide 23 1940 Onwards … John William Mauchly with J. Presper Eckert, Jr. :” ENIAC” A general-purpose electronic computer originally intended for artillery calculations Von Neumann's report: “EDVAC” "First Draft of a Report on the EDVAC“ A very influential report that contains many of the ideas still used in most modern digital computers, including a merge-sort routine. Eckert and Mauchly went on to build UNIVAC.

24 Module 1CMPF144 Fundamentals of Computing TheorySlide 24 1940 to 1950.. Konrad Zuse: “Z3” The first operational, general-purpose, programcontrolled calculator (1941) F. C. Williams and others: “MARK 1” Manchester University built the Manchester Mark I, one version of which was working as early as June 1948. This machine is sometimes called the first stored-program digital computer.

25 Module 1CMPF144 Fundamentals of Computing TheorySlide 25 Konrad Zuse – Z1 and Z3 Zuse1 ('Z1'): first electro-mechanical computer, Berlin, 1936-1938 based on rotating metal plates Zuse3 ('Z3'): first electrical computer, Berlin, 1939-1941, based on relays Freely programmable Programs were stored on punch tape reader - not in memory Memory was used to store variables

26 Module 1CMPF144 Fundamentals of Computing TheorySlide 26 Z3 - Architecture

27 Module 1CMPF144 Fundamentals of Computing TheorySlide 27 Z3 - Details Implementation: 600 relays numeric unit, 1600 relays storage unit Frequency: 5-10 Hertz Numeric unit: Floating point unit, 16 steps for multiplication, 3 steps for addition, 18 steps division Speed: Multiplication 3 sec, division 3 sec, addition 0.7 sec Input: Decimal keyboard with 20 digits, automatic binary coding Output: With lamps, 4 decimal digits with decimal point Word length: 22 Bit, floating point: mantissa, exponent and sign Number of relays: 2000 Memory: 1400 relays, 64 words of 22 bit Consumption: Approx. 4000 watts Weight: Approx. 1000 kg

28 Module 1CMPF144 Fundamentals of Computing TheorySlide 28 Invention of Transistors John Bardeen, Walter Brattain and William Shockley: 1947 Invented the Transistor Transistors started the era of 2nd Generation Computers. Transformed the computer. Made Microprocessor revolution possible. For this discovery they won the 1956 Nobel Prize inphysics.

29 Module 1CMPF144 Fundamentals of Computing TheorySlide 29 1950 Onwards: Jay Forrester : 1949 Invented magnetic core memory 1949. Grace Murray Hopper : “Compiler” The notion of a compiler, at Remington Rand, in 1951. John Backus and others: “FORTRAN” The first FORTRAN compiler ( April 1957 ) John McCarthy : “LISP, 1958” Alan Perlis, John Backus, Peter Naur and others: Around 1959, “Algol”

30 Module 1CMPF144 Fundamentals of Computing TheorySlide 30 Integrated Circuits and … Jack Kilby (Texas Instruments) Robert Noyce (Fairchild Semiconductor) invented the integrated circuit in 1959. In the 1960's, computer science came into its own as a discipline. In fact, the term was coined by George Forsythe, a numerical analyst. The first computer science department was formed at Purdue University in 1962

31 Module 1CMPF144 Fundamentals of Computing TheorySlide 31 Integrated Circuits and … The first person to receive a Ph. D. from a computer science department was Richard Wexelblat, at the University of Pennsylvania, in December 1965. Operating systems saw major advances. Fred Brooks at IBM designed System/360: A line of different computers (“family”) with the same architecture and instruction set, from small machine to top-of-the-line. Edsger Dijkstra at Eindhoven: Designed the THE multiprogramming system.

32 Module 1CMPF144 Fundamentals of Computing TheorySlide 32 The Internet … At the end 1960s, ARPAnet, a precursor to today's Internet, began to be constructed. Unix, a very influential operating system, was developed at Bell Laboratories by Ken Thompson (b. 1943) and Dennis Ritchie (b. 1941). Brian Kernighan and Ritchie together developed C, an influential programming language. Other new programming languages, such as Pascal (invented by Niklaus Wirth) and Ada (developed by a team led by Jean Ichbiah), arose.

33 Module 1CMPF144 Fundamentals of Computing TheorySlide 33 CISC, RISC and beyond.. The first RISC architecture development was begun by John Cocke in 1975 The rise of the Supercomputer: “ 1970s” Seymour Cray designed the CRAY-1, which was first shipped in March 1976. It could perform 160 million operations in a second. The Cray XMP came out in 1982. Cray Research was taken over by Silicon Graphics.

34 Module 1CMPF144 Fundamentals of Computing TheorySlide 34 The Fastest Computer (Top 500 ) http://www.top500.org/lists/2005/11/basic Date: Nov 2005

35 Module 1CMPF144 Fundamentals of Computing TheorySlide 35 PCs and Internet 1980 decade also saw the rise of the personal computer, thanks to Steve Wozniak and Steve Jobs, founders of Apple Computer. The first computer viruses are developed c. 1981. 1990 onward we the explosion of Internet that brought computers into the home of millions throughout the world

36 Module 1CMPF144 Fundamentals of Computing TheorySlide 36 Exercise Turing Test : A test based on written conversation to decide whether the entity in the next room/other side is a human or computer You are required to find Turing Test or chatterBox on the Internet and perform the test (you can visit this website to find list of test available) [http:// www.chatterboxchallenge.com ] Based on your observation, explain how do you determine whether the entity is human or computer by stating your reasons. Submit your answer together with the extract of the conversation between you and that entity on the (24 th April 2006) during lecture.


Download ppt "CMPF144 FUNDAMENTALS OF COMPUTING THEORY An Introduction to Computer Science."

Similar presentations


Ads by Google