Muutke küpsiste eelistusi

Computational Thinking for the Modern Problem Solver [Kõva köide]

, (University of Wisconsin, USA)
  • Formaat: Hardback, 406 pages, kõrgus x laius: 234x156 mm, kaal: 780 g, 273 Illustrations, color
  • Sari: Chapman & Hall/CRC Textbooks in Computing
  • Ilmumisaeg: 27-Mar-2014
  • Kirjastus: CRC Press Inc
  • ISBN-10: 1466587776
  • ISBN-13: 9781466587779
Teised raamatud teemal:
  • Kõva köide
  • Hind: 71,04 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Tavahind: 100,29 €
  • Säästad 29%
  • Raamatu kohalejõudmiseks kirjastusest kulub orienteeruvalt 2-4 nädalat
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Tellimisaeg 2-4 nädalat
  • Lisa soovinimekirja
  • Formaat: Hardback, 406 pages, kõrgus x laius: 234x156 mm, kaal: 780 g, 273 Illustrations, color
  • Sari: Chapman & Hall/CRC Textbooks in Computing
  • Ilmumisaeg: 27-Mar-2014
  • Kirjastus: CRC Press Inc
  • ISBN-10: 1466587776
  • ISBN-13: 9781466587779
Teised raamatud teemal:
Riley and Hunt introduce computer science as an independent body of thought that is an essential part of what it means to be educated today. Thinking algorithmically is uniquely important just as is scientific investigation, artistic creativity, or proof theory in mathematics, they say, yet computational thinking is a distinct form of thought, separate from other academic disciplines. Their topics include how real-world information becomes computable data, modeling solutions, data organization, and limits of computation. A course using this book would be expected to include some instruction in computer programming, but they leave the choice of programming language and the depth of coverage to the discretion of the instructor and to other textbooks. Annotation ©2014 Ringgold, Inc., Portland, OR (protoview.com)

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.

