Top Banner
Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal . . . Math 130 Intro to Computer Programming Algorithms Lecture # 01 01/21/05 B Smith: Required 45 to 50 minutes. Stirred up few questions. Needs to be more interactive and less general/abast ract. Score 3 with improv, 2.5 if used as is. B Smith: Great for independent study; not so great otherwise. B Smith: Not used Fall05. Not needed; not helpful
30

Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

Dec 14, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

Algorithm 1: The Morning RoutineGet out of bedShowerBathe kidsPrepare cereal...

Algorithm 1: The Morning RoutineGet out of bedShowerBathe kidsPrepare cereal...

Math 130 Intro to Computer Programming

AlgorithmsLecture # 01

01/21/05

Math 130 Intro to Computer Programming

AlgorithmsLecture # 01

01/21/05

B Smith:

Required 45 to 50 minutes. Stirred up few questions. Needs to be more interactive and less general/abastract. Score 3 with improv, 2.5 if used as is.

B Smith:

Required 45 to 50 minutes. Stirred up few questions. Needs to be more interactive and less general/abastract. Score 3 with improv, 2.5 if used as is.

B Smith:

Great for independent study; not so great otherwise.

B Smith:

Great for independent study; not so great otherwise.

B Smith:

Not used Fall05. Not needed; not helpful

B Smith:

Not used Fall05. Not needed; not helpful

Page 2: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

2

Overview

• Solving problems– mysterious or methodical– luck or by design

• Algorithms– recipes

• Values and variables– quantity and place holders

Page 3: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

3

How do we solve problems?

• Largely empirical– “Doing heart surgery in this manner works”

• History– “This is how Alice did it…”

• Inspiration– “I don’t know how, but I solved it!”

• Brute force– Trial-and-error

• The scientific method

Page 4: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

4

0100111010110010101010101001010101010100110010101010101001011010011101010101010010010111010011110101010111110101010001101…

sterilize(saw,alcohol);raise_hammer();lower_hammer(fast);start(saw);/* etc. etc. */

Patient has elevated pressure in anterior parietal lobe

The Problem-solving Process

Problem

specification

Algorithm

Program

Executable (solution)

Design

Implementation

Compilation

"Doctor, my head hurts"

Analysis

1. Sterilize cranial saw2. Anaesthetize patient3. Remove top of skull4. Get the big spoon...5. etc., etc.

B Smith:

Use math as a useful application. How about finding the roots of 2x^2+3x-4 = 0? What would be the algorithm.

B Smith:

Use math as a useful application. How about finding the roots of 2x^2+3x-4 = 0? What would be the algorithm.

Page 5: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

5

The Problem-solving Process

Problem specification

Algorithm

Program

Executable (solution)

Analysis

Design

Implementation

Compilation

Page 6: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

6

• A sequence of instructions specifying the steps required to accomplish some task

• Named after:– Muhammad ibn Mūsā al-

Khwārizmi– Circa 780-850 C.E. (Common Era)

http://jeff560.tripod.com/khowar.jpg

Algorithm

Page 7: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

7

Algorithm –History

Muhammad ibn Musa al-Khwarizmihttp://www-gap.dcs.st-andrews.ac.uk/~history/Mathematicians/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– “Kitāb al-jabr wa’l-muqābala”

• (“Rules of restoring and equating”)

Page 8: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

8

• A sequence of instructions describing how to do a task

Algorithm – Working Definition

As opposed to actually executing the instructions!

Page 9: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

9

sterilize(saw,alcohol);raise_hammer();lower_hammer(fast);start(saw);/* etc. etc. */

The Problem-solving Process

Problem specification

Algorithm

Program

Executable (solution)

Analysis

Design

Implementation

Compilation

"Doctor, my head hurts"

Patient has elevated pressure in anterior parietal lobe.

1. Sterilize cranial saw2. Anaesthetize patient3. Remove top of skull4. Get the big spoon...5. etc., etc.

010011101011001010101010100101010101010011001010101010100101101001110101010101001001011101001111010101011111010101000110100001101...

Page 10: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

10

Algorithm -- Examples

• A cooking recipe• Assembly instructions for a model car,

boat, etc.• 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

