home page - news - syllabus - schedule - assignments - tutorials - tests - java - references - Mike Jacobson |
References |
Robert Lafore,
Data Structures and Algorithms in Java, Sams, 1998
Covers most of the data structure and algorithm material required for CPSC 331 in the context of Java implementation. This is the main recommended reference for the course.
University of Calgary students can read this book online.
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest,
and Clifford Stein,
Introduction to Algorithms,
Second Edition, MIT Press/McGraw Hill, 2001
This huge book includes material that could be covered in at least three of the courses in algorithms and data structures that are offered at the University of Calgary (namely, CPSC 331, 413, and 517). It does not include very much information about how to implement data structures or algorithms in any particular programming language, but it includes more information about the correctness of algorithms than most other references do and — sometimes — its presentation of an algorithm is somewhat simpler than presentations found elsewhere. This book is also a very good reference for students who are interested in learning more the design and analysis of algorithms.
University of Calgary students can read this book online. Printed copies can be purchased at Amazon or Chapters.
Michael Soltys
An Introduction to the Analysis of Algorithms
World Scientific, 2009.
This book, while mostly geared to a more advance course in algorithm analysis, contains useful information about proofs of correctness that follows our presentation in CPSC 331. Most of this material, with examples, can be found in the first chapter, which is freely available on-line here.
Kathy Sierra and Bert Bates
Head First Java
O'Reily Media, Inc.
Good textbook for those who would like some more background material on Java. Freely available electronically through the UofC library from any UofC computer (using the link above).
University of Calgary students can read this book online.
Gary Cornell and Cay Horstman
Core Java
Sun
Another good textbook, more reference style than Head First Java. Freely available electronically through the UofC library from any UofC computer (using the link above).
University of Calgary students can read this book online.
Michael T. Goodrich and Roberto Tamassia
Data Structures and Algorithms Using Java (5th Edition)
Wiley, 2010
This book contains material about data structures and algorithms, presented in a reasonably readable manner with examples and guides to implementation. Unlike most similar texts, it also includes some reference to correctness of algorithms, an important concept in CPSC 331. Also has a student companion site, containing additional notes, hints to exerciese, and code fragments.
This book is now available at the University of Calgary bookstore. This book can be ordered through Amazon or Chapters.
Elliot B. Koffman and Paul A. T. Wolfgang
Objects, Abstraction, Data Structures, and Design using Java Version 5.0
Wiley, 2005
This book contains much of the same basic material as the required text, but with a stronger focus on testing. It is a useful supplement for this course, especially for implementation and testing background.
This book can be ordered through Amazon or Chapters.
The student companion site contains source code and solutions to selected exercises in the book.
The following reference on technical writing is recommended for students in this course. It will probably a useful reference as you take later courses where you are asked to write about algorithms.
Justin Zobel
Writing for Computer Science
Second Edition, Springer, 2004
This book includes style guidelines that every computer science student should read and follow. It includes useful information about how to include mathematics in your writing and how to describe algorithms. It also includes material about ethics — notably including a helpful discussion of plagiarism — that you should read before submitting material that includes information from other sources for this or any other course.
Each of the following books includes a discussion of most of the topics that will be studied in Computer Science 331. No one book is useful for everyone, so students in Computer Science 331 might find these other references to be helpful.
Frank M. Carrano and Janet J. Prichard
Data Abstraction & Problem Solving with Java: Walls & Mirrors
Second Edition, Pearson/Addison-Wesley, 2006
This book includes material not found in the course textbook that may be useful for students who used a different object-oriented programming language than Java in prerequisite courses. In particular, its first chapter presents “Java Fundamentals,” and a very concise “Comparison of Java to C++” can be found as an appendix.
Printed copies can be purchased at Amazon or Chapters.
Source code (and, possibly, additional supplemental material) for this text is available for download.
Mark Allen Weiss
Data Structures & Problem Solving Using Java
Third Edition, Addison Wesley, 2006
This is another respected and widely used book that could be as a textbook for Computer Science 331. The first part of the book (including four chapters) provides a “Tour of Java” that might be helpful for students who are not already familiar with this programming language.
Last updated:
http://www.cpsc.ucalgary.ca/~jacobs/Courses/cpsc331/W12/references.html |