While mathematical notation on paper is static—correct or incorrect—a computer program is active, and students can see its effects in real time. Computer programming can become a language for elementary-aged children to express their mathematical ideas and use computational thinking, and this process can be transformative in a mathematics classroom. Acts such as decomposing problems and generalizing from specific instances become more visible, enabling students to examine and debug their own thinking.

At EDC, we’ve been developing opportunities for children to explore key mathematical content through the block-based programming language Snap!. Our lessons are organized in mini-units aligned to grade-level standards, but engaging for students in grade-levels both above and below. In each mini-unit, children are programming in a Snap! microworld, which is essentially a view with Snap! that is developmentally appropriate for elementary students and retains an authentic programming experience. In each mini-unit, children build and debug their own scripts in order to solve a series of highly engaging mathematical puzzles.

In our mini-units, computer science is integrated into young children’s mathematics experience in a way that is natural, developmentally appropriate, embedded in mathematics content, and supportive of the mathematics.  These mini-units are being developed by EDC through National Science Foundation grants 1741792 and 1934161, and are being tested extensively in elementary classrooms so that we can best understand how children engage with and learn in these environments. Here are a larger set of mini-units for grades 2–5, along with accompanying teacher notes and classroom materials. Work is not “checked” as in tutorial apps and games. Children see the effects their code produces and make changes to their scripts as they move through the explorations, puzzles, and challenges.

numberline microworld

Number Line

Children start by building their fluency adding and subtracting within 20 and predicting results mentally. Later, they move to experimenting with adding and subtracting with 1000.

Placevalue microworld

1s, 10s, 100s

Children build ideas about number and numeral, about rounding, and about place value as they add and subtract 1, 10 or 100 starting at any number, both through programming “Dino” to add and by building fluency in their own mental computation.

Map Microworld


Children navigate on a map of Tiny Town by moving North, South, East or West one or more blocks at a time. They plan routes between locations and compare by measuring distances in blocks and counting how many turns are used.

Arrays Microworld


Children create rectangles (arrays) of varying sizes by painting rows of square tiles (in colors they can choose) and moving up or down to paint more rows. They describe their rectangles by naming the number of squares within each row and the number of rows to find the total number of squares in the rectangle (area), building ideas central to pre-multiplication.

Fractions on a Number Line

Fractions on a Number Line

Children extend their understanding of the number line by “zooming in” to add and subtract fractions with eighths using ±3/8 and ±5/8. Later, they experiment in halves by adding and subtracting mixed numbers, including ±1 1/2 and ±4.

girl at computer

Decimal Number Line

Children “zoom in” on the number line to add and subtract decimals in tenths and, later, in hundredths. Concepts such as location, magnitude, and distance are also explored.