Page 11: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

11

Algorithm – Examples (cont)

• Recipe for Almond and honey slice• Recipe for Arroz con pollo

Page 12: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

12

Almond and Honey Slice

1/2 quantity Shortcrust Pastry

185 g unsalted butter100 g castor sugar5 tablespoons honey50 ml cream50 ml brandy or any

other liqueur or spirit300 g flaked almonds

Preheat oven for 200° CLine 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 caramelized evenly, about 15 minutes.

Cool before cutting into fingers or squares.

From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

Page 13: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

13

Almond and Honey Slice

1/2 quantity Shortcrust Pastry

185 g unsalted butter100 g castor sugar5 tablespoons honey50 ml cream50 ml brandy or any

other liqueur or spirit300 g flaked almonds

Preheat oven for 200° CLine 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 caramelized evenly, about 15 minutes.

Cool before cutting into fingers or squares.

From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

Instructions are given in the order in which they are performed (“executed”)

Page 14: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

14

Correct Algorithm?Cut chicken into pieces

and brown the pieces on all sides in a casserole dish in hot olive oil.

Remove the chicken; 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 (350°F) 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.

Page 15: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

15

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 (350°F) 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.

Correct Algorithm?

Page 16: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

16

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 (350°F) for 10 minutes.

Add beans and artichokes.

Cover, and bake for another 10 minutes or until rice is tender.

Correct Algorithm?

Page 17: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

17

From Algorithms to Programs

Problem

C ProgramC Program

AlgorithmAlgorithm: A sequence of instructions describing how to do a task (or process)

Page 18: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

18

Components of an Algorithm

• Variables and values• Instructions• Sequences• Procedures• Selections• Repetitions• Documentation

Page 19: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

19

Values

• Represent quantities, amounts, rates, etc.• May be numerical, alphabetical or even

other items• A related unit may or may not be specified

– Add 3 cups of flour – Pull rip-cord

• Example:– Recipe ingredients (how big, how hot, how long)

Page 20: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

20

Almond and Honey Slice

1/2 quantity Shortcrust Pastry

185 g unsalted butter100 g castor sugar5 tablespoons honey50 ml cream50 ml brandy or any

other liqueur or spirit300 g flaked almonds

Preheat oven for 200° CLine 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.

From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

Page 21: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

21

Almond and Honey Slice

1/2 quantity Shotcrust Pastry

185 g unsalted butter100 g castor sugar5 tablespoons honey50 ml cream50 ml brandy or any

other liqueur or spirit300 g flaked almonds

Preheat oven for 200° CLine 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.

From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

Page 22: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

22

Variables

This jarcan contain

10 cookies

50 grams of sugar

3 slices of cake

etc.

ValuesVariable

• Are containers for values – places to store values

• Example:

Page 23: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

23

Restrictions on Variables

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

Page 24: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

24

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)

Page 25: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

25

Instructions (Primitives)

• Some action that is simple......and unambiguous......that the system knows about......and should be able to actually do

Page 26: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

26

Instructions – Examples

• Take off your shoes• Count to 10 • Cut along dotted line• Knit 1• Purl 2• Firmly Pull rip-cord • Sift 10 grams of sulfur

Directions to perform specific actions on values and variables.

Page 27: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

27

Instructions -- Application• Some instructions can only be

applied to specific types of values or variables

• Examples:

Page 28: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

28

Instructions (Primitives) -- Recommendations

• When writing an algorithm, make each instruction simple and unambiguous

• Example:

Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil.

Cut chicken into pieces.Heat olive oil in a casserole dish.Brown the chicken pieces in the casserole dish.

Page 29: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

29

Instruction (Primitives)

• When writing an algorithm, make the instructions simple and unambiguous.

• Example:

Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil.

Cut chicken into pieces.Heat olive oil in a casserole dish.Brown the chicken pieces in the casserole dish.

A “sequence” of simple instructions

Page 30: Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare cereal. Algorithm 1: The Morning Routine Get out of bed Shower Bathe kids Prepare.

30

Summary

• Problem Solving Process• Algorithms• Components of Algorithms

– Values and Variables– Instructions– to be continued...

Reading

Bronson, Ch 1 and Ch 2