220 likes | 337 Views
Computability to Practical Computing - and - How to Talk to Machines. What is Computer Science?. 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.
E N D
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.
What was the first meaning of the word “computer”? • A human being who did arithmetic calculations
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
What Changed in mid to late 1940’s? • Computers became engineering reality
New Focus… • No longer enough to know a problem can be solved eventually • Questions become more practical
New Focus • Can a problem be solved efficiently? How? • Can the problem be solved elegantly? How?
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
First Computing Machines • Wires and switches • Instructions reflected the details of the engineering design; just expressive enough to get the job done
~~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
Binary Constructs • Different speeds of memory – storage and registers • Binary notation • Exponential notation
Historical Highlights • 1953: John Backus, working at IBM, proposed new design for a language which became Fortran (Formula Translation)
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)
“… 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
Historical Highlights • ~1960: Algol (International Algebraic Language), used elements from Fortran and Lisp. Parent of Pascal, C, and Ada
Historical Highlights • Early ’70’s: Alan Key suggested object-oriented approach to design more supportable programs
Constructs and Concepts • Scientific notation • Lists • Tables • Loops