Zum Hauptinhalt springen Zur Suche springen Zur Hauptnavigation springen

Programmierung

Produkte filtern

Produktbild für Der pragmatische Programmierer (2. Auflg.)

Der pragmatische Programmierer (2. Auflg.)

Ihr Weg zur Meisterschaft - die 2. vollständig überarbeitete Auflage, 04/2021.Der Pragmatische Programmierer ist eines dieser seltenen Fachbücher, die Sie im Lauf der Jahre immer wieder lesen werden. Egal, ob Sie Programmiereinsteiger oder erfahrener Praktiker sind, stets können Sie neue Einsichten gewinnen.David Thomas und Andrew Hunt schrieben 1999 die erste Ausgabe dieses einflussreichen Buches, um ihren Kunden zu helfen, bessere Software zu entwickeln und die Freude am Programmieren wiederzuentdecken. Ihre pragmatischen Profitipps helfen bis heute einer ganzen Generation von Programmierern, den Kosmos der Software-Entwicklung zu erkunden, unabhängig von einer bestimmten Sprache oder Methodik oder einem bestimmten Framework.Ihre »Pragmatische Philosophie« hat den Weg bereitet für Hunderte von Büchern, Screencasts und Hörbüchern sowie Tausende von Karrieren und Erfolgsgeschichten. Zwanzig Jahre später untersuchen die Autoren nun erneut, was einen modernen Programmierer ausmacht. Die Themen reichen von persönlicher Verantwortung über berufliche Entwicklung bis hin zu Architekturtechniken, die Ihren Code flexibel, leicht anpassbar und wiederverwendbar halten.In kurzen Abschnitten, die auch einzeln gelesen werden können, erläutern die Autoren nicht nur die Best Practices, sondern auch Fallstricke bei der Software-Entwicklung. Anschauliche Beispiele und interessante Analogien machen dieses Buch zu einem Lesevergnügen.Egal ob Einsteiger, erfahrener Programmierer oder Manager für Softwareprojekte: Wer die Profitipps der Autoren bei der täglichen Arbeit anwendet, wird seine Produktivität, Genauigkeit und Zufriedenheit rasch steigern und damit als Pragmatischer Programmierer auch langfristig erfolgreich seinErfahren Sie im Buch, wie Sie:den Verfall von Software bekämpfenRedundanz vermeidenflexiblen, dynamischen und anpassungsfähigen Quelltext schreibenIhr Handwerkszeug optimal nutzenvermeiden, mit dem Zufall zu programmierendie richtigen Anforderungen findensich vor Sicherheitslücken schützenProbleme beim nebenläufigen Code lösenTeams aus Pragmatischen Programmierern bildeneffektiv testendas Pragmatic Starter Kit implementierenIhre Anwender begeisternLeseprobe (PDF-Link)

Regulärer Preis: 39,99 €
Produktbild für Neuronale Netze mit C# programmieren

Neuronale Netze mit C# programmieren

Mit praktischen Beispielen für Machine Learning im Unternehmenseinsatz.Sie wollen neuronale Netze und Machine-Learning-Algorithmen mit C# entwickeln? Dann finden Sie in diesem Buch eine gut verständliche Einführung in die Grundlagen und es wird Ihnen gezeigt, wie Sie neuronale Netze und Machine-Learning-Algorithmen in Ihren eigenen Projekten praktisch einsetzen.Mithilfe von Beispielen erstellen und trainieren Sie Ihr erstes neuronales Netz zur vorausschauenden Wartung einer Produktionsmaschine.Im Praxisteil lernen Sie dann, wie Sie TensorFlow-Modelle in ML.NET benutzen oder Infer.NET direkt verwenden können. Des Weiteren nutzen Sie die Predictive- und Sentiment-Analyse, um sich mit Machine-Learning-Algorithmen vertraut zu machen.Alle im Buch vorgestellten Projekte sind in C# programmiert und stehen als Download zur Verfügung. Grundkenntnisse in C# werden für die Arbeit mit dem Buch vorausgesetzt. Alle Projekte lassen sich ohne größere Rechnerressourcen umsetzen.Daniel Basler arbeitet als Lead Developer und Softwarearchitekt. Seine Schwerpunkte liegen auf Cross-Platform-Apps, Android, JavaScript und Microsoft-Technologien. Er entwickelt u.a. Software für Regal- und Flächenlagersysteme sowie Anlagenvisualisierung und setzt in diesem Umfeld verstärkt Machine-Learning-Methoden ein. Darüber hinaus schreibt er regelmäßig Artikel für die Fachzeitschriften dotnetpro und web&mobile Developer.Leseprobe (PDF-Link)

Regulärer Preis: 59,99 €
Produktbild für PHP 8 Objects, Patterns, and Practice

PHP 8 Objects, Patterns, and Practice

Learn how to develop elegant and rock-solid systems using PHP, aided by three key elements: object fundamentals, design principles, and best practices. The 6th edition of this popular book has been fully updated for PHP 8, including attributes, constructor property promotion, new argument and return pseudo-types, and more. It also covers many features new since the last edition including typed properties, the null coalescing operator, and void return types. This book provides a solid grounding in PHP's support for objects, it builds on this foundation to instill core principles of software design and then covers the tools and practices needed to develop, test, and deploy robust code.PHP 8 Objects, Patterns, and Practice begins by covering PHP's object-oriented features. It introduces key topics including class declarations, inheritance, and reflection. The next section is devoted to design patterns. It explains the principles that make patterns powerful. You’ll cover many of the classic design patterns including enterprise and database patterns. The last segment of the book covers the tools and practices that can help turn great code into a successful project. The section shows how to manage multiple developers and releases with git, and how to manage builds and dependencies with Composer. It also explores strategies for automated testing and continuous integration.After reading and using this book, you will have mastered object-oriented enhancements, design patterns, and the essential development tools available for PHP 8.WHAT YOU WILL LEARN* Work with object fundamentals: write classes and methods, instantiate objects, and create powerful class hierarchies using inheritanceMaster advanced object-oriented features, including static methods and properties, managing error conditions with exceptions, and creating abstract classes and interfaces * Understand and use design principles to deploy objects and classes effectively in your projects* Discover a set of powerful patterns that you can implement in your own projects* Guarantee a successful project including unit testing; version control and build, installation, and package management; and continuous integrationWHO THIS BOOK IS FORAnyone with at least a basic knowledge of PHP who wants to use its object-oriented features in their projects. It is also for PHP coders who want to learn about the practices and tools (version control, testing, continuous integration, etc) that can make projects safe, elegant and stable.MATT ZANDSTRA has worked as a web programmer, consultant, and writer for over two decades. He is the author of SAMS Teach Yourself PHP in 24 Hours (three editions) and is a contributor to DHTML Unleashed. He has written articles for Linux Magazine, Zend, IBM DeveloperWorks, and php|architect Magazine, among others. Matt was a senior developer/tech lead at Yahoo and API tech lead at LoveCrafts. Matt works as a consultant advising companies on their architectures and system management, and also develops systems primarily with PHP, and Java. Matt also writes fiction.Part I. Objects.-1. PHP: Design and Management.-2. PHP and Objects.-3. Object Basics.-4. Advanced Features.-5. Object Tools.-6. Objects and Design.-Part II. Patterns.-7. What Are Design Patterns? Why Use Them?.-8. Some Pattern Principles.-9. Generating Objects.-10. Patterns for Flexible Object Programming.-11. Performing and Representing Tasks.-12. Enterprise Patterns.-13. Database Patterns.-Part III. Practice.-14. Good (and Bad) Practice.-15. PHP Standards.-16. PHP Using and Creating Components with Composer.-17. Version Control with Git.-18. Testing.-19. Automated Build with Phing.-20. Vagrant.-21. Continuous Integration.-22. Objects, Patterns, and Practice.-23. App A: Bibliography.-24. App B: A Simple Parser.

Regulärer Preis: 64,99 €
Produktbild für Visualizing Data in R 4

Visualizing Data in R 4

Master the syntax for working with R’s plotting functions in graphics and stats in this easy reference to formatting plots. The approach in Visualizing Data in R 4 toward the application of formatting in ggplot() will follow the structure of the formatting used by the plotting functions in graphics and stats. This book will take advantage of the new features added to R 4 where appropriate including a refreshed color palette for charts, Cairo graphics with more fonts/symbols, and improved performance from grid graphics including ggplot 2 rendering speed.Visualizing Data in R 4 starts with an introduction and then is split into two parts and six appendices. Part I covers the function plot() and the ancillary functions you can use with plot(). You’ll also see the functions par() and layout(), providing for multiple plots on a page. Part II goes over the basics of using the functions qplot() and ggplot() in the package ggplot2. The default plots generated by the functions qplot() and ggplot() give more sophisticated-looking plots than the default plots done by plot() and are easier to use, but the function plot() is more flexible. Both plot() and ggplot() allow for many layers to a plot.The six appendices will cover plots for contingency tables, plots for continuous variables, plots for data with a limited number of values, functions that generate multiple plots, plots for time series analysis, and some miscellaneous plots. Some of the functions that will be in the appendices include functions that generate histograms, bar charts, pie charts, box plots, and heatmaps.WHAT YOU WILL LEARN* Use R to create informative graphics* Master plot(), qplot(), and ggplot()* Discover the canned graphics functions in stats and graphicsFormat plots generated by plot() and ggplot()WHO THIS BOOK IS FORThose in data science who use R. Some prior experience with R or data science is recommended.Margot Tollefson, PhD is a semi-retired freelance statistician, with her own consulting business, Vanward Statistics. She received her PhD in statistics from Iowa State University and has many years of experience applying R to statistical research problems. Dr. Tollefson has chosen to write this book because she often creates graphics using R and would like to share her knowledge and experience. Her professional blog is on WordPress at vanwardstat. Social media: @vanstat1) Introduction: plot(), qplot(), and ggplot(), Plus Somea) plot() – arguments, ancillary functions, and methods; par() and layout()b) qplot() and ggplot() – aesthetics, geometries, and other useful functionsc) other plotting functions in graphics and statsPart I. An Overview of plot()2) The plot() Functiona) what the function is and how the function worksb) will use method .xy for example3) The Arguments to plot()a) Type of plot, axis labels, plot titles, display formatb) Plotting characters, character size, fonts, colors, line styles and widths4) Ancillary Functions to use with plot()a) axis(), box(), clip(), grid(), legend(), mtext(), rug()b) abline(), contour(), curve(), lines(), polypath()c) arrows(), image(), points(), polygon(), rect(), segments(), symbols(), text()d) axTicks(), identify(), locator(), pch(), strwidth(),5) The Methods for plot()a) What are methods?b) Methods in the graphics packagec) Methods in the stats package6) How to Use the Functions par() and layout()a) What par() doesb) Arguments specific to par()c) Multiple plotsPart II. A look at the ggplot2 Package7) The Functions qplot(), ggplot(), and the Specialized Notation in ggplot2a) Working with qplot()b) The ggplot() functionc) Specialized notation8) Themesa) The theme() functionb) The element_*() functions9) Aesthetics and Geometriesa) The aes() functionb) The geom_*() functions10) Controlling the Appearancea) The annotate_*() functionsb) The coord_*() functionsc) The facet_*() functionsd) The guide_*() functionse) The position_*() functionsf) The scale_*() functionsg) The stat_*() functionsAppendix I. Plots for Contingency TablesAppendix II. Plots for Continuous VariablesAppendix III. Plots for Data with a Limited Number of ValuesAppendix IV. Functions that Generate Multiple PlotsAppendix V. Plots for Time SeriesAppendix VI. Miscellaneous Plots

Regulärer Preis: 66,99 €
Produktbild für R2DBC Revealed

R2DBC Revealed

