Module 0344: Deep understanding

Tak Auyeung

1 What is “to understand” (abstract concepts)?

The Merriam-Webster Dictionary defines “understand” as follows:

  1. to know the meaning of (something, such as the words that someone is saying or a language)
  2. to know how (something) works or happens

Within the context of most STEM (Science Technology Engineering Mathematics) classes, “understand” is applied to “concepts”. The Merriam-Webster Dictionary defines “understand” as follows:

  1. something conceived in the mind
  2. an abstract or generic idea generalized from particular instances

Both definitions are generally applicable in STEM classes. Both definitions suggest that a concept is not concrete or sensory-based. For example, the word “blue” (as in the color) is not considered a concept because it is sensory-based and concrete in the sense that the color can be defined using parameters in different color spaces.

A “deep understanding” is an understanding with its own special attributes. The Polytechnic University of Hong Kong has a simple document to compare the various level of understanding.

1.1 “Understand” is a verb

The fact that “understand” is a verb is significant because to understand is an action. Steps are to be taken.

As this article will explain, there are steps that one can take in order to understand concepts at a deeper level.

1.2 The ability to (deep) understand is learned

Except for few individuals who are either exceptionally gifted or exceptionally handicapped, most people have the capacity to understand concepts at a level deeper than what they are used to.

This is not unlike riding a bicycle. There are gifted cyclists who can take cycling to the next level, there are handicapped individuals who cannot ride a bicycle. The majority can ride a bicycle leisurely. Given some training, most people can ride a bicycle at an “amateur” level and gain health benefits.

1.3 To deeply understand is a choice and an attitude

To most of us, one aspect of “to understand” is not so much whether we can, but whether we choose to. In a larger scope, whether to understand a concept or not is an attitude (toward life and many other general things).

Why would anyone choose not to understand? To properly understand concepts requires an investment of time, and some people may decide that this extra time is not worth it.

This does not imply that people who choose not to spend the time to understand concepts are “lazy.” Indeed, many people who are hard working choose not to spend the extra time to understand concepts at a deeper level.

A theory to explain this is that some people evaluate using observable outcomes. The answer to the question of “am I doing a good job?” is, then, dependent on observable outcomes in the form of completed assignments, approval of peers and supervisors, and etc. In an academic environment, this translates to scores of homework assignments, and the amount of work done in a given amount of time.

In order to understand a concept in a deeper sense, the work done is not observable nor quantifiable using external measurements. To some people, this extra work is time wasted. However, a deeper understanding of concepts does have measurable benefits in the long run.

2 Symbols, definitions, and concepts

2.1 Symbols

Symbols make up the most basic building blocks of languages in specific STEM areas. Symbols are useful because once familiarized, symbols are concise and precise language concepts. Although symbols are mechanical constructs for communication, the meaning of a symbol potentially requires some effort to understand. For example, in calculus, what does the \(d\) of \(\frac{dy}{dx}\) mean?

2.2 Definitions

Definitions utilize symbols to express “macros”. A macro is, essentially, a shorthand so that the lengthy and long explanation of a concept can be simplified using a much more concise notation. A definition may make use of symbols, forming a composite concept out of concepts represented by each individual symbol. A definition exists for several reasons. Some definitions are meant to be shorthand, a more concise way to refer to a concept. Some definitions are meaningful by themselves.

2.3 Concepts

Symbols and definitions are mechanical in the sense that they are very much rule-based and symbolic. However, they are utilized to express concepts. Understanding is not about the memorization of symbols and definitions, but the semantic connections between concepts as expressed by definitions and symbols.

Concepts are representations in the mind. As such, how a concept is represented is unique to each individual. While a concept may relate to specific experiences and/or sensory inputs, a concept is, ultimately, an abstraction. Furthermore, even though most concepts are associated with words, the associated words are meant for communication with another individual. The utilization of concepts in thinking may be wordless to some people.

