Computability to Practical Computing - and - How to Talk to Machines.

22
Computability to Practical Computing - and - How to Talk to Machines
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of Computability to Practical Computing - and - How to Talk to Machines.

Page 1: Computability to Practical Computing - and - How to Talk to Machines.

Computability to Practical Computing

- and -

How to Talk to Machines

Page 2: Computability to Practical Computing - and - How to Talk to Machines.

What is Computer Science?

Page 3: Computability to Practical Computing - and - How to Talk to Machines.

What is Computer Science?

● At the highest level computer science (CS) is the study of computation and information processing, both in hardware and in software.

● Computer scientists study how information is used by or changed by computers. Topics range from the abstract analysis of algorithms, formal grammars, etc. to more concrete subjects like programming languages, software, and computer hardware.

Page 4: Computability to Practical Computing - and - How to Talk to Machines.

What was the first meaning of the word “computer”?

Page 5: Computability to Practical Computing - and - How to Talk to Machines.

What was the first meaning of the word “computer”?

• A human being who did arithmetic calculations

Page 6: Computability to Practical Computing - and - How to Talk to Machines.

Before World War II

• Mathematicians such as Alan Turing, Emil Post, Alonzo Church: – Imagined computer as an “engine” that did

math and had memory to store instructions and data … human being or machine

– Posed the fundamental question of Computer Science

Page 7: Computability to Practical Computing - and - How to Talk to Machines.

What can be computed in a finite amount of time?

Page 8: Computability to Practical Computing - and - How to Talk to Machines.

What changed in the mid to late 1940’s?

Page 9: Computability to Practical Computing - and - How to Talk to Machines.

What Changed in mid to late 1940’s?

• Computers became engineering reality

Page 10: Computability to Practical Computing - and - How to Talk to Machines.

New Focus…

• No longer enough to know a problem can be solved eventually

• Questions become more practical

Page 11: Computability to Practical Computing - and - How to Talk to Machines.

New Focus

• Can a problem be solved efficiently? How?

• Can the problem be solved elegantly? How?

Page 12: Computability to Practical Computing - and - How to Talk to Machines.

New Specialties

• Linguists to study how to talk to computers

• Algorithmists to study how to solve a problem fast on a computer

• Architects to study how to build better computers

• Applications specialists to study how to use computers in new and different ways

Page 13: Computability to Practical Computing - and - How to Talk to Machines.

First Computing Machines

• Wires and switches

• Instructions reflected the details of the engineering design; just expressive enough to get the job done

Page 14: Computability to Practical Computing - and - How to Talk to Machines.

~~1950

• Expense ratio changes: programming the machine becomes much more expensive than renting the machine time

• Programming languages need to reflect the structure of the problem to be solved

Page 15: Computability to Practical Computing - and - How to Talk to Machines.

Talking to Computers

Page 16: Computability to Practical Computing - and - How to Talk to Machines.

Binary Constructs

• Different speeds of memory – storage and registers

• Binary notation

• Exponential notation

Page 17: Computability to Practical Computing - and - How to Talk to Machines.

Historical Highlights

• 1953: John Backus, working at IBM, proposed new design for a language which became Fortran (Formula Translation)

Page 18: Computability to Practical Computing - and - How to Talk to Machines.

Historical Highlights

• 1956: researchers imagined new discipline, Artificial Intelligence. Allan Newell and Herbert Simmons of Carnegie Mellon proposed approach of representing abstractions as lists of symbols

• John McCarthy simplified structure, added new features … ~1958 created Lisp (List Processing)

Page 19: Computability to Practical Computing - and - How to Talk to Machines.

“… Lisp, together with Fortran, has provided the inspiration for computer language designs ever since its introduction in 1958.”

Out of Their Minds

The Lives and Discoveries of 15

Great Computer Scientists

Dennis Shasha

Cathy Lazere

Page 20: Computability to Practical Computing - and - How to Talk to Machines.

Historical Highlights

• ~1960: Algol (International Algebraic Language), used elements from Fortran and Lisp. Parent of Pascal, C, and Ada

Page 21: Computability to Practical Computing - and - How to Talk to Machines.

Historical Highlights

• Early ’70’s: Alan Key suggested object-oriented approach to design more supportable programs

Page 22: Computability to Practical Computing - and - How to Talk to Machines.

Constructs and Concepts

• Scientific notation

• Lists

• Tables

• Loops