Modeling Solutions: Flow Charts

black boxes, flow charts, stepwise refinement, decomposition, abstraction, AND/OR/NOT, truthtables
Example: event planning

Reading

Filho pp. 1-5 (flow charts)
Riley, pp. 163-184 (flow charts)

Modeling Solutions: State Diagrams

state diagrams;

Reading(s)

Riley, pp. 180-184 (state diagrams)

Logic

logic and rationality; Boolean logic; propositions; AND/OR/NOT/IMPLIES; truthtables
Example: sorting cards (covers/points to complexity)

Reading

Filho pp. 5-13 (logic)
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)

Counting and Probability

combinations, perumutations

Reading

Filho pp. 13-19 (counting)

Probability

basic probability, joint probability, independent events, exhaustive, mutually exclusive, conditional probability

Reading

Filho pp. 19-23 (probability)

Solving Problems

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

Reading(s)

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

Problem Solving I

iteration, brute force, divide and conquer

Reading

Filho 3.1 pp. 35-38 (iteration)
Filho 3.3 pp. 40-43 (brute force)
Filho 3.6 pp. 49-55 (divide)

Problem Solving II

recursion, backtracking, heuristics, dynamic programming, bounding solutions

Reading

Filho 3.2 pp. 38-40 (recursion)
Filho 3.4 pp. 43-46 (backtracking)
Filho 3.5 pp. 46-49 (divide)
Filho 3.5 pp. 55-63 (dynamic and bounding)

Data I

lists, queues, stacks, maps

Reading

Riley, pp. 189-193 (names)
Filho 4.1-2 pp. 65-72
Riley, pp. 193-195 (lists)

Data II

arrays, linked lists, trees

Reading

Filho 4.3 pp. 72-81
Riley, pp. 195-200 (arrays)
Riley, pp. 200-206 (linked lists)

Data III

graphs and networks

Reading

Filho 4.3 pp. 81-83
Riley, pp. 206-211 (graphs)

Data IV

hierarchical structures

Reading

Riley, pp. 211-216 (hierarchies/structures/trees)

Algorithmic Thinking I

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

Reading(s)

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

Algorithms I

sorting and searching

Reading

Filho pp. 85-91 (sorting and searching)

Algorithms II

navigation, coloring, ranking, optimization

Reading

Filho pp. 92-99

Databases

spreadsheets v. databases, relational and non-relational, big data, geographic

Reading

Filho pp. 101-121

Computing Machines

architecture, operating systems, memory

Reading

Filho pp. 123-146

Organizing Activity

parallelism v. concurrency; examples; coordination

Reading(s)

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

Languages

linguistics, variables, paradigms

Reading

Filho pp. 147-161

Computational Thinking and the World

what's it all add up to?

Reading

Wing, J. 2006 "Computational Thinking," pp. 33-35 in //Communications of the ACM, March 2006/Vol. 49, No. 3