CSE1301 Computer Programming Lecture 2: Introduction to Algorithms - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

CSE1301 Computer Programming Lecture 2: Introduction to Algorithms

Description:

8 ft tall, 50 ft long, 1 million parts. 323 decimal-digit additions per sec ... Remove the chicken and to the juices in the casserole add garlic, onions and ... – PowerPoint PPT presentation

Number of Views:100
Avg rating:3.0/5.0
Slides: 39
Provided by: annnichols7
Category:

less

Transcript and Presenter's Notes

Title: CSE1301 Computer Programming Lecture 2: Introduction to Algorithms


1
CSE1301Computer ProgrammingLecture
2Introduction to Algorithms
2
Topics
  • A little bit of History
  • The idea of a universal machine
  • Systematic problem solving
  • Algorithms

3
A Universal Machine
  • Programmability
  • Binary Code (everything stored as 0 or 1)
  • Program and Data are represented in the same
    form
  • Electronic Components

4
Early Computing History in a Nutshell
5
Leibnizs Step Reckoner
  • Gottfried von Leibniz 1670
  • Add, subtract, multiply, divide, square roots

6
Jacquards punch card
  • Joseph Marie Jacquard 1804
  • punch cards used to operate loom

7
Babbages analytical engine
  • Charles Babbage (1791-1871)

Design for the analytical engine
  • Programmable, but mechanical.
  • DataProgram separate

8
One of the first Programmers
  • Lady Ada Augusta Byron, Countess of Lovelace
    (1815-1952) (1791-1871)

9
Early Computing History in a Nutshell
First universal programmable machine
10
The Ancestors
Binary code
universal
electronic
  • Integration
  • fully electronic
  • binary
  • Programmable
  • universal

11
Holleriths Tabulating Machine
  • Herman Hollerith (1860-1929)
  • Invented a punched card device to help analyse
    the 1890 US census data
  • Founded Tabulating Machine Company 1896
  • 1924 Tabulating Machine Company merges with
    others to form IBM

Binary but not really programmable
12
Konrad Zuse
  • 1936 Z1 first binary computer using Erector Set
    parts, keyboard and lights for output (relay
    memory)
  • 1938 Z2 using punched tape and relays

Z1
Z3 fully binary, fully programmable, but
partly mechanical
13
Colossus
  • 1943 British Colossus (1,500 vacuum tubes)
  • Decipher enigma coded messages at 5,000 chars/sec
  • At peak, 10 machines ran 24 hours a day in
    Bletchley Park

A German enigma coding machine
Fully electronic, but not universally
programmable
14
Harvard Mark 1
  • 1943-44 Aiken at Harvard/IBM Mark 1 first
    electromechanical digital computer
    (electromagnetic relays magnets open and close
    metal switches) (recreation of Analytical
    Engine)
  • 8 ft tall, 50 ft long, 1 million parts
  • 323 decimal-digit additions per sec
  • storage for 72 23-digit numbers.

Universal, fully programmable But partly
mechanical
15
ENIAC (1946)
  • 18,000 tubes, 1500 sq ft
  • Programmed by wire plugs into panels
  • 5,000 decimal-digit additions/sec
  • 20 10-decimal digit accumulators

Von Neumann and ENIAC
Fully electronic, programmable But
extensive-wiring required
16
Experminental MUC (1949)
  • 1941 Von Neumann proposes EDVAC Electronic
    Discrete Variable Computer
  • Computer should
  • Use binary
  • Have stored programs
  • Be function-oriented
  • Team Members from Bletchley Parkand
    EDVAC/ENIACcollaborate at Manchester
  • Add CRT display memory

