Synopses & Reviews
While many computer science textbooks are confined to teaching programming code and languages, Algorithms and Data Structures: The Science of Computing takes a step back to introduce and explore algorithms -- the content of the code. Focusing on three core topics: design (the architecture of algorithms), theory (mathematical modeling and analysis), and the scientific method (experimental confirmation of theoretical results), the book helps students see that computer science is about problem solving, not simply the memorization and recitation of languages. Unlike many other texts, the methods of inquiry are explained in an integrated manner so students can see explicitly how they interact. Recursion and object oriented programming are emphasized as the main control structure and abstraction mechanism, respectively, in algorithm design. Designed for the CS2 course, the book includes text exercises and has laboratory exercises at the supplemental Web site.
While many computer books designed for college-level courses are largely confined to programming code and languages, this work takes a step back to introduce and explore algorithms, the content of the code. Primarily a text about understanding and thinking about computer science as well as working in it, the book focuses on three core topics: design, theory, and the scientific method.
About the Author
Douglas Baldwin (Honeoye Falls, NY) is an Associate Professor of Computer Science at SUNY Geneseo. A graduate of Yale University, he has taught courses from CS1 to Compiler Construction, and from Networking to Theory of Programming Languages. He has authored many journal articles and conference papers within the field.Dr. Orit Hazzan (Haifa, Israel) is a senior lecturer in the Department of Education in Technology and Science of the Technion - Israel Institute of Technology. Her work on the teaching of human aspects of software engineering has been presented at numerous conferences.
Table of Contents
Preface Part I The Science of Computing's Three Methods of Inquiry Chapter 1 What is the Science of Computing? Chapter 2 Abstraction: An Introduction to Design Chapter 3 Proof: An Introduction to Theory Chapter 4 Experimentation: An Introduction to the Scientific Method Part II Program Design Chapter 5 Conditionals Chapter 6 Designing with Recursion Chapter 7 Analysis of Recursion Chapter 8 Creating Correct Iterative Algorithms Chapter 9 Iteration and Efficiency Chapter 10 Case Study in Design and Analysis: Efficient Sorting Part III Introduction to Data Structures Chapter 11 Lists Chapter 12 Queues and Stacks Chapter 13 Binary Trees Chapter 14 Case Studies in Design: Abstracting Indirection Part IV The Limits of Computer Science Chapter 15 Exponential Growth Chapter 16 Limits to Performance Chapter 17 The Halting Problem Appendix A Object-oriented Programming in Java Appendix B About the Web Site Index