Developing fluency with computational concepts, practices, and perspectives

How do I assess the development of CT?

There are different strategies for assessing the development of computational thinking. In our work, we have relied primarily on three approaches: (1) artifact-based interviews, (2) design scenarios, and (3) learner documentation. Using these approaches, we have particularly focused on evolving familiarity and fluency with the computational thinking practices. The focus on practices emerged through work with young learners — realizing that most concept-oriented assessments (e.g., checking for the presence of particular blocks in a projects as indicators of concept fluency, quizzes about definitions of concepts) were insufficient in representing a learner's development as a "computational thinker". Knowing the definition of a concept was not useful if unaccompanied by familiarity and fluency with computational practices to put the concepts into action within a particular creation.

Artifact-Based Interviews

In this approach, learners are engaged in conversation about their computational products and practices, using work samples to guide the conversation.

Our interview protocol involves several categories of questions (defining Scratch, providing feedback, solving problems, and developing projects) at three different moments in time (after first introduction to Scratch, at the mid-point of the learning experience, and as part of culminating activities).

Our rubric for assessing evolving fluency with computational practices elaborates the four practices (experimenting and iterating, testing and debugging, reusing and remixing, and abstracting and modularizing) and offers possible indicators of low, medium, and high levels of proficiency. These indicators are also illustrated in the "Practices in Practice" videos shared in the section below.

Design Scenarios

In this approach, learners encounter a series of projects and engage with those projects from four different perspectives: critiquing, extending, debugging, and remixing.

We developed three sets of Scratch projects of increasing complexity, all available in this studio in the Scratch online community. Within each set, there are two projects; the projects engage the same concepts and practices, but have different aesthetics to appeal to different interests.

In a series of three encounters, students are presented with the design scenarios, which are framed as projects that were created by another young Scratcher. The students are then asked to select one of the projects from each set, and (1) explain what the selected project does, (2) describe how it could be extended, (3) fix a bug, and (4) remix the project by adding a feature.

Learner Documentation

In this approach, learners are engaged in developing reflective traces of their learning, as accompaniment to their Scratch creations.

Here, we share three possible examples of reflective work by learners. As a first example, learners could maintain a journal, either paper-based or digital (such as this online Google presentation document). Potential prompts for journal reflections are available in the Creative Computing curriculum guide and in this computational thinking practices journal, which includes sample student responses.

As a second example, learners could annotate their code using Scratch’s built-in commenting feature, explaining design and implementation decisions. As a third example, learners could use screen capture software to provide a visual walk-through of their work, narrating their observations and intentions.

Practices in Practice

We developed a set of videos to illustrate our rubric for assessing evolving fluency with computational practices. Examples from elementary school, middle school, and high school are provided for each of the four computational thinking practices (experimenting and iterating, testing and debugging, remixing and reusing, abstracting and modularizing).


Experimenting and Iterating



Elementary School



Middle School



High School



Testing and Debugging



Elementary School



Middle School



High School



Reusing and Remixing



Elementary School



Middle School



High School



Abstracting and Modularizing



Elementary School



Middle School



High School