0
Your cart

Your cart is empty

Browse All Departments
Price
  • R0 - R50 (1)
  • R100 - R250 (11)
  • R250 - R500 (49)
  • R500+ (719)
  • -
Status
Format
Author / Contributor
Publisher

Books > Computing & IT > Computer programming > Object-oriented programming (OOP)

Android Studio 4.0 Development Essentials - Java Edition - Developing Android Apps Using Android Studio 4.0, Java and Android... Android Studio 4.0 Development Essentials - Java Edition - Developing Android Apps Using Android Studio 4.0, Java and Android Jetpack (Paperback)
Neil Smyth
R1,248 Discovery Miles 12 480 Ships in 18 - 22 working days
Java - The ultimate beginners guide to effectively learn Java programming step-by-step (Paperback): Mark Reed Java - The ultimate beginners guide to effectively learn Java programming step-by-step (Paperback)
Mark Reed
R441 R409 Discovery Miles 4 090 Save R32 (7%) Ships in 18 - 22 working days
Applied Computational Thinking with Python - Design algorithmic solutions for complex and challenging real-world problems... Applied Computational Thinking with Python - Design algorithmic solutions for complex and challenging real-world problems (Paperback)
Sofia De Jesus, Dayrene Martinez
R1,122 Discovery Miles 11 220 Ships in 18 - 22 working days

Use the computational thinking philosophy to solve complex problems by designing appropriate algorithms to produce optimal results across various domains Key Features Develop logical reasoning and problem-solving skills that will help you tackle complex problems Explore core computer science concepts and important computational thinking elements using practical examples Find out how to identify the best-suited algorithmic solution for your problem Book DescriptionComputational thinking helps you to develop logical processing and algorithmic thinking while solving real-world problems across a wide range of domains. It's an essential skill that you should possess to keep ahead of the curve in this modern era of information technology. Developers can apply their knowledge of computational thinking to solve problems in multiple areas, including economics, mathematics, and artificial intelligence. This book begins by helping you get to grips with decomposition, pattern recognition, pattern generalization and abstraction, and algorithm design, along with teaching you how to apply these elements practically while designing solutions for challenging problems. You'll then learn about various techniques involved in problem analysis, logical reasoning, algorithm design, clusters and classification, data analysis, and modeling, and understand how computational thinking elements can be used together with these aspects to design solutions. Toward the end, you will discover how to identify pitfalls in the solution design process and how to choose the right functionalities to create the best possible algorithmic solutions. By the end of this algorithm book, you will have gained the confidence to successfully apply computational thinking techniques to software development. What you will learn Find out how to use decomposition to solve problems through visual representation Employ pattern generalization and abstraction to design solutions Build analytical skills required to assess algorithmic solutions Use computational thinking with Python for statistical analysis Understand the input and output needs for designing algorithmic solutions Use computational thinking to solve data processing problems Identify errors in logical processing to refine your solution design Apply computational thinking in various domains, such as cryptography, economics, and machine learning Who this book is forThis book is for students, developers, and professionals looking to develop problem-solving skills and tactics involved in writing or debugging software programs and applications. Familiarity with Python programming is required.

Agile Scrum Implementation and Its Long-Term Impact on Organizations (Paperback): Kenneth R Walsh, Sathiadev Mahesh, Cherie C... Agile Scrum Implementation and Its Long-Term Impact on Organizations (Paperback)
Kenneth R Walsh, Sathiadev Mahesh, Cherie C Trumbach
R4,628 Discovery Miles 46 280 Ships in 18 - 22 working days

Software engineering has surfaced as an industrial field that is continually evolving due to the emergence of advancing technologies and innovative methodologies. Scrum is the most recent revolution that is transforming traditional software procedures, which has researchers and practitioners scrambling to find the best techniques for implementation. The continued development of this agile process requires an extensive level of research on up-to-date findings and applicable practices. Agile Scrum Implementation and Its Long-Term Impact on Organizations is a collection of innovative research on the methods and applications of scrum practices in developing agile software systems. The book combines perspectives from both the academic and professional communities as the challenges and solutions expressed by each group can create a better understanding of how practice must be applied in the real world of software development. While highlighting topics including scrum adoption, iterative deployment, and human impacts, this book is ideally designed for researchers, developers, engineers, practitioners, academicians, programmers, students, and educators seeking current research on practical improvements in agile software progression using scrum methodologies.

