preface basicsapproach to learning data structures and algorithms without overwhelming the reader with all of the oop terminology and conceptswhich is especially important when the instructor has no plans to cover such topics seconddifferent instructors take different approaches with python in their first course our aim is to provide an excellent text to the widest possible audience we do this by placing the focus on the data structures and algorithmswhile designing the examples to allow the introduction of object-oriented programming if so desired the text also introduces the concept of algorithm analysis and explores the efficiency of algorithms and data structures throughout the text the major presentation of complexity analysis is contained in single which allows it to be omitted by instructors who do not normally cover such material in their data structures course additional evaluations are provided throughout the text as new algorithms and data structures are introducedwith the major details contained in individual sections when algorithm analysis is coveredexamples of the various complexity functions are introducedincluding amortized cost the latter is important when using python since many of the list operations have very efficient amortized cost prerequisites this book assumes that the student has completed the standard introduction to programming and problem-solving course using the python language since the contents of the first course can differ from college to college and instructor to instructorwe assume the students are familiar with or can do the followingdesign and implement complete programs in pythonincluding the use of modules and namespaces apply the basic data types and constructsincluding loopsselection statementsand subprograms (functionscreate and use the built-in list and dictionary structures design and implement basics classesincluding the use of helper methods and private attributes contents and organization the text is organized into fourteen and four appendices the basic concepts related to abstract data typesdata structuresand algorithms are presented in the first four later build on these earlier concepts to present more advanced topics and introduce the student to additional abstract data types and more advanced data structures the book contains several topic threads that run throughout the textin which the topics are revisited in various as appropriate the layout of the text does not force rigid outlinebut allows for the