TidyBlocks: using the language of the Tidyverse in a blocks-based interface

Blocks-based coding environments are a popular way to introduce programming to novices. Instead of typing in code, users click blocks together to create loops, conditionals, and expressions.

TidyBlocks: using the language of the Tidyverse in a blocks-based interface

February 4, 2020

As an intern at RStudio, I developed a blocks-based coding language mimicking the verb-driven programming of the Tidyverse. Blocks-based coding environments are a popular way to introduce programming to novices. Instead of typing in code, users click blocks together to create loops, conditionals, and expressions. Studies have shown that students are more successful and more interested in coding when introduced through a block-based language like Scratch or Snap! rather than a text-based language. However, it's much easier to express control flow with these tools than to manipulate data: adding 1 to a variable requires several steps, and there are no built-in capabilities for working with tabular data. On the other hand, R's Tidyverse libraries provide a predictable, consistent grammar for doing these tasks. As an intern at RStudio, I developed a blocks-based coding language mimicking the verb driven programming of the Tidyverse. Tabular data can be imported and transformed using verbs like filter, select, and summarize, and functions can be strung together using pipes, which users can think of as meaning "and then". The talk will include a demo of TidyBlocks and a description of how we're testing and improving it.

A 5-minute presentation in our Lightning Talks series


About the speaker

I am a mycologist turned data scientist. I love statistics, data visualization, and all things JavaScript. I am currently an intern at RStudio designing a visual block-based programming language. I create music-related infographics for JamBase.com. When I’m not coding, I’m climbing tall mountains.