Data Abstraction & Problem Solving with C : Walls and Mirrors 7th Edition
For courses in C Data Structures Concepts of Data Abstraction and Manipulation for C Programmers The Seventh Edition of Data Abstraction & Problem Solving with C : Walls and Mirrors introduces fundamental computer science concepts related to the study of data structures. The text Explores problem solving and the efficient access and manipulation of data and is intended for readers who already have a basic understanding of C . The “walls and mirrors” mentioned in the title represent problem-solving techniques that appear throughout the text. Data abstraction hides the details of a module from the rest of the program, whereas recursion is a repetitive technique that solves a problem by solving smaller versions of the same problems, much as images in facing mirrors grow smaller with each reflection. Along with general changes to improve clarity and correctness, this Seventh Edition includes new notes, programming tips, and sample problems.
Out of stock
This book is for anyone who wants to understand computer programming. You’ll learn to program in a language that’ s used in millions of smartphones, tablets, and PCs. You’ll code along with the book, writing programs to solve real-world problems as you learn the fundamentals of programming using Python 3. You’ll learn about design, algorithms, testing, and debugging, and come away with all the tools you need to produce quality code. In this second edition, we’ve updated almost all the material, incorporating the lessons we’ve learned over the past five years of teaching Python to people new to programming. You don’t need any programming experience to get started. First, you’ll get a detailed introduction to Python and to programming. You’ll find out exactly what happens when your programs are executed. Through real-world examples, you’ll learn how to work with numbers, text, big data sets, and files. Then you’ll see how to create and use your own data types. The incremental examples show you the steps and missteps that happen while developing programs, so you know what to expect when you tackle a problem on your own. Inspired by “How to Design Programs” (HtDP), you’ll learn a six-step recipe for designing functions, which helps you as you start to learn the concepts–and becomes an integral part of writing programs by the end. As you learn to use the fundamental programming tools in the first half of the book, you’ll see how to document and organize your code so that you and other programmers can more easily read and understand it. Beyond the basics, you’ll learn how to ensure that your programs are reliable, and how to work with databases, download data from the web automatically, and build user interfaces. Most importantly, you’ll learn how to think like a professional programmer. You’ll need to download Python 3, available from “python.org”:https://python.org. With that download comes IDLE, the editor we use for writing and running Python programs. (If you use Linux, you may need to install Python 3 and IDLE separately.)
About the Author
Paul Gries, is a senior lecturer in Computer Science at the University of Toronto. He has won numerous teaching awards and authored other introductory computer science texts. Jennifer Campbell is a senior lecturer in Computer Science at the University of Toronto who created the course this book is based on. Jason Montojo, is a former student of Jennifer Campbell and Paul Gries, who has since worked on the Eclipse programming platform at IBM; he is also a professional photographer and digital artist, and created all of the diagrams for this book.
Table of Contents
Section 1: Problems and Algorithms – Solving Problems – Check what you have learnt – Algorithm design – Check what you have learnt Section 2: Visual Basic Fundamentals – Elements – Check what you have learnt – Hello (Programming example 1) – Points to note – Check what you have learnt – Objects and events – Check what you have learnt Section 3: Variables and Data Types – Temperature converter (Programming example 2) – Points to Note – Check what you have learnt – Visual Basic variables – Check what you have learnt Section 4: Branching – Dinosaur (Programming example 3) – Points to note – Check what you have learnt – Aquarium (Programming example 4) – Points to note – Check what you have learnt – Rally cars (Programming example 5) – Points to note – Check what you have learnt – Paper, rock, scissors (Programming example 6) – Points to note – Check what you have learnt Section 5: Loops – Fibonacci (Programming example 7) – Points to note – Check what you have learnt – Word count (Programming example 8) – Points to note – Check what you have learnt – Secret Message (Programming example 9) – Points to note – Check what you have learnt Section 6: Text Files – text Files – Check what you have learnt – Hit singles (Programming example 10) – Points to note – Check what you have learnt – Spell checker (Programming example 11) – Points to note – Check what you have learnt – Tiny text editor (Programming example 12) – Points to note – Check what you have learnt Section 7: Graphics and Geometry – Sketchpad (Programming example 13) – Points to note – Check what you have learnt – Learn to drive (Programming example 14) – Points to note – Check what you have learnt Section 8: Arrays – Collections and arrays – Check what you have learnt – Deal a hand (Programming example 15) – Points to note – Check what you have learnt – Concentrate (Programming example 16) – Points to note – Check what you have learnt
In just 24 sessions of one hour or less, Sams Teach Yourself Python Programming for Raspberry Pi in 24 Hours teaches you Python programmingon Raspberry Pi, so you can start creating awesome projects for homeautomation, home theater, gaming, and more. Using this book’s straightforward,step-by-step approach, you’ll move from the absolute basics all theway through network and web connections, multimedia, and even connectingwith electronic circuits for sensing and robotics. Every lesson and casestudy application builds on what you’ve already learned, giving you arock-solid foundation for real-world success! Step-by-step instructions carefully walk you through the most common Raspberry Pi Python programming tasks. Quizzes at the end of each chapter help you test your knowledge. By the Way notes present interesting information related to the discussion. Did You Know? tips offer advice or show you easier ways to perform tasks. Watch Out! cautions alert you to possible problems and give you advice on how to avoid them. * Get your Raspberry Pi and choose the right low-cost peripherals * Set up Raspian Linux and the Python programming environment * Learn Python basics, including arithmetic and structured commands * Master Python 3 lists, tuples, dictionaries, sets, strings, files, and modules * Reuse the same Python code in multiple locations with functions * Manipulate string data efficiently with regular expressions * Practice simple object-oriented programming techniques * Use exception handling to make your code more reliable * Program modern graphical user interfaces with Raspberry Pi and OpenGL * Create Raspberry Pi games with the PyGame library * Learn network, web, and database techniques you can also use in business software * Write Python scripts that send email * Interact with other devices through Raspberry Pi’s GPIO interface * Walk through example Raspberry Pi projects that inspire you to do even more.
Problem Solving with C is intended for use in the C introductory programming course. Created for the beginner, it is also suitable for readers interested in learning the C programming language. ‘ Problem Solving with C continues to be the most widely used textbook by students and instructors in the introduction to programming and C language course. Through each edition, hundreds and thousands of students have valued Walt Savitch’s approach to programming, which emphasizes active reading through the use of well-placed examples and self-test examples. Created for the beginner, this book focuses on cultivating strong problem-solving and programming techniques while introducing students to the C programming language. ‘ MyProgrammingLab for Problem Solving with C is a total learning package. MyProgrammingLab is an online homework, tutorial, and assessment program that truly engages students in learning. It helps students better prepare for class, quizzes, and exams-resulting in better performance in the course-and provides educators a dynamic set of tools for gauging individual and class progress. ‘ Teaching and Learning Experience This program presents a better teaching and learning experience-for you and your students. *Personalized Learning with MyProgrammingLab: Through the power of practice and immediate personalized feedback, MyProgrammingLab helps students fully grasp the logic, semantics, and syntax of programming.*Keep Your Course Current: This edition features a new introduction to C 11 in the context of C 98.*Flexible Coverage that Fits your Course: Instructors can easily adapt the order in which chapters and sections are covered in their course without losing continuity. *Clear and Friendly Presentation: Savitch’s clear, concise style is a hallmark feature of the text, receiving praise from students and instructors alike. *Tried-and-true Pedagogy: A suite of pedagogical tools, enhanced by understandable language and code, has been used by hundreds of thousands of students and instructors. Note: You are purchasing a standalone product; MyProgrammingLab does not come packaged with this content. If you would like to purchase both the physical text and MyProgrammingLab’ search for ISBN-10: 0133862216/ISBN-13: 9780133862218. That package includes ISBN-10: 0133591743/ISBN-13: 9780133591743′ and ISBN-10: 0133834417 /ISBN-13: 9780133834413. MyProgrammingLab is not a self-paced technology and should only be purchased when required by an instructor. ‘
About the Author
Walter Savitch is Professor Emeritus of Computer Science at the University of California-San Diego. He received his PhD in mathematics from the University of California-Berkeley in 1969. Since that time he has been on the faculty of the University of California-San Diego (UCSD). He served as director of the UCSD Interdisciplinary PhD program in cognitive science for over ten years. He has served as a visiting researcher at the computer science departments of the University of Washington in Seattle and at the University of Colorado in Boulder, and has been a visiting scholar at the Centrum voor Wiskunde en Informatica in Amsterdam.