Part 1: Algorithmic Problem Solving
1. Computer Programming Fundamentals
Part 2: Data, Expressions, Statements
2. Python Programming: An Introduction
3. Functions
Part 3: Control Flow, Functions
4. Control Structures
5. Scope
6. Strings
7. Recursion
Part 4: Compound Data: Lists, Tuples, Dictionaries
8. Mutable and Immutable Objects
9. List Manipulation
Part 5: Files, Modules, Packages
10. Files and Exceptions
Part 6: Advanced Topics
11. Debugging
12. Classes I
13. Classes II
14. Applications of Python
Appendix: More on Recursion
Lab Manual Programs

Salient Features

1. Visualization of program execution in Python Tutor
2. A chapter on debugging - an essential skill for making the programs work
3. Includes basic sorting and searching techniques: selection sort, bubble sort, insertion sort, merge sort, quick sort, and linear and binary search
4. Comprehensive treatment of recursion, including problems like list manipulation, Tower of Hanoi, permutation generation, n-queens' problem, Sudoku, and plotting Hilbert curves
5. Discussion on integration of Python code with Java code
6. Margin notes and chapter summary for quick review of the concepts
7. Lab programs included as appendix"