Автор: Kent D. Lee, Steve Hubbard
Издательство: Springer
Год: 2024
Страниц: 400
Язык: английский
Формат: pdf (true), epub
Размер: 71.3 MB
This textbook explains the concepts and techniques required to write programs that can handle large amounts of data efficiently. Project-oriented and classroom-tested, the book presents a number of important algorithms—supported by motivating examples—that bring meaning to the problems faced by computer programmers. The idea of computational complexity is introduced, demonstrating what can and cannot be computed efficiently at scale, helping programmers make informed judgements about the algorithms they use. The easy-to-read text assumes some basic experience in computer programming and familiarity in an object-oriented language, but not necessarily with Python.
A number of algorithms are introduced, and the need for them is motivated through examples that bring meaning to the problems we face as computer programmers. An algorithm is a well-defined procedure for accomplishing a task. Algorithms are an important part of Computer Science, and this text explores many algorithms to give you the background you need when writing programs of your own. The goal is that having seen some of the sorts of algorithms presented in this text, you will be able to apply these techniques to other programs you write in the future.
Another goal of this text is to introduce you to the idea of computational complexity. While there are many unique and interesting algorithms that we could explore, it is important to understand that some algorithms are more efficient than others. While computers are very good at doing calculations quickly, an inefficient algorithm can make the fastest computer seem very slow or even make it appear to come to a halt. This text will show you what can and cannot be computed efficiently. The text builds this idea of efficiency from the most basic of facts giving you the tools you’ll need to determine just how efficient any algorithm is so you can make informed judgements about the programs you write.
Two new chapters are now included with the book on parallel programming using multiprocessing. An API that can support today’s demanding dynamic workloads is essential, and the Python multiprocessing API was designed for this purpose. While the final two chapters are optional, the concepts introduced in these chapters work well as a capstone to an advanced data structures and algorithms course.
The text assumes that you have some prior experience in computer programming, probably from an introductory programming course where you learned to break simple problems into steps that could be solved by a computer. The language you used may have been Python, but not necessarily. Python is an excellent language for a text on data structures and algorithms whether you have used it before or not. Python is an object-oriented programming language with operator overloading and dynamic typing. Whether this is your first exposure to Python or you used it in your first course, you’ll learn more about the language from this text. The first chapter of the text reviews some of the fundamentals of computer programming along with the basic syntax of Python to get you up to speed in the language. Then subsequent chapters dive into more advanced topics and should be read in sequence.
At the beginning of every chapter, the goals of the chapter are stated. At the end of every chapter is a set of review questions that reinforce the goals of the chapter. These review questions are followed in all but one chapter by a few programming problems that relate to the chapter goals by asking you to use the things you learned in the chapter and apply them to a computer program. You can motivate your reading of a chapter by first consulting the review questions and then reading the chapter to answer them. Along the way, there are many examples to illustrate the concepts being introduced.
Скачать Data Structures and Algorithms with Python: With an Introduction to Multiprocessing, 2nd Edition 2024 Edition