[OT[ proving programs for novices

Bill Wood wtwjek@winternet.com
Tue, 18 Mar 2003 19:05:47 -0600

  . . .
> For imperative programming:
>         D. Gries, The Science of Programming. Springer Verlag, New York, 1981.
>         E.W. Dijkstra, A Discipline of Programming. Prentice-Hall, 1975.

These are two excellant sources; I've learned from each and taught from
However, they are both a bit stiff for the student with little
background in
logic or mathematics.  Several texts did come out in the late 80's that
the same approach from a more elementary starting point.  Three such are

    E.W.Dijkstra and W.H.J. Feijen, A Method of Programming,
Addison-Wesley, 1988,
        ISBN 0-201-17536-3

    Geoff Dromey, Program Derivation/The Development of Programs from
        Specifications, Addison-Wesley, 1989, ISBN 0-201-41624-7

    Edward Cohen, Programming in the 1990s, Springer-Verlag, 1990,
        ISBN 0-387-97382-6

> For functional programming:
>         R. Bird, Introduction to Functional Programming using Haskell,
>         2nd edition. Prentice-Hall, 1998.

I'd like to hear abut more sources here as well.  I've started in on

    Richard Bird and Oege de Moor, Algebra of Programming, Prentice
        ISBN 0-13-507245-X

but it is hardly elementary!

Another very interesting text is

    John Cooke, Constructing Correct Software/the basics,
        1988, ISBN 3-540-76156-X

which almost combines imperative and functional programming (and
by presenting a method of transforming (logical) specifications through
functions into imperative programs.

 -- Bill Wood