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.

tandice
Download Presentation

CMT1000: Introduction to Programming

An Image/Link below is provided (as is) to download presentation 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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