Riley, D. and K. A. Hunt. 2014. Computational Thinking for the Modern Problem Solver. Publisher: Chapman and Hall/CRC. 978-1466587779

What Is Computational Thinking?

definition, analog/digital, history, stored program computer, Moore's law


Riley, pp. 1-5 (definition)
Riley, pp. 5-17 (history)
Riley, pp. 17-21 (modern)
Riley, pp. 21-23 (Moore's law)

How Real-World Information Becomes Computable Data

information v. data; number systems; encoding information, compression


Riley, pp. 27-30 (information/data)
Riley, pp. 30-35 (binary)
Riley, pp. 35-39 (number systems)
Riley, pp. 39-52 (encoding, compression)


logic and rationality; Boolean logic; propositions; AND/OR/NOT/IMPLIES; truth tables; applications


Riley, pp. 57-59 (logic and rationality)
Riley, pp. 59-61 (Boolean intro)
Riley, pp. 61-67 (propositions)
Riley, pp. 67-72 (AND/OR/NOT/IMPLIES)
Riley, pp. 67-78 (truth tables)
Riley, pp. 78-80, 84-87 (applications - queries)
Riley, pp. 80-82 (applications - circuits)
Riley, pp. 82-84 (applications - images)
Riley, pp. 87-89 (applications - project requirements)

Solving Problems

problem definition; logical reasoning; stepwise-refinement; sequence/repetition/selection; states; decomposition; abstraction; class diagrams; case diagrams


Riley, pp. 93-104 (problem definition; logical reasoning; states; )
Riley, pp. 104-114 (decomposition)
Riley, pp. 114-124 (abstraction)

Algorithmic Thinking I

definition; programs; names; states; selection; repetition; modularization


Riley, pp. 130-139 (states and names)
Riley, pp. 139-147 (selection)
Riley, pp. 147-153 (repetition)
Riley, pp. 153-159 (modularization)

Modeling Solutions

flow charts; state diagrams;


Riley, pp. 163-184 (flow charts)
Riley, pp. 180-184 (state diagrams)

Data Organization

names; lists; arrays; linked lists; graphs; hierarchies/structures/trees


Riley, pp. 189-193 (names)
Riley, pp. 193-195 (lists)
Riley, pp. 195-200 (arrays)
Riley, pp. 200-206 (linked lists)
Riley, pp. 206-211 (graphs)
Riley, pp. 211-216 (hierarchies/structures/trees)

Algorithmic Thinking II (applications)

stored-program architecture; expressions; numbers; operators; arity; precedence; strings; concatenation; patterns; regular expressions;


Riley, pp. 223-224, 232-236 (spreadsheets)
Riley, pp. 224-231-x (operators, expressions, etc.)
Riley, pp. 237-245 (text)
Riley, pp. 245-256 (patterns)

Let's Get It Correct

errors; validation; verification; testing; boundary analysis;


Riley, pp. 263-267 (errors)
Riley, pp. 267-272 (validation and verification)
Riley, pp. 272-283 (testing)
Riley, pp. 283-287 (boundary analysis)

Limits of Computation

time/space; miniaturization limits; plotting and assessing algorithm performance; halting problem; Turing test


Riley, pp. 291-305 (measuring performance)
Riley, pp. 305-312 (the impractical and the impossible)
Riley, pp. 313-316 (Turing test and AI)

Concurrent Activity

parallelism v. concurrency; examples; coordination


Riley, pp. 321-324 (parallelism v. concurrency)
Riley, pp. 324-327 (scheduling)
Riley, pp. 327-332 (sorting)
Riley, pp. 332-x (coordination challenges)

Information Security



Riley, pp. 344-353 (definitions)
Riley, pp. 353-359 (authentication/authorization)
Riley, pp. 359-365 (encryption)
Riley, pp. 365-370 (firewalls)
Riley, pp. 370-376 (strategies)