ebook img

Computational Thinking for the Modern Problem Solver PDF

398 Pages·2015·51.76 MB·English
by  Hunt
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Computational Thinking for the Modern Problem Solver

Computer Science & Engineering Chapman & Hall/CRC f C o TEXTBOOKS IN COMPUTING o R m Through examples and analogies, Computational Thinking for the t p C t Modern Problem Solver introduces computational thinking as part H omputational hinking u of an introductory computing course and shows how computer sci- e t ence concepts are applicable to other fields. It keeps the material ac- ma m t for the odern cessible and relevant to noncomputer science majors. o i o With numerous color figures, this classroom-tested book focuses on d p S n roblem olver both foundational computer science concepts and engineering topics. e a R It covers abstraction, algorithms, logic, graph theory, social issues of l n software, and numeric modeling as well as execution control, problem- t solving strategies, testing, and data encoding and organizing. The p H text also discusses fundamental concepts of programming, including R i variables and assignment, sequential execution, selection, repetition, o n control abstraction, data organization, and concurrency. The authors b k l i present the algorithms using language-independent notation. n e g m Features • Explains foundational computer science concepts, including S abstraction, algorithms, logic, graph theory, social issues of o software, and numeric modeling l v • Covers engineering topics, such as execution control, problem- e solving strategies, testing, and data encoding and organizing R • Emphasizes algorithmic thinking and problem solving • Presents the material in an accessible and relevant way for noncomputer science majors • Shows how algorithmic thinking is integral to problem solving, R control structures, modeling, correctness, limits of computation, il e and concurrency y • H u david d. riley n t k a. h enny unt K20357 K20357_Cover.indd 1 2/21/14 4:14 PM C t omputational hinking m for the odern p S roblem olver CHAPMAN & HALL/CRC TEXTBOOKS IN COMPUTING Series Editors John Impagliazzo Andrew McGettrick Professor Emeritus, Hofstra University Department of Computer and Information Sciences University of Strathclyde Aims and Scope This series covers traditional areas of computing, as well as related technical areas, such as software engineering, artificial intelligence, computer engineering, information systems, and information technology. The series will accommodate textbooks for undergraduate and gradu- ate students, generally adhering to worldwide curriculum standards from professional societ- ies. The editors wish to encourage new and imaginative ideas and proposals, and are keen to help and encourage new authors. The editors welcome proposals that: provide groundbreaking and imaginative perspectives on aspects of computing; present topics in a new and exciting context; open up opportunities for emerging areas, such as multi-media, security, and mobile systems; capture new developments and applications in emerging fields of computing; and address topics that provide support for computing, such as mathematics, statistics, life and physical sciences, and business. Published Titles Paul Anderson, Web 2.0 and Beyond: Principles and Technologies Henrik Bærbak Christensen, Flexible, Reliable Software: Using Patterns and Agile Development John S. Conery, Explorations in Computing: An Introduction to Computer Science Ted Herman, A Functional Start to Computing with Python Pascal Hitzler, Markus Krötzsch, and Sebastian Rudolph, Foundations of Semantic Web Technologies Mark J. Johnson, A Concise Introduction to Data Structures using Java Mark J. Johnson, A Concise Introduction to Programming in Python Lisa C. Kaczmarczyk, Computers and Society: Computing for Good Mark C. Lewis, Introduction to the Art of Programming Using Scala Bill Manaris and Andrew R. Brown, Making Music with Computers: Creative Programming in Python Uvais Qidwai and C.H. Chen, Digital Image Processing: An Algorithmic Approach with MATLAB® David D. Riley and Kenny A. Hunt, Computational Thinking for the Modern Problem Solver Henry M. Walker, The Tao of Computing, Second Edition Chapman & Hall/CRC TEXTBOOKS IN COMPUTING C t omputational hinking m for the odern p S roblem olver d d. r k a. h avid iley and enny unt University of Wisconsin La Crosse, USA CRC Press Taylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300 Boca Raton, FL 33487-2742 © 2014 by Taylor & Francis Group, LLC CRC Press is an imprint of Taylor & Francis Group, an Informa business No claim to original U.S. Government works Version Date: 20140206 International Standard Book Number-13: 978-1-4665-8779-3 (eBook - PDF) This book contains information obtained from authentic and highly regarded sources. Reasonable efforts have been made to publish reliable data and information, but the author and publisher cannot assume responsibility for the validity of all materials or the consequences of their use. The authors and publishers have attempted to trace the copyright holders of all material reproduced in this publication and apologize to copyright holders if permission to publish in this form has not been obtained. If any copyright material has not been acknowledged please write and let us know so we may rectify in any future reprint. Except as permitted under U.S. Copyright Law, no part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic, mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, and recording, or in any information stor- age or retrieval system, without written permission from the publishers. For permission to photocopy or use material electronically from this work, please access www.copy- right.com (http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC), 222 Rosewood Drive, Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that pro- vides licenses and registration for a variety of users. For organizations that have been granted a pho- tocopy license by the CCC, a separate system of payment has been arranged. Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for identification and explanation without intent to infringe. Visit the Taylor & Francis Web site at http://www.taylorandfrancis.com and the CRC Press Web site at http://www.crcpress.com Contents Preface, xiii Authors, xv Chapter 1 ◾ What Is ComputatIonal thInkIng? 1 1.1 COMPUTERS, COMPUTERS EVERYWHERE 2 1.2 COMPUTER, COMPUTER SCIENCE, AND COMPUTATIONAL THINKING 2 1.3 FROM ABACUS TO MACHINE 5 1.4 THE FIRST SOFTWARE 11 1.5 WHAT MAKES IT A MODERN COMPUTER? 14 1.6 THE FIRST MODERN COMPUTER 17 1.7 MOORE’S LAW 21 1.8 SUMMARY 23 1.9 WHEN WILL YOU EVER USE THIS STUFF? 23 REFERENCES 23 TERMINOLOGY 24 EXERCISES 25 Chapter 2 ◾ How Real-World Information Becomes Computable Data 27 2.1 INFORMATION AND DATA 28 2.2 CONVERTING INFORMATION INTO DATA 29 2.3 DATA CAPACITY 33 v vi   ◾   Contents 2.4 DATA TYPES AND DATA ENCODING 35 2.4.1 Numbers 35 2.4.1.1 Numeral Systems 35 2.4.1.2 Positional Numeral System 37 2.4.1.3 Integers as Binary Bit Strings 39 2.4.1.4 Real Numbers as Binary Bit Strings 40 2.4.1.5 Precision as a Source of Error 41 2.4.1.6 Underflow and Overflow as Sources of Error 41 2.4.2 Text 41 2.4.3 Colors 42 2.4.4 Pictures 44 2.4.5 Sound 45 2.5 DATA COMPRESSION 47 2.5.1 Run-Length Encoding 49 2.6 SUMMARY 51 REFERENCE 52 TERMINOLOGY 52 EXERCISES 53 Chapter 3 ◾ logIC 57 3.1 WHAT IS LOGIC? 58 3.2 BOOLEAN LOGIC 59 3.2.1 Writing Well-Formed Propositions 61 3.2.2 Evaluating Propositions 66 3.2.2.1 Conjunction (AND) 67 3.2.2.2 Disjunction (OR) 68 3.2.2.3 Implication (IMPLIES) 69 3.2.2.4 Equivalence (≡) 71 3.2.2.5 Logical Negation (NOT) 71 3.2.2.6 Compound Propositions 72 3.2.2.7 Logical Equivalence 76 3.2.2.8 Tautologies and Contradictions 76 Contents   ◾   vii 3.3 APPLICATIONS OF PROPOSITIONAL LOGIC 78 3.3.1 Search Queries 78 3.3.1.1 Conjunction in Search Queries 79 3.3.1.2 Disjunction in Search Queries 79 3.3.1.3 Negation in Search Queries 80 3.3.2 Digital Logic 80 3.3.3 Image Compositing 82 3.3.4 Database Queries 84 3.3.5 Software Requirements 87 TERMINOLOGY 89 EXERCISES 90 Chapter 4 ◾ solvIng problems 93 4.1 PROBLEM DEFINITION 94 4.2 LOGICAL REASONING 99 4.3 DECOMPOSITION: SOFTWARE DESIGN 104 4.4 DECOMPOSITION: OTHER USES 112 4.5 ABSTRACTION: CLASS DIAGRAMS 114 4.6 ABSTRACTION: USE CASE DIAGRAMS 119 4.7 SUMMARY 123 4.8 WHEN WILL YOU EVER USE THIS STUFF? 123 REFERENCES 124 TERMINOLOGY 124 EXERCISES 125 Chapter 5 ◾ algorIthmIC thInkIng 129 5.1 ALGORITHMS 130 5.2 SOFTWARE AND PROGRAMMING LANGUAGES 132 5.3 ACTIONS 133 5.3.1 Name Binding 133 5.3.1.1 Proper Naming 135 5.3.1.2 State 137 viii   ◾   Contents 5.3.2 Selection 139 5.3.2.1 One-Way Selection 139 5.3.2.2 Two-Way Selection 142 5.3.2.3 Multiway Selection 144 5.3.3 Repetition 147 5.3.3.1 Infinite Loops 152 5.3.4 Modularization 153 5.3.4.1 Module Flexibility 156 TERMINOLOGY 159 EXERCISES 159 Chapter 6 ◾ modelIng solutIons 163 6.1 ACTIVITY DIAGRAMS 164 6.2 SELECTION IN ACTIVITY DIAGRAMS 166 6.3 REPETITION IN ACTIVITY DIAGRAMS 170 6.4 CONTROL ABSTRACTION IN ACTIVITY DIAGRAMS 173 6.5 STATES AND STATE DIAGRAMS 173 6.6 INCLUDING BEHAVIOR IN STATE DIAGRAMS 176 6.7 PROVIDING MORE DETAIL IN STATE DIAGRAMS 180 6.8 SUMMARY 183 6.9 WHEN WILL I EVER USE THIS STUFF? 183 TERMINOLOGY 184 EXERCISES 184 Chapter 7 ◾ data organIzatIon 189 7.1 NAMES 190 7.2 LISTS 193 7.2.1 Arrays 195 7.2.1.1 Storage 195 7.2.1.2 Accessing Array Elements 197 7.2.1.3 Deleting Array Elements 197 7.2.1.4 Inserting Array Elements 199 7.2.1.5 Array Summary 200 Contents   ◾   ix 7.2.2 Linking 200 7.2.2.1 Storage 200 7.2.2.2 Accessing Linked List Elements 203 7.2.2.3 Deleting Linked List Elements 204 7.2.2.4 Inserting Linked List Elements 204 7.2.2.5 Linked List Summary 205 7.3 GRAPHS 206 7.3.1 Terminology and Properties 208 7.3.2 Storage 210 7.4 HIERARCHIES 211 7.4.1 Organizational Chart 211 7.4.2 Family Tree 212 7.4.3 Biology 213 7.4.4 Linguistics 214 7.4.5 Trees 215 REFERENCES 216 TERMINOLOGY 216 EXERCISES 217 Chapter 8 ◾ algorIthmIC thInkIng 221 8.1 VON NEUMANN ARCHITECTURE 222 8.2 SPREADSHEETS 223 8.2.1 Spreadsheet Structure 223 8.2.2 Formulas/Expressions 224 8.2.2.1 Numbers 224 8.2.2.2 Operators 225 8.2.2.3 Cell References 232 8.2.2.4 Functions 234 8.3 TEXT PROCESSING 237 8.3.1 String Basics 237 8.3.2 String Operations 238 8.3.2.1 Indexing 238 8.3.2.2 Length 239

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.