Requirements Modeling And Coding: An Object-oriented Approach (Paperback): Liping Liu Requirements Modeling And Coding: An Object-oriented Approach (Paperback)
Liping Liu
R1,947 Discovery Miles 19 470 Ships in 9 - 17 working days

Requirements Modeling and Coding attempts to bridge the gap between modeling and coding and serves the growing trend of agile development better than existing textbooks in the area. Instead of using toy tools to create modeling and coding examples, the author teaches IBM Rational Rhapsody as a modeling tool and Microsoft Visual C# as a programming tool. C# is the purest object-oriented programming language and the best tool for developing graphical user interfaces, while Rhapsody is a visual development environment that real software developers use to create real-time or embedded systems.This book serves as a text for a capstone course on Systems Analysis and Design in Information Systems programs. It conceptualizes business objects and functions, develops business models and software architectures, and enriches the models and the architectures by storyboarding use cases along with user interface designs.Instructor's resources are provided for free to instructors who adopt the book as textbook. Please send your request to [email protected].

Learn Java GUI Applications - 11th Edition - A JFC Swing Tutorial (Paperback, 11th ed.): Philip Conrod, Lou Tylee Learn Java GUI Applications - 11th Edition - A JFC Swing Tutorial (Paperback, 11th ed.)
Philip Conrod, Lou Tylee
R2,928 Discovery Miles 29 280 Ships in 18 - 22 working days
Programming Games with Java - 11th Edition - A JFC Swing GUI Tutorial (Paperback, 11th ed.): Philip Conrod, Lou Tylee Programming Games with Java - 11th Edition - A JFC Swing GUI Tutorial (Paperback, 11th ed.)
Philip Conrod, Lou Tylee
R2,405 Discovery Miles 24 050 Ships in 18 - 22 working days
Arduino Programming (Paperback): Jason Hamilton Arduino Programming (Paperback)
Jason Hamilton
R330 R306 Discovery Miles 3 060 Save R24 (7%) Ships in 18 - 22 working days
Learn JavaScript Quickly - A Complete Beginner's Guide to Learning JavaScript, Even If You're New to Programming... Learn JavaScript Quickly - A Complete Beginner's Guide to Learning JavaScript, Even If You're New to Programming (Paperback)
Code Quickly
R397 Discovery Miles 3 970 Ships in 18 - 22 working days
Java For Kids - NetBeans 11 Programming Tutorial (Paperback, 11th ed.): Philip Conrod, Lou Tylee Java For Kids - NetBeans 11 Programming Tutorial (Paperback, 11th ed.)
Philip Conrod, Lou Tylee
R2,063 Discovery Miles 20 630 Ships in 18 - 22 working days
Easy Learning Design Patterns Java Practice - Reusable Object-Oriented Software (Paperback): Yang Hu Easy Learning Design Patterns Java Practice - Reusable Object-Oriented Software (Paperback)
Yang Hu
R717 Discovery Miles 7 170 Ships in 18 - 22 working days
Learning Java by Building Android  Games - Learn Java and Android from scratch by building six exciting games, 2nd Edition... Learning Java by Building Android Games - Learn Java and Android from scratch by building six exciting games, 2nd Edition (Paperback, 2nd Revised edition)
John Horton
R1,324 Discovery Miles 13 240 Ships in 18 - 22 working days

