Computational making

The educational technology and digital learning wiki
Jump to navigation Jump to search

Draft

Introduction

Computational making combines computational thinking (in this case computational design) with digital fabrication.

In a conference paper (Johnson, 2017: abstract) [1], Johnson argues, that “the maker movement generates much more stuff to consume. A school may purchase a 3D printer for educational purposes, only to have its student-makers simply download and print other people's models without learning to make their own. To prevent this kind of situation, educators must capitalize on the maker movement in ways that facilitate what we call computational making, which involves both meaningful cognition and the making of artifacts.”. Put more positively, computational making is a motivating way to learn programming and other technical skills. “In maker culture, the ability to program along with other technical skills [...] includes fun activities through personally fabricated projects.”[2]

More formally, Knight & Vardouli (2015), define "computational making" in two steps: “On a conceptual level, we use ‘making’ as a keyword for action-centric, process-oriented attitudes toward the production and use of material things”. “With regard to the ‘computational’ in Computational Making, we interpret the term broadly as the use of formal, mathematical systems, theories, and methods, as well as tools and technologies developed on the basis of such systems. Computation includes systems and tools for designing (for example, generative and parametric systems, or visualization and modeling systems) and for making (for example, fabrication and construction systems). Computation may include, but is not limited to, the use of digital computers.” (Editorial Computational Making)

Computational design is sometimes use as a synonym of computational making or as its most important part (e.g. as in Introduction to computational design). According to Jacobs and Buechley [3], computational design "is the practice of using programming to create and modify form, structure, and ornamentation''. The term also can refer to a more generative philosophy, e.g. as proposed in Computational Design: The Future of How We Make Things is Tech-Driven. Finally, Paul Jeffries in What is Computational Design? describes Computational Design as the change in the medium of design expression from geometry to logic.

The origin of educational computation design is the Logo programming microworld [4] from which many other environments are derived. Later, Logo was interfaced with Lego bricks and other hardware. As of today, there exist several environments inspired by Lego, e.g. Scratch. Some of these are used together to program small robots. All of these have in common the idea to provide a so-called microworld that allows exploring computational thinking, science and design problems. "Making" adds another dimension, being able to create a physical design. Jacobs and Buechley (2013) [3] claim that the combination of computational design and digital fabrication offers many exciting possibilities for art, design, and creative expression.

Advantages of computational design and making vs traditional design

Jacobs and Buecheley [5] identify the following benefits that can extend traditional design techniques:

  • Precision and automation: Computation affords high levels of precision and allows for automation of repetitive tasks, enabling the rapid development and transformation of complex patterns and structures.
  • Generativity and randomness: Computation allows for the programmer to design algorithms which when run, allow for the computer to autonomously produce unique and often unexpected designs.
  • Parameterization: Computation allows users to specify a set of degrees of freedom and constraints of a model and then adjust the values of the degrees of freedom while maintaining the constraints of the original model.”

Computational making languages

We probably can distinguish between three types of computational design environments:

  • Visual programming laguages like BlocksCAD designed for novices
  • Specialized programming languages like OpenScad designed for users with some programming skills
  • Visual "node" languages that appeal to users with a strong mathematics and design background

Chitas et al. [6] “found that block-based programming interface of BlocksCAD seemed to be more appealing for the participants with little or no profound experience. Participants who had experience with programming found the interface very simple at first. Demonstrating more sophisticated projects with the same parametric design tool and introducing a more complex use of commands created a more challenging experience that met their educational needs. Participants with profound programming knowledge and higher expectations, enjoyed working with OpenSCAD more and were not frustrated by the text editor interface. Participants with no experience on programming found OpenSCAD frustrating at first even though most of the participants managed to design the projects they intended.”

Name Type of artefact Type of language URL Author
BlocksCAD 3D Online Visual block language https://www.blockscad3d.com/ [7]
OpenSCAD 3D Functional language to create 3D objects https://www.openscad.org/ Example
Madeup 3D Online Turtle language https://madeup.xyz/ Example
Beetle Blocks 3D Visual block turtle language http://beetleblocks.com/ [8]
Turtlestitch 2D Embroidery (laser cutting) Online Visual block language https://www.turtlestitch.org/ Example
MakeCode Electronics Online Visual block language http://makecode.org Example
Twoville 2D SVG (laser cutting) Logo-like programming language https://twodee.org/twoville/ Example
Grasshopper 3D 3D "Math Scripting" within Rhino (a high end design modeling environment) https://www.grasshopper3d.com/ Example
Tinkercad Codeblocks 3D Online Visual language, part of the free online Tinkercad 3D modeling environment Example Example
Sverchok 3D Visual language on top of the popular open source 3D modeling Blender software. http://nikitron.cc.ua/sverchok_en.html Example
Code’n’Stitch 2D Embroidery Built on top of Pocket Code, a programming environment for kids on the mobile phone https://codenstitch.wordpress.com/

Making to teach computational thinking

Chytax, Tsilingiris and Diethelm (2019) [2] argue that "The creation of computational artefacts as a means of expression could be an exciting way to develop computational literacy [9] . Modern digital fabrication tools like 3D printers, laser cutters and CNC routers enable the manufacturing of computational designs of complex geometries and structures. Furthermore, combining digital fabrication with coding can open new ways to promote design and creativity [3] ." The authors conducted an automated analysis of 2216 computational design models uploaded to an online makertool. Most objects analysed are computationally rather simple, e.g. are based on the combination of primitive geometry objects. However, 422 of the projects include at least one loop, 68 designs included at least one conditional statement, and 315 contained at least one function.

In a related research the authors [6] the authors organized 4-day parametric design workshops and found that the combination of parametric design and digitial fabrication benefits computing education. “The majority of the participants who participated in our workshops have shown a good ability to deal with programming practices during parametric design. They created the objects they intended, developing core competences and skills on computer science constructs like loops, variables and conditionals but also concepts of engineering design (CAD and digital fabrication) and science (using mathematical operations, geometrical concepts and physics).”. Interviews with participants identify use of loops and syntax as main difficulties, however the latter is not an issue with the visual environment. In addition, the authors argue that computational making also allows introducing maths concepts in an appealing way. “Profound basic knowledge of mathematics is crucial for integrating loops and conditions in the design process. Participants with weaker mathematics and geometry background met more difficulties on understanding computational models and schemata. Basic knowledge in geometry like dividing one circle into equal parts and knowing which numbers are even or odd, is essential for the creation of creative parametric design projects. We believe parametric design could introduce mathematics and geometry in an appealing way and cover the gaps that were previously mentioned.”. The authors also found that educators should provide constructive examples and projects to create a computationally rich environment and “found computational art and parametric design concepts which include recursive and repetitive elements an effective concept to do so.” All in all, both studies demonstrate that computational making can include typical programming constructs and that participants do engage. Further studies are need to test if computational making using visual or symbolic 3D programming language is efficient.

Jacobs and Buechely (2013) [10] organized a short lamp creation workshop and a longer fashion workshop. In the fashion workshop, participants used the Codeable Objects software, a Java-based library for Processing. “Participants were given 10 days to conceptualize and construct a garment using a combination of computational design, digital fabrication, and traditional sewing and crafting”. They found that “the overall feelings of engagement and empowerment fostered by these experiences indicate that computational-design tools for novices could serve as a powerful way to positively change people’s understanding of the relevance and applications of programing, while fostering technological and aesthetic literacy in the process”

Learning theoretical and cultural background

Most discourse on computational making is rooted in constructionism. For example, Mori (2017) [11] cites Kafai and Resnick (1996:1) who defined Constructionism as follows: “Constructionisms uggests that learners are particularly likely to make new ideas when they are actively engaged in making some type of external artifact - be it a robot, a poem, a sand castle, or a computer program - which they can reflect upon and share with others. Constructionism involves two intertwined types of construction; the construction of knowledge in the context of building personally meaningful artifacts.”

Computational making is often related with arts-based approaches. E.g. Jacobs and Buechley (2013) [10]argue that “Art and design are two domains that offer exciting possibilities when combined with programming and digital fabrication. Unfortunately, use of programming as a medium for art and design, especially by young adults and amateurs, is limited. [..] Despite this perception, programming has the potential to correspond well with traditional, physical art-making practices [7]. By finding ways to connect computation to the design and production of personally relevant physical objects, it is possible to engage novice practitioners in creative programming. The combination of digital-fabrication technologies with computational design serves as one such connection.”. In this paper, the authors identified the following main outcomes of a a ten-day computational fashion workshop: “The combination of computational design and fabrication can actively support the expression of personal identity in a positive setting. It can also foster feelings of confidence in programming and support aesthetic and technological literacy. The projects from the workshops demonstrate unique aesthetics and suggest new opportunities for casual and novice practitioners of art, craft, and design. The workshops also promoted a deep understanding of computation as evidenced by critiques of the participants as well as demonstrating the importance of physical prototypes in the design process. Finally, the workshops promoted a sustained engagement in programming”.

Links

Computational making

Computational design

People

References

Cited with footnotes

  1. Johnson, C. (2017, March). Toward Computational Making with Madeup. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (pp. 297-302).https://doi.org/10.1145/3017680.3017703
  2. 2.0 2.1 Chytas, C., Tsilingiris, A., & Diethelm, I. (2019). Exploring computational thinking skills in 3d printing: A data analysis of an online makerspace. In IEEE Global Engineering Education Conference, EDUCON (Vol. April-2019, pp. 1173–1179). IEEE Computer Society. https://doi.org/10.1109/EDUCON.2019.8725202
  3. 3.0 3.1 3.2 J. Jacobs, L. Buechley, "Codeable objects: Computational design and digital fabrication for novice programmers", Proceedings of the SIGCHI Conference on Human Factors in Computing Systems, pp. 1589-1598, 2013, April.
  4. 6. Papert, S. (1980). Mindstorms: Children computers and powerful ideas, Basic Books, Inc., 1980.
  5. Jacobs, J., & Buechley, L. (2013, April). Codeable objects: computational design and digital fabrication for novice programmers. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 1589-1598).
  6. 6.0 6.1 Chytas, C., Diethelm, I., & Tsilingiris, A. (2018). Learning programming through design: An analysis of parametric design projects in digital fabrication labs and an online makerspace. In IEEE Global Engineering Education Conference, EDUCON (Vol. 2018-April, pp. 1978–1987). IEEE Computer Society. https://doi.org/10.1109/EDUCON.2018.8363478
  7. Berdik, C. (2017). Kids Code Their Own 3D Creations with New Blocks-Based Design Program. Tech Directions, 76(9), 23.
  8. D. Koschitz, E. Rosenbaum, "Exploring algorithmic geometry with “beetle blocks:” a graphical programming language for generating 3d forms", 15th International Conference on Geometry and Graphics Proceedings, vol. 36, 2012, August.
  9. Berland, M. (2016). "Making tinkering and computational literacy", in Kylie Peppler, Erica Rosenfeld Halverson, Yasmin B. Kafai (eds). Makeology: Makers as learners, vol. 2, pp. 196.
  10. 10.0 10.1 Jacobs, J., & Buechley, L. (2013). Codeable Objects: Computational design and digital fabrication for novice programmers. In Conference on Human Factors in Computing Systems - Proceedings (pp. 1589–1598). https://doi.org/10.1145/2470654.2466211
  11. Mori, H. (2017). The Programmable battery: A tool to make computational making more simple, playful, and meaningful. In IDC 2017 - Proceedings of the 2017 ACM Conference on Interaction Design and Children (pp. 515–519). Association for Computing Machinery, Inc. https://doi.org/10.1145/3078072.3084318

Bibliography on computational making and design

  • Berdik, C. (2017). Kids Code Their Own 3D Creations with New Blocks-Based Design Program. Tech Directions, 76(9), 23.
  • Chytas, C., Diethelm, I., & Lund, M. Parametric Design and Digital Fabrication in Computer Science Education.
  • Chytas, C., Diethelm, I., & Tsilingiris, A. (2018, April). Learning programming through design: An analysis of parametric design projects in digital fabrication labs and an online makerspace. In Global Engineering Education Conference (EDUCON), 2018 IEEE (pp. 1978-1987). IEEE.
  • Chytas, C., Tsilingiris, A., & Diethelm, I. (2019). Exploring computational thinking skills in 3d printing: A data analysis of an online makerspace. In IEEE Global Engineering Education Conference, EDUCON (Vol. April-2019, pp. 1173–1179). IEEE Computer Society. https://doi.org/10.1109/EDUCON.2019.8725202
  • Eisenberg, M.; A. Ei* Abelson, H. and A. diSessa,Turtle Geometry: the Computer as a Medium for Exploring Mathematics. MIT Press, 1981senberg, L. Buechley, and N. Elumeze, “Computers and physical construction: Blending fabrication into computer science education,” in Int. Conf. on Frontiers in Education: Computer Science& Computer Engineering (FECS ’08), 2008, pp. 127–133.
  • Eisenberg, M; N. Elumeze, L. Buechley, G. Blauvelt, S. Hendrix, and A. Eisenberg, “The homespun museum: Computers, fabrication, and the design of personalized exhibits,” in Conf. on Creativity & Cognition (C&C’05), 2005, pp. 13–21.
  • Koschitz, D., & Rosenbaum, E. (2012, August). Exploring algorithmic geometry with Beetle Blocks: A graphical programming language for generating 3D forms. In Proceedings of the 15 th International Conference on Geometry and Graphics (pp. 380-389).
  • Greenberg, I., Kumar, D., and Xu, D., Creative coding and visual portfolios for CS1. The Technical symposium on Computer Science Education, ACM, 2012.
  • Henderson, P. “Functional geometry,” Higher Order and Symbolic Computation, vol. 15, no. 4, pp. 349–365, 2002. Preprint ?
  • Jacobs, J., & Buechley, L. (2013, April). Codeable objects: computational design and digital fabrication for novice programmers. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 1589-1598). https://doi.org/10.1145/2470654.2466211
  • Johnson, C. (2017, March). Toward Computational Making with Madeup. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (pp. 297-302). https://doi.org/10.1145/3017680.3017703


  • Rode, J. A., Weibert, A., Marshall, A., Aal, K., von Rekowski, T., El Mimouni, H., & Booker, J. (2015, September). From computational thinking to computational making. In Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing (pp. 239-250).
  • Williams, K. (2015). Girls, Boys, and'Bots: The St. Clare's robotics team [Pipelining: Attractive Programs for Women]. IEEE Women in Engineering Magazine, 9(1), 25-28.

Other, frequently cited references

  • Abelson, H. and A. diSessa,Turtle Geometry: the Computer as a Medium for Exploring Mathematics. MIT Press, 1981
  • Papert, Seymour, Mindstorm: Children, Computers, and Powerful Ideas. BasicBooks, 1980.
  • Kafai, Y. B., & Resnick, M. (2012). Constructionism in practice: Designing, thinking, and learning in a digital world. Routledge.