Introduction to Python Programming and Data Structures Second Edition by Y. Daniel Liang is an interactive ebook, called Revel for Liang Python, which is the second edition improved upon the first edition. The Revel book has the builtin interactives for CodeAnimation, LiveExample, and AlgorithmAnimation. These interactives are very helpful for new students to learn programming. Instructors can assign autograded small exercises and projects.
How to Access Revel?
The Revel version can be accessed from revel.pearson.com. Use your Pearson username to login. If you don't have a Pearson account, request it from your Pearson Representative.
Key New Features:
 The title is changed to Introduction to Python Programming and Data Structures with new enhancements on data structures. The book first introduces using data structures and then implementing data structures. The book covers all topics in a typical data structures course.
 The selection statements are moved from Chapter 4 (in 1E) to Chapter 3 (in 2E) to give students opportunity to learn this simple programming constructs to write interesting code early.
 The lists are moved from Chapter 10 (in 1E) to Chapter 7 (in 2E) to enable students to write the code to store and process a collection of data early.
 Chapter 9 in 1E are split into two chapters 10 and 11 in this edition to give more indepth coverage on Python GUI programming using Tkinter.
 Chapters 16–23 are brand new chapters for introducing data structures using Python. New appendixes on regular expressions, commandline arguments, and bitwise operations are added to this edition.
 Many chapters in early part of the book have a section on common errors and pitfalls to steer students away from common programming errors.
 The int and float functions are used to convert a string into an integer or a float value, rather than using the eval function. Using the int and float functions makes the code more intuitive, robust, and secure. (This change triggers rewriting many programs and exercises in the book.)
 This edition provides many new examples and exercises to motivate and stimulate student interest in programming. (This is the hallmark for every new edition of the Liang book.)
 Provided additional exercises not printed in the book. These exercises are available for instructors only.
The following table shows the correlation of the changes to the previous edition.
Correlation to the Previous Edition
This Book (2E)  What's New  Previous Book (1E) 

New Feature Summary (Global Changes) 


Chapter 1 Introduction to Computers, Programs, and Python 

Chapter 1 
Chapter 2 Elementary Programming 

Chapter 2 
Chapter 3 Selections 

Chapter 4 
Chapter 4 Mathematical Functions, Strings, and Objects 

Chapter 3 
Chapter 5 Loops 

Chapter 5 
Chapter 6 Functions 

Chapter 6 
Chapter 7 Lists 

Chapter 11 
Chapter 8 Multidimensional Lists 

Chapter 11 
Chapter 9 Objects and Classes 

Chapter 7 
Chapter 10 Basic GUI Programming Using Tkinter 

Chapter 9 
Chapter 11 Advanced GUI Programming Using Tkinter 


Chapter 12 Inheritance and Polymorphism 

Chapter 12 
Chapter 13 Files and Exception Handling 

Chapter 13 
Chapter 14 Tuples, Sets, and Dictionaries 

Chapter 14 
Chapter 15 Recursion 

Chapter 15 
Chapter 16 Developing Efficiency Algorithms 


Chapter 17 Sorting 


Chapter 18 Linked Lists, Stacks, Queues, and Priority Queues 


Chapter 19 Binary Search Trees 


Chapter 20 AVL Trees 


Chapter 21 Hashing: Implementing Dictionaries and Sets 


Chapter 22 Graphs and Applications 


Chapter 23 Weighted Graphs and Applications 
