Object-oriented C++ Data Structures for Real Programmers


Book Description

Data structures play a key role in any serious development project, determining how the program acquires, stores, updates, and processes its in-memory data. Many of the basic techniques for constructing and governing access to data structures are well-documented, but most are structured programming techniques that do not translate well in an object-oriented environment. Object-Oriented C++ Data Structures for Real Programmers corrects this imbalance, teaching experienced C++ and Java developers the most effective methods for designing and implementing highly functional data structures in any type of object-oriented programming effort. The first part of the book introduces the various approaches, focusing on the purposes for which each is most suited. From there, the author examines advanced functionality that can be achieved in a number of ways, helping readers choose and apply the optimal technique. Key Features * Advanced coverage from an accomplished developer and programming author * Written explicitly for experienced object-oriented programmers * Helps you choose the best way to build the desired functionality, then provides the instruction you need to do it * Covers all major data structure approaches, including arrays, vectors, lists, stacks, and queues * Explains how to achieve a wide range of functionality, including data sorting, searching, hashing, dictionaries, and indexes




Data-Oriented Programming


Book Description

Eliminate the unavoidable complexity of object-oriented designs. The innovative data-oriented programming paradigm makes your systems less complex by making it simpler to access and manipulate data. In Data-Oriented Programming you will learn how to: Separate code from data Represent data with generic data structures Manipulate data with general-purpose functions Manage state without mutating data Control concurrency in highly scalable systems Write data-oriented unit tests Specify the shape of your data Benefit from polymorphism without objects Debug programs without a debugger Data-Oriented Programming is a one-of-a-kind guide that introduces the data-oriented paradigm. This groundbreaking approach represents data with generic immutable data structures. It simplifies state management, eases concurrency, and does away with the common problems you’ll find in object-oriented code. The book presents powerful new ideas through conversations, code snippets, and diagrams that help you quickly grok what’s great about DOP. Best of all, the paradigm is language-agnostic—you’ll learn to write DOP code that can be implemented in JavaScript, Ruby, Python, Clojure, and also in traditional OO languages like Java or C#. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the technology Code that combines behavior and data, as is common in object-oriented designs, can introduce almost unmanageable complexity for state management. The Data-oriented programming (DOP) paradigm simplifies state management by holding application data in immutable generic data structures and then performing calculations using non-mutating general-purpose functions. Your applications are free of state-related bugs and your code is easier to understand and maintain. About the book Data-Oriented Programming teaches you to design software using the groundbreaking data-oriented paradigm. You’ll put DOP into action to design data models for business entities and implement a library management system that manages state without data mutation. The numerous diagrams, intuitive mind maps, and a unique conversational approach all help you get your head around these exciting new ideas. Every chapter has a lightbulb moment that will change the way you think about programming. What's inside Separate code from data Represent data with generic data structures Manage state without mutating data Control concurrency in highly scalable systems Write data-oriented unit tests Specify the shape of your data About the reader For programmers who have experience with a high-level programming language like JavaScript, Java, Python, C#, Clojure, or Ruby. About the author Yehonathan Sharvit has over twenty years of experience as a software engineer. He blogs, speaks at conferences, and leads Data-Oriented Programming workshops around the world. Table of Contents PART 1 FLEXIBILITY 1 Complexity of object-oriented programming 2 Separation between code and data 3 Basic data manipulation 4 State management 5 Basic concurrency control 6 Unit tests PART 2 SCALABILITY 7 Basic data validation 8 Advanced concurrency control 9 Persistent data structures 10 Database operations 11 Web services PART 3 MAINTAINABILITY 12 Advanced data validation 13 Polymorphism 14 Advanced data manipulation 15 Debugging




Object-Oriented Data Structures Using Java


Book Description

Continuing the success of the popular second edition, the updated and revised Object-Oriented Data Structures Using Java, Third Edition is sure to be an essential resource for students learning data structures using the Java programming language. It presents traditional data structures and object-oriented topics with an emphasis on problem-solving, theory, and software engineering principles. Beginning early and continuing throughout the text, the authors introduce and expand upon the use of many Java features including packages, interfaces, abstract classes, inheritance, and exceptions. Numerous case studies provide readers with real-world examples and demonstrate possible solutions to interesting problems. The authors' lucid writing style guides readers through the rigor of standard data structures and presents essential concepts from logical, applications, and implementation levels. Key concepts throughout the Third Edition have been clarified to increase student comprehension and retention, and end-of-chapter exercises have been updated and modified. New and Key Features to the Third Edition: -Includes the use of generics throughout the text, providing the dual benefits of allowing for a type safe use of data structures plus exposing students to modern approaches. -This text is among the first data structures textbooks to address the topic of concurrency and synchonization, which are growing in the importance as computer systems move to using more cores and threads to obtain additional performance with each new generation. Concurrency and synchonization are introduced in the new Section 5.7, where it begins with the basics of Java threads. -Provides numerous case studies and examples of the problem solving process. Each case study includes problem description, an analysis of the problem input and required output, and a discussion of the appropriate data structures to use. -Expanded chapter exercises allow you as the instructor to reinforce topics for your students using both theoretical and practical questions. -Chapters conclude with a chapter summary that highlights the most important topics of the chapter and ties together related topics.




