Programming, Problem Solving, and Abstraction
Revised Edition, 2013
Availability: This book is available from Pearson Australia
as a hardcopy or a softcopy; and from Booktopia.
Unfortunately, Amazon do not carry it.
Executive summary: budget-priced text covering programming
in C, and an introduction to computer science - in other words, a bog
standard first-semester first-year syllabus.
The last four chapters include an introduction to algorithm design
and analysis, covering dynamic data structures, hashing, sorting
algorithms, and searching.
Length: x + 248 pages.
Price: retail price is around $AUD85 for the hardcopy, you may be
able to get it for less with student discount.
Other resources: all of the C programs in the book are available
to people wishing to use it as a text; and a complete set of
lecture slides (PDF) are also available.
Email the author for more information.
Pearson Catalog page
Web page for first edition, including errata listing for first edition
Errata listing for revised edition
Back cover blurb
Professor Alistair Moffat has been a member of the academic staff at
The University of Melbourne since 1987.
This book has evolved out of his award-winning lecture presentations,
and draws on his three decades of teaching experience with
The readable style is punctuated by more than 100 working programs,
and each chapter includes a detailed case study, highlighted key
points, and a range of on-paper and programming exercises.
What they think...
"A truly gripping read" - the author.
"Tom Clancy has a problem" - the author's wife.
"We had to buy it" - the author's students.
(click photo for larger image)
Sample pages (subject to copyright, and not for distribution or duplication):
Changes in the Revised Edition
- All of the mistakes noted in the first edition were corrected.
- All of the references to computer speed and size were updated,
and all of the reported program execution times were
replaced. And no more talk of floppy disks!
- All of the programs were reviewed, with
many small changes made: to
to function prototypes (names
for variables added as well as types);
declare argc as a *char rather than char**.
- The section in Chapter 7 on sorting was replaced (insertion sort
is now used as a first example, rather than bubblesort)
- New material on time-based simulations was added to Chapter 9.
- Chapter 12 was reorganized to make it flow better,
including the section on hashing being extended.
- Minor wording changes were made throughout, and areas where
students typically encountered confusion were revised, and where
- Additional exercises were added to most of the chapters.
ammoffat / unimelb.edu.au
January 13, 2013
This page, its content and style, are the responsibility of the
author and do not necessarily
represent the views, policies, or opinions of The University of Melbourne.