Tag Archives: Computational Thinking

Learning does not mirror Teaching

An implicit assumption in most educational infrastructure is that teaching and learning are closely similar processes, perhaps even mirror images of each other. In the abstract at least, there is a transfer of knowledge from teacher to learner. It’s even possible that once a learner has assimilated enough taught knowledge, they could ‘switch polarity’ and become a teacher. No, this is not another well crafted advocacy for sweeping reform in the educational system. I am neither qualified nor motivated to deliver such a thing. I just want to say a few words in the context of some aspects of computational thinking. There are several ways to categorize programming languages: procedural, declarative, functional, concatenative, syntonic, object oriented, data oriented, etc. My point is merely this: teaching is declarative, learning is syntonic.

The ability to acquire and the ability to impart are wholly different talents. The former may exist in the most liberal manner without the latter.
– Horace Mann

When we start out, we immediately inherit a vast and exponentially expanding body of human knowledge. This is our birthright, it does not belong to gate keepers or authorities who mete out crumbs as they see fit. Academia has the task of adding to and curating this knowledge – it doesn’t own it.

The unifying term ‘education’ implies a deep connection, a yin-yang, almost mathematical sort of symmetry between teaching and learning. This symmetry is a perception that is eagerly supported by academia, it’s an intuitive and widely held view, a ‘central dogma’. There is little evidence for it, however. It should be remembered that mathematics is only shorthand for the complexity of nature. Nature is a realm of computation and evolution, and mathematics is one of the tools that enables a vastly simplified model of reality to be held in a three-pound hominid brain. It is often said that mathematical concepts such as π and the Fibonacci Sequence are seen everywhere in nature. That’s true, but they’re seen by who? Snails and daisies, or humans? The fact that we see a pattern does not necessarily mean that a ‘Deep Truth’ has been discovered. Anthropomorphizing nature is a mistake. Furthermore, it is difficult to see even a logical similarity between Plato in the olive groves of Athens and the result of many millions of years of evolution by variation and natural selection.

There is one aspect of teaching though, that is highly influential on learning. That is in a teacher’s capacity to inspire.

If you want to build a ship, don’t drum up people to collect wood and don’t assign them tasks and work, but rather teach them to long for the endless immensity of the sea.
– Antoine de Saint-Exupéry

Human knowledge may be a birthright, but the storage and delivery systems for that knowledge are subject to the laws of socio-economics just like every other industry. Papyrus, the printing press, telegraphy, telephony, electronic media, and ultimately the Internet has been the path of technology.

While not able to exactly lay out a guaranteed path, a teacher can describe the landscape, list known boundary conditions, and illustrate and clarify goals and heuristics. Teaching is therefore, a formal, objective, descriptive task. In programming parlance, it is ‘declarative’.

LOGO1

Learning stuff is a very different topic from teaching. We have basically the same neurology as people did way back when banging rocks together was high technology. We evolved to find food, avoid predators, and reproduce. Of course, when intelligence arrived on the scene, things became ‘non-linear’. When social behaviour and language arrived, Alice tumbled down the rabbit hole.

The smartphone is a testament to language, science, and technology, but not increased individual intelligence. In 1965, a good pocket radio had a handful of transistors. Today’s smartphone has over a billion. People haven’t gotten a hundred million times smarter in the last 50 years (at least I know that I haven’t). Buckminster Fuller’s “Knowledge Doubling Curve” goes from 100 years around 1900, to 25 years around 1950, to 1 year today, to months/weeks/days/hours? soon. Accurate predictions are difficult because human activity is now blending with machine learning, and it’s a whole new ball game. If the central dogma that teaching and learning are symmetrical ever was true, it is becoming less true with each passing year.

So how do human learners continue to even be relevant? Well, the good news is that the same evolved learning capacity we’ve always had is applicable to any level of abstraction. In fact, perhaps a serious exploration of exactly what ‘level of abstraction’ means would be a good thing for young minds. An associated idea is that ‘things’ are not of primary importance, but rather that the connections between things are. Metaphors are examples of such connections. If we can conceptualize atoms and galaxies in terms of table-top models, we have a shot at comprehension. Also, people can learn on their own using reasoning, common sense (bootstrapping), reverse engineering, and intelligent trial and error.

The key element to learning is experience. It makes little difference how logical or well laid out an argument is if the learner has no connection to it. That’s what is meant by ‘syntonic learning’:

Educators sometimes hold up an ideal of knowledge as having the kind of coherence defined by formal logic. But these ideals bear little resemblance to the way in which most people experience themselves. The subjective experience of knowledge is more similar to the chaos and controversy of competing agents than to the certitude and orderliness of p’s implying q’s. The discrepancy between our experience of ourselves and our idealizations of knowledge has an effect: It intimidates us, it lessens the sense of our own competence, and it leads us into counterproductive strategies for learning and thinking.
– Seymour Papert

