Ranges and expressions 6
Conclusions
In this session we covered a large area of computation design thinking concepts and techniques. The rapid hands-on i.e. experience-first / formalize-later, approach aimed at jumping directly into the fun, exploratory as well as practical and useful aspects of design computation i.e. automation.
Sharing the spirit of assembling simple processes and immediately seeing the results, is what influenced the early generations of digital tinkerers and computing pioneers. We will keep iterating and refining upon those concepts while increasing the depth and complexity of our understanding.
Towards Modern Visual Programming
The introduction was based on spreadsheets being the oldest and most popular form of visual computing today. Next time we will use a black-box and conduits paradigm; a more contemporary version of visual computing. By the end of the term you will be fully immersed in the text-based programming languages.
Nevertheless, exactly the same concepts apply despite the variations of the media and notations used. It is paramount to understand those common foundations of computational thinking via different implementations. Technology changes rapidly, so it is highly beneficial to develop flexibility of identifying the common patterns and adapting to new languages and computing environments.
The Value of Multiple Representations
We used a multi-representations palette of tools based on (a) spreadsheet tables for our numerical back-end, (b) computer aided design command line interface as our geometric execution pipeline and (c) interactive 3D rendering as a visualization front-end. In a sense they all contained the same information but in slightly different forms. We hope that it is now evident how different representations accommodate different cognitive capabilities, which are innate to the media themselves.
Computation as the Study of Processes
We explored the notion of a process as ranges of serially executed instructions. In fact we wrote our first expressions, in a sense the first lines of code, using simple mathematical functions. The concept of symbolic expressions as a transformation of information between different forms is highly critical to accommodate.
We approached the notion of computation through the unfolding of flows of information automatically computed by expanding columns of data. The ability to liberate oneself from the burdens of calculation i.e. computing all interim values, is a key feature of computing. Once the expressions were written we could expand as much as needed with near zero effort.
Notation Challenges
There are notation challenges in the form of expression syntax, that may seem off-putting now. Many people give up early on computing because of this annoyance; being confronted with a foreign language and feeling illiterate or unable to express complex thoughts.
With a bit of persistence and perseverance those challenges will go away rather fast. Remember that the goal of developing computing literacy, learning a new foreign language, playing a musical instrument or a new sport, is not in the conventions and formalities involved in themselves i.e. adhering to the rules and exceptions etc, but in the ideas we want to express and convey using it.
Appreciating the Limitations
We also bumped into some limitations of our computing environments. For example, expanding columns to compute say 1000 data rows seems rather tedious. The 2D world of spreadsheets made it difficult to shape-wise fit certain kinds of data representations such as surface geometries. Copying and pasting data, converting data from/to text representations was utterly tedious; blocking direct interactivity and perhaps intuition. Three dimensional graphical representations are convenient, when the problem is geometric, but what about higher-dimensional problems?
In the following weeks we will address those challenges and find ways to overcome them. As we build a vocabulary of concepts and techniques the ideas we can express will expand. For the time being it is a good practice to stretch the capabilities of the available tools and resources to maximum of their potential.
Further Reading
Last updated