Welcome to Loot.co.za!
Sign in / Register |Wishlists & Gift Vouchers |Help | Advanced search
|
Your cart is empty |
|||
Books > Computing & IT > Computer programming > Software engineering
GPU Parallel Program Development using CUDA teaches GPU programming by showing the differences among different families of GPUs. This approach prepares the reader for the next generation and future generations of GPUs. The book emphasizes concepts that will remain relevant for a long time, rather than concepts that are platform-specific. At the same time, the book also provides platform-dependent explanations that are as valuable as generalized GPU concepts. The book consists of three separate parts; it starts by explaining parallelism using CPU multi-threading in Part I. A few simple programs are used to demonstrate the concept of dividing a large task into multiple parallel sub-tasks and mapping them to CPU threads. Multiple ways of parallelizing the same task are analyzed and their pros/cons are studied in terms of both core and memory operation. Part II of the book introduces GPU massive parallelism. The same programs are parallelized on multiple Nvidia GPU platforms and the same performance analysis is repeated. Because the core and memory structures of CPUs and GPUs are different, the results differ in interesting ways. The end goal is to make programmers aware of all the good ideas, as well as the bad ideas, so readers can apply the good ideas and avoid the bad ideas in their own programs. Part III of the book provides pointer for readers who want to expand their horizons. It provides a brief introduction to popular CUDA libraries (such as cuBLAS, cuFFT, NPP, and Thrust),the OpenCL programming language, an overview of GPU programming using other programming languages and API libraries (such as Python, OpenCV, OpenGL, and Apple's Swift and Metal,) and the deep learning library cuDNN.
"A stereotype of computer science textbooks is that they are dry, boring, and sometimes even intimidating. As a result, they turn students' interests off from the subject matter instead of enticing them into it. This textbook is the opposite of such a stereotype. The author presents the subject matter in a refreshing story-telling style and aims to bring the Internet-generation of students closer to her stories." --Yingcai Xiao, The University of Akron Introduction to Middleware: Web Services, Object Components, and Cloud Computing provides a comparison of different middleware technologies and the overarching middleware concepts they are based on. The various major paradigms of middleware are introduced and their pros and cons are discussed. This includes modern cloud interfaces, including the utility of Service Oriented Architectures. The text discusses pros and cons of RESTful vs. non-RESTful web services, and also compares these to older but still heavily used distributed object/component middleware. The text guides readers to select an appropriate middleware technology to use for any given task, and to learn new middleware technologies as they appear over time without being greatly overwhelmed by any new concept. The book begins with an introduction to different distributed computing paradigms, and a review of the different kinds of architectures, architectural styles/patterns, and properties that various researchers have used in the past to examine distributed applications and determine the quality of distributed applications. Then it includes appropriate background material in networking and the web, security, and encoding necessary to understand detailed discussion in this area. The major middleware paradigms are compared, and a comparison methodology is developed. Readers will learn how to select a paradigm and technology for a particular task, after reading this text. Detailed middleware technology review sections allow students or industry practitioners working to expand their knowledge to achieve practical skills based on real projects so as to become well-functional in that technology in industry. Major technologies examined include: RESTful web services (RESTful cloud interfaces such as OpenStack, AWS EC2 interface, CloudStack; AJAX, JAX-RS, ASP.NET MVC and ASP.NET Core), non-RESTful (SOAP and WSDL-based) web services (JAX-WS, Windows Communication Foundation), distributed objects/ components (Enterprise Java Beans, .NET Remoting, CORBA). The book presents two projects that can be used to illustrate the practical use of middleware, and provides implementations of these projects over different technologies. This versatile and class-tested textbook is suitable (depending on chapters selected) for undergraduate or first-year graduate courses on client server architectures, middleware, and cloud computing, web services, and web programming.
Software Engineering for Science provides an in-depth collection of peer-reviewed chapters that describe experiences with applying software engineering practices to the development of scientific software. It provides a better understanding of how software engineering is and should be practiced, and which software engineering practices are effective for scientific software. The book starts with a detailed overview of the Scientific Software Lifecycle, and a general overview of the scientific software development process. It highlights key issues commonly arising during scientific software development, as well as solutions to these problems. The second part of the book provides examples of the use of testing in scientific software development, including key issues and challenges. The chapters then describe solutions and case studies aimed at applying testing to scientific software development efforts. The final part of the book provides examples of applying software engineering techniques to scientific software, including not only computational modeling, but also software for data management and analysis. The authors describe their experiences and lessons learned from developing complex scientific software in different domains. About the Editors Jeffrey Carver is an Associate Professor in the Department of Computer Science at the University of Alabama. He is one of the primary organizers of the workshop series on Software Engineering for Science (http://www.SE4Science.org/workshops). Neil P. Chue Hong is Director of the Software Sustainability Institute at the University of Edinburgh. His research interests include barriers and incentives in research software ecosystems and the role of software as a research object. George K. Thiruvathukal is Professor of Computer Science at Loyola University Chicago and Visiting Faculty at Argonne National Laboratory. His current research is focused on software metrics in open source mathematical and scientific software.
From the Foreword "Getting CPS dependability right is essential to forming a solid foundation for a world that increasingly depends on such systems. This book represents the cutting edge of what we know about rigorous ways to ensure that our CPS designs are trustworthy. I recommend it to anyone who wants to get a deep look at these concepts that will form a cornerstone for future CPS designs." --Phil Koopman, Carnegie Mellon University, Pittsburgh, Pennsylvania, USA Trustworthy Cyber-Physical Systems Engineering provides practitioners and researchers with a comprehensive introduction to the area of trustworthy Cyber Physical Systems (CPS) engineering. Topics in this book cover questions such as What does having a trustworthy CPS actually mean for something as pervasive as a global-scale CPS? How does CPS trustworthiness map onto existing knowledge, and where do we need to know more? How can we mathematically prove timeliness, correctness, and other essential properties for systems that may be adaptive and even self-healing? How can we better represent the physical reality underlying real-world numeric quantities in the computing system? How can we establish, reason about, and ensure trust between CPS components that are designed, installed, maintained, and operated by different organizations, and which may never have really been intended to work together? Featuring contributions from leading international experts, the book contains sixteen self-contained chapters that analyze the challenges in developing trustworthy CPS, and identify important issues in developing engineering methods for CPS. The book addresses various issues contributing to trustworthiness complemented by contributions on TCSP roadmapping, taxonomy, and standardization, as well as experience in deploying advanced system engineering methods in industry. Specific approaches to ensuring trustworthiness, namely, proof and refinement, are covered, as well as engineering methods for dealing with hybrid aspects.
Formal methods traditionally address the question of transforming software engineering into a mature engineering discipline. This essentially refers to trusting that the software-intensive systems that form our society's infrastructures are behaving according to their specifications. More recently, formal methods are also used to understand properties and evolution laws of existing complex and adaptive systems-man-made such as smart electrical grids or natural ones such as biological networks. A tribute to Professor Kaisa Sere's contributions to the field of computer science, From Action Systems to Distributed Systems: The Refinement Approach is the first book to address the impact of refinement through a multitude of formal methods ranging from Action Systems to numerous related approaches in computer science research. It presents a state-of-the-art review on the themes of distributed systems and refinement. A fundamental part of Kaisa Sere's research consisted of developing Action Systems, a formalism for modeling, analysing, and constructing distributed systems. Within the design of distributed systems, Kaisa Sere's main research focus was on refinement-based approaches to the construction of systems ranging from pure software to hardware and digital circuits. Presenting scientific contributions from renowned researchers around the world, this edited book consists of five sections: Modeling, Analysis, Proof, Refinement, and Applications. Each chapter has been thoroughly reviewed by experts in the field. The book covers both traditional aspects in formal methods research, as well as current and innovative research directions. It describes the transition from the strong theory of refinement to a methodology that can be applied in practice, with tool support. Examining industrial applications of the methods discussed, this book is a suitable resource for graduate students, researchers, and practitioners interested in using formal methods to develop distributed systems of quality.
Computer games represent a significant software application domain for innovative research in software engineering techniques and technologies. Game developers, whether focusing on entertainment-market opportunities or game-based applications in non-entertainment domains, thus share a common interest with software engineers and developers on how to best engineer game software. Featuring contributions from leading experts in software engineering, the book provides a comprehensive introduction to computer game software development that includes its history as well as emerging research on the interaction between these two traditionally distinct fields. An ideal reference for software engineers, developers, and researchers, this book explores game programming and development from a software engineering perspective. It introduces the latest research in computer game software engineering (CGSE) and covers topics such as HALO (Highly Addictive, sociaLly Optimized) software engineering, multi-player outdoor smartphone games, gamifying sports software, and artificial intelligence in games. The book explores the use of games in software engineering education extensively. It also covers game software requirements engineering, game software architecture and design approaches, game software testing and usability assessment, game development frameworks and reusability techniques, and game scalability infrastructure, including support for mobile devices and web-based services.
AI presents a new paradigm in software development, representing the biggest change to how we think about quality and testing in decades. Many of the well known issues around AI, such as bias, manifest themselves as quality management problems. This book, aimed at testing and quality management practitioners who want to understand more, covers trustworthiness of AI and the complexities of testing machine learning systems, before pivoting to how AI can be used itself in software test automation.
As the number of Internet of Things (IoT) elements grows exponentially, their interactions can generate a massive amount of raw and multi-structured data. The challenge with this data explosion is to transform any raw data into information and knowledge, which can be used by people and systems to make intelligent decisions. Industrial IoT Application Architectures and Use Cases explores how artificial intelligence (AI), data analytics, and IoT technology combine to promote intelligent decision-making and automation in a range of industries. With faster, more stable AI algorithms and approaches, knowledge discovery and dissemination from IoT-device data can be simplified and streamlined. An era of powerful cognitive technology is beginning due to cloud-based cognitive systems that are forming the foundation of game-changing intelligent applications. This book presents next-generation use cases of IoT and IoT data analytics for a variety of industrial verticals as given below: An Intelligent IoT framework for smart water management An IoT-enabled smart traffic control system for congestion control and smart traffic management An intelligent airport system for airport management and security surveillance An IoT framework for healthcare to integrate and report patient information Fuzzy scheduling with IoT for tracking and monitoring hotel assets An IoT system for designing drainage systems and monitoring drainage pipes Predictive maintenance of plant equipment to decide the actual mean time to malfunction Integrated neural networks and IoT systems for predictive equipment maintenance IoT integration in blockchain for smart waste management This book also includes a chapter on the IoT paradigm and an overview of uses cases for personal, social, and industrial applications.
The three-volume set IFIP AICT 368-370 constitutes the refereed post-conference proceedings of the 5th IFIP TC 5, SIG 5.1 International Conference on Computer and Computing Technologies in Agriculture, CCTA 2011, held in Beijing, China, in October 2011. The 189 revised papers presented were carefully selected from numerous submissions. They cover a wide range of interesting theories and applications of information technology in agriculture, including simulation models and decision-support systems for agricultural production, agricultural product quality testing, traceability and e-commerce technology, the application of information and communication technology in agriculture, and universal information service technology and service systems development in rural areas. The 68 papers included in the second volume focus on GIS, GPS, RS, and precision farming.
Features Focus on the foundational theory underpinning Reinforcement Learning Suitable as a primary text for courses in Reinforcement Learning, but also as supplementary reading for applied/financial mathematics, programming, and other related courses Suitable for a professional audience of quantitative analysts or industry specialists Blends theory/mathematics, programming/algorithms and real-world financial nuances while always striving to maintain simplicity and to build intuitive understanding.
Modeling complex systems is a difficult challenge and all too often one in which modelers are left to their own devices. Using a multidisciplinary approach, The Art of Software Modeling covers theory, practice, and presentation in detail. It focuses on the importance of model creation and demonstrates how to create meaningful models. Presenting three self-contained sections, the text examines the background of modeling and frameworks for organizing information. It identifies techniques for researching and capturing client and system information and addresses the challenges of presenting models to specific audiences. Using concepts from art theory and aesthetics, this broad-based approach encompasses software practices, cognitive science, and information presentation. The book also looks at perception and cognition of diagrams, view composition, color theory, and presentation techniques. Providing practical methods for investigating and organizing complex information, The Art of Software Modeling demonstrates the effective use of modeling techniques to improve the development process and establish a functional, useful, and maintainable software system.
This is the third book in a series devoted to gear design and production. Comprising papers by scientists and gear experts from around the globe, it covers recent developments in practically all spheres of mechanical engineering related to gears and transmissions. It describes advanced approaches to research, design, testing and production of various kinds of gears for a vast range of applications, with a particular focuses on advanced computer-aided approaches for gear analysis, simulation and design, the application of new materials and tribological issues.
"Agile Software Development is a highly stimulating and rich book. The author has a deep background and gives us a tour de force of the emerging agile methods." -Tom Gilb The agile model of software development has taken the world by storm. Now, in "Agile Software Development, Second Edition," one of agile's leading pioneers updates his Jolt Productivity award-winning book to reflect all that's been learned about agile development since its original introduction. Alistair Cockburn begins by updating his powerful model of software development as a "cooperative game of invention and communication." Among the new ideas he introduces: harnessing competition without damaging collaboration; learning lessons from lean manufacturing; and balancing strategies for communication. Cockburn also explains how the cooperative game is played in business and on engineering projects, not just software development Next, he systematically illuminates the agile model, shows how it has evolved, and answers the questions developers and project managers ask most often, including - Where does agile development fit in our organization? - How do we blend agile ideas with other ideas? - How do we extend agile ideas more broadly? Cockburn takes on crucial misconceptions that cause agile projects to fail. For example, you'll learn why encoding project management strategies into fixed processes can lead to ineffective strategy decisions and costly mistakes. You'll also find a thoughtful discussion of the controversial relationship between agile methods and user experience design. Cockburn turns to the practical challenges of constructing agile methodologies for your own teams. You'll learn how to tune andcontinuously reinvent your methodologies, and how to manage incomplete communication. This edition contains important new contributions on these and other topics: - Agile and CMMI - Introducing agile from the top down - Revisiting "custom contracts" - Creating change with "stickers" In addition, Cockburn updates his discussion of the Crystal methodologies, which utilize his "cooperative game" as their central metaphor. If you're new to agile development, this book will help you succeed the first time out. If you've used agile methods before, Cockburn's techniques will make you even more effective.
""This remarkable book combines practical advice, ready-to-use techniques, anda deep understanding of why this is the right way to develop software. I haveseen software teams transformed by the ideas in this book."" --Mike Cohn, author of "Agile Estimating and Planning" ""As a lean practitioner myself, I have loved and used their first book for years.When this second book came out, I was delighted that it was even better. If youare interested in how lean principles can be useful for software developmentorganizations, this is the book you are looking for. The Poppendiecks offer abeautiful blend of history, theory, and practice."" --Alan Shalloway, coauthor of "Design Patterns Explained" ""I've enjoyed reading the book very much. I feel it might even be better than thefirst lean book by Tom and Mary, while that one was already exceptionallygood! Mary especially has a lot of knowledge related to lean techniques inproduct development and manufacturing. It's rare that these techniques areactually translated to software. This is something no other book does well(except their first book)."" --Bas Vodde ""The new book by Mary and Tom Poppendieck provides a well-written andcomprehensive introduction to lean principles and selected practices for softwaremanagers and engineers. It illustrates the application of the values andpractices with well-suited success stories. I enjoyed reading it."" --Roman Pichler ""In "Implementing Lean Software Development, "the Poppendiecks explore moredeeply the themes they introduced in Lean Software Development. They beginwith a compelling history of lean thinking, then move to key areas such asvalue, waste, and people. Each chapter includesexercises to help you apply keypoints. If you want a better understanding of how lean ideas can work withsoftware, this book is for you."" --Bill Wake, independent consultant In 2003, Mary and Tom Poppendieck's "Lean Software Development" introduced breakthrough development techniques that leverage Lean principles to deliver unprecedented agility and value. Now their widely anticipated sequel and companion guide shows exactly how to implement Lean software development, hands-on. This new book draws on the Poppendiecks' unparalleled experience
helping development organizations optimize the entire software
value stream. You'll discover the right questions to ask, the key
issues to focus on, and techniques proven to work. The authors
present case studies from leading-edge software organizations, and
offer practical exercises for jumpstarting your own Lean
initiatives. Managing to extend, nourish, and leverage agile
practices Building true development teams, not just groups Driving
quality through rapid feedback and detailed discipline Making
decisions Just-in-Time, but no later Delivering fast: How
PatientKeeper delivers 45 rock-solid releases per year Making
tradeoffs that really satisfy customers"Implementing Lean Software
Development" is indispensable to anyone who wants more effective
development processes--managers, project leaders, senior
developers, and architects in enterprise IT and software companies
alike.
- This book covers the production of dissertations in an area where students are much more comfortable writing code than writing academically. - With practical examples of bachelor dissertations and practical research methods utilised in the field of computer science and computer games such as survey methodologies, experimental methodologies, case studies, analysis techniques and reporting techniques, this book will break down the sometimes complicated-seeming nature of the dissertation. - Written to be concise yet comprehensive and with easily accessible language and examples, this book will take the mystery out of undergraduate dissertations in this field.
Modeling Software with Finite State Machines: A Practical Approach
explains how to apply finite state machines to software
development. It provides a critical analysis of using finite state
machines as a foundation for executable specifications to reduce
software development effort and improve quality. This book
discusses the design of a state machine and of a system of state
machines. It also presents a detailed analysis of development
issues relating to behavior modeling with design examples and
design rules for using finite state machines.
Software has often been left in the margins of accounts of digital cultures and network societies. Although software is everywhere, it is hard to say what it actually is.
This work provides a comprehensive overview of research and practical issues relating to component-based development information systems (CBIS). Spanning the organizational, developmental, and technical aspects of the subject, the original research included here provides fresh insights into successful CBIS technology and application. Part I covers component-based development methodologies and system architectures. Part II analyzes different aspects of managing component-based development. Part III investigates component-based development versus commercial off-the-shelf products (COTS), including the selection and trading of COTS products.
Originally published in 1966. Professor Rescher's aim is to develop a "logic of commands" in exactly the same general way which standard logic has already developed a "logic of truth-functional statement compounds" or a "logic of quantifiers". The object is to present a tolerably accurate and precise account of the logically relevant facets of a command, to study the nature of "inference" in reasonings involving commands, and above all to establish a viable concept of validity in command inference, so that the logical relationships among commands can be studied with something of the rigour to which one is accustomed in other branches of logic.
Based upon the authors' experience in designing and deploying an embedded Linux system with a variety of applications, Embedded Linux System Design and Development contains a full embedded Linux system development roadmap for systems architects and software programmers. Explaining the issues that arise out of the use of Linux in embedded systems, the book facilitates movement to embedded Linux from traditional real-time operating systems, and describes the system design model containing embedded Linux. This book delivers practical solutions for writing, debugging, and profiling applications and drivers in embedded Linux, and for understanding Linux BSP architecture. It enables you to understand: various drivers such as serial, I2C and USB gadgets; uClinux architecture and its programming model; and the embedded Linux graphics subsystem. The text also promotes learning of methods to reduce system boot time, optimize memory and storage, and find memory leaks and corruption in applications. This volume benefits IT managers in planning to choose an embedded Linux distribution and in creating a roadmap for OS transition. It also describes the application of the Linux licensing model in commercial products.
The work presented in this book is based on empirical study undertaken as a case study to understand the challenges faced in massively open online course (MOOC) based learning and experimentation to understand the challenges for presenting theoretical and practical courses. The book proposes a flexible online platform. This solution provides flexibility in distance learning processes including course enrollment, learning, evaluation, and outcome of degrees. The proposed system not only gives students freedom to choose their courses in accordance with their needs but also use earned credit towards online degrees of any university of their choice.
Noting the risk that the globalizing of literary studies "may simply reinforce the developments it is attempting to examine and assess," Giles Gunn insists that critics analyze not only how the cultural material we study has been produced by globalizing trends, but also how it has subjected those trends to scrutiny. It is this work that Worldwise undertakes. The fictions studied represent and revise the global histories of the past and present--including the "indigenous or native" narratives that are, in Homi Bhabha's words, "internal to" national identity itself. These works, taking as their subjects European unification, the human rights movement, the AIDS epidemic, and the new South Africa, test the infinite demands for justice against the shifting borders of the nation, rethinking habits of feeling, modes of belonging, and practices of citizenship for the global future. Confronting the pervasiveness of ethical claims, the disjointing of the global field of action, and the impediments to social redistribution, they commit to the non-finality, which is not to say the deferability, of justice. Like cosmopolitanism itself, this genre points to and participates in a field of contested ethics and politics.
Colonialism and the Modernist Moment in the Early Novels of Jean Rhys explores the postcolonial significance of Rhys's modernist period work, which depicts an urban scene more varied than that found in other canonical representations of the period. Arguing against the view that Rhys comes into her own as a colonial thinker only in the post-WWII period of her career, this study examines the austere insights gained by Rhys's active cultivation of her fringe status vis-a-vis British social life and artistic circles, where her sharp study of the aporias of marginal lives and the violence of imperial ideology is distilled into an artistic statement positing the outcome of the imperial venture as a state of homelessness across the board, for colonized and 'metropolitans' alike. Bringing to view heretofore overlooked emigre populations, or their children, alongside locals, Rhys's urbanites struggle to construct secure lives not simply as a consequence of commodification, alienation, or voluntary expatriation, but also as a consequence of marginalization and migration. This view of Rhys's early work asserts its vital importance to postcolonial studies, an importance that has been overlooked owing to an over hasty critical consensus that only one of her early novels contains significant colonial content. Yet, as this study demonstrates, proper consideration of colonial elements long considered only incidental illuminates a colonial continuum in Rhys's work from her earliest publications.
The huge proliferation of security vulnerability exploits, worms, and viruses place an incredible drain on both cost and confidence for manufacturers and consumers. The release of trustworthy code requires a specific set of skills and techniques, but this information is often dispersed and decentralized, encrypted in its own jargon and terminology, and can take a colossal amount of time and data mining to find. Written in simple, common terms, Testing Code Security is a consolidated resource designed to teach beginning and intermediate testers the software security concepts needed to conduct relevant and effective tests. Answering the questions pertinent to all testing procedures, the book considers the differences in process between security testing and functional testing, the creation of a security test plan, the benefits and pitfalls of threat-modeling, and the identification of root vulnerability problems and how to test for them. The book begins with coverage of foundation concepts, the process of security test planning, and the test pass. Offering real life examples, it presents various vulnerabilities and attacks and explains the testing techniques appropriate for each. It concludes with a collection of background overviews on related topics to fill common knowledge gaps. Filled with cases illustrating the most common classes of security vulnerabilities, the book is written for all testers working in any environment, and it gives extra insight to threats particular to Microsoft Windows (R) platforms. Providing a practical guide on how to carry out the task of security software testing, Testing Code Security gives the reader the knowledge needed to begin testing software security for any project and become an integral part in the drive to produce better software security and safety.
Writing Virtual Environments for Software Visualization book describes the software for a networked, 3D multi-user virtual environment that allows users to create and share remotely visualizations of program behavior. Collaborative virtual environments such as World of Warcraft or Second Life are a popular way to share interactive internet experiences, but they are complex and difficult to create. Software visualization is an area that may enable important advances in our ability to understand and reduce the costs of maintaining software. Applying the former technology to this problem area will be valuable to distributed and multi-institutional software development and educational users. The author covers the major features of collaborative virtual environments and how to program them in a very high level language. The book also examines the application of popular game-like software technologies. |
You may like...
Research Anthology on Architectures…
Information R Management Association
Hardcover
R13,357
Discovery Miles 133 570
Edsger Wybe Dijkstra - His Life, Work…
Krzysztof R. Apt, Tony Hoare
Hardcover
R3,075
Discovery Miles 30 750
Writing Better Requirements - Writing…
Ian Alexander, Richard Stevens
Paperback
R2,122
Discovery Miles 21 220
|