concept. In our Alice workshops with
teachers, we motivate the need for decomposition and the use of methods
(as a form of abstraction) by developing a solution to a problem without the
use of abstraction. In our case, we teach
a dragon to fly through the use of the
primitive move, turn, and roll methods
on each of the appropriate parts of the
dragon’s body. The code that has not
been decomposed into smaller parts
is very difficult to reason about, or to
later modify. Decomposition through
the use of methods allows the programmer to think about the method
at a higher level of abstraction. Once
the programmer has gotten the details
of a method to work, it is no longer
(generally) necessary to think about
the detailed instructions that make
up the method. The method simply
works as it is supposed to work. We
note that our approach is quite similar
to the method taken by Mehran Sahami
in his i Tunes University Programming
Methodology course, with a Karel the
Robot task. Parameters can be taught in
a similar manner. In our Alice example,
rather than creating one method for the
dragon to fly to the knight, and a second
method for the dragon to fly to the king,
it is possible to parameterize the target
of the dragon’s flight.
Finally, patterning is another think-
ing tool central to creativity and in-
cludes both the ability to recognize
patterns as well as being able to form
patterns. 4 Recognizing patterns plays a
significant role for computer scientists
working in the area of machine learn-
ing, especially when it comes to the
extracting the right information based
upon identifying specific patterns in
large datasets. Similarly, forming pat-
terns is key to putting all the pieces of
information together in a scientific vi-
sualization. Students could, for exam-
ple, use computing tools to learn about
identifying and forming patterns in
data first beginning with spreadsheets
in elementary grades to using mathe-
matical/statistical functions in Python
in secondary school.
In this column, we have argued that
computing provides students with a
powerful mechanism to support their
creative thinking. However, we need
to carefully consider how we use the
affordances of computing tools rather
than merely putting them in front of
teachers and their students. We need
to address how teachers and their students use digital tools to engage in
creative thinking skills as discussed
in this column. We also need to develop measures that allow us to evaluate
whether and how computing supports
processes that aid students’ creativity. We end with a hope. We hope that
well-planned use of these computing
tools will lead to more creative results
than the results obtained by giving an
elephant a paintbrush and a palette,
as shown in the accompanying photo.
While elephant art is unique, it does
not illustrate, at least in our view, any
degree of creativity by the elephant.
1. AP computer science principles draft curriculum
framework: 2014; https://advancesinap.collegeboard.
2. Hadamard, J. The Psychology of Invention in the
Mathematical Field. Dover Publications, 1954.
3. Mishra, P. and Yadav, A. Of art and algorithm:
Rethinking technology and creativity in the 21st
century. Tech Trends 57, 3 (2013), 10–14.
4. Root-Bernstein, R.S. and Root-Bernstein, M.M. Sparks
of Genius. Houghton Mifflin, Boston, 1999.
Aman Yadav ( firstname.lastname@example.org) is an Associate
Professor in the College of Education and Director of the
Masters of Arts in Educational Technology program at
Michigan State University, East Lansing, MI.
Steve Cooper ( email@example.com) is Associate
Professor in the Department of Computer Science and
Engineering at the University of Nebraska-Lincoln, and
Director of the Jeffrey S. Raikes School of Computer
Science and Management.
Copyright held by authors.
physically exist. For example, physicist Richard Feynman used visual images as the solutions to a problem before ever jumping into mathematical
equations for the answers. This ability to perceive by observing and imaging is critical to think creatively and
innovate. Within computer science,
perception plays a significant role for
researchers working in visual computing areas, such as computer graphics
and vision. For example, the Graphics Vision Visualization group at Trinity College ( http://gv2.cs.tcd.ie) draws
extensively on how humans perceive
when developing visualizations, such
as virtual agents. Access to such tools
allows students to think in powerful
ways and help awaken their creative
thinking skills related to perceiving.
We could enhance students’ perceiving skills and extend this notion of imaging by having them imagine how algorithms and code are structured and
how they execute, that is leap back and
forth between describing an algorithm
and writing the code itself.
The ability to abstract—reducing
information and detail in order to focus on concepts relevant to solve problems—is another essential creative
thinking tool and its importance in
computer science is highlighted by the
fact that it is also one of the big ideas for
the CS principles course. For computer
scientists, abstraction is a fundamental
Elephant art: Unique, but not creative.