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) |
|
|
11 | (3) |
|
1.5 What Makes It A Modern Computer? |
|
|
14 | (3) |
|
1.6 The First Modern Computer |
|
|
17 | (4) |
|
|
21 | (2) |
|
|
23 | (1) |
|
1.9 When Will You Ever Use This Stuff? |
|
|
23 | (1) |
|
|
23 | (1) |
|
|
24 | (1) |
|
|
25 | (2) |
Chapter 2 How Real-World Information Becomes Computable Data |
|
27 | (30) |
|
|
28 | (1) |
|
2.2 Converting Information Into Data |
|
|
29 | (4) |
|
|
33 | (2) |
|
2.4 Data Types And Data Encoding |
|
|
35 | (12) |
|
|
35 | (6) |
|
|
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) |
|
|
41 | (1) |
|
|
42 | (2) |
|
|
44 | (1) |
|
|
45 | (2) |
|
|
47 | (4) |
|
2.5.1 Run-Length Encoding |
|
|
49 | (2) |
|
|
51 | (1) |
|
|
52 | (1) |
|
|
52 | (1) |
|
|
53 | (4) |
Chapter 3 Logic |
|
57 | (36) |
|
|
58 | (1) |
|
|
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) |
|
|
68 | (1) |
|
3.2.2.3 Implication (Implies) |
|
|
69 | (2) |
|
|
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) |
|
|
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) |
|
|
80 | (2) |
|
|
82 | (2) |
|
|
84 | (3) |
|
3.3.5 Software Requirements |
|
|
87 | (2) |
|
|
89 | (1) |
|
|
90 | (3) |
Chapter 4 Solving Problems |
|
93 | (36) |
|
|
94 | (5) |
|
|
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) |
|
|
123 | (1) |
|
4.8 When Will You Ever Use This Stuff? |
|
|
123 | (1) |
|
|
124 | (1) |
|
|
124 | (1) |
|
|
125 | (4) |
Chapter 5 Algorithmic Thinking |
|
129 | (34) |
|
|
130 | (2) |
|
5.2 Software And Programming Languages |
|
|
132 | (1) |
|
|
133 | (26) |
|
|
133 | (6) |
|
|
135 | (2) |
|
|
137 | (2) |
|
|
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) |
|
|
147 | (6) |
|
|
152 | (1) |
|
|
153 | (40) |
|
5.3.4.1 Module Flexibility |
|
|
156 | (3) |
|
|
159 | (1) |
|
|
159 | (4) |
Chapter 6 Modeling Solutions |
|
163 | (26) |
|
|
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) |
|
|
183 | (1) |
|
6.9 When Will I Ever Use This Stuff? |
|
|
183 | (1) |
|
|
184 | (1) |
|
|
184 | (5) |
Chapter 7 Data Organization |
|
189 | (32) |
|
|
190 | (3) |
|
|
193 | (13) |
|
|
195 | (5) |
|
|
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) |
|
|
200 | (1) |
|
|
200 | (6) |
|
|
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) |
|
|
206 | (5) |
|
7.3.1 Terminology And Properties |
|
|
208 | (2) |
|
|
210 | (1) |
|
|
211 | (5) |
|
7.4.1 Organizational Chart |
|
|
211 | (1) |
|
|
212 | (1) |
|
|
213 | (1) |
|
|
214 | (1) |
|
|
215 | (1) |
|
|
216 | (1) |
|
|
216 | (1) |
|
|
217 | (4) |
Chapter 8 Algorithmic Thinking |
|
221 | (42) |
|
8.1 Von Neumann Architecture |
|
|
222 | (1) |
|
|
223 | (14) |
|
8.2.1 Spreadsheet Structure |
|
|
223 | (1) |
|
8.2.2 Formulas/expressions |
|
|
224 | (13) |
|
|
224 | (1) |
|
|
225 | (7) |
|
|
232 | (2) |
|
|
234 | (3) |
|
|
237 | (8) |
|
|
237 | (1) |
|
|
238 | (7) |
|
|
238 | (1) |
|
|
239 | (1) |
|
|
239 | (1) |
|
|
240 | (1) |
|
|
241 | (1) |
|
|
241 | (1) |
|
8.3.2.7 Case Study: Processing E-Mail Addresses |
|
|
242 | (2) |
|
8.3.2.8 Case Study: Processing Dates |
|
|
244 | (1) |
|
|
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) |
|
|
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) |
|
|
256 | (1) |
|
|
256 | (1) |
|
|
257 | (6) |
Chapter 9 Let's Get It Correct |
|
263 | (28) |
|
9.1 "Computer Errors" Usually Aren't |
|
|
264 | (3) |
|
|
267 | (2) |
|
|
269 | (3) |
|
|
272 | (3) |
|
|
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) |
|
|
287 | (1) |
|
|
287 | (1) |
|
|
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) |
|
|
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) |
|
|
316 | (1) |
|
|
317 | (1) |
|
|
317 | (4) |
Chapter 11 Concurrent Activity |
|
321 | (22) |
|
11.1 Parallelism Or Concurrency? |
|
|
322 | (2) |
|
|
324 | (3) |
|
|
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) |
|
|
340 | (1) |
|
|
340 | (1) |
|
|
341 | (2) |
Chapter 12 Information Security |
|
343 | (38) |
|
|
344 | (3) |
|
|
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) |
|
|
359 | (11) |
|
|
359 | (6) |
|
12.7.2 Firewalls (Including Spam Filters) |
|
|
365 | (2) |
|
12.7.3 Antivirus Software |
|
|
367 | (1) |
|
|
368 | (1) |
|
|
369 | (1) |
|
|
370 | (1) |
|
|
370 | (5) |
|
12.8.1 Secure The Weakest Link |
|
|
370 | (1) |
|
12.8.2 Reduce The Attack Surface |
|
|
371 | (1) |
|
|
372 | (1) |
|
|
373 | (1) |
|
|
374 | (1) |
|
|
375 | (1) |
|
12.9 When Will You Ever Use This Stuff? |
|
|
375 | (1) |
|
|
376 | (1) |
|
|
376 | (1) |
|
|
377 | (4) |
Index |
|
381 | |