Understand the newest trend in database programming for developers working in Java, Kotlin, Clojure, and other JVM-based languages. This book introduces Reactive Relational Database Connectivity (R2DBC), a modern way of connecting to and querying relational databases from Java and other JVM languages. The book begins by helping you understand not only what reactive programming is, but why it is necessary. Then building on those fundamentals, the book takes you into the world of databases and the newly released Reactive Relational Database Connectivity (R2DBC) specification.Examples in the book are worked using the freely available MariaDB database along with MariaDB’s vendor-implementation of the R2DBC service-provider interface (SPI). Following along with the examples and the provided example code helps prepare you to work with any of the growing number of R2DBC implementations for popular enterprise databases such as Oracle Database and SQL Server. You’ll be well prepared for what is becoming the future of database access from Java and other languages built on the JVM.WHAT YOU WILL LEARN* Understand why R2DBC was created and how it utilizes the Reactive Streams API * Understand the components of the R2DBC service-provider interface* Create and manage reactive database connections and connection pools using an R2DBC client* Programmatically execute queries on a relational database using an R2DBC client* Effectively utilize transactions using an R2DBC client* Build relational database-driven applications that are event-driven and non-blockingWHO THIS BOOK IS FORSoftware developers building solutions using JVM languages and the JVM ecosystem, and developers who need an introduction to the R2DBC specification and reactive programming with relational databases and want to understand what Reactive Relational Database Connectivity is and why it came about. This book includes practical examples of using the R2DBC specification with Java and MariaDB that will provide developers with the knowledge they need to create their own solutions.ROB HEDGPETH is a professional software engineer and developer relations enthusiast residing in the bustling metropolis of Chicago, Illinois. Rob has more than 12 years of professional development experience, primarily in the application development space. Throughout the years he has contributed to the architecture and development of many apps, using a large array of languages and technologies. Now as a developer advocate and evangelist for MariaDB, Rob gets to combine his love for technology with his mission to fuel developers' curiosity and passion. IntroductionPART I. THE REACTIVE MOVEMENT AND R2DBC1. The Case for Reactive Programming2. Introduction to R2DBCPART II. THE R2DBC SERVICE-PROVIDER INTERFACE3. The Path to Implementation4. Connections5. Transactions6. Statements7. Handling Results8. Result Metadata9. Mapping Data Types10. Handling ExceptionsPART III. GETTING STARTED WITH R2DBC AND MARIADB11. Getting Stated with R2DBC12. Managing Connections13. Managing Data14. Managing Transactions15. Connection Pooling16. Practical Applications with Spring Data and R2DBC

Regulärer Preis: 56,99 €
Produktbild für Objektorientierte Programmierung (5. Auflg.)

Objektorientierte Programmierung (5. Auflg.)

Unverzichtbare Skills für guten Code - das umfassende Handbuch in 5. Auflage.Komplexe Systeme solide strukturieren, tragfähige Designs erstellen, robusten Code schreiben und wartbare Software liefern: Dafür brauchen Sie ein Repertoire, aus dem die Objektorientierung heute nicht mehr wegzudenken ist. Dieses umfassende und praxisnahe Lehrbuch hilft Ihnen, die Prinzipien der Objektorientierung zu verstehen und zur Basis Ihrer Arbeit zu machen.Leseprobe (PDF-Link)

Regulärer Preis: 49,90 €
Produktbild für Deep Reinforcement Learning with Python

Deep Reinforcement Learning with Python

Deep reinforcement learning is a fast-growing discipline that is making a significant impact in fields of autonomous vehicles, robotics, healthcare, finance, and many more. This book covers deep reinforcement learning using deep-q learning and policy gradient models with coding exercise.You'll begin by reviewing the Markov decision processes, Bellman equations, and dynamic programming that form the core concepts and foundation of deep reinforcement learning. Next, you'll study model-free learning followed by function approximation using neural networks and deep learning. This is followed by various deep reinforcement learning algorithms such as deep q-networks, various flavors of actor-critic methods, and other policy-based methods.You'll also look at exploration vs exploitation dilemma, a key consideration in reinforcement learning algorithms, along with Monte Carlo tree search (MCTS), which played a key role in the success of AlphaGo. The final chapters conclude with deep reinforcement learning implementation using popular deep learning frameworks such as TensorFlow and PyTorch. In the end, you'll understand deep reinforcement learning along with deep q networks and policy gradient models implementation with TensorFlow, PyTorch, and Open AI Gym.WHAT YOU'LL LEARN* Examine deep reinforcement learning * Implement deep learning algorithms using OpenAI’s Gym environment* Code your own game playing agents for Atari using actor-critic algorithms* Apply best practices for model building and algorithm training WHO THIS BOOK IS FORMachine learning developers and architects who want to stay ahead of the curve in the field of AI and deep learning.Nimish is a passionate technical leader who brings to table extreme focus on use of technology for solving customer problems. He has over 25 years of work experience in the Software and Consulting. Nimish has held leadership roles with P&L responsibilities at PwC, IBM and Oracle. In 2006 he set out on his entrepreneurial journey in Software consulting at SOAIS with offices in Boston, Chicago and Bangalore. Today the firm provides Automation and Digital Transformation services to Fortune 100 companies helping them make the transition from on-premise applications to the cloud.He is also an angel investor in the space of AI and Automation driven startups. He has co-founded Paybooks, a SaaS HR and Payroll platform for Indian market. He has also cofounded a Boston based startup which offers ZipperAgent and ZipperHQ, a suite of AI driven workflow and video marketing automation platforms. He currently hold the position as CTO and Chief Data Scientist for both these platforms.Nimish has an MBA from Indian Institute of Management in Ahmedabad, India and a BS in Electrical Engineering from Indian Institute of Technology in Kanpur, India. He also holds multiple certifications in AI and Deep Learning.Chapter 1: Introduction to Deep Reinforcement LearningChapter Goal: Introduce the reader to field of reinforcement learning and setting the context of what they will learn in rest of the bookSub -Topics1. Deep reinforcement learning2. Examples and case studies3. Types of algorithms with mind-map4. Libraries and environment setup5. SummaryChapter 2: Markov Decision ProcessesChapter Goal: Help the reader understand models, foundations on which all algorithms are built.Sub - Topics1. Agent and environment2. Rewards3. Markov reward and decision processes4. Policies and value functions5. Bellman equationsChapter 3: Model Based AlgorithmsChapter Goal: Introduce reader to dynamic programming and related algorithmsSub - Topics:1. Introduction to OpenAI Gym environment2. Policy evaluation/prediction3. Policy iteration and improvement4. Generalised policy iteration5. Value iterationChapter 4: Model Free ApproachesChapter Goal: Introduce Reader to model free methods which form the basis for majority of current solutionsSub - Topics:1. Prediction and control with Monte Carlo methods2. Exploration vs exploitation3. TD learning methods4. TD control5. On policy learning using SARSA6. Off policy learning using q-learningChapter 5: Function ApproximationChapter Goal: Help readers understand value function approximation and Deep Learning use in Reinforcement Learning.1. Limitations to tabular methods studied so far2. Value function approximation3. Linear methods and features used4. Non linear function approximation using deep LearningChapter 6: Deep Q-LearningChapter Goal: Help readers understand core use of deep learning in reinforcement learning. Deep q learning and many of its variants are introduced here with in depth code exercises.1. Deep q-networks (DQN)2. Issues in Naive DQN3. Introduce experience replay and target networks4. Double q-learning (DDQN)5. Duelling DQN6. Categorical 51-atom DQN (C51)7. Quantile regression DQN (QR-DQN)8. Hindsight experience replay (HER)Chapter 7: Policy Gradient AlgorithmsChapter Goal: Introduce reader to concept of policy gradients and related theory. Gain in depth knowledge of common policy gradient methods through hands-on exercises1. Policy gradient approach and its advantages2. The policy gradient theorem3. REINFORCE algorithm4. REINFORCE with baseline5. Actor-critic methods6. Advantage actor critic (A2C/A3C)7. Proximal policy optimization (PPO)8. Trust region policy optimization (TRPO)Chapter 8: Combining Policy Gradients and Q-LearningChapter Goal: Introduce reader to the trade offs between two approaches ways to connect together the two seemingly dissimilar approaches. Gain in depth knowledge of some land mark approaches.1. Tradeoff between policy gradients and q-learning2. The connection3. Deep deterministic policy gradient (DDPG)4. Twin delayed DDPG (TD3)5. Soft actor critic (SAC)Chapter 9: Integrated Learning and PlanningChapter Goal: Introduce reader to the scalable approaches which are sample efficient for scalable problems.1. Model based reinforcement learning2. Dyna and its variants3. Guided policy search4. Monte Carlo tree search (MCTS)5. AlphaGoChapter 10: Further Exploration and Next StepsChapter Goal: With the backdrop of having gone through most of the popular algorithms, readers are now introduced again to exploration vs exploitation dilemma, central to reinforcement learning.1. Multi arm bandits2. Upper confidence bound3. Thompson sampling

Regulärer Preis: 56,99 €
Produktbild für Practical C++20 Financial Programming

Practical C++20 Financial Programming

Apply C++ to programming problems in the financial industry using this hands-on book, updated for C++20. It explains those aspects of the language that are more frequently used in writing financial software, including the Standard Template Library (STL), templates, and various numerical libraries. Practical C++20 Financial Programming also describes many of the important problems in financial engineering that are part of the day-to-day work of financial programmers in large investment banks and hedge funds. The author has extensive experience in the New York City financial industry that is now distilled into this handy guide.Focus is on providing working solutions for common programming problems. Examples are plentiful and provide value in the form of ready-to-use solutions that you can immediately apply in your day-to-day work. You’ll see examples of matrix manipulations, curve fitting, histogram generation, numerical integration, and differential equation analysis, and you’ll learn how all these techniques can be applied to some of the most common areas of financial software development.These areas include performance price forecasting, optimizing investment portfolios, and more. The book style is quick and to-the-point, delivering a refreshing view of what one needs to master in order to thrive as a C++ programmer in the financial industry.WHAT YOU WILL LEARN* Cover aspects of C++ especially relevant to financial programmingWrite working solutions to commonly encountered problems in finance * Design efficient, numerical classes for use in finance, as well as to use those classes provided by Boost and other librariesWHO THIS BOOK IS FORThose who are new to programming for financial applications using C++, but should have some previous experience with C++.CARLOS OLIVEIRA works in the area of quantitative finance, with more than ten years of experience in creating scientific and financial models in C++. During his career, Carlos has developed several large-scale applications for financial companies such as Bloomberg L.P. and F-Squared Investments. Carlos Oliveira obtained a PhD in operations research and systems engineering from the University of Florida, an MSc in computer science from UFC (Brazil), and a BSc in computer science from UECE (Brazil). He has also performed academic research in the field of combinatorial optimization, with applications in diverse areas such as finance, telecommunications, computational biology, and logistics. Carlos has written more than 30 academic papers on optimization, and authored three books, including Options and Derivatives Programming in C++20 (Apress, 2020).1. The Fixed-Income Market2. The Equities Market3. C++ Programming Techniques in Finance4. Common Libraries for Financial Code5. Designing Numerical Classes6. Plotting Financial Data7. Linear Algebra8. Interpolation9. Calculating Roots of Equations10. Numerical Integration11. Solving Partial Differential Equations12. Algorithm Optimization13. Portfolio Optimization14. Monte Carlo Methods for Equity markets15. Extending Financial Libraries16. C++ with R and Octave17. MultithreadingA. Appendix A: C++20 Features

Regulärer Preis: 56,99 €
Produktbild für Grundkurs Theoretische Informatik

Grundkurs Theoretische Informatik

