NSF Awards: 1644848
NetsBlox (https://netsblox.org) is an open-source web- and cloud-based visual programming environment. NetsBlox extends Snap! by adding the capability of networking using carefully selected abstractions enabling distributed programming at a level accessible to novices. Hence, students can write multi-player games such as Tic Tac Toe, Pong or Battleship and other truly distributed programs such as a shared white board or a chatroom app. NetsBlox also opens up the internet with its vast array of public domain scientific data sources making it possible to create STEM projects, such as displaying seismic activity anywhere on Earth using an interactive Google Maps background. Similarly, weather, air pollution, the Open Movie Database and the Sloan Digital Sky Server are all accessible to NetsBlox programs. The tool supports collaborative program editing similar to how Google Docs work. This opens up new ways of project-based learning as well as enables pair programming even when students are not sitting at the same table. Another unique feature is the ability to replay the creation history of any programs via a YouTube like interface. Teachers and researchers now have the ability to study the process a student went through while working on a project and not just look at the final product. We have also developed and tested corresponding curricular modules teaching distributed computing and computer networking. They have been piloted in various summer and after school programs at the high school level and we have just finished a full semester course in a local middle school.
Akos Ledeczi
Professor
We hope you enjoyed this short introduction to NetsBlox. This is really just a glimpse into what kind of engaging projects students can create with it. For more information, visit the project web page where you can find additional videos, documentation and many sample projects. For example, you can watch the eclipse project in action and click on any of the weather stations for a plot of the temperature at the given location.
We are not slowing down. Since the creation of the video we have added support for stock quotes and even Google Street View (you need a computer with Chrome as mobile device support is not all the way there yet)
Please, provide feedback on what other services you would like to see. Thank you.
Akos Ledeczi
Alan Peterfreund
Interesting tool. How are teachers introducing this into their classes? What have you found to be any pre-requisite skills or knowledge?
Brian Broll
Thanks! As we extend Snap!, NetsBlox can be used with any curriculum designed for Snap! (such as The Beauty and Joy of Computing course). This makes it possible to introduce the environment and basic programming concepts just as one would with Snap!.
We have found RPCs to be a good way to begin introducing distributed computing in the classroom. Remote Procedure Calls are very simple to use and can be used like any other primitive block. We usually start with the GoogleMaps service and develop an app which includes static map images, such as an interactive weather map. As we explain that we are retrieving the map images from GoogleMaps, we can start introducing the concept of working with other devices to achieve a goal without adding any additional complexity to the student's code.
The prerequisite skills for the networking concepts depend upon the specific task or activity. Depending upon the specific RPC, the user may need to understand lists or multi-dimensional lists (if that is the expected return value of the RPC). One example of this is the Geolocation service which allows users to search for nearby places and returns a list of the place results. Each result is a list of keys and values such as ("name", "Starbucks"). The results for this RPC also include latitude, longitude, and category labels.
Messages are often used to develop more advanced applications. These include mesh networks, chat rooms, and multiplayer games. There are some distributed applications which are rather simple to implement and discuss (such as chat room applications) and others which are certainly more complex (such as turn based games). Applications like the chat room application require little prerequisite knowledge (they don't even require lists) but can easily introduce concepts such as denial-of-service attacks and encryption. In the classroom, we usually start with some of these simpler applications and then progress into variations requiring more involved protocols and coordination.
Alan Peterfreund
Carla Swenson
I would love to see this adapted for K-5 and put Montana on the map!
Akos Ledeczi
Professor
We tried the unit from the video (interactive map background with current weather conditions anywhere on Earth) in four 5th grade science classes and it went very well. Here is a step by step description of the unit: https://www.dropbox.com/s/zmb6ya5dw9mxy2b/NetsB...
Angie Kalthoff
Technology Integrationist
Can you expand on classroom use? I see that it can be used with any curriculum designed for Snap! How have students reacted to the added features?
Akos Ledeczi
Professor
So far, we used it in week-long summer camp settings between 7th and 11th grade. I am also using it during the first two weeks of my intro programing course for freshmen at Vanderbilt. And we are in the process to adopt the Berkeley BJC course as a new CS1000 course for non-majors at Vanderbilt in the Fall and NetsBlox will be the primary tool. This paper has a three-page summary of the results we saw in the summer camps: https://www.dropbox.com/s/ita0d5tmku13ir9/A-vis...
Karthik Ramani
Donald W. Feddersen Professor of Mechanical Engineering
Nice exposition of RPC and simple distributed programming concepts - learnt hands on. The messaging means to communicate is a basic one to help learn. How do you encourage students to come up with their own concepts of using RPC to do some new things? Are they able to abstract the concepts and construct their own applications using RPC?
Akos Ledeczi
Professor
We have only done week-long studies yet. There, the last day is dedicated for the students to create their own projects. We have seen some innovative ideas; for example, a group decided to add encryption to messaging so that nobody can eavesdrop on their conversation. Ideally, we would like to do longer term studies.
Karthik Ramani
Donald W. Feddersen Professor of Mechanical Engineering
Got it. Good start. The thinking in creating distributed applications is itself different from other programming constructs. This is the area where the network concepts come in. Are the students asking questions that indicate they want to learn more - what resources are their for them to reflect upon after they complete the workshop and go home? It will be good to see them gain more when they leave as opposed to okay "nice workshop" and then they forget it.
Akos Ledeczi
Professor
They have access to NetsBlox and all their stored projects once the program is over. We have seen a few percentage of the students "stay around" and keep working on their projects afterwards. But you are correct; we need to work on better after program support. Thanks for the feedback!
Further posting is closed as the showcase has ended.