
Essential Logic for Computer Science
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Computer scientists use logic for testing and verification of software and digital circuits, but many computer science students study logic only in the context of traditional mathematics, encountering the subject in a few lectures and a handful of problem sets in a discrete math course. This book offers a more substantive and rigorous approach to logic that focuses on applications in computer science. Topics covered include predicate logic, equation-based software, automated testing and theorem proving, and large-scale computation.
Formalism is emphasized, and the book employs three formal notations: traditional algebraic formulas of propositional and predicate logic; digital circuit diagrams; and the widely used partially automated theorem prover, ACL2, which provides an accessible introduction to mechanized formalism. For readers who want to see formalization in action, the text presents examples using Proof Pad, a lightweight ACL2 environment. Readers will not become ALC2 experts, but will learn how mechanized logic can benefit software and hardware engineers. In addition, 180 exercises, some of them extremely challenging, offer opportunities for problem solving. There are no prerequisites beyond high school algebra. Programming experience is not required to understand the book's equation-based approach. The book can be used in undergraduate courses in logic for computer science and introduction to computer science and in math courses for computer science students.
More details
Other editions
Additional editions

Persons
Ruben Gamboa is Professor in the Department of Computer Science at the University of Wyoming.
Content
- Intro
- Title Page
- Copyright
- Dedication
- Table of Contents
- Preface
- I: Logic and Equations
- 1. Computer Systems: Simple Principles, Complex Behavior
- 1.1. Hardware and Software
- 1.2. Structure of a Program
- 1.3. Deep Blue and Inductive Definitions
- Exercises
- 2. Boolean Formulas and Equations
- 2.1. Reasoning with Equations
- Exercises
- 2.2. Boolean Equations
- Exercises
- 2.3. Boolean Formulas
- Exercises
- 2.4. Digital Circuits
- Exercises
- 2.5. Deduction
- Exercises
- 2.6. Predicates and Quantifiers
- Exercises
- 2.7. Reasoning with Quantified Predicates
- Exercises
- 2.8. Boolean Models
- Exercises
- 2.9. More General Models with Predicates and Quantifiers
- 3. Software Testing and Prefix Notation
- Exercises
- 4. Mathematical Induction
- 4.1. Lists as Mathematical Objects
- Exercises
- 4.2. Mathematical Induction
- Exercises
- 4.3. Defun: Defining Operators in ACL2
- 4.4. Concatenation, Prefixes, and Suffixes
- Exercises
- 5. Mechanized Logic
- 5.1. ACL2 Theorems and Proofs
- 5.2. Using Books of Proven Theorems
- Exercises
- 5.3. Theorems with Constraints
- Exercises
- 5.4. Helping Mechanized Logic Find Its Way
- Exercises
- 5.5. Proof Automation and Things That Can't Be Done
- Exercises
- II: Computer Arithmetic
- 6. Binary Numerals
- 6.1. Numbers and Numerals
- Exercises
- 6.2. Numbers from Numerals
- Exercises
- 6.3. Binary Numerals
- Exercises
- 7. Adders
- 7.1. Adding Numerals
- Exercises
- 7.2. Circuits for Adding One-Bit Binary Numerals
- 7.3. Circuit for Adding Two-Bit Binary Numerals
- Exercises
- 7.4. Adding w-Bit Binary Numerals
- Exercises
- 7.5. Numerals for Negative Numbers
- Exercises
- 8. Multipliers and Bignum Arithmetic
- 8.1. Bignum Adder
- Exercises
- 8.2. Shift-and-Add Multiplier
- Exercises
- III: Algorithms
- 9. Multiplexers and Demultiplexers
- 9.1. Multiplexer
- Exercises
- 9.2. Demultiplexer
- Exercises
- 10. Sorting
- 10.1. Insertion-Sort
- Exercises
- 10.2. Order-Preserving Merge
- Exercises
- 10.3. Merge-Sort
- Exercises
- 10.4. Analysis of Sorting Algorithms
- 10.4.1. Counting Computation Steps
- Exercises
- 10.4.2. Computation Steps in Demultiplex
- Exercises
- 10.4.3. Computation Steps in Merge
- Exercises
- 10.4.4. Computation Steps in Merge-Sort
- Exercises
- 10.4.5. Computation Steps in Insertion-Sort
- Exercises
- 11. Search Trees
- 11.1. Finding Things
- 11.2. The AVL Solution
- 11.3. Representing Search Trees
- 11.4. Ordered Search Trees
- Exercises
- 11.5. Balanced Search Trees
- Exercises
- 11.6. Inserting a New Item in a Search Tree
- Exercises
- 11.7. Insertion, Case by Case
- Exercises
- 11.8. Double Rotations
- Exercises
- 11.9. Fast Insertion
- Exercises
- 12. Hash Tables
- 12.1. Lists and Arrays
- 12.2. Hash Operators
- Exercises
- 12.3. Some Applications
- IV: Computation in Practice
- 13. Sharding with Facebook
- 13.1. The Technical Challenge
- 13.2. Stopgap Remedies
- 13.2.1. Caching
- 13.2.2. Sharding
- 13.3. The Cassandra Solution
- 13.4. Summary
- 14. Parallel Computation with MapReduce
- 14.1. Vertical and Horizontal Scaling
- 14.2. The MapReduce Strategy
- 14.3. Data Mining with MapReduce
- 14.4. Summary
- 15. Generating Art with Computers
- 15.1. Representing Images in a Computer
- 15.2. Generating Images Randomly
- 15.3. Generating Purposeful Images
- Index
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.