Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Mathematics in programming
Tunnicliffe W., Prentice-Hall, Inc., Upper Saddle River, NJ, 1991. Type: Book (9780135634042)
Date Reviewed: Aug 1 1992

Tunnicliffe intends to give a minimal selection of mathematical topics that could be presented to first-year computer science students (according to the standards of British universities). The emphasis is on structured design of software (in the VDM style), rather than analysis of efficient algorithms. Therefore, the core subject of the book is naive set theory supplemented with the usual data types used in computing (strings, stacks, lists, and trees).

The first chapter introduces data types, which are seen at this stage as sets structured by a collection of partial functions (in an operational setting). Basic relations, such as comparisons, are expressed through Boolean-valued functions. Chapter 2 is devoted to the algebra of sets, presented with the aid of Venn diagrams. A more formal approach is undertaken in chapter 3 in terms of propositions and predicates, with a brief excursion into logical programming by allowing queries and the truth value “unknown.”

Chapter 4 deals with the set-theoretic approach to relations (that is, subsets of the Cartesian product A×B); this approach is a preliminary step for the analysis in chapter 5 of the basic types (sequences, trees, stacks, and lists). Chapter 6 tackles the recursive descriptions of the functions and their validation by induction. Translations into Pascal-like pseudocode are given in chapter 7, with a special mention of proofs for loops (but the more technical elimination of recursion is treated only in the exercises).

Chapter 8 presents examples of representation of new data types in terms of old ones, sets from lists and, more elaborate, dictionaries from binary trees. At this point (chapter 9) some efficiency considerations are natural; worst-case time complexity is treated at a deliberately low level. Bubble sort and merge sort are mentioned in exercises.

Functional programming is the subject of chapter 10, with the illustrative examples of drawing diagrams and handling algebraic expressions. The book ends with chapter 11 on logical deduction (mainly in the propositional calculus) and chapter 12 on order and equivalence relations.

The book is written in the style of “service” mathematics: the main question is “How can I do it?” instead of “Why is it so?” Queries by example, supported by clean typesetting, take the place of formal progress by theorems and proofs. Nonetheless, the wording is always precise.

Short exercises follow each section. More elaborate exercises, split into two levels of difficulty, are collected at the end of each chapter, after a summary of that chapter’s objectives.

Reviewer:  F. Aribaud Review #: CR115713
Bookmark and Share
 
General (F.3.0 )
 
 
Logic And Constraint Programming (F.4.1 ... )
 
 
Program And Recursion Schemes (F.3.3 ... )
 
 
Type Structure (F.3.3 ... )
 
 
Formal Languages (F.4.3 )
 
Would you recommend this review?
yes
no
Other reviews under "General": Date
Introduction to the theory of programming languages
Meyer B., Prentice-Hall, Inc., Upper Saddle River, NJ, 1990. Type: Book (9780134985107)
Jun 1 1991
Formal methods--mathematics, theory, recipes or what?
Cooke J. The Computer Journal 35(5): 419-423, 1992. Type: Article
Nov 1 1993
A practical theory of programming
Hehner E., Springer-Verlag New York, Inc., New York, NY, 1993. Type: Book (9780387941066)
May 1 1994
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy