1st Edition

Computational Thinking for the Modern Problem Solver

By David Riley, Kenny A. Hunt Copyright 2014
    406 Pages 273 Color Illustrations
    by Chapman & Hall

    Through examples and analogies, Computational Thinking for the Modern Problem Solver introduces computational thinking as part of an introductory computing course and shows how computer science concepts are applicable to other fields. It keeps the material accessible and relevant to noncomputer science majors.

    With numerous color figures, this classroom-tested book focuses on both foundational computer science concepts and engineering topics. It covers abstraction, algorithms, logic, graph theory, social issues of software, and numeric modeling as well as execution control, problem-solving strategies, testing, and data encoding and organizing. The text also discusses fundamental concepts of programming, including variables and assignment, sequential execution, selection, repetition, control abstraction, data organization, and concurrency. The authors present the algorithms using language-independent notation.

    What Is Computational Thinking?
    Computers, Computers Everywhere
    Computer, Computer Science, and Computational Thinking
    From Abacus to Machine
    The First Software
    What Makes It a Modern Computer?
    The First Modern Computer
    Moore’s Law
    Summary
    When Will You Ever Use This Stuff?

    How Real-World Information Becomes Computable Data
    Information and Data
    Converting Information into Data
    Data Capacity
    Data Compression
    Summary

    Logic
    What Is Logic?
    Boolean Logic
    Applications of Propositional Logic

    Solving Problems
    Problem Definition
    Logical Reasoning
    Decomposition: Software Design
    Decomposition: Other Uses
    Abstraction: Class Diagrams
    Abstraction: Use Case Diagrams
    Summary
    When Will You Ever Use This Stuff?

    Algorithmic Thinking
    Algorithms
    Software and Programming Languages
    Actions

    Modeling Solutions
    Activity Diagrams
    Selection in Activity Diagrams
    Repetition in Activity Diagrams
    Control Abstraction in Activity Diagrams
    States and State Diagrams
    Including Behavior in State Diagrams
    Providing More Detail in State Diagrams
    Summary
    When Will I Ever Use This Stuff?

    Data Organization
    Names
    Lists
    Graphs
    Hierarchies

    Algorithmic Thinking
    Von Neumann Architecture
    Spreadsheets
    Text Processing
    Patterns

    Let’s Get It Correct
    "Computer Errors" Usually Aren’t
    Software Correctness
    Verification
    Software Testing
    White Box Testing
    Black Box Testing with Equivalence Partitioning
    Boundary Value Analysis
    When Will You Ever Use This Stuff?

    Limits of Computation
    How Is Capacity Measured in Computers?
    An Estimate of the Physic al Limitations
    Benchmarks
    Counting the Performance
    Impractical Algorithms
    Impossible Algorithms
    Metaphysical Limitations
    When Will You Ever Use This Stuff?

    Concurrent Activity
    Parallelism or Concurrency?
    Scheduling
    Sorting Networks
    Measuring Concurrency’s Effect
    Challenges of Concurrency
    When Will You Ever Use This Stuff?

    Information Security
    What Is Security?
    Foundations
    Common Forms of Cybercrime
    How to Secure? Step 1: Authenticate
    How to Secure? Step 2: Authorization
    All a Matter of Risk
    A Few Good Ideas
    Good Strategies
    When Will You Ever Use This Stuff?

    Index

    References, Terminology, and Exercises appear at the end of each chapter.

    Biography

    Riley, David; Hunt, Kenny A.