Get ready for a fun-filled experience of learning Java by developing games for the Android platform Key Features Learn Java, Android, and object-oriented programming from scratch Build games including Sub Hunter, Retro Pong, Bullet Hell, Classic Snake, and a 2D Scrolling Shooter Create and design your own games, such as an open-world platform game Book DescriptionAndroid is one of the most popular mobile operating systems presently. It uses the most popular programming language, Java, as the primary language for building apps of all types. However, this book is unlike other Android books in that it doesn't assume that you already have Java proficiency. This new and expanded second edition of Learning Java by Building Android Games shows you how to start building Android games from scratch. The difficulty level will grow steadily as you explore key Java topics, such as variables, loops, methods, object oriented programming, and design patterns, including code and examples that are written for Java 9 and Android P. At each stage, you will put what you've learned into practice by developing a game. You will build games such as Minesweeper, Retro Pong, Bullet Hell, and Classic Snake and Scrolling Shooter games. In the later chapters, you will create a time-trial, open-world platform game. By the end of the book, you will not only have grasped Java and Android but will also have developed six cool games for the Android platform. What you will learn Set up a game development environment in Android Studio Implement screen locking, screen rotation, pixel graphics, and play sound effects Respond to a player's touch, and program intelligent enemies who challenge the player in different ways Learn game development concepts, such as collision detection, animating sprite sheets, simple tracking and following, AI, parallax backgrounds, and particle explosions Animate objects at 60 frames per second (FPS) and manage multiple independent objects using Object-Oriented Programming (OOP) Understand the essentials of game programming, such as design patterns, object-oriented programming, Singleton, strategy, and entity-component patterns Learn how to use the Android API, including Activity lifecycle, detecting version number, SoundPool API, Paint, Canvas, and Bitmap classes Build a side-scrolling shooter and an open world 2D platformer using advanced OOP concepts and programming patterns Who this book is forLearning Java by Building Android Games is for you if you are completely new to Java, Android, or game programming and want to make Android games. This book also acts as a refresher for those who already have experience of using Java on Android or any other platform without game development experience.

Learn C++ Quickly - A Complete Beginner's Guide to Learning C++, Even If You're New to Programming (Paperback): Code... Learn C++ Quickly - A Complete Beginner's Guide to Learning C++, Even If You're New to Programming (Paperback)
Code Quickly
R444 Discovery Miles 4 440 Ships in 18 - 22 working days
Python Programming For Beginners In 2020 - Learn Python In 5 Days with Step-By-Step Guidance, Hands-On Exercises And Solution -... Python Programming For Beginners In 2020 - Learn Python In 5 Days with Step-By-Step Guidance, Hands-On Exercises And Solution - Fun Tutorial For Novice Programmers (Paperback)
James Tudor
R622 Discovery Miles 6 220 Ships in 18 - 22 working days
Junior Objects (Paperback): Yegor Bugayenko Junior Objects (Paperback)
Yegor Bugayenko
R912 Discovery Miles 9 120 Ships in 18 - 22 working days
Java Fundamentals - A fast-paced and pragmatic introduction to one of the world's most popular programming languages... Java Fundamentals - A fast-paced and pragmatic introduction to one of the world's most popular programming languages (Paperback)
Gazihan Alankus, Rogerio Theodoro de Brito, Basheer Ahamed Fazal, Vinicius Isola, Miles Obare
R883 Discovery Miles 8 830 Ships in 18 - 22 working days

Enhance your career options with this well-crafted object-oriented programming language that enjoys the support of an enormous ecosystem of tools and libraries Key Features Get introduced to Java, its features, and its ecosystem Understand how Java uses object-oriented programming Become an expert Java exception handler Book DescriptionSince its inception, Java has stormed the programming world. Its features and functionalities provide developers with the tools needed to write robust cross-platform applications. Java Fundamentals introduces you to these tools and functionalities that will enable you to create Java programs. The book begins with an introduction to the language, its philosophy, and evolution over time, until the latest release. You'll learn how the javac/java tools work and what Java packages are - the way a Java program is usually organized. Once you are comfortable with this, you'll be introduced to advanced concepts of the language, such as control flow keywords. You'll explore object-oriented programming and the part it plays in making Java what it is. In the concluding chapters, you'll get to grips with classes, typecasting, and interfaces, and understand the use of data structures, arrays, strings, handling exceptions, and creating generics. By the end of this book, you will have learned to write programs, automate tasks, and follow advanced courses on algorithms and data structures or explore more advanced Java courses. What you will learn Create and run Java programs Use data types, data structures, and control flow in your code Implement best practices while creating objects Work with constructors and inheritance Understand advanced data structures to organize and store data Employ generics for stronger check-types during compilation Learn to handle exceptions in your code Who this book is forJava Fundamentals is designed for tech enthusiasts who are familiar with some programming languages and want a quick introduction to the most important principles of Java.

The The C++ Workshop - Learn to write clean, maintainable code in C++ and advance your career in software engineering... The The C++ Workshop - Learn to write clean, maintainable code in C++ and advance your career in software engineering (Paperback)
Dale Green, Kurt Guntheroth, Shaun Ross Mitchell
R1,002 Discovery Miles 10 020 Ships in 18 - 22 working days

