1 2 3

Decoding Code

Sayamindu Dasgupta gives children tools to analyze and learn from their coding processes.

When Sayamindu Dasgupta was in school, he didn’t always know why he was learning certain things. “I would often be asked to pick up a new piece of fact or a new way to do something, without necessarily being told why it was useful or important,” he says.

As he taught himself computer programming, the ways of the past would no longer suffice. “I had a real need to understand something, as it was going to help me solve a concrete problem that I cared about,” he says.

As a Ph.D. student at the Massachusetts Institute of Technology (MIT), where he has also been working since 2010, Dasgupta seeks to make the process of learning to code transparent and, therefore, more meaningful for children. It’s an approach to education that he thinks is relevant to many areas of human knowledge, and he sees its impact immediately in his computer science work, which takes place within MIT’s Lifelong Kindergarten research group.

The group develops “new technologies that, in the spirit of the blocks and fingerpaint of kindergarten, expand the range of what people can design, create and learn.” Dasgupta focuses much of his time on Scratch, which is a visual, block-based computer programming language designed for children aged 8 to 16.

“One of the distinct features of Scratch is that it has an associated online community where millions of children share their Scratch projects. Think of it like YouTube, but for media-rich computer programs created with Scratch. And children interact with each other, much like in a social network,” says Dasgupta.

As with other social networks, Scratch compiles data about the activities of its users. Dasgupta’s current project involves giving this data back to the children so that they can study their own learning and social interactions.

“Our goal is to empower young learners with access to their own already publicly-shared data, as well as with meta-tools to analyze it,” says Dasgupta. “For example, using this system, a budding programmer using Scratch would be able to reflect back on her own trajectory as a learner and look back at what type of programming primitives or functions she has commonly used in her past Scratch projects.”

The idea of enabling children to understand their journeys through the coding world builds on Dasgupta’s master’s thesis, for which he implemented a system that let students store data online and then put it to work. Dasgupta witnessed many creative uses of his system, one of which involved the development of a virtual bank coded using Scratch. Children set up the bank, allowed people to sign up as members and obtain virtual currency.

“One of the interesting things I noticed about the interactions of the children when they created and used these systems was that they were starting to talk, in their own way, about larger ethical questions around data, such as privacy and anonymity,” says Dasgupta. These observations about the impact of coding are valuable because it is such a “powerful medium of expression,” he adds.

“When we code, we have to be very systematic, compared to most other forms of expression, but the programs we build through coding do things that were never possible before,” he says. “Coding is about precisely describing behavior or a process, like programming a door to open if there’s someone in front of it, and this makes it a powerful tool to understand our world.”

Dasgupta will graduate from MIT this year. While he’s not sure what will come next, he wants to continue his current work in some form. He believes that, with time, it will become increasingly important to help children make meaning from coding.

“Being able to code will be useful in any discipline,” says Dasgupta. “People in all sorts of jobs will need to have a basic idea of coding, or at least some sense of what is possible with it.”


Carrie Loewenthal Massey is a New York City-based freelance writer.