home page - news - syllabus - schedule - assignments - tutorials - tests - java - references - Mike Jacobson |
References |
Elliot B. Koffman and Paul A. T. Wolfgang
Objects, Abstraction, Data Structures, and Design using Java Version 5.0
Wiley, 2005
This book includes material about object-oriented programming and the Java programming language, that should be useful for students in the Computer Engineering and Software Engineering programs who completed the prerequisite Computer Engineering 339 (which currently uses C++ as its programming language) or for Computer Science students who wish to review material that was introduced in Computer Science 233.
Of course, this book includes the material about data structures that would be found in any textbook for Computer Science 331. It also includes more material about the correctness of algorithms and testing of software than most books about data structures, and this is the main reason why it was chosen.
This book is now available at the University of Calgary bookstore. It can also 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.
This book is now available at the University of Calgary bookstore. It can also be ordered through Amazon or Chapters. Several copies are also available on reserve, for short-term use, at the University of Calgary library.
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.
Several copies of this book are available on reserve for short-term use at the University of Calgary library. Printed copies can be purchased at Amazon or Chapters.
Source code (and, possibly, additional supplemental material) for this text is available for download.
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. A small number of copies are available on reserve for short-term use at the University of Calgary library. Printed copies can be purchased at Amazon or Chapters.
Adam Drozdek
Data Structures and Algorithms in Java
Second Edition, Thomson Learning, 2004
This is another popular introduction to data structures using Java. Several copies are available for short-term use at the University of Calgary library. Printed copies can be purchased at Amazon or Chapters.
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.
Several copies of this book are available for short-term use at the University of Calgary library. Printed copies can be purchased at Amazon or Chapters.
This page last modified:
http://www.cpsc.ucalgary.ca/~jacobs/cpsc331/F08/references.html |