Theoretische Informatik – der Vorlesungsbegleiter. Berechenbarkeit, formale Sprachen, Algorithmik und Komplexitätstheorie sind theoretische Themen mit praktischer Relevanz, zu denen es ebenso praktische Zugänge gibt. Freuen Sie sich auf eine moderene Didaktik, die streng Formales mit Ihrer Intuition verknüpft, lernfreundlich ausarbeitet und schließlich zu jedem Thema Anwendungsfelder der Informatik vorstellt. Stefan Neubert hat nicht nur selbst Freude an der theoretischen Informatik, sondern widmet sich auch mit Leidenschaft ihrer Vermittlung zu Beginn und im Laufe des Bachelorstudiums. Eine Einführung mit vielen Aufgaben und Beispielen, auch zum Selbststudium geeignet. Aus dem Inhalt: Grundlegende mathematische NotationModelle und Grenzen der BerechenbarkeitFormale Sprachen: Endliche Automaten, kontextfreie Grammatiken, Pumping Lemmata und mehrBeweisverfahren für Korrektheit und Laufzeit von AlgorithmenParadigmen für den AlgorithmenentwurfAmortisierte Analyse und untere Schranke für LaufzeitenNP-Vollständigkeit und Reduktion   1.  Einführung ... 15        1.1 ... Kompetenzen für die theoretische Arbeit ... 16        1.2 ... Themen der theoretischen Informatik ... 18        1.3 ... Anleitung fürs Buch ... 20        1.4 ... Danksagungen ... 21   2.  Mathematische Notation ... 23        2.1 ... Logische Aussagen ... 24        2.2 ... Mengen ... 27        2.3 ... Relationen und Funktionen ... 32        2.4 ... Graphen ... 37        2.5 ... Unendlichkeiten und Abzählbarkeit ... 40        2.6 ... Beweistechniken ... 42        2.7 ... Aufgaben ... 57        2.8 ... Lösungen ... 58 TEIL I.  Berechenbarkeit und formale Sprachen ... 65   3.  Einführung in die Berechenbarkeitstheorie ... 67        3.1 ... Algorithmus ... 68        3.2 ... Zu viele Funktionen ... 69        3.3 ... Das Halteproblem ... 70        3.4 ... Kontrollfragen ... 72        3.5 ... Antworten ... 72   4.  Problemtypen ... 73        4.1 ... Formalisierung von Problemen ... 73        4.2 ... Funktionen berechnen ... 75        4.3 ... Datencodierung ... 75        4.4 ... Sprachen entscheiden ... 78        4.5 ... Problemklassen der Berechenbarkeitstheorie ... 79        4.6 ... Aufgaben ... 82        4.7 ... Lösungen ... 83   5.  Einführung in formale Sprachen ... 85        5.1 ... Definition ... 85        5.2 ... Die Chomsky-Hierarchie ... 88        5.3 ... Aufgaben ... 89        5.4 ... Lösungen ... 90   6.  Reguläre Sprachen ... 91        6.1 ... Deterministische endliche Automaten ... 92        6.2 ... Nichtdeterministische endliche Automaten ... 103        6.3 ... Grammatiken ... 111        6.4 ... Reguläre Ausdrücke ... 120        6.5 ... Abschlusseigenschaften ... 127        6.6 ... Entscheidungsprobleme auf regulären Sprachen ... 132        6.7 ... Äquivalenzklassenzerlegung ... 134        6.8 ... Nichtreguläre Sprachen ... 139        6.9 ... Ausblick ... 144        6.10 ... Aufgaben ... 144        6.11 ... Lösungen ... 149   7.  Kontextfreie Sprachen ... 161        7.1 ... Kontextfreie Grammatiken ... 162        7.2 ... Eindeutige Ableitungsbäume ... 164        7.3 ... Chomsky-Normalform ... 166        7.4 ... Exkurs: Kellerautomaten ... 170        7.5 ... Abschlusseigenschaften ... 175        7.6 ... Entscheidungsprobleme auf kontextfreien Sprachen ... 176        7.7 ... Nicht-kontextfreie Sprachen ... 181        7.8 ... Ausblick ... 183        7.9 ... Aufgaben ... 184        7.10 ... Lösungen ... 186   8.  Kontextsensitive Sprachen ... 193        8.1 ... Kontextsensitive und monotone Grammatiken ... 194        8.2 ... Das Wortproblem auf kontextsensitiven Sprachen ... 195   9.  Aufzählbare Sprachen ... 197        9.1 ... Turingmaschinen ... 199        9.2 ... While-Programme ... 202        9.3 ... Gödelnummern ... 218        9.4 ... Das universelle While-Programm ... 220        9.5 ... Das schrittbeschränkte universelle While-Programm ... 223        9.6 ... Diagonalisierung und min-Suche ... 224        9.7 ... Prädikate für semi-entscheidbare Sprachen ... 226        9.8 ... Semi-Entscheidbarkeit vs. Aufzählbarkeit ... 227        9.9 ... Das S-m-n-Theorem ... 228        9.10 ... Das kleenesche Rekursionstheorem ... 230        9.11 ... Weitere Modelle und Charakterisierungen ... 233        9.12 ... Aufgaben ... 233        9.13 ... Lösungen ... 235 10.  Nicht Berechenbares ... 241        10.1 ... Beweise mit KRT ... 243        10.2 ... Der Satz von Rice ... 244        10.3 ... Reduktionen ... 246        10.4 ... RE-Vollständigkeit ... 250        10.5 ... Ausblick: Die arithmetische Hierarchie ... 251        10.6 ... Aufgaben ... 252        10.7 ... Lösungen ... 254 TEIL II.  Algorithmik ... 259 11.  Einführung in Algorithmik ... 261 12.  Obere Schranken für Laufzeiten ... 263        12.1 ... Das Maschinenmodell ... 264        12.2 ... Die Laufzeit eines Algorithmus ... 267        12.3 ... Die Größe einer Eingabe ... 268        12.4 ... Die Landau-Notation ... 268        12.5 ... Aufgaben ... 271        12.6 ... Lösungen ... 272 13.  Laufzeiten von Datenstrukturen ... 275        13.1 ... Arrays ... 275        13.2 ... Listen ... 277        13.3 ... Verschachtelte Datenstrukturen und Graphen ... 279        13.4 ... Aufgaben ... 281        13.5 ... Lösungen ... 282 14.  Brute-Force-Algorithmen ... 285        14.1 ... Lineare Suche ... 286        14.2 ... Backtracking/Tiefensuche ... 288        14.3 ... Aufgaben ... 292        14.4 ... Lösungen ... 293 15.  Greedy-Algorithmen ... 295        15.1 ... Beweis mit Austauschargument ... 296        15.2 ... Greedy stays ahead ... 302        15.3 ... Aufgaben ... 304        15.4 ... Lösungen ... 306 16.  Divide and Conquer ... 313        16.1 ... Mergesort ... 314        16.2 ... Binäre Suche ... 319        16.3 ... Multiplikation großer Zahlen ... 321        16.4 ... Das Mastertheorem ... 325        16.5 ... Ausblick ... 326        16.6 ... Aufgaben ... 327        16.7 ... Lösungen ... 329 17.  Dynamische Programmierung ... 335        17.1 ... Fibonacci-Zahlen ... 336        17.2 ... Rückgeld geben ... 337        17.3 ... Der Algorithmus von Dijkstra ... 341        17.4 ... Aufgaben ... 344        17.5 ... Lösungen ... 346 18.  Amortisierte Analyse ... 351        18.1 ... Dynamische Arrays ... 351        18.2 ... Guthabenmethode ... 353        18.3 ... Ausblick ... 353 TEIL III.  Komplexitätstheorie ... 355 19.  Einführung in die Komplexitätstheorie ... 357        19.1 ... Die Komplexität eines Problems ... 358        19.2 ... Bedingte Schranken ... 358        19.3 ... Auswege für schwierige Probleme ... 359 20.  Beweistechniken für untere Schranken ... 361        20.1 ... Die Ausgabegröße ... 362        20.2 ... Das informationstheoretische Argument ... 363        20.3 ... Das Adversary-Argument ... 367        20.4 ... Reduktionen ... 370        20.5 ... Aufgaben ... 372        20.6 ... Lösungen ... 374 21.  P vs. NP: Bedingte untere Schranken ... 377        21.1 ... Die Komplexitätsklasse P ... 378        21.2 ... Die Komplexitätsklasse NP ... 380        21.3 ... Polynomialzeitreduktionen ... 388        21.4 ... NP-schwere und NP-vollständige Probleme ... 392        21.5 ... Ausblick: Mehr NP-vollständige Probleme ... 404        21.6 ... Aufgaben ... 405        21.7 ... Lösungen ... 406 22.  Ausblick: Parametrisierte Analyse ... 408   Index ... 410

Regulärer Preis: 29,90 €
Produktbild für Python 3 Schnelleinstieg

Python 3 Schnelleinstieg

* PROGRAMMIEREN LERNEN OHNE VORKENNTNISSE* IN 14 KAPITELN SCHRITT FÜR SCHRITT ZUM PROFI* EINFACHE PRAXISBEISPIELE UND ÜBUNGSAUFGABENMit diesem Buch gelingt Ihnen der Einstieg in die Python-Programmierung ohne Mühe. Sie benötigen keinerlei Vorkenntnisse.Alle Grundlagen werden anschaulich und einfach nachvollziehbar anhand von Codebeispielen erklärt. Übungsaufgaben in unterschiedlichen Schwierigkeitsstufen am Ende der Kapitel helfen Ihnen, das neu gewonnene Wissen praktisch anzuwenden und zu vertiefen.Der Autor führt Sie Schritt für Schritt in die Welt der Programmierung ein: von den Grundlagen über Objektorientierung bis zur Entwicklung von Anwendungen mit grafischer Benutzungsoberfläche. Dabei lernen Sie ebenfalls, was guten Programmierstil ausmacht und wie man Fehler in Programmtexten finden und von vornherein vermeiden kann.So gelingt es Ihnen in Kürze, Python effektiv in der Praxis einzusetzen.* Alle Grundlagen einfach erläutert* Verarbeitung von Texten und Bildern* Objektorientierte Programmierung* Grafische Benutzungsoberflächen mit tkinter* Testen, Debugging und Performance-Analyse* Übungsaufgaben in drei verschiedenen Schwierigkeitsstufen* Programmcode, Lösungen und Glossar zum DownloadMichael Weigend war mehr als 30 Jahre lang als Lehrer tätig und hält an der Universität Münster Vorlesungen zur Python-Programmierung. Er hat bereits mehrere Bücher zu den Themen Programmierung, Web Development und visuelle Modellierung geschrieben.

Regulärer Preis: 12,99 €
Produktbild für Python One-Liners

Python One-Liners

Python in seiner raffiniertesten FormPython Tipps und Tricks mit fortgeschrittenem NiveauProblemlösungen für den ProgrammieralltagNumPy-GrundlagenPython One-Liners zeigt Ihnen, wie man "One Liners", Einzeiler, liest und schreibt: prägnante Ausdrücke zu nützlicher Funktionalität, verpackt in einer einzigen Codezeile. Sie lernen systematisch jede Zeile von Python-Code zu entschlüsseln und zu verstehen, und werden wie ein Experte eloquentes, stark komprimiertes Python schreiben.In den fünf Kapiteln des Buches werden Tipps und Tricks, reguläre Ausdrücke, Machine Learning, Kernthemen der Datenwissenschaft und hilfreiche Algorithmen behandelt. Die ausführlichen Erläuterungen von Einzeilern führen in wichtige Konzepte der Informatik ein und fördern Ihre Programmier- und Analysefähigkeiten.Sie lernen fortgeschrittene Python-Funktionen wie Listenverständnis, Slicing, Lambda-Funktionen, reguläre Ausdrücke, Map- und Reduce-Funktionen und Slice-Zuweisungen kennen.Sie erwerben darüber hinaus Kenntnisse in diesen Bereichen:- Nutzung von Datenstrukturen zur Lösung von Problemen aus der realen Welt, wie z. B. die Verwendung boolescher Indizierung zum Auffinden von Städten mit überdurchschnittlicher Umweltverschmutzung.- Verwendung der NumPy-Grundlagen wie Array, Form, Achse, Typ, Broadcasting, fortgeschrittene Indizierung, Slicing, Sortierung, Suche, Aggregation und Statistik.- Berechnen Sie grundlegende Statistiken von mehrdimensionalen Datenfeldern und die K-Means-Algorithmen für unsupervised Learning.- Erstellen Sie fortgeschrittenere reguläre Ausdrücke unter Verwendung von Gruppierungs- und benannten Gruppen, negativen Lookaheads, maskierten Zeichen, Leerzeichen, Zeichensätzen (und negativen Zeichensätzen) und greedy/non greedy Operatoren.- Ein breites Spektrum von Informatik-Themen verstehen, einschließlich Anagramme, Palindrome, Obermengen, Permutationen, Fakultäten, Primzahlen, Fibonacci-Zahlen, Obfuszierung, Suche und algorithmische Sortierung.Am Ende des Buches werden Sie wissen, wie man Python in seiner raffiniertesten Form schreibt und prägnante, schöne Python-Kunstwerke in nur einer einzigen Zeile schafft.Christian Mayer hat einen Doktortitel in Informatik und ist der Gründer der beliebten Python-Site Finxter (https:blog.finxter.com). Mayer ist außerdem der Autor der Coffee Break Python-Reihe.

Regulärer Preis: 29,90 €
Produktbild für Praktische Statistik für Data Scientists

Praktische Statistik für Data Scientists

