Applications of Q-Learning in Coding with Snap!; Analyzing Methods for Promoting Inclusion and Diversity in Computer Science Education

Marcus, Adam, School of Engineering and Applied Science, University of Virginia
Ferguson, Sean, University of Virginia
Nguyen, Rich, University of Virginia

The presence of technology is growing in nearly all aspects of life, yet there are still several groups of people who are underrepresented in the development of new technologies. This disparity begs an important question: how can we promote more diversity in the next generation of computer scientists?
My STS research focused on three methods for promoting diversity and inclusion in computer science education: a systematic approach, an individualized approach, and a hybrid approach. Using Actor-Network Theory to analyze the interactions in each approach, I identified which interactions were the most essential for their success and used this to make recommendations for the most effective means for promoting diversity and inclusion in each scenario. The systematic approach relied on a teacher-volunteer software developer pairing in which they taught alongside each other, sharing pedagogical and computer science expertise with one another to make instruction more effective and reliable in the long term. The individualized approach focused on peer mentoring and noted the potential positive effect of gender and race matching, in term of retention rates, when creating mentor-mentee pairs. The hybrid approach identified two technologies, the LEGO Mindstorms and Lilypad Arduino, which can be used in a classroom setting to provide computer science learning opportunities that appeal to more underrepresented groups through their open-ended, creative nature.
My technical research relates specifically to the hybrid approach to promote diversity and inclusion. The project our team is working on is called Tunescope, and it aims to provide students a way to integrate computer science education with art and music. This tool includes an open source programming language called Snap!, which provides user-friendly, drag and drop code blocks to make coding less daunting. My individual goal for this project focused on a more specific feature: how students receive help and feedback for specific tasks. I completed a proof of concept for the applications of machine learning in our project for a simple assignment. I created a Q-Learning Agent that takes in the current set of code blocks selected by a student and suggests the best action for that student to take in order to complete their task of drawing a square. Once this was completed, I also created a Deep Q-Network to attack this same problem in a more efficient, scalable manner. Currently, the Tunescope website includes a custom code block which generates a hint to improve the students’ code for drawing a square when the block is clicked.
My STS research identifies several methods for improving diversity and inclusion in computer science education that should be widely considered by those with the power to implement them, and the technical project is an example of the hybrid approach in practice. The technical project was successful as I was able to create agents capable of producing accurate hints for a simple problem. This shows that with some adjustments we could provide automated assistance to students for any problem that is taught using Tunescope.

BS (Bachelor of Science)
Actor Network Theory, Diversity, Inclusion, Tunescope, Snap!, Computer Science Education, Q-Learning

School of Engineering and Applied Science
Bachelor of Science in Computer Science
Technical Advisor: N. Rich Nguyen
STS Advisor: Sean Ferguson
Technical Team Members: Ethan Gumabay, Eric Stein, Yuxin Wu

All rights reserved (no additional license for public reuse)
Issued Date: