Synopses & Reviews
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.
From the reviews: "This is an excellent book. ... The author takes an interesting and entirely appropriate approach to Java ... . the book is designed primarily as a textbook for class use, a programmer experienced in another procedural or object-oriented language, who would like to get started with Java, could also use it. The examples and exercises are definitely a lot more interesting than those found in most books aimed at professionals ... . I like this book and I recommend it." (Edgar R. Chavez, ACM Computing Reviews, August, 2009)
A Concise and Practical Introduction to Programming Algorithms in Java has two main goals. The first is for novice programmers to learn progressively the basic concepts underlying most imperative programming languages using Java. The second goal is to introduce new programmers to the very basic principles of thinking the algorithmic way and turning the algorithms into programs using the programming concepts of Java. The book is divided into two parts and includes: The fundamental notions of variables, expressions and assignments with type checking - Conditional and loop statements - Explanation of the concepts of functions with pass-by-value arguments and recursion - Fundamental sequential and bisection search techniques - Basic iterative and recursive sorting algorithms. Each chapter of the book concludes with a set of exercises to enable students to practice concepts covered.
This introduction to programming and algorithms requires no prior knowledge of the subject. It covers programming basic tasks using Java as well as focuses on data structures and algorithms. Exercises are included at the end of each chapter.
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.