Statistische Konzepte aus der Perspektive von Data Scientists erläutert* Das Buch stellt die Verbindung zwischen nützlichen statistischen Prinzipien und der heutigen Datenanalyse-Praxis her* Ermöglicht Data Scientists, ihr Wissen über Statistik auf ein neues Level zu bringen* Übersetzung der 2. Auflage des US-Bestsellers mit Beispielen in Python und RStatistische Methoden sind ein zentraler Bestandteil der Arbeit mit Daten, doch nur wenige Data Scientists haben eine formale statistische Ausbildung. In Kursen und Büchern über die Grundlagen der Statistik wird das Thema aber selten aus der Sicht von Data Scientists behandelt. Viele stellen daher fest, dass ihnen eine tiefere statistische Perspektive auf ihre Daten fehlt.Dieses praxisorientierte Handbuch mit zahlreichen Beispielen in Python und R erklärt Ihnen, wie Sie verschiedene statistische Methoden speziell in den Datenwissenschaften anwenden. Es zeigt Ihnen auch, wie Sie den falschen Gebrauch von statistischen Methoden vermeiden können, und gibt Ratschläge, welche statistischen Konzepte für die Datenwissenschaften besonders relevant sind. Wenn Sie mit R oder Python vertraut sind, ermöglicht diese zugängliche, gut lesbare Referenz es Ihnen, Ihr statistisches Wissen für die Praxis deutlich auszubauen.Peter Bruce ist Gründer des Institute for Statistics Education bei Statistics.com. Andrew Bruce ist Principal Research Scientist bei Amazon und verfügt über mehr als 30 Jahre Erfahrung in Statistik und Data Science. Peter Gedeck ist Senior Data Scientist bei Collaborative Drug Discovery, er entwickelt Machine-Learning-Algorithmen für die Vorhersage von Eigenschaften von Arzneimittelkandidaten.

Regulärer Preis: 39,90 €
Produktbild für Job Ready Java

Job Ready Java

