A Concise and Practical Introduction to Programming Algorithms in Java

by Frank Nielsen (twitter)
Published by Springer-Verlag (7th April 2009), Undergraduate textbook in computer science (UTiCS series)
Collection Undergraduate Topics in Computer Science
Approx. 270 p. 27 illustrations, Softcover
ISBN: 978-1-84882-338-9
Forthcoming translation in chinese (slides chapter 8)
Last updated, April 2010.

[Synopsis/keywords] [Table of contents] [Preface] [Slides/programs] [Reviews] [BibTeX]
Reviews Testimonials
This gentle introduction to programming and algorithms has been designed as a first course for undergraduates, and requires no prior knowledge. Divided into two parts the first covers programming basic tasks using Java. The fundamental notions of variables, expressions, assignments with type checking are looked at before moving on to cover the conditional and loop statements that allow programmers to control the instruction workflows. Functions with pass-by-value/pass-by-reference arguments and recursion are explained, followed by a discussion of arrays and data encapsulation using objects. The second part of the book focuses on data structures and algorithms, describing sequential and bisection search techniques and analysing their efficiency by using complexity analysis. Iterative and recursive sorting algorithms are discussed followed by linked lists and common insertion/deletion/merge operations that can be carried out on these. Abstract data structures are introduced along with how to program these in Java using object-orientation. The book closes with an introduction to more evolved algorithmic tasks that tackle combinatorial optimisation problems. Exercises are included at the end of each chapter in order for students to practice the concepts learned, and a final section contains an overall exam which allows them to evaluate how well they have assimilated the material covered in the book.
Table of contents:
Preface.- Part 1 Getting Started.- Expressions, Variables and Assignments.- Conditional Structures and Loops.- Functions and Recursive Functions.- Arrays.- Part II Data-structures and Algorithms.- Objects and Strings.- Searching and Sorting.- Linked Lists.- Object-oriented Data Structures.- Paradigms for Optimization Problems.- The Science of Computing.- Part III Exam Review.- Exam and Solution.- Bibliography
Keywords: Algorithms / Data structures / Java / Object-oriented programming / Programming

Slides and Java programs to download:
(Slides are also available in the open source
open office document format)
BibTeX reference:
  title = {A Concise and Practical Introduction to Programming Algorithms in {J}ava},
  publisher = {Springer Verlag},
  year = {2009},
  author = {Frank Nielsen},
  series = {Undergraduate Topics in Computer Science (UTiCS)},
  note = {http://www.springer.com/computer/programming/book/978-1-84882-338-9},
  url = {http://www.lix.polytechnique.fr/~nielsen/JavaProgramming/index.html}

© 2009 Frank Nielsen/Springer, All rights reserved.