Cmt1000 introduction to programming
This presentation is the property of its rightful owner.
Sponsored Links
1 / 25

CMT1000: Introduction to Programming PowerPoint PPT Presentation


  • 93 Views
  • Uploaded on
  • Presentation posted in: General

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.

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.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

CMT1000: Introduction to Programming

Ed Currie

Lecture 2A: Pizza


Pizza making algorithm

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?


First stab

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


Stepwise refinement needed

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.


Refinement

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.


It s like a computer program

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.


Sub programs

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.


Question

Question

  • What are the advantages of subalgorithms?


Answer

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.


Question1

Question

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


Parameters

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.


Question2

Question

  • What are the advantages of parameterising an algorithm?


Answer1

Answer

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


Re use of algorithms

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


Pseudocode and structured programming

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.


Exercise

Exercise

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

    “The woman made the robot fast”


Sequence

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.


Repetition

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.


Heat the oil in a frying pan

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?


Question3

Question

  • Which of the following are valid boolean expressions?

  • It is raining.

  • Is it raining?

  • Eat my shorts.

  • Doh!


Question4

Question

  • I am cold and I am wet.

  • This statement is false.

  • 2 = 2

  • 2 > 8


Selection

Selection

  • Add the onion

  • Add the garlic

  • Add the chillies

  • Fry for 5 minutes


However not everyone has a taste for spicy hot pizza

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


Some prefer browner onions

Some prefer browner onions

IF eater likes very brown onions

Fry for 10 minutes

ELSE

Fry for 5 minutes


Test and evaluate

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?


  • Login