1 / 25

# CMT1000: Introduction to Programming

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.

## CMT1000: Introduction to Programming

E N D

### Presentation Transcript

1. CMT1000: Introduction to Programming Ed Currie Lecture 2A: Pizza

2. 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. • How can we do this for a pizza recipe?

3. First stab • 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

4. Stepwise refinement needed • => 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.

5. Refinement • 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.

6. It’s like a computer program: • 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.

7. Sub-programs • 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.

8. Question • What are the advantages of subalgorithms?

9. Answer • 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.

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

11. Parameters • “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.

12. Question • What are the advantages of parameterising an algorithm?

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

14. Re-use of algorithms • 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

15. Pseudocode and structured programming • 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.

16. Exercise • Try to find as many meanings as you can for the sentence “The woman made the robot fast”

17. Sequence • 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.

18. Repetition • Heat the oil in a frying pan... • How can we be more precise about this? • 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.

19. Heat the oil in a frying pan - Put oil in pan - Light gas - Place small piece of onion in pan - WHILE onion doesn’t sizzle Wait 30 seconds • Semantics?

20. Question • Which of the following are valid boolean expressions? • It is raining. • Is it raining? • Eat my shorts. • Doh!

21. Question • I am cold and I am wet. • This statement is false. • 2 = 2 • 2 > 8

22. Selection • Add the onion • Add the garlic • Add the chillies • Fry for 5 minutes

23. However, not everyone has a taste for spicy hot pizza! - Add the onion - Add the garlic - IF eater likes hot pizza Add the chillies - Fry for 5 minutes

24. Some prefer browner onions IF eater likes very brown onions Fry for 10 minutes ELSE Fry for 5 minutes

25. Test and evaluate • 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?

More Related