All of education, all learning and teaching all around are contingent to the belief in a constant intellectual ability.
When we learn a skill, or teach a skill, there is an implicit belief that this new learning would add more information and knowledge to the learner's repertoire of knowledge, but wouldn't do much to expand his intellectual ability and brilliance.
The world of Computers and Programming offer us a unique opportunity to dive deep into our own minds and cognize how our minds go about thinking problems. Programming, often misconstrued as an extension of Problem-Solving, is actually a dimension beyond Problem-Solving because it involves much more than problem-solving: it requires us to teach a dumb machine to solve a problem, by providing it precise step-by-step instructions on solution steps.
Hence, there is an in-built element of Meta-cognition in programming. It makes us think about our thinking process.
Programming, if learnt, mastered, and practiced from the perspective of Meta-cognition could be a priceless tool in transport our Intelligence out of the closed system that it usually functions as, and allow our Intelligence to look back at its own functioning from a higher plane. This is the most spontaneous way of widening our intellectual abilities.
This series of writings demonstrates how Programming can be used from the perspective of Meta-Cognition and Algorithmic Thinking to take you on a journey within your own Intelligence, observe movement by movement on how your mind goes about solving problems, and allow that experience to enhance, expand and widen your intellectual abilities off the charts.