Module 2 Unit 3 - Algorithms and Software#
Unit Learning Outcomes#
By the end of this unit, you will be able to
Identify the difference between an algorithm and a piece of software
Cooking with Code#
If you can think of a cook as a computer, the recipe for a cake is the algorithm, and the written-down version of the recipe is the software that the cook will follow.
Notice that the written recipe (software) must be written in a language the cook can understand. So, an English cook should have the recipe written in English; a French cook would need a recipe written in French. Or one cook might need instructions with metric units (e.g. millilitres) while another might need imperial (ounces and cups).
The level of detail in the recipe (software) also depends on the cook. For instance, a recipe for gumbo often says “Start with a roux.” For an experienced cook, this instruction is clear. For a newbie, the recipe should be more detailed, explaining how to make a roux. (It involves flour, butter, and a hot frying pan.)
This is also true with software for a computer. Some computer languages have to explain every step in great detail (e.g. Fortran), other languages can express complex algorithms in a simple word or command (e.g. Python).
Activity#
If you download a recipe in French, and translate into English (with Google Translate, say), is the recipe the same? Has the recipe changed in any way? Can the recipe still be followed?
Note: The equivalent is to think about translating software to a different computer language. Does it remain the same or does it change?
The algorithm is the steps, the software is the steps written down and saved as a computer file. Can you think of other sets of instructions, where there are two aspects to it? The idea of the steps, then the formal listing or written version of the steps?