Presented by:

Devin Jean

from Vanderbilt University

Devin graduated from Middle Tennessee State University in 2020, majoring in math and computer science. Aiming for a PhD in computer science, he applied for graduate school and was accepted into Vanderbilt’s PhD program. Devin has always loved academia and wants to eventually become a professor to share knowledge of both computer science and math---and especially their interactions---with new generations. At Vanderbilt, Devin works as a research assistant, and has the opportunity to explore another area of interest: developing educational software.

Block-based languages like Snap! have become mainstay tools for introducing programming to students of all ages. The simple interface and restrictions on block connections allow users to easily find program behaviors they want to use and mitigate many of the types of syntax errors that would be possible and typical for new learners using textual languages. This strong foundation is ideal for new tooling targeting wide student audiences. We introduce PyBlox, which is intended to be a transitional tool for teaching Python to more advanced Snap! users who are eager to learn some of the more gritty aspects of computing and traditional textual programming. PyBlox offers simple Python interfaces for performing many of the same features as Snap! projects, including a graphical sprite-based project system with semi-concurrent scripts, cloning, custom costumes, events (hat blocks), etc.. It also provides the distributed computing features NestBlox introduced to block-based programming, such as message passing between projects and access to curated web services, by connecting to the NetsBlox server. The PyBlox interfaces for these features are primarily 1-1 with their block-based counterparts, making it easy for students to take their existing Snap!/NetsBlox knowledge and translate it into equivalent PyBlox code. A compiler is included in the PyBlox IDE which can perform many of these conversions automatically so that students can jump right into experimenting with equivalent Python code. This talk will feature a collection of selected projects that focus on what PyBlox has learned from Snap!, as well as some of the cornerstone features that future platforms could support to take advantage of incoming users’ Snap!-based knowledge to lower the learning curve and improve students’ understanding of new programming languages.

20 min
Snap!Con 2022