PREPARE YOURSELF TO TAKE ON NEW AND EXCITING JAVA PROGRAMMING CHALLENGES WITH THIS ONE-STOP RESOURCEJob Ready Java delivers a comprehensive and foundational approach to Java that is immediately applicable to real-world environments. Based on the highly regarded and effective Software Guild Java Bootcamp: Object Oriented Programming course, this book teaches you the basic and advanced Java concepts you will need at any entry-level Java position.With the “Pulling It Together” sections, you’ll combine and integrate the concepts and lessons taught by the book, while also benefiting from:* A thorough introduction to getting set up with Java, including how to write, compile, and run Java programs with or without a Java IDE * Practical discussions of the basics of the Java language, including syntax, program flow, and code organization * A walk through the fundamentals of Object-Oriented Programming including Classes, Objects, Interfaces, and Inheritance, and how to leverage OOP in Java to create elegant code. * Explorations of intermediate and advanced Java concepts, including Maven , unit testing, Lambdas, Streams, and the Spring Framework Perfect for Java novices seeking to make a career transition, Job Ready Java will also earn a place in the libraries of Java developers wanting to brush up on the fundamentals of their craft with an accessible and up-to-date resource.HAYTHEM BALTI, PHD, is Director of Curriculum at Wiley’s Software Guild and mthree. He has created courses used by thousands of Software Guild Students in Java, Python, Go, and other development and data science competencies. He earned his doctorate in Computer Engineering and Computer Science from the University of Louisville.ALAN GALLOWAY is Director of Instruction at Wiley’s Software Guild and mthree. H:e supervises a team of instructors who deliver large-scale training programs in technology.About the Authors vAbout the Technical Writer viiAbout the Technical Editors viiAcknowledgments ixIntroduction xxvPART I: GETTING SET UP 1LESSON 1: INSTALLING JAVA 2The Java Universe 3The Java Development Kit 3The Java Virtual Machine 4The Java Runtime Environment 5Installing OpenJDK 5Installing OpenJDK on Microsoft Windows 6Checking for an Existing JDK on Windows 6Installing OpenJDK 7Verifying the Installation 10Installing OpenJDK on macOS 13Checking for an Existing JDK on macOS 13Installing OpenJDK 13Verifying the Installation 17Creating Your First Java Program 17Writing the Program 18Compiling and Running the Program 19Dealing with Syntax Errors 21Using the Compiler and Java Virtual Machine 22Summary 22LESSON 2: INSTALLING A DEVELOPMENT ENVIRONMENT: NETBEANS 24Getting Started 25Understanding the Value of an IDE 25Using the Source Code Editor 25Using the Build Automation Tools 26Using the Debugger 26Installing NetBeans 27Using an Installer 27Installing on Windows 28Installing on macOS 32Installing Binaries 37Installing Binaries on Windows 40Adding the JDK 42Running NetBeans 44Summary 45LESSON 3: USING AN INTEGRATED DEVELOPMENT ENVIRONMENT 46Using an IDE 47Creating a New Project 48Coding the “Hello, World!” Program 53Compiling the Code in NetBeans 57Running the Program 59Using the Debugging Tools 60Compilation and Syntax Errors 61Runtime and Logic Errors 63Understanding Source Control 67Summary 69PART II: BASICS OF OBJECT ORIENTED PROGRAMMING 70LESSON 4: USING PROGRAM STATEMENTS AND VARIABLES 71Approach 72Concepts 73Computers 73Data vs. Information 73Programs and Programming 74Models and Metaphors 74Objects 74Specifications 75Syntax vs. Semantics 75Language Building Blocks 75Comments 75Single-Line Comments 76Multiline Comments 76Doc Comments 77Using Comments 78Identifiers 79Data Types 80Statically Typed Languages 81Type Conversion 81Literals 82Variables 82Constants 84Operators and Expressions 84Three Flavors of Operators 85Operator Precedence 88Pulling It All Together: Mathematical Expressions and Operators 89Summary 93Exercises 93Exercise 1: ABeginning.java 94Exercise 2: ProjectGutenberg.java 95Exercise 3: CommentingCode.java 97Exercise 4: AllTheMath.java 98Exercise 5: BucketsOfFun.java 100LESSON 5: COLLECTING AND PARSING INPUT FROM THE USER 103Console Input and Output 104Adder Version 1 104Adder Version 2 106Declaring and Initializing Our Variables 106Setting Up a Scanner Object 106Understanding the Command Line 107Getting the Values from the User 108Going from Strings to Integers 108Adding the Numbers Together 109Using Loops to Gather User Input 111Parsing Data 112Dealing with Bad Numbers: NumberFormatException 113Scanner Problems 115Summary 121Exercises 121Exercise 1: Quest for the User Input 121Exercise 2: Don’t Forget to Store It 123Exercise 3: Passing the Turing Test 124Exercise 4: Healthy Hearts 125Exercise 5: Mini Mad Libs 126LESSON 6: PULLING IT ALL TOGETHER: BUILDING A USEFUL PROGRAM 127Planning the Program 128Identifying the Variables 128Planning the Steps 128Creating the Code 129Declaring the Variables 129Getting Input 130Converting the Strings 131Calculating the Area and Perimeter 132Calculating the Cost 133Displaying the Results 133Running the Program 135Summary 135Exercises 136Exercise 1: Mapping Instructions to Code 136Exercise 2: Adding Prompts for Costs 136Exercise 3: Adding Multiple Windows 136Exercise 4: Adding Validation 137LESSON 7: CONTROLLING PROGRAM FLOW 138What Can Our Code Do? 139Decisions and Boolean Expressions 139if Statements 139if-else Statements 142Chaining if-else Statements 144Evaluating Multiple Conditions 146Conditional-And and Conditional-Or Operators 147Exclusive-Or 149Ternary or Conditional Operator 150switch Statement 151Falling Through with a switch Statement 153Comparing for Equal Strings 155Summary 158Exercises 159Exercise 1: What Month is It? 159Exercise 2: Guess Me 159Exercise 3: Birthstones 160Exercise 4: Trivia Night 161Exercise 5: Space Rustlers 162Exercise 6: Picky Eater 163Exercise 7: Field Day 165LESSON 8: LOOPING PROGRAM FLOW 167Loops 167Using while Loops 168Initializing the while Loop 171Incrementing the while Loop 171Breaking a Loop 172Using do-while Loops 174Making do-while Shine 176Using for Loops 179Initializing the for Loop 181Terminating the for Loop 181Incrementing a for Loop 181Summary 184Exercises 184Exercise 1: Surfacing in BewareTheKraken.java 185Exercise 2: Do or Do Not 185Exercise 3: Guess Me Finally 186Exercise 4: for and Twenty Blackbirds 187Exercise 5: Spring Forward, Fall Back 188Exercise 6: for Times 189Exercise 7: for Times for 189Exercise 8: Nesting for Loops 190Exercise 9: Traditional Fizz Buzz 191LESSON 9: UNDERSTANDING FLOWCHARTS AND ALGORITHMS 193Flowchart Basics 194Sequences 194Branches 195Loops 196Flowcharting 197Flowchart Example 197Summary 198Exercises 200Exercise 1: A Guessing Game 200A Possible Flowcharting Solution 201The Guessing Game Flowchart 201The Guessing Game Code 203LESSON 10: ADDING RANDOMNESS TO YOUR PROGRAMS 207Initializing the Random Object 208Including the Random Class 208Seeding Random Numbers 208Generating Random Integers 209Generating Random Doubles 210Revisiting the Number Guessing Game 212Other Random Options 215Summary 215Exercises 215Exercise 1: A Little Chaos 216Exercise 2: Opinionator—Making Random Choices 217Exercise 3: High Roller 219Exercise 4: Coin Flipper 220Exercise 5: Guess Me More 220Exercise 6: Fortune Cookie 221LESSON 11: DEBUGGING 222Creating a File to Debug 222Setting Breakpoints 224Stepping through Code 226Running the Debugger 226Examining Variables 229The Console and the Debugger 232Summary 234Exercises 234Exercise 1: Odd Odd Numbers 234Exercise 2: A Simple Question of If 235LESSON 12: ADDING METHODS 237Why Methods? 238Defining Methods 238Method Signature 239Method Naming Conventions 239Return Values 240Using Return Values 241Input Parameters 242Matching Number of Parameters 244Matching Parameter Types 245Passing Parameters 246Method Forms 248No Return Value, No Parameters 248Return Value, No Parameters 248No Return Value, One or More Parameters 249Return Value, One or More Parameters 249The staticKeyword 249Pulling It All Together 250Identifying the Similarities 252Identifying the Differences 252Creating the Method 252Setting the Name 252Determining Parameters 253Setting a Return Type 253Our Basic Definition 253Our Method Body 254Using the Method 255Scope 257Debugging and Step Into 259Setting a Breakpoint in a Method 260Stepping into Code 262Debugging and Scope 265Summary 265Exercises 265Exercise 1: Method to the Madness 266Exercise 2: Return to Sender 267Exercise 3: MatchWork 268Exercise 4: Barely Controlled Chaos 269LESSON 13: ORGANIZING WITH ARRAYS 272What is an Array? 273Types of Arrays 274Element vs. Index 275Declaring Arrays 276Single-Dimensional Arrays 276Rectangular Arrays 276Jagged Arrays 277Initializing Arrays 277Initializing a Single-Dimensional Array 278Initializing a Rectangular Array 279Initializing a Jagged Array 280Accessing Array Elements 281Accessing Elements in a Single-Dimensional Array 281Accessing Elements in a Multidimensional Array 283Accessing Elements in a Jagged Array 284Iterating through Arrays 284Iterating through Multidimensional and Jagged Arrays 286Sum the Elements of an Array 288Looping Back to Front, with a Twist 289Printing Pairs of Elements 290Changing the Size of an Array 291Dealing with Errors 293Summary 293Exercises 294Exercise 1: A Rainbow 294Exercise 2: Still Positive 295Exercise 3: Fruit Basket 296Exercise 4: Simple Combination 297Exercise 5: Hidden Nuts 297Exercise 6: Summative Sums 298PART III: FUNDAMENTALS OF CLASSES AND OBJECTS 299LESSON 14: OBJECT-ORIENTED CONCEPTS 300Abstraction 301Object Orientation 301Types 302Public Interface/Private Implementation 302Encapsulation and Data Hiding 303Single Responsibility Principle and Cohesion 303Delegation 304Summary 304LESSON 15: CREATING CLASSES AND TYPES 305Creating New Types 305Classes vs. Objects 307Properties, Accessors, and Mutators 307Dot Operator 308this Keyword 309Methods/Behaviors 309Constructors 309Object Instantiation and Method Invocation 311Static Keyword 312Static and the Main Method 313Static and Constant Values 313Static and Utility Methods 314Pulling It All Together 315Creating a New Class 316Going Static 320When to Go Static 323Existing Static Methods 325Summary 325Exercises 326Exercise 1: Class Modeling 327Exercise 2: Refactoring 328Exercise 3: A Multiclass Problem 330LESSON 16: MANAGING STORAGE AND MEMORY 331Programs and Memory 331The Stack 332The Heap 334Garbage Collection 338Reference and Null Values 339Summary 341LESSON 17: EXPLORING INTERFACES, COMPOSITION, AND INHERITANCE 342How Do These Tools Help? 343Interfaces 344Composition and Inheritance 345Composition 345Inheritance 346Using Interfaces, Composition, and Inheritance 346Summary 347LESSON 18: DIVING INTO INTERFACES 348What is an Interface? 349Declaring an Interface 349Implementing an Interface 350Interface Restrictions 352Implementing Multiple Interfaces 352Extending an Interface 354Interfaces and Polymorphism 356Summary 357LESSON 19: DIVING INTO COMPOSITION 358What is Composition? 359Book without Composition 359Book with Composition 360Summary 362Exercises 362Exercise 1: Classroom Composition 362Exercise 2: Cookbook 363LESSON 20: DIVING INTO INHERITANCE 365Everything Extends Object 366Terminology 366Access Control 367Inheritance 368Code Reuse through Inheritance 371Method Overloading 371Method Overriding 373Constructors 375Polymorphism 380Calling Methods Polymorphically 382Abstract Base Classes 383Summary 383Exercises 383Exercise 1: Working with Shape 384LESSON 21: UNDERSTANDING COLLECTIONS 385Collections in Java 385Javadoc 386Collections Framework Structure 387Interface vs. Implementation 389Iterator 390Commonly Used Interfaces in the Collections Framework 390Quick Look at List 390ArrayList 390Stack 391Quick Look at Set 391HashSet 391TreeSet 392Quick Look at Map 392HashMap 392TreeMap 392Summary 393LESSON 22: INTRODUCTION TO LISTS 394List 394Types of Lists 395ArrayList 395LinkedList 395Stack 397Understanding Generics 397Using Lists 398Instantiating a List 398Adding Items to a List 401Accessing Items in a List 402Inserting Items into a List 403Removing Items from a List 403Enhanced Approaches to Access List Items 405The Enhanced for Loop and Lists 406Visiting Each Element: Iterators 407Creating an Iterator 407Using the Iterator 408Summary 410Exercises 410Exercise 1: Three Threes 410Exercise 2: Mixed-Up Animals 411LESSON 23: EXPLORING MAPS 412Map Interface 412HashMap 413Creating and Adding Entries to a Map 413Instantiating a Map 413Adding Data to a Map 414Manipulating with Entries in a Map 415Looking Up Values in a Map 415Replacing Data in a Map 417Removing Values from a Map 417Getting Keys and Listing Mapped Values in a Map 417Listing All the Keys 417Listing All the Values Key by Key 420Listing All the Values: Value Collection 421Summary 423Exercises 423Exercise 1: State Capitals 423Exercise 2: A Reusable User I/O Class 424Exercise 3: Student Quiz Scores 427LESSON 24: USING SIMPLE FILE INPUT AND OUTPUT 429Data Storage and Representation 430File Format, Marshaling, and Unmarshaling 431Student Class 432File Format Example 433Marshaling and Unmarshaling Approach 433Simple File I/O 434Writing to a File 435Exceptions 436The OutFile.txt File 437Reading from a File 438Summary 440Exercises 440Exercise 1: Creating State Capitals 441Exercise 2: Hashing the State Capitals 442Exercise 3: A State Guessing Game 442Exercise 4: Objectifying States 443LESSON 25: APPLYING APPLICATION DESIGN 446CRUD Applications 447Using a Tiered Design 448The Basic Tiers 448The Model-View-Controller Pattern 448Packages 449Software Development Lifecycle Overview 450Waterfall 450Iterative Development 451Agile Development 451Project Lifecycle 452Phase 1: Inception 452Phase 2: Elaboration 452Phase 3: Construction 453Phase 4: Transition 453Iterations 453Summary 454LESSON 26: HANDLING EXCEPTIONS 455Exception Handling 456Catch or Specify Requirement 459Exception Types 459Handling (Catching) Exceptions 459try Block 459catch Block 461finally Block 462Specifying and Throwing Exceptions 464Exception Translation and Encapsulation 465Summary 466Exercises 466Exercise 1: Keep On Asking 466Exercise 2: Arrays Gone Bad 466Exercise 3: Exiting Gracefully 468LESSON 27: PULLING IT ALL TOGETHER: BUILDING THE CLASS ROSTER APP 469Application Requirements and Use Cases 470Understanding theApplication Structure 470Interface Relationships 471Composition Relationships 472Inheritance Relationships 472Classes and Interfaces in Our Application 472MVC Rules of the Game 473Construction Approach 473Setting Up the Class Roster Application Shell 474Creating the Menu System 477UserIO and UserIOConsoleImpl 478ClassRosterController 482App 483ClassRosterView 484ClassRosterController 485Adding a Student Use Case 487Student (DTO) 487ClassRosterDao and ClassRoster-DaoFileImpl 488ClassRosterDao 488ClassRosterDaoFileImpl 490ClassRosterView 491ClassRosterController 493Viewing All Students Use Case 494ClassRosterDaoFileImpl 494ClassRosterView 495ClassRosterController 496Getting a Student Use Case 497ClassRosterDaoFileImpl 498ClassRosterView 498ClassRosterController 499Removing a Student Use Case 501ClassRosterDaoFileImpl 501ClassRosterView 501ClassRosterController 502Handling Unknown Command and Exiting 504ClassRosterView 504ClassRosterController 504Working with Dependency Injection 506Implementation 507ClassRosterController 507ClassRosterView 508App 508Handling Application Exceptions 509ClassRosterDaoException 509Adding File Persistence 512ClassRosterDaoFileImpl 512Constants 512unmarshalStudent 513loadRoster 514marshalStudent 516writeRoster 517addStudent 518getAllStudents 519getStudent 520removeStudent 520ClassRosterDao 521ClassRosterView 522ClassRosterController 522Create roster.txt 525Summary 527Exercises 527Exercise 1: DVD Library Update 527Exercise 2: Electronic Address Book 528PART IV: INTERMEDIATE JAVA 531LESSON 28: EXPLORING THE SERVICE LAYER 532The Role of the Service Layer 532Service Layer Exceptions 534Service Layer API Design 534New Business Rules 534Create a Student 535Define the Method Signature 535Define the Return Type 535Define the Errors That Might Occur in This Method 535Service Layer Methods for Getting Students 536Get All Students 536Get a Single Student 537Remove a Student 537Summary 537LESSON 29: PULLING IT ALL TOGETHER: CODING THE CLASS ROSTER SERVICE LAYER 538Create a Service Layer Interface 539Create New Exceptions 542ClassRosterDuplicateIdException 542ClassRosterDataValidation Exception 543Refactor/Rename ClassRoster-DaoException 543Create the Service Layer Implementation 546Constructor and DAO Member 547Validating Student Data 547Create Student 548Get All Students 549Get One Student 549Remove Student 550Modify the Controller 550Replace Member Field 551Modify Constructor 551Replace Calls to DAO Methods with Calls to the Service Layer Method 551Modify the App 553Add the Audit Log Feature 554Audit DAO Interface and Implementation 554Modify the Service Layer 556Add Member Field 556Modify the Constructor 556Modify createStudent 556Modify removeStudent 557Modify App 558Summary 559LESSON 30: DOING UNIT TESTING 560Unit Testing 561Types of Unit Testing 561Black-Box vs. Glass-Box Testing 562Stateful vs. Stateless Components 562Test-Driven Development and Red/Green/Refactor 562Test Stubs 563JUnit 563Test Setup and Teardown 563Annotations 564Asserts 564Given/When/Then 564Stateless Unit Testing 565What Makes a Good Unit Test? 565Designing a Test Plan 565Happy Llama Test Plan 567Implementing Unit Tests 568Creating the Test Class 568Writing Happy Llama Tests 569Running JUnit Tests 571Summary 575LESSON 31: TESTING STATEFUL CODE 577Unit Testing Stateful Code 578Separating Production and Test Data 579Adding hashCode and equals to Student 580Adding toString to Student 582Creating the Test Class 583The Set Up and Tear Down Methods 584Arrange/Act/Assert for Stateful Code 585Class Roster DAO Test Design 586Add Student 586Get Student 588ClassRosterDaoTest: Adding and Getting a Student 589Get All Students 590ClassRosterDaoTest: Adding and Getting All Students 590Remove Student 592ClassRosterDaoTest: Adding and Removing Students 592Unit Testing the Service Layer 594Planning the Test Design 595Creating the Test Class 595Creating the DAO Stubs 596ClassRosterAuditDaoStubImpl 597ClassRosterDaoStubImpl 597Test Setup 599Test Implementation 600testCreateValidStudent 600testCreateStudentDuplicateId 601testCreateStudentInvalidData 602testGetAllStudents 603testGetStudent 603testRemoveStudent 604Summary 605Exercises 605Exercise 1: Testing the Address Book App 605Exercise 2: Testing the DVD Library 606LESSON 32: INCLUDING MAGIC NUMBERS AND ENUMS 607Magic Numbers 608Enums 608Creating Enums for Fixed Constants 609Using Enums 609Getting Values from an Enum 611Enum Members 612Summary 616Exercises 616Exercise 1: How Many Days until Friday? 617Exercise 2: Playing Cards 617LESSON 33: MANIPULATING DATES AND TIMES 618ISO Calendar 619Human Time and Machine Time 619Local and Zoned Classes 619Periods and Duration 620Working with LocalDate Objects 620Creating LocalDates 620Converting Dates to and from Strings 622Formatting Dates 623Using Localization 625Getting the Time with LocalDateTime 626Working with Date Calculations 628Calculating Dates in the Future and Past 628Calculating the Time between Two Dates 630Working with Legacy Dates 632Converting Date Objects 632Converting a GregorianCalendar Object 633Summary 635Exercises 635Exercise 1: Birthday Calculator 635Exercise 2: It’s The End of the World as We Know It 636Exercise 3: Tracking Your Time 636LESSON 34: USING THE BIGDECIMAL CLASS 638Exploring BigDecimal 639Constructing BigDecimals 639Understanding Scale 641Understanding Rounding Modes 641Working with BigDecimal 642Setting Scale 642Setting Scale without Rounding Mode 643Rounding BigDecimals 643Doing Calculations with BigDecimals 645Dividing BigDecimals 646Summary 648Exercises 648Exercise 1: Interest Calculator 648Exercise 2: Car Lot Service Layer 649LESSON 35: WORKING WITH LAMBDAS AND STREAMS 653Using Aggregate Operations 654Understanding Pipelines and Streams 654Streams vs. Iteration 655Exploring Lambdas 655Working with Stream and Lambda Syntax 655The forEach() Stream Method 656The filter Stream Method 660The map Stream Method 661The collect Stream Method 663Further Syntax 664Summary 665Exercises 665Exercise 1: Only the Young 665Exercise 2: DVD Library Update 666PART V: ADVANCED JAVA 667LESSON 36: WORKING WITH THE SPRING FRAMEWORK 668Dependency Injection and Programming to Interfaces 669Why Spring? 670Understanding the Spring Approach 670Plain Old Java Objects 671Templates 671Pulling It All Together: Spring DI in Action 673Spring DI with XML 674XML Configuration File 675Update the App Class 676Spring DI with Annotations 677Class Annotations 678Summary 681LESSON 37: INTRODUCING MAVEN 682What is Maven? 683Project Object Model 683Project Identification 685Dependencies 685Build Settings 686Dependency Management 686Maven Lifecycle 687Summary 687LESSON 38: PULLING IT ALL TOGETHER: BUILDING THE CLASS ROSTER WITH SPRING 689Include the Spring Libraries 690How Do I Know What My Dependency Entry Should Be? 691Add Spring Configuration Files 692Convert the App Class to Use Spring 693Defining Beans 694Modifying the App Class 696Convert the Unit Tests to Use Spring 697Defining Beans 698Modifying the Test Class Constructor 699Exception Conditions 700Summary 701Exercises 701Exercise 1: DVD Library 701PART VI: APPENDICES 702APPENDIX A: CODE CHECKLIST 703Functionality 703Style 703APPENDIX B: JAVA CONCEPTS STUDY LIST 705Variables 705Methods 705Arrays 706Making Decisions 706Loops 706Java/JVM 706Objects 707Interfaces 708Inheritance 708N-Tier Design 708Collections 709Exceptions 709Lambdas/Streams 709Spring Core 709APPENDIX C: AGILE APPROACH CHECKLIST FOR CONSOLE CRUD APPLICATIONS 710Assumptions 710Requirement Steps 711Design Steps 711Construction Steps 712Index 714

Regulärer Preis: 25,99 €
Produktbild für Machine Learning mit Python (3. Auflg.)

Machine Learning mit Python (3. Auflg.)

