Actual answers will vary and should include more detail. Here are
the outlines of some answers.
Hardware is the physical components while software is the
programs.
Both may be thought of as a sequence of steps to solve a problem.
A program is a specific implementation of some algorithm that can be executed
by a computer.
Programming languages used to write instuctions for computers
are precise. Natural languages used for human communication are ambiguous.
High-level languages are intended to be easier for humans and
must be translated into the machine language that the hardware of a particular
computer understands.
A compiler provides a one-shot translation, while an interpreter
simulates a machine that understands a high-level language.
Syntax is form and semantics is meaning.
See discussion of Figure 1.1 in the text (Pages 5 and 6).
Students will have varying degrees of success with this problem.
Strictly speaking it is not really well specified, as we don't have an agreed
upon vocabulary for expressing the steps of an algorithm. This question can
be used to illustrate some of the difficulties of using natural language to
describe processes in detail.
If a float is used to represent a quantity in a chaotic function,
then a very small rounding error can lead to results that are utlimately
quite inaccurate and therefore not useful.