Skip to content

Abstract thinking patterns and problem decomposition / solving strategies

License

Notifications You must be signed in to change notification settings

spamegg1/abstract-thinking

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Elements of Abstract Thinking

can-of-worms

Welcome to the world of abstract nonsense!

Motivation

dont-know-1

dont-know-2

I've been trying to figure out the underlying reasons why many are struggling with mathematics and computer science, even when they have great resources and they study the subjects.

The Usual Suspects

It soon became clear that the unconscious instincts for logic and language which had enabled me to succeed were not shared by the large majority of my students.

abstract-thinking-1

I don't accept the general / genetic explanation that "they're just not smart enough."

dont-know-3

dont-know-4

It seems there is something else going on. Even after finishing courses and passing tests / exams, or, going through the motions, students say "I don't feel like I've understood it."

Journey

The journey went like this:

  1. Students taking programming language theory, especially parts that are rich in recursive thinking, struggled.
  2. First I falsely diagnosed the issue to be recursion and suggested studying it earlier.
  3. That didn't help much.
  4. I noticed the issue goes beyond recursion, and is more about having a poor mathematical background in general.
  5. I suggested taking Mathematics for Computer Science earlier.
  6. Some students could not make it past even Chapter 1, section 1 of Math for CS.
  7. I suggested a much gentler, easier resource (Susanna Epp's book).
  8. Students still struggled with that.

The ever-elusive maturity

Students are told to "go get some maturity and intuition" but

  1. it's not clear what they are,
  2. nobody explains exactly how to get them.

The usual advice

The general advice is to "keep doing it and eventually you'll start getting it", also known as learning by osmosis. Unfortunately I've seen examples where some students didn't get it even after 1-2 years of practice. The research says that "...experience alone is a poor teacher. Many learners don't know the quality of their comprehension..."

Another common advice is to take Calculus first, to gain enough maturity for Discrete math and proofs. I've seen students who successfully completed 3 Calculus courses and then fail at even the most basic problems in Discrete Mathematics after months of study. (Once again, these students are not stupid, or lazy.)

The rare advice is to seek help from books such as How to solve it, Book of proof, The Little Prover or The heart of mathematics. This is good advice, and sometimes works, but some of these resources either assume a decent mathematical background and maturity already, or are too verbose / poorly translated, or too difficult for starters.

Insights

The belief (and hope) is that math / CS "teaches you how to think." True, maybe? 🤔 But they require you to know how to think a little. What if you don't know how to think at all ? So we got a recursive knowledge scaffolding problem.

The issue is that math / CS subjects do not (usually) make abstract thinking explicit. Instead this thinking is implicit and "baked into" the subjects in subtle ways. They cover the "surface content" of the topics in an explicit fashion.

But unlike what the general advice says, the deeper, implicit thinking patterns go unnoticed by many students even after hundreds of hours of practice, instead of "automatically and subconsciously being picked up by your brain".

There does not seem to be any clear reason or pattern. Should we believe the "unconscious instinct" explanation and admit defeat?

Not taught in school

According to a Stanford prof, the most important thing is problem decomposition, and nobody teaches it:

problem-decomposition

(He is also dealing with the questions "is it innate?" and "can it be taught?")

Some students tend to agree:

cognitive-skills

🐛 Opening 🐛 a 🐛 can 🐛 of 🐛 worms

The culprit seems to be the lack of abstract thinking skills, whatever the hell that is!

Also the lack of problem solving skills, which are deeply connected to abstract thinking (breaking down a problem, modeling it, understanding the problem space, conceptualizing a solution...)

One more major issue, in my opinion, is the lack of metacognitive skills. Students are not aware of their thought processes. Metacognition itself can be abstract.

There is simply no way around this. Abstract thinking HAS TO BE LEARNED. And I believe it can be taught, even if it's just by making it a bit more explicit and not much else!

And here we are...

What this is

  • A loose collection of the common abstract patterns and ways of thinking found everywhere, which
    • are implicit, intrinsic and invisible,
    • underlie all the subjects we study;
    • plus metacognitive skills.
  • It's an extremely rough draft for now, hopefully it will be fleshed out later, with lots of examples.
    • So, there are probably many references to things you don't know.
  • This is about abstract thinking within the context of mathematics and computer science.
    • There are similarities to the scientific method:
      • observations, hypotheses, evidence, testing
    • but they are not the focus.

What this is not

  • This is not about abstract thinking in the broadest sense:
    • in science, art, music, literature,
    • in politics, religion,
    • in military, business,
    • in decision making, etc.
  • This is not comprehensive, or hierarchical / strictly organized:
    • thinking patterns are tied to each other in a messy tangled web,
    • it's near impossible to make them hierarchical.
    • Hence, "elements."
  • This is not a coverage of the Math / CS topics that are mentioned.
    • It could be embedded into a math / CS curriculum while those topics are being taught;
    • giving much clearer understanding.

So... here we go!

First, the human side of things:

Our physical senses and the world

Pattern recognition

Link to the Patterns section

Connections to the physical world

Link to the Physical world section

Spatial-visual thinking

Link to the visual thinking section

Our subconscious stuff

Intuition and intuitive thinking

Link to the Intuition section

  • Our brains

    • take subconscious shortcuts,
    • pick up on implicit things, and
    • make invisible connections.
  • Connection to wishful thinking (see problem solving).

Implicit and Explicit knowledge, Contextual thinking

Link to the Implicit and Explicit knowledge section

  • Assumptions and background knowledge are
    • unavoidable,
    • necessary and
    • always present everywhere.

The meta stuff in our heads

Metacognition

Link to the Metacognition section

  • Being aware of one's own thought processes, taking control of it.

Meta-knowledge

Link to the Meta-knowledge section

  • Knowledge can have a recursive nature. So you can get stuck:
    • "I don't know what I don't know", or
    • "I can't figure out why I can't figure things out."

Now the more technical side of things:

The logical stuff

Syntax: symbolic thinking and symbol manipulation

Link to the Symbolic thinking section

  • Ubiquitous for humans (language, writing, numbers etc.)
  • Symbols = syntax = formal = mechanical = unintuitive

Semantics: domains and predicates

Link to the Semantic thinking section

  • We have patterns / models in our brains through the physical world and our senses,
    • with which we assign meaning / interpretation to things.
  • Worlds = semantics = informal = meaningful = intuitive = interpretation
  • Humans can never agree on worlds and interpretations,
    • keep fighting over which is "right".

Critical Thinking

Link to the Critical thinking section

Reasoning

Link to the Reasoning section

  • Making or removing assumptions
    • Very difficult for humans! (Messes up the implicit models in our heads.)
  • Modus ponens: the heart of reasoning
  • Deductive,
  • Inductive,
  • Abductive, and
  • Fuzzy reasoning

Axiomatic thinking

Link to the Axiomatic thinking section

  • Realizing the syntax, capturing syntax in a precise way
  • Minimal assumptions that are taken for granted as a starting point,
    • because they are self-evident
  • Similarities to reductionist / atomic thinking

Many ways of thinking

Structural thinking

Link to the Structures section

  • Realizing the semantics, capturing semantics in a concrete way
  • Connections to modeling and axiomatic thinking
  • Many types of structures:
    • algebraic,
    • topological,
    • relational,
    • logical,
    • order
  • Combined, rich, complex structures:

Temporal thinking

Link to the Temporal thinking section

  • chronological, state-based and event-based
  • discrete vs. continuous
  • static vs. dynamic
  • mutating state
  • connections with timeless, stateless thinking, and rule-based thinking

Reductionist (atomic) thinking

Link to the Atomic thinking section

  • Break into smaller parts,
    • then even smaller,
    • then even smaller than that,
    • until the smallest parts are self-evident,
    • and keep track of the connections.
  • The whole equals the sum of the parts.
  • This works with wishful thinking (see problem solving).
  • Similarities to axiomatic thinking

Recursive thinking

Link to the Recursive thinking section

  • Self-reference and self-similarity (fractals)
  • This is found in nature, biology recurs.
    • See fractal broccoli picture 🥦
  • Notoriously difficult for humans!
    • It's "anti-temporal" or "reverse-chronological" thinking,
    • but humans are story-oriented creatures.
  • Connection with structural thinking:
    • self-similar structures (fractals)

Rule-based thinking

Link to the Rule-based Thinking section

  • Completely controlled world that:
    • obeys rules,
    • is built gradually from earlier stages,
    • offers strict guarantees (invariants).
  • Stratification, predicativity

The many joys of world building

Modalities

Link to the Modalities section

  • Switching between "thinking styles" (or modes):
    • some problems are better conceived / modeled in certain ways than others.

Paradigms

Link to the Paradigms section

  • Changing the focal point through which the world is viewed and expressed.
  • Switching between "expression styles":
    • some solutions are better expressed in certain ways than others.

Domain modeling

Link to the Modeling section

Relations and connections

Link to the Relations section

The abstract stuff

Abstraction

Link to the Abstraction section

Composition and decomposition

Link to the Decomposition section

Higher-order and categorical thinking

Link to the Categorical thinking section

The big, complex, combined stuff

Systems thinking

Link to the Systems section

Meta-thinking

Link to the Meta thinking section

Unified theory of everything

  • Different fields are deeply connected.

Link to the Deep Connections section

Problem solving

Link to the Problem Solving section