Das umfassende Praxis-Handbuch für Data Science, Deep Learning und Predictive Analytics in 3. Auflage 03/2021.Mit diesem Buch erhalten Sie eine umfassende Einführung in die Grundlagen und den effektiven Einsatz von Machine-Learning- und Deep-Learning-Algorithmen und wenden diese anhand zahlreicher Beispiele praktisch an. Dafür setzen Sie ein breites Spektrum leistungsfähiger Python-Bibliotheken ein, insbesondere Keras, TensorFlow 2 und Scikit-learn. Auch die für die praktische Anwendung unverzichtbaren mathematischen Konzepte werden verständlich und anhand zahlreicher Diagramme anschaulich erläutert.Die dritte Auflage dieses Buchs wurde für TensorFlow 2 komplett aktualisiert und berücksichtigt die jüngsten Entwicklungen und Technologien, die für Machine Learning, Neuronale Netze und Deep Learning wichtig sind. Dazu zählen insbesondere die neuen Features der Keras-API, das Synthetisieren neuer Daten mit Generative Adversarial Networks (GANs) sowie die Entscheidungsfindung per Reinforcement Learning.Ein sicherer Umgang mit Python wird vorausgesetzt.Aus dem Inhalt:Trainieren von Lernalgorithmen und Implementierung in PythonGängige Klassifikationsalgorithmen wie Support Vector Machines (SVM), Entscheidungsbäume und Random ForestNatural Language Processing zur Klassifizierung von FilmbewertungenClusteranalyse zum Auffinden verborgener Muster und Strukturen in Ihren DatenDeep-Learning-Verfahren für die BilderkennungDatenkomprimierung durch DimensionsreduktionTraining Neuronaler Netze und GANs mit TensorFlow 2Kombination verschiedener Modelle für das Ensemble LearningEinbettung von Machine-Learning-Modellen in WebanwendungenStimmungsanalyse in Social NetworksModellierung sequenzieller Daten durch rekurrente Neuronale NetzeReinforcement Learning und Implementierung von Q-Learning-AlgorithmenInhalt & Leseprobe (PDF-Link)

Regulärer Preis: 49,99 €
Produktbild für SAP Conversational AI

SAP Conversational AI

Lassen Sie Bots für sich sprechen! Ob Kundenservice oder digitaler Assistent – mit diesem Buch lernen Sie, wie Sie mit SAP Conversational AI eigene Chatbots programmieren. Die Autoren führen Sie durch alle Phasen der Entwicklung vom Training des Bots bis zur Anbindung an die SAP-Systeme. Sie erhalten wertvolle Tipps zur Auswahl geeigneter Anwendungsfälle sowie für Monitoring und Optimierung. Aus dem Inhalt: Conversational User ExperienceTerminologie und GrundkonzepteSAP Conversational AIFrage-und-Antwort-Bots (Q&A) und reguläre BotsChatbots trainieren, verbinden und verbessernAnwendungsfälleDeployment und Betrieb von BotsFallback und DisambiguierungBerechtigungen und Datenschutz   Einleitung ... 15 TEIL I.  Einführung ... 21   1.  Ziele und Einsatzgebiete von Conversational User Experience ... 23        1.1 ... Was ist Conversational User Experience? ... 23        1.2 ... Terminologie und Grundkonzepte ... 26        1.3 ... Geschichte der Chatbots ... 38        1.4 ... Chatbot vs. digitaler Assistent ... 41        1.5 ... Zusammenfassung ... 46   2.  Einführung in SAP Conversational AI ... 47        2.1 ... Die Plattform SAP Conversational AI im Überblick ... 48        2.2 ... Verwaltungs- und Einstellungsmöglichkeiten im Benutzerprofil ... 57        2.3 ... Arten von Bots ... 71        2.4 ... Erste Schritte zur Erstellung eines Chatbots ... 73        2.5 ... Verwendung vordefinierter Chatbot-Bestandteile ... 80        2.6 ... Zusammenfassung ... 82 TEIL II.  Entwicklung eines Chatbots ... 83   3.  Einen Chatbot trainieren ... 85        3.1 ... Überblick über die Registerkarte »Train« ... 86        3.2 ... Gesprächsabsichten mit Intents definieren ... 95        3.3 ... Das Entitätenkonzept ... 100        3.4 ... Entitätsanreicherungen hinzufügen ... 115        3.5 ... Das Datenset testen ... 120        3.6 ... Unterstützte Sprachen ... 122        3.7 ... Anwendung von NLP-Technologien ... 123        3.8 ... Training des Beispiel-Bots ... 125        3.9 ... Zusammenfassung ... 129   4.  Einen Chatbot aufbauen ... 131        4.1 ... Überblick über die Registerkarte »Build« ... 132        4.2 ... Skills verwalten ... 138        4.3 ... Trigger verwenden ... 145        4.4 ... Voraussetzungen definieren ... 150        4.5 ... Aktionen erstellen ... 155        4.6 ... Zusammenfassung ... 177   5.  Den Chatbot verbinden ... 179        5.1 ... Bereitstellungskanäle ... 179        5.2 ... SAP Conversational AI Web Client ... 189        5.3 ... Fallback-Kanäle ... 194        5.4 ... Slack-Kanal für den Beispiel-Bot konfigurieren ... 197        5.5 ... Zusammenfassung ... 200   6.  Den Chatbot verbessern ... 201        6.1 ... Einträge filtern ... 202        6.2 ... Protokoll der Sprachverarbeitung auswerten ... 204        6.3 ... Verwendungsmetriken ... 208        6.4 ... Trainingsanalyse ... 212        6.5 ... Konversationsprotokolle ... 218        6.6 ... Zusammenfassung ... 220   7.  Bot-Einstellungen ... 221        7.1 ... Einstellungen eines Chatbots ... 223        7.2 ... Versionen ... 234        7.3 ... Umgebungen verwenden ... 240        7.4 ... Zusammenfassung ... 245   8.  Frage-Antwort-Bots ... 247        8.1 ... Frage-Antwort-Bot trainieren ... 249        8.2 ... Frage-Antwort-Bots bauen ... 256        8.3 ... Frage-Antwort-Bot verbessern ... 259        8.4 ... Einen eigenen Frage-Antwort-Bot erstellen ... 261        8.5 ... Zusammenfassung ... 266 TEIL III.  Fortgeschrittene Chatbot-Konzepte ... 267   9.  Weiterführende Konzepte ... 269        9.1 ... Laufzeitverhalten eines Chatbots testen ... 269        9.2 ... Nutzung von API-Endpunkten ... 275        9.3 ... Feinheiten des Laufzeitverhaltens eines Chatbots ... 288        9.4 ... Mehrsprachigkeit und Ermittlung der Sprache ... 298        9.5 ... Skill-Disambiguierung ... 303        9.6 ... Zusammenfassung ... 308 10.  Das Bot-Entwicklungsprojekt -- ein Praxisbeispiel ... 309        10.1 ... Von der Idee zum Chatbot-Projekt ... 310        10.2 ... Vor Beginn der Implementierung ... 317        10.3 ... Implementierung des Chatbots ... 331        10.4 ... Den fertigen Bot bereitstellen ... 347        10.5 ... Zusammenfassung ... 352 11.  Integration von SAP Conversational AI ... 353        11.1 ... Integration externer Ressourcen ... 354        11.2 ... Integration in die SAP Integration Suite ... 369        11.3 ... Integration ins SAP Fiori Launchpad ... 381        11.4 ... Berechtigungskonzept und Single Sign-on ... 391        11.5 ... Konfiguration eines SAP-S/HANA-Frontend-Servers ... 394        11.6 ... Automatisierte Tests der Enterprise Edition ... 396        11.7 ... Zusammenfassung ... 404 12.  Ausblick und zukünftige Technologien ... 405        12.1 ... Zukünftige Funktionalität von SAP Conversational AI ... 405        12.2 ... Trends im Bereich der künstlichen Intelligenz ... 408        12.3 ... Trends im Bereich Conversational User Experience ... 412        12.4 ... Zusammenfassung ... 414   A.  Glossar ... 419   B.  Literaturverzeichnis ... 421   C.  Das Autorenteam ... 425   Index ... 427

Regulärer Preis: 63,92 €
Produktbild für Objektorientierte Programmierung

Objektorientierte Programmierung

Komplexe Projekte solide strukturieren, tragfähige Designs erstellen, guten Code schreiben und wartbare Software liefern: Dafür brauchen Entwickler ein Repertoire, aus dem Objektorientierung nicht wegzudenken ist. In diesem Buch finden Sie alles, was Sie brauchen, um sich gründlich einzuarbeiten und die Prinzipien der OOP zur Basis Ihrer eigenen Arbeit zu machen. Die Autoren erläutern alle Themen anschaulich und verständlich anhand einer Vielzahl typischer Beispiele. Mit UML-Diagrammen und gut kommentierten Codebeispielen in den gängigsten objektorientierten Sprachen bringen sie Ihnen die Umsetzung nahe. Da so manches lehrreiche Detail erst auftaucht, wenn Sie konkrete Probleme lösen, ziehen sie viele praktische Anwendungsfälle heran und geben immer wieder Tipps, wie Sie bad smells vermeiden und sauberen Code schreiben. Anhand eines größeren Projekts bekommen Sie zudem einmal von Anfang bis Ende gezeigt, wie Sie objektorientierte Programmierung konsequent realisieren können. So profitieren Sie von der langjährigen Erfahrung der Autoren mit allen Aspekten der Entwicklung komplexer Software. Aus dem Inhalt: Prinzipien des objektorientierten EntwurfsKapselung von DatenPolymorphieStruktur objektorientierter SoftwareKlassen und PrototypenKonkrete und abstrakte DatentypenBeziehungen zwischen ObjektenKlassen von Werten und ObjektenVererbungsbeziehungenMehrfachvererbungStatische und dynamische KlassifizierungPersistenzErzeugung und Zerstörung von ObjektenObjekte in Aktion und in InteraktionObjekte als VertragspartnerModule als konfigurierbare und änderbare KomponentenMVCAspekte und ObjektorientierungBeispielprojektGlossar   Materialien zum Buch ... 12   1.  Einleitung ... 13        1.1 ... Was ist Objektorientierung? ... 13        1.2 ... Hallo liebe Zielgruppe ... 14        1.3 ... Was bietet dieses Buch (und was nicht)? ... 16        1.4 ... Warum überhaupt Objektorientierung? ... 22   2.  Die Basis der Objektorientierung ... 27        2.1 ... Die strukturierte Programmierung als Vorläufer der Objektorientierung ... 28        2.2 ... Die Kapselung von Daten ... 31        2.3 ... Polymorphie ... 33        2.4 ... Die Vererbung ... 34   3.  Die Prinzipien des objektorientierten Entwurfs ... 39        3.1 ... Prinzip 1: Prinzip einer einzigen Verantwortung ... 40        3.2 ... Prinzip 2: Trennung der Anliegen ... 46        3.3 ... Prinzip 3: Wiederholungen vermeiden ... 48        3.4 ... Prinzip 4: offen für Erweiterung, geschlossen für Änderung ... 51        3.5 ... Prinzip 5: Trennung der Schnittstelle von der Implementierung ... 54        3.6 ... Prinzip 6: Umkehr der Abhängigkeiten ... 57        3.7 ... Prinzip 7: mach es testbar ... 63   4.  Die Struktur objektorientierter Software ... 65        4.1 ... Die Basis von allem: das Objekt ... 65        4.2 ... Klassen: Objekte haben Gemeinsamkeiten ... 85        4.3 ... Beziehungen zwischen Objekten ... 120        4.4 ... Klassen von Werten und Klassen von Objekten ... 137   5.  Vererbung und Polymorphie ... 155        5.1 ... Die Vererbung der Spezifikation ... 155        5.2 ... Polymorphie und ihre Anwendungen ... 195        5.3 ... Die Vererbung der Implementierung ... 242        5.4 ... Mehrfachvererbung ... 265        5.5 ... Statische und dynamische Klassifizierung ... 295   6.  Persistenz ... 305        6.1 ... Serialisierung von Objekten ... 305        6.2 ... Speicherung in Datenbanken ... 306        6.3 ... Abbildung auf relationale Datenbanken ... 313        6.4 ... Normalisierung und Denormalisierung ... 326   7.  Abläufe in einem objektorientierten System ... 343        7.1 ... Erzeugung von Objekten mit Konstruktoren und Prototypen ... 344        7.2 ... Fabriken als Abstraktionsebene für die Objekterzeugung ... 355        7.3 ... Objekte löschen ... 404        7.4 ... Objekte in Aktion und in Interaktion ... 419        7.5 ... Kontrakte: Objekte als Vertragspartner ... 463        7.6 ... Exceptions: wenn der Kontrakt nicht eingehalten werden kann ... 480   8.  Module und Architektur ... 511        8.1 ... Module als konfigurierbare und änderbare Komponenten ... 511        8.2 ... Die Präsentationsschicht: Model, View, Controller (MVC) ... 520   9.  Aspekte und Objektorientierung ... 533        9.1 ... Trennung der Anliegen ... 533        9.2 ... Aspektorientiertes Programmieren ... 545        9.3 ... Anwendungen der Aspektorientierung ... 556        9.4 ... Annotations ... 569 10.  Objektorientierung am Beispiel: eine Webapplikation in JavaScript ... 579        10.1 ... OOP in JavaScript ... 581        10.2 ... Die Anwendung im Überblick ... 589        10.3 ... Das Framework ... 594        10.4 ... Die Applikation ... 612        10.5 ... Ein Fazit -- und was noch übrig bleibt ... 636   Anhang ... 639   A.  Verwendete Programmiersprachen ... 641   B.  Glossar ... 661   C.  Die Autoren ... 675   Index ... 677

