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

Slides:



Advertisements
Similar presentations
An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
Advertisements

CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Programming Languages
Computer Science It’s more than programming Eric Lantz.
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
CSCI 3 Introduction to Computer Science. CSCI 3 Course Description: –An overview of the fundamentals of computer science. Topics covered include number.
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
Outline Chapter 1 Hardware, Software, Programming, Web surfing, … Chapter Goals –Describe the layers of a computer system –Describe the concept.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
1 Chapter 1 The Big Picture. 2 2 Computing systems are dynamic entities used to solve problems and interact with their environment. They consist of devices,
Programming languages Prepared by : Jyrald Aquino.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Artificial Intelligence & Cognitive Science By: Andrea Pope, Cindy Burdine, and Kazumi Inoue.
Chapter 01 Nell Dale & John Lewis.
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
Introduction to Computer Programming itc-314
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to.
Overview of Computing. Computer Science What is computer science? The systematic study of computing systems and computation. Contains theories for understanding.
1 History of compiler development 1953 IBM develops the 701 EDPM (Electronic Data Processing Machine), the first general purpose computer, built as a “defense.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
Chapter 1 The Big Picture.
Computer system overview1 The Effects of Computers Pervasive in all professions How have computers affected my life? How have computers affected my life?
Course Overview. What are Computers? From Outside –CPU box, Monitor, Keyboard, mouse and Printers From inside –ICs, Chipsets, Hard Disks, PCB cards, Drives,
Principles of Programming Languages Asst. Prof. Dr. Ahmet Sayar Spring-2012 Kocaeli University Computer Engineering Department Introduction.
© 2007 Pearson Addison-Wesley. All rights reserved 0-1 Spring(2007) Instructor: Qiong Cheng © 2007 Pearson Addison-Wesley. All rights reserved.
The Changing Nature of Invention in Computer Science Dennis Shasha Based on two books with journalist Cathy Lazere.
Software Basics. Some Pioneers Charles Babbage Analytical Engine Countess Ada Lovelace First Programmer ? John Von Neumann storing instructions in memory.
CPIT 201 Introduction to Computing
Chapter 1 Introduction.
Programming Languages What is a programming language? –systematic notation by which we describe computational processes to others –notation for description.
Fortran Fortran – Formula Translation –Developed by John Backus (IBM) in the mid 1950s. –It was a team effort and the design goal was to produce a translation.
Chapter 1 The Big Picture Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
CSE 102 Introduction to Computer Engineering What is Computer Engineering?
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
CS 152: Programming Language Paradigms January 27 Class Meeting Department of Computer Science San Jose State University Spring 2014 Instructor: Ron Mak.
Logical and Functional Programming
Programming in C++ Dale/Weems/Headington Chapter 1 Overview of Programming and Problem Solving.
Written by Dennis Shasha and Cathy Lazere Book Report by Phil Dinovo.
Introduction to Computer Programming itc-314 Lecture 04.
CS 101 INTRODUCTION TO COMPUTING * image from The Central Eglinton Community Centre website.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
History of Programming Languages Compiled by Wasim Ahmad Khan.
Cs205: engineering software university of virginia fall 2006 David Evans Object-Oriented Programming.
Introduction Dr. Entesar Ganash. 1.Fundamentals of computer programming Central Processor Unit Main Memory Backing Store OutputInput 1.1 What is a computer?
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Introduction to programming languages, Algorithms & flowcharts
Chapter 0: Introduction
Introduction to formal languages and automata
Chapter 1 The Big Picture
Introduction to programming languages, Algorithms & flowcharts
1.#.
methods and simple tools e.g., abacus
Introduction to programming languages, Algorithms & flowcharts
Foundations of Computer Science
CSC128 FUNDAMENTALS OF COMPUTER PROBLEM SOLVING
Programming Languages
Programming Language Design
Introduction to Computer Programming
Von Neumann Architecture
Principles of Programming Languages
Presentation transcript:

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 can be computed in a finite amount of time?

What changed in the mid to late 1940’s?

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

Talking to Computers

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