[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
each.
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
taught
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
Hall,1997,
        ISBN 0-13-507245-X

but it is hardly elementary!

Another very interesting text is

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

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

 -- Bill Wood
    wtwjek@winternet.com