The preface of Algorithm Design by Kleinburg and Tardos gives a very clear introduction to the importance of algorithms, the goals of the book, and the layout and useful parts of the book. Algorithms are the basis for all computer science, but they are often complicated and messy. Thus, there are two important components to this book. The authors strive to teach us(students) how to get to the center of a confusing or complicated problem and then to identify the algorithm design techniques applicable to the problem. The authors' goal is to focus on this approach to algorithms. The preface also gives an overview of the contents of the book. The book covers four main algorithm design techniques, which are greedy algorithms, divide and conquers, dynamic programming, and network flow, then continues to cover computational intractability. This book seems like it will be fairly easy to understand and to follow the proofs. The preface made the motivation of the book and the class very clear. This class will be based heavily on designing algorithms and evaluating them, but not as much on implementing them.