Regulärer Preis: 49,90 €
Produktbild für Der Computer erscheint im Holozän

Der Computer erscheint im Holozän

Die sieben Weltwunder wurden bereits in der Antike beschrieben, etwa zur selben Zeit wie die mechanische Rechenhilfe Abacus, ein Zählrahmen mit Holz- oder Glasperlen. Dieses Buch beschreibt und diskutiert die sieben Weltwunder der IT, ohne die unsere digitale Wirtschaft und Gesellschaft kaum überlebensfähig scheint: Computermaus, Datenbanken, Kryptografie, Graphgrammatiken, Internet, Blockchain und Soft Computing.Jedes Weltwunder der IT wird kurz charakterisiert, bevor Anwendungsoptionen für Wirtschaft und Gesellschaft exemplarisch aufgezeigt und gewürdigt werden.Das Werk richtet sich an alle, die sich mit der digitalen Transformation auseinandersetzen. Es soll helfen, digitale Entwicklungen im eigenen Unternehmen, in der Verwaltung oder im öffentlichen wie im privaten Leben zu positionieren und zu reflektieren.ANDREAS MEIER hat Musik an der Musikakademie in Wien und Mathematik an der ETH in Zürich studiert, wo er doktorierte und habilitierte. Er arbeitete in internationalen Forschungsinstitutionen und Organisationen und war an der Universität Fribourg, Schweiz für eBusiness und eCommerce verantwortlich. Er gründete und leitete das Forschungszentrum Fuzzy Management Methods (FMsquare.org).FABRICE TSCHUDI hat Kommunikationswissenschaften an der Universität Fribourg und Wirtschaftsinformatik an der Universität Bern studiert. Er setzt sich für eine Vision von digitalen Systemen ein, die zu einer lebensdienlichen Wirtschaft und Gesellschaft im Sinne von nachhaltigem Wohlergehen beitragen. Er begleitet Organisationen auf dem Weg zu „wertvoller Digitalisierung“ und ist überzeugt, dass partizipative Lern- und Arbeitsformate hierfür ein zentraler Erfolgsfaktor sind.De septem mundi miraculis - Vom Abacus zur digitalen Rechenmaschine - Die 7 Weltwunder der IT - Wo führt die Reise hin? - Literatur

Regulärer Preis: 49,99 €
Produktbild für Beginning Rust Programming

Beginning Rust Programming

QUICKLY LEARN THE ROPES WITH THE RUST PROGRAMMING LANGUAGE USING THIS PRACTICAL, STEP-BY-STEP GUIDEIn Beginning Rust Programming, accomplished programmer and author Ric Messier delivers a highly practical, real-world guide to coding with Rust. Avoiding dry, theoretical content and “Hello, world”-type tutorials of questionable utility, the book dives immediately into functional Rust programming that takes advantage of the language’s blazing speed and memory efficiency.Designed from the ground up to give you a running start to using the multiparadigm system programming language, this book will teach you to:* Solve real-world computer science problems of practical importance * Use Rust’s rich type system and ownership model to guarantee memory-safety and thread-safety * Integrate Rust with other programming languages and use it for embedded devices Perfect for programmers with some experience in other languages, like C or C++, Beginning Rust Programming is also a great pick for students new to programming and seeking a user-friendly and robust language with which to start their coding career.ABOUT THE AUTHORRIC MESSIER is Senior Information Security Consultant with FireEye Mandiant. He is an author, consultant, and educator who holds GCIH, GSEC, CEH, and CISSP certifications and has published several books on information security and digital forensics. He is familiar with a wide variety of languages, including BASIC, Pascal, C, C++, C#, Rexx, Perl, Python, Java, Go, Swift, and Objective-C. VISIT US AT WROX.COM FOR FREE CODE SAMPLES.Introduction xixCHAPTER 1: GAME OF LIFE: THE BASICS 1Game of Life: The Program 2Starting with Cargo 4Putting the Pieces Together 5Bringing In External Functionality 5Namespaces 6Generating the Game Grid 7Dissecting Main 8Defining Functions 8Defining Variables 9Datatypes 11Arrays 12Control Structures 14Looking at More Function Functions 16Returning Values 16Passing Parameters 18Scope 21Compiling Programs 22Summary 24Exercises 25Additional Resources 25CHAPTER 2: EXTENDED LIFE 27Understanding Ownership 28Extending Life 30Adding Modules 32Working with Command-Line Arguments 34Option Types 36Reading from Files 39Extracting Values 41Populating from the Vector 42Outputting to the Terminal 43Using Colors 44Printing Generations 44Summary 46Exercises 48Additional Resources 48CHAPTER 3: BUILDING A LIBRARY 49References 50First Pass 53Traits and Implementations 56Self-Identification 60The Rest 60Second Pass 62The Driver 65Summary 67Exercises 69Additional Resources 69CHAPTER 4: HANGMAN 71Our Data 74The Traits 77Implementations 79Using the Option Enum 82Finishing Up the Implementation 83Reading Files and Selecting Words 84Handling Errors Concisely 85Generics and Bounds 87A Vector of Lines 88The Rest of the Story 90Initialization 91Playing the Game 92Summary 94Exercises 95Additional Resources 95CHAPTER 5: IN CONCURRENCE 97The Dining Philosophers 98Mutexes and Semaphores 101Interprocess Communications 103The Main Event 106Unix Sockets 107File and Directory Handling 109Closures 112Threading in the Main 114Creating Streams 115Cryptographic Hashing 116Creating Threads 117Summary 118Exercises 119Additional Resources 119CHAPTER 6: CLIENTS AND SERVERS 121Planning 123Network Programming 125Programming Sockets 128Rust TCP Server 131Handling Requests 134Operating System Calls 137Summary 139Exercises 140Additional Resources 140CHAPTER 7: CLIENT-SIDE APPLICATIONS 141Encryption 142Encryption Algorithms 144Going Hybrid 145Encryption Algorithms 147Transport Layer Security (TLS) 147TLS Server 151Remote Access Client 154Creating the Connection 156Validating Input 157Regular Expressions 157The Final Function 159Summary 163Exercises 164Additional Resources 164CHAPTER 8: GOING RELATIONAL 165Application Architectures 166n-Tier Applications 167Microservices 169Model-View-Controller 171Databases 172Structured Query Language 172Server or Embedded 175Accessing Databases 176Writing a Database Program 177Main and Modules 178Database Functions 183Adding Records 184Listing Records 186Summary 189Exercises 190Additional Resources 190CHAPTER 9: NO(SQL) GOING 191Assertions 192Design by Contract 195NoSQL 198Working with MongoDB 202Inserting Data 202Reading in Data from a File 206Populating the Database 207Retrieving Values 209Summary 213Exercises 214Additional Resources 214CHAPTER 10: WEB COMMUNICATIONS 215Style Guides 216Hypertext Transfer Protocol 219Programmatic Communication 222Web Communication Over TLS 227Client Communication 229Jumping Ahead 232Jumping Back 237Summary 238Exercises 239Additional Resources 240CHAPTER 11: WEB SERVER 241Offensive vs. Defensive Programming 242Web Application Communications 245Web Application Parameters 245Asynchronous JavaScript and XML 248Representational State Transfer 249APIs in Node.js and Python 250API Server in Rust 252Rust Rocket 255Summary 262Exercises 262Additional Resources 263CHAPTER 12: GETTING TO THE SYSTEM 265Extending Functionality 266Windows Registry 272Programmatic Access to the Registry 275Using Rust to Access the Registry 277System Information with Rust 282Persistence (for Fun) 287Summary 289Exercises 290Additional Resources 290CHAPTER 13: DEVICE PROGRAMMING 291Logging 292Using syslog 292Using Windows Event Logs 299Working with Raspberry Pi 305Lighting Lights 310Reading GPIO 315Summary 318Exercises 319Additional Resources 319CHAPTER 14: COLLECTING STUFF 321Arrays and Vectors 322Linked Lists 329Stacks 333Queues 336Sorting 337Search Trees 340Summary 345Exercises 346Additional Resources 346CHAPTER 15: ODDS AND SODS 347Unit Testing 348Testing Types 350Test Plans 351Unit Tests 353Recursion 360Machine Learning 364Chatbots 366Neural Networks 369Summary 371Exercises 373Additional Resources 373Index 375

Regulärer Preis: 32,99 €
Produktbild für Python Challenge

Python Challenge

Ihr persönlicher Python-Coach: Fit für Prüfung, Job-Interview und Praxis – mit 100 Aufgaben und MusterlösungenMit 100 Übungsaufgaben und Programmierpuzzles inklusive Lösungen zum Knobeln und Erweitern Ihrer Kenntnisse bietet Ihnen die »Python Challenge« ein kurzweiliges Lernen, eine fundierte Vorbereitung auf die nächste Prüfung oder ein Jobinterview. Dabei werden viele praxisrelevante Themengebiete wie Strings, Datenstrukturen, Rekursion, Arrays usw. berücksichtigt.Jedes Themengebiet wird in einem eigenen Kapitel behandelt, wobei zunächst kurz auf die Grundlagen eingegangen wird. Danach folgen rund 10 bis 15 Übungsaufgaben verschiedener Schwierigkeitsgrade.So lassen sich die Python-Programmierkenntnisse effektiv verbessern. Dabei helfen insbesondere detaillierte Musterlösungen inklusive der genutzten Algorithmen zu allen Aufgaben. Ebenso werden von Michael Inden alternative Lösungswege beschrieben, aber auch mögliche Fallstricke und typische Fehler im Python-Code analysiert.Abgerundet wird das Buch durch drei Anhänge. Einer beschäftigt sich mit dem Python-Kommandozeileninterpreter, der zum Ausprobieren der Codeschnipsel und Beispiele des Buchs oftmals hilfreich ist. Der zweite gibt einen Überblick über Pytest zum Unit Testen und Prüfen der Lösungen. Der dritte erläutert die O-Notation zur Abschätzung der Performance.Leseproben:Einleitung — DownloadInhaltsverzeichnis — DownloadStrings (Auszug) — DownloadSuchen und Sortieren (Auszug) — DownloadZusatzmaterial:Python_Challenge_Import — DownloadPythonChallenge — Download

Regulärer Preis: 34,90 €
Produktbild für MATLAB Recipes

MATLAB Recipes

