home page - news - syllabus - schedule - assignments - tutorials - java - references - Mike Jacobson |
References |
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.
Elliot B. Koffman and Paul A. T. Wolfgang
Data Structures: Abstraction and Design Using Java (2nd Edition)
Wiley, 2010
This book contains much of the same basic material as the required text, but with a stronger focus on implementation. It also has a useful appendix on testing with JUnit.
The student companion site contains source code and solutions to selected exercises in the book.
Michael T. Goodrich and Roberto Tamassia
Data Structures and Algorithms Using Java (6th Edition)
Wiley, 2014
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.
Frank M. Carrano and Janet J. Prichard
Data
Abstraction & Problem Solving with Java: Walls &
Mirrors
Third Edition, Pearson/Addison-Wesley, 2011
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.
Mark Allen Weiss
Data Structures and Problem Solving Using Java
Fourth Edition, Addison Wesley, 2010
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.
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.
Susanna S. Epp
Discrete Mathematics with Applications, Fourth Edition
Thomson, 2010
This book has been used as the textbook for Mathematics 271 in recent years.
Kenneth H. Rosen
Discrete Mathematics and Its Applications, Seventh Edition
McGraw Hill, 2011
This book is somewhat more advanced than Epp’s text but also provides a readable introduction to the material that will be used in Computer Science 331.
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
Third Edition, Springer, 2014
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.
An electronic version of this book (pdf or epub) is freely available to University of Calgary.
Nicholas J. Higham
Handbook of Writing for the Mathematical Sciences
Society for Industrial and Applied Mathematics,
Second Edition, 1998
Along with the mateiral typically found in a technical writing reference, this book a list of recommended writers’ tools and references, as well as information that should be particularly helpful for students whose first language is not English.
University of Calgary students can download chapters of this book using their library access credentials.
Last updated:
http://www.cpsc.ucalgary.ca/~jacobs/Courses/cpsc331/W17/references.html |