Learn to create high-performance, error-free programs by understanding the core principles and techniques behind programming in C++ Key Features Gain a solid understanding of the syntax and anatomy of C++ Implement best practices when building high-performance C++ programs Prepare for real-world development tasks by tackling engaging activities Book DescriptionC++ is the backbone of many games, GUI-based applications, and operating systems. Learning C++ effectively is more than a matter of simply reading through theory, as the real challenge is understanding the fundamentals in depth and being able to use them in the real world. If you're looking to learn C++ programming efficiently, this Workshop is a comprehensive guide that covers all the core features of C++ and how to apply them. It will help you take the next big step toward writing efficient, reliable C++ programs. The C++ Workshop begins by explaining the basic structure of a C++ application, showing you how to write and run your first program to understand data types, operators, variables and the flow of control structures. You'll also see how to make smarter decisions when it comes to using storage space by declaring dynamic variables during program runtime. Moving ahead, you'll use object-oriented programming (OOP) techniques such as inheritance, polymorphism, and class hierarchies to make your code structure organized and efficient. Finally, you'll use the C++ standard library?s built-in functions and templates to speed up different programming tasks. By the end of this C++ book, you will have the knowledge and skills to confidently tackle your own ambitious projects and advance your career as a C++ developer. What you will learn Understand how a C++ program is written, executed, and compiled Efficiently work with the essential C++ data types and variables Build your own C++ applications by writing clear and error-free code Grasp the core principles behind object-oriented programming Simplify your code by using templates and the standard library Debug logical errors and handle exceptions in your program Who this book is forThis Workshop is for anyone who is new to C++ who wants to build a strong foundation for C++ game programming or application development. Basic prior knowledge of data structures and OOP concepts, as well as experience in any other programming language, will help you grasp the concepts covered in this book more easily.

Cogl 2.0 Reference Manual (Paperback): Cogl Docuementation Team Cogl 2.0 Reference Manual (Paperback)
Cogl Docuementation Team
R975 Discovery Miles 9 750 Ships in 18 - 22 working days
Learn C# Programming - A guide to building a solid foundation in C# language for writing efficient programs (Paperback): Marius... Learn C# Programming - A guide to building a solid foundation in C# language for writing efficient programs (Paperback)
Marius Bancila, Raffaele Rialdi, Ankit Sharma; Foreword by Dino Esposito
R1,178 Discovery Miles 11 780 Ships in 18 - 22 working days

Get started with C# and strengthen your knowledge of core programming concepts such as procedural, object-oriented, generic, functional, and asynchronous programming along with the latest features of C# 8 Key Features Learn the fundamentals of C# with the help of easy-to-follow examples and explanations Leverage the latest features of C# 8, including nullable reference types, pattern matching enhancements, and asynchronous streams Explore object-oriented programming, functional programming, and multithreading concepts Book DescriptionThe C# programming language is often developers' primary choice for creating a wide range of applications for desktop, cloud, and mobile. In nearly two decades of its existence, C# has evolved from a general-purpose, object-oriented language to a multi-paradigm language with impressive features. This book will take you through C# from the ground up in a step-by-step manner. You'll start with the building blocks of C#, which include basic data types, variables, strings, arrays, operators, control statements, and loops. Once comfortable with the basics, you'll then progress to learning object-oriented programming concepts such as classes and structures, objects, interfaces, and abstraction. Generics, functional programming, dynamic, and asynchronous programming are covered in detail. This book also takes you through regular expressions, reflection, memory management, pattern matching, exceptions, and many other advanced topics. As you advance, you'll explore the .NET Core 3 framework and learn how to use the dotnet command-line interface (CLI), consume NuGet packages, develop for Linux, and migrate apps built with .NET Framework. Finally, you'll understand how to run unit tests with the Microsoft unit testing frameworks available in Visual Studio. By the end of this book, you'll be well-versed with the essentials of the C# language and be ready to start creating apps with it. What you will learn Get to grips with all the new features of C# 8 Discover how to use attributes and reflection to build extendable applications Utilize LINQ to uniformly query various sources of data Use files and streams and serialize data to JSON and XML Write asynchronous code with the async-await pattern Employ .NET Core tools to create, compile, and publish your applications Create unit tests with Visual Studio and the Microsoft unit testing frameworks Who this book is forIf you have little experience in coding or C# and want to learn the essentials of C# programming to develop powerful programming techniques, this book is for you. It will also help aspiring programmers to write scripts or programs to accomplish specific tasks.

