10.014 CTD
  • Overview
  • Schedule
  • Administrative
    • Accessing Rhino remotely
    • Rhino for Mac
  • ASSIGNMENTS
    • Dates and rubrics
    • Generative design
      • Generative design
    • Parametric design
      • Parametric design
    • Simulated design
      • Simulated design
      • Simulated design
  • SESSION 1B
    • Computer Aided Design
    • Ranges and expressions 1
      • Ranges and expressions 2
      • Ranges and expressions 3
      • Ranges and expressions 4
      • Ranges and expressions 5
      • Ranges and expressions 6
  • SESSION 2A
    • Visual programming 1
      • Visual programming 2
      • Visual programming 3
      • Visual programming 4
    • Associative modelling 1
      • Associative modelling 2
      • Associative modelling 3
  • SESSION 2B
    • Logical Patterns 1
      • Logical patterns 2
      • Logical patterns 3
  • SESSION 3A
    • Spatial geometry 1
      • Spatial geometry 2
      • Spatial geometry 3
      • Spatial geometry 4
      • Spatial geometry 5
      • Spatial geometry 6
      • Spatial geometry 7
    • Curve geometry 1
      • Curve geometry 2
      • Curve geometry 3
      • Curve geometry 4
  • SESSION 3B
    • Surface geometry
    • Parametric modelling 1
      • Parametric modelling 2
      • Parametric modelling 3
      • Parametric modelling 4
  • SESSION 4A
    • Information nesting 1
      • Information nesting 2
      • Information nesting 3
    • Data landscapes 1
      • Data landscapes 2
      • Data Landscapes 3
      • Data landscapes 4
  • SESSION 4B
    • Mesh geometry 1
      • Mesh geometry 2
      • Mesh geometry 3
  • SESSION 5A
    • Space and time 1
      • Space and time 2
    • Modelling entities 1
      • Modelling entities 2
      • Modelling entities 3
  • SESSION 5B
    • Multibody dynamics 1
      • Multibody dynamics 2
    • Material elasticity 1
      • Material elasticity 2
      • Material elasticity 3
  • SESSION 6A
    • Form-finding 1
      • Form-finding 2
      • Form-finding 3
      • Form-finding 4
  • SESSION 6B
    • AI Image generation 1
      • AI Image generation 2
      • AI Image generation 3
  • APPENDIX
    • Spirograph 1
      • Spirograph 2
    • Curves
    • Swarm Intelligence 1
      • Swarm Intelligence 2
    • Hybrid programming 1
      • Hybrid programming 2
Powered by GitBook
On this page
  • Conclusions
  • Further Reading
  1. SESSION 1B
  2. Ranges and expressions 1

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

PreviousRanges and expressions 5NextVisual programming 1

Last updated 9 months ago

If interested in the subject of cognition you may read a short article “Representations in Distributed Cognitive Tasks” by Zhang and Norman (1994) reporting how different representations of the same game, namely the Towers of Hanoi, can affect problem-solving performance. “Visual Thinking” by Arnheim (1969) is a classic on illustrating the interplay between visual representations and conceptual development for design. Additionally, students may refer to “A Small Matter of Programming” by Bonnie Nardi [] to read more about the use of spreadsheets for programming.

>