BYOS: Build Your Own (Data) Services in NetsBlox
A Hands-On Introduction to Blocks-Based Service Creation
Brian Broll is a Research Scientist at the Institute for Software Integrated Systems at Vanderbilt University. He holds a Ph.D. from Vanderbilt University in Computer Science and a B.Sc. from Buena Vista University, majoring in mathematics education. His research interests include computer science education and model integrated computing.
I'm an assistant professor of the Learning Sciences at Vanderbilt, where I also co-direct the Computational Thinking and Learning Initiative. I work to create learning environments that allow me and the teachers I collaborate with to support and study students' scientific, mathematical, and computational thinking.
Thanks for helping with Snap!Con 2020!
Blocks-based programming environments have proven effective for introducing novices to programming. These environments are generally characterized by both a low threshold and wide walls (i.e., they make it easy to get started and students can create projects on a wide range of topics). These wide walls can facilitate creativity and cultivate student interest in computer science, as they enable students to build applications relevant to their world and interests. Snap! extensions such as Snapi and NetsBlox are designed to widen the walls further by making web APIs easily accessible to users (among other features). However, relying only on existing web services can make it easy to overlook many datasets that may be of interest to students (eg, regional data or highly specialized data). It also runs the risk of positioning students as consumers of data rather than also as producers and curators of data.
What if data services could not only be used from within a blocks-based programming environment but also created using blocks? This would enable educators in schools and informal learning centers to make their own datasets available to students as a data service and more easily customize curriculum to be relevant to their students. Furthermore, the creation of services introduces a new perspective to web services as students can be creators rather than simply consumers of content. To achieve these goals, we have recently added support for defining custom data services in NetsBlox which, in the spirit of lively blocks-based programming environments, is designed to have a low threshold, wide walls, and to promote tinkerability.
In this workshop, we will present how data services can be created in NetsBlox. First, we will start with a brief introduction to NetsBlox. Next, we will show what kinds of data service are possible, through a few examples. Then, we’ll work with participants to create their own data services. Next, we will show how NetsBlox determines intelligent default configuration options based on the contents of the dataset (as a CSV file). Finally, we will explore options for customizing the data service (by editing the generated configuration), ranging from the help messages to the implementations of the individual remote procedure calls (RPCs).