A decision procedure is an algorithm that, given a decision problem, terminates with a correct yes/no answer. Here, the authors focus on theories that are expressive enough to model real problems, but are still decidable. Specifically, the book concentrates on decision procedures for first-order theories that are commonly used in automated verification and reasoning, theorem-proving, compiler optimization and operations research. The techniques described in the book draw from fields such as graph theory and logic, and are routinely used in industry. The authors introduce the basic terminology of satisfiability modulo theories and then, in separate chapters, study decision procedures for each of the following theories: propositional logic; equalities and uninterpreted functions; linear arithmetic; bit vectors; arrays; pointer logic; and quantified formulas. They also study the problem of deciding combined theories and dedicate a chapter to modern techniques based on an interplay between a SAT solver and a decision procedure for the investigated theory. This textbook has been used to teach undergraduate and graduate courses at ETH Zurich, at the Technion, Haifa, and at the University of Oxford. Each chapter includes a detailed bibliography and exercises. Lecturers´ slides and a C++ library for rapid prototyping of decision procedures are available from the authors´ website.
This practical guide focuses on principles, tactics, and actionable methods for presenting your designs. Whether you design UX, websites, or products, you´ll learn how to win over anyone who has influence over the project-with the goal of creating the best experience for the end user.
Die optimale Prüfungsvorbereitung anhand 100 Aufgaben zur Technischen Informatik mit ausführlicher Lösung. Zu jedem Kapitel wird eine Einleitung mit Link auf die Videoaufzeichnung einer zugehörigen Vorlesung am Karlsruher Institut für Technologie gegeben. Außerdem können in einem Forum Fragen und Probleme zu allen Aufgaben diskutiert werden. Behandelt werden die Themen: Schaltnetze und Schaltwerke, Complementary Metal Oxide Semiconductor (CMOS), Binary Decision Diagram (BDD), Zahlendarstellung, Kodierung und Fehlererkennung, Verschlüsselung, Rechnerarchitektur, Programmierung, Assembler, Betriebssysteme, Dateiorganisation und weitere.
Was ist Information? Wie kann man sie darstellen, sicher übertragen oder speichern? Viele Fragen, auf die das Buch Antworten gibt. Die Informationstheorie liefert die Grundlage für die Berechnung des Informationsgehalts von diskreten und kontinuierlichen Quellen und deren Darstellung in kodierter Form. So können erforderliche Speicher- und Kanalkapazitäten bei der Informationsverarbeitung und -übertragung in IT-Systemen bestimmt werden. Abschnitte im Kapitel Kanalkodierung wurden inhaltlich neu gestaltet und erweitert. Es zeigt Lösungen für eine sichere Informationsübertragung über gestörte Kanäle. Ausführlich werden Block- und blockfreie Kodes, serielle und parallele Kodeverkettungen mit hard decision- und (iterativer) soft decision-Dekodierung beschrieben, die zur Fehlererkennung und Fehlerkorrektur dienen. Der Inhalt Informationsquellen und deren Beschreibung - Kodierung diskreter Quellen - Nachrichten und Kanäle - Diskrete Kanäle - Analoge Kanäle - Quantisierung analoger Signale - Kanalkodierung und Fehlerkorrekturverfahren - Bewertung von Kanalkodes Die Zielgruppen Studierende der Informatik, Medieninformatik, Nachrichtentechnik, Mathematik an Universitäten und FachhochschulenInformatiklehrer und Praktiker Die Autoren Dr. Dagmar Schönfeld, TU Dresden Dr. Herbert Klimant, TU Dresden Dr. Rudi Piotraschke, TU Dresden
One key responsibility of product designers and UX practitioners is to conduct formal and informal research to clarify design decisions and business needs. With this quick reference guide, you´ll learn a common language and set of tools to help you carry out research in an informed and productive manner.
Data Science Design Patterns brings together several dozen proven patterns for building successful decision-support and decision-automation systems in the enterprise. Like Martin Fowler´s classic Patterns of Enterprise Application Architecture, it helps you rapidly hone in on proven solutions to common problems, leveraging the hard-won expertise of those who have come before you. Todd Morley helps you draw upon and integrate diverse domains including statistics, machine learning, information retrieval, compression, optimization, and other areas of software development and business consulting. His patterns address many common challenges, including categorization, prediction, optimization, testing, and human factors. They link directly to key goals for data science and analytics: increasing revenue, decreasing costs, reducing risk, choosing strategies, and making key decisions. Each pattern offers a high-level design for an application module or layer that either directly solves an enterprise-scale data science problem, or offers a higher-level approach to solving it. Throughout, Morley presents wide-ranging examples, links to real-world case studies, and extensive bibliographic references for deepening your understanding. This guide´s patterns will substantially shorten the learning curve faced by software developers, architects, and IT professionals who have limited mathematical background, and are tasked with solving large-scale data science business problems. They will be equally valuable to experienced data scientists interested in applying best practices to become even more effective.
In The Death Algorithm and Other Digital Dilemmas, Roberto Simanowski wonders if we are on the brink of a society that views social, political, and ethical challenges as technological problems that can be fixed with the right algorithm, the best data, or the fastest computer. For example, the ´´death algorithm ¿ is programmed into a driverless car to decide, in an emergency, whether to plow into a group of pedestrians, a mother and child, or a brick wall. Can such life-and-death decisions no longer be left to the individual human? In these incisive essays, Simanowski asks us to consider what it means to be living in a time when the president of the United States declares the mainstream media to be an enemy of the people¿while Facebook transforms the people into the enemy of mainstream media. Simanowski describes smartphone zombies (or ´´smombies¿) who remove themselves from the physical world to the parallel universe of social media networks; calls on Adorno to help parse Trump´s tweeting; considers transmedia cannibalism, as written text is transformed into a postliterate object; compares the economic and social effects of the sharing economy to a sixteen-wheeler running over a plastic bottle on the road; and explains why philosophy mat become the most important element in the automotive and technology industries.
Why just get by in F# when you can program in style! This book goes beyond syntax and into design. It provides F# developers with best practices, guidance, and advice to write beautiful, maintainable, and correct code. Stylish F# covers every design decision that a developer makes in constructing F# programs, helping you make the most educated and valuable design choices at every stage of code development. You will learn about the design of types and function signatures, the benefits of immutability, and the uses of partial function application. You will understand best practices for writing APIs to be used by F#, C#, and other languages. Each carefully vetted design choice is supported with compelling examples, illustrations, and rationales. What You´ll Learn Know why, when, and how to code in immutable style Use collection functions, piping, and function composition to build working software quickly Be aware of the techniques available to bring error handling into the mainstream of program logic Optimize F# code for maximum performance Identify and implement opportunities to use function injection to improve program design Appreciate the methods available to handle unknown data values Understand asynchronous and parallel programming in F#, and how it differs from C# asynchronous programming Who This Book Is For Any developer who writes F# code and wants to write it better
User interface design is a challenging, multi-disciplinary activity that requires understanding a wide range of concepts and techniques that are often subjective and even conflicting. Imagine how much it would help if there were a single perspective that you could use to simplify these complex issues down to a small set of objective principles. In UI is Communication , Everett McKay explains how to design intuitive user interfaces by focusing on effective human communication. A user interface is ultimately a conversation between users and technology. Well-designed user interfaces use the language of UI to communicate to users efficiently and naturally. They also recognize that there is an emotional human being at the other end of the interaction, so good user interfaces strive to make an emotional connection. Applying what you learn from UI is Communication will remove much of the mystic, subjectiveness, and complexity from user interface design, and help you make better design decisions with confidence. It´s the perfect introduction to user interface design. Approachable, practical communication-based guide to interaction and visual design that you can immediately apply to projects to make solid design decisions quickly and confidently Includes design makeovers so you can see the concepts in practice with real examples Communication-based design process ties everything from interaction to visual design together