First fully electronic universal computer
17
How do we solve problems?
  • We "just do"
  • Guesswork-and-luck
  • Trial-and-error
  • Experience (possibly someone else's)
  • "Scientifically"

18
The Problem-solving Process
"Doctor, my head hurts"
Patient has elevated pressure in anterior
parietal lobe
1. Sterilize cranial saw 2. Anaesthetize
patient 3. Remove top of skull 4. Get the big
spoon... 5. etc., etc.
sterilize(saw,alcohol) raise_hammer() lower
hammer(fast) start(saw) / etc. etc. /
01001110101100101010101010010101010101001100101010
10101001011010011101010101010010010111010011110101
010111110101010001101
19
The Problem-solving Process
"Doctor, my head hurts"
Patient has elevated pressure in anterior
parietal lobe.
Analysis
Problem specification
1. Sterilize cranial saw 2. Anaesthetize
patient 3. Remove top of skull 4. Get the big
spoon... 5. etc., etc.
Design
Algorithm
Implementation
sterilize(saw,alcohol) raise_hammer() lower
hammer(fast) start(saw) / etc. etc. /
Program
Compilation
01001110101100101010101010010101010101001100101010
10101001011010011101010101010010010111010011110101
01011111010101000110100001101...
Executable (solution)
20
The Problem-solving Process
Analysis
Problem specification
Design
Algorithm
Implementation
Program
Compilation
Executable (solution)
21
Algorithm
  • A sequence of instructions specifying the steps
    required to accomplish some task
  • Named after Muhammad ibn Musa al-Khwarizmi
  • of Khowarezm (now Khiva in Uzbekistan)
  • Circa 780-850 C.E. (Common Era)

22
Algorithm History
  • Muhammad ibn Musa Al-Khwarizmi
  • http//www-groups.dcs.st-andrews.ac.uk/history/Ma
    thematicians/Al-Khwarizmi.html
  • Book on arithmetic
  • Hindu numeration, decimal numbers, use of zero,
    method for finding square root
  • Latin translation (c.1120 CE) Algoritmi de
    numero Indorum
  • Book on algebra
  • Hisab al-jabr wal-muqabala

23
Algorithm Working Definition
  • A sequence of instructions describing how to do a
    task

As opposed to actually executing the
instructions
24
Algorithm -- Examples
  • A cooking recipe
  • Assembly instructions for a model
  • The rules of how to play a game
  • VCR instructions
  • Description of a martial arts technique
  • Directions for driving from A to B
  • A knitting pattern
  • A car repair manual

25
Algorithm Examples (cont)
  • Recipe for Almond and honey slice
  • Recipe for Arroz con pollo

26
Almond and Honey Slice
  • Preheat oven for 200 C
  • Line a 30 cm ? 20 cm baking tray with baking
    paper, and then with pastry
  • Bake blind for 20 minutes, then remove weights
    and foil
  • Turn oven up to 220 C.
  • Bring remaining ingredients to a boil, stirring.
  • Spread evenly over pastry.
  • Bake until topping is bubbling and has
    caramelised evenly, about 15 minutes.
  • Cool before cutting into fingers or squares.
  • 1/2 quantity Shortcrust Pastry
  • 185 g unsalted butter
  • 100 g castor sugar
  • 5 tablespoons honey
  • 50 ml cream
  • 50 ml brandy or any other liqueur or spirit
  • 300 g flaked almonds

From Stephanie Alexander, The Cooks Companion,
Viking/Penguin, Ringwood, Victoria, 1996, p. 349.
27
Almond and Honey Slice
  • Preheat oven for 200 C
  • Line a 30 cm ? 20 cm baking tray with baking
    paper, and then with pastry
  • Bake blind for 20 minutes, then remove weights
    and foil
  • Turn oven up to 220 C.
  • Bring remaining ingredients to a boil, stirring.
  • Spread evenly over pastry.
  • Bake until topping is bubbling and has
    caramelised evenly, about 15 minutes.
  • Cool before cutting into fingers or squares.
  • 1/2 quantity Shortcrust Pastry
  • 185 g unsalted butter
  • 100 g castor sugar
  • 5 tablespoons honey
  • 50 ml cream
  • 50 ml brandy or any other liqueur or spirit
  • 300 g flaked almonds

Instructions are given in the order in which they
are performed (executed)
From Stephanie Alexander, The Cooks Companion,
Viking/Penguin, Ringwood, Victoria, 1996, p. 349.
28
Correct Algorithm?
  • Cut chicken into pieces and brown the pieces on
    all sides in a casserole dish in hot olive oil.
  • Remove the chicken and to the juices in the
    casserole add garlic, onions and green peppers,
    and sauté until onion is golden.
  • Add bay leaf, whole tomatoes, and chicken broth.
  • When the broth boils add salt, saffron and rice.
  • Arrange chicken on rice, cover casserole and bake
    in a moderate oven (350F) for 20 minutes or
    until the rice is tender.
  • Add beans and artichokes during last 10 minutes
    of cooking.

From Arroz Con Pollo in The Margaret Fulton
Cookbook, Hamlyn, Sydney, 1968.
29
Correct Algorithm?
  • Cut chicken into pieces and brown the pieces on
    all sides in a casserole dish in hot olive oil.
  • Remove the chicken and to the juices in the
    casserole add garlic, onions and green peppers,
    and sauté until onion is golden.
  • Add bay leaf, whole tomatoes, and chicken broth.
  • When the broth boils add salt, saffron and rice.
  • Arrange chicken on rice, cover casserole and bake
    in a moderate oven (350F) for 20 minutes or
    until the rice is tender.
  • Add beans and artichokes during last 10 minutes
    of cooking.

From Arroz Con Pollo in The Margaret Fulton
Cookbook, Hamlyn, Sydney, 1968.
30
Correct Algorithm?
  • Cut chicken into pieces and brown the pieces on
    all sides in a casserole dish in hot olive oil.
  • Remove the chicken and to the juices in the
    casserole add garlic, onions and green peppers,
    and sauté until onion is golden.
  • Add bay leaf, whole tomatoes, and chicken broth.
  • When the broth boils add salt, saffron and rice.
  • Arrange chicken on rice, cover casserole and bake
    in a moderate oven (350F) for 10 minutes.
  • Add beans and artichokes.
  • Cover, and bake for another 10 minutes or until
    rice is tender.

31
From Algorithms to Programs
32
Components of an Algorithm
  • Variables and values
  • Instructions
  • Sequences
  • Procedures
  • Selections
  • Repetitions
  • Also required Documentation

33
Values
  • Represent quantities, amounts or measurements
  • May be numerical or alphabetical (or other
    things)
  • Often have a unit related to their purpose
  • Example
  • Recipe ingredients

34
Almond and Honey Slice
  • Preheat oven for 200 C
  • Line a 30 cm ? 20 cm baking tray with baking
    paper, and then with pastry
  • Bake blind for 20 minutes, then remove weights
    and foil
  • Turn oven up to 220 C.
  • Bring remaining ingredients to a boil, stirring.
  • Spread evenly over pastry.
  • Bake until topping is bubbling and has
    caramelised evenly, about 15 minutes.
  • Cool before cutting into fingers or squares.
  • 1/2 quantity Shortcrust Pastry
  • 185 g unsalted butter
  • 100 g castor sugar
  • 5 tablespoons honey
  • 50 ml cream
  • 50 ml brandy or any other liqueur or spirit
  • 300 g flaked almonds

From Stephanie Alexander, The Cooks Companion,
Viking/Penguin, Ringwood, Victoria, 1996, p. 349.
35
Almond and Honey Slice
  • Preheat oven for 200 C
  • Line a 30 cm ? 20 cm baking tray with baking
    paper, and then with pastry
  • Bake blind for 20 minutes, then remove weights
    and foil
  • Turn oven up to 220 C.
  • Bring remaining ingredients to a boil, stirring.
  • Spread evenly over pastry.
  • Bake until topping is bubbling and has
    caramelised evenly, about 15 minutes.
  • Cool before cutting into fingers or squares.
  • 1/2 quantity Shotcrust Pastry
  • 185 g unsalted butter
  • 100 g castor sugar
  • 5 tablespoons honey
  • 50 ml cream
  • 50 ml brandy or any other liqueur or spirit
  • 300 g flaked almonds

From Stephanie Alexander, The Cooks Companion,
Viking/Penguin, Ringwood, Victoria, 1996, p. 349.
36
Variables
  • Are containers for values places to store
    values
  • Example

37
Restrictions on Variables
  • Variables may be restricted to contain a specific
    type of value

38
Components of an Algorithm
  • Values and Variables
  • Instruction (a.k.a. primitive)
  • Sequence (of instructions)
  • Procedure (involving instructions)
  • Selection (between instructions)
  • Repetition (of instructions)
  • Documentation (beside instructions)

39
Summary
  • Problem Solving Process
  • Algorithms
  • Components of Algorithms
  • Values and Variables
  • Instructions
  • to be continued...

Reading
  • Deitel Deitel, C How to program
  • Chapter 3, Sections 3.1 to 3.3
Write a Comment
User Comments (0)
About PowerShow.com