Computer programming / software engineering Books
Springer Nature Switzerland AG Theoretical Aspects of Computing – ICTAC 2021: 18th International Colloquium, Virtual Event, Nur-Sultan, Kazakhstan, September 8–10, 2021, Proceedings
Book SynopsisThis book constitutes the proceedings of the 18th International Colloquium on Theoretical Aspects of Computing, ICTAC 2021, organized by the Nazarbayev University, Nur-Sultan, Kazakhstan. The event was supposed to take place in Nur-Sultan, Kazakhstan, but due to COVID-19 pandemic is was held virtually. The 15 papers presented in this volume were carefully reviewed and selected from 40 submissions. The book also contains one invited talk in full paper length. The book deals with challenges in both theoretical aspects of computing and the exploitation of theory through methods and tools for system development. The 20 full papers presented in this volume were carefully reviewed and selected from 55 submissions. The papers cover a wide variety of topics, including: getting the best price for selling your personal data; attacking Bitcoin; optimizing various forms of model checking; synthesizing and learning algorithms; formalizing and verifying contracts, languages, and compilers; analyzing the correctness and complexity of programs and distributed systems; and finding connections from proofs in propositional logic to quantum programming languages.Table of ContentsConcurrency and Objects Matter! Disentangling the Fabric of Real Operational Processes to Create Digital Twins.- Qualitative–Quantitative Reasoning: thinking informally about formal things.- Model Checking and Machine Learning Joining Forces in Uppaal.- Databases and Distributed Transactions Some Aspects of the Database Resilience.- On the Correctness Problem for Serializability.- Efficient Model Checking Methods A Set Automaton to Locate All Pattern Matches in a Term.- Groote Accelerating SpMV Multiplication in Probabilistic Model Checkers using GPUs.- A divide & conquer approach to conditional stable model checking.- Formalization and Verification in Coq and Isabelle Certifying Choreography Compilation.- Mechanically Verified Theory of Contracts.- A Complete Semantics of K and Its Translation to Isabelle.- Quantum Computing A New Connective in Natural Deduction, and its Application to Quantum Computing.- Security and Privacy An Incentive Mechanism for Trading Personal Data in Data Markets.- Palamidessi Assessing Security of Crypto-Currencies with Attack-Defense Trees: Proof of Concept and Future Directions.- Compositional Analysis of Protocol Equivalence in the Applied π-calculus using Quasi-Open Bisimilarity.- Card-based Cryptographic Protocols with a Standard Deck of Cards Using Private Operations.- Ono Normalising Lustre Preserves Security.- Synthesis and Learning Learning Probabilistic Automata using Residuals.- Deductive Synthesis of Sorting Algorithms in Theorema.- Reactive Synthesis from Visibly Register Pushdown Automata.- Systems Calculi and Analysis ComplexityParser: an automatic tool for certifying poly-time complexity of Java programs.- A Calculus for Attribute-based Memory Updates.- A Proof Method for Local Sufficient Completeness of Term Rewriting Systems.
£64.99
£38.70
De Gruyter AutomationML: The Industrial Cookbook
Book SynopsisThis book provides a comprehensive in-depth look into the practical application of AutomationML Edition 2 from an industrial perspective. It is a cookbook for advanced users and describes re-usable pattern solutions for a variety of industrial applications and how to implement it in software. Just to name some: AutomationML modelling of AAS, MTP, SCD, OPC UA, Automation Components, Automation Projects, drive configurations, requirement models, communication systems, electrical interfaces and cables, or semantic integration aspects as eClass integration or handling of semantic heterogeneity. This book guides through the universe of AutomationML from industrial perspective. It is written by AutomationML experts that have industrially implemented AutomationML in pattern solutions for a large variety of applications. This book is structured into three major parts. • Part I: software implementation for developers • Part II: re-usable industrial pattern solutions and domain models • Part III: outlook into future AutomationML applications Additional material to the book and more information about AutomationML on the website: https://www.automationml.org/about-automationml/publications/amlbook/
£84.55
De Gruyter Numerical Methods with Python: for the Sciences
Book SynopsisIntroduces students to appropriate use of computer programming within the scientific disciplines using Python. Discusses several common applications of programming and implementation using real world examples and hands on programming exercises. Students learn how to model situations such as image recognition, medical diagnosis, spread of disease, and others. The text could be used by students and lecturers for courses in Python, Numerical Methods, or as a first course in Data Science.
£56.52
De Gruyter Software Project Management: With PMI, IEEE-CS,
Book SynopsisSoftware Project Management (SPM) differs from the Traditional Project Management (PM) approaches in that Software Engineering requires multiple rounds of Software Testing, and Updating in accordance with their Testing results and their customer’s feedback. Thus, SPM introduces unique life cycle processes.This book presents an introduction and a critical analysis of the main Software Project Management Frameworks, and offers the author’s original approach toSPM as developed by him over years of professional and teaching experience in the Academia and the IT/Software Industry. It also provides Executive Summaries of the Project Management and Software Project Management Perspectives offered by the Project Management Institute (PMI), the IEEE-Computer Society (IEEE-CS), and the SCRUM Project Management Bodies such as the SCRUMstudy.
£60.80
tredition Python verstehen leicht gemacht
£17.95
tredition Python verstehen leicht gemacht
£24.99
tredition Die Erfindung des Roboters
£17.95
Azhar Sario Hungary JavaScript
£17.74
tredition Debugging Your Sanity
£17.95
tredition 404
£17.95
Wiley-VCH Verlag GmbH C++ programmieren lernen für Dummies
Book SynopsisStephen R. Davis fängt von vorn an: Wie arbeitet ein Programm? Wie installiert man die Programmierumgebung und den Compiler? Und was ist das überhaupt? Als nächstes lernen Sie grundlegende Programmiertechniken kennen: Variablendeklaration, Schleifen, Funktionen und anderes mehr. Fünf Kapitel widmen sich den unterschiedlichen Variablentypen, sodass Sie für die berühmten C++-Zeiger gut gerüstet sind. War gar nicht schwer? Es folgt eine Einführung in das objektorientierte Programmieren, und bevor Sie es sich versehen, liegen auch die Vererbung von Klassen, das Überladen von Operatoren und der Ausnahmemechanismus in Ihrer Reichweite. Mit den Programmbeispielen zum Herunterladen können Sie das Gelernte direkt ausprobieren.Table of ContentsÜber den Autor 9 Widmung 10 Einführung 23 Über dieses Buch 23 Törichte Annahmen über den Leser 24 Wie dieses Buch organisiert ist 25 Teil I: Programmieren in C++ – die ersten Schritte 25 Teil II: Ein Programm schreiben: Entscheidungen, Entscheidungen 25 Teil III: Prozedural programmieren 25 Teil IV: Datenstrukturen 25 Teil V: Objektorientierte Programmierung 26 Teil VI: Für Fortgeschrittene 26 Teil VII: Der Top-Ten-Teil 26 Symbole in diesem Buch 26 Wie es weitergeht 27 Teil I Programmieren in C++ – die ersten Schritte 29 Kapitel 1 Was ist ein Programm? 31 Worin unterscheidet sich mein Sohn von einem Computer? 31 Einen »menschlichen Computer« programmieren 33 Den Algorithmus erstellen 33 Die Entwicklung der Reifenwechsel-Sprache 34 Das Programm erstellen 34 Computerprozessoren 38 Computersprachen 38 Höhere Sprachen 40 Die Sprache C++ 40 Kapitel 2 Code::Blocks installieren 43 Der Kompilierungsvorgang 43 Code::Blocks installieren 45 Installation unter Windows 45 Installation unter Ubuntu Linux 48 Installation unter Mac OS 50 Code::Blocks einrichten 54 Die Code::Blocks-Installation testen 57 Das Projekt anlegen 57 Ihr Standardprojekt testen 62 Kapitel 3 Ihr erstes Programm 65 Ein neues Projekt anlegen 65 Dateinamenerweiterungen 67 Die Eingabe Ihres Programms 69 Das Programm erstellen 71 Was alles schiefgehen kann 71 Falsch geschriebene Befehle 71 Fehlendes Semikolon 73 Die Beispieldateien verwenden 74 Das Programm ausführen 75 Wie das Programm funktioniert 75 Die Vorlage 76 Das Conversion-Programm 77 Teil II Ein Programm schreiben: Entscheidungen, Entscheidungen 79 Kapitel 4 Integer-Ausdrücke – für ganze Zahlen 81 Variablen deklarieren 81 Variablennamen 82 Einer Variablen einen Wert zuweisen 83 Eine Variable bei der Deklaration initialisieren 83 Ganzzahlige Konstanten 84 Ausdrücke 85 Binäre Operatoren 86 Zusammengesetzte Ausdrücke auflösen 87 Unäre Operatoren 88 Die speziellen Zuweisungsoperatoren 90 Kapitel 5 Zeichenausdrücke 93 Character-Variablen definieren 93 Zeichen codieren 93 Beispiel für die Zeichencodierung 96 Zeichenketten codieren 98 Sonderzeichen-Konstanten 98 Kapitel 6 Entscheidungen, Entscheidungen! 101 Die if-Anweisung 101 Vergleichsoperatoren 102 Geschweifte Klammern sind kein Luxus 104 Und andernfalls? 106 Verschachtelte if-Anweisungen 108 Zusammengesetzte bedingte Ausdrücke 111 Kapitel 7 Ausführungspfade wechseln 113 Mit der switch-Anweisung den Programmablauf steuern 113 Durchgerasselt: Habe ich es kaputtgemacht? 116 Implementierung eines einfachen Taschenrechners mit der switch-Anweisung 117 Kapitel 8 Programme debuggen, Teil I 121 Fehlertypen identifizieren 121 Fehler vermeiden 122 Codieren mit Stil 122 Namenskonventionen für Variablen festlegen 123 Den ersten Fehler finden – mit ein bisschen Unterstützung 124 Den Laufzeitfehler finden 125 Testdaten formulieren 125 Tests durchführen 126 Sehen wir nach, was das Programm macht 126 Teil III Prozedural programmieren 129 Kapitel 9 while – ein ewiger Kreislauf 131 while-Schleifen 131 Aus einer Schleife ausbrechen 134 Verschachtelte Schleifen 137 Kapitel 10 Weiter mit for-Schleifen 143 Die vier Teile jeder Schleife 143 Wir betrachten ein Beispiel 145 Mit dem Komma-Operator mehr erledigen 146 Kapitel 11 Funktionen 151 Aufgaben in Funktionen zerlegen 151 Die Arbeitsweise von Funktionen verstehen 152 Eine Funktion schreiben und verwenden 153 Dinge zurückgeben 154 Ein Beispiel 155 An Funktionen Argumente übergeben 158 Funktion mit Argumenten 158 Funktionen mit mehreren Argumenten 160 main() 161 Funktionsprototyp-Deklarationen definieren 161 Kapitel 12 Programme in Module unterteilen 165 Programme aufsplitten 165 Teilen ist gar nicht so schwer 166 Factorial.cpp erstellen 166 Eine #include-Datei erstellen 169 #include-Dateien einbinden 171 main.cpp erstellen 172 Das Ergebnis erstellen 174 Verwendung der C++-Standardbibliothek 174 Gültigkeitsbereiche von Variablen 175 Kapitel 13 Programme debuggen, Teil 2 177 Debugging eines Programms mit Rechenschwäche 177 Einheitentests durchführen 179 Eine Funktion für Tests ausstatten 180 Zurück zum Einheitentest 184 Teil IV Datenstrukturen 187 Kapitel 14 Andere numerische Variablentypen 189 Die Grenzen von Integern in C++ 189 Integer-Abrundung 189 Begrenzter Wertebereich 190 Ein »doppelter« Typ für reelle Zahlen 191 Eine Lösung für das Abrundungsproblem 191 Wenn ein Integer kein Integer ist 192 Die Grenzen eines double erkennen 193 Variablengröße – die lange und die kurze Form 195 Wie weit reichen Zahlen? 197 Konstantentypen 198 Funktionen unterschiedliche Typen übergeben 199 Funktionsnamen überladen 199 Gemischtes Überladen 200 Kapitel 15 Arrays 203 Was ist ein Array? 203 Ein Array deklarieren 204 Array-Elemente über einen Index ansprechen 204 Ein Beispiel 206 Ein Array initialisieren 208 Kapitel 16 Arrays mit Charakter 211 Das ASCII-Zero-Character-Array 211 Ein ASCIIZ-Array deklarieren und initialisieren 212 Ein Beispiel 213 Ein detaillierteres Beispiel 215 Hackerabwehr 218 Muss ich das wirklich alles machen? 220 Kapitel 17 Zeiger in C++ 223 Was ist ein Zeiger? 223 Einen Zeiger deklarieren 224 Einer Funktion Argumente übergeben 226 Argumente als Wert übergeben 226 Argumente als Referenz übergeben 229 Das große Ganze 231 Typen von Referenzargumenten 233 Speicherstapel 233 Brauchen Sie wirklich ein neues Schlüsselwort? 234 Vergessen Sie nicht, zum Schluss wieder aufzuräumen! 235 Ein Beispiel 236 Kapitel 18 C++-Zeiger – auf den zweiten Blick 239 Zeiger und Arrays 239 Operationen für Zeiger 239 Zeiger-Addition im Vergleich zur Indizierung eines Arrays 242 Der Inkrementoperator für Zeiger 244 Warum plagen wir uns mit Array-Zeigern? 247 Operationen für verschiedene Zeigertypen 248 Die Sache mit den Konstanten 248 Unterschiede zwischen Zeigern und Arrays 249 Meine Argumente von main() 250 Zeigerarrays 250 Arrays mit Argumenten 251 Kapitel 19 Programmieren mit Klasse 259 Daten gruppieren 259 Die Klasse 260 Das Objekt 261 Arrays von Objekten 262 Ein Beispiel 263 Kapitel 20 Programme debuggen, Teil 3 271 Ein neuer Ansatz für das Debugging 271 Die Lösung 272 Debuggen Schritt für Schritt 272 Den Debugger starten 275 Navigation durch ein Programm mit dem Debugger 278 Den (ersten) Fehler korrigieren 282 Den zweiten Fehler finden und korrigieren 284 Teil V Objektorientierte Programmierung 287 Kapitel 21 Was ist objektorientierte Programmierung? 289 Abstraktion und Mikrowellenöfen 289 Prozedurale Nachos 290 Objektorientierte Nachos 291 Klassifizierung und Mikrowellenöfen 291 Warum sollten wir Objekte auf diese Weise aufbauen? 292 Abgeschlossene Klassen 293 Kapitel 22 Strukturiertes Spiel: Wie Klassen Dinge erledigen 295 Unsere Objekte aktivieren 295 Eine Elementfunktion erstellen 296 Eine Elementfunktion definieren 297 Namen für Klassenelemente 298 Aufruf einer Elementfunktion 299 Zugriff auf andere Elemente von einer Elementfunktion aus 300 Eine Elementfunktion hinter der Klasse halten 301 Elementfunktionen überladen 302 Kapitel 23 Zeiger auf Objekte 305 Zeiger auf Objekte 305 Pfeilsyntax 306 Aufruf aller Elementfunktionen 306 Funktionen Objekte übergeben 307 Aufruf einer Funktion mit einem Objektwert 307 Aufruf einer Funktion mit einem Objektzeiger 309 Ein Beispiel 310 Objekte auf dem Stapel reservieren 314 Kapitel 24 Bitte nicht stören: Geschützte Elemente 317 Elemente schützen 317 Warum Sie geschützte Elemente brauchen 317 Elemente schützen 318 Also? 321 Ein Freund, ein guter Freund . . . 322 Kapitel 25 Objekten einen guten Start verschaffen 325 Der Konstruktor 325 Einschränkungen von Konstruktoren 327 Kann ich ein Beispiel sehen? 327 Datenelemente konstruieren 330 Destruktoren 333 Ein Beispiel 334 Datenelemente zerstören 337 Kapitel 26 Konstruktive Argumente 341 Konstruktoren mit Argumenten 341 Ein Beispiel 342 Den Konstruktor überladen 346 Der Standard-Standardkonstruktor 350 Datenelemente konstruieren 352 Datenelemente mit dem Standardkonstruktor initialisieren 352 Datenelemente mit einem anderen Konstruktor initialisieren 354 Ein Beispiel 357 Neu in C++ 2011 360 Kapitel 27 Kopieren mit dem Copy-Konstruktor 361 Ein Objekt kopieren 361 Der Standard-Copy-Konstruktor 362 Ein Beispiel 363 Einen Copy-Konstruktor erstellen 366 Kopien vermeiden 369 Teil VI Für Fortgeschrittene 371 Kapitel 28 Eine Klasse vererben 373 Vorteile der Vererbung 373 Die Sprachbesonderheiten 374 Vererbung in C++ implementieren 375 Ein Beispiel 376 Eine HAT_EIN-Beziehung 380 Kapitel 29 Virtuelle Funktionen – Realität? 383 Elementfunktionen überschreiben 383 Frühes Binden 384 Mehrdeutiger Fall 386 Eine späte Bindung eingehen 388 Wann nicht virtuell? 391 Virtuelle Aspekte 393 Kapitel 30 Zuweisungsoperatoren überladen 397 Einen Operator überladen 397 Das Überladen des Zuweisungsoperators ist kritisch 398 Ein Beispiel 400 Ihren Eigenen schreiben (oder nicht) 403 Kapitel 31 Stream-I/O 405 Wie Stream-I/O funktioniert 405 Stream-Eingabe/Ausgabe 407 Ein Eingabe-Objekt erstellen 407 Ein Ausgabe-Objekt erstellen 408 Öffnen-Modi 409 Was ist der Binärmodus? 410 Und in welchem Status ist eine Datei? 410 Weitere Elementfunktionen der fstream-Klassen 415 Streams direkt lesen und schreiben 415 Formatsteuerung 419 Und was macht eigentlich endl? 422 Manipulatoren manipulieren 422 Die stringstream-Klassen 423 Kapitel 32 Machen wir eine Ausnahme! 429 Der Ausnahmemechanismus 429 Betrachten wir den Ausnahmemechanismus im Detail! 432 Spezielle Aspekte für das Aufwerfen von Ausnahmen 433 Eine benutzerdefinierte Ausnahmeklasse erstellen 433 Einschränkungen von Ausnahmeklassen 437 Teil VII Der Top-Ten-Teil 439 Kapitel 33 Zehn Methoden, Fehler zu vermeiden 441 Aktivieren Sie alle Warnungen und Fehlermeldungen! 441 Gewöhnen Sie sich einen klaren und konsistenten Programmierstil an! 442 Kommentieren Sie den Code, während Sie ihn schreiben! 442 Durchlaufen Sie jeden Pfad mindestens einmal im Einzelschrittmodus im Debugger! 443 Begrenzen Sie die Sichtbarkeit! 443 Verwalten Sie Ihren Stapel! 444 Überschreiben Sie Zeiger mit 0, nachdem Sie gelöscht haben, worauf sie zeigen! 444 Verarbeiten Sie Fehler mit Ausnahmen! 445 Deklarieren Sie Destruktoren als virtuell! 445 Stellen Sie einen Copy-Konstruktor und einen überladenen Zuweisungsoperator bereit! 445 Kapitel 34 Zehn Dinge, die in diesem Buch nicht abgedeckt sind 447 Der goto-Befehl 447 Der ternäre Operator 448 Binäre Logik 448 Aufzählungstypen 448 Namensräume 449 Rein virtuelle Funktionen 449 Die string-Klasse 450 Mehrfachvererbung 450 Templates und die Standard Template Library 450 Lambda-Funktionen 451 Stichwortverzeichnis 453
£17.35
Wiley-VCH Verlag GmbH Docker für Dummies
Book SynopsisHaben Sie Ihre Software schon »containerisiert«? Wissen Sie, wie Sie die Container-Technologie am besten in Ihrem Unternehmen einsetzen können? Wenn nicht, dann sollten Sie jetzt damit beginnen, sich mit dieser Technologie auseinanderzusetzen, da es im Schnitt alle zehn Jahre eine Revolution in der IT gibt. Und nun ist es wieder so weit: Docker erobert die Welt. Dieses Buch stellt die Docker-Technologie vor und präsentiert viele praxisrelevante Beispiele, wie diese Technologie gewinnbringend eingesetzt werden kann. Anschließend wissen Sie, wie Sie Docker für Ihre eigenen Zwecke nutzen können.Table of ContentsÜber die Autoren 9 Einführung 21 Warum ist es wichtig, sich jetzt mit Docker zu beschäftigen? 21 Wer dieses Buch lesen sollte 23 Was Sie nicht lesen müssen 24 Törichte Annahmen über den Leser 24 Wie dieses Buch aufgebaut ist 25 Wie es weitergeht 28 Teil I Einführung in Docker 29 Kapitel 1 Container oder VM? 31 Was genau ist Docker? 31 Docker ist kostenlos – oder? 32 Grundlegende Elemente in Docker 33 Container 35 Images 35 Container-Netzwerke 36 Vergleich Container und virtuelle Maschinen 36 Was genau macht eine Virtualisierungsumgebung? 38 Was ist ein Container? 40 Einsatzgebiete von Docker 41 Verschiedene Ausführungsarten von Docker-Containern 44 Kapitel 2 Das Fenster und der Wal: Docker on Windows 47 Docker unter Windows installieren 48 Docker über die GUI installieren 49 Docker über PowerShell installieren 54 Docker über Chocolatey installieren 57 Der Windows-Container-Dienst und die unterschiedlichen Container-Arten 59 Docker auf Windows-Versionen, die kein Hyper-V besitzen 61 Was ist neu für Container in Windows Server 2019? 70 Kapitel 3 Der Apfel und der Wal: Docker auf dem Mac 71 Docker auf dem Mac installieren 72 Die Docker-Toolbox 78 Nützliche Tools für Docker auf dem Mac 85 Häufige Fehler und deren Lösung 86 Kapitel 4 Der Pinguin und der Wal: Docker on Linux 89 Docker unter CentOS installieren 90 Docker unter Ubuntu installieren 91 Docker unter Arch-Linux installieren 93 Docker ohne Paketverwaltung installieren 93 Es geht auch einfacher: Convenience-Skripte 94 Docker als Nicht-root-user verwenden 95 Kapitel 5 First Contact – eine erste Begegnung mit dem Wal 97 Kapitel 6 Nützliche Tools für die Arbeit mit Docker 105 Tools zum Schreiben und Verwalten von Quellcode 105 Tools für den Betrieb von Containern 106 CI-/CD-Tools, die Docker verwenden 107 Teil II Fortgeschrittene Techniken 109 Kapitel 7 Docker von der Stange: Docker Hub 111 Was ist der Docker Hub? Von Registry und Repositories 112 Ordnung im Chaos: Images im Docker Hub-Repository finden 113 Tags verwenden, um Container zu starten 118 Kapitel 8 Maßgeschneidert: Aufbau eigener Docker-Images 121 Das Format von Dockerfiles 122 Ihr erstes eigenes Dockerfile 124 Eine sinnvollere Anwendung für eigene Dockerfiles 128 Ihr eigenes base image 131 Kapitel 9 Vom Image zur Umgebung: Docker Compose 133 Eine Umgebung definieren: docker-compose.yml 135 Docker Compose mit eigenen Images 137 Umgebungen mit mehreren Containern 138 Ein einfacher Besuchszähler bestehend aus zwei Containern 139 Eine Entwicklungsumgebung für komplexere Webanwendungen 144 Kapitel 10 Netzwerke in Docker 155 Die Docker-Netzwerke 155 Anwendungsisolierung über Docker-Netzwerke 158 Mit den Docker-Netzen spielen 159 Ein komplexeres Beispiel: Poor Man‘s Loadbalancer mit Round Robin 165 Kapitel 11 Docker-Inhalte behalten – Volumes und Bind Mounts 173 Docker-Volumes 174 Bind Mounts 179 Kapitel 12 Eine eigene Docker-Registry aufbauen 183 Docker Hub unter der Lupe 184 Ein Image manuell auf Docker Hub veröffentlichen 185 Docker Hub, Docker Store und Docker Cloud 189 Die lokale Docker-Registry 189 Eine eigene Docker-Registry bauen 192 Etwas mehr Nachhaltigkeit – Docker-Registry mit Bind Mount 197 Registries von Drittanbietern 200 Kapitel 13 Windows-Container und der Windows-Containerdienst 203 Die Windows-Container-Arten 203 Windows-Container unter Windows 10 205 Windows-Container auf Windows Server 2016/2019 211 Kapitel 14 Ab in den Hub 215 Automatisches Erstellen von Images 215 Strategien für automatisierte Builds 218 Teil III Walgesänge in Den Wolken 221 Kapitel 15 Docker, Microservices-Architekturen und Serverless Computing 223 Microservices – was ist das? 224 Wie funktioniert eine Microservices-Architektur? 225 Wie passt das zu Docker? 226 Wegwerf-Infrastruktur 227 Serverless Computing – Server-Anwendungen ohne Server? 227 Was leisten Serverless-Dienste? 228 Wie passt Serverless zu Docker? 231 Kapitel 16 The Sky is the Limit – Docker auf Azure 233 Die Azure-Container-Dienste 235 Einen Container mit Azure Container instances bereitstellen 237 Einen Container über das Azure-Portal bereitstellen 241 Eine private Docker-Registry in Azure aufbauen 245 Einen Kubernetes-Cluster mit Azure Kubernetes Service (AKS) erstellen 250 Kapitel 17 Auch in Gelb: Docker auf AWS 261 Amazon ECS 261 AWS Fargate 264 Amazon ECR 265 Amazon EKS 265 AWS Batch und Docker EE 267 Kapitel 18 Alle können Docker 269 Google Cloud Services 269 IBM Cloud 270 Digital Ocean 270 Sloppy.io 270 Nutzung der Docker Machine 271 Kapitel 19 Docker Swarm 273 Von Managern und Arbeitern 274 Erste Schritte mit Docker Swarm – lokal 276 Ein Swarm-Cluster mit drei Knoten 283 Drei Knoten auf einem einzigen Rechner 284 Den Cluster in play-with-docker.com aufbauen 290 Weitere Swarm-Themen 296 Kapitel 20 Kubernetes 299 Was ist Kubernetes? 299 Komponenten von Kubernetes 300 Objekte in Kubernetes 303 Knoten, Pods und Container 304 Eine Kubernetes-Umgebung aufsetzen 306 Minikube, Ihr Ein-Knoten-Cluster 306 Installation von Minikube 307 Arbeiten mit Minikube 310 Ihre erste Kubernetes-Anwendung 312 Es geht auch einfacher: Testen ohne eigenen Cluster 315 Teil IV Hands on Docker 321 Kapitel 21 Unter Druck – Eine WordPress-Entwicklungsumgebung 323 Die WordPress-Umgebung per Hand aufbauen 323 Die WordPress-Umgebung mit Docker Compose aufbauen 334 Ein verbessertes WordPress-Image 336 Kapitel 22 Interessante Docker-Images 347 Datenbanken 347 Programmiersprachen 348 Webanwendungen 349 Desktop-Anwendungen 349 Kapitel 23 Datenbanken in Containern: MySQL, MariaDB und PostgreSQL 351 MySQL 352 PHPMyAdmin 352 MariaDB 354 PostgreSQL 356 Kapitel 24 Noch mehr Datenbanken in Containern – Der Microsoft SQL Server 359 Einen SQL Server im Container bereitstellen 360 Einen SQL Server im Container upgraden 364 Okay, und warum genau soll ich meine SQL Server im Container laufen lassen? 369 Kapitel 25 Eine DevOps-Pipeline mit Docker 373 Containerisierte Anwendungen 374 Anwendungen, die nicht in Containern laufen 377 Kapitel 26 Es gibt Kuchen, Baby – Docker auf dem Raspberry Pi 381 Docker auf dem Raspberry Pi installieren 382 Fünf Dinge, die Sie im Zusammenhang mit Docker und Raspberry Pi wissen sollten 395 Teil V Der Top-Ten-Teil 399 Kapitel 27 10 Mythen über Docker 401 Docker ist Synonym für Container 401 Docker ist das Allheilmittel 401 Es gibt klare Best Practices für Docker 401 Docker ist billiger als virtuelle Maschinen 402 Container können wie virtuelle Maschinen verwendet werden 402 Docker ist unsicher 402 Sie können nur einen Prozess pro Container starten 402 Sie müssen sich die Parameter für Ihren Run-Befehl merken 403 Docker kann nur aus der Kommandozeile bedient werden 403 Docker passt nicht zu meinem Projekt 403 Kapitel 28 10 Szenarien, in denen Sie Docker hervorragend einsetzen können 405 Jupyter Notebooks 405 Python-Entwicklung 405 Microservices 406 Webentwicklung 406 Experimentieren 406 Cluster 406 Migrationen 406 CI/CD 406 Demo-Umgebungen 407 Sichere Umgebung 407 Kapitel 29 Die 10 (+2) besten Docker-Tools 409 Kubernetes 409 GitHub 409 Portainer 409 Azure Kubernetes Service (AKS) 409 Amazon Elastic Container Service (ECS) 410 Visual Studio Code 410 Logstash 410 CoreOS 410 Jenkins 410 Watchtower 410 Cmdr 411 iTerm2 411 Kapitel 30 Die 10 häufigsten Docker-Fehler 413 port is already allocated 413 repository does not exist or may require 'docker login' 413 container name is already in use 414 No space left 414 You cannot remove a running container 414 unable to remove repository reference 414 Multiple IDs found 415 no matching manifest 415 driver failed programming external connectivity on endpoint 415 error during connect 416 Stichwortverzeichnis 417
£999.99
Wiley-VCH Verlag GmbH Clean Code für Dummies
Book SynopsisClean Code ist eine wichtige Methode, um zu besserer Software zu kommen. Zu beachten sind Korrektheit, Verständlichkeit, Lesbarkeit und Ressourcenverbrauch. Programmieren ist aber mehr als ein Handwerk. Klarer Code ist auch Ausdruck klaren Denkens und beginnt damit schon vor der Niederschrift. Regeln sind wichtige Stützen, aber das eigenständige Denken, Entscheiden und Abwägen ersetzen sie nicht. Das Buch vermittelt handwerkliche Fertigkeiten und stellt das Programmieren in den Gesamtprozess der Softwareentwicklung.Table of ContentsÜber den Autor 9 Einleitung 23 Über dieses Buch 23 Konventionen in diesem Buch 24 Was Sie nicht lesen müssen 24 Törichte Annahmen über die Leser 25 Wie dieses Buch aufgebaut ist 26 Symbole, die in diesem Buch verwendet werden 27 Wie es weitergeht 28 Teil I: Das Clean-Code-Prinzip 29 Kapitel 1 Software ist Code31 Erwartungen an Software 31 Probleme haben Ursachen 32 Allgemeine Ursachen 32 Hardwareentwicklung 33 Nichts ohne Code 34 Das Wichtigste in Kürze 35 Kapitel 2 Dimensionen von Codequalität 37 Was bedeutet Qualität? 37 Eigenschaften des Qualitätsbegriffs 37 Qualitätsindikatoren 38 Die Dimensionen von Codequalität 39 Korrektheit des Codes 39 Lesbarkeit und Wartbarkeit 40 Leistungseigenschaften 40 Weitere Dimensionen 41 Das Qualitätsziel festlegen 41 Beispiel: Der euklidische Algorithmus 42 Das Wichtigste in Kürze 43 Kapitel 3 Alles unter einen Hut – gute Kompromisse finden 45 Warum gute Entscheidungen wichtig sind 45 Es kommt drauf an 45 Widersprüche überall 46 Konflikte akzeptieren 47 Entscheidungen systematisch treffen 48 Konflikte erkennen 48 Alternativen sammeln 48 Kriterien finden 49 Wahlmöglichkeiten bewerten 50 Entscheiden 51 Mit Augenmaß 51 Das Wichtigste in Kürze 52 Kapitel 4 Die Eigenschaften sauberen Codes 55 Des Clean Codes Kern 55 Code als Ziel 56 Professionalität 57 Es geht immer weiter 58 Code als Kommunikationsmittel zwischen Menschen 58 Lesbarkeit 59 Verständlichkeit 59 Eleganz 60 Gute Wartbarkeit 61 Leichter durch Verständlichkeit 61 Nicht ohne Test 61 Zu guter Letzt 62 Das Wichtigste in Kürze 63 Kapitel 5 In der Praxis: Stolpersteine 65 Clean Code ist schwer 65 Reden wir über die Kosten 65 Kurz- und mittelfristige Vorteile 66 Langfristige Vorteile 66 Bewertung 68 Ändern bleibt schwierig 68 Manchmal passt es nicht 69 Frameworks 70 Projektvorgaben 70 Starre Abläufe 71 Falsche Autoritäten 71 Es liegt an Ihnen 73 Das Wichtigste in Kürze 73 Teil II: An Herausforderungen wachsen 75 Kapitel 6 Mehr als Handwerkskunst 77 Programmieren ist schwer 77 Software professionell entwickeln 79 Softwareentwicklung braucht Handwerk 80 Handwerk allein reicht nicht 82 Das Wichtigste in Kürze 83 Kapitel 7 Entwickeln ist (kreative) Wissenschaft 85 Formalisiertes Wissen 85 Was sind formale Theorien? 86 Wann braucht es eine (neue) Theorie? 87 Wie Sie zu einer Theorie kommen? 88 Mentales Modell als Theorie 88 Wenn es so einfach wäre: Viele Hürden 89 Und dann auch noch der kleine Rest 90 Konsequenzen 91 Die Bedeutung des Entwicklers darf nicht unterschätzt werden 91 Es werden verschiedene Qualifikationen gebraucht 92 Auch die Theorie muss weiterentwickelt werden 93 Das Wichtigste in Kürze 94 Kapitel 8 Modellierungsdilemma und Entscheidungsmüdigkeit 95 Das Modellierungsdilemma 95 Was macht ein Modell aus? 95 Ein Modell für alle Anforderungen gesucht 96 Und wenn es kein umfassendes Modell gibt? 98 Entscheiden ermüdet 100 Entwickeln heißt entscheiden 100 Entscheidungskraft optimal nutzen 101 Das Wichtigste in Kürze 103 Kapitel 9 Fallen vermeiden 105 Erst mal loslegen 105 Agil heißt nicht »kein Konzept« 105 Abgrenzung ist alles 106 Wenn es nicht anders geht 107 Schön flexibel bleiben 108 Flexible Programme 109 Flexibilität bläht auf 109 Die Sinnfrage 110 Modularisierung übertreiben 111 Davon verschwindet die Komplexität nicht 111 Zerlegung will geübt sein 112 Schon wieder: Kosten 113 Wachsen im Korsett 113 Das Wichtigste in Kürze 114 Teil III: Sauberen Code schreiben 115 Kapitel 10 Namen sind nicht Schall und Rauch 117 Benennungen 117 Namen versus Bezeichner 118 Namen versus Begriffe 118 Woher nehmen? 120 Lösungsdomäne 120 Anwendungsdomäne 120 Eigenschaften guter Namen 121 Den Sinn vermitteln 121 Nicht in die Irre führen 121 Sinnvolle Unterschiede 122 Verschlüsselungen vermeiden 123 Verwendbarkeit 124 Klassen und Methoden 125 Die Qual der Sprachwahl 125 Englisch 126 Deutsch 126 Keine Empfehlung 126 Was zu tun ist 127 Das Wichtigste in Kürze 127 Kapitel 11 Reine Formfrage – Formatierung 129 Das Auge liest mit 129 Vertikales Formatieren 131 Codelänge 131 Vorbild Zeitung 131 Vertikale Abstände 132 Vertikale Ordnung 134 Horizontales Formatieren 135 Zeilenlänge 135 Horizontale Abstände 136 Einrückungen 138 Automatische Formatierung 139 Vorteile 139 Nachteile 140 Das Wichtigste in Kürze 140 Kapitel 12 Code zuerst – sind Kommentare nötig? 141 Code allein reicht nicht 141 Erklärung gesucht 141 Das große Missverständnis: Code spricht nur den Computer an 142 Kommentare – hilfreich oder störend? 142 Kommentare lügen – oft 143 Sinnvolle Kommentare 143 Rechtshinweise 143 Unerledigtes 143 Klarstellungen und Warnungen 144 Algorithmen 144 Spezifikationen 144 Pragmatisches 146 Schlechte Kommentare 147 Nichtssagendes 147 Auskommentierter Code 148 Unterschiedliche Sprachen 148 Fehlender Bezug 148 JavaDoc 149 Dokumentationen 150 Schönheit 151 Das Wichtigste in Kürze 152 Kapitel 13 Kleine Schritte – saubere Methoden 153 Methoden 153 Begriffliche Klärung 154 Eigenschaften 154 Der Inhalt 155 Abstraktion 155 Trennung von Bearbeitung und Abfrage 155 Testen 156 Die Größe 156 Eine Aufgabe 156 Zeilenzahl 157 Schachtelungsstruktur 158 Parameter 159 Anzahl 160 Stellung 162 Parameter vermeiden 162 Testen 163 Flag-Parameter 163 Resultate 164 Rückgabewerte 164 Rückgabewert null 165 Ergebnisparameter 166 Rückkehrcodes 167 Seiteneffekte 167 Auswahlanweisungen 168 Alles fließt 170 Das Wichtigste in Kürze 170 Kapitel 14 Passend schneiden – Schnittstellen 171 Die Rolle von Schnittstellen 171 Mehr als ein Interface 171 Isoliert betrachtet 172 Im Verbund 172 Komponenten 173 Interface Segregation 174 Schlanke Schnittstellen 174 Kohäsion 175 Kombination 179 Keine Missverständnisse 180 Exakte Beschreibung 180 Voraussetzungen aufführen 181 Vollständige Definition 182 Tests und Mocks 182 Kein Code ohne Fremdcode 183 Eine unsichtbare Grenze 184 Abhängigkeiten isolieren 184 Wie es gehen könnte 185 Das Wichtigste in Kürze 189 Kapitel 15 Objekte und Datensätze unterscheiden 191 Was ist ein Objekt? 191 Und ein Datensatz? 192 Die Praxis 193 Die Objekt-Datensatz-Antisymmetrie 194 Java und Objektorientierung 194 Prozeduraler Code 195 Objektorientierter Code 197 Schlussfolgerungen 199 Das Gesetz von Demeter 199 Internes intern halten 200 Trotzdem kommunikativ sein 200 Das gilt auch umgekehrt 202 Aufrufketten 203 Fazit 205 Das Wichtigste in Kürze 205 Kapitel 16 Wege im Dschungel – Regeln 207 Wiederholungen vermeiden 207 Die Regel 207 Motivation 208 Umsetzung 209 Schwierigkeiten 210 Liefern, was verlangt wird 211 Die Regel 211 Motivation 212 Umsetzung 212 Schwierigkeiten 213 Jedes für sich 213 Die Regel 213 Motivation 214 Umsetzung 214 Schwierigkeiten 214 Die SOLID-Regeln 215 Single Responsibility Principle – SRP 215 Open Closed Principle – OCP 216 Liskov Substitution Principle – LSP 217 Interface Segregation Principle – ISP 217 Dependency Inversion Principle – DIP 217 Einfach besser 218 Halte es einfach 218 Geringste Überraschung 219 Fazit 219 Das Wichtigste in Kürze 219 Kapitel 17 Fehler passieren – Fehlerbehandlung221 Ausgangslage 221 Fehlerarten 222 Datenfehler 222 Seltene Datenfehler 223 Häufige Datenfehler 223 Funktionsfehler 225 Hardwarefehler 226 Semantische Fehler 227 Plausibilitätsprüfung 227 Wertebereichs-Überschreitungen 229 Keine Panik 231 Das Wichtigste in Kürze 231 Kapitel 18 Ausnahmen regeln – Exceptions 233 Sinn und Zweck 233 Checked und Unchecked Exceptions 234 Kosten 235 Werfen von Exceptions 235 Generische Exceptions verwenden 235 Spezielle Exceptions definieren 236 Fangen von Exceptions 238 Funktionsblöcke bestimmen 238 Fachliche und technische Exceptions 239 Verpacken von Exceptions 240 Loggen von Exceptions 240 Angemessenheit 241 Das Wichtigste in Kürze 242 Kapitel 19 Immer weiter – neue Sprachmittel 243 Wie beurteilen? 243 Annotationen 245 Funktion 246 Anwendungsarten 246 Risiken minimieren 248 Lambda-Ausdrücke 248 Klippen 248 So vielleicht 250 Streams 251 Die Idee 252 Anwendung 252 Aber Vorsicht 253 Fazit 254 Spezialisierung 254 Beschränkung 255 Das Wichtigste in Kürze 256 Teil IV: Wege zum Ziel 257 Kapitel 20 Miteinander lernen – Code Reviews 259 Zweck 260 Was nicht geht 260 Das Potenzial 261 Durchführung 262 Erfolgsvoraussetzungen 262 Vorbereitung 263 Review-Rollen 265 Review-Werkzeuge und Metriken 266 Review-Bewertung 267 Codequalität 267 Review-Qualität 267 Das Wichtigste in Kürze 268 Kapitel 21 Aus Fehlern lernen 269 Fehler macht jeder 269 Fehler analysieren 270 Fehlerursachen ermitteln 271 Fehlerarten 272 Priorisierung 272 Denken Sie an … 273 Erkenntnisse nutzen 275 Code Reviews nutzen 275 Ergebnisse dokumentieren 275 Wiederholen: Erkenntnisse erneut erörtern 275 Das Wichtigste in Kürze 276 Kapitel 22 Es gibt immer was zu tun – Refactoring 277 Die Idee 277 Die Praxis 278 Vorbereitung 278 Schritt für Schritt 280 Im Großen und im Kleinen 280 Ein Beispiel 281 Das Wichtigste in Kürze 282 Teil V: Der Top-Ten-Teil 283 Kapitel 23 10 Fehler, die Sie vermeiden sollten 285 Buch in Schrank stellen 285 Nicht sofort anfangen 285 Aufgeben 286 Nicht streiten 286 Schematisch anwenden 286 Kompromisse verweigern 286 Unrealistische Terminzusagen 287 Überheblichkeit 287 Denken, fertig zu sein 287 Alles tierisch ernst nehmen 287 Kapitel 24 (Mehr als) 10 nützliche Quellen zum Auffrischen und Vertiefen 289 Clean Code – das Buch und der Blog 289 Clean Code Developer 290 Software Craftsmanship 290 Java Code Conventions 290 97 Dinge, die jeder Programmierer wissen sollte 290 The Pragmatic Bookshelf 291 Prinzipien der Softwaretechnik 291 Refactoring 291 Code Reviews 291 Codeanalyse 292 Verzögerungskosten 292 Project Oberon 292 Stichwortverzeichnis 295
£999.99
Wiley-VCH Verlag GmbH Git für Dummies
Book SynopsisGit hat sich als Quellcodeverwaltung durchgesetzt und ist der De-facto-Standard in der Softwareentwicklung. Alle Unternehmen, die noch nicht auf Git sind, werden die nächsten Jahre wechseln. Und nicht nur die Entwicklung - auch Administration, Sicherheit und Dokumentation finden zunehmend auf Git statt. Git ist damit heute das wichtigste Werkzeug für alle digitalen Produkte - quasi die Werkbank. Wenn Sie wissen wollen, wie Sie Git richtig implementieren und welche Regeln Sie für die Zusammenarbeit aufstellen sollten, dann sind Sie hier richtig. Dieses Buch ist eine Einführung in das effektive Arbeiten mit Git - geeignet sowohl für Berufseinsteiger als auch für erfahrene Entwickler, die zu Git wechseln.Table of ContentsÜber den Autor 13 Einleitung 27 Über dieses Buch 27 Konventionen in diesem Buch 27 Fachbegriffe 28 Warum Kommandozeile? 28 Der Name für den Haupt-Branch 28 Was Sie nicht lesen müssen 29 Törichte Annahmen über die Leser 29 Wie dieses Buch aufgebaut ist 30 Teil I: Grundlagen 30 Teil II: Zusammenarbeit 30 Teil III: Vertiefung 30 Teil: IV: Der Top-Ten-Teil 30 Symbole, die in diesem Buch verwendet werden 30 Wie es weitergeht 31 Teil I: Grundlagen 33 Kapitel 1 Was ist Git? 35 Versionsverwaltung – zentral oder verteilt? 36 Die Geschichte von Git 37 Was bedeutet der Name »Git«? 38 Lizenz und Betriebssysteme 39 Ausblick 39 Kurz und knackig 39 Kapitel 2 Der Einstieg auf Windows 41 Die Installation von Git auf Windows 41 Die richtige Kommandozeile 51 Terminal: Cmder 52 Cmd vs PowerShell 52 Windows-Subsystem für Linux (WSL) 54 Das Windows-Terminal 55 Der richtige Editor 56 Die Konfiguration von Git 58 Authentifizierung 59 Kurz und knackig 62 Kapitel 3 Der Einstieg auf macOS und Linux 63 Der Einstieg auf macOS 63 Der Einstieg auf Linux 64 Konfiguration 64 Authentifizierung 66 Arbeiten mit dem Terminal 69 Richtig mit dem Terminal umgehen 70 Die richtige Konsole finden 71 Aufgehübscht: Oh-My-Zsh und Powerlevel10k 71 Kurz und knackig 76 Kapitel 4 Hinzufügen, ändern, branchen und mergen 77 Das lokale Repository 78 Das Remote-Repository 79 Änderungen dem Repository hinzufügen 80 Die lokale Entwicklungsumgebung aktualisieren 81 Schritt für Schritt: Änderungen der Versionsverwaltung hinzufügen 81 Neue Dateien hinzufügen 82 Änderungen durchführen 85 Arbeiten mit Verzweigungen (Branches) 87 Einen Branch erstellen 88 Auf einen anderen Branch wechseln 89 Arbeiten mit Upstream-Branches 90 Änderungen zusammenführen 92 Der Fast-Forward-Merge 92 Der Merge-Commit 94 Konflikte lösen 95 Schritt für Schritt: Branchen und Mergen 96 Kurz und knackig 97 Kapitel 5 Weitere Werkzeuge 99 Visual Studio Code 99 Unterstützung im Working Directory 99 Arbeiten mit Branches und Tags 100 Unterstützung für Remote-Repositories 100 Statusbar und Editor 100 Visual-Studio-Code-Erweiterungen 101 Benutzeroberflächen für Git 106 Sourcetree 106 GitKraken 108 GitHub Desktop 109 Git-GUI 111 GitHub für unterwegs 115 Visual Studio, Eclipse, IntelliJ und Co. 117 Tools mit Windows-Explorer-Integration 118 TortoiseGit 118 Git-Extensions 121 Diff- und Merge-Tools 122 Kurz und knackig 125 Teil II: Zusammenarbeit 127 Kapitel 6 Git-Dienste 129 GitHub 130 Einstieg 130 GitHub-Organisationen 134 Ein Repository anlegen 136 Preise 140 Hosting 140 Bewertung 140 Azure Repos 141 Einstieg 141 Azure-DevOps-Organisationen 142 Ein Projekt erstellen 143 Ein Repository erstellen 144 Preise 146 Hosting 146 Bewertung 146 GitLab 147 Einstieg 147 Hosting und Preise 150 Bewertung 151 Bitbucket 151 Einstieg 151 Hosting und Preise 155 Bewertung 155 Kurz und knackig 156 Kapitel 7 Guidelines bei der Einführung von Git 157 Das richtige Maß an Governance 157 Eine minimale Governance-Richtlinie 158 Die Wahl des passenden Git-Systems 158 Der minimale Git-Workflow 159 Namenskonventionen 159 Minimale Review-Guidelines 159 Weitere Ergänzungen für Pull-Requests 160 Empfehlungen für Teams 160 Anzahl und Struktur der Repositories 161 Review-Guidelines 162 Release-Branching 163 Umgang mit komplexen Features 163 Commit-Messages und Pull-Requests 164 Merge-Strategien 164 Training 165 Kurz und knackig 165 Kapitel 8 Git-Workflows 167 Was sind Git-Workflows? 167 Trunk-Based-Development 168 GitHub-Flow 170 Release-Flow 173 Git-Flow 175 Die Haupt-Branches in Git-Flow 175 Feature-Branches im Git-Flow 176 Release-Branches 177 Hotfix-Branches 178 Zusammenfassung 179 Den richtigen Workflow finden 180 Kurz und knackig 181 Kapitel 9 Teamwork mit Git 183 Watch, Stars und Forks 183 Was ist ein Fork? 185 Code-Reviews mit Pull-Requests 192 Branch-Protection 199 Automatisierung 202 Code-Owners 204 Der Umgang mit Commits und Messages 205 Der Pull-Request-Lebenszyklus 208 Kurz und knackig 209 Kapitel 10 Weniger Komplexität durch Feature-Flags 211 Was sind Feature-Flags? 211 Der Feature-Lebenszyklus 213 Weitere Einsatzmöglichkeiten von Feature-Flags 215 Wo fängt man an? 216 Frameworks 217 LaunchDarkly 218 Feature-Flags und technische Schulden 219 Kurz und knackig 221 Kapitel 11 Kontinuierlich bauen und ausliefern 223 Was ist CI und CD? 223 Build-Infrastruktur 225 Kontinuierliche Qualität 225 Tests und Code-Coverage 226 Code-Analyse und Quality-Gates 228 Automatisierte Deployments 229 Infrastruktur als Code 229 App-Stores, Registries und Paketmanager 230 Die Bedeutung von Containern 232 Azure Pipelines 234 Ihre erste Pipeline 234 Technische Schulden meistern 242 GitHub Actions 249 Ihr erster Workflow 249 Ihre erste GitHub-Action 251 Weitere CI/CD-Plattformen 254 Kurz und knackig 254 Kapitel 12 Open-Source-Projekte 255 Geschichte 256 Open Source versus Open Development 256 Open Source und Sicherheit 257 Ihr erstes Open-Source-Projekt 261 Wann ist der richtige Zeitpunkt? 262 Ist es die richtige Lösung? 262 Name und Branding 262 Open-Source-Checkliste 263 Standardisierung und Automatisierung 264 Eine Community aufbauen 264 Geld verdienen mit Open Source 265 Kurz und knackig 266 Teil III: Vertiefung 269 Kapitel 13 Unter der Haube 271 Warum ist Git so schwierig? 271 Der gerichtete azyklische Graph 272 Der Hash oder SHA-1 273 Die Anatomie eines Commits 274 Was ist denn nun eigentlich Git? 284 Warum ist Git so einfach? 285 Kurz und knackig 285 Kapitel 14 Zeitreisen mit Git 287 Geschichte ist Geschichte 287 Freie Wahl der Arbeitsweise 289 Änderungen rückgängig machen 289 Änderungen mit Revert transparent zurücknehmen 289 Commits nachbessern mit Amend 291 Zeitreisen mit Reset 291 Navigieren in der Zeit 296 Zeitlinien manipulieren 300 Zurück in die Zukunft mit Rebase 300 Änderungen bündeln mit Squash 302 Rosinen herauspicken 304 Die Vergangenheit interaktiv manipulieren 304 Die Vergangenheit mit Filter-Branch manipulieren 308 Manipulierte Zeitlinien mit Force-Push übertragen 310 Fragen Sie nicht, wozu Git fähig ist 310 Kurz und knackig 311 Kapitel 15 Mehr zum Branching und Merging 313 Branches und Tags 313 Vorspulen mit Fast-Forward 316 Ein echter Merge 317 Ein Octopus-Merge 317 Konflikte automatisch lösen 319 Konflikte manuell lösen 320 Merge-Strategien 323 Recursive 323 Resolve 324 Octopus 325 Ours 325 Subtree 325 Daten vom Remote laden mit »git pull« 325 Kurz und knackig 326 Kapitel 16 Commits und Tags signieren 329 Warum sollte man Commits signieren? 330 Was ist GPG? 333 Installation und Konfiguration 333 Installation auf dem Mac 333 Installation auf Windows 334 Installation auf Linux 334 Ein Schlüsselpaar generieren 334 Weitere E-Mail-Adressen konfigurieren 337 Die Konfiguration von Git 337 Konfiguration von GitHub 338 Visual Studio Code konfigurieren 338 Der erste signierte Commit 339 Kurz und knackig 340 Kapitel 17 Git-Submodule 341 Submodule in Git-Repository einbinden 341 Submodule klonen 343 Submodule aktualisieren 344 In Submodulen arbeiten 345 Kurz und knackig 347 Kapitel 18 Große Dateien und große Repositories 349 Git-LFS 349 Wann sollen Sie Git-LFS verwenden? 349 Installation von Git-LFS 350 Git-LFS verwenden 350 Große Dateien sperren 351 Nachteile 351 Große Repositories 352 VFS for Git 352 Scalar 352 Kurz und knackig 354 Kapitel 19 Git an Ihre Bedürfnisse anpassen 355 Dateien ignorieren 355 Arbeiten mit unterschiedlichen Dateitypen 357 Binärdateien 357 Bestimmte Dateitypen versionieren 357 Inhalte vor dem Ein- oder Auschecken filtern oder bearbeiten 358 Formatierung von Dateien 361 Der richtige Umgang mit Zeilenenden 361 Encoding 362 Leerzeichen, Tabs und Spaces 362 Kurz und knackig 364 Teil IV: Der Top-Ten-Teil 365 Kapitel 20 Zehn Tipps zum Einstieg in Git 367 Lernen und verwenden Sie Git auf der Konsole 367 Der richtige Git-Prompt 367 Richten Sie sich eine Wohlfühlkonsole ein 368 Lernen Sie die Shortcuts für Ihr Terminal 368 Lernen Sie einen Editor 368 Lernen Sie die Shortcuts für den Editor 368 Üben Sie in der Git-School 368 Erstellen Sie ein Konto auf GitHub 368 Verwenden Sie einen schlanken Workflow 369 Arbeiten Sie mit Pull-Requests 369 Kurz und knackig 369 Kapitel 21 Zehn Tipps zur Erhöhung der Effizienz 371 Arbeiten mit Aliasen in Git 371 Besser Vergleichen mit »diff-so-fancy« 374 Automatisieren mit Git-Hooks 376 Clientseitige Hooks 376 Serverseitige Hooks 377 Bessere Commit-Messages mit Commit-Templates 378 Einzelne Commits testen 379 Besser Versionieren mit Git-Version 379 Merges aufzeichnen mit rerere 381 Autokorrektur von Kommandos 383 Arbeit zwischenspeichern mit Stash 384 Kurz und knackig 385 Kapitel 22 Zehn Dinge, die Sie nicht tun sollten 387 Direkt auf dem Haupt-Branch arbeiten 387 Mit langlebigen Branches arbeiten 387 Passwörter und andere Secrets in Git speichern 388 Nicht oft genug committen 388 Git nicht als Versionsverwaltung nutzen 388 Große Dateien speichern 388 Einen Pull-Request für viele Änderungen verwenden 389 Einen Reset durchführen, ohne vorher zu speichern 389 Die veröffentlichte Historie modifizieren 389 Einen Force-Push durchführen 389 Kurz und knackig 390 Kapitel 23 Zehn Git-Befehle, die Sie kennen sollten 391 Bugs finden mit git bisect 391 Dateien umbenennen mit git mv und git rm 393 In Git suchen mit git grep und git log 394 Den Schuldigen finden mit git blame 397 Aufräumen mit git clean 398 Einen Brach wechseln mit git switch 398 Arbeiten mit Patches: git add ––patch und git apply 399 Kurz und knackig 403 Kapitel 24 Zehn Git-Befehle, die Ihnen bei Problemen helfen 405 Magische Zeitmaschine 405 Vergessen, Änderungen hinzuzufügen 406 Commit-Message nachträglich ändern 406 Aus Versehen auf den Haupt-Branch committed 406 Commit auf falschen Branch 407 Diff zeigt nichts an 407 Älteren Commit rückgängig machen 407 Änderungen an einer Datei rückgängig machen 408 Von Neuem beginnen (a) 408 Von Neuem beginnen (b) 409 Kurz und knackig 409 Stichwortverzeichnis 413
£999.99
Wiley-VCH Verlag GmbH C++ für Dummies
Book SynopsisDie Programmierung mit C++ muss nicht schwer sein. Mit diesem Buch werden Sie schon ab dem ersten Kapitel eigene Programme schreiben und die C++-Syntax von der Pike auf lernen, verstehen und anwenden. Arnold Willemer erklärt Ihnen, wie Sie Code zu Modulen zusammenfassen, die Sie immer wieder verwenden können, und schon bald werden Sie wissen, wie man Variablen deklariert und mathematische Operationen ausführt. So ist dies das richtige Buch für Ihren Einstieg in C++.Table of ContentsEinleitung 21 Über dieses Buch 21 Konventionen in diesem Buch 21 Törichte Annahmen über den Leser 21 Wie dieses Buch aufgebaut ist 22 Symbole, die in diesem Buch verwendet werden 23 Wie es weitergeht 24 Teil I: Wir programmieren 25 Kapitel 1 Grundgerüst eines Programms 27 Die Funktion main() 27 Kommentare 28 Ausgabe für Anfänger 29 Zahlenspielereien 30 Übungen 31 Kapitel 2 Variablen und Verarbeitung 33 Variablendefinition 33 Namensregeln 35 Ganze Zahlen 36 Wir rechnen 37 Wertveränderungen 38 Ganzzahlige Literale 41 Zeichen 42 Fließkommazahlen 45 Symbolische Konstanten 46 Aufzählungstyp enum 47 Typen umtaufen 49 Fallstricke beim Umgang mit Typen 49 Überlauf 49 Typkonvertierung und Casting 51 Ganzzahlige Division 52 Automatische Typbestimmung 53 Zahlen ein- und ausgeben 53 Ausgabestrom 53 Formatierte Ausgabe 54 Eingabestrom aus cin 54 Übungen 55 Kapitel 3 Abfrage und Wiederholung 57 Verzweigungen 57 Nur unter einer Bedingung: if 58 Andernfalls: else 58 Struktogramm 59 Dangling else 61 Fall für Fall: switch case 62 Bedingter Ausdruck: Fragezeichen 64 Boolesche Ausdrücke 65 Variablen und Konstanten 65 Operatoren 66 Verknüpfung von booleschen Ausdrücken 67 Immer diese Wiederholungen: Schleifen 71 Kopfgesteuert: while 71 Fußgesteuert: do… while 75 Abgezählt: for 76 Der Sprung als Feind der Struktur 79 Der brutale Sprung: goto 80 Schleifenausbruch: break 81 Schleifenrücksprung: continue 82 Beispiel: Größter gemeinsamer Teiler 83 Mitmachbeispiel: Schleifende Hunde und Füchse 85 Übungen 86 Teil II: Datentypen und -strukturen 89 Kapitel 4 Das Array 91 Definition und Zugriff auf ein Array 91 Grenzen und Größen 93 Arrays lieben die for-Schleife 94 Lottozahlen sollten zufällig sein 95 Keine Doppelten beim Lotto 96 Sortierte Lottozahlen 99 Mehrere Dimensionen 102 Beispiel: Bermuda 103 Spielanleitung Bermuda 103 Spielfeld anzeigen 103 Die Schiffskoordinaten 105 Übungen 106 Kapitel 5 Zeiger und dessen Möglichkeiten 109 Der Zeiger und die Adresse 109 Arrays und Zeiger 112 Zeigerarithmetik 113 Wettrennen zwischen Index und Zeiger 114 Klassische Zeichenketten 115 Addition und Subtraktion 116 Konstante Zeiger 116 Der Zeiger auf gar nichts: void* 117 Übungen 117 Kapitel 6 Variablenverbund struct 119 Ein Verbund mehrerer Variablen 119 Arrays von Strukturen 121 Zeiger auf Strukturen 121 Beispiel: Bermuda 123 Objekte dynamisch erzeugen und löschen: new und delete 124 Der Befehl new 124 Zur Laufzeit erzeugte Arrays 125 Verkettete Listen 126 Teil III: Funktionen 131 Kapitel 7 Funktionen im Eigenbau 133 Anweisungen zusammenfassen 133 Funktionsparameter 135 Ein Rückgabewert als Ergebnis 136 Prototypen 137 Noch ein paar Bemerkungen zu Parametern 138 Zeiger als Parameter 138 Arrays als Parameter 140 Die Parameter der Funktion main 144 Referenzparameter 145 Parameter vorbelegen 146 Variable Anzahl von Parametern 147 Überladen von Funktionen 148 Kurz und schnell: Inline-Funktionen 149 Kapitel 8 Hilfreiche Bibliotheksfunktionen 151 Zufall 151 Mathematische Funktionen 153 Zeitfunktionen 155 Kapitel 9 Einsatz von Funktionen 159 Vermeidung doppelten Codes 159 Top-down-Design am Beispiel Bermuda 159 Vom Diagramm zum Listing 160 Die Daten und die Parameter 160 Initialisierung der Datenstrukturen 161 Benutzereingabe 162 Suche die Schiffe 162 Eintrag im Spielfeld 165 Ende des Spiels 165 Globale, lokale und statische Variablen 166 Globale Variablen 166 Lokale Variablen 167 Statische Variablen 167 Rekursion: Selbstaufrufende Funktionen 168 Fibonacci, die Kaninchen und der Goldene Schnitt 168 Einbindungen 170 Türme von Hanoi 171 Rückruf erwünscht: Der Funktionszeiger als Parameter 173 Anonym: Die Lambda-Funktion 175 Übungen 176 Teil IV: Zeichenketten 177 Kapitel 10 Die Standardklasse string 179 Zeichenkettenliterale 179 Definieren und Zuweisen 180 Zugriff auf einzelne Zeichen 181 String-Funktionen 181 Länge des Strings 181 Verändern von String-Inhalten 181 Suche und Informationen 182 Umwandlung von Zahlen und Zeichenketten 183 Vergleiche 185 Ein- und Ausgabe von Strings 186 Umwandlung von string in ein char-Array 187 Kapitel 11 Das char-Array als Erbe von C 189 Speichern im Array 189 Der Zeiger auf char 191 Die String-Bibliothek 192 Strings in Zahlen konvertieren 193 Zahlen in Strings konvertieren 194 Teil V: Klassen 197 Kapitel 12 Am Beispiel zu Bruch gehen 199 Die Klasse Bruch 199 Der Bruch hat eigene Funktionen 202 Initialisierung durch Konstruktoren 205 Konstruktor mit Parameter 207 Destruktor 209 Konstruktor und Destruktor bei Arrays 210 Konvertierungskonstruktor 210 Konvertierungsoperator 211 Private Attribute 212 Operatoren überladen 213 Wir multiplizieren mit dem Stern 213 Alle möglichen Operatoren 214 Besonderheiten bei Inkrement und Dekrement 216 Die Vergleichsoperatoren 217 Ausgabeoperatoren und Freunde 218 Der Indexoperator 220 Der Aufrufoperator () 222 Die Kopie von Zeigern in Klassen 222 Der Zuweisungsoperator 223 Kopierkonstruktor 224 Statische Variablen und Funktionen in Klassen 226 Statische Klassenattribute 226 Statische Methoden 227 Statische lokale Variable 228 Konstante Parameter und Funktionen 229 Übungen 230 Kapitel 13 Vererbung 231 Basisklasse 232 Kompatibilität zur Basisklasse: »Ist ein« 234 Zugriff nur für Erben: protected 234 Zugriffsattribute der Vererbung 235 Konstruktorenvererbung 237 Kopierkonstruktor und Zuweisungsoperator 238 Mehrfachvererbung 238 Objektorientiertes Design für Bermuda 240 Die Koordinate 240 Das Schiff 241 Die Flotte 242 Das Spielfeld 245 Die Spielklasse Bermuda mit Mehrfachvererbung 247 Übungen 247 Kapitel 14 Polymorphie und virtuelle Funktionen 249 Die Mensa der Universität Norgaardholz 249 Ein Objekt weiß, was es tut: Polymorphie 252 Rückgriff auf die Basisklasse 253 Eine abstrakte Suppe 254 Die Mahlzeit als vollkommen abstrakte Klasse 255 Virtueller Destruktor 256 Polymorphie bei grafischen Oberflächen 257 Übungen 258 Teil VI: Fortgeschrittene Programmiertechniken 261 Kapitel 15 Große Programmprojekte 263 Aufteilung der Quelltexte 263 Implementierung und Schnittstelle 263 Doppelter Include 268 Zusammenbinden der Objektdateien 269 Projektsteuerung am Beispiel make 269 Header-Dateien und Schnittstellen 271 Deklaration und Definition 271 Einbinden von Header-Dateien 273 Bibliotheken 274 Eigene Bibliotheken erzeugen 274 Statische Bibliotheken einbinden 275 Dynamische Bibliotheken 276 Namensräume 278 Definition eines Namensraums 278 Zugriff 279 Besondere Namensräume 280 Kapitel 16 Katastrophenschutz: Fehler, Ausnahmen und Vorbedingungen 281 Die klassische Fehlerbehandlung 281 Ausnahmebehandlung 283 try und catch 283 Eigene Ausnahmen werfen 284 Erstellen von Fehlerklassen 287 Die Ausnahmen der Standardbibliotheken 288 Vorbedingungen 290 assert 290 Der Compiler prüft 292 Kapitel 17 Intelligente Sammelbehälter 293 Charakterlose Daten 293 Generische Programmierung 295 Template-Funktionen 296 Template-Klassen 299 Die Container-Klasse vector 302 Dynamik 303 Kapazität und Größe 305 Grenzüberschreitung 306 Iteratoren als Zeigerersatz 307 Methoden des Vektors 309 Die Container-Klasse deque 310 Die Container-Klasse list 312 Sortieren einer Liste: sort 313 Eine Liste in eine andere einsortieren: merge 315 Alles umdrehen: reverse 316 Mengen-Container: set 317 Löschen aus dem Set 317 Suchen und Sortieren 318 Sortierreihenfolge 318 Der assoziative Container map 319 Container-Adapter 321 Der Container-Adapter stack 321 Der Container-Adapter queue 322 Iteratortypen 323 Die Algorithmen der STL 324 Suchen: find 325 Sortieren 326 Binäres Suchen 327 Kopieren: copy 327 Umdrehen: reverse 328 Füllen: fill 329 equal 329 Funktionsobjekt als Parameter: find_if 329 for_each 332 Vereinigung und Durchschnitt 333 Die Template-Klasse bitset 335 Teil VII: Dauerhaftes Ablegen von Daten 337 Kapitel 18 Ein- und Ausgabe in Dateien 339 Formatierte Ausgabe im Datenstrom 339 Ausgabestrom ausrichten 340 Dateioperationen mit fstream 344 Öffnen und Schließen 345 Lesen und Schreiben sequenzieller Daten 346 Binäre Daten blockweise verarbeiten 350 Problembehandlung 353 Exceptions 354 Dateizugriffe nach ANSI-C 355 Kapitel 19 Datenbanken 361 Objektorientierter portabler Zugang: CppDB 363 Installation 363 Einbindung 363 Verbindungsaufname zur Datenbank 364 SQL-Befehle übergeben 365 Auslesen mit SELECT 366 Beispielhafte Person 366 Datenbankbibliothek SQLite 369 Einrichtung 369 Programmieren mit SQLite 370 Tabelle erzeugen und mit Daten füllen 371 Auslesen der Daten 373 Teil VIII: Grafische Fensterprogramme GUI 377 Kapitel 20 Grafische Oberflächen 379 Kapitel 21 C-API am Beispiel Win32 381 Hauptprogramm 382 Die Fensterfunktion WndProc 382 Mausverhalten 384 Kontrollelemente 384 Bermuda in Win32 385 Kapitel 22 Objektorientiert mit wxWidgets 391 Installation von wxWidgets 391 wxWidgets für Linux einrichten 392 wxWidgets für Windows und Mac beschaffen 392 Ein wxWidgets-Programm erstellen 393 Code::Blocks unter Linux und Windows 394 Ein minimales xwWidgets-Programm 395 Grafik 396 Grafische Kontroll- und Eingabeelemente 398 Layout 400 BoxSizer 400 GridSizer 401 FlexGridSizer 402 Die Kombination mehrerer Layouts 402 Bermuda in der wxWidgets-Version 403 Kapitel 23 Qt 409 Geschichte eines portablen Frameworks 409 Installation 410 Linux 410 Windows und Mac 410 Ein Qt-Widgets-Projekt 410 Der Qt-Designer 412 Teil IX: Programmierumgebung 415 Kapitel 24 Compiler beschaffen und einrichten 417 Der GNU-C++-Compiler 417 Der GNU-C++-Compiler unter Linux 417 Der GNU-C++-Compiler unter MS Windows 418 Microsoft Visual Studio 418 Projekt erstellen 419 Windows Desktopassistent 421 Code::Blocks 421 Linux 422 Windows 422 Der Aufbau von Code::Blocks 422 Ein Projekt anlegen 423 Übersetzen und starten 424 Eclipse als C++-Umgebung 424 Anlegen eines Projekts 425 Generieren und ausführen 425 NetBeans 425 Linux 426 Windows 426 Ein C++-Projekt erzeugen 427 Kapitel 25 Programmierwerkzeuge 429 Der Compiler und der Linker 429 Compiler-Aufruf 429 Compiler-Optionen 430 Fehlermeldungen 431 Der Präprozessor 432 Einbinden von Dateien: #include 433 Konstanten und Makros: #define 433 Abfragen: #if 435 Auf Fehlersuche mit dem Debugger 437 Debuggen in der IDE 437 Konsolen-Debug 438 Versionsverwaltungen 439 Arbeitsweise 439 Subversion 441 Git 443 Teil X: Der Top-Ten-Teil 445 Kapitel 26 10 Gründe, warum Sie C++ einsetzen wollen 447 Sie wollen native Programme schreiben 447 Sie wollen sehr schlanke Programme schreiben 447 Das Programm soll schnell starten 447 Das Programm soll schnell laufen 447 Das Programm soll direkt an eine API ankoppeln 448 Sie wollen verhindern, dass jemand Ihren Source Code aus der ausführbaren Datei rekonstruiert 448 Sie müssen ganz dicht an die Maschine heran 448 Sie mögen keine ideologischen Vorschriften 448 Sie müssen sehr vertrackte Datenstrukturen auslesen 449 Sie lieben das Hashtag-Zeichen 449 Kapitel 27 Die 10 beliebtesten C++-Fehler 451 Sie benutzen beim n-dimensionalen Array n als Index 451 Ihre Schleife läuft ewig, weil Ihre Bedingung falsch formuliert ist 451 Ihre Schleife läuft ewig, weil sich die Variable, die für die Bedingung geprüft wird, im Schleifenkorpus nie ändert 451 Sie haben direkt hinter der Klammer von if/while/for ein Semikolon gesetzt 452 Sie haben vergessen, den #include zu setzen, und wundern sich, warum die Bezeichner unbekannt sind 452 Sie arbeiten mit deutschen Umlauten und verwenden kein unsigned char 452 Sie haben delete aufgerufen, aber den Zeiger anschließend nicht auf nullptr gesetzt 452 Sie verwenden häufiger new als delete 453 Ihre Klasse enthält ein Zeigerattribut, aber es fehlt der Copy-Konstruktor und der Zuweisungsoperator 453 Sie verwechseln es mit Java 453 Stichwortverzeichnis 457
£999.99
Wiley-VCH Verlag GmbH Go programmieren für Dummies
Book SynopsisGo ist eine der neueren Programmiersprachen, die Softwareentwickler in ihrer Werkzeugkiste haben sollten. Die Sprache wurde mit dem Ziel entwickelt, besonders gut lesbar, benutzerfreundlich und effizient zu sein, und ist eine gute Wahl für Entwickler, die Anwendungen für die Cloud erstellen. Dieses Buch zeigt Ihnen die ersten Schritte in Go. Steigen Sie ein und beginnen Sie mit dem Schreiben von Code, der Daten aus der Cloud holt und sie in die Hände der Benutzer legt.
£999.99
Wiley-VCH Verlag GmbH Programmieren und zeichnen mit Python für Dummies
Book SynopsisBunte Spiralen, Schneeflocken unter dem Mikroskop, 3D-Bilder? Mit diesem Buch lernst du, immer schönere Bilder mit dem Computer zu zeichnen. Es fängt ganz leicht an: Zuerst lässt du die Schildkröte, die deinen Pinsel hält, einfach nur über den Bildschirm laufen. Als nächstes bringst du ihr bei, ein Dreieck zu zeichnen. Wenn du ein Dreieck zeichnen kannst, kannst du auch ganz viele zeichnen, denn die Schildkröte nimmt dir die Arbeit ab. Dann kombinierst du Dreiecke zu Mosaiken und lässt Blumen und Bäume wachsen. Noch nicht genug? Zeichne 3D-Bilder und optische Täuschungen, animiere die Schildkröte, lasse sie Futter suchen oder steuere sie durch ein Labyrinth. Du hast noch mehr Ideen für eigene Bilder oder Spiele? Dieses Buch liefert dir die Python-Programmierbefehle dazu. Bestens geeignet für Kinder und Jugendliche ab 12 Jahre. Table of ContentsEinführung 8 Hallo, zukünftige Python-Programmierer! 8 Über Schlangen und Schildkröten 8 Über dieses Buch 8 Über dich 10 Über die Symbole, die wir in diesem Buch verwenden 10 Kapitel 1: Auf die Plätze … 12 Computer und Programmiersprachen 13 Python auf deinem Computer 17 Python installieren 18 Python-Symbol auf dem Bildschirm erstellen 18 Dein erstes Python-Programm 19 Python als Taschenrechner 20 Programme für die Ewigkeit 20 Programme speichern 21 Programme ausführen 22 Altes Programm laden 22 Das kannst du jetzt 23 Kapitel 2: Die Schildkröte 24 Wie Bilder auf dem Bildschirm entstehen 24 Dein erstes Schildkrötenbild 26 Schildkröte, zeige dich! 27 Lauf, Schildkröte, lauf! 27 Schildkröte, dreh dich um! 27 Die Welt wird bunt 30 Durch dick und dünn 30 Schildkrötenbilder als Programmdateien 31 Weniger Änderungen mit Variablen 32 Mach schneller, Schildkröte! 34 Flächen füllen 34 Die Schildkröte springt im Dreieck 36 Manche Kleeblätter bringen Glück 37 Das kannst du jetzt 37 Kapitel 3: Figuren stylen 38 Vom Eckigen zum Runden 39 Zeilen einsparen mit Schleifen 40 Mit for-Schleifen Dinge mehrmals tun 40 Mit while-Schleifen Dinge so lange tun, bis sich was ändert 42 Wenn-dann-sonst 43 Wo ist die Schildkröte? 43 Die Schildkröte kehrt um … 46 … und läuft zurück 46 Noch mehr Zeilen sparen mit Funktionen 47 Funktionen variabel machen 49 Viele Vielecke 51 Von Vielecken zu Vieleckblumen 53 Mandalas als Ausmalbilder 55 Figuren ausdrucken 56 Zufallsbilder 57 Figuren zufällig erscheinen lassen … 57 … und zufällig färben 58 Das kannst du jetzt 60 Kapitel 4: Sterne und mehr 61 Sterne in Flaggen 62 Sterne mit fünf Zacken 62 Noch mehr Zacken 66 Gitternetzsterne 68 Listen führen, um sich Dinge zu merken 69 Weniger Gitter im Netz 73 Noch mehr Gitternetzfiguren: Die Kardioide 76 Von Sternen zu Spiralnebeln 79 Das kannst du jetzt 84 Kapitel 5: Schachtelfiguren 85 Schachtelquadrat 86 Schachbrettvariationen 89 Dreiecksgeschichten 91 Bäume und Wälder 95 Es schneit 97 Chinesische Drachen 102 Fliegende Teppiche 106 Das kannst du jetzt 109 Kapitel 6: Das Spiel »Snake« 110 Von Schildkröten zu Schlangen 110 Die Spielregeln 111 Das Design des Spiels 112 Es kommt Bewegung in die Schlange 113 Bewegung macht hungrig: Die Schlange sucht Futter 116 Fressen macht groß und stark: Die Schlange wächst 121 Zu viel Fressen ist ungesund: Die Schlange stirbt 124 Ideen für Erweiterungen 127 Mehr Tempo 127 Highscore 127 Durch die Wand gehen 128 Das kannst du jetzt 129 Kapitel 7: Das Misthaufen- Spiel 130 Phase 1: Das Design des Spiels 131 Initialisierung von Spielfeld und Stift 131 Misthaufen erzeugen und auf dem Spielfeld verteilen 132 Misthaufen mit Abstand 134 Phase 2: Das Spiel 137 Der Stift wird aktiv 138 Ab durch die Haufen 141 Auweia, die Linie wird berührt 144 Ideen für Erweiterungen 147 Rückwärtsgang verboten 148 Game-Over-Anzeige 148 Gewonnen-Anzeige 149 Freeze 149 Das kannst du jetzt 150 Kapitel 8: Das Parkour-Spiel 151 Das Design des Spiels 152 Die Parkour-Strecke 154 Eine Fliese wird verlegt 154 Fliesen durch Pfeiltasten aneinanderreihen 155 Die Schildkröte wird aktiv 157 Die Navigation durch den Parkour 158 Auf »Los!« geht‘s los 159 Baustopp während des Rennens 161 Stupse die Schildkröte an 162 Berührungen spüren und rot werden 162 Punkte sammeln und anzeigen 163 Parkour-Strecken von der Stange 165 Eine Parkour-Strecke speichern 165 Eine gespeicherte Parkour-Strecke laden 168 Ideen für Erweiterungen 171 Spielhilfe 171 Spielfeldränder beachten 171 Aktuelle Größe des Spielfensters berücksichtigen 172 Das kannst du jetzt 172 Kapitel 9: Experimente in 3D 173 Tunnelbilder 174 Fluchtpunkt-Perspektive 175 Jetzt wird es krumm 175 Körper zusammensetzen 178 Muscheln, Meer und mehr 183 Schnecken und Muscheln 183 Schwimmringe 185 Bälle und Buddelförmchen 186 Optische Täuschungen 189 Linien strecken und stauchen 189 Drehende Scheiben und pochende Herzen 193 Springende Bälle 196 Das kannst du jetzt 198 Wichtige Befehle 200 Zum Wiederfinden 218 Über die Autorinnen 222
£999.99
Wiley-VCH Verlag GmbH App-Entwicklung mit Flutter für Dummies
Book SynopsisWie Sie mit dem Flutter-Framework Android- und iOS-Apps mit nur einer Code Base und ohne Qualitätsverlust entwickeln, das erfahren Sie hier! Nach einer Einführung in die Programmiersprache Dart lernen Sie das User Interface Design, die Anbindung an Schnittstellen oder Datenbanken, State-Management und Routing in der App kennen, bevor Sie die App auf Fehler testen und in den Stores von Google und Apple veröffentlichen. Alle Schritte vollziehen Sie im Buch an einer durchgängigen Beispiel-App nach. Cross-Plattform-App-Entwicklung? Mit diesem Buch echt einfach!Table of ContentsÜber die Autorinnen 9 Einleitung 23 Teil I: Einführung in Flutter 29 Kapitel 1 Flutter und das große Feld der App-Entwicklung 31 Kapitel 2 Startklar machen und rein ins Vergnügen 39 Kapitel 3 Ihre allererste App 47 Teil II: Programmieren mit Dart 55 Kapitel 4 Pfeilschnell programmieren mit Dart 57 Kapitel 5 Bedingte Anweisungen und Schleifen im Griff 83 Kapitel 6 Sammeln und Sortieren – Collections in Dart 89 Kapitel 7 Asynchrone Programmierung – wenn es mal wieder länger dauert 93 Kapitel 8 Vererbung und weitere praktische Dart- Features 97 Kapitel 9 Debugging in Dart – Probleme finden und lösen 105 Teil III: Wir bauen eine App 113 Kapitel 10 Alles ist ein Widget 115 Kapitel 11 Widgets über Widgets – wie werden daraus tolle App-Screens? 129 Kapitel 12 Ein bisschen DIY zwischendurch – Custom Widgets 187 Kapitel 13 Wenn das, dann das – oder das? 195 Kapitel 14 Wo gehts hier lang? Routing in Flutter-Apps 207 Kapitel 15 Mach alles blau – Theming für Ihre App 217 Teil IV: REST und Firebase – externe Daten beziehen und managen 237 Kapitel 16 Schnittstellen anbinden 239 Kapitel 17 Firebase und der Cloud Firestore 275 Teil V: State-Management 299 Kapitel 18 Stein auf Stein – App-Architektur in Flutter 301 Kapitel 19 State-Management 309 Kapitel 20 State-Management mit Bloc und Cubit 319 Teil VI: Testen, builden und veröffentlichen 345 Kapitel 21 Testing – wer, wie, was und wieso, weshalb, warum? 347 Kapitel 22 Der Android-Build 377 Kapitel 23 Der iOS-Build 393 Teil VII: Top-Ten-Teil 401 Kapitel 24 Unsere 10 Lieblings-Widgets 403 Kapitel 25 Unsere 10 Flutter-Tipps und -Tricks 407 Abbildungsverzeichnis 411 Stichwortverzeichnis 417
£999.99
Wiley-VCH Verlag GmbH R Alles-in-einem-Band für Dummies
Book SynopsisWenn Sie R von Grund auf kennenlernen und auch die fortgeschrittenen Techniken zur Lösung gängiger Aufgaben bei der Datenanalyse mit R beherrschen möchten, dann liegen Sie mit diesem Buch goldrichtig. Es bietet Ihnen nicht nur einen Überblick über die Programmierung in R und die Arbeit mit der Sprache, sondern geht auch auf die Arten von Projekten und Anwendungen ein, die R-Entwicklerinnen und -Entwickler häufig in Angriff nehmen müssen. Statistische Analysen, Datenvisualisierungen, maschinelles Lernen und Datenmanagement mit R: All das lernen Sie mit diesem Buch intensiv kennen.Table of ContentsEinführung 31 Teil I: Eine Einführung in R 35 Kapitel 1: R – Was es macht und wie es dies macht 37 Kapitel 2: Mit Packages arbeiten, Importieren und Exportieren 65 Teil II: Daten beschreiben 79 Kapitel 3: Grafik 81 Kapitel 4: Finden Sie Ihre Mitte! 119 Kapitel 5: Weg vom Durchschnitt 129 Kapitel 6: Standards und Ränge 137 Kapitel 7: Eine Zusammenfassung des Ganzen 147 Kapitel 8: Was ist normal? 165 Teil III: Daten analysieren 183 Kapitel 9: Ein Spiel mit dem Vertrauen: Schätzung 185 Kapitel 10: Hypothesentests mit einer Stichprobe 201 Kapitel 11: Hypothesentests mit zwei Stichproben 227 Kapitel 12: Tests von mehr als zwei Stichproben 253 Kapitel 13: Kompliziertere Tests 277 Kapitel 14: Regression: Lineare und multiple und das allgemeine lineare Modell 297 Kapitel 15: Korrelation: Aufstieg und Fall von Beziehungen 331 Kapitel 16: Kurvilineare Regression: Wenn Beziehungen kompliziert werden 351 Kapitel 17: Zu gegebener Zeit 375 Kapitel 18: Nichtparametrische Statistik 387 Kapitel 19: Einführung in die Wahrscheinlichkeitsrechnung 407 Kapitel 20: Wahrscheinlichkeit trifft auf Regression: Logistische Regression 427 Teil IV: Aus Daten lernen 435 Kapitel 21: Tools und Daten für Projekte zum maschinellen Lernen 437 Kapitel 22: Entscheidungen, Entscheidungen! 463 Kapitel 23: In den Wald – per Zufall 481 Kapitel 24: Unterstützen Sie Ihren lokalen Vektor 497 Kapitel 25: k-Means-Clustering 517 Kapitel 26: Neuronale Netze 533 Kapitel 27: Datenerforschung im Marketing 549 Kapitel 28: Aus der Stadt, die niemals schläft 567 Teil V: R in der Praxis: Einige Projekte, die Sie auf Trab halten 583 Kapitel 29: Mit einem Browser arbeiten 585 Kapitel 30: Dashboards verwenden 613 Abbildungsverzeichnis 647 Stichwortverzeichnis 657
£28.45
Wiley-VCH Verlag GmbH HTML and CSS: Erfolgreich Websites gestalten und
Book SynopsisHTML und CSS lernen auf die kreative Art: Sie möchten Webseiten erstellen und gestalten und brauchen dafür noch ein wenig Grundlagenwissen? Visuelle Informationen erfassen Sie schneller und intuitiver als lange Texte? Dann ist dieses Buch für Sie gemacht! Jon Duckett stellt Ihnen alle häufig benötigten HTML- und CSS-Tags vor - an Beispielen, die auf einen Blick einleuchten, und übersichtlichen Code-Schnipseln, die Sie praktischerweise von der Verlagswebsite herunterladen können. Auch wenn Sie keinerlei Vorkenntnisse mitbringen sollten, werden Sie sich im Handumdrehen zurechtfinden: Im ersten Teil des Buchs lernen Sie von Grund auf, wie Sie Webseiten mit HTML strukturieren und z. B. Texte, Bilder, Tabellen, Formulare und Audio- und Video-Dateien einfügen. Im zweiten Teil steigen Sie in CSS ein und erfahren, wie Sie die einzelnen Seitenelemente gestalten und attraktive Layouts entwerfen. Selbstverständlich sind alle Beschreibungen aktuell zu HTML5 und CSS3. Im letzten Teil des Buchs zeigt Ihnen Jon Duckett dann, wie Sie Ihre neu gewonnenen Kenntnisse zusammenführen und eine Website bauen, die optimal auf Ihre Zielgruppe zugeschnitten und für Suchmaschinen gut auffindbar ist. Damit wissen Sie alles, was Sie wissen müssen - lassen Sie Ihrer Kreativität freien Lauf!Table of ContentsEinleitung 7 Kapitel 1: Struktur 17 Kapitel 2: Text 45 Kapitel 3: Listen 67 Kapitel 4: Links 79 Kapitel 5: Bilder 99 Kapitel 6: Tabellen 131 Kapitel 7: Formulare 149 Kapitel 8: Besonderes Markup 181 Kapitel 9: Flash, Video & Audio 205 Kapitel 10: Einführung in CSS 231 Kapitel 11: Farbe 251 Kapitel 12: Text 269 Kapitel 13: Kästen 305 Kapitel 14: Listen, Tabellen & Formulare 335 Kapitel 15: Layout 363 Kapitel 16: Bilder 411 Kapitel 17: Layout in HTML5 433 Kapitel 18: Arbeitsablauf & Gestaltung 457 Kapitel 19: Veröffentlichung im Web 481 Index 499
£999.99
Wiley-VCH Verlag GmbH Python. Der Sprachkurs für Einsteiger und
Book SynopsisPython – einfach und leistungsfähig Sie haben schon viel Gutes über Python gehört und möchten auch in Python programmieren? Dann brauchen Sie dieses Buch. Vorwissen hingegen brauchen Sie nicht. Arnold Willemer erklärt Ihnen zu Beginn, was ein Programmierer überhaupt macht und wie ein Computer mit Zahlen und Texten umgeht. Danach erarbeiten Sie sich mit ihm Schritt für Schritt die Kunst des Programmierens in Python. Die witzige und gut gelaunte Schreibe des Autors wirkt zusätzlich motivierend. Und Ihren Lernerfolg können Sie anhand vieler Aufgaben und Musterlösungen überprüfen. So ermöglicht Ihnen das Buch zuverlässig den schnellen Einstieg in Python.Aus dem Inhalt• Programmieren für Einsteiger• Beschaffung und Installation der notwendigen Werkzeuge• Variablen, Abfragen, Schleifen, Funktionen• Objektorientierte Programmierung• Sequenzen, Tupel und Listen• Grafi sche Oberfl ächen mit Tkinter• Visualisieren mit dem Canvas-Widget• Module und Bibliotheken• Datenbankprogrammierung• Kommunikation in Netzwerken und mit dem BetriebssystemTable of ContentsVorwort 11 1 Programmieren für Einsteiger 15 1.1 Was tut eigentlich ein Programmierer? 15 1.2 Wie der Computer mit Daten umgeht 19 1.3 Sprachbarrieren zwischen Mensch und Computer 20 2 Annäherung an Python 23 2.1 Beschaffung und Installation 24 2.2 Werkzeug 25 2.2.1 Die Standard-IDE IDLE 26 2.2.2 Direktaufruf von Editor und Interpreter 27 2.3 Gestaltung eines Python-Programms 29 2.4 Kommentare 30 2.5 Die Last mit den Umlauten 31 3 Speicherwerke für Rechenkünstler 33 3.1 Verschiedene Zahlen 34 3.2 Mathematische Ausdrücke 35 3.3 Programmatisches Geschwätz: Zeichenketten 38 3.4 Alles muss raus: print 39 3.5 Futter für die Programme: input 41 3.6 Konvertierung der Variablentypen 42 3.7 Aufgaben 44 4 Ablaufstrukturen 47 4.1 Abfrage if 47 4.2 Der Umgang mit der Wahrheit 50 4.2.1 Vergleich zwischen Zahlen 50 4.2.2 Vergleich von Zeichenketten 52 4.2.3 Boolesche Verknüpfungen 53 4.3 Programmierte Wiederholung: Schleifen 55 4.3.1 Mit der Bedingung im Kopf: while 55 4.3.2 Prüfung der Benutzereingabe 56 4.3.3 Listen durchschleifen: for 60 4.3.4 Schleifenbruch mit break und continue 62 4.3.5 Schleifen können auch anders: else 63 4.4 Das Bermuda-Projekt 63 4.5 Aufgaben 66 5 Funktionen 69 5.1 Rückgabewert und Adresse einer Funktion 70 5.2 Parameter 71 5.2.1 Vorbelegte Parameter 73 5.2.2 Parameter per Namen belegen 74 5.2.3 Variable Anzahl von Parametern 75 5.3 Globale und lokale Variablen 76 5.4 Rekursion: Selbstgespräche einer Funktion 78 5.5 Die anonyme Funktion lambda 81 5.6 Das Bermuda-Projekt 81 5.7 Aufgaben 83 6 Wir bauen die Welt: Klassen 87 6.1 Konstruktor (und Destruktor?) 91 6.2 Privat oder Öffentlich? 92 6.3 Statisch: Ein Attribut für alle Objekte der Klasse 96 6.4 Wenn eine Zuweisung zur Referenz führt 98 6.5 Referenzlos im Abfall 100 6.6 Ein eigener Datencontainer: Der Binärbaum 101 6.6.1 Bäume, Äste und Knoten 102 6.6.2 Einbau einer Besucherfunktion 105 6.7 Selbst gebaute Operatoren 106 6.8 Erweiterte Erbschaftsangelegenheiten 109 6.8.1 Vererbung am Beispiel von Supermans Kiosk 110 6.8.2 Abstrakte Basisklassen 114 6.8.3 Polymorphie? Ein Problem der Anderen 116 6.8.4 Mehrfachvererbung 117 6.9 Das Bermuda-Projekt 119 6.10 Aufgaben 121 7 Ausnahmsweise falsch: Die Exception 125 7.1 Selbst gemachte Exception basteln 128 7.2 Python-Exceptions 131 7.3 Eine Zusicherung: Assert 132 8 Der Umgang mit Texten 133 8.1 Der Umgang mit Zeichenketten und deren Operatoren 133 8.2 Die Sequenz und die rechteckigen Klammern 134 8.3 Die String-Methoden 136 8.4 Textformatierung 139 8.4.1 Zeichenketten mit format ausrichten 140 8.4.2 Formatierung über das Prozentzeichen 141 8.5 Steuerzeichen 142 8.6 Internationales Parkett 143 8.6.1 Internationale Sonderzeichen im Programm 143 8.6.2 Daten umcodieren 144 8.6.3 Die nationale Umgebung 145 8.7 Mustererkennung mit regulären Ausdrücken 149 8.7.1 Die Funktionen für den Vergleich 149 8.7.2 Die wichtigsten Platzhalterzeichen 152 8.7.3 Beispielhafte Suche 152 8.7.4 Verfressene Quantoren 155 8.7.5 Noch ein paar Platzhalter 155 8.8 Das Bermuda-Projekt 156 8.9 Aufgaben 157 9 Kä;;ghaltung für Datenrudel 159 9.1 Schön eng beieinander: Die Sequenz 160 9.2 Heterogene Gemeinsamkeit: Das Tupel 160 9.3 Elementweise veränderbar: Die Liste 165 9.3.1 Listen anlegen und initialisieren 165 9.3.2 Elemente hinzufügen, ändern und löschen 166 9.3.3 Umräumen und sortieren 168 9.4 Dimensionen 169 9.5 Die Reißverschlussfunktion zip 171 9.6 Zugriff per Schlüssel: Das Dictionary 171 9.7 Einzigartig und unordentlich: Die Menge 173 9.8 Das Geheimnis der Container 176 9.9 Das Bermuda-Projekt 178 9.10 Aufgaben 183 10 Gra;;sche Ober;;äche (Tkinter) 187 10.1 Eine kleine Anwendung 189 10.2 Das Programm ist Event-gesteuert 190 10.2.1 Kontrollelemente lösen Ereignisse aus 190 10.2.2 Ereignisse und Reaktionen 192 10.3 Kontrollelemente im Fenster anordnen: Layout 194 10.3.1 Pack alles aufeinander! 194 10.3.2 Hinter Gitter verteilen: Grid 198 10.3.3 Pixelweise positionieren: Place 199 10.4 Kontrollelemente und ihre Optionen 201 10.4.1 Tkinter-Variablen . 203 10.4.2 Label: Aufkleber mit Schriftart 204 10.4.3 Druckknopf: Button 206 10.4.4 Einer unter vielen: Radiobutton 207 10.4.5 Abgehakt: Checkbutton 209 10.4.6 Der Umgang mit der Listbox 210 10.4.7 Ein Scrollbar am Beispiel einer Listbox 212 10.4.8 Die Eingabezeile Entry 214 10.4.9 Texte anzeigen und editieren 217 10.4.10 Schmackhafte Menüs 219 10.5 Eine selbst gebaute Tabelle 222 10.6 Dialogboxen 224 10.6.1 Kurzmeldung: Die Messagebox 224 10.6.2 Datei- und Verzeichnisauswahl 227 10.6.3 Farbselektor 231 10.6.4 Der eigene Dialog: tk_dialog 231 10.7 Das Bermuda-Projekt 233 10.8 Aufgaben 235 11 Kleine Zeichenschule 241 11.1 Canvas erzeugen 241 11.2 Zeichnen im Canvas 242 11.2.1 Linien 243 11.2.2 Rechtecke 244 11.2.3 Polygone 245 11.2.4 Ovale und Kreise 246 11.2.5 Bögen und Tortenstücke 247 11.2.6 Texte in die Gra;;k 250 11.2.7 Bilder und Symbole 251 11.2.8 Die Ereignisse im Canvas 253 11.3 Canvas als Widget-Halter 256 11.4 Das Bermuda-Projekt 257 11.5 Aufgaben 262 12 Gut verschnürt: Module, Pakete und Bibliotheken 265 12.1 Import 265 12.2 Eigene Module 267 12.3 Module testen 269 12.3.1 Das Hauptprogramm als Selbsttest 269 12.3.2 Kommentare testen Funktionen: doctest 270 12.3.3 unittest 272 12.4 Gebündelt zum Paket 274 12.5 Aufgaben 276 13 Naturwissenschaftliches 277 13.1 Mathematik: math 277 13.2 Zufallszahlen: random 280 13.3 Dezimalbrüche: decimal 280 13.4 Lineare Algebra mit NumPy und SciPy 282 13.5 Datumsbibliothek 284 13.5.1 Das Paket datetime 284 13.5.2 Das klassische Modul time 286 13.5.3 Schlafenszeit 288 13.6 Aufgaben 289 14 Dateien 291 14.1 Textdateien 291 14.2 Binärdateien 293 14.3 Zusammenfassung 295 14.4 Exceptions 296 14.5 Strukturierte Variablen sichern: JSON 297 14.6 Packen und Komprimieren: GZIP, ZIP und TAR 298 14.6.1 Eine Datei komprimieren: gzip 299 14.6.2 ZIP-Dateien und TAR-Archive 300 14.7 Aufgaben 302 15 Python und Datenbanken 305 15.1 Nichts als Tabellen 306 15.2 Verbindungsaufbau 309 15.2.1 Eine kleine, lokale Datenbank namens SQLite 309 15.2.2 Die allgegenwärtige Datenbank MySQL 310 15.2.3 Wenn es etwas mehr sein soll: PostgreSQL 312 15.3 Tabellen erstellen: CREATE 313 15.4 Variationen von INSERT 315 15.5 Änderungen mit UPDATE 316 15.6 Löschen mit DELETE 316 15.7 Ergebnisermittlung durch SELECT 317 16 Umgang mit XML-Dateien 319 16.1 Eine Speisekarte als XML-Datei 321 16.2 XML-Dateien mit ElementTree bearbeiten 322 16.3 Der XML-Klassiker DOM 326 16.4 Schrittweise durch die XML-Datei: SAX 329 16.5 Aufgaben 331 17 Netzwerk: Socket, E-Mail und WWW 335 17.1 Der Griff in die Steckdose: Sockets 335 17.2 Versenden von Mails: SMTP 339 17.3 Auslesen von Mails per POP3 343 17.4 Griff ins WWW 347 18 Parallelverarbeitung mit Threads 349 18.1 Das machen wir im Schlaf 350 18.2 Glockengeläut im Threading 350 18.2.1 Die Vereinzelungsanlage 352 18.2.2 Warten auf den Startschuss 354 18.2.3 Ein kleiner Wecker 355 18.3 Die alte Bibliothek thread 356 19 Zusammenarbeit mit dem Betriebssystem 359 19.1 Die Aufrufparameter des Programms 359 19.2 Umgebungsvariablen 360 19.3 Aufruf anderer Programme 361 19.4 Umgang mit dem Dateisystem 363 19.5 Das Ende des Programms 364 Programmentwicklung und Werkzeuge 367 A Fehler sind auch nur Menschen: Der Debugger 367 B Eclipse mit PyDev 368 C Richtig distribuieren: Das eigene Setup 372 Stichwortverzeichnis 377
£999.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Programming in Prolog: Using the ISO Standard
Book SynopsisOriginally published in 1981, this was the first textbook on programming in the Prolog language and is still the definitive introductory text on Prolog. Though many Prolog textbooks have been published since, this one has withstood the test of time because of its comprehensiveness, tutorial approach, and emphasis on general programming applications. Prolog has continued to attract a great deal of interest in the computer science community, and has turned out to be a basis for an important new generation of programming languages and systems for Artificial Intelligence. Since the previous edition of Programming in Prolog, the language has been standardised by the International Organization for Standardization (ISO) and this book has been updated accordingly. The authors have also introduced some new material, clarified some explanations, corrected a number of minor errors, and removed appendices about Prolog systems that are now obsolete.Trade ReviewFrom the reviews of the fifth edition: "This is the fifth and the most recent edition of a legendary book … . It was probably the first introductory Prolog book and it is still the most gentle introduction to Prolog for everyone, including non-computer scientists. … the book is as great as ever as an introductory text for Prolog. When a newbie asks for an introduction to Prolog, the best advice is still Clocksin & Mellish." (Bart Demoen, TLP-Theory and Practice of Logic Programming, Vol. 5 (3), 2005)Table of Contents1 Tutorial Introduction.- Gives the student a feel for what it is like to program in Prolog. Introduces objects, relationships, facts, rules, variables.- 1.1 Prolog.- 1.2 Objects and Relationships.- 1.3 Programming.- 1.4 Facts.- 1.5 Questions.- 1.6 Variables.- 1.7 Conjunctions.- 1.8 Rules.- 1.9 Summary and Exercises.- 2 A Closer Look.- More detailed presentation of Prolog syntax and data structures.- 2.1 Syntax.- 2.1.1 Constants.- 2.1.2 Variables.- 2.1.3 Structures.- 2.2 Characters.- 2.3 Operators.- 2.4 Equality and Unification.- 2.5 Arithmetic.- 2.6 Summary of Satisfying Goals.- 2.6.1 Successful satisfaction of a conjunction of goals.- 2.6.2 Consideration of goals in backtracking.- 2.6.3 Unification.- 3 Using Data Structures.- Representing objects and relationships by using trees and lists. Developing several standard Prolog programming techniques.- 3.1 Structures and Trees.- 3.2 Lists.- 3.3 Recursive Search.- 3.4 Mapping.- 3.5 Recursive Comparison.- 3.6 Joining Structures Together.- 3.7 Accumulators.- 3.8 Difference Structures.- 4 Backtracking and the “Cut”.- How a set of clauses generates a set of solutions. Using “cut” to modify the control sequence of running Prolog programs.- 4.1 Generating Multiple Solutions.- 4.2 The “Cut”.- 4.3 Common Uses of the Cut.- 4.3.1 Confirming the Choice of a Rule.- 4.3.2 The “cut-fail” Combination.- 4.3.3 Terminating a “generate and test”.- 4.4 Problems with the Cut.- 5 Input and Output.- Facilities available for the input and output of characters and structures. Developing a program to read sentences from the user and represent the structure as a list of words, which can be used with the Grammar Rules of Chapter.- 5.1 Reading and Writing Terms.- 5.1.1 Reading Terms.- 5.1.2 Writing Terms.- 5.2 Reading and Writing Characters.- 5.2.1 Reading Characters.- 5.2.2 Writing Characters.- 5.3 Reading English Sentences.- 5.4 Reading and Writing Files.- 5.4.1 Opening and closing streams.- 5.4.2 Changing the current input and output.- 5.4.3 Consulting.- 5.5 DeclaringOperators.- 6 Built-in Predicates.- Definition of the “core” built-in predicates, with sensible examples of how each one is used. By this point, the reader should be able to read reasonably complex programs, and should therefore be able to absorb the built-in predicates by seeing them in use.- 6.1 EnteringNew Clauses.- 6.2 Success and Failure.- 6.3 Classifying Terms.- 6.4 Treating Clauses as Terms.- 6.5 Constructing and Accessing Components of Structures.- 6.6 Affecting Backtracking.- 6.7 Constructing Compound Goals.- 6.8 Equality.- 6.9 Input and Output.- 6.10 Handling Files.- 6.11 Evaluating Arithmetic Expressions.- 6.12 Comparing Terms.- 6.13 Watching Prolog atWork.- 7 More Example Programs.- Many example programs are given, covering a wide range of interests. Examples include list processing, set operations, symbolic differentiation and simplification of formula.- 7.1 A Sorted Tree Dictionary.- 7.2 Searching a Maze.- 7.3 The Towers of Hanoi.- 7.4 Parts Inventory.- 7.5 List Processing.- 7.6 Representing andManipulating Sets.- 7.7 Sorting.- 7.8 Using the Database.- 7.8.1 Random.- 7.8.2 Gensym.- 7.8.3 Findall.- 7.9 SearchingGraphs.- 7.10 Sift the Two’s and Sift the Three’s.- 7.11 Symbolic Differentiation.- 7.12 Mapping Structures and Transforming Trees.- 7.13 Manipulating Programs.- 7.14 Bibliographic Notes.- 8 Debugging Prolog Programs.- By this point, the reader will be able to write reasonable programs, and so the problem of debugging will be relevant. Flow of control model, hints about common bugs, techniques of debugging..- 8.1 Laying out Programs.- 8.2 Common Errors.- 8.3 The Tracing Model.- 8.4 Tracing and Spy Points.- 8.4.1 Examining the Goal.- 8.4.2 Examining the Ancestors.- 8.4.3 Altering the Degree of Tracing.- 8.4.4 Altering the Satisfaction of the Goal.- 8.4.5 Other Options.- 8.4.6 Summary.- 8.5 Fixing Bugs.- 9 Using Prolog Grammar Rules.- Applications of existing techniques. Using Grammar Rules. Examining the design decisions for some aspects of analysing natural language with Grammar Rules.- 9.1 The Parsing Problem.- 9.2 Representing the Parsing Problemin Prolog.- 9.3 The Grammar Rule Notation.- 9.4 Adding ExtraArguments.- 9.5 Adding Extra Tests.- 9.6 Summary.- 9.7 Translating Language into Logic.- 9.8 More General Use of Grammar Rules.- 10 The Relation of Prolog to Logic.- Predicate Calculus, clausal form, resolution theorem proving, logic programming.- 10.1 Brief Introduction to Predicate Calculus.- 10.2 Clausal Form.- 10.3 A Notation for Clauses.- 10.4 Resolution and Proving Theorems.- 10.5 Horn Clauses.- 10.6 Prolog.- 10.7 Prolog and Logic Programming.- 11 Projects in Prolog.- A selection of suggested exercises, projects and problems.- 11.1 Easier Projects.- 11.2 Advanced Projects.- A Answers to Selected Exercises.- B Clausal Form Program Listings.- C Writing Portable Standard Prolog Programs.- The Prolog standard, writing portable programs and dealing with different Prolog implementations.- C.1 Standard Prolog for Portability.- C.2 Different Prolog Implementations.- C.3 Issues to LookOut For.- C.4 Definitions of some Standard Predicates.- C.4.1 Character Processing.- C.4.2 Directives.- C.4.3 Stream Input/Output.- C.4.4 Miscellaneous.- D CodetoSupport DCGs.- D.1 DCG Support Code.
£54.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG How to Solve It: Modern Heuristics
Book SynopsisNo pleasure lasts long unless there is variety in it. Publilius Syrus, Moral Sayings We've been very fortunate to receive fantastic feedback from our readers during the last four years, since the first edition of How to Solve It: Modern Heuristics was published in 1999. It's heartening to know that so many people appreciated the book and, even more importantly, were using the book to help them solve their problems. One professor, who published a review of the book, said that his students had given the best course reviews he'd seen in 15 years when using our text. There can be hardly any better praise, except to add that one of the book reviews published in a SIAM journal received the best review award as well. We greatly appreciate your kind words and personal comments that you sent, including the few cases where you found some typographical or other errors. Thank you all for this wonderful support.Table of ContentsI What Are the Ages of My Three Sons?.- 1 Why Are Some Problems Difficult to Solve?.- II How Important Is a Model?.- 2 Basic Concepts.- III What Are the Prices in 7–11?.- 3 Traditional Methods — Part 1.- IV What Are the Numbers?.- 4 Traditional Methods — Part 2.- V What’s the Color of the Bear?.- 5 Escaping Local Optima.- VI How Good Is Your Intuition?.- 6 An Evolutionary Approach.- VII One of These Things Is Not Like the Others.- 7 Designing Evolutionary Algorithms.- VIII What Is the Shortest Way?.- 8 The Traveling Salesman Problem.- IX Who Owns the Zebra?.- 9 Constraint-Handling Techniques.- X Can You Tune to the Problem?.- 10 Tuning the Algorithm to the Problem.- XI Can You Mate in Two Moves?.- 11 Time-Varying Environments and Noise.- XII Day of the Week of January 1st.- 12 Neural Networks.- XIII What Was the Length of the Rope?.- 13 Fuzzy Systems.- XIV Everything Depends on Something Else.- 14 Coevolutionary Systems.- XV Who’s Taller?.- 15 Multicriteria Decision-Making.- XVI Do You Like Simple Solutions?.- 16 Hybrid Systems.- 17 Summary.- Appendix A: Probability and Statistics.- A.1 Basic concepts of probability.- A.2 Random variables.- A.2.1 Discrete random variables.- A.2.2 Continuous random variables.- A.3 Descriptive statistics of random variables.- A.4 Limit theorems and inequalities.- A.5 Adding random variables.- A.6 Generating random numbers on a computer.- A.7 Estimation.- A.8 Statistical hypothesis testing.- A.9 Linear regression.- A.10 Summary.- Appendix B: Problems and Projects.- B.1 Trying some practical problems.- B.2 Reporting computational experiments with heuristic methods.- References.
£71.24
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Computability and Complexity in Analysis: 4th International Workshop, CCA 2000, Swansea, UK, September 17-19, 2000. Selected Papers
Book SynopsisThe workshop on Computability and Complexity in Analysis, CCA 2000, was hosted by the Department of Computer Science of the University of Wales Swansea, September 17{19, 2000. It was the fourth workshop in a successful series of workshops: CCA’95 in Hagen, Germany, CCA’96 in Trier, Germany, and CCA’98 in Brno, Czech Republic. About 40 participants from the countries United Kingdom, Germany, Japan, Italy, Russia, France, Denmark, Greece, and Ireland contributed to the success of this meeting. Altogether, 28 talkswere p- sented in Swansea. These proceedings include 23 papers which represent a cro- section through recent research on computability and complexity in analysis. The workshop succeeded in bringing together people interested in computability and complexity aspects of analysis and in exploring connections with nume- cal methods, physics and, of course, computer science. It was rounded o by a number of talks and papers on exact computer arithmetic and by a competition of v e implemented systems. A report on this competition has been included in these proceedings. We would like to thank the authors for their contributions and the referees for their careful work, and we hope for further inspiring and constructive meetings of the same kind. April 2001 Jens Blanck Vasco Brattka Peter Hertling Organization CCA2000was hosted by the Department of Computer Science of the University of Wales Swansea and took place on September 17{19, 2000.Table of ContentsComputability and Complexity in Analysis.- Effectivity of Regular Spaces.- The Degree of Unsolvability of a Real Number.- A Survey of Exact Arithmetic Implementations.- Standard Representations of Effective Metric Spaces.- Banach-Mazur Computable Functions on Metric Spaces.- A Generic Root Operation for Exact Real Arithmetic.- Effective Contraction Theorem and Its Application.- Polynomially Time Computable Functions over p-Adic Fields.- On the Computational Content of the Krasnoselski and Ishikawa Fixed Point Theorems.- Formalisation of Computability of Operators and Real-Valued Functionals via Domain Theory.- Computing a Required Absolute Precision from a Stream of Linear Fractional Transformations.- ?-Approximable Functions.- Computabilities of Fine-Continuous Functions.- The iRRAM: Exact Arithmetic in C++.- The Uniformity Conjecture.- Admissible Representations of Limit Spaces.- Characterization of the Computable Real Numbers by Means of Primitive Recursive Functions.- Effective Fixed Point Theorem over a Non-Computably Separable Metric Space.- Computational Dimension of Topological Spaces.- Some Properties of the Effective Uniform Topological Space.- On Computable Metric Spaces Tietze-Urysohn Extension Is Computable.- Is the Linear Schrödinger Propagator Turing Computable?.- A Computable Spectral Theorem.- Report on Competition.- Exact Real Arithmetic Systems: Results of Competition.
£44.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Algorithmics for Hard Problems: Introduction to
Book SynopsisAlgorithmic design, especially for hard problems, is more essential for success in solving them than any standard improvement of current computer tech nologies. Because of this, the design of algorithms for solving hard problems is the core of current algorithmic research from the theoretical point of view as well as from the practical point of view. There are many general text books on algorithmics, and several specialized books devoted to particular approaches such as local search, randomization, approximation algorithms, or heuristics. But there is no textbook that focuses on the design of algorithms for hard computing tasks, and that systematically explains, combines, and compares the main possibilities for attacking hard algorithmic problems. As this topic is fundamental for computer science, this book tries to close this gap. Another motivation, and probably the main reason for writing this book, is connected to education. The considered area has developed very dynami cally in recent years and the research on this topic discovered several profound results, new concepts, and new methods. Some of the achieved contributions are so fundamental that one can speak about paradigms which should be in cluded in the education of every computer science student. Unfortunately, this is very far from reality. This is because these paradigms are not sufficiently known in the computer science community, and so they are insufficiently com municated to students and practitioners.Table of Contents1 Introduction.- 2 Elementary Fundamentals.- 3 Deterministic Approaches.- 4 Approximation Algorithms.- 5 Randomized Algorithms.- 6 Heuristics.- 7 A Guide to Solving Hard Problems.- References.
£79.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Object-Oriented Programming in Oberon-2
Book SynopsisWithout a doubt the idea of object-oriented programming has brought some motion into the field of programming methodology and enlarged the set of programming languages. Object-oriented programming is nothing new-it first arose in the sixties. The motivation came from the simulation of discrete event systems. The concept first manifested itself in the language Simula 67. It took nearly two decades for the method to gain impetus, and today object-oriented programming is an important concept and a powerful technique. Meanwhile, we can even speak of an over reaction, for the concept has become a buzzword. But buzzwords always appear where there is the hope of exploiting ill-informed clients because they see the new approach as the solution to all their problems. Thus object-oriented programming is often hailed as a panacea. And so the question is justified: What is really behind it? To let the cat out of the bag: There is more to object-oriented programming than merely putting data as objects in the fore ground, instead of algorithms to which the data are subject. It is more than purely an alternative view of programmed systems. To identify the essence of object-oriented programming, is the subject of this book. This is a textbook that shows in a didactically skillful way which concepts and constructs are new, where they can be employed reasonably, and what advantages they offer. For, not all programs are automatically improved by merely recasting them in an object-oriented style.Table of Contents1 Overview.- 1.1 Procedure-Oriented Thinking.- 1.2 Object-Oriented Thinking.- 1.3 Object-Oriented Languages.- 1.4 How OOP Differs from Conventional Programming.- 1.5 Classes as Abstraction Mechanisms.- 1.6 History of Object-Oriented Languages.- 1.7 Summary.- 2 Oberon-2.- 2.1 Features of Oberon-2.- 2.2 Declarations.- 2.3 Expressions.- 2.4 Statements.- 2.5 Procedures.- 2.6 Modules.- 2.7 Commands.- 3 Data Abstraction.- 3.1 Concrete Data Structures.- 3.2 Abstract Data Structures.- 3.3 Abstract Data Types.- 4 Classes.- 4.1 Methods.- 4.2 Classes and Modules.- 4.3 Examples.- 4.4 Common Questions.- 5 Inheritance.- 5.1 Type Extension.- 5.2 Compatibility of a Base Type and its Extension.- 5.3 Static and Dynamic Type.- 5.4 Run-Time Type Checking.- 5.5 Extensibility in an Object-Oriented Sense.- 5.6 Common Questions.- 6 Dynamic Binding.- 6.1 Messages.- 6.2 Abstract Classes.- 6.3 Examples.- 6.4 Message Records.- 6.5 Common Questions.- 7 Typical Applications.- 7.1 Abstract Data Types.- 7.2 Generic Components.- 7.3 Heterogeneous Data Structures.- 7.4 Replaceable Behavior.- 7.5 Adaptable Components.- 7.6 Semifinished Products.- 7.7 Summary.- 8 Useful Techniques.- 8.1 Initialization of Objects.- 8.2 Extending a System at Run Time.- 8.3 Persistent Objects.- 8.4 Wrapping Classes in Other Classes.- 8.5 Extensibility in Multiple Dimensions.- 8.6 Multiple Inheritance.- 8.7 Models and Views.- 8.8 Iterators.- 8.9 Modifying Inherited Methods.- 9 Object-Oriented Design.- 9.1 Functional Design.- 9.2 Object-Oriented Design.- 9.3 Identifying the Classes.- 9.4 Designing the Interface of a Class.- 9.5 Abstract Classes.- 9.6 Relationships between Classes.- 9.7 When to Use Classes.- 9.8 Common Design Errors.- 10 Frameworks.- 10.1 Subsystems and Frameworks.- 10.2 The MVC Framework.- 10.3 A Framework for Objects in Texts.- 10.4 Application Frameworks.- 11 Oberon0 — A Case Study.- 11.1 The Viewer System.- 11.2 Handling User Input.- 11.3 A Text Editor.- 11.4 A Graphics Editor.- 11.5 Embedding Graphics in Texts.- 12 Costs and Benefits of OOP.- 12.1 Benefits.- 12.2 Costs.- 12.3 The Future.- A Oberon-2 — Language Definition.- A.1 Introduction.- A.2 Syntax.- A.3 Vocabulary and Representation.- A.4 Declarations and Scope Rules.- A.5 Constant Declarations.- A.6 Type Declarations.- A.7 Variable Declarations.- A.8 Expressions.- A.9 Statements.- A.10 Procedure Declarations.- A.11 Modules.- A.12 Appendices to the Language Definition.- B The Module OS.- C The Module IO.- D How to Get Oberon.
£44.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Job Scheduling Strategies for Parallel
Book SynopsisThis volume contains the papers selected after a very careful refereeing process for presentation during the Workshop on Job Scheduling Stategies for Parallel Processing, held in Santa Barbara, California, as a prelude to the IPPS '95 conference in April 1995.The 19 full papers presented demonstrate that parallel job scheduling takes on a crucial role as multi-user parallel supercomputers become more widespread. All aspects of job scheduling for parallel systems are covered, from the perspectives of academic research, industrial design of parallel systems, as well as user needs. Of particular interest, also for nonexpert readers, is the introductory paper "Parallel Job Scheduling: Issues and Approaches" by the volume editors.Table of ContentsParallel job scheduling: Issues and approaches.- Scheduling on the Tera MTA.- A scalable multi-discipline, multiple-processor scheduling framework for IRIX.- Scheduling to reduce memory coherence overhead on coarse-grain multiprocessors.- Time Space Sharing Scheduling and architectural support.- Demand-based coscheduling of parallel jobs on multiprogrammed multiprocessors.- Multiprocessor scheduling for high-variability service time distributions.- The interaction between memory allocation and adaptive partitioning in message-passing multicomputers.- Analysis of non-work-conserving processor partitioning policies.- Loop-Level Process Control: An effective processor allocation policy for multiprogrammed shared-memory multiprocessors.- A microeconomic scheduler for parallel computers.- On the benefits and limitations of dynamic partitioning in parallel computer systems.- Intelligent fuzzy control to augment scheduling capabilities of network queuing systems.- Parallel processing on dynamic resources with CARMI.- Job scheduling under the Portable Batch System.- The ANL/IBM SP scheduling system.- Requirements of the Cornell Theory Center for resource management and process scheduling.- Job management requirements for nas parallel systems and clusters.- Job characteristics of a production parallel scientific workload on the NASA Ames iPSC/860.
£44.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG How to Solve It: Modern Heuristics
Book SynopsisNo pleasure lasts long unless there is variety in it. Publilius Syrus, Moral Sayings We've been very fortunate to receive fantastic feedback from our readers during the last four years, since the first edition of How to Solve It: Modern Heuristics was published in 1999. It's heartening to know that so many people appreciated the book and, even more importantly, were using the book to help them solve their problems. One professor, who published a review of the book, said that his students had given the best course reviews he'd seen in 15 years when using our text. There can be hardly any better praise, except to add that one of the book reviews published in a SIAM journal received the best review award as well. We greatly appreciate your kind words and personal comments that you sent, including the few cases where you found some typographical or other errors. Thank you all for this wonderful support.Table of ContentsI What Are the Ages of My Three Sons?.- 1 Why Are Some Problems Difficult to Solve?.- II How Important Is a Model?.- 2 Basic Concepts.- III What Are the Prices in 7–11?.- 3 Traditional Methods — Part 1.- IV What Are the Numbers?.- 4 Traditional Methods — Part 2.- V What’s the Color of the Bear?.- 5 Escaping Local Optima.- VI How Good Is Your Intuition?.- 6 An Evolutionary Approach.- VII One of These Things Is Not Like the Others.- 7 Designing Evolutionary Algorithms.- VIII What Is the Shortest Way?.- 8 The Traveling Salesman Problem.- IX Who Owns the Zebra?.- 9 Constraint-Handling Techniques.- X Can You Tune to the Problem?.- 10 Tuning the Algorithm to the Problem.- XI Can You Mate in Two Moves?.- 11 Time-Varying Environments and Noise.- XII Day of the Week of January 1st.- 12 Neural Networks.- XIII What Was the Length of the Rope?.- 13 Fuzzy Systems.- XIV Everything Depends on Something Else.- 14 Coevolutionary Systems.- XV Who’s Taller?.- 15 Multicriteria Decision-Making.- XVI Do You Like Simple Solutions?.- 16 Hybrid Systems.- 17 Summary.- Appendix A: Probability and Statistics.- A.1 Basic concepts of probability.- A.2 Random variables.- A.2.1 Discrete random variables.- A.2.2 Continuous random variables.- A.3 Descriptive statistics of random variables.- A.4 Limit theorems and inequalities.- A.5 Adding random variables.- A.6 Generating random numbers on a computer.- A.7 Estimation.- A.8 Statistical hypothesis testing.- A.9 Linear regression.- A.10 Summary.- Appendix B: Problems and Projects.- B.1 Trying some practical problems.- B.2 Reporting computational experiments with heuristic methods.- References.
£54.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Projektleiter-Praxis: Optimale Kommunikation und
Book SynopsisDas erfolgreiche Fachbuch widmet sich der psychosozialen Dimension der Projektarbeit. Vor diesem Hintergrund werden alle Projektphasen beleuchtet. Schwerpunkte sind: Planung und Gestaltung des Projektbeginns, methodische Hinweise zur Teamarbeit, Regeln der Gesprächsführung, Umgang mit Macht, Hierarchie und Widerstand im Rahmen der Projektarbeit, Partizipation, Gestaltung des Projektendes, Rolle und Anforderungsprofil des Projektleiters.Fachlich kompetent und übersichtlich gestaltet, gibt das Arbeitsbuch eine ebenso praxisgerechte wie breitgefächerte Hilfestellung für Projektleiter und Führungskräfte in den verschiedensten Bereichen. In der Neuauflage wurden die Entwicklungen in der Praxis berücksichtigt. Das Buch ist zu einem Klassiker der Projektarbeit geworden und wird in vielen Firmen und Seminaren als Lehrbuch eingesetzt.Table of Contents1 Orientierungshilfe für den Leser.- 1.1 Ziele des ersten Kapitels.- 1.2 Was hat sich in der Projektarbeit seit der 1. Auflage verändert?.- 1.3 Typische Probleme in der Projektarbeit und der Beitrag des Buches.- 1.4 Übersicht über die einzelnen Kapitel.- 2 Unser Grundverständnis von Projektmanagement.- 2.1 Ziele des zweiten Kapitels.- 2.2 Ein gemeinsames Verständnis über Projektmanagement ist nötig.- 2.3 Acht Merkmale für erfolgreiches Projektmanagement.- 2.4 Die fünf Dimensionen der Projektarbeit.- 2.5 Projektarbeit verlangt, die Dinge im Systernzusammenhang zu sehen.Das OSTO-Modell: das Unternehmen als offenes sozio-techno-ökonornisches System.- 2.6 Empfehlungen.- 3 Der Projektvereinbarungsprozess von der Projektidee bis zum klaren Projektauftrag.- 3.1 Ziele des dritten Kapitels.- 3.2 Was ist unter einem Projektvereinbarungsprozess zu verstehen?.- 3.3 Sage rnir, wie ein Projekt beginnt, und ich sage Dir, wie es endet!.- 3.4 Praxisprobleme.- 3.5 Die zwei Ebenen des Projektvereinbarungsprozesses.- 3.5.1 Analysieren Sie die Ausgangssituation des Projektes.- 3.5.2 Die Inhaltsebene der Projektvereinbarung.- 3.5.3 Kernpunkte des Projektauftrags.- 3.6 Der Projektvereinbarungsprozess verlangt Rollenbewusstsein.- 3.7 Der Weg der Projektvereinbarung—das Wie.- 3.7.1 Worauf sollte der ProjektIeiter bei der Gestaltung der Projektvereinbarung achten?.- 3.7.2 Prüfen Sie Ihre persönliche Ausgangssituation für die ProjektIeitung!.- 3.8 Glosse.- 3.9 Empfehlungen und Checklisten.- 4 Erfolgreich arbeiten im Projektteam.- 4.1 Ziele des vierten Kapitels.- 4.2 Praxisprobleme.- 4.3 Nach welchen Kriterien sind die Mitarbeiter des Projektteams auszuwahlen.- 4.3.1 Wer soli über die Mitarbeit im Projektteam entscheiden?.- 4.3.2 Glosse.- 4.3.3 Wie groß sollte ein Projektteam sein?— Kernteam und erweitertes Team.- 4.4 Durch welche Faktoren wird die Arbeit des Projektteams beeinflusst?.- 4.4.1 Ziele und Aufgaben der Gruppe — das Thema.- 4.4.2 Individuum — Einstellung, Verhalten, Qualifikation des Einzelnen.- 4.4.3 Gruppe.- 4.4.4 Das Umfeld des Projektteams.- 4.5 Die Kick-Off-Sitzung.- 4.6 Die Gruppenprozessanalyse.- 4.7 Glosse.- 4.8 Empfehlungen und Checklisten.- 5 Partnerschaftliche Gesprachsfiihrung - ein Schliissel zur erfolgreichen Projektarbeit.- 5.1 Ziele des fiinften Kapitels.- 5.2 Die Praxisprobleme.- 5.3 Grundlagen der Gesprachsfiihrung.- 5.3.1 Wertschatzung und Achtung des Menschen.- 5.3.2 Offenes Verhalten.- 5.3.3 Einfiihlungsvermogen - die Botschaft wahrnehmen.- 5.4 Techniken der Gesprachsfiihrung - Hinweise und Regeln.- 5.4.1 Hinweise zum aktiven Zuhoren.- 5.4.2 Stellen Sie echte Fragen.- 5.4.3 Werfragt, fiihrt!.- 5.4.4 Mach mal Pause.- 5.4.5 Killerphrasen konnen ein Gesprach tOten.- 5.4.6 Feedback rnacht satt.- 5.5 Verstandlichkeit - ein Schltissel zurn gegenseitigen Verstehen.- 5.6 Checklisten zur Gesprachsftihrung.- 6 Macht, Hierarchie und Autoritat in der Projektarbeit.- 6.1 Ziele des sechsten Kapitels.- 6.2 Was bedeutet Macht?.- 6.3 Wie kann der Projektleiter Macht in der Praxis erkennen?-Die Praxisproblerne.- 6.4 Hierarchie und Projektarbeit - ein schizophrenes Muster?.- 6.5 Unsere „auBeren“ und „inneren“ Hierarchien-Personelle Machtfaktoren.- 6.5.1 Der Einfluss von Ftihrungskraften auf die Projektarbeit.- 6.5.2 Unsere inneren Hierarchien.- 6.6 Glosse.- 6.7 Zusammenfassung und Hinweise.- 7 Akzeptanz oder Widerstand: Erfolgskriterium fiir Innovationen.- 7.1 Ziele des siebten Kapitels.- 7.2 Wie begegnen uns Widerstande?.- 7.3 Was ist Widerstand?.- 7.4 Die Ursachen ftir Widerstand.- 7.4.1 Generelle WiderstandsauslOser, die in der Natur der Projektarbeit liegen.- 7.4.2 Projektbezogene Widerstandsausloser.- 7.5 Der Urngang mit Widerstand.- 7.5.1 Zurn Urngang mit Widerstand auf der Ebene des Gesarntunternehrnens.- 7.5.2 Zurn Urngang mit Widerstand auf der Ebene des Projektes.- 7.5.3 Wie gehe ich als Projektleiter personlich mit Widerstand urn?.- 7.6 Checklisten ftir den Projektleiter.- 8 Der Projektabschluss: Bruchstellen sind Fundstellen.- 8.1 Ziele des achten Kapitels.- 8.2 Die Praxisproblerne.- 8.3 Das Projektende: Zwischen ktinstIicher Verlangerung und heimlichem Abseilen.- 8.4 Werten Sie Projekte systematisch aus.- 8.5 Empfehlungen und Checklisten.- 9 Gedanken zur Rolle und zurn Anforderungsprofil des Projektleiters.- 9.1 Ziele des neunten Kapitels.- 9.2.1 Wie sehen wir die ProjektIeiterrolle?.- 9.3 Aufgaben des ProjektIeiters.- 9.4 Welche Kompetenzen sollte ein ProjektIeiter haben?.- 9.5 Zur Qualifikation eines Projektleiters.- 9.6 Qualifikationsmoglichkeiten ftir ProjektIeiter.- 9.7 Checklisten.- 9.7.1 Fragen zum eigenen Rollenverstandnis.- 9.7.2 Fragen zur Sichtweise von auBen.- Stichwortverzeichnis.
£44.99
Examicus Verlag Dokumentation des Webkonferenzsystems Spreed
£31.82
Examicus Verlag Administration eines Teams von Bildarbeitern
£30.88
Springer Building web applications with Vue.js: MVVM
Book Synopsis Get started with Vue.js quickly and easily with this book This book provides a compact and practical introduction to the popular Vue.js. Use the MVVC concept for applications on the web on the basis of MVC design patterns and create single-page web applications easily. You will use one of the powerful frameworks based only on elementary WWW standard technologies. With Vue.js you will understand and apply data binding, components, directives and modularity. With this book, you will not only learn the most important basics of Vue.js. You will also learn how to create and maintain web applications with this JavaScript web framework. The focus of this comprehensive work is on the following aspects: - HTML/CSS/JavaScript and the Web: The Vue.js environment - Basis of JavaScript (above all JSON) - Working with the Vue instance - templates - Double Curly Syntax and Data Binding With its strong application focus, this book on Vue.js is an ideal companion for self-study or relevant courses. In terms of content, it is aimed at: (a) creators of websites (b) programmers c) Web designer Dive even deeper into the matter Ralph Steyer shows which prerequisites you should have to work with this book. Then you will learn more about the framework and the special features of Vue.js. In the further course, the author covers these partial aspects, among others: - First examples - just test Vue.js once - How and why does Vue.js work? - Conditional Rendering: The v-if directive - making decisions - Dynamic layouts with data binding - making stylesheets dynamic - Forms and form data binding - interaction with the user - Transitions and animations - Moving things If you want to learn even more about the application, this book gives you an outlook on further possible uses and functions of Vue.js in the final chapter. To make it easier for you to get started, you will find program codes and illustrations in each chapter that illustrate complex processes.Table of ContentsIntroduction - Before we really get started - First examples - Just testing Vue js - Behind the scenes - How and why does Vue js work? - Vue js in depth - The Vue instance, Vue templates and data binding - Working with arrays - Iterations with the v-for directive - Conditional rendering - The v-if directive - Making decisions - Events, methods, Observers and Calculated Properties - Calculated Results and Responses - Dynamic Layouts with Data Binding - Making Stylesheets Dynamic - Forms and Form Data Binding - Interacting with the User - Filtering Techniques - Selected Data Only - Transitions and Animations - Moving Things - Looking Ahead - What Else is in Vue js?
£54.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG Navigation: Teil C: Funkpeilwesen,
Book SynopsisTable of Contents1 Funkpeilwesen.- 2 Hyperbelnavigation.- 3 Radar.- 4 Integrierte Navigation und NAVSTAR GPS.- 5 Physik.- 6 Datenverarbeitung.- 7 Formelsammlung für die Funknavigation.
£54.99
Springer-Verlag Berlin and Heidelberg GmbH & Co. KG PLC Programming In Instruction List According To IEC 61131-3: A Systematic And Action-Oriented Introduction In Structured Programming
Book SynopsisThis textbook and exercise book provides a solid basic knowledge and comprehensive practical skills in dealing with PLC programming. Numerous exercises help to deepen the material. With the accompanying simulation software and sample solutions, the acquired knowledge can be applied immediately. The software can be downloaded via the Internet. The knowledge of number systems and digital technology conveyed in the book is an important prerequisite for skilful and clever PLC programming. The programming language used, "Instruction list according to IEC 61131-3", provides the best insights into the functioning of a PLC. The didactically prepared programming examples for switching networks, signal memories, time functions, counters, function blocks and functions, program structures, sequence controls, data types and much more enable systematic learning of programming. The 5th, corrected edition experiences an expansion of the exercises with a didactically prepared project for the control of a mountain railway. The associated simulation software "PLC-lite" enables the realisation of controls for the mountain railway and the "realistic" representation of the cableway movements on the screen.Table of ContentsNumber systems, dual numbers and codes.- Boolean algebra.- Flip-flops and static memories.- Dynamic memory elements and counters.- Switching networks with PLC.- Circuits with signal memories.- Time functions.- Counters.- Function blocks.- Jumps, loops and repetitions.- Functions.- Sequential controls.
£54.99
Chris Bush ChatGPT for Programmers
£17.09
ERROL HOWARD Programming with Python
£26.09
Lucid Page Media Python Programming for Beginners
£19.79
BoD - Books on Demand Objektorientierte Programmierung in Java
£23.68
BoD - Books on Demand Das C64Kompendium
£999.99
BoD - Books on Demand Die Bewertung der Erfolgswahrscheinlichkeit von SoftwareInnovationen
£18.27
BoD - Books on Demand ErgebnisAutomation für die Bundesliga mit n8n
£12.34
Books on Demand Einführung in die agile Business-Analyse:
Book Synopsis
£30.88
Books on Demand Low-Code-Entwicklung - Potential, Chancen,
Book Synopsis
£55.96
BoD - Books on Demand Mycromars Hawk
£15.22
BoD - Books on Demand journey 2 shared understanding
£21.76
BoD - Books on Demand Die Psychologie erfolgreicher Software
£24.90
BoD - Books on Demand Personalsoftware für den Mittelstand
£29.90