![]() |
![]() |
Your cart is empty |
||
Books > Computing & IT > Computer programming > Software engineering
In the decade since the idea of adapting the evidence-based paradigm for software engineering was first proposed, it has become a major tool of empirical software engineering. Evidence-Based Software Engineering and Systematic Reviews provides a clear introduction to the use of an evidence-based model for software engineering research and practice. The book explains the roles of primary studies (experiments, surveys, case studies) as elements of an over-arching evidence model, rather than as disjointed elements in the empirical spectrum. Supplying readers with a clear understanding of empirical software engineering best practices, it provides up-to-date guidance on how to conduct secondary studies in software engineering-replacing the existing 2004 and 2007 technical reports. The book is divided into three parts. The first part discusses the nature of evidence and the evidence-based practices centered on a systematic review, both in general and as applying to software engineering. The second part examines the different elements that provide inputs to a systematic review (usually considered as forming a secondary study), especially the main forms of primary empirical study currently used in software engineering. The final part provides practical guidance on how to conduct systematic reviews (the guidelines), drawing together accumulated experiences to guide researchers and students in planning and conducting their own studies. The book includes an extensive glossary and an appendix that provides a catalogue of reviews that may be useful for practice and teaching.
The book begins with an introduction to software reliability, models and techniques. The book is an informative book covering the strategies needed to assess software failure behaviour and its quality, as well as the application of optimization tools for major managerial decisions related to the software development process. It features a broad range of topics including software reliability assessment and apportionment, optimal allocation and selection decisions and upgradations problems. It moves through a variety of problems related to the evolving field of optimization of software reliability engineering, including software release time, resource allocating, budget planning and warranty models, which are each explored in depth in dedicated chapters. This book provides a comprehensive insight into present-day practices in software reliability engineering, making it relevant to students, researchers, academics and practising consultants and engineers.
Code Nation explores the rise of software development as a social, cultural, and technical phenomenon in American history. The movement germinated in government and university labs during the 1950s, gained momentum through corporate and counterculture experiments in the 1960s and 1970s, and became a broad-based computer literacy movement in the 1980s. As personal computing came to the fore, learning to program was transformed by a groundswell of popular enthusiasm, exciting new platforms, and an array of commercial practices that have been further amplified by distributed computing and the Internet. The resulting society can be depicted as a "Code Nation"-a globally-connected world that is saturated with computer technology and enchanted by software and its creation.Code Nation is a new history of personal computing that emphasizes the technical and business challenges that software developers faced when building applications for CP/M, MS-DOS, UNIX, Microsoft Windows, the Apple Macintosh, and other emerging platforms. It is a popular history of computing that explores the experiences of novice computer users, tinkerers, hackers, and power users, as well as the ideals and aspirations of leading computer scientists, engineers, educators, and entrepreneurs. Computer book and magazine publishers also played important, if overlooked, roles in the diffusion of new technical skills, and this book highlights their creative work and influence. Code Nation offers a "behind-the-scenes" look at application and operating-system programming practices, the diversity of historic computer languages, the rise of user communities, early attempts to market PC software, and the origins of "enterprise" computing systems. Code samples and over 80 historic photographs support the text. The book concludes with an assessment of contemporary efforts to teach computational thinking to young people.
Practical Guidance on the Efficient Development of High-Quality Software Introduction to Software Engineering, Second Edition equips students with the fundamentals to prepare them for satisfying careers as software engineers regardless of future changes in the field, even if the changes are unpredictable or disruptive in nature. Retaining the same organization as its predecessor, this second edition adds considerable material on open source and agile development models. The text helps students understand software development techniques and processes at a reasonably sophisticated level. Students acquire practical experience through team software projects. Throughout much of the book, a relatively large project is used to teach about the requirements, design, and coding of software. In addition, a continuing case study of an agile software development project offers a complete picture of how a successful agile project can work. The book covers each major phase of the software development life cycle, from developing software requirements to software maintenance. It also discusses project management and explains how to read software engineering literature. Three appendices describe software patents, command-line arguments, and flowcharts.
You've heard about pair programming's benefits: fewer bugs, improved skills, and faster delivery. But what happens when you want to pair with someone in another city, country, or even hemisphere? With the right tools, you won't have to relocate to refactor. In this book, you'll learn techniques used by the most productive remote programmers in the industry to pair with anyone on the globe on any kind of project. You'll use collaborative editors, screen sharing, secure networking, and virtualization to create a remote pairing environment that feels as if your partner is sitting right next to you. Two heads are better than one, but only if they're working on the same problem. When pairing remotely, this requires a specialized environment that you'll learn how to create. We'll use the same open-source tools as the pros to improve collaboration and increase productivity. You'll learn techniques, patterns, and best practices you can apply to projects of all kinds. These tools are so effective that many co-located programmers use them despite sitting side-by-side--you don't have to work outside of an office for this book to improve your programming techniques. We'll start by creating a secure collaborative editing environment capable of handling the low-bandwidth networks at some coffee shops. Then we'll share your screen using free open source tools and protocols. We'll deploy all of this to a server in the cloud so you can access your development environment from anywhere. Then we'll use one of the most advanced integrated development environments to collaborate, sketch on a virtual whiteboard, and resolve conflicts. Finally, we'll talk with programmers at Pivotal Labs, Big Nerd Ranch, and other top-notch distributed development firms to learn how they handle the challenges of remote pairing on a daily basis. With their help and advice, you can be productive from any location on the planet. What You Need: Many of the examples in this book require an internet connection. You'll only need one computer for most of the exercises, and you can run them by yourself. But having a second computer and even a second person may improve the experience.
Building software is harder than ever. As a developer, you not only have to chase ever-changing technological trends but also need to understand the business domains behind the software. This practical book provides you with a set of core patterns, principles, and practices for analyzing business domains, understanding business strategy, and, most importantly, aligning software design with its business needs. Author Vlad Khononov shows you how these practices lead to robust implementation of business logic and help to future-proof software design and architecture. You'll examine the relationship between domain-driven design (DDD) and other methodologies to ensure you make architectural decisions that meet business requirements. You'll also explore the real-life story of implementing DDD in a startup company. With this book, you'll learn how to: Analyze a company's business domain to learn how the system you're building fits its competitive strategy Use DDD's strategic and tactical tools to architect effective software solutions that address business needs Build a shared understanding of the business domains you encounter Decompose a system into bounded contexts Coordinate the work of multiple teams Gradually introduce DDD to brownfield projects
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.
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.
"For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades." -Randy Stafford, Architect At-Large, Oracle Coherence Product Development "This book is a must-read for anybody looking to put DDD into practice." -Udi Dahan, Founder of NServiceBus Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations. Building on Eric Evans' seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples-all applicable to C# developers-and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment. The author takes you far beyond "DDD-lite" approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD's "strategic design patterns" using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals. Coverage includes Getting started the right way with DDD, so you can rapidly gain value from it Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based Appropriately designing and applying Entities-and learning when to use Value Objects instead Mastering DDD's powerful new Domain Events technique Designing Repositories for ORM, NoSQL, and other databases
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.
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.
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.
This textbook introduces software engineering to advanced undergraduates and graduates of computer science. It emphasizes a case-study approach whereby a project is developed through the course of the book, illustrating the different activities of software development. The sequence of chapters is essentially the same as the sequence of activities performed during a typical software project. The revised edition updates this sequence for today's standards and adds a valuable chapter on architecture. All activities, including quality assurance and control activities, are described in each chapter as integral activities for that phase of development. Similarly, the author carefully introduces appropriate metrics for controlling and assessing the software process. The text is bolstered by numerous examples, chapter summaries, a helpful bibliography, and good index.
Over the past decade, software engineering has developed into a highly respected field. Though computing and software engineering education continues to emerge as a prominent interest area of study, few books specifically focus on software engineering education itself. Software Engineering: Effective Teaching and Learning Approaches and Practices presents the latest developments in software engineering education, drawing contributions from over 20 software engineering educators from around the globe. Encompassing areas such as student assessment and learning, innovative teaching methods, and educational technology, this much-needed book greatly enhances libraries with its unique research content.
Is your application or Web site ready for prime time?
Learn data science with Python by building five real-world projects! In Data Science Bookcamp you'll test and build your knowledge of Python and learn to handle the kind of open-ended problems that professional data scientists work on daily. Downloadable data sets and thoroughly-explained solutions help you lock in what you've learned, building your confidence and making you ready for an exciting new data science career. about the technologyIn real-world practice, data scientists create innovative solutions to novel open ended problems. Easy to learn and use, the Python language has become the de facto language for data science amongst researchers, developers, and business users. But knowing a few basic algorithms is not enough to tackle a vague and thorny problem. It takes relentless practice at cracking difficult data tasks to achieve mastery in the field. That's just what this book delivers. about the book Data Science Bookcamp is a comprehensive set of challenging projects carefully designed to grow your data science skills from novice to master. Veteran data scientist Leonard Apeltsin sets five increasingly difficult exercises that test your abilities against the kind of problems you'd encounter in the real world. As you solve each challenge, you'll acquire and expand the data science and Python skills you'll use as a professional data scientist. Ranging from text processing to machine learning, each project comes complete with a unique downloadable data set and a fully-explained step-by-step solution. Because these projects come from Dr. Apeltsin's vast experience, each solution highlights the most likely failure points along with practical advice for getting past unexpected pitfalls. When you wrap up these five awesome exercises, you'll have a diverse relevant skill set that's transferable to working in industry. what's inside Five in-depth Python exercises with full downloadable data sets Web scraping for text and images Organise datasets with clustering algorithms Visualize complex multi-variable datasets Train a decision tree machine learning algorithm about the readerFor readers who know the basics of Python. No prior data science or machine learning skills required. about the author Leonard Apeltsin is a senior data scientist and engineering lead at Primer AI, a startup that specializes in using advanced Natural Language Processing techniques to extract insight from terabytes of unstructured text data. His PhD research focused on bioinformatics that required analyzing millions of sequenced DNA patterns to uncover genetic links in deadly diseases.
This book explores software's pivotal role as the code that powers computers, mobile devices, the Internet, and social media. Creating conditions for the ongoing development and use of software, including the Internet as a communications infrastructure, is one of the most compelling issues of our time. Free software is based upon open source code, developed in peer communities as well as corporate settings, challenging the dominance of proprietary software firms and promoting the digital commons. Drawing upon key cases and interviews with free software proponents based in Europe, Brazil and the U.S., the book explores pathways toward creating the digital commons and examines contemporary political struggles over free software, privacy and civil liberties on the Internet that are vital for the commons' continued development.
This classic reference work is a comprehensive guide to the design, evaluation, and use of reliable computer systems. It includes case studies of reliable systems from manufacturers, such as Tandem, Stratus, IBM, and Digital. It covers special systems such as the Galileo Orbiter fault protection system and AT&T telephone switching system processors.
This book provides engineers, developers, and technicians with a detailed treatment of various models of software behavior that will support early analysis, comprehension, and model-based testing. The expressive capabilities and limitations of each behavioral model are also discussed.
Few software projects are completed on time, on budget, and to their original specifications. Focusing on what practitioners need to know about risk in the pursuit of delivering software projects, Applied Software Risk Management: A Guide for Software Project Managers covers key components of the risk management process and the software development process, as well as best practices for software risk identification, risk planning, and risk analysis. Written in a clear and concise manner, this resource presents concepts and practical insight into managing risk. It first covers risk-driven project management, risk management processes, risk attributes, risk identification, and risk analysis. The book continues by examining responses to risk, the tracking and modeling of risks, intelligence gathering, and integrated risk management. It concludes with details on drafting and implementing procedures. A diary of a risk manager provides insight in implementing risk management processes. Bringing together concepts across software engineering with a project management perspective, Applied Software Risk Management: A Guide for Software Project Managers presents a rigorous, scientific method for identifying, analyzing, and resolving risk.
The potential of software applications to solve an array of office and administrative problems is increasing faster than the ability of users to exploit it. We need to make systems easier to learn and more comfortable to use. This book reports a major advance in the effort to accomplish both goals. Flexcel enables users to modify access and dialog dynamics to their specific requirements. Relying on a plan recognition feature, the system proposes adaptations or uses of adaptations. The ongoing conflict between the adaptive and the adaptable is resolved in an integration: user and system share the responsibility for the initiatives, decision-making and execution. A "critic" component of the system then analyzes the user's handling of the adaptation tools and suggests improvements. The system offers an environment in which users can explore as they learn. HyPlan implements the context-sensitive help that facilitates learning on demand. When the PLANET plan-recognition feature identifies the kinds of support for work that may possibly be required, HyPlan provides, on request, specific assistance in the form of hypermedia or animated displays and tutorials. Developmental research has shown that users take advantage of opportunities to adapt interfaces only in conjunction with help-functions -- which are accepted when they do not interrupt work. And studies by social scientists have shown that adaptations of technical systems have to be integrated into the overall process of organizational innovation and undertaken cooperatively. This book will stimulate all those concerned with software -- from computational, cognitive, ergonomic, or organizational standpoints -- to reconceive the relationship between design and user support.
Process Improvement and CMMI (R) for Systems and Software provides a workable approach for achieving cost-effective process improvements for systems and software. Focusing on planning, implementation, and management in system and software processes, it supplies a brief overview of basic strategic planning models and covers fundamental concepts and approaches for system and software measurement, testing, and improvements. The book represents the significant cumulative experience of the authors who were among the first to introduce quality management to the software development processes. It introduces CMMI (R) and various other software and systems process models. It also provides readers with an easy-to-follow methodology for evaluating the status of development and maintenance processes and for determining the return on investment for process improvements. The authors examine beta testing and various testing and usability programs. They highlight examples of useful metrics for monitoring process improvement projects and explain how to establish baselines against which to measure achieved improvements. Divided into four parts, this practical resource covers: Strategy and basics of quality and process improvement Assessment and measurement in systems and software Improvements and testing of systems and software Managing and reporting data The text concludes with a realistic case study that illustrates how the process improvement effort is structured and brings together the methods, tools, and techniques discussed. Spelling out how to lay out a reasoned plan for process improvement, this book supplies readers with concrete action plans for setting up process improvement initiatives that are effective, efficient, and sustainable.
Provides a practical and comprehensive introduction to the key aspects of model-based testing as taught in the ISTQB(R) Model-Based Tester Foundation Level Certification Syllabus This book covers the essentials of Model-Based Testing (MBT) needed to pass the ISTQB(R) Foundation Level Model-Based Tester Certification. The text begins with an introduction to MBT, covering both the benefits and the limitations of MBT. The authors review the various approaches to model-based testing, explaining the fundamental processes in MBT, the different modeling languages used, common good modeling practices, and the typical mistakes and pitfalls. The book explains the specifics of MBT test implementation, the dependencies on modeling and test generation activities, and the steps required to automate the generated test cases. The text discusses the introduction of MBT in a company, presenting metrics to measure success and good practices to apply. * Provides case studies illustrating different approaches to Model-Based Testing * Includes in-text exercises to encourage readers to practice modeling and test generation activities * Contains appendices with solutions to the in-text exercises, a short quiz to test readers, along with additional information Model-Based Testing Essentials Guide to the ISTQB(R) Certified Model-Based Tester Foundation Level is written primarily for participants of the ISTQB(R) Certification: software engineers, test engineers, software developers, and anybody else involved in software quality assurance. This book can also be used for anyone who wants a deeper understanding of software testing and of the use of models for test generation.
Python for Scientific Computation and Artificial Intelligence is split into 3 parts: in Section 1, the reader is introduced to the Python programming language and shown how Python can aid in the understanding of advanced High School Mathematics. In Section 2, the reader is shown how Python can be used to solve real-world problems from a broad range of scientific disciplines. Finally, in Section 3, the reader is introduced to neural networks and shown how TensorFlow (written in Python) can be used to solve a large array of problems in Artificial Intelligence (AI). This book was developed from a series of national and international workshops that the author has been delivering for over twenty years. The book is beginner friendly and has a strong practical emphasis on programming and computational modelling. Features: No prior experience of programming is required. Online GitHub repository available with codes for readers to practice. Covers applications and examples from biology, chemistry, computer science, data science, electrical and mechanical engineering, economics, mathematics, physics, statistics and binary oscillator computing. Full solutions to exercises are available as Jupyter notebooks on the Web. |
![]() ![]() You may like...
Intelligent Machine Vision - Techniques…
Bruce Batchelor, Frederick Waltz
Hardcover
R2,977
Discovery Miles 29 770
Deep Learning for Chest Radiographs…
Yashvi Chandola, Jitendra Virmani, …
Paperback
R2,186
Discovery Miles 21 860
Atomic and Molecular Manipulation…
Andrew J. Mayne, Gerard Dujardin
Hardcover
R3,644
Discovery Miles 36 440
Acoustical Imaging, v. 23 - Proceedings…
Sidney Lees, Leonard A. Ferrari
Hardcover
R2,657
Discovery Miles 26 570
Advances in Communication Systems and…
J. Jayakumari, George K. Karagiannidis, …
Hardcover
R5,777
Discovery Miles 57 770
Principles of 3D Image Analysis and…
Bernd Girod, Gunther Greiner, …
Hardcover
R4,631
Discovery Miles 46 310
|