Learn from state-of-the-art examples in robotics, motors, detection filters, chemical processes, aircraft, and spacecraft. With this book you will review contemporary MATLAB coding including the latest MATLAB language features and use MATLAB as a software development environment including code organization, GUI development, and algorithm design and testing.Features now covered include the new graph and digraph classes for charts and networks; interactive documents that combine text, code, and output; a new development environment for building apps; locally defined functions in scripts; automatic expansion of dimensions; tall arrays for big data; the new string type; new functions to encode/decode JSON; handling non-English languages; the new class architecture; the Mocking framework; an engine API for Java; the cloud-based MATLAB desktop; the memoize function; and heatmap charts._MATLAB Recipes: A Problem-Solution Approach, Second Edition__ _provides practical, hands-on code snippets and guidance for using MATLAB to build a body of code you can turn to time and again for solving technical problems in your work. Develop algorithms, test them, visualize the results, and pass the code along to others to create a functional code base for your firm.WHAT YOU WILL LEARN* Get up to date with the latest MATLAB up to and including MATLAB 2020b* Code in MATLAB* Write applications in MATLAB* Build your own toolbox of MATLAB code to increase your efficiency and effectivenessWHO THIS BOOK IS FOREngineers, data scientists, and students wanting a book rich in examples using MATLAB.MICHAEL PALUSZEK is the co-author of MATLAB Recipes published by Apress. He is President of Princeton Satellite Systems, Inc. (PSS) in Plainsboro, New Jersey. Mr. Paluszek founded PSS in 1992 to provide aerospace consulting services. He used MATLAB to develop the control system and simulation for the Indostar-1 geosynschronous communications satellite, resulting in the launch of PSS's first commercial MATLAB toolbox, the Spacecraft Control Toolbox, in 1995. Since then he has developed toolboxes and software packages for aircraft, submarines, robotics, and fusion propulsion, resulting in PSS's current extensive product line. He is currently leading a US Army research contract for precision attitude control of small satellites and working with the Princeton Plasma Physics Laboratory on a compact nuclear fusion reactor for energy generation and propulsion.Prior to founding PSS, Mr. Paluszek was an engineer at GE Astro Space in East Windsor, NJ. At GE he designed the Global Geospace Science Polar despun platform control system and led the design of the GPS IIR attitude control system, the Inmarsat-3 attitude control systems and the Mars Observer delta-V control system, leveraging MATLAB for control design. Mr. Paluszek also worked on the attitude determination system for the DMSP meteorological satellites. Mr. Paluszek flew communication satellites on over twelve satellite launches, including the GSTAR III recovery, the first transfer of a satellite to an operational orbit using electric thrusters. At Draper Laboratory Mr. Paluszek worked on the Space Shuttle, space station and submarine navigation. His space station work included designing of control moment gyro based control systems for attitude control. Mr. Paluszek received his bachelors in electrical engineering, and master's and engineer’s degrees in aeronautics and astronautics from the Massachusetts Institute of Technology. He is author of numerous papers and has over a dozen US patents.STEPHANIE THOMAS is the co-author of MATLAB Recipes, published by Apress. She received her bachelor's and master's degrees in aeronautics and astronautics from the Massachusetts Institute of Technology in 1999 and 2001. Ms. Thomas was introduced to PSS's Spacecraft Control Toolbox for MATLAB during a summer internship in 1996 and has been using MATLAB for aerospace analysis ever since. She built a simulation of a lunar transfer vehicle in C++, LunarPilot, during the same internship. In her nearly 20 years of MATLAB experience, she has developed many software tools including the Solar Sail Module for the Spacecraft Control Toolbox; a proximity satellite operations toolbox for the US Air Force; collision monitoring Simulink blocks for the Prisma satellite mission; and launch vehicle analysis tools in MATLAB and Java, to name a few. She has developed novel methods for space situation assessment such as a numeric approach to assessing the general rendezvous problem between any two satellites implemented in both MATLAB and C++. Ms. Thomas has contributed to PSS's Attitude and Orbit Control textbook, featuring examples using the Spacecraft Control Toolbox, and written many software user guides. She has conducted SCT training for engineers from diverse locales such as Australia, Canada, Brazil, and Thailand and has performed MATLAB consulting for NASA, the US Air Force, and the European Space Agency.PART I CODING IN MATLAB1 CODING HANDBOOK2 MATLAB STYLE3 VISUALIZATION4 INTERACTIVE GRAPHICS5 TESTING AND DEBUGGING6 CLASSESPART II APPLICATIONS7 THE DOUBLE INTEGRATOR8 ROBOTICS9 ELECTRIC MOTORS10 FAULT DETECTION11 CHEMICAL PROCESSES12 AIRCRAFT13 SPACECRAFT14 AUTOMOBILES

Regulärer Preis: 62,99 €
Produktbild für JavaScript für Ungeduldige

JavaScript für Ungeduldige

Der schnelle Einstieg in modernes JavaScript.»JavaScript für Ungeduldige« ist ein vollständiger und dennoch prägnanter Leitfaden für modernes JavaScript, bis zu ES2020. Wenn Sie mit Sprachen wie Java, C#, C oder C++ umgehen können, werden Sie mit diesem Buch schnell mit JavaScript produktiv arbeiten können, ohne sich lange mit veralteten Konzepten rumschlagen zu müssen.Cay S. Horstmann deckt alles ab, was Sie über JavaScript wissen müssen, und liefert Inhalte in kleinen Häppchen, die das Lernen angenehm machen. Die praktischen Einblicke und praxisnahen Codebeispiele helfen Ihnen, die Vorteile von modernem JavaScript zu nutzen, und dabei häufige Fallstricke und veraltete Funktionen zu meiden.Das bietet »JavaScript für Ungeduldige«:Sie lernen schnell die Grundlagen von modernem JavaScript Sie vermeiden veraltete Techniken, die unnötige Komplexität und Risiken mitbringen Sie machen das Beste aus funktionalen, objektorientierten und asynchronen Programmierstilen Sie verwenden Module, um komplexe Programme effizient zu organisieren und auszuführen Sie verstehen fortgeschrittene JavaScript-Techniken, wie Metaprogrammierung und Generatoren Sie erfahren, wie Sie Ihren JavaScript-Code mit TypeScript sicherer machen

Regulärer Preis: 32,90 €
Produktbild für Beginning Mathematica and Wolfram for Data Science

Beginning Mathematica and Wolfram for Data Science

Enhance your data science programming and analysis with the Wolfram programming language and Mathematica, an applied mathematical tools suite. The book will introduce you to the Wolfram programming language and its syntax, as well as the structure of Mathematica and its advantages and disadvantages.You’ll see how to use the Wolfram language for data science from a theoretical and practical perspective. Learning this language makes your data science code better because it is very intuitive and comes with pre-existing functions that can provide a welcoming experience for those who use other programming languages.You’ll cover how to use Mathematica where data management and mathematical computations are needed. Along the way you’ll appreciate how Mathematica provides a complete integrated platform: it has a mixed syntax as a result of its symbolic and numerical calculations allowing it to carry out various processes without superfluous lines of code. You’ll learn to use its notebooks as a standard format, which also serves to create detailed reports of the processes carried out.WHAT YOU WILL LEARN* Use Mathematica to explore data and describe the concepts using Wolfram language commands* Create datasets, work with data frames, and create tables* Import, export, analyze, and visualize data* Work with the Wolfram data repository * Build reports on the analysis* Use Mathematica for machine learning, with different algorithms, including linear, multiple, and logistic regression; decision trees; and data clusteringWHO THIS BOOK IS FORData scientists new to using Wolfram and Mathematica as a language/tool to program in. Programmers should have some prior programming experience, but can be new to the Wolfram language.JALIL VILLALOBOS ALVA is a Wolfram language programmer and Mathematica user. He graduated with a degree in engineering physics from the Universidad Iberoamericana in Mexico City. His research background comprises quantum physics, bionformatics, proteomics, and protein design. His academic interests cover the topics of quantum technology, bioinformatics, machine learning, stochastic processes, and space engineering. During his idle hours he likes to play soccer, swim, and listen to music.1. Introductiona. What is Data science?b. Data science and Statisticsc. Data scientist2. Introduction to Mathematicaa. Why Mathematica?b. Wolfram Languagec. Structure of Mathematicad. Notebookse. How Mathematica worksf. Input Form3. Data Manipulationa. Listsb. Lists of objectsc. Manipulating listsd. Operations with listse. Indexed Tablesf. Working with data framesg. Datasets4. Data Analysisa. Data Import and exportb. Wolfram data repositoryc. Statistical Analysisd. Visualizing datae. Making reports5. Machine learning with Wolfram Languagea. Linear Regressionb. Multiple Regressionc. Logistic Regressiond. Decision Tresse. Data Clustering6. Neural networks with Wolfram Languagea. Network Data and structureb. Network Layersc. Perceptron Modeld. Multi-layer Neural Networke. Using preconstructed nets from Wolfram Neural net repositoryf. LeNet Neural net for text recognition

Regulärer Preis: 56,99 €
Produktbild für Modern C for Absolute Beginners

Modern C for Absolute Beginners

Learn the C programming language easily and in a straightforward way. This book teaches the basics of C, the C Standard Library, and modern C standards. No previous programming experience is required.C is a language that is as popular today as it was decades ago. C covers a wide variety of domains. It can be used to program a microcontroller, or to develop an entire operating system. This book is an effort to introduce the reader to the C programming language in a concise and easy to follow manner.The author takes you through the C programming language, the Standard Library, and the C standards basics. Each chapter is the right balance of theory and code examples.After reading and using this book, you'll have the essentials to start programming in modern C.WHAT YOU WILL LEARN* The C programming language fundamentals* The C Standard Library fundamentals* New C Standards features* The basics of types, operators, statements, arrays, functions, and structs* The basics of pointers, memory allocation, and memory manipulation* Take advantage of best practices in CWHO THIS BOOK IS FORBeginner or novice programmers who wish to learn the C programming language. No prior programming experience is required.SLOBODAN DMITROVIĆ is a software consultant, trainer, and entrepreneur. He is the CEO and founder of “Clear Programming Paradigm”, an LLC that provides outsourcing and training services. Slobodan’s ability to summarize complex topics and provide insightful training made him a sought after consultant for the automotive, fintech, and other industries. Slobodan has a strong interest in C, C++, software architecture, training, and R&D.Part I: The C Programming LanguageChapter 1: IntroductionChapter 2: Our First ProgramChapter 3: Types and DeclarationsChapter 4: ExercisesChapter 5: OperatorsChapter 6: ExpressionsChapter 7: StatementsChapter 8: ExercisesChapter 9: ArraysChapter 10: PointersChapter 11: Command-line ArgumentsChapter 12: ExercisesChapter 13: FunctionsChapter 14: ExercisesChapter 15: StructuresChapter 16: UnionsChapter 17: Conditional ExpressionChapter 18: TypedefChapter 19: Const QualifierChapter 20: EnumerationsChapter 21: Function PointersChapter 22: ExercisesChapter 23: PreprocessorChapter 24: ExerciesChapter 25: Dynamic Memory AllocationChapter 26: Storage and ScopeChapter 27: ExercisesChapter 28: Standard Input and OutputChapter 29: File Input and OutputChapter 30: ExercisesChapter 31: Header and Source FilesPart II: The C Standard LibraryChapter 32: Introduction to C Standard LibraryPart III: Modern C StandardsChapter 33: Introduction to C 11 StandardsChapter 34: The C 17 StandardChapter 35: The Upcoming C2X StandardPart IV: Dos and Don'tsChapter 36: Do Not Use the gets FunctionChapter 37: Initialize Variables Before Using ThemChapter 38: Do Not Read Out of BoundsChapter 39: Do Not Free the Allocated Memory TwiceChapter 40: Do Not Cast the Result of mallocChapter 41: Do Not Overflow a Signed IntegerChapter 42: Cast a Pointer to void* When Printing Through printfChapter 43: Do Not Divide by ZeroChapter 44: Where to Use Pointers?Chapter 45: Prefer Functions to Function-like MacrosChapter 46: Static Global NamesChapter 47: What to Put in Header Files?Part V: AppendicesAppendix A: LinkageAppendix B: Time and DateAppendix C: Bitwise OperatorsAppendix D: Numeric LimitsAppendix E: Summary and Advice

Regulärer Preis: 56,99 €
Produktbild für Mach was mit Python & Raspberry Pi!

Mach was mit Python & Raspberry Pi!

Spielerisch programmieren lernen und mit DIY-Projekten durchstarten. Entwickle deine Python-Anwendungen für den Raspberry Pi!Der Raspberry Pi ist ein preiswerter, leistungsfähiger Mini-Computer. Python ist eine leicht erlernbare, vielseitig einsetzbare Programmiersprache. Im Doppelpack sind sie die perfekte Spielwiese für alle Elektronik- und Programmierneulinge, die darauf brennen, ihre DIY-Projekte in die Tat umzusetzen.Dieses Buch führt dich auf spielerische Weise in die Python-Programmierung für den Raspberry Pi ein. Zahlreiche Beispielprojekte versetzen dich Schritt für Schritt in die Lage, deine eigenen Anwendungen für den RasPi zu entwickeln.Folgende Themen erwarten dich:Raspbian- und Python 3-Installation, Raspberry Pi-FernsteuerungEntwicklungsumgebungen im Einsatz: IDLE, Thonny und GeanyGrundlagen der Python-Programmierung: Abfragen, Schleifen, Funktionen, Variablen, Debugging&Co.Python-Anwendungen für den Raspberry Pi: von der Konsolen- und GUI-Programmierung über Grafik- und Soundanwendungen bis zur App- und WebprogrammierungDie Beispielprojekte aus dem Buch: Zahlenratespiel, Vokabeltrainer, Analoguhr, Taschenrechner, Spieleprogrammierung, Webradio, To-do-App und Wetter-AppLeseprobe (PDF-Link)

Regulärer Preis: 29,99 €