Easy Learning Design Patterns Python (2 Edition) - Build Better and Reusable Object-Oriented Code (Paperback): Yang Hu Easy Learning Design Patterns Python (2 Edition) - Build Better and Reusable Object-Oriented Code (Paperback)
Yang Hu
R680 Discovery Miles 6 800 Ships in 18 - 22 working days
Expert C++ - Become a proficient programmer by learning coding best practices with C++17 and C++20's latest features... Expert C++ - Become a proficient programmer by learning coding best practices with C++17 and C++20's latest features (Paperback)
Vardan Grigoryan, Shunguang Wu
R1,168 Discovery Miles 11 680 Ships in 18 - 22 working days

Design and architect real-world scalable C++ applications by exploring advanced techniques in low-level programming, object-oriented programming (OOP), the Standard Template Library (STL), metaprogramming, and concurrency Key Features Design professional-grade, maintainable apps by learning advanced concepts such as functional programming, templates, and networking Apply design patterns and best practices to solve real-world problems Improve the performance of your projects by designing concurrent data structures and algorithms Book DescriptionC++ has evolved over the years and the latest release - C++20 - is now available. Since C++11, C++ has been constantly enhancing the language feature set. With the new version, you'll explore an array of features such as concepts, modules, ranges, and coroutines. This book will be your guide to learning the intricacies of the language, techniques, C++ tools, and the new features introduced in C++20, while also helping you apply these when building modern and resilient software. You'll start by exploring the latest features of C++, and then move on to advanced techniques such as multithreading, concurrency, debugging, monitoring, and high-performance programming. The book will delve into object-oriented programming principles and the C++ Standard Template Library, and even show you how to create custom templates. After this, you'll learn about different approaches such as test-driven development (TDD), behavior-driven development (BDD), and domain-driven design (DDD), before taking a look at the coding best practices and design patterns essential for building professional-grade applications. Toward the end of the book, you will gain useful insights into the recent C++ advancements in AI and machine learning. By the end of this C++ programming book, you'll have gained expertise in real-world application development, including the process of designing complex software. What you will learn Understand memory management and low-level programming in C++ to write secure and stable applications Discover the latest C++20 features such as modules, concepts, ranges, and coroutines Understand debugging and testing techniques and reduce issues in your programs Design and implement GUI applications using Qt5 Use multithreading and concurrency to make your programs run faster Develop high-end games by using the object-oriented capabilities of C++ Explore AI and machine learning concepts with C++ Who this book is forThis C++ book is for experienced C++ developers who are looking to take their knowledge to the next level and perfect their skills in building professional-grade applications.

