[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