Clean Code


Book Description

This title shows the process of cleaning code. Rather than just illustrating the end result, or just the starting and ending state, the author shows how several dozen seemingly small code changes can positively impact the performance and maintainability of an application code base.




Object-Oriented COBOL


Book Description

Walks COBOL users through the next phase of COBOL: Object-Oriented COBOL. Teaches how to integrate COBOL with object-oriented methodologies.




Object-Orientation, Abstraction, and Data Structures Using Scala


Book Description

Praise for the first edition: "The well-written, comprehensive book...[is] aiming to become a de facto reference for the language and its features and capabilities. The pace is appropriate for beginners; programming concepts are introduced progressively through a range of examples and then used as tools for building applications in various domains, including sophisticated data structures and algorithms...Highly recommended. Students of all levels, faculty, and professionals/practitioners. —D. Papamichail, University of Miami in CHOICE Magazine Mark Lewis’ Introduction to the Art of Programming Using Scala was the first textbook to use Scala for introductory CS courses. Fully revised and expanded, the new edition of this popular text has been divided into two books. Object-Orientation, Abstraction, and Data Structures Using Scala, Second Edition is intended to be used as a textbook for a second or third semester course in Computer Science. The Scala programming language provides powerful constructs for expressing both object orientation and abstraction. This book provides students with these tools of object orientation to help them structure solutions to larger, more complex problems, and to expand on their knowledge of abstraction so that they can make their code more powerful and flexible. The book also illustrates key concepts through the creation of data structures, showing how data structures can be written, and the strengths and weaknesses of each one. Libraries that provide the functionality needed to do real programming are also explored in the text, including GUIs, multithreading, and networking. The book is filled with end-of-chapter projects and exercises, and the authors have also posted a number of different supplements on the book website. Video lectures for each chapter in the book are also available on YouTube. The videos show construction of code from the ground up and this type of "live coding" is invaluable for learning to program, as it allows students into the mind of a more experienced programmer, where they can see the thought processes associated with the development of the code. About the Authors Mark Lewis is an Associate Professor at Trinity University. He teaches a number of different courses, spanning from first semester introductory courses to advanced seminars. His research interests included simulations and modeling, programming languages, and numerical modeling of rings around planets with nearby moons. Lisa Lacher is an Assistant Professor at the University of Houston, Clear Lake with over 25 years of professional software development experience. She teaches a number of different courses spanning from first semester introductory courses to graduate level courses. Her research interests include Computer Science Education, Agile Software Development, Human Computer Interaction and Usability Engineering, as well as Measurement and Empirical Software Engineering.




Mastering Algorithms with C


Book Description

Implementations, as well as interesting, real-world examples of each data structure and algorithm, are shown in the text. Full source code appears on the accompanying disk.




OBJECT-ORIENTED PROGRAMMING USING C++


Book Description

This compact book presents a clear and thorough introduction to the object-oriented paradigm using the C++ language. It introduces the readers to various C++ features that support object-oriented programming (OOP) concepts. In an easy-to-comprehend format, the text teaches how to start and compile a C++ program and discusses the use of C++ in OOP. The book covers the full range of object-oriented topics, from the fundamental features through classes, inheritance, polymorphism, template, exception handling and standard template library. KEY FEATURES • Includes several pictorial descriptions of the concepts to facilitate better understanding. • Offers numerous class-tested programs and examples to show the practical application of theory. • Provides a summary at the end of each chapter to help students in revising all key facts. The book is designed for use as a text by undergraduate students of engineering, undergraduate and postgraduate students of computer applications, and postgraduate students of management.




Standard C++ with Object-oriented Programming


Book Description

While there are many books used to teach the C++ programming course, very few have been written specifically as texts. STANDARD C++ WITH OBJECT-ORIENTED PROGRAMMING is intended for courses in C++ programming, object-oriented programming, or any combination of the two at the sophomore level or higher. Prerequisites for this course are Introduction to Programming (CS1) and Data Structures (CS2). This text treats C++ as a tool for bridging real-world application, addressing basic theoretical concepts of object-oriented programming. The material is organized and presented in a simple, concise, and easy-to-follow manner. Wang has developed interesting examples and challenging exercises that reinforce the text's hands-on approach.




Object Thinking


Book Description

Object Thinking blends historical perspective, experience, and visionary insight - exploring how developers can work less like the computers they program and more like problem solvers.