1 / 25

# CMT1000: Introduction to Programming - PowerPoint PPT Presentation

CMT1000: Introduction to Programming. Ed Currie Lecture 2A: Pizza. Pizza making algorithm. Often when devising an algorithm, we will first express it using instructions at a high level of abstraction, that is, in quite general terms, without great detail.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'CMT1000: Introduction to Programming' - tandice

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### CMT1000: Introduction to Programming

Ed Currie

Lecture 2A: Pizza

• Often when devising an algorithm, we will first express it using instructions at a high level of abstraction, that is, in quite general terms, without great detail.

• How can we do this for a pizza recipe?

• 1. Make the base

• 2. Make the topping

• 3. Put the topping on the base

• 4. Cook it

Four smaller problems to solve;

Not sufficiently detailed yet to enable us to make the pizza

• => an algorithm comprising instructions sufficiently detailed for our processor to follow.

• The detailed algorithm is said to be more concrete, or at a lower level of abstraction, than the original attempt.

• 1. Make the base => Make the base according to the recipe on page 15

• 2. Make the topping ?????????

• 3. Put the topping on the base ????????

• 4. Cook it => Bake for 20 minutes directly on the oven shelf.

• Input data

• Instructions

• Output

• An algorithm being executed is generally known as a process, and the thing that is executing it is called a processor

• Another analogy is that of the text of a play being the algorithm, and the performance of the play being the process.

• Make the base according to the recipe on page 15...

..is asking the cook to execute another algorithm, the one on page 15 for making a pizza base.

• This idea is very important in writing computer programs.

• What are the advantages of subalgorithms?

• The main algorithm will be more succinct

• The main algorithm will be easier to understand, as the code for the subalgorithm is not cluttering it up.

• The subalgorithm can be used over and over again.

• What would happen if an instruction in an algorithm told the processor to execute the algorithm of which the instruction was a part?

• “Make the base…” says follow the base-making instructions on page 15...

• ...but using the quantities of ingredients (input) listed in the current recipe,

• causing a double quantity of the base to be made.

• The same instructions can be followed to make any required quantity of the base

• The quantities of ingredients are parameters to the sub-algorithm.

• What are the advantages of parameterising an algorithm?

• The same algorithm instructions may be told to operate on different data, making the algorithm much more general, versatile and useful.

• Sometimes we can re-use an algorithm which we already have available, as with ‘make the base’.

• This idea of re-use is also extremely important in computer programming.

• Libraries

• Java API

• The English language has enormous expressive power and subtlety..

...but it is often hard to be precise when using English to describe something accurately.

• Computer programming language instructions have precisely one meaning.

• We often use pseudocode to express our algorithms before final translation into programming languages.

• Try to find as many meanings as you can for the sentence

“The woman made the robot fast”

• Consider the instruction “Make the topping”

• We refined this into the instruction sequence:

- Heat the oil in a frying pan

- Add the onion, garlic and chillies and fry for 5 minutes

etc…

• We will now further refine this towards something resembling a computer program, using pseudocode notation.

• Heat the oil in a frying pan...

• How long should we heat the oil for? Until it sizzles when we add a piece of onion to it.

• Express using a pseudocode construct called a while loop.

- Put oil in pan

- Light gas

- Place small piece of onion in pan

- WHILE onion doesn’t sizzle

Wait 30 seconds

• Semantics?

• Which of the following are valid boolean expressions?

• It is raining.

• Is it raining?

• Eat my shorts.

• Doh!

• I am cold and I am wet.

• This statement is false.

• 2 = 2

• 2 > 8

• Fry for 5 minutes

- IF eater likes hot pizza

- Fry for 5 minutes

IF eater likes very brown onions

Fry for 10 minutes

ELSE

Fry for 5 minutes

• Does the pizza taste as we wanted it to?

• Is it quick and easy to make?

• Are the ingredients appropriate? Could one or more have been left out?

• Does it cost too much to make?