Python For Beginners - Learn Python In 5 Days With Step-by-Step Guidance And Hands-On Exercises (Python Programming, Python... Python For Beginners - Learn Python In 5 Days With Step-by-Step Guidance And Hands-On Exercises (Python Programming, Python Crash Course, Programming For Beginners) (Paperback)
James Tudor
R617 Discovery Miles 6 170 Ships in 18 - 22 working days
Secret Recipes of the Python Ninja - Over 70 recipes that uncover powerful programming tactics in Python (Paperback): Steven F... Secret Recipes of the Python Ninja - Over 70 recipes that uncover powerful programming tactics in Python (Paperback)
Steven F Lott; Cody Jackson
R1,319 Discovery Miles 13 190 Ships in 18 - 22 working days

Test your Python programming skills by solving real-world problems Key Features Access built-in documentation tools and improve your code. Discover how to make the best use of decorator and generator functions Enhance speed and improve concurrency by conjuring tricks from the PyPy project Book DescriptionThis book covers the unexplored secrets of Python, delve into its depths, and uncover its mysteries. You'll unearth secrets related to the implementation of the standard library, by looking at how modules actually work. You'll understand the implementation of collections, decimals, and fraction modules. If you haven't used decorators, coroutines, and generator functions much before, as you make your way through the recipes, you'll learn what you've been missing out on. We'll cover internal special methods in detail, so you understand what they are and how they can be used to improve the engineering decisions you make. Next, you'll explore the CPython interpreter, which is a treasure trove of secret hacks that not many programmers are aware of. We'll take you through the depths of the PyPy project, where you'll come across several exciting ways that you can improve speed and concurrency. Finally, we'll take time to explore the PEPs of the latest versions to discover some interesting hacks. What you will learn Know the differences between .py and .pyc files Explore the different ways to install and upgrade Python packages Understand the working of the PyPI module that enhances built-in decorators See how coroutines are different from generators and how they can simulate multithreading Grasp how the decimal module improves floating point numbers and their operations Standardize sub interpreters to improve concurrency Discover Python's built-in docstring analyzer Who this book is forWhether you've been working with Python for a few years or you're a seasoned programmer, you'll have a lot of new tricks to walk away with.

Hands-On Design Patterns and Best Practices with Julia - Proven solutions to common problems in software design for Julia 1.x... Hands-On Design Patterns and Best Practices with Julia - Proven solutions to common problems in software design for Julia 1.x (Paperback)
Tom K Wong; Foreword by Stefan Karpinski
R1,142 Discovery Miles 11 420 Ships in 18 - 22 working days

Design and develop high-performance, reusable, and maintainable applications using traditional and modern Julia patterns with this comprehensive guide Key Features Explore useful design patterns along with object-oriented programming in Julia 1.0 Implement macros and metaprogramming techniques to make your code faster, concise, and efficient Develop the skills necessary to implement design patterns for creating robust and maintainable applications Book DescriptionDesign patterns are fundamental techniques for developing reusable and maintainable code. They provide a set of proven solutions that allow developers to solve problems in software development quickly. This book will demonstrate how to leverage design patterns with real-world applications. Starting with an overview of design patterns and best practices in application design, you'll learn about some of the most fundamental Julia features such as modules, data types, functions/interfaces, and metaprogramming. You'll then get to grips with the modern Julia design patterns for building large-scale applications with a focus on performance, reusability, robustness, and maintainability. The book also covers anti-patterns and how to avoid common mistakes and pitfalls in development. You'll see how traditional object-oriented patterns can be implemented differently and more effectively in Julia. Finally, you'll explore various use cases and examples, such as how expert Julia developers use design patterns in their open source packages. By the end of this Julia programming book, you'll have learned methods to improve software design, extensibility, and reusability, and be able to use design patterns efficiently to overcome common challenges in software development. What you will learn Master the Julia language features that are key to developing large-scale software applications Discover design patterns to improve overall application architecture and design Develop reusable programs that are modular, extendable, performant, and easy to maintain Weigh up the pros and cons of using different design patterns for use cases Explore methods for transitioning from object-oriented programming to using equivalent or more advanced Julia techniques Who this book is forThis book is for beginner to intermediate-level Julia programmers who want to enhance their skills in designing and developing large-scale applications.

Beginning Java - A JDK 11 Programming Tutorial (Paperback, 11th ed.): Philip Conrod, Lou Tylee Beginning Java - A JDK 11 Programming Tutorial (Paperback, 11th ed.)
Philip Conrod, Lou Tylee
R2,069 Discovery Miles 20 690 Ships in 18 - 22 working days
Free Delivery
Pinterest Twitter Facebook Google+
You may like...
Little A.I. and Peety
Elizabeth M Adams Hardcover R579 Discovery Miles 5 790
Cloud-Based Big Data Analytics in…
Ram Shringar Rao, Nanhay Singh, … Hardcover R6,677 Discovery Miles 66 770
Happimetrics - Leveraging AI to Untangle…
Peter A. Gloor Hardcover R3,193 Discovery Miles 31 930
S5000F, International specification for…
Asd Hardcover R1,137 Discovery Miles 11 370
South Of Nowhere
Jeffery Deaver Paperback R389 R347 Discovery Miles 3 470
Foundation Models for Natural Language…
Gerhard Paaß, Sven Giesselbach Hardcover R884 Discovery Miles 8 840
Data Mining Applications for Empowering…
Hakikur Rahman Hardcover R4,584 Discovery Miles 45 840
Open Multithreaded Transactions - A…
Joerg Kienzle Hardcover R2,685 Discovery Miles 26 850
Artificial Intelligence for Neurological…
Ajith Abraham, Sujata Dash, … Paperback R3,925 Discovery Miles 39 250
Learning from Data Streams - Processing…
Joao Gama, Mohamed Medhat Gaber Hardcover R2,657 Discovery Miles 26 570

 

Partners