TIPs NetsBlox project aims to make computer programming intuitive and understandable

Professor Akos Ledeczi and Ph.D. student Brian Broll work with their NetsBlox intuitive visual programming platform. (Vanderbilt University)
Professor Akos Ledeczi and Ph.D. student Brian Broll work with their NetsBlox intuitive visual programming platform. (Vanderbilt University)

Twenty-five years ago, computers had not yet become mainstream. School boards debated the need to buy computers for the classroom. The newest cellphones weighed in at just over a pound. The squeals and whirs of fax machines filled offices.

Fast forward a couple decades. Babies know how to use iPads. Your 90-year-old father-in-law is jonesing for the latest iPhone. Your refrigerator can tell you what’s inside while you’re at the grocery store. Eight-year-olds debate the merits of Android over iOS. The world has progressed.

And it continues to advance. Vanderbilt University Professor of Computer Engineering Akos Ledeczi wants us to move past just using computers in everyday life to understanding how to make computers do what we need them to do. He’s thinking further than learning how to code—his goal is having us understand how computers “think” and “talk” to each other.

“We know that not everyone should be a programmer, and that’s not our goal,” Ledeczi said. “But [rquote]understanding how computers think and being able to make them do what we want—breaking problems into steps and solving them step by step—is a 21st-century skill.”[/rquote]

Using a program called NetsBlox, he hopes to make writing computer programs as intuitive as writing an email. Ledeczi is the lead faculty member on a 2015 TIPS project called NetsBlox, Digital Learning Technology for Computer Science Education. The university’s $50 million Trans-Institutional Programs—or TIPs—initiative supports cross-campus interdisciplinary research and teaching, a foundation of the university’s Academic Strategic Plan. TIPs projects advance discovery and learning, with many of them providing cutting-edge immersion experiences for students.

Ledeczi’s goal is to develop NetsBlox, an intuitive visual programming platform that uses distributed programming and the computational thinking behind it, as a teaching tool. Faculty member Chris Vanags, the associate director of the Center for Science Outreach and an instructor in the School for Science and Math at Vanderbilt, is also part of the NetsBlox team. Graduate students and postdocs have participated in the research, and undergraduates participate through the Undergraduate Summer Research Program.

NetBlox’s experimental visual programming environment is built on top of Snap!, an environment created at the University of California at Berkeley, which itself is based on Scratch, the best-known programming tool for kids from the MIT Media Lab. Young students use Scratch to build basic games like Pong or animations or create virtual stories. But at the high school level, when many students gravitate to massively multiplayer online role-playing games that require complex programming, students leave Scratch behind. Snap!, a visual drag-and-drop programming language, picks up where Scratch leaves off, making it a good choice for introducing computer science to high school and college students.

NetsBlox builds on Snap’s visual programming environment by introducing distributed programming, which is how computers network, or talk to each other. With NetsBlox, an average high school student can create a simple multiplayer game, run it on her phone and play against a friend over the internet after just a few weeks of instruction.

Computer science sophomore Melvin Lu worked on the NetsBlox project last summer as an undergraduate research assistant in Ledeczi’s lab. He developed a battleship game and a distributed animation of a dog jumping from one computer to the next that demonstrated how NetsBlox communicates with other clients. He also produced an instructional video.

“It was a very hands-on experience,” said Lu, who is active in VandyHackers and has authored three free apps available on the Google Play site. “I was in the lab working with Professor Ledeczi and the graduate students. I learned a lot.”

This summer, Lu is heading to an internship at Google. He will be working with analytics for the Google Play store and helping improve the structure for downloads.

Lu’s ease in learning NetsBlox isn’t unique. Ledeczi points to Zsofia Biegl, a high school intern with no programming experience who created a multiplayer game similar to Connect-4. A class from the Vanderbilt Center for Science Outreach’s Day of Discovery program, which immerses middle school students in research-based STEM curriculum for one day a week, was introduced to the tool, as was a class of high school students who test drove NetsBlox for nine weeks.

This semester, Ledeczi introduced NetsBlox in his college classroom with CS 1103, a required course for all non-computer science majors in the School of Engineering. While the main focus of the course is to teach programming using MATLAB, the curriculum started with two weeks of NetsBlox’s visual programming to help with the steep learning curve of studying computer programming from scratch.

Over the summer, Ledeczi and Ph.D. student Brian Broll, the lead architect of the NetsBlox software, are planning a weeklong program for students in the SSMV and a coding camp in Ledeczi’s native Hungary. In the fall, Broll plans to teach a middle school class at University School of Nashville. Eventually, they would like all Tennessee high school students to become familiar with the concepts.

Funding agencies are interested in NetsBlox. In addition to the TIPs award in 2015, NetsBlox has caught the eye of the National Science Foundation, winning two separate grants. First came a two-year, $300,000 STEM + Computing EAGER grant to accelerate the program’s development. Then, in partnership with Stanford University and SRI, Vanderbilt received a three-year $2.5 million STEM + Computing grant to help advance new multidisciplinary approaches to, and evidence-based understanding of, the integration of computing in STEM teaching and learning. The project is led by Gautam Biswas, professor of computer science, computer engineering and engineering management who also holds a Cornelius Vanderbilt chair.

“Distributed programming is rapidly becoming part of basic computer literacy, so NetsBlox presents a unique opportunity, because students already use this technology every day and their natural curiosity will motivate them to learn more about it,” Ledeczi said. “We believe that NetsBlox will provide increased motivation to students to become creators and not just consumers of technology.”