Topics from UofT Planning Syllabus
  1. Classic breakdown
    1. Abstraction (visualize a zooming level of explanations - how does this work? clicking with mouse all the way down to electrons)
    2. Decomposition
    3. Pattern Recognition
    4. Algorithmic Thinking
    5. See "Computational Thinking by JULES" (4:31)
    6. See "Computational Thinking" (2012) Jeanette Wing at Microsoft Research (40:08)
    7. See "Solving Problems at Google Using Computational Thinking" (3:43)
  2. Abstraction.
    1. Robotics Academy. "- Computational Thinking"
      1. Think about maps that leave information off when not relevant
      2. Think about Platonic forms. Or Eviatar's TFG around "what did you do?"
      3. Compare to black boxing
    2. CSER - The Computer Science Education Research Group. 2016. "Abstraction - Introduction"
      1. Process / Data / Specification
    3. Curriki. "Computational Thinking: Abstraction and Pattern Generalization"
    4. DJR: examples from a whole bunch of different fields. Generic. Generalization. In science, models. Periodic table. Taxonomy. Math or GIS as points, lines, areas. Grammar. Mad libs. Graphic design. Men/Women. Olympics. MIT press logo. Look at material in my intro lectures on modeling. Tangrams.
    5. OOP Channel. 2017. "What is abstraction" Describing same object in different ways. Relevant to the task at hand. UML diagrams (see also SmartDraw, UML-diagrams.org, Wikipedia).
    6. I Am Dev. 2016. "[What is abstraction in programming?]" Pretty good straightforward presentation (3:23). Emphasis: when you don't care about internals. Connect with what I've been calling modularity.
    7. Points to phenomenological generalization. And to the thing we do when we name clusters in brainstorming.
    8. Story of my disk access routines for FXNET. Also relates to APIs.
    9. Cf encapsulation where we hide details for protection
  3. Decomposition. Polya-if a problem is too hard, it contains smaller problems that are not. Analysis and Synthesis.
    1. Curriki. 2016. "Computational Thinking: Decomposition." How does X work? Break it down. Main functions, then their components. Example: crime scene investigation; song composition; app design; essay writing; my exercise on describing getting up in the morning or getting ready for bed;
    2. DJR: is there an exercise in creating fonts with different levels of pixels?
    3. See Google Divide and Conquer? Cf. Soo Bong's searching for lion in the Sahara. How the game Battleship works? Can we put together a quiz that asks us to identify "same" scenarios.
  4. Pattern Recognition
  5. Basic Algorithmic Design, e.g. ”sorting”.
  6. Logical operators (conjunction/disjunction).
  7. Graph Theory.
  8. Problem Solving Strategies, e.g. ”Divide and Conquer”.
  9. Data encoding and organization, e.g. ”Indexing”.
  10. Sequential vs. Parallel Execution.
  11. Control structures, e.g. ”if-statements”, ”loops”, etc.
  12. Recursion.
  13. Introduction to Programming, e.g. ”variables”