Whether you are a computer programming student, hobbyist or professional, Lambert's FUNDAMENTALS OF PYTHON(TM) DATA STRUCTURES, 2E offers the perfect introduction to object-oriented design and data structures using the popular Python(TM) programming language. The level of instruction is ideal if you've had at least one semester of programming experience in an object-oriented language, such as Java(TM), C++ or Python(TM). Step-by-step explanations and focused exercises clearly explain the design of collection classes with polymorphism and inheritance and multiple implementations of collection interfaces. This edition also addresses the analysis of the space/time tradeoffs of different collection implementations and, specifically, array-based implementations and link-based implementations. You learn to work with collections, including sets, lists, stacks, queues, trees, dictionaries and graphs. Prepare for success with FUNDAMENTALS OF PYTHON(TM) DATA STRUCTURES, 2E. "Welcome to 'Fundamentals of Python : Data Structures, 2nd Edition'. This text is intended for a second semester course in programming and problem solving with data structures. It covers the material taught in a typical Computer Science 2 course (CS2) at the undergraduate level. Although this book uses the Python programming language, you need only have a basic knowledge of programming in a high-level programming language before beginning Chapter 1. The book covers four major aspects of computing : 1. Programming basics - Data types, control structures, algorithm development, and program design with functions are basic ideas that you need to master to solve problems with computers. You'll review these core topics in the Python programming language and employ your understanding of them to solve a wide range of problems ; 2. Object-Oriented Programming (OOP) - Object-Oriented Programming is the dominant programming paradigm used to develop large software systems. You'll be introduced to the fundamental principles of OOP so that you can apply them successfully. Unlike other textbooks, this book helps you develop a professional-quality framework of collection classes to illustrate these principles ; 3. Data structures - Most useful programs rely on data structures to solve problems. At the most concrete level, data structures include arrays and various types of linked structures. You'll use these data structures to implement various types of collection structures, such as stacks, queues, lists, trees, bags, sets, dictionaries, and graphs. You'll also learn to use complexity analysis to evaluate the space / time tradeoffs of different implementations of these collections ; 4. Software development life cycle - Rather than isolate software development techniques in one or two chapters, this book deals with them throughout in the context of numerous case studies. Among other things, you'll learn that coding a program is often not the most difficult or challenging aspect of problem solving and software development."--adapted from Preface, page xi