Ausgehend von Beispielen vermittelt dieses Lehrbuch grundlegende Paradigmen der Informatik. Die Schwerpunkte liegen auf dem Algorithmenbegriff, einer Einführung in die Programmierung auf Grundlage der Programmiersprache Java und objektorientierten Konzepten. Ferner führt das Buch an die Aufwandsanalyse von Algorithmen und die Funktionsweise von Rechnern heran. Die 5. Auflage enthält ein neues Kapitel, das erweiterten Programmierkonzepten gewidmet ist. Es geht auf Klassenbibliotheken und die Graphikprogrammierung ein, erklärt die Strukturierung von Programmiersprachen sowie die modellgestützte Softwareentwicklung anhand von UML und gibt ausgehend von den vermittelten Java-Kenntnissen eine Einführung in die Programmiersprache C++. So gelingt der Einstieg in das Informatikstudium!
Aspect-Oriented Software Development with Use Cases Learn how to apply the proven concept of use cases within the rising paradigm of aspect orientation to build robust and extensible software Systematically outlines how to conduct aspect oriented software development with use cases, covering requirements, analysis, design, implementation, and testong Develop better software by embracing the paradigm shift to aspect-orientation Product pre-launch and promotion at OOSPLA in Vancouver, BC (October 2004) Aspect orientation promises to be the next big wave in software engineering, following on the heels of the object-oriented paradigm. Proponents tout the value of aspect orientation in providing the ability to add extremely useful mechanisms such as security, logging, persistence, debugging, tracing, distribution, performance monitoring, and exception handling. To state it simply, it makes programming and programs more efficient. This highly-anticipated new book demonstrates how to apply use cases and aspect orientation in building robust and extensible systems. The authors show you how to identify, design, implement, test, and refactor use case modules and how to extend them. The book also demonstrates how to design use case modules with UML including some enhancements made in UML 2.0 to better support the modeling of use case modules.
Machine learning is one of the fastest growing areas of computer science, with far-reaching applications. The aim of this textbook is to introduce machine learning, and the algorithmic paradigms it offers, in a principled way. The book provides a theoretical account of the fundamentals underlying machine learning and the mathematical derivations that transform these principles into practical algorithms. Following a presentation of the basics, the book covers a wide array of central topics unaddressed by previous textbooks. These include a discussion of the computational complexity of learning and the concepts of convexity and stability; important algorithmic paradigms including stochastic gradient descent, neural networks, and structured output learning; and emerging theoretical concepts such as the PAC-Bayes approach and compression-based bounds. Designed for advanced undergraduates or beginning graduates, the text makes the fundamentals and algorithms of machine learning accessible to students and non-expert readers in statistics, computer science, mathematics and engineering.
This textbook addresses students, professionals, lecturers and researchers interested in software product line engineering. With more than 100 examples and about 150 illustrations, the authors describe in detail the essential foundations, principles and techniques of software product line engineering.The authors are professionals and researchers who significantly influenced the software product line engineering paradigm and successfully applied software product line engineering principles in industry. They have structured this textbook around a comprehensive product line framework.Software product line engineering has proven to be the paradigm for developing a diversity of software products and software-intensive systems in shorter time, at lower cost, and with higher quality. It facilitates platform-based development and mass customisation. The authors elaborate on the two key principles behind software product line engineering: (1) the separation of software development in two distinct processes, domain and application engineering; (2) the explicit definition and management of the variability of the product line across all development artefacts.As a student, you will find a detailed description of the key processes, their activities and underlying techniques for defining and managing software product line artefacts. As a researcher or lecturer, you will find a comprehensive discussion of the state of the art organised around the comprehensive framework. As a professional, you will find guidelines for introducing this paradigm in your company and an overview of industrial experiences with software product line engineering.
This work appreciates IoT as a widely popular paradigm to build distributed networked applications and discusses some of the relevant works on present context. It continues with defining the architecture, core building blocks and associated challenges of IoT. Furthermore, it introduces WebRTC as a specification for real-time communication and describes its architecture. WebRTC is proposed to address some of the major challenges of IoT as a standardization framework. It takes inspiration from a proposed IoT application model and attempts to create a prototype using publish-subscribe pattern of distributed systems and container virtualization for fast hardware-independent prototyping. Finally, it evaluates the prototype and concludes with the proposition of potential improvements and future work.
Algorithmic design, especially for hard problems, is more essential for success in solving them than any standard improvement of current computer tech nologies. Because of this, the design of algorithms for solving hard problems is the core of current algorithmic research from the theoretical point of view as well as from the practical point of view. There are many general text books on algorithmics, and several specialized books devoted to particular approaches such as local search, randomization, approximation algorithms, or heuristics. But there is no textbook that focuses on the design of algorithms for hard computing tasks, and that systematically explains, combines, and compares the main possibilities for attacking hard algorithmic problems. As this topic is fundamental for computer science, this book tries to close this gap. Another motivation, and probably the main reason for writing this book, is connected to education. The considered area has developed very dynami cally in recent years and the research on this topic discovered several profound results, new concepts, and new methods. Some of the achieved contributions are so fundamental that one can speak about paradigms which should be in cluded in the education of every computer science student. Unfortunately, this is very far from reality. This is because these paradigms are not sufficiently known in the computer science community, and so they are insufficiently com municated to students and practitioners.
Das Buch ist eine praktische Einführung in das Hochleistungsrechnen auf Linux-Clustern. In vier Teilen (Grundlagen, Technik, Programmierung, Praxis) wird ausführlich erklärt, wie man einen Haufen (Cluster) preiswerter Standard-PCs in einen Parallelcomputer verwandelt und diesen dann zur Lösung rechenintensiver Probleme einsetzt. Insbesondere enthält das Buch eine fundierte Einführung in MPI, dem grundlegenden Programmiermodell für Cluster-Computer. Dabei werden anhand konkreter Beispiele die wichtigsten Paradigmen paralleler Programmierung präsentiert. Vorgestellt werden außerdem Entwicklungswerkzeuge, die Fehlersuche in parallelen Programmen und nützliche Bibliotheken.
Software product lines represent perhaps the most exciting paradigm shift in software development since the advent of high-level programming languages. Nowhere else in software engineering have we seen such breathtaking improvements in cost, quality, time to market, and developer productivity, often registering in the order-of-magnitude range. While the underlying concepts are straightforward enough building a family of related products or systems by planned and careful reuse of a base of generalized software development assets the devil can be in the details, as successful product line practice can involve organizational change, business process change, and technology change. The authors ideally combine academic research results with industrial real-world experiences, thus presenting a broad view on product line engineering so that both managers and technical specialists will benefit from reading it. After presenting a common framework for the description of the industrial case studies, they capture the wealth of knowledge that eight companies have gathered during the introduction of the software product line engineering approach in their daily practice. After reading this book, you will understand all the relevant aspects, regarding business, architecture, process, and organizational issues, of applying software product line engineering. If you consider using a product line approach in your organization, or if you want to improve your current practices you will find a rich set of useful information at your fingertips from practitioners to practitioners.
´´The promise of cloud computing is here. These pages provide the ´eyes wide open´ insights you need to transform your business.´´ --Christopher Crowhurst, Vice President, Strategic Technology, Thomson Reuters A Down-to-Earth Guide to Cloud Computing Cloud Computing: A Practical Approach provides a comprehensive look at the emerging paradigm of Internet-based enterprise applications and services. This accessible book offers a broad introduction to cloud computing, reviews a wide variety of currently available solutions, and discusses the cost savings and organizational and operational benefits. You´ll find details on essential topics, such as hardware, platforms, standards, migration, security, and storage. You´ll also learn what other organizations are doing and where they´re headed with cloud computing. If your company is considering the move from a traditional network infrastructure to a cutting-edge cloud solution, you need this strategic guide. Cloud Computing: A Practical Approach covers: * Costs, benefits, security issues, regulatory concerns, and limitations * Service providers, including Google, Microsoft, Amazon, Yahoo, IBM, EMC/VMware, Salesforce.com, and others * Hardware, infrastructure, clients, platforms, applications, services, and storage * Standards, including HTTP, HTML, DHTML, XMPP, SSL, and OpenID * Web services, such as REST, SOAP, and JSON * Platform as a Service (PaaS), Software as a Service (SaaS), and Software plus Services (S+S) * Custom application development environments, frameworks, strategies, and solutions * Local clouds, thin clients, and virtualization * Migration, best practices, and emerging standards
This text examines the goals of data analysis with respect to enhancing knowledge, and identifies data summarization and correlation analysis as the core issues. Data summarization, both quantitative and categorical, is treated within the encoder-decoder paradigm bringing forward a number of mathematically supported insights into the methods and relations between them. Two Chapters describe methods for categorical summarization: partitioning, divisive clustering and separate cluster finding and another explain the methods for quantitative summarization, Principal Component Analysis and PageRank. Features: · An in-depth presentation of K-means partitioning including a corresponding Pythagorean decomposition of the data scatter. · Advice regarding such issues as clustering of categorical and mixed scale data, similarity and network data, interpretation aids, anomalous clusters, the number of clusters, etc. · Thorough attention to data-driven modelling including a number of mathematically stated relations between statistical and geometrical concepts including those between goodness-of-fit criteria for decision trees and data standardization, similarity and consensus clustering, modularity clustering and uniform partitioning. New edition highlights: · Inclusion of ranking issues such as Google PageRank, linear stratification and tied rankings median, consensus clustering, semi-average clustering, one-cluster clustering · Restructured to make the logics more straightforward and sections self-contained Core Data Analysis: Summarization, Correlation and Visualization is aimed at those who are eager to participate in developing the field as well as appealing to novices and practitioners.