Using a computer-related analogy, symbols define the lexicon of a language that is used to convey concepts in a specific subject area. Definitions utilize symbols to mechanically represent concepts in a written/verbal form for communication and archiving (as in books). Concepts are internal representations of definitions that are ready to be utilized in algorithms.

3 Understanding and competency

How does the understanding of concepts related to competency? The definition of competency is as follows according to the Merriam-Webster Dictionary:

  1. possession of sufficient knowledge or skill

In computer science, “knowledge” is often not an issue because with search engines, knowledge can be looked up and retrieved with ease. “Skill”, on the other hand, refers to a broad area of abilities. Skill is defined as

  1. the ability to use one’s knowledge effectively and readily in execution or performance
  2. a learned power of doing something competently : a developed aptitude or ability

“Competence”, in return is defined as follows:

  1. the ability to do something well

The dictionary definition of competency does not specify what skill or ability, it is just “doing something well.” In the context of the duty statement a software developer or software engineer, the skill/ability includes the following (according to Indeed.com:

None of these abilities relate to the proficiency of following a known sequence of steps. The two essential skills/abilities common to these duties are critical thinking and problem solving.

Critical thinking is

  1. the objective analysis and evaluation of an issue in order to form a judgment,

And, problem solving is

  1. the process of finding solutions to difficult or complex issues

One can think of critical thinking and problem solving as two sides of a coin. Critical thinking about objectively (using logic and reasoning) breaking down an issue into core concepts and establishing the interconnections of these core concepts. Problem solving, on the other hand, is the synthesis of plans, strategies, instructions and/or other specifications of methods to accomplish a specific and objectively defined goal.

Both critical thinking and problem solving involve not only an understanding, but a thorough and deep understanding of the subject matter.

4 How is understanding/comprehension assessed?

4.1 The importance of assessments

Assessments are important in a class because they serve multiple important roles.

4.1.1 As a gauge of readiness for the next step

“The next step” includes both future classes as well as career competency. The understanding of dependent concepts is necessary for more advanced classes. For example, the concept of “subroutines (functions)” is required in order to understand the concept of a “method.”

In most STEM subject areas, concepts stack deeply. This means that there is a high level of stacking of concept dependency. For simplicity, one can look at the dependency of concepts as a chain, and each individual concept is a link in the chain. The overall strength of the chain is only as strong as the weakest link.

4.1.2 What does it mean to “pass” an assessment?

Passing an assessment is ultimately a confirmation that the person being assessed has shown sufficient competency and is ready for the next step(s). As such, “passing an assessment” has much significance.

The attitude toward assessment can impact the amount of energy an individual invests in understanding concepts.

Some people look at assessment as obstacles on their way to success. This attitude translates to self talks like the following:

There is absolutely nothing wrong with keeping goals, long term and short term, in mind. However, neglecting the proper means to achieve these goals is counter-productive.

Assessments are tools to help smooth out the path to success.

Let’s assume the grade of D or F is “nudged” to a C, a passing grade. What this is doing is to falsify the readiness of an individual for the next steps. An insufficient competency of the material of a dependent course means there is insufficient assumed and required competency in the next (depending) classes, or in the longer term, career.

While individual experiences may differ, discovering a severe lack of necessary competency in a job is nerve wrecking because of the risks of getting fired, or at least not being to advance. By comparison, retaking a class and/or needing one additional semester have relatively low impact.

Another question regarding the attitude toward “passing an assessment” is “what kind of judgement is it?”

A score/grade in an assessment or even a class is not a judgement of a person, or the character there of. It is a gauge of subject matter competency and readiness for the next step. No more, and no less. Many successful people have their share of getting low scores/grades, or even failing assessments and/or classes.

However, these people learn from these experiences:

4.2 The challenges of assessment

Because the understanding of concepts has a representation that is internal to the mind, there is no direct methods to assess whether a person understands a concept or not.

The ability to recite definitions of a concept is not proof of understanding. Nor is the ability to follow prescribed steps.

There are several ways to assess the understanding of concepts.

4.2.1 Analysis/Critical thinking

Analysis: detailed examination of the elements or structure of something

As defined by the Foundation for Critical Thinking:

Critical thinking: the intellectually disciplined process of actively and skillfully conceptualizing, applying, analyzing, synthesizing, and/or evaluating information gathered from, or generated by, observation, experience, reflection, reasoning, or communication, as a guide to belief and action

One method to assess the level of understanding or comprehension of a system of concepts is via the logged output of analysis.

In computer programming, a common activity that is closely associated with analysis is debugging, especially the first phase of locating the source of a problem.

Analysis is about recognizing patterns in a situation, relating the patterns to concepts already learned, and form a coherent, logical and sound structure of concepts to characterize the situation. The ability of analyze reflects understanding/comprehension because the concepts need to be properly stored and indexed in one’s mind before they can be utilized in analysis.

4.2.2 Synthesis/Problem solving

Synthesis: the combination of ideas to form a theory or system

Problem solving: the act of defining a problem; determining the cause of the problem; identifying, prioritizing, and selecting alternatives for a solution; and implementing a solution

Another method to assess the level of understanding or comprehension of a system of concepts is via the synthesis of solutions to problems.

In computer programming, a common activity that is closely associated with synthesis is the creation of algorithms to achieve technical and well defined objectives.

Problem solving is about utilizing concepts already learned to form a coherent, logical and sound structure of steps, processes and procedures in order to convert/transport a situation to a goal.

5 Okay, I am sold

But how do I start to understand concepts at a deeper level?

Let us use an example to illustrate this concept. The concept being discussed is xor, and it is defined as follows:

\(X \oplus Y = (\neg X \wedge Y) \vee (X \wedge \neg Y)\)

Unless a person is already familiar with logical operators used by mathematicians, it takes a little bit of time to look up the definitions of the operators:

By connecting the symbols to their definitions, and also to known operators in C++, there are now multiple pathways to connect the mathematical symbols to concepts already understood.

Better yet, it also helps to re-express exclusive-or (\(\oplus\)) using C++ notation:

(X xor Y) == (!X && Y) || (X && !Y)

This last step is important because the act of authoring content helps the mind create pathways connecting concepts more so than just reading. Furthermore, the last step also creates content that can be reviewed later on.

5.2 Self verification of understanding

To continue the example in the previous section, the last form (in C++ expression) can be tested using a simple program. Instead of taking the textbook or lecture for granted, a learner can write a simple C++ program to make sure that the expression (!X && Y) || (X && !Y) reproduces the values of the truth table of exclusive-or.

Exploring ways to self-verify the understanding of concepts is crucial to deep understanding because the exploration itself helps to reinforce the connection between concepts. Thinking of ways to self-verify also exercises critical thinking, and it trains creativity (seeking alternatives).

5.3 Shifting the attention from ends to means

Maintain the long term goals, but also think about how to refine the means to achieve those goals. In fact, from time to time, shelf the goals.

Why? This is because when the focus is on the goals, and there is bump on the road, the experience can lead to emotions like disappointment, helplessness, sadness, anger and etc. While it is important to acknowledge these feelings, as they are a part of the survival mechanism, it is also important to return to calmness for the next step (focusing on the means).

Meditation and mindfulness can help to achieve calm.

Once an individual is calm, the part of the brain that is capable of rational thinking and learning complex concepts can work again. This is when questions that involve “why” and “how” can be pondered upon.

5.4 Hang out with curious people

To understanding concepts deeper is not just a skill, it is a way of life. This is not exactly something that will change overnight. There are steps that can help, but being immersed in a community of people who are curious can be a fun and effective way to gradually change a person’s attitude to one that enjoys understanding concepts at a deeper level.

There are several reasons why hanging out with curious people can help with the long term goal of improving the understanding of concepts. Curious people tend to judge and worry less, and they often foster an atmosphere of openness that is crucial to lifelong learning. Many curious people are also curious about how different people think differently, they can help other people diagnose the individual thinking process.

6 An example

What is \(\frac{dx^2}{dx}\)? This is a calculus topic, but it is also a good example to utilize.

Being able to recall \(\frac{dx^2}{dx}=2x\) does not reflect any understanding.

Being able to apply the general rule that \(\frac{dnx^m}{dx}=nmx^{m-1}\) and substitute \(n=1\) and \(m=2\) does not reflect any understanding.

Understanding, in this example, involves first recognizing the notation as a short hand, and establish the following equality:

\[\frac{dx^2}{dx} = \lim_{\Delta x \rightarrow 0} \frac{(x+\Delta x)^2-x^2}{\Delta x}\]

But this expansion is no more than just a syntactic and mechanical step. Someone may notice a way to simplify this

\[\frac{(x+\Delta x)^2-x^2}{\Delta x} = \frac{x^2+2x\Delta x+\Delta x^2 - x^2}{\Delta x} = 2x+\Delta x\]

And then substituting \(\Delta x = 0\) results in \(2x\). But this is a terrible way to demonstrate an understanding of the original formula! Why? The substitution of \(\Delta x = 0\) reflects a non/mis-understanding of the concept of limits!

The symbol

\[\lim_{\Delta x \rightarrow 0} f(\Delta x)\]

becomes the next key concept. Of course, this concept (of limits) has its own definition, mechanically expanding it:

\[\lim_{w \rightarrow 0} f(w) = k\]

means

\[\forall \epsilon > 0 \in \mathbb{R}(\exists \delta \in \mathbb{R}(|f(w\pm \delta)-k|<\epsilon)) = \mathrm{true}\]

This, then, relies on the definition that \(\mathbb{R}\) is the set of all real numbers. But then the most interesting part is the \(\forall\) and \(\exists\) notations, meaning “for all” and “there exists”, respectively.

This is where mechanical expansion comes to an end. \(\forall v \in S(P(v))\) means “for all element \(v\) in set \(S\), the predicate \(P(v)\) is true”. \(\exists v \in S(P(v))\), on the other hand, means “there exists at least one element \(v\) in set \(S\) such that \(P(v)\) is true”.

What does a deep understanding mean at this point? Perhaps the question of whether \(\forall v \in \{\}(P(v))\) for some predicate (function that returns a boolean value) is true or not. This is an interesting question because it is essentially asking whether the statement “every apple in a basket of oranges is sweet” is true. There are no apples in the basket, so is the statement true or not?

As it turns out, the answer is that \(\forall v \in \{\}(P(v))\) is true regardless of how \(P(v)\) is defined. In other words, a for all statement (condition) is true by default if there are no applicable elements. The importance is to ask this question regarding the definition of \(\forall\). This involves an understanding of the concept, and the ability to think of extreme/boundary cases where the description in natural language is ambiguous or does not conclusively answers the question. The ability to come up with this question is a demonstration of critical thinking.

7 Tools to help with understanding

Because understanding is the ability to make logical connections between concepts and definition, certain tools can help a person make and maintain those connections.

7.1 Criteria

This section outlines the criteria to evaluate a tool:

7.2 Graphical or not?

A graphical tool is, at first glance, more intuitive and therefore “better.” However, for the same reason that flowcharts are seldom used in actual programming, a graphical concept map tool has severe limitation when the number of concepts grow.

7.3 Using markdown

markdown is a shorthand of HTML (Hypertext Markup Language). Compared to HTML, markdown formatting is convenient and intuitive. However, markdown is still a plain-text language, this means any text editor can be used to author markdown documents.

There are many ways to use markdown to write and maintain notes. There are some self-contained products, and there are many homebrew products as well. Self-contained products, such as Joplin, are easier to use, but at the same time has a number of restrictions.

There are many tools to support homebrew markdown authoring. Technically, authoring is easy because any text editor will do. However, there are no native markdown viewer (much like Firefox is a viewer of HTML). This means that even though it is easy to use markdown to author and create notes, there are relative few ways to review such notes.

pandoc is a tool that converts between various formats of text. pandoc can convert markdown to HTML for viewing/reviewing purposes. Furthermore, pandoc is an open architecture, and there are many filters created to expand on what pandoc can process. Compared to “standard” markdown, pandoc can include other files, create numbered section headers, along with quite a few additional enhancements.

While markdown requires a little bit of overhead to learn, its has a wide application in computer-related fields. For example, the README file of a github project is written in markdown.

7.3.1 Anchoring and referencing

One of the most important point to author material to help with deep understanding is the ability to link concepts. Markdown accepts HTML, and therefore has much flexibility.

The following is a <div> block template that has an anchor for referencing:

<div id="TODO-id" style="border: ridge; padding: 2px">
<div style="border: dotted thin; font-style: italic; color: gray ">#TODO-id</div> 




</div> 

The idea is to clone this template, then change the id from TODO-id to something more meaningful as the name of the anchor. The following is an example of a simple linkable <div> section:


<div id="example1" style="border: ridge; padding: 2px">
<div style="border: dotted thin; font-style: italic; color: gray ">#example1</div> 

This is just an example or an anchored `<div>` block that has 
an `id` of `example1`. Within the same document, a hyperlink 
to this block is simply `[link description](#example1)`, which 
is rendered as [link description](#example1).

Note that Markdown syntax still works here. Equations like $E=mc^2$ 
can be used within the `<div>` block.

</div> 

When rendered, it appears as follows:

#example1

This is just an example or an anchored <div> block that has an id of example1. Within the same document, a hyperlink to this block is simply [link description](#example1), which is rendered as link description.

Note that Markdown syntax still works here. Equations like \(E=mc^2\) can be used within the <div> block.

7.3.2 File level organization

A <div> block is a part of a file, the next level of organization is file-based. There are a few ways to group concept <div> blocks into files.

7.3.3 Mermaid

mermaid is an extension of Markdown that can be used to specify a graph using text. While mermaid is not suitable for large and complex graphs, it is quite useful for smaller ones. The best feature of mermaid is that it automatically figures out how best to draw a graph.

As a result, mermaid can be used to specify a graph that outlines the dependency of concepts.

The code of the above diagram is as follows:

```{.mermaid format=svg}
graph TD
  diff(differentiation)
  lim(limit)
  quant(quantifiers)
  algor(algorithm)
  universal(universal quantifier)
  existential(existential quantifier)
  diff -->| depends on | lim
  lim -->| depends on | quant
  quant --> | includes | universal
  quant --> | includes | existential
  quant --> | can be implemented by | algor
  click difff "https://power.arc.losrios.edu" "this is a link"
```

When mermaid is used in conjunction with pandoc as a part of a markdown document, the ability to create hyperlinks or interaction is lost. Some other conversion tool may preserve the interactive aspect of mermaid nodes.

7.3.4 Mermaid on steroid

In order to overcome the problem of pandoc pre-rendering mermaid graphs and therefore not supporting tool-tips and clicking, those who feel comfortable with HTML and a little bit of client-side Javascript coding can get around this problem.

First, include the following in the YAML header:

header-includes: <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js" type="text/javascript"></script>

This line is needed in order to bring in the JavaScript rendering JavaScript code.

Next, somewhere in the markdown document, include (just once in the document) the initialization of mermaid and define a function for convenience as follows:

<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.js" type="text/javascript"></script>
<script>
  mermaid.initialize(
    {
      startOnLoad: true, 
      flowchart: 
      {
        htmlLabels: true,
        useMaxWidth: false
      },
      securityLevel: 'loose'
    }
  );
  function mirt(id, mm)
  {
    document.getElementById(id).innerHTML = mm
  }
</script>

Then for each mermaid graph, create a <div> and the associated JavaScript code to specify the actual mermaid code

<div class="mermaid" id="dynamicMermaid">
</div>

<script>
  mirt('dynamicMermaid',`
flowchart LR
b --> a
click b "https://power.arc.losrios.edu" "hover to see this tool-tip"
`)
</script>

The result is rendered as follows. Note how hovering over node ‘b’ shows the tool-tip, and clicking node ‘b’ links to the anchor specified

Note that in order for the tool-tip to display properly, you need to define a CSS (cascading Style Sheet) entry. The following is the content of the CSS file that you need to include:

.label {
  font-family: 'trebuchet ms', verdana, arial;
  color: #333;
}

.node rect,
.node circle,
.node ellipse,
.node polygon {
  fill: white;
  stroke: black;
  stroke-width: 1px;
}

.node.clickable {
  cursor: pointer;
}

.arrowheadPath {
  fill: black;
}

.edgePath .path {
  stroke: black;
  stroke-width: 1.5px;
}

.edgeLabel {
  background-color: gray;
}

.cluster rect {
  fill: !important;
  stroke: !important;
  stroke-width: 1px !important;
}

.cluster text {
  fill: black;
}

div.mermaidTooltip {
  position: absolute;
  text-align: center;
  max-width: 200px;
  padding: 2px;
  font-family: 'trebuchet ms', verdana, arial;
  font-size: 12px;
  background: center lightgray;
  border: 1px solid gray;
  border-radius: 2px;
  pointer-events: none;
  z-index: 100;
}

You can download a copy of the CSS file.

Once you have the framework set up, embedding mermaid in client-side JavaScript is still cumbersome, but it does provide the ability to render mermaid graphs on-the-fly and the ability to have mermaid nodes to act as hyperlinks.

7.4 Google Doc

Google Doc is another platform that is quite useful for taking notes in the context of improving the understanding of concepts. Compared to pandoc (which implements markdown), Google Doc is a commercial (but free of charge) and polished WYSIWYG tool.

7.4.1 A shallower learning curve

Compared to markdown and pandoc, Google Doc has a shallow learning curve. This can be an important factor because the overhead of learning markdown and how to use pandoc can be overwhelming unless a person has time to invest in the learning process.

Furthermore, Google Doc is WYSIWYG compared to the “this is really a markup language” nature of markdown. mermaid is a more complex language to specify graphs, but the equivalent Google Doc feature to create diagrams is intuitive and has no language to learn.

7.4.2 Cloud and browser based

Google Doc is cloud-based. The advantage is that everything authored is saved with high availability and security automatically. Furthermore, it is possible to continue the editing of the material from just about any modern computing device (mobile devices included) as long as there is Internet access.

pandoc can be installed on a server computer, and offer some of the advantages of Google Doc. However, a server computer still requires maintenance and updates.

From a different perspective, however, pandco and markdown has the advantage of being usable on older computers. All the CLI (command-line interface) tools required to author and publish content are efficient in terms of computer resources (RAM, CPU, mass storage, display). Furthermore, except for publication and back up purposes, there is no need to use the Internet. One can quite comfortably continue to work on documents using a locally installed pandoc with no Internet access.

7.4.3 Efficiency

Efficiency refers to how much note authoring or editing that can be done over a period of time. Google Doc has the initial advantage, but markdown and pandoc may catch up and become more efficient than Google Doc.

This is due to several reasons. First of all, markdown is essentially simplified HTML. There is no need to access any menu or rely on mouse clicks to author content. While the efficiency difference of using a pointing device may seem negligible to most, it is significant. To some people, once markdown and using a competent text editor like vi or emacs become muscle memory, the act of moving one’s hand to use a pointing device can be distracting. Distracting a line of thought is more disruptive when taking notes of more abstract and complex concepts.

Indeed, the original concept of vi (the text editor) is to rely only on the main keyboard area to perform all operations. This includes page-up, page-down, home to the beginning or move to the end of a document. There is no need to move one’s hand to use the cursor keys, the home key, the end key, and etc. Despite the availability of more GUI and more WYSIWYG text editor, vi continues to be one of the core editors used by programmers.