ChapterPDF Available

Abstract and Figures

Computational Thinking is a fundamental skill for the twenty-first century workforce. This broad target audience, including teachers and students with no programming experience, necessitates a shift in perspective toward Computational Thinking Tools that not only provide highly accessible programming environments but explicitly support the Computational Thinking Process. This evolution is crucial if Computational Thinking Tools are to be relevant to a wide range of school disciplines including STEM, art, music, and language learning. Computational Thinking Tools must help users through three fundamental stages of Computational Thinking: problem formulation, solution expression, and execution/evaluation. This chapter outlines three principles, and employs AgentCubes online as an example, on how a Computational Thinking Tool provides support for these stages by unifying human abilities with computer affordances.
Content may be subject to copyright.
Innovations in Instructional Design, Learning Environments, and Performance Technologies
PRINCIPLES OF COMPUTATI O NA L TH INK ING
TOOLS
Authors
Alexander Repenning, School of Education, University of Applied Sciences Northwestern,
Switzerland
Ashok R. Basawapatna, Dept. of Mathematics and Computer Information Systems, SUNY Old
Westbury, USA
Nora A. Escherle, School of Education, University of Applied Sciences Northwestern, Switzerland
Abstract
Computational Thinking is a fundamental skill for the 21st century workforce.
This broad target audience, including teachers and students with no programming
experience, necessitates a shift in perspective towards Computational Thinking
Tools that not only provide highly accessible programming environments, but
explicitly support the computational thinking process. This evolution is crucial if
Computational Thinking Tools are to be relevant to a wide range of school
disciplines including STEM, art, music and language learning. Computational
Thinking Tools must help users through three fundamental stages of
Computational Thinking: problem formulation, solution expression and
execution/evaluation. This chapter outlines three principles, and employs
AgentCubes Online as an example, on how a Computational Thinking Tool
provides support for these stages by unifying human abilities with computer
affordances.
draft
Repenning, Basawapatna, Escherle – 2
Page 2 of 25
Keywords
Computational thinking process: thinking with computers;
Three stages of computational thinking process: abstraction, automation, analysis;
Computational thinking tool: support for all three stages of the computational
thinking process;
Principles of computational thinking tools.
Computational Thinking Tools – 3
Page 3 of 25
PRINCIPLES OF COMPUTATI O NA L TH INK ING
TOOLS
Introduction
The term Computational Thinking (CT), popularized by Wing (Jeannette M.
Wing, 2006), had previously been employed by Papert in the inaugural issue of
Mathematics Education (Papert, 1996). Papert considered the goal of CT to forge
explicative ideas through the use of computers. Employing computing, he argued,
could result in ideas that are more accessible and powerful. Meanwhile, numerous
papers, e.g., (Grover & Pea) and reports, e.g., (National Research Council, 2010)
have created many different definitions of CT. Recently, Wing followed up her
seminal call for action paper with a concise operational definition of CT
(Jeannette M. Wing, 2014): “Computational thinking is the thought processes
involved in formulating a problem and expressing its solution(s) in such a way
that a computer—human or machine—can effectively carry out.”
While the term Computational Thinking is relatively new, the process implied by
Wing can be recognized as a computationally enhanced version of the well-
established scientific method. Based on Wing’s definition the Computational
Thinking Process (Figure 1) can be segmented into three stages. The example in
Figure 1 of a mudslide simulation is used to illustrate the three Computational
Thinking Process stages.
Repenning, Basawapatna, Escherle – 4
Page 4 of 25
(1) Problem formulation (abstraction): Problem formulation attempts to
conceptualize a problem verbally, e.g., by trying to formulate a question such
as “How does a mudslide work?,” or through visual (Arnheim, 1969) thinking,
e.g., by drawing a diagram identifying objects and relationships.
(2) Solution expression (automation): The solution needs to be expressed in a
non-ambiguous way so
that the computer can
carry it out. Computer
programming enables
this expression. The rule
in Figure 1 expresses a
simple model of gravity:
if there is nothing below
a mud particle it will
drop down.
(3) Execution & evaluation
(analysis). The computer
executes the solution in ways that show the direct consequences of one’s own
thinking. Visualizations—for instance the representation of pressure values in
the mudslide as colors—support the evaluation of solutions.
As shown in Figure 1, Computational Thinking is an iterative process describing
thinking with computers by synthesizing human abilities with computer
affordances. The three stages describe different degrees of human and computer
Figure 1. Three stages of the Computational
Thinking Process
Computational Thinking Tools – 5
Page 5 of 25
responsibilities. The solution execution appears to be largely the responsibility of
the computer and the problem expression largely the responsibility of the human.
Although problem formulation is typically considered the responsibility of the
human, computers can help support the conceptualization process as well, for
instance, through facilitating visual thinking.
Principles of Computational Thinking Tools
The fundamental goal of a Computational Thinking Tool is to support all stages
of the Computational Thinking process outlined above. Programming should be,
and can be, an exciting new literacy in the sense described by DiSessa (A.
diSessa, 2000) enabling constructivist learning for all (Yager, 1995). Using
traditional programming languages severely limits this practice outside of
Computer Science class contexts. For example, a student in a STEM class
attempting to make a basic predator prey simulation with traditional programming
languages may have to write hundreds of lines of code. Conversely, the goal of
Computational Thinking Tools leads to three core principles corresponding to the
three stages of the CT process. Computational Thinking Tools should:
(1) support problem formulation. Similar to playing with numbers in a
spreadsheet, using a mind map tool, or just doodling on a whiteboard,
Computational Thinking Tools should empower users to explore
representations without the need to code.
(2) support solution expression. Computational Thinking Tools should employ
end-user programming approaches (Lieberman, Paternò, & Wulf, 2006;
Repenning, Basawapatna, Escherle – 6
Page 6 of 25
Repenning, 2001), to allow computer users who may not have or may not
want to gain professional programming experience, to create relevant
computational artifacts such as games (Repenning et al., 2015) and
simulations (Repenning, 2001).
(3) support solution execution & evaluation. Computational Thinking Tools
should include accessible execution visualization mechanisms helping users to
comprehend and validate computational artifacts such as simulations.
The AgentCubes online end-user programming environment (Ioannidou,
Repenning, & Webb, 2009; Repenning, 2013b; Repenning & Ioannidou, 2006;
Repenning et al., 2014) will be employed as an example to illustrate these
principles, but these principles can be applied to any C.T. Tool. The AgentCubes
user interface is relatively simple. The tool bar at the top of Figure 3a provides a
number of controls to start/stop a simulation, to manage worlds and to operate the
3D camera. The panel to the left contains all the user-defined agents. The top
panel is the current world. The three bottom panels contain the drag and drop-
programming environment with the conditions palette to the left, the agent
behavior in the middle and the palette of actions to the right. The following
sections discuss the three Computational Thinking Tool principles and provide
concrete examples through AgentCubes.
Supporting Problem Formulation
Problem formulation is a conceptualization process (Repenning et al., 2015)
dealing with abstractions often based on verbal or visual thinking, which can be
Computational Thinking Tools – 7
Page 7 of 25
supported by tools. Computational Thinking Tools can support visual thinking by
offering various evocative spatial metaphors. Mind map tools capture concepts as
nodes and links (Willis & Miertschin, 2005). Spreadsheets (B. A. Nardi & Miller,
1990) are two-dimensional grids containing numbers and strings. The versatile
nature of grids has helped spreadsheets to become the world’s most used
programming tools. Tools such as Boxer (A. A. diSessa, 1991) and ToonTalk
(Kahn, 1996) employ the notion of microworlds based on containers to represent
relationships. In Logo, Papert argues, the notion of a turtle helps users
comprehend difficult geometric transformations through body syntonicity (Papert,
1993), that is, the ability for people to project themselves, as turtle, into geometric
microworlds. Papert (Papert, 1993) and Turkle (Turkle, 2007) consider the use of
evocative objects to think with as a powerful conceptualization approach. All
these tools help the forging of abstractions serving as the beginning of a path from
problem formulation to solution expression. Wing suggests that finding these
kinds of abstractions is an essential part of computational thinking (J.M. Wing,
2008): “In working with rich abstractions, defining the ‘right’ abstraction is
critical. The abstraction process—deciding what details we need to highlight and
what details we can ignore—underlies computational thinking.”
Abstractions need to be made explicit to enable transfer. Ideally, Computational
Thinking Tools should not only support users to find rich, evocative abstractions
but also make these abstractions explicit in order to facilitate their transfer and
application within other problem solving contexts. For instance, the use of
phenomenalistic (Michotte, 1963) abstractions describing object interactions such
Repenning, Basawapatna, Escherle – 8
Page 8 of 25
as collision and diffusion, was
found to support student
formulation of STEM
simulations in middle school
curricula (Koh, Basawapatna,
Bennett, & Repenning, 2010;
Repenning et al., 2015). In our
research, the patterns found to be
especially helpful in allowing
students to create elements of
games and simulations we
termed Computational Thinking Patterns (CTPs). Figure 2 lists examples of
Computational Thinking Patterns. For example, the collision CTP describes both
the interaction of a truck hitting a frog in a Frogger-like game or the interaction of
molecules colliding in a STEM simulation. Similarly the generate CTP could
describe a ship shooting lasers in a Space Invaders type game but also two foxes
mating and creating offspring in a predator prey simulation. Learning these CTPs
provides students with a useful high-level language to begin thinking about a
problem before coding begins and previous research has shown that novice users
can recognize these patterns across contexts and implement them in their project
creations (Ashok Basawapatna, 2011).
How AgentCubes supports problem formulation. AgentCubes online supports the
problem formulation stage similarly to a mind map tool by enabling users to
Change: One agent changes into another
agent.
Absorb: One agent makes another agent
disappear.
Transport: One agent transports another
agent.
Push: One agent pushes another agent.
Random Movement: An agent moves
randomly.
Tracking: One agent chases another
agent.
Keyboard Movement: keyboard button
presses control an agent’s movement.
Directional Movement: An agent moves
Figure 2. Examples of Computational Thinking
Patterns
Computational Thinking Tools – 9
Page 9 of 25
organize information visually setting the stage for coding. At the problem
formulation stage, AgentCubes online can be used much like a white board is
used for drawing. The 2D or 3D objects, called agents, created by users are
similar to Papert’s objects to think with (Papert, 1993). In AgentCubes,
information can be organized in 3D space to create 3D worlds. Similar to
Minecraft, users create one, two or three dimensions grids and stacks by placing
agents using the pen tool (Repenning et al., 2014). At this stage no coding is
necessary. Users can explore their worlds by employing 3D camera tools to
navigate or manipulate their worlds by adding, removing, and rearranging agents.
AgentCubes allows users to select any agent and assume its perspective by
switching to first person camera mode. This ability, we speculate, may help to
achieve the body syntonicity (Repenning & Ioannidou, 2006) that Papert is
referring to.
Visual thinking is supported by AgentCubes online through a four dimensional
grid structure called the agent matrix (Figure 3). The grid is based on cells
organized as rows, columns and layers. Each cell, in turn, contains a stack of
agents. Agents can be simple textured shapes such as cubes, spheres or cylinders
but can also be quite sophisticated user-created 3D shapes implemented as
inflatable icons (Repenning et al., 2014). Users’ ability to produce their own 3D
shapes has been
identified as an important
creativity tool to
overcome affective
Figure 3. AgentCubes online environment depicting a
side view of an example “Flabby Bird 3D” game
Repenning, Basawapatna, Escherle 10
Page 10 of 25
challenges of programming, but it can also be useful to quickly sketch out 3D
worlds similar to the use of a cocktail napkin in the formulation stage depicted in
Figure 1.
As an example, an interesting problem could be how to generalize a 2D side
scrolling game into a 3D scrolling game. In Figure 3, the grid has been enabled to
show the AgentCubes cell structure of a game called “Flabby Bird 3D”, which is
a generalization of the popular 2D scrolling phone game “Flappy Bird.” In Flabby
Bird 3D, it is the objective is to navigate a bird called Flabby past oncoming
cubes. Usually, a player would see this
game from the first person camera
viewpoint of Flabby (Figure 4). The
enabled grid helps to reveal the 3D
scrolling approach of the game. To the
right there is a solid wall of cube
maker agents creating cubes (an
example of the generate CTP) with an
increasing probability depending on
the level of the game. These cubes are flying towards Flabby as depicted in Figure
4. Playing the game, by seeing it from Flabby’s point of view, the player gets the
illusion of flying through a never-ending labyrinth of walls. To make the game
more challenging, the approaching walls reconfigure occasionally.
Figure 4. First person view perspective of
the “Flabby Bird 3D” game
Computational Thinking Tools 11
Page 11 of 25
Breaking down game descriptions into explicit abstractions enables students to
transition from problem formulation to solution expression (Repenning et al.,
2015). Computational Thinking Patterns serve as framework of useful
abstractions describing the interactions between objects and the interaction of
users with objects. For instance, the creation of Flabby Bird involves the
implementation of various Computational Thinking Patterns such as collision,
generation, absorption and keyboard control. Part of the support structure for this
activity is external. For instance, some teachers hang up posters describing the
Computational Thinking Patterns and make students refer to these posters when
working on problem formulation tasks. However, it is essential that the
Computational Thinking Tool provides for a solution expression that is an
intuitive implementation of the problem formulation. It should be noted that this
step can be fully integrated into the tool itself. For example, tools that allow users
to program agents directly, through Computational Thinking Patterns, have
successfully been piloted in the past, further bridging the act of problem
formulation with solution expression (Basawapatna, Repenning, & Lewis, 2013).
Supporting Solution Expression
The goal of Computational Thinking is to be an instrument for problem solving
that is not limited to computer scientists or professional programmers. For
example, assuming an educational context, such as STEM classes, Computational
Thinking Tools need to be viable in non-computer science classes by avoiding the
need for difficult and excessive coding. CT employing traditional programming
tools is likely to introduce a significant amount of accidental complexity, as
Repenning, Basawapatna, Escherle 12
Page 12 of 25
opposed to dealing with the intrinsic complexity (Dijkstra, 2001) of the problem
solving process. If the intended outcome is to become a professional programmer,
then this approach may be highly effective or indeed entirely necessary.
If instead the goal is to become a Computational Thinker, then the resulting
overhead and lack of support may turn into an insurmountable educational
obstacle. Focusing less on the notion of essence but on understandable mappings
Natural programming (Myers, Pane, & Ko, 2004) attempts to better align the
expression of a solution with the problem formulation based on peoples’ intuitive
comprehension of semantics such as the use of Boolean operators. Rittel
differentiated the notion of human computer interaction from human problem
domain interaction (Rittel & Webber, 1984) to clarify this important philosophical
dichotomy. Guzdial reached a similar conclusion in the context of computing
education (Guzdial, 2015) by suggesting that “If you want students to use
programming to learn something else [e.g., how to author a simulation] then limit
how much programming you use.” The limitation of accidental complexity can be
supported at three different levels:
(1) Syntax: Visual programing approaches such as drag and drop programming
(Conway et al., 2000; Repenning & Ambach, 1996; M. Resnick et al., 2009)
can avoid frustrating syntactic challenges such as missing semicolons.
(2) Semantics: Live programming (Burckhardt et al., 2013; McDirmid, 2013;
McDirmid., 2007) and similar approaches help users to understand the
meaning of programs by illustrating the consequences of changes to programs.
Computational Thinking Tools 13
Page 13 of 25
(3) Pragmatics: Domain-oriented (Fischer, 1994) or task specific (B. Nardi, 1993)
programming languages support users in employing programming languages to
achieve their goals.
How AgentCubes supports solution expression. At the syntactic level AgentCubes
offers drag and drop programming, which its predecessor, AgentSheets, pioneered
over 20 years ago (Repenning & Ambach, 1996). A first version of AgentSheets
initially introduced the idea of agent-based graphical rewrite rules (Repenning,
1994, 1995), a programming by example (Repenning & Perrone, 2000;
Repenning & Perrone-Smith, 2001) approach to define the behavior of agents by
demonstrating it. However, the graphical rewrite rules were ultimately considered
to be too constraining (Schneider & Repenning, 1995). Meanwhile, the benefits of
drag and drop programming have become quite clear and consequently drag and
drop programming has proliferated to a very large number of programming
environments for kids (Conway et al., 2000; M. Resnick, Maloney, J., Monroy-
Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner, A., Rosenbaum, E.,
Silver, J., Silverman, B., Kafai, Y. , 2009).
Semantic support is considerably harder than syntactic support (Repenning,
2013a). At the level of semantics AgentCubes offers not only live programming
(McDirmid, 2013; McDirmid., 2007) but also a technique called Conversational
Programming (Repenning, 2013a). Conversational Programming will observe the
agent a user is interested in and then annotate the program behaviors of that
particular agent in its particular situation by running the program one step into the
future to illustrate which agent behavior rules will evaluate to true, which will
Repenning, Basawapatna, Escherle 14
Page 14 of 25
evaluate to false, and which rules will not be tested. For instance, in a Frogger-
like game a user can click the frog agent and look at its behavior rules to see what
will happen to the frog after it has just jumped in front a of a car moving towards
it. In this case, if the frog-car collision pattern is programmed correctly, the
behavior rule wherein the frog dies and the game restarts will be annotated by
Conversational Programming to appear as true.
Of the three levels, pragmatics is the most challenging one to support. One might
naturally want to have a simple mapping between the problem domain and the
solution domain. However, the least amount of code cannot be the only objective.
For example, languages such as APL are well known for their parsimonious
nature but not for their general readability. Instead, programs should be short and
intuitive expressions of a given idea. An example may help to illustrate this.
The 15 squares puzzle, shown in Figure 5, is a classic
children’s toy. The game consists of sliding 15 numbered
squares into a sorted arrangement, 1-15, in a 4 x 4 grid.
Many computer program implementations of the game
exist. From a CT point of view the core idea is simple:
click the square you want to slide into the empty space.
From a coding point of view, however, efforts can vary
widely. A Python program to implement the “click to
slide” functionality (e.g., (Sweigart, 2010)) quickly runs into hundreds of lines of
code not including the functionality to solve the puzzle. The view here is not to be
Figure 5. 15 squares
puzzle
Computational Thinking Tools 15
Page 15 of 25
negative regarding coding. If a CS class codes the 15 squares puzzle to learn
about arrays, loops, animations, or Python syntax then writing the 300 lines of
code could be extremely beneficial.
An AgentCubes implementation, in contrast, will include very little coding
overhead. The “click to slide” functionality requires only four rules checking if
there is an empty spot adjacent to the clicked square and then move into that spot.
This is depicted in Figure 6. Trading in clarity for brevity, one could even employ
the more arcane moveRandomOn (background) AgentCubes action to solve the
15 squares puzzle benchmark in a single line of code. Comparing Python to
AgentCubes seems hardly fair. In AgentCubes the notion of a grid, animations,
and even numbered squares already
exists. This is what domain
orientation (Fischer, 1994) can do.
It reduces coding overhead by
providing and implementing
abstractions to help users express a
solution succinctly.
Of course, domain orientation
introduces trade-offs. For instance,
it would not be advisable to write a
compiler in AgentCubes. Similar to
spreadsheets which have been
Figure 6. AgentCubes online implementation
of the 15-squares puzzle with 4 rules
Repenning, Basawapatna, Escherle 16
Page 16 of 25
used creatively to create amazing projects such as flight simulators and planetary
models AgentCubes’ grid structure maps well onto a wide variety of projects
such as 2D/3D games, simulations, and cellular automata. For instance, a simple
version of the Pac-Man game can be implemented in just 10 rules (IF/THEN
statements) including collaborative AI (Repenning, 2006) and win/lose detection.
Studies show that students can use such system affordances of AgentSheets and
AgentCubes to successfully implement the Computational Thinking Patterns
planned in the formulation step in game and simulation development (Repenning
et al., 2015). Studies also show that users are highly motivated to create these
artifacts, speaking to the power of reducing coding overhead (Repenning,
Basawapatna, Assaf, Maiello, & Escherle, 2016). Guzdial points out the
importance of avoiding coding overhead in education (Guzdial, 2008) and refers
to a number of languages explored in computer science education to establish
essence by employing implicit loops and other task-specific (B. Nardi, 1993)
constructs. An example of this approach in AgentCubes is the built in
management of parallelism. For instance, even a very large number of agents,
looking like boxes, moving around randomly in a three dimensional world will
automatically reshuffle and stack up correctly in parallel with very little code.
Computing trajectories that can be executed in parallel, determining the order of
boxes stacked up, would be complex code to write.
Computational Thinking Tools 17
Page 17 of 25
Supporting Execution & Evaluation
The execution & evaluation stage can be supported by helping users debug their
programs as well reveal their misconceptions. Pea (Pea, 1983) describes
debugging as “…systematic efforts to eliminate discrepancies between the
intended outcomes of a program and those brought through the current version of
the program.” Given that the computer does not currently “understand” the
problem it will not be able to automatically compute these discrepancies, but there
are still strategies for a Computational Thinking Tools to aid the debugging
process. One strategy is to simply reduce the gap between solution expression and
solution execution & evaluation. Punch cards are the classical negative example
resulting in an extremely large gap. As this gap increases, users quickly lose sight
of the causal relation between changes made to a program and manifestations of
different behavior exhibited by running the modified program (Repenning,
2013a).
Live programming (McDirmid, 2013) can help by enabling users to instantly see
the consequences of any change to a program. Unfortunately, there are issues such
as the halting problem in computer science theory with practical consequences,
suggesting that it is not actually possible to determine all consequences of
arbitrary program changes. However, for a more constrained class of programs,
including spreadsheets, this is not a problem. Very much in the spirit of live
programming, spreadsheets will instantly update results when formulae or cell
values are changed by a user.
Repenning, Basawapatna, Escherle 18
Page 18 of 25
A Computational Thinking Tool would support visualization through the
inclusion of easy to use visualization affordances. Additionally, a Computational
Thinking Tool may apply the idea of visualization to itself by annotating
programs in ways to make discrepancies between the programs users have and the
ones they want more understandable (Repenning, 2013a).
Computational Thinking Tools 19
Page 19 of 25
How AgentCubes supports execution & evaluation. To support the goal of
visualizing the consequences of one’s own thinking, a number of visualization
techniques are included in AgentCubes. In the mudslide example (Figure 1
solution execution and evaluation) it helps considerably to understand the
pressure distribution among the thousands of agents employed in the model. The
simple visualization scheme mapping each pressure value into a single color helps
the forging of explicative ideas by depicting pressure build up.
Particularly useful when making simulations, AgentCubes supports the plotting of
simulation properties. An example would be to plot the number of predators and
Figure 7. Bird’s eye view of a city traffic simulation in AgentCubes with an overlaid 3D
plot of traffic wait times with the higher red peaks indicating a longer wait
Repenning, Basawapatna, Escherle 20
Page 20 of 25
prey in an ecological simulation. One can also use 3D plotting to visualize value
fields in real time. For instance, in a city traffic simulation 3D plots (Figure 7)
show the spatial distribution of wait times in the city over the world grid itself.
Finally, AgentCubes online narrows the gap between solution expression and
execution through Conversational Programming (introduced above in Supporting
Solution Expression) (Repenning, 2013a) extending the notion of live
programming (McDirmid, 2013). Even when a game is not running, by selecting
an agent in the world, AgentCubes will execute relevant code fragments one step
into the future and annotate the code, specifying which rule will execute, in order
to visualize potential discrepancies between the programs users have and the
programs users want (Pea, 1983). This indicator can guide users into another
iteration cycle depicted in Figure 1 yielding more useful representations.
Conclusions
Computational Thinking Tools should support Papert’s vision of enabling users to
forge explicative ideas through the use computers. By minimizing coding
overhead Computational Thinking Tools can allow all users to focus on the
essence of abstraction, automation, and analysis. In contrast to traditional
programming environments Computational Thinking Tools support all three
stages, problem formulation, solution expression and execution & evaluation, of
the Computational Thinking process. This support will make Computational
Thinking feasible to a wide range of applications including STEM, art, music, and
language.
Computational Thinking Tools 21
Page 21 of 25
References
Arnheim, R. (1969). Visual Thinking. Berkley: University of California Press.
Ashok Basawapatna, K. H. K., Alexander Repenning, David C. Webb, Krista Sekeres Marshall.
(2011). Recognizing Computational Thinking Patterns. Paper presented at the The 42nd
ACM Technical Symposium on Computer Science Education (SIGCSE), Dallas, Texas,
USA.
Basawapatna, A. R., Repenning, A., & Lewis, C. H. (2013). The Simulation Creation Toolkit: An
Initial Exploration Into Making Programming Accessible While Preserving
Computational Thinking Paper presented at the 44th ACM Technical Symposium on
Computer Science Education (SIGCSE 2013), Denver, Colorado, USA.
Burckhardt, S., Fahndrich, M., Halleux, P. d., McDirmid, S., Moskal, M., Tillmann, N., & Kato, J.
(2013). It's alive! continuous feedback in UI programming. Paper presented at the
Proceedings of the 34th ACM SIGPLAN conference on Programming language design
and implementation, Seattle, Washington, USA.
Conway, M., Audia, S., Burnette, T., Cosgrove, D., Christiansen, K., Deline, R., . . . Pausch, R.
(2000). Alice: Lessons Learned from Building a 3D System For Novices. Paper presented
at the CHI 2000 Conference on Human Factors in Computing Systems, The Hague,
Netherlands.
Dijkstra, E. W. (2001). The end of computing science? Commun. ACM, 44(3), 92. doi:
10.1145/365181.365217
diSessa, A. (2000). Changing Minds: Computers, Learning, and Literacy. Cambridge, MA: The
MIT Press.
diSessa, A. A. (1991). An Overview of Boxer. Journal of Mathematical Behavior(10), 3-15.
Fischer, G. (1994). Domain-Oriented Design Environments Automated Software Engineering (Vol.
1, pp. 177-203). Boston, MA: Kluwer Academic Publishers.
Grover, S., & Pea, R. Computational Thinking in K12: A Review of the State of the Field.
Educational Researcher, 42(1), 38-43. doi: 10.3102/0013189X12463051
Guzdial, M. (2008). Education: Paving the way for computational thinking. Communications of the
ACM, 51(25-27), 25-27.
Guzdial, M. (2015). Learner-Centered Design of Computing Education: Research on Computing
for Everyone, Synthesis Lectures on Human-Centered Informatics: Morgan & Claypool
Publischers.
Ioannidou, A., Repenning, A., & Webb, D. (2009). AgentCubes: Incremental 3D End-User
Development. Journal of Visual Language and Computing, 20(4), 236-251.
Kahn, K. (1996). Seeing Systolic Computations in a Video Game World. Paper presented at the
Proceedings of the 1996 IEEE Symposium of Visual Languages, Boulder, CO.
Koh, K. H., Basawapatna, A., Bennett, V., & Repenning, A. (2010). Towards the Automatic
Recognition of Computational Thinking for Adaptive Visual Language Learning. Paper
presented at the Conference on Visual Languages and Human Centric Computing
(VL/HCC 2010), Madrid, Spain.
Lieberman, H., Paternò, F., & Wulf, V. (Eds.). (2006). End User Development (Vol. 9): Springer.
Repenning, Basawapatna, Escherle 22
Page 22 of 25
McDirmid, S. (2013). Usable Live Programming. Paper presented at the SPLASH Onward!,
Indianapolis, Indiana.
McDirmid., S. (2007). Living it up with a live programming language. Paper presented at the
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented
programming systems and applications (OOPSLA '07).
Michotte, A. (1963). The Perception of Causality (T. R. Miles, Trans.). London: Methuen & Co.
Ltd.
Myers, B. A., Pane, J. F., & Ko, A. (2004). Natural programming languages and environments.
Communications of the ACM, 47(9), 47-52. doi: DOI=
http://doi.acm.org/10.1145/1015864.1015888
Nardi, B. (1993). A Small Matter of Programming. Cambridge, MA: MIT Press.
Nardi, B. A., & Miller, J. R. (1990). The Spreadsheet Interface: A Basis for End User
Programming. Paper presented at the INTERACT 90 - 3rd IFIP International Conference
on Human-Computer Interaction, Cambridge, UK.
http://www.miramontes.com/writing/spreadsheet-eup/
National Research Council, C. f. t. W. o. C. T., Computer Science and Telecommunications Board,
Division on Engineering and Physical Sciences. (2010). Report of a Workshop on The
Scope and Nature of Computational Thinking. Washington, D.C.: The National
Academies Press.
Papert, S. (1993). The Children's Machine. New York: Basic Books.
Papert, S. (1996). An Exploration in the Space of Mathematics Educations. International Journal of
Computers for Mathematical Learning, 1(1), 95-123.
Pea, R. (1983). LOGO Programming and Problem Solving. Paper presented at the Paper presented
at symposium of the Annual Meeting of the American Educational Research Association
(AERA), "Chameleon in the Classroom: Developing Roles for Computers" Montreal,
Canada, April 1983.
Repenning, A. (1994). Bending Icons: Syntactic and Semantic Transformation of Icons. Paper
presented at the Proceedings of the 1994 IEEE Symposium on Visual Languages, St.
Louis, MO.
Repenning, A. (1995). Bending the Rules: Steps toward Semantically Enriched Graphical Rewrite
Rules. Paper presented at the Proceedings of Visual Languages, Darmstadt, Germany.
Repenning, A. (2001). End-User Programmable Simulations in Education. Paper presented at the
HCI International 2001, New Orleans.
Repenning, A. (2006). Collaborative Diffusion: Programming Antiobjects. Paper presented at the
OOPSLA 2006, ACM SIGPLAN International Conference on Object-Oriented
Programming Systems, Languages, and Applications, Portland, Oregon.
Repenning, A. (2013a). Conversational Programming: Exploring Interactive Program Analysis.
Paper presented at the 2013 ACM International Symposium on New ideas, New
Paradigms, and Reflections on Programming & Software (SPLASH/Onward! 13),
Indianapolis, Indiana, USA.
Repenning, A. (2013b). Making Programming Accessible and Exciting. IEEE Computer, 18(13),
78-81.
Computational Thinking Tools 23
Page 23 of 25
Repenning, A., & Ambach, J. (1996). Tactile Programming: A Unified Manipulation Paradigm
Supporting Program Comprehension, Composition and Sharing. Paper presented at the
1996 IEEE Symposium of Visual Languages, Boulder, CO.
Repenning, A., Basawapatna, A., Assaf, D., Maiello, C., & Escherle, N. (2016). Retention of Flow:
Evaluating a Computer Science Education Week Activity. Paper presented at the Special
Interest Group of Computer Science Education (SIGCSE 2016), Memphis, Tennessee.
Repenning, A., & Ioannidou, A. (2006). AgentCubes: Raising the Ceiling of End-User
Development in Education through Incremental 3D. Paper presented at the IEEE
Symposium on Visual Languages and Human-Centric Computing 2006, Brighton, United
Kingdom.
Repenning, A., & Perrone, C. (2000). Programming by Analogous Examples. Communications of
the ACM, 43(3), 90-97.
Repenning, A., & Perrone-Smith, C. (2001). Programming by Analogous Examples. In H.
Lieberman (Ed.), Your Wish Is My Command: Programming by Example (Vol. 43, pp. 90-
97): Morgan Kaufmann Publishers.
Repenning, A., Webb, D. C., Brand, C., Gluck, F., Grover, R., Miller, S., . . . Song, M. (2014).
Beyond Minecraft: Facilitating Computational Thinking through Modeling and
Programming in 3D. IEEE Computer Graphics and Applications, 34(3), 68-71. doi:
10.1109/MCG.2014.46
Repenning, A., Webb, D. C., Koh, K. H., Nickerson, H., Miller, S. B., Brand, C., . . . Repenning, N.
(2015). Scalable Game Design: A Strategy to Bring Systemic Computer Science
Education to Schools through Game Design and Simulation Creation. Transactions on
Computing Education (TOCE), 15(2), 1-31. doi: 10.1145/2700517
Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., . . . Kafai,
Y. (2009). Scratch: programming for all. Communincation of the ACM, 52(11), 60-67.
Resnick, M., Maloney, J., Monroy-Hernández, A., Rusk, N., Eastmond, E., Brennan, K., Millner,
A., Rosenbaum, E., Silver, J., Silverman, B., Kafai, Y. . (2009). Scratch: Programming for
All. Communications of the ACM, November 2009.
Rittel, H., & Webber, M. M. (1984). Planning Problems are Wicked Problems. In N. Cross (Ed.),
Developments in Design Methodology (pp. 135-144): John Wiley & Sons, New York.
Schneider, K., & Repenning, A. (1995). Deceived by Ease of Use: Using Paradigmatic
Applications to Build Visual Design. Paper presented at the Proceedings of the 1995
Symposium on Designing Interactive Systems, Ann Arbor, MI.
Sweigart, A. (2010). Invent Your Own Computer Games with Python, A beginner's guide to
computer programming in Python.
Turkle, S. (2007). Evocative Objects: Things We Think With. Cambridge, USA: MIT Press.
Willis, C. L., & Miertschin, S. L. (2005). Mind tools for enhancing thinking and learning skills.
Paper presented at the Proceedings of the 6th conference on Information technology
education, Newark, NJ, USA.
Wing, J. M. (2006). Computational Thinking. Communications of the ACM, 49(3), 33-35.
Wing, J. M. (2008). Computational thinking and thinking about computing. Philosophical
Transactions of the Royal Society, 2008(366), 3717-3725.
Wing, J. M. (2014). Computational Thinking Benefits Society.
Repenning, Basawapatna, Escherle 24
Page 24 of 25
Yager, R. (Ed.). (1995). Constructivism and Learning Science. Mahway, New Jersey: Lawrence
Earlbaum Assoc.
Acknowledgements
This work is supported by the Hasler Foundation and the National Science
Foundation under Grant Numbers 0833612, 1345523, and 0848962. Any
opinions, findings, and conclusions or recommendations expressed in this
material are those of the authors and do not necessarily reflect the views of these
foundations.
Author Information
Complete name of the 1st author: Alexander Repenning
Institutional affiliation: School of Education, University of Applied Sciences and
Arts, Northwestern Switzerland
Institutional address: Bahnhofstrasse 6, 5210 Windisch, Switzerland
Permanent address:
Telephone number: 0041 56 202
Email address: alexander.repenning@fhnw.ch
Website (optional): www.scalablegamedesign.ch
Short biographical sketch 100-200 words including your most important
publications, awards, and projects. Only the biographical sketch and institutional
position and affiliation will appear in the published version.
Computational Thinking Tools 25
Page 25 of 25
Complete name of the 2nd author: Ashok Ram Basawapatna
Institutional affiliation: Department of Mathematics and Computer Information
Systems, SUNY, Old Westbury
Institutional address: Old Westbury
Permanent address:
Telephone number:
Email address: basawapatnaa@oldwestbury.edu
Website (optional): www.scalablegamedesign.ch
Short biographical sketch 100-200 words including your most important
publications, awards, and projects. Only the biographical sketch and institutional
position and affiliation will appear in the published version.
Complete name of the 3rd author: Nora Anna Escherle
Institutional affiliation: School of Education, University of Applied Sciences and
Arts, Northwestern Switzerland
Institutional address: Bahnhofstrasse 6, 5210 Windisch, Switzerland
Permanent address: Gundeldingerrain 69, 4059 Basel, Switzerland
Telephone number: 0041 56 202 72 54
Email address: nora.escherle@fhnw.ch
Website (optional): www.scalablegamedesign.ch
... Collaborative exploration Mutual assistance Set up a working team Share findings/conclusions Initially, the present study is an attempt to answer the above question, focusing on structuring a set of criteria that should characterise digital media technology in order to be considered suitable for exploratory inquiry-based learning and the promotion of CT skills, with the help of two important publications by Quintana et al. [34] and Reppening et al. [35,36]. The Quintana et al. [34] software evaluation framework is limited to evaluating the ability of software to be used in inquiry processes in STEM education, while the Reppening et al. [36] framework is primarily concerned with evaluating programming environments in terms of their ability to promote students' computational thinking through their use. ...
... The present study attempts to create a framework for evaluating digital media technology used in STEM courses that simultaneously tests two dimensions of these tools: their ability to support inquiry-based learning and teaching while enhancing computational thinking skills. To this end, we deemed it appropriate to synthesise the thoroughly sound evaluation tools developed by researchers Quintana et al. [34] and Reppening et al. [35,36]. ...
... The literature review found two evaluation frameworks for evaluating digital technology relevant to STEM courses and promoting computational thinking through them. These evaluation frameworks have been concerned either with the ability of the media to support inquiry-based learning [34] or with the ability of programmatic environments to support computational thinking [35,36]. This study aims to synthesise and simultaneously update these evaluation frameworks so that they can simultaneously evaluate digital technology in terms of its ability to support inquiry-based learning on the one hand and promote computational thinking on the other. ...
Article
Full-text available
There is an ongoing need to evaluate whether commonly used educational software effectively supports inquiry-based learning and computational thinking skills development, which are key objectives in secondary STEM curricula. This research establishes criteria for characterising digital technologies, such as modelling and simulation software, virtual laboratories, and microcosms, to ensure their suitability in supporting students’ computational thinking through inquiry-based activities in STEM courses. The main criteria focus on six key areas: (a) production of meaning, (b) support in problem formulation, (c) ability to manage processes easily, (d) support in expressing solutions, (e) support in executing and evaluating solutions, and (f) ability to articulate and reflect on processes and solutions. Using this evaluation framework, two widely used software tools, Tracker 6.1.3 and GeoGebra 5, commonly employed in high school physics and mathematics, were assessed. The trial evaluation results are discussed, with recommendations for improving the software to support these educational objectives.
... This approach helps to better understand the problem and assess each component in isolation [22]; algorithmic thinking, which involves finding a solution to a problem through a series of steps [11,15,21]; task automation [10,14,15]; debugging, which allows for the correction of errors in the problem-solving process [21]; and generalisation, which involves identifying patterns that can be used to solve similar problems [17,21]. In this regard, Repenning et al. [23] identify three stages: problem formulation (abstraction), solution (automation), and execution and evaluation (analysis). These processes encompass a range of cognitive skills, such as decomposition of problems into smaller subproblems, organising and analysing information, representing abstractly, formulating and evaluating different solutions, and identifying the final solution [24]. ...
Article
Full-text available
Computational Thinking (CT) and programming encompass a range of skills that are essential in everyday life and play a crucial role in addressing social and environmental challenges. They facilitate the analysis and understanding of global issues, the evaluation of viable solutions, and the formulation of strategic decisions that contribute to Education for Sustainable Development and the achievement of the Sustainable Development Goals. The primary objective of this study was to examine pre-service teachers’ perceptions of these areas. A quantitative study was conducted with 134 university students from the Faculty of Education and Tourism at the University of Salamanca. The findings indicate that CT and programming significantly contribute to enhancing digital competence, fostering essential skills for the effective use of technological tools, developing problem-solving strategies, and increasing self-confidence in identifying and refining solutions to complex problems. Regarding gender differences, significant differences were observed, with women scoring higher on average in various aspects. These included the ability to actively seek, compare, and select digital information from diverse sources and contexts, assess the potential risks associated with digital tools—such as security and identity concerns—and demonstrate confidence in accessing the necessary resources and training to integrate CT and programming into education.
... Yadaf et al. (2014) explain algorithmic thinking involves a meticulous process of completion at each step. The applied term is step by step; decomposition has the notion of the ability to cut complex problems into several small parts to solve in order (Sute et al., 2017); and evaluation is defined as the process of validating problem-solving solutions (Repenning et al., 2017). Harnett (2015) explains that computational thinking is an alternative to developing students' numeracy skills, by giving PISA model questions. ...
... III. PRINCIPLES OF PROXY-BASED PROGRAMMING Proxy-based programming (PBP) is a new programming paradigm embodied in the RULER.game computational thinking tool [52,56]. PBP can be considered an example implementation of the pragmatic programming philosophy. ...
Conference Paper
Full-text available
While block-based programming has successfully eliminated critical syntactic barriers to programming, it remains unclear how effectively it aids in overcoming semantic, logical, and pragmatic programming challenges that hinder computational thinking. These challenges are likely to far outweigh the syntactic ones. With the goal of creating a highly accessible programming tool for young students using mobile devices, we explored the concept of pragmatic prebugging to begin addressing these challenges. By pragmatic prebugging, we refer to proactive debugging tools designed to prevent logical errors. This article introduces RULER.game as a Computational Thinking Tool with built-in pragmatic prebugging, enabling novice programmers to create games through a paradigm we call proxy-based programming. A small study exploring error rates found statistically significant performance improvements of proxy-based programming compared to block-based programming. Keywords-block-based programming, computational thinking, programming by example, mobile computing. I. INTRODUCTION While block-based programming has removed critical syntactic barriers from programming, it is not clear how much it has contributed towards making computational thinking (CT) truly accessible [61]. If the goal is to teach computational thinking by creating personally interesting artifacts such as games [29], robots [1, 55] and simulations [40], then how many of the overall problem solving challenges are fully addressed by syntactic support mechanisms? Block-based programming is often compared to the ease of use of LEGO (e.g., [38]). However, if a person understands how to snap together two LEGO pieces, and then decides to build a replica of the Taj Mahal, they might soon realize that this "skill" does not automatically scale into the competence to create sophisticated artifacts. Benefits of block-based programming are claimed to include being "intuitive and self-explanatory" [72]. Many block-based programming designs intentionally suppress error messages [24] or provide limited debugging support [10]. This can produce programming errors [4] resulting from logical and pragmatic programming challenges. Most importantly, these kinds of challenges are likely to outweigh the syntactic ones.
... Basawapatna et al. (2011), with the help of an app entitled as AgentSheets, have managed to track the progress of instructors' and students' skill to identify computational thinking patterns. AgentSheets was a multi-application simulation builder which allowed non-developers to create their own simulations and games (Repenning, 1993(Repenning, , 2017. Ioannidou et al. (2011) have examined computational thinking patterns to identify the knowledge acquired from game design into STEM domains. ...
Article
Full-text available
The rapid development of gamification and computational thinking seems to open up new educational horizons by providing new opportunities for students to acquire the basic digital skills needed for their cognitive development. Gamification, on the side, flourishes because it brings about high degree of participants' engagement in an activity. Accordingly, on the other side, the growing scientific interest in computational thinking centers on the fact that it provides a fruitful field of dialogue in the research community for the development of critical and analytical thinking of students. Hence, this paper aims to synthesize knowledge about gamification and computational thinking for improving education for the benefit of students. Specifically, this paper describes: (a) the theoretical background of gamification in learning and education, (b) relevant studies in literature and their findings, and (c) specific gamified applications of STEM [Science, Technology, Engineering, Mathematics] which have been developed to this subject area. Four databases were searched, and 37 papers were finally selected for this review. The findings from the presented learning theories set the foundation on how students obtain knowledge, and the relevant studies in the field of gamification and computational thinking showed some first positive outcomes stemming some first research attempts which need further examination. Furthermore, it seems that with the right use of game mechanics and elements, well-designed applications of STEM gain students' interest to learn through gameplay and motivate them to cultivate computational thinking and problem-solving skills.
... CT skills can help children to interact with technology more effectively, efficiently solve challenges (Burke et al., 2016;Gross et al., 2014;National Research Council, 2010;Papadakis et al., 2016;Relkin & Bers, 2021;Resnick & Rusk, 1996;Sanford & Naidu, 2016;Wing, 2010), and better use computer hardware (Brennan & Resnick, 2012;Chen et al., 2017;Resnick et al., 2009;Román-González, et al., 2017). CT educational programs also engage children in problemsolving ISTE, 2015;Wing, 2006Wing, , 2008, reasoning and empowerment (Liao & Bright, 1991;Mannila et al., 2014;Mayer, 1988;Papert, 1980;Riley & Hunt, 2014;Shute et al., 2017;Sysło & Kwiatkowska, 2013), critical and collaborative thinking (Ananiadou & Claro, 2009;Binkley et al., 2012;ISTE, 2015;Korkmaz et al., 2017;Mishra et al., 2013;Repenning et al., 2017), basic math skills (Cansu & Cansu, 2019;Chalmers, 2018;Clements, 2001;Grover et al., 2015;Kazakoff et al., 2013;Messer et al., 2018;Papert, 1990;Saxena et al., 2020;Tang et al., 2020), and advocating creativity (Mishra et al., 2013;Resnick et al., 2009;Román-González et al., 2017). It has been stated that computer science concepts support STEM skills (Guzdial & Morrison, 2016;Jung & Won, 2018;Manches & Plowman, 2017;Sengupta et al., 2013;Shute et al., 2017;Sneider et al., 2014), and a positive interest in STEM skills will develop Sullivan & Bers, 2016. ...
Article
Full-text available
In the early years, it has become essential to support the acquisition of computational thinking, which is seen as a 21st-century skill and new literacy. A valid and reliable measurement tool is needed to develop and evaluate educational practices related to these skills. TechCheck is a validated unplugged assessment of computational thinking skills for young children. (Relkin & Bers in IEEE Global Engineering Education Conference (EDUCON) in 2021 (pp. 1696–1702), 2021; Relkin et al. in Journal of Science Education and Technology 29(4):482–498, 2020). This study aims to adapt and characterize a Turkish version of TechCheck-K for children aged 5–6. Validity and reliability of the Turkish version were established through classical test theory and item response theory, as had been done for the original English language version. Based on classical test theory, the confirmatory factor analysis used A tetrachoric weighted matrix to test the instrument’s structure. The one-dimensional structure of the instrument was verified. The KR-20 reliability coefficient for the scale consisting of one dimension and 15 items was .87, which is considered an acceptable level of reliability. Rasch and 2PL models were compared with M2 statistics to determine the item and test parameters based on item response theory (IRT). The 2PL model was chosen as the best fit. Mean TechCheck scores differed based on gender, socio-economic status, past exposure to computers, and coding experience. These results indicate that the Turkish version of TechCheck-K has acceptable psychometric properties for measuring computational thinking skills in children between 5 and 6 years of age.
... BTOÖ, özellikle kodlamaya yeni başlayanlar için daha kullanıcı dostu olarak kabul edilir (Resnick et al., 2009). BTOÖ; erişilebilir, eğlenceli ve daha az korkutucu hale getirmeyi hedefleyerek kodlama tutumlarını geliştirmek için güçlü bir araç olarak ortaya çıkmıştır (Bers et al., 2014;Repenning et al., 2017). Çalışmalar, tüm yaş gruplarındaki öğrenciler arasında BTOÖ'nün kodlamaya karşı tutumlar üzerinde olumlu bir etkisi olduğunu göstermiştir (Kelleher & Pausch, 2005;Resnick et al., 2009). ...
Article
Bu araştırma, Blok Tabanlı Oyunlaştırılmış Öğretimin kodlama eğitiminde kullanımının bilgi-işlemsel düşünme ve kodlamaya yönelik tutumlar üzerindeki etkilerini incelemeyi amaçlamaktadır. Bu amaç doğrultusunda çalışmada nicel araştırma yöntemlerinden ön-test son-test kontrol gruplu deneysel araştırma deseni kullanılmıştır. Araştırmanın çalışma grubu, 2021-2022 eğitim-öğretim yılında Bingöl ili Merkez Gazi Ortaokulu öğrencilerinden rastgele örneklem yöntemiyle seçilmiş 70 deney ve 54 kontrol grubu olmak üzere toplam 124 kişiden oluşmaktadır. Öğrencilerin bilgi-işlemsel düşünme becerilerini ölçmek için ise “Bilgi-İşlemsel Düşünme Becerisi Düzeyleri Ölçeği” kullanılmıştır. Öğrencilerin kodlamaya yönelik tutumlarını ölçebilmek için “Ortaokul Öğrencileri için Kodlamaya Yönelik Tutum Ölçeği” kullanılmıştır. Bu veriler SPSS istatistik programı ile analiz edilmiştir. Buna göre Blok Tabanlı Oyunlaştırılmış Öğretimin bilgi-işlemsel düşünmeye herhangi bir etkisi olmazken kodlama yönelik tutuma olumlu etkisi olmuştur. Blok Tabanlı Oyunlaştırılmış Öğretim özellikle ilgi, motivasyon ve öğrenme engellerini aşma açısından faydalı olma potansiyeli taşımaktadır. Ancak Blok Tabanlı Oyunlaştırılmış Öğretimin potansiyel sınırlamalarını dikkate almak ve öğrencilerin gelecekteki kodlama çalışmaları için çeşitli kodlama dilleri ve araçlarıyla tanışmalarını sağlamak önemlidir.
Chapter
In light of the active proliferation of AI and its integration into all areas of our lives, the academic year 2023–2024 posed the most pressing question to educational methodologists: “How can AI be utilized in the educational process?” There was no question of whether to use AI or not. Advanced students – future programmers – are already fully applying it for educational and other purposes. In this research, the authors will share their experience of applying AI in teaching probability theory and other mathematical disciplines in a technical university, generalize it, and provide recommendations. Probability theory was chosen not by chance: it was one of the subjects whose content was not formalized and was not amenable to “Internet solvers.” AI fills this gap; it seems only a matter of time before AI can solve any probability problem. In this case, what should we teach?
Chapter
The proliferation of technology has profoundly impacted every segment of society and the way humans think. The gradual growth of information technology has significantly influenced our approach to problem-solving. Computational thinking, a key aspect of IT, supports and encourages users to think logically, create, analyze, develop, and deliver solutions. This chapter explores various aspects of computational thinking and the essential tools in this field. The findings in this chapter demonstrate how computational thinking enables us to tackle complex problems by understanding them and developing viable solutions. Identifying useful patterns and the underlying details necessary for solving problems is facilitated by these tools. This chapter provides a descriptive study of relevant computational thinking tools and discusses the future tools needed to enhance the subject's importance.
Conference Paper
Full-text available
High profile computer science education events such as the Hour of Code can reach millions of students but without proper evaluation it is not clear what motivational and educational consequences the participation has. If, for instance, participants' levels of motivation towards the end of an hour long activity are significantly fading, then their perception of programming to be "hard and boring" may actually get reinforced. By simply measuring how far participants progressed with their projects we have been able to collect retention data from thousands of participants in a way that allows us to interpret these data in terms of not only cognitive but also technical and practical activity challenges. Inflection points overlaying a negative exponential retention distribution serve as indicators of these challenges with potential impact on Flow. Retention of Flow is an evaluation approach to analyze computer science education activities, including interactive tutorials and online programming environments, with respect to cognitive as well as affective challenges.
Article
Full-text available
We present lessons learned from developing Alice, a 3D graphics programming environment designed for undergraduates with no 3D graphics or programming experience. Alice is a Windows 95/NT tool for describing the time-based and interactive behavior of 3D objects, not a CAD tool for creating object geometry. Our observations and conclusions come from formal and informal observations of hundreds of users. Primary results include the use of LOGOstyle egocentric coordinate systems, the use of arbitrary objects as lightweight coordinate systems, the launching of implicit threads of execution, extensive function overloading for a small set of commands, the careful choice of command names, and the ubiquitous use of animation and undo. Keywords Interactive 3D graphics, animation authoring tools INTRODUCTION Realtime 3D graphics is becoming mainstream: most PCs shipped in 1999 will ship with some sort of 3D graphics accelerator. We see this as an opportunity to approach 3D graphics research ...
Article
Full-text available
An educated citizenry that participates in and contributes to science technology engineering and mathematics innovation in the 21st century will require broad literacy and skills in computer science (CS). School systems will need to give increased attention to opportunities for students to engage in computational thinking and ways to promote a deeper understanding of how technologies and software are used as design tools. However, K-12 students in the United States are facing a broken pipeline for CS education. In response to this problem, we have developed the Scalable Game Design curriculum based on a strategy to integrate CS education into the regular school curriculum. This strategy includes opportunities for students to design and program games and science technology engineering and mathematics simulations. An approach called Computational Thinking Pattern Analysis has been developed to measure and correlate computational thinking skills relevant to game design and simulations. Results from a study with more than 10,000 students demonstrate rapid adoption of this curriculum by teachers from multiple disciplines, high student motivation, high levels of participation by women, and interest regardless of demographic background.
Article
Full-text available
Various aspects of computational thinking, which builds on the power and limits of computing processes, whether they are executed by a human or by a machine, are discussed. Computational methods and models are helping to solve problems, design systems, and understand human behavior, by drawing on concepts fundamental to computer science (CS). Computational thinking (CT) is using abstraction and decomposition when attacking a large complex task or designing a large complex systems. CT is the way of thinking in terms of prevention, protection, and recovery from worst-case scenarios through redundancy, damage containment, and error correction. CT is using heuristic reasoning to discover a solution and using massive amount of data to speed up computation. CT is a futuristic vision to guide computer science educators, researchers, and practitioners to change society's image of the computer science field.
Conference Paper
Full-text available
Our powerful computers help very little in debugging the program we have so we can change it into the program we want. We introduce Conversational Programming as a way to harness our computing power to inspect program meaning through a combination of partial program execution and semantic program annotation. A programmer in our approach interactively selects highly autonomous "agents" in a program world as conversation topics and then changes the world to explore the potential behaviors of a selected agent in different scenarios. In this way, the programmer proactively knows how their code affects program execution as they explore various contexts. This paper describes conversational programming through design principles and use cases.
Article
Full-text available
Visual programming in 3D sounds much more appealing than programming in 2D, but what are its benefits? Here, University of Colorado Boulder educators discuss the differences between 2D and 3D regarding three concepts connecting computer graphics to computer science education: ownership, spatial thinking, and syntonicity.
Article
Computing education is in enormous demand. Many students (both children and adult) are realizing that they will need programming in the future. This book presents the argument that they are not all going to use programming in the same way and for the same purposes. What do we mean when we talk about teaching everyone to program? When we target a broad audience, should we have the same goals as computer science education for professional software developers? How do we design computing education that works for everyone? This book proposes use of a learner-centered design approach to create computing education for a broad audience. It considers several reasons for teaching computing to everyone and how the different reasons lead to different choices about learning goals and teaching methods. The book reviews the history of the idea that programming isn't just for the professional software developer. It uses research studies on teaching computing in liberal arts programs, to graphic designers, to high school teachers, in order to explore the idea that computer science for everyone requires us to re-think how we teach and what we teach. The conclusion describes how we might create computing education for everyone. Table of Contents: Preface / Acknowledgments / What Does Computing for Everyone Mean? / The Challenges of Learning Programming / Computational Thinking and Using Programming to Learn / Media Computation and Contextualized Computing Education / Adults as Computing Learners / Learner-Centered Computing Education for Computer Science Majors / Steps Toward Computing for Everyone / Bibliography / Author's Biography / Index Computing education is in enormous demand. Many students (both children and adult) are realizing that they will need programming in the future. This book presents the argument that they are not all going to use programming in the same way and for the same purposes. What do we mean when we talk about teaching everyone to program? When we target a broad audience, should we have the same goals as computer science education for professional software developers? How do we design computing education that works for everyone? This book proposes use of a learner-centered design approach to create computing education for a broad audience. It considers several reasons for teaching computing to everyone and how the different reasons lead to different choices about learning goals and teaching methods. The book reviews the history of the idea that programming isn't just for the professional software developer. It uses research studies on teaching computing in liberal arts programs, to graphic designers, to high school teachers, in order to explore the idea that computer science for everyone requires us to re-think how we teach and what we teach. The conclusion describes how we might create computing education for everyone.
Conference Paper
Programming today involves code editing mixed with bouts of debugging to get feedback on code execution. For programming to be more fluid, editing and debugging should occur concurrently as live programming. This paper describes how live execution feedback can be woven into the editor by making places in program execution, not just code, navigable so that evaluation results can be probed directly within the code editor. A pane aside the editor also traces execution with entries that are similarly navigable, enabling quick problem diagnosis. Both probes and traces are refreshed continuously during editing, and are easily configured based on debugging needs. We demonstrate the usefulness of this live programming experience with a prototype.
Conference Paper
Computational thinking aims to outline fundamental skills from computer science that everyone should learn. These skills include problem formulation, logically organizing data, automating solutions through algorithmic thinking, and representing data through abstraction. One aim of the NSF is to integrate these and other computational thinking concepts into the classroom. This paper introduces a tool called the Simulation Creation Toolkit wherein users apply high-level agent interactions called Computational Thinking Patterns (CTPs) to create simulations. Programming at the Computational Thinking Pattern level allows users to directly create agent interactions in a simulation by employing generic icons acting out a scientific phenomenon they are trying to represent. The Simulation Creation Toolkit aims to preserve the computational thinking benefits of simulation creation while enabling higher-level implementation of agent behaviors. Initial study data collected from sixth grade students with no prior programming experience indicates that students can work the mechanics necessary to create simulations in the classroom environment using the Simulation Creation Toolkit.