Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "CMT1000: Introduction to Programming Ed Currie Lecture 2A: Pizza."— 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?


Download ppt "CMT1000: Introduction to Programming Ed Currie Lecture 2A: Pizza."

Similar presentations


Ads by Google