  In first-year programming courses it is often difficult to show students how
an algorithm can be discovered. In this paper we present a program format that
supports the development from specification to code in small and obvious steps;
that is, a discovery process. The format, called Matrix Code, can be
interpreted as a proof according to the Floyd-Hoare program verification
method. The process consists of expressing the specification of a function body
as an initial code matrix and then growing the matrix by adding rows and
columns until the completed matrix is translated in a routine fashion to
compilable code. As worked example we develop a Java program that generates the
table of the first N prime numbers.