Preface, xiii
Authors, xv
Chapter 1 What Is Computational Thinking? 1(26)
1.1 Computers, Computers Everywhere
2(1)
1.2 Computer, Computer Science, And Computational Thinking
2(3)
1.3 From Abacus To Machine
5(6)
1.4 The First Software
11(3)
1.5 What Makes It A Modern Computer?
14(3)
1.6 The First Modern Computer
17(4)
1.7 Moore's Law
21(2)
1.8 Summary
23(1)
1.9 When Will You Ever Use This Stuff?
23(1)
References
23(1)
Terminology
24(1)
Exercises
25(2)
Chapter 2 How Real-World Information Becomes Computable Data 27(30)
2.1 Information And Data
28(1)
2.2 Converting Information Into Data
29(4)
2.3 Data Capacity
33(2)
2.4 Data Types And Data Encoding
35(12)
2.4.1 Numbers
35(6)
2.4.1.1 Numeral Systems
35(2)
2.4.1.2 Positional Numeral System
37(2)
2.4.1.3 Integers As Binary Bit Strings
39(1)
2.4.1.4 Real Numbers As Binary Bit Strings
40(1)
2.4.1.5 Precision As A Source Of Error
41(1)
2.4.1.6 Underflow And Overflow As Sources Of Error
41(1)
2.4.2 Text
41(1)
2.4.3 Colors
42(2)
2.4.4 Pictures
44(1)
2.4.5 Sound
45(2)
2.5 Data Compression
47(4)
2.5.1 Run-Length Encoding
49(2)
2.6 Summary
51(1)
Reference
52(1)
Terminology
52(1)
Exercises
53(4)
Chapter 3 Logic 57(36)
3.1 What Is Logic?
58(1)
3.2 Boolean Logic
59(19)
3.2.1 Writing Well-Formed Propositions
61(5)
3.2.2 Evaluating Propositions
66(12)
3.2.2.1 Conjunction (And)
67(1)
3.2.2.2 Disjunction (Or)
68(1)
3.2.2.3 Implication (Implies)
69(2)
3.2.2.4 Equivalence (E)
71(1)
3.2.2.5 Logical Negation (Not)
71(1)
3.2.2.6 Compound Propositions
72(4)
3.2.2.7 Logical Equivalence
76(1)
3.2.2.8 Tautologies And Contradictions
76(2)
3.3 Applications Of Propositional Logic
78(11)
3.3.1 Search Queries
78(2)
3.3.1.1 Conjunction In Search Queries
79(1)
3.3.1.2 Disjunction In Search Queries
79(1)
3.3.1.3 Negation In Search Queries
80(1)
3.3.2 Digital Logic
80(2)
3.3.3 Image Compositing
82(2)
3.3.4 Database Queries
84(3)
3.3.5 Software Requirements
87(2)
Terminology
89(1)
Exercises
90(3)
Chapter 4 Solving Problems 93(36)
4.1 Problem Definition
94(5)
4.2 Logical Reasoning
99(5)
4.3 Decomposition: Software Design
104(8)
4.4 Decomposition: Other Uses
112(2)
4.5 Abstraction: Class Diagrams
114(5)
4.6 Abstraction: Use Case Diagrams
119(4)
4.7 Summary
123(1)
4.8 When Will You Ever Use This Stuff?
123(1)
References
124(1)
Terminology
124(1)
Exercises
125(4)
Chapter 5 Algorithmic Thinking 129(34)
5.1 Algorithms
130(2)
5.2 Software And Programming Languages
132(1)
5.3 Actions
133(26)
5.3.1 Name Binding
133(6)
5.3.1.1 Proper Naming
135(2)
5.3.1.2 State
137(2)
5.3.2 Selection
139(8)
5.3.2.1 One-Way Selection
139(3)
5.3.2.2 Two-Way Selection
142(2)
5.3.2.3 Multiway Selection
144(3)
5.3.3 Repetition
147(6)
5.3.3.1 Infinite Loops
152(1)
5.3.4 Modularization
153(40)
5.3.4.1 Module Flexibility
156(3)
Terminology
159(1)
Exercises
159(4)
Chapter 6 Modeling Solutions 163(26)
6.1 Activity Diagrams
164(2)
6.2 Selection In Activity Diagrams
166(4)
6.3 Repetition In Activity Diagrams
170(3)
6.4 Control Abstraction In Activity Diagrams
173(1)
6.5 States And State Diagrams
173(3)
6.6 Including Behavior In State Diagrams
176(4)
6.7 Providing More Detail In State Diagrams
180(3)
6.8 Summary
183(1)
6.9 When Will I Ever Use This Stuff?
183(1)
Terminology
184(1)
Exercises
184(5)
Chapter 7 Data Organization 189(32)
7.1 Names
190(3)
7.2 Lists
193(13)
7.2.1 Arrays
195(5)
7.2.1.1 Storage
195(2)
7.2.1.2 Accessing Array Elements
197(1)
7.2.1.3 Deleting Array Elements
197(2)
7.2.1.4 Inserting Array Elements
199(1)
7.2.1.5 Array Summary
200(1)
7.2.2 Linking
200(6)
7.2.2.1 Storage
200(3)
7.2.2.2 Accessing Linked List Elements
203(1)
7.2.2.3 Deleting Linked List Elements
204(1)
7.2.2.4 Inserting Linked List Elements
204(1)
7.2.2.5 Linked List Summary
205(1)
7.3 Graphs
206(5)
7.3.1 Terminology And Properties
208(2)
7.3.2 Storage
210(1)
7.4 Hierarchies
211(5)
7.4.1 Organizational Chart
211(1)
7.4.2 Family Tree
212(1)
7.4.3 Biology
213(1)
7.4.4 Linguistics
214(1)
7.4.5 Trees
215(1)
References
216(1)
Terminology
216(1)
Exercises
217(4)
Chapter 8 Algorithmic Thinking 221(42)
8.1 Von Neumann Architecture
222(1)
8.2 Spreadsheets
223(14)
8.2.1 Spreadsheet Structure
223(1)
8.2.2 Formulas/expressions
224(13)
8.2.2.1 Numbers
224(1)
8.2.2.2 Operators
225(7)
8.2.2.3 Cell References
232(2)
8.2.2.4 Functions
234(3)
8.3 Text Processing
237(8)
8.3.1 String Basics
237(1)
8.3.2 String Operations
238(7)
8.3.2.1 Indexing
238(1)
8.3.2.2 Length
239(1)
8.3.2.3 Concatenation
239(1)
8.3.2.4 Naming
240(1)
8.3.2.5 Substring
241(1)
8.3.2.6 Searching
241(1)
8.3.2.7 Case Study: Processing E-Mail Addresses
242(2)
8.3.2.8 Case Study: Processing Dates
244(1)
8.4 Patterns
245(11)
8.4.1 How To Write A Pattern
246(2)
8.4.1.1 Case Study: Hugs And Kisses Pattern
246(1)
8.4.1.2 Case Study: MPAA Rating Pattern
247(1)
8.4.1.3 Case Study: Social Security Numbers
248(1)
8.4.2 Repetition Rules
248(2)
8.4.3 Character Class Rules
250(1)
8.4.4 Case Study: DNA Sequencing
251(2)
8.4.5 Case Study: Web Searches And Enron Legal Documents
253(3)
Reference
256(1)
Terminology
256(1)
Exercises
257(6)
Chapter 9 Let's Get It Correct 263(28)
9.1 "Computer Errors" Usually Aren't
264(3)
9.2 Software Correctness
267(2)
9.3 Verification
269(3)
9.4 Software Testing
272(3)
9.5 White Box Testing
275(4)
9.6 Black Box Testing With Equivalence Partitioning
279(4)
9.7 Boundary Value Analysis
283(3)
9.8 When Will You Ever Use This Stuff?
286(1)
Reference
287(1)
Terminology
287(1)
Exercises
288(3)
Chapter 10 Limits Of Computation 291(30)
10.1 How Is Capacity Measured In Computers?
294(2)
10.2 An Estimate Of The Physical Limitations
296(1)
10.3 Benchmarks
297(2)
10.4 Counting The Performance
299(6)
10.5 Impractical Algorithms
305(5)
10.6 Impossible Algorithms
310(3)
10.7 Metaphysical Limitations
313(3)
10.8 When Will You Ever Use This Stuff?
316(1)
References
316(1)
Terminology
317(1)
Exercises
317(4)
Chapter 11 Concurrent Activity 321(22)
11.1 Parallelism Or Concurrency?
322(2)
11.2 Scheduling
324(3)
11.3 Sorting Networks
327(3)
11.4 Measuring Concurrency's Effect
330(2)
11.5 Challenges Of Concurrency
332(7)
11.6 When Will You Ever Use This Stuff?
339(1)
References
340(1)
Terminology
340(1)
Exercises
341(2)
Chapter 12 Information Security 343(38)
12.1 What Is Security?
344(3)
12.2 Foundations
347(3)
12.3 Common Forms Of Cybercrime
350(3)
12.4 How To Secure? Step 1: Authenticate
353(3)
12.5 How To Secure? Step 2: Authorization
356(2)
12.6 All A Matter Of Risk
358(1)
12.7 A Few Good Ideas
359(11)
12.7.1 Encryption
359(6)
12.7.2 Firewalls (Including Spam Filters)
365(2)
12.7.3 Antivirus Software
367(1)
12.7.4 Software Update
368(1)
12.7.5 Backups
369(1)
12.7.6 Log Files
370(1)
12.8 Good Strategies
370(5)
12.8.1 Secure The Weakest Link
370(1)
12.8.2 Reduce The Attack Surface
371(1)
12.8.3 Defend Deeply
372(1)
12.8.4 Compartmentalize
373(1)
12.8.5 Trust Reluctantly
374(1)
12.8.6 Use Open Software
375(1)
12.9 When Will You Ever Use This Stuff?
375(1)
Reference
376(1)
Terminology
376(1)
Exercises
377(4)
Index 381
Riley, David; Hunt, Kenny A.