For introductory courses in Python Programming and Data Structures.
A fundamentals first approach to programming helps students create efficient, elegant code.
Introduction to Python Programming and Data Structures introduces students to basic programming concepts using a fundamentals-first approach that prepares students to learn object-oriented programming and advanced Python programming. This approach presents programming concepts and techniques that include control statements, loops, functions, and arrays before designing custom classes. Students learn basic logic and programming concepts prior to moving into object-oriented and GUI programming. The content incorporates a wide variety of problems with various levels of difficulty and covers many application areas to engage and motivate students.
Bring programming to life with dynamic content designed for the way today's students read, think, and learn
- Interactives and videos interwoven throughout the content enable students to practice essential coding skills in context. Thanks to this media-rich presentation of content, students come to class better prepared and ready to develop problem-solving skills through programming fundamentals.
- VideoNotes are narrated step-by-step video tutorials that show how to solve problems completely, from design through coding (available on the companion website).
- Listings step students through the code line-by-line, showing and explaining what is happening in the program.
- Algorithm Animations show how an algorithm work visually and interactively (available on the companion website).
- Notes, Tips, and Key Points offer insight and valuable advice on important aspects of programming.
A fundamentals-first approach and clear framework foster understanding of key concepts
- Teaches programming in a problem-driven way that focuses on problem solving rather than syntax using a fundamentals-first and problem-driven strategy, moving students at a steady pace through all the necessary and important basic concepts and techniques on selections, loops, functions, before writing custom classes.
- Basic programming concepts are explained by examples from many different areas—math, science, business, finance, gaming, animation, and multimedia—and are supported by a variety of interactive learning activities to keep students engaged.
- Step-by-step presentation guides students in learning all essential subjects in Python incrementally from fundamental programming techniques to object-oriented programming, from simple functions to STL, from simple data types to classic structures.
New to this Edition
This new edition is completely revised in every detail to enhance clarity, presentation, content, examples, and exercises. The major improvements are as follows:
- Section 1.2 is updated to include cloud storage and touchscreens.
- Section 3.14 introduces the new Python 3.10 match-case statements to simplify coding for multiple cases.
- F-strings are covered in Chapter 4 to provide a concise syntax to format strings for output.
- Statistics functions are covered in Chapter 7 to enable students to write simple code for common statistics tasks.
- Sections 14.4, 14.6, 18.4 are split into multiple subsections to improve the presentation of the contents.
- More content has been are added and improvements have been made in the data structures part of the book. The text progresses from the use of data structures to the implementation of data structures. It book covers all topics in a typical data structures course. Additionally, it covers string matching in Chapter 16 and graph algorithms in Chapter 22. Chapter 23 provides optional materials for a data structures course.
- Appendix G is brand new. It gives a precise mathematical definition for the Big-O notation as well as the Big-Omega and Big-Theta notations.
- Appendix H is brand new. It lists Python operators and their precedence order.
- This edition provides many new examples and exercises to motivate and stimulate student interest in programming.
- Additional exercises not printed in the book are available to adopting instructors.
Table of Contents
Y. Daniel Liang earned his Ph.D. in Computer Science from the University of Oklahoma, USA in 1991, and an MS and BS in Computer Science from Fudan University, China, in 1986 and 1983. Prior to joining Armstrong, he was Associate Professor of Computer Science at Purdue University in Fort Wayne, where he twice received the Excellence in Research Award.
Dr. Liang was trained in theoretical computer science. He was active in graph algorithms from 1990 to 1995 and published more than ten papers in several established journals such as SIAM Journal on Computing, Discrete Applied Mathematics, Acta Informatics, and Information Processing Letters. Since 1996, he has devoted to writing texts and published more than thirty books with Prentice Hall. His popular computer science texts are widely adopted in the world.
Dr. Liang was elected a Java Champion in 2005 by Sun Microsystems and has given lectures on Java internationally.