A body of knowledge is much more compelling if it can be explored subjectively, at the learner’s own speed and depth, because memorability is a big part of learning:

When you make the finding yourself – even if you’re the last person on Earth to see the light – you’ll never forget it.
– Carl Sagan

Teaching does not and cannot encompass learning:

What we become depends on what we read after all of the professors have finished with us. The greatest university of all is a collection of books.
– Thomas Carlyle

Learning is not containable in bricks and mortar or bureaucracy. It is very simply, what every human does whenever free to do so. ‘Education’ is really just another word for ‘learning’:

Self-education is, I firmly believe, the only kind of education there is.
– Isaac Asimov

It may be tempting to assert that Socratic dialectic is a suitable substitute for syntonicity. However, the former, while undeniably powerful and valuable, still involves knowledge transfer between human minds. This, by necessity, requires formalism, symbolism, and formulae. Syntonicity, on the other hand, requires nothing but a human mind exploring reality, with the aid of machine computation (algorithms) if necessary. Learning is therefore, an informal, subjective, experiential task. In programming parlance, it is ‘syntonic’.

Save

Forth: A Syntonic Language

Educators sometimes hold up an ideal of knowledge as having the kind of coherence defined by formal logic. But these ideals bear little resemblance to the way in which most people experience themselves. The subjective experience of knowledge is more similar to the chaos and controversy of competing agents than to the certitude and orderliness of p’s implying q’s. The discrepancy between our experience of ourselves and our idealizations of knowledge has an effect: It intimidates us, it lessens the sense of our own competence, and it leads us into counterproductive strategies for learning and thinking.¹
– Seymour Papert

People are sentient and we know that we are sentient. We are also social creatures. The human mind is aware of ‘agency’, in both itself and others. Since the beginning of recorded history, and probably long before, we have even ascribed agency to objects and events in the natural world. Once we attain consciousness, it becomes powerful and efficient to reuse this mind machinery to understand the world around us in familiar terms. Mirror neurons in the human brain enable us to read or infer intention in others. They do not merely form patterns of thought – they reflect them.

Syntonic is a word sometimes found in music theory, but in psychology, syntonicity means having a strong emotional connection with the environment. It is understanding something through identification with it. It is achieved by putting oneself “in another’s shoes”, and it is key to human learning. One form of this is imitation, and children do this all the time, with everything from trees and animals to teapots and airplanes. Another form is metaphor, where an established understanding is substituted for a new and unfamiliar thing. See Ancient Metaphors for examples from the IT world.

When we mature, many of us discover computer programming and would like to use the same built-in learning method that allowed us to develop ‘common sense’. However, most programming languages and their text books are so abstract, formal, and doctrinal, that it’s nigh-on impossible to get very far this way. As a result, computational thinking recedes off into the ivory tower, and the world is much worse off because of it.

This type of learning is well suited to therapeutic applications due to its natural, informal flow. Starting with the ‘hard wired’ facilities we all have, ‘bootstrapping’ (discussed below) is a very individual and non-doctrinal process.

An interesting and more in-depth exploration of syntonicity in programming languages was written by Stuart Watt.²

 

Forth words

I have found Forth to be a very syntonic language.

Syntax and structure are the first face that we see of a new language. Some are fairly natural (e.g. BASIC), most are verbose and intricate, and some are at the extreme end of mathematical formality (e.g. Haskell). Forth is positively Spartan by comparison, with the majority of keywords being three letters or less, and the ‘: … ;’ pair providing most of the structure and context. Some long time users of Forth do not even like its syntax and quickly override keywords (a trivial task in Forth), inventing their own to craft the language to be more in tune with their way of thinking. Ironically, this makes them love Forth more, not less. It is an extremely simple language. At its core, Forth is just a mechanism to reduce the cost of calling a subroutine to merely referring to it by name. But this is not what makes Forth syntonic.

“syntonicity is not directly a property of the syntax, or even the semantics or pragmatics of a language, but a property of the stories that we tell about it” (Watt p.5)

Forth is a stack-based, threaded, concatenative language with a tightly coupled interpreter and compiler. To explain these terms, and thus ‘tell a story of Forth’, we’ll use a metaphor:
Forth – a hiker (named ‘Arkady’ for convenience)
Stack – her backpack
Thread – the trail
Interpreter – her mind (neurology)
Compiler – her logbook

Notice that there is no clear distinction between traveler (Forth) and journey (program). Arkady’s journey is of more interest to her than is her destination. She is open to distraction, side-trips, and unexpected eventualities. Even mistakes are sometimes learning opportunities. This is the way of Forth – less focus on design and protocol, more on exploration, discovery, and emergence.

Life is not a problem to be solved, but a reality to be experienced.
– Soren Kierkegaard

While most languages are applicative (functions are applied to data), Forth is concatenative, which is a much more natural and emergent process. There are also few safeguards in Forth; the entire environment (machine) is wide open. This freedom is anathema to authorities of language design, which might partly explain why Forth-like languages are not more widespread. It’s much safer to clone an application from an existing template and/or framework than to invent a new one. Of course, the result is a copy, not an original. Incidentally, in much research funding, the outcome must almost be predicted along with careful metrics and timetables (ask anyone who has prepared a grant application). This squelches creativity and serendipity. It also puts a premium on positive results over negative (and perhaps greatly informative) ones. In fairness, just so we don’t make the mistake of assuming that everyone agrees that doctrine is a bad thing, there has been a large and successful effort to come up with a more standardized, ANS Forth.

Her backpack (the stack) is a readily available, last in, first out (LIFO) pile of items that she adds or removes as required. As a good hiker, Arkady is always aware of what’s in her backpack. She keeps often-used items (tools, map, compass) near the top. Longer term necessities (food, tent) are towards the bottom.

She walks along the trail (thread), step-over-step. Some steps are short and obvious, like avoiding big rocks and snakes. Some are more complex and subtle, such as crossing streams and staying downwind of bears. Many are actually composites of smaller steps. Some require more items from the backpack than others. At each step, she has the same backpack, although the exact contents may vary. She may sometimes just take the top few items, drop the pack, and head off down an interesting side trail. This is how a Forth program is built up. New ‘words’ are written to accomplish tasks. These words are then threaded together as higher level words invoke a series of them. Eventually, a single, highest level word is the starting point for the whole program, which is just a chain of subroutine calls.

Using all of her neurology, from senses to brain to common sense, logic, and rationality, she ‘interprets’ her world. She learns new facts and skills as she walks, gradually ‘bootstrapping’ a deeper understanding of her environment and more powerful and efficient use of resources (food, energy, time). To learn if and how something works, she prods it and observes the results. If she finds an unfamiliar mineral, she could bring whatever tools she is carrying to bear. Or, she could invent an entirely new tool. She could craft a crude microscope from the magnifying lenses and rolled up map in her backpack. If she has time, a mass spectrometer may be suitable. In Forth, quick tests and trials are inexpensive and easy. There is no odious edit-compile-run loop to get in the way. For example, to find what OVER does, put a few numbers on the stack, type OVER, and examine the stack to see the result. Stumbling around with her nose in manuals and books would perhaps cause Arkady to miss a fossil or patch of berries. It is also a good way for her to become lunch for a mountain lion.

A word about bootstrapping. Sometimes, when a skill is applied to produce a result, new knowledge (or a new tool) is gained in the process. This new knowledge opens the door to skill-set improvement or refinement, which enables hitherto impractical or unseen possibilities. In turn, even more new knowledge is obtainable, and the process repeats. The result is flint knife to bow and arrow to alchemy to chemistry to electronics to spaceflight. Bootstrapping is the essence of Forth. Sadly, multitasking, object-orientation, dissociation and data-hiding, and that ultimate chestnut, ‘leveraging’ are all much more in vogue today. Multitasking in human thinking is greatly overrated. Deeper, syntonic thinking enables more creativity and innovation. If Forth was more widely used and understood, you might well be reading this on Mars right now. If it had been invented earlier, you might be reading this on Triton.

From time to time, Arkady considers new observations, knowledge, thoughts, and ‘steps’ to be well-established and important enough to jot down in her logbook. This log serves as a permanent record of all she has learned on her journey. It is in fact, a purified, corrected, ‘frozen concentrate’ of her trail.

Arkady eventually arrives at the end of her journey. It may have been cut short for various reasons or maybe her destination is different (maybe even better) than she originally intended. This is a function of her curiosity as much as weather or circumstance. In any case, she still has her logbook, for her or others to use as a future guide (be they human or machine).

Some would say that it’s wrong to argue for Forth going forward. After all, it’s an old language, and was originally created for control of machinery in an era of sparse computational resources. As programs and systems grow ever-more complex, capable, and intelligent, such a language has outlived its usefulness. However, I must disagree. The future is not just about frameworks, big data, and augmented reality. It will be at least as important to build new, ad hoc, ‘micro’ systems rapidly and locally in a time of dizzying acceleration of technology. Creating, testing, and problem solving starting from first principles will always be valuable.

Understanding the world requires thinking in new languages. Forth is to computer science what math is to physics. Computational thinking, syntonicity, learning-by-doing*, and good old human common sense are not headed for the dust bin of history any time soon. Here are some further thoughts on learning.

 

Greek Pattern 1

 

 

* I am, however, perhaps not a very good constructionist, try as I might.
I once tried (unsuccessfully) to acquire a minor Logo implementation.
I believe in learning-by-doing something else !  A wide, diverse search is
often the most efficient (just ask the ants).

(1) Papert, S. (1980). Mindstorms: Children, Computers, and Powerful Ideas. New York: Basic Books
(2) Watt, S. (1998). Syntonicity and the psychology of programming – Psychology of Programming Interest Group 10th Annual Workshop.