During a recent session of our Art and Science Teacher Workshops, I engaged in action research by implementing and reflecting on a lesson on the use of computers for creative means, namely creating visual art. The participants explored the work of Sol LeWitt, who created instruction based works intended to be carried out in a variety of contexts. Brain Pickings has provided an overview that shows how various artists have approached this idea. LeWitt’s instructions can be implemented using traditional technology, but in this lesson I chose to use two newer tools, Scratch and Processing, to introduce how computers can be tools of creative expression through programming and play.
Grade level: K-12 Teachers
Common Core Math (for students – not standards for the workshop)
7.G.2 Draw (freehand, with ruler and protractor, and with technology) geometric shapes with given conditions. Focus on constructing triangles from three measures of angles or sides, noticing when the conditions determine a unique triangle, more than one triangle, or no triangle.
National Core Art Standards (for teachers/students)
CR.1.1.8 Generate ideas, goals, and solutions for original media artworks through application of focused creative processes, such as divergent thinking and experimenting.
CSTA Computer Science Standards (for teachers/students)
L1:6.CT.1 Understand and use the basic steps in algorithmic problem-solving (e.g., problem statement and exploration, examination of sample instances, design, implementation, and testing).
L1:6.CT.6 Understand connections between computer science and other fields.
I recently interviewed fellow educators and software developers about what they thought computer science was. The results were rather interesting, as responses ranged from not being sure at all to focusing on programming and use of computers. The interviewees included:
- A second grade teacher
- An art educator
- A software developer
As you might expect, their responses varied quite widely. This demonstrates a challenge to the computer science field in communicating the nature of the discipline, although debate with the field exists on that very question.
Zweben, S. (2011). Computing degree and enrollment trends. Computing Research Association.
— jkurleto (@jkurleto) December 8, 2014
Forty years ago, Donald Knuth argued that computer programming is both an art and a science, with the two aspects not at odds but complementary to each other. Writing a program “can be like composing poetry or music…programming can give us both intellectual and emotional satisfaction” (Knuth, 1974, p. 670). He perceived that it is not only the result of an algorithm that can demonstrate creativity, but the act of creating the algorithm as well. This is akin to recognizing that the techniques of a painter can be as creative as the painting itself, as the process and product are intrinsically linked. Creativity in programming has long been accepted in the computer science community, but not necessarily with the general public. One contributing factor is that the algorithms and code that implements them have often been obscured from the end user, or to borrow an art term, viewer.
A new museum exhibit, The Art of Algorithms, will pull back the curtain to reveal the spectrum of creativity used in creating and implementing algorithms and demonstrate applications of computational thinking in the arts. By participating in this interactive museum exhibit, visitors will not only be able to experience examples of digital art, but also create works to be displayed within the gallery. Museums play an important role in communities by not only elucidating difficult concepts but nurturing passions in different fields of study and showing connections across disciplines.
Scratch provides an easy to use entry point for young students to create programs using natural language and drag-and-drop blocks of code. The interface uses natural language instructions that allows projects to straddle the line between algorithm and program: once the blocks have been snapped together, they describe a method to solve a problem, but Scratch encourages students to play with the algorithm through easily modification, and the results are instantaneous – the blocks can even be changed while the program is running. In my experience with Scratch, allowing young students to start with a drawing algorithm provides an introduction to the value of play when coding.
The idea of drawing through algorithms is at least half a century old. In Mindstorms: Children, computers, and powerful ideas, Seymour Papert (1980) promoted using the LOGO language to create patterns with students of all ages, and Scratch is the spiritual successor to LOGO. Papert also adapted constructivism, the idea that learners construct knowledge through experiences, into his own theory of constructionism, where learners create a meaningful product to develop new knowledge. Scratch is a great tool for use in constructionism, which is innately linked to the idea of hard play.
To model is to gain a deep understanding of an object, a process, or idea by representing essential information by physical or virtual means. This can be done as a preliminary sketch in the act of creation, but it can also be used to represent knowledge that would otherwise be difficult to experience first-hand. Often modelling makes use of dimensional thinking, which is the translating or conceptualizing across dimensions of space, time, or any other range of related values (Root-Bernstein & Root-Bernstein, 1999).
Models of instructing computing machines to aid in problem solving have existed for over 150 years. When modelling a computer algorithm, I chose to explore its place across multiple sets of dimensions. The most obvious would be of scale and thus visibility,starting with that which can be viewed easily, such as the general solution to a problem and its implementation, then proceeded into that which is usually hidden , such as low level instructions, or microscopic in the case of transistors. This model also explores proceeding from the general to the specific, as implementing an algorithm is to use your own creativity in how to best do that, as my recipe analogy suggests. Parallel to this progression is starting with the virtual, such as an idea of how to accomplish a task, to the physical, with the actual tools being used to help complete that task.
As I found with many of the thinking skills for creativity presented in Sparks of Genius, algorithms and modelling are closely related. Composer Igor Stravinsky’s advice to an author encountering issues during the act of creation was to find a model, or “a predecessor what had already solved his type of narrative problem, then modify the solution to his own ends” (Root-Bernstein & Root-Bernstein, 1999, p. 230). This describes the role of an algorithm in general problem solving: an established solution to be used as reference for solving particular problems. Think of a recipe as an established way to create a dish; cooks may use it as a starting point and modify it provide their own personal interpretation. This reflects the idea idea that creativity is finding a “variation on a theme” (Henriksen, Mishra, & Deep-Play research group, 2014).
Algorithms lie on one end of the spectrum of problem solving techniques, where following step-by-step instructions can accomplish well-defined tasks, but most learning is much messier. We therefore often look for other, less rigid techniques while still keeping algorithms on hand as models of prior solutions. Moving along the spectrum into ill-defined tasks, heuristic approaches can lead to “good enough” solutions. This includes using “rules of thumb”, trial and error, and making educated guesses (Simon & Newell, 1958). On the opposite end of the spectrum lie solutions arrived at by chance. While these are by their nature unpredictable, they can be prepared for through diverse experiences and have led to discoveries ranging from penicillin to silly putty.
Much like other popular programming options for younger students such as Scratch and SNAP, Alice offers users the ability to create interactive scenes by combining blocks of code. While many of these graphical programming environments include elements of object oriented programming, Alice brings it to the forefront and is integral for effective programing of complex interactions. Unlike other popular options, Alice’s scenes are rendered in three dimensions and offers control over many details of the character models. This is both liberating and limiting, as it provides a wealth of options that younger students would likely find overwhelming.
Embodied thinking rejects the notion that the mind exists separately from the body, but instead recognizes that an awareness of all aspects of the human body, the exertion used in movement, emotional responses, tactile understanding, and gut instinct all play important roles in the act of creation. The related skill of empathy allows one to take the place of another, attempting to feel what they feel, even for an inanimate object, to gain insight into their state of being.
I chose to integrate embodied thinking as it relates to my topic of algorithms in a way that would best serve my end goal of creating an experience that would allow museum visitors understand programming in a relatable way. For that reason, I decided not to follow the well established path of creating a kinesthetic activity that allows learners to act out how data is manipulated in an algorithm, which was my first thought and I think of limited use. Instead, I created a stage show that uses multiple levels of embodied thinking.
Programming can be intimidating, but by allowing students and museum visitors to take on roles of characters engaged in computational thinking, they can gain an understanding of how an algorithm works in a visceral way. Visitors can not only view but also participate in a stage show where they can work alongside museum staff to act out a basic understanding of computer programs. During the play, characters will use motions to reinforce what each part of the algorithm does, further embodying the concept being learned.
Programmers solve problems. They accomplish this by working with or taking inspiration from computers to find solutions to problems, but they don’t do it alone. They have a set of thinking tools that will allow them to accomplish their tasks more easily called computational thinking. The play will explore different computational thinking skills as well as basic tools available to programmers. Even the play itself is an example of computational thinking, as actors are using a simulation to gain a better understanding of algorithms, just as a computer